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