// Basic
const color = 'color';
const fontFamily = 'font-family';
const backgroundColor = 'background-color';
// Typography
const text = `text ${color} ${fontFamily}`;
const textDanger = `text-danger ${text}`;
const heading = `heading ${text}`;
const heading1 = `heading-1 ${heading}`;
const heading2 = `heading-2 ${heading}`;
const heading3 = `heading-3 ${heading}`;
const heading4 = `heading-4 ${heading}`;
const heading5 = `heading-5 ${heading}`;
const link = `link text ${fontFamily}`;
// Button
const button = `button ${text}`;
const buttonPrimary = `button-primary ${button}`;
const buttonSecondary = `button-secondary ${button}`;
const buttonDanger = `button-danger ${button}`;
const buttonSuccess = `button-success ${button}`;
const buttonWarning = `button-warning ${button}`;
const buttonInfo = `button-info ${button}`;
const buttonLight = `button-light ${button}`;
const buttonDark = `button-dark ${button}`;
const buttonLink = `button-link ${button}`;
const buttonOutlinePrimary = `button-outline-primary ${button}`;
const buttonOutlineSecondary = `button-outline-secondary ${button}`;
const buttonLoading = `button-loading`;
const buttonDisabled = `button-disabled ${button}`;
// Input
const label = `label ${text}`;
const input = `input ${text} ${backgroundColor}`;
const inputGroup = `input-group ${input}`;
const inputInvalid = `input-invalid ${input}`;
const inputDisabled = `input-disabled ${input}`;
const inputFocused = `input-focused ${input}`;
const inputInvalidAndFocused = `input-invalid-and-focused ${input}`;
const inputRadio = `input-radio`;
const inputRadioFocused = `input-radio-focused ${inputRadio}`;
const inputRadioChecked = `input-radio-checked ${inputRadio}`;
const inputRadioCheckedFocused = `input-radio-checked-focused ${inputRadio}`;
const inputRadioInvalid = `input-radio-invalid ${inputRadio}`;
const inputCheckbox = `input-checkbox`;
const inputCheckboxInvalid = `input-checkbox-invalid ${inputCheckbox}`;
const inputCheckboxFocused = `input-checkbox-focused ${inputCheckbox}`;
const inputCheckboxChecked = `input-checkbox-checked ${inputCheckbox}`;
const inputCheckboxCheckedFocused = `input-checkbox-checked-focused ${inputCheckbox}`;
const inputAdornment = `input-adornment ${text}`;
// Alert
const alert = `alert ${text}`;
const alertDanger = `alert-danger ${alert}`;
// Tooltip
const tooltip = `tooltip ${text}`;
const tooltipIcon = `tooltip-icon ${text}`;
const tooltipInner = `tooltip-inner ${text}`;
// Card
const card = `card ${text} ${backgroundColor}`;
// Table
const table = `table ${text} ${backgroundColor}`;
const tableRow = `table-row ${text} ${backgroundColor}`;
const tableCell = `table-cell ${text} ${backgroundColor}`;
const tableHead = `table-head`;
const tableHeadRow = `table-head-row ${text} ${backgroundColor}`;
const tableHeadCell = `table-head-cell ${tableCell}`;
const tableFoot = `table-foot`;
const tableFootRow = `table-foot-row ${text} ${backgroundColor}`;
const tableFootCell = `table-foot-cell ${tableCell}`;
const tableCellEven = `table-cell-even ${tableCell}`;
const tableCellOdd = `table-cell-odd ${tableCell}`;
const getAlternateTableCellPart = (index) => index % 2 ? tableCellEven : tableCellOdd;
const tableEmpty = `table-empty ${text} ${backgroundColor}`;
const tableError = `table-error ${text} ${backgroundColor}`;
// Pagination
const paginationButton = `pagination-button ${button}`;
const paginationButtonDisabled = `pagination-button-disabled ${buttonDisabled}`;
const paginationButtonText = `pagination-button-text ${text}`;
const paginationButtonIcon = `pagination-button-icon ${text}`;
const paginationButtonIconNext = `pagination-button-icon-next ${paginationButtonIcon}`;
const paginationButtonIconPrevious = `pagination-button-icon-previous ${paginationButtonIcon}`;
// Loading spinner
const loadingSpinner = `loading-spinner`;
// Badge
const badge = `badge ${fontFamily}`;
const badgePrimary = `${badge} badge-primary`;
const badgeSecondary = `${badge} badge-secondary`;
const badgeSuccess = `${badge} badge-success`;
const badgeDanger = `${badge} badge-danger`;
const badgeWarning = `${badge} badge-warning`;
const badgeInfo = `${badge} badge-info`;
const badgeLight = `${badge} badge-light`;
const badgeDark = `${badge} badge-dark`;
// Dropdown-menu
const dropdownMenu = `dropdown-menu ${text}`;
const dropdownMenuButton = `dropdown-menu-button ${buttonPrimary}`;
// Radio List Item
const radioListItem = `radio-list-item ${text}`;
// Skeleton
const skeleton = `skeleton`;
// Image
const image = `image`;
// Component specific
// This allows specific sections of a component to be hidden, for example
// ::part(billing-form) { display: none; }
const billingForm = `billing-form`;
const checkoutSummary = `checkout-summary`;
// Filters
const filterMenu = `filter-menu`;
const filterParam = `filter-param`;

export { badge as $, buttonSecondary as A, card as B, table as C, tableHeadCell as D, tableCell as E, alert as F, inputCheckboxInvalid as G, inputCheckboxCheckedFocused as H, inputCheckboxFocused as I, inputCheckboxChecked as J, inputCheckbox as K, heading4 as L, alertDanger as M, paginationButton as N, paginationButtonDisabled as O, paginationButtonIconPrevious as P, paginationButtonText as Q, paginationButtonIconNext as R, loadingSpinner as S, badgeDark as T, badgeLight as U, badgeInfo as V, badgeWarning as W, badgeDanger as X, badgeSuccess as Y, badgeSecondary as Z, badgePrimary as _, inputAdornment as a, image as a0, buttonLink as a1, heading5 as a2, buttonOutlineSecondary as a3, buttonOutlinePrimary as a4, buttonDark as a5, buttonLight as a6, buttonInfo as a7, buttonWarning as a8, buttonDanger as a9, buttonSuccess as aa, buttonLoading as ab, checkoutSummary as ac, filterMenu as ad, filterParam as ae, dropdownMenuButton as af, dropdownMenu as ag, getAlternateTableCellPart as ah, tableHead as ai, tableHeadRow as aj, tableRow as ak, tableFoot as al, tableFootRow as am, tableFootCell as an, tableEmpty as ao, tableError as ap, inputInvalid as b, inputDisabled as c, inputFocused as d, input as e, tooltip as f, tooltipInner as g, heading2 as h, inputGroup as i, text as j, textDanger as k, label as l, link as m, heading1 as n, inputRadioInvalid as o, inputRadioCheckedFocused as p, inputRadioChecked as q, inputRadioFocused as r, inputRadio as s, tooltipIcon as t, radioListItem as u, inputInvalidAndFocused as v, skeleton as w, billingForm as x, heading3 as y, buttonPrimary as z };
