/**
 * Twind v0.16.16
 * @license MIT
 * @source https://unpkg.com/twind@0.16.16/twind.js?module 
 */

// src/internal/util.ts
var includes = (value, search) => !!~value.indexOf(search);
var join = (parts, separator = '-') => parts.join(separator);
var joinTruthy = (parts, separator) => join(parts.filter(Boolean), separator);
var tail = (array, startIndex = 1) => array.slice(startIndex);
var identity = (value) => value;
var noop = () => {};
var capitalize = (value) => value[0].toUpperCase() + tail(value);
var hyphenate = (value) => value.replace(/[A-Z]/g, '-$&').toLowerCase();
var evalThunk = (value, context) => {
  while (typeof value == 'function') {
    value = value(context);
  }
  return value;
};
var ensureMaxSize = (map, max) => {
  if (map.size > max) {
    map.delete(map.keys().next().value);
  }
};
var isCSSProperty = (key, value) =>
  !includes('@:&', key[0]) && (includes('rg', (typeof value)[5]) || Array.isArray(value));
var merge = (target, source, context) =>
  source
    ? Object.keys(source).reduce((target2, key) => {
        const value = evalThunk(source[key], context);
        if (isCSSProperty(key, value)) {
          target2[hyphenate(key)] = value;
        } else {
          target2[key] =
            key[0] == '@' && includes('figa', key[1])
              ? (target2[key] || []).concat(value)
              : merge(target2[key] || {}, value, context);
        }
        return target2;
      }, target)
    : target;
var escape =
  (typeof CSS !== 'undefined' && CSS.escape) ||
  ((className) =>
    className.replace(/[!"'`*+.,;:\\/<=>?@#$%&^|~()[\]{}]/g, '\\$&').replace(/^\d/, '\\3$& '));
var buildMediaQuery = (screen) => {
  if (!Array.isArray(screen)) {
    screen = [screen];
  }
  return (
    '@media ' +
    join(
      screen.map((screen2) => {
        if (typeof screen2 == 'string') {
          screen2 = { min: screen2 };
        }
        return (
          screen2.raw ||
          join(
            Object.keys(screen2).map((feature) => `(${feature}-width:${screen2[feature]})`),
            ' and '
          )
        );
      }),
      ','
    )
  );
};
var cyrb32 = (value) => {
  for (var h = 9, index = value.length; index--; ) {
    h = Math.imul(h ^ value.charCodeAt(index), 1597334677);
  }
  return 'tw-' + ((h ^ (h >>> 9)) >>> 0).toString(36);
};
var sortedInsertionIndex = (array, element) => {
  for (var low = 0, high = array.length; low < high; ) {
    const pivot = (high + low) >> 1;
    if (array[pivot] <= element) {
      low = pivot + 1;
    } else {
      high = pivot;
    }
  }
  return high;
};

// src/twind/parse.ts
var groupings;
var rules;
var startGrouping = (value = '') => {
  groupings.push(value);
  return '';
};
var endGrouping = (isWhitespace) => {
  groupings.length = Math.max(groupings.lastIndexOf('') + ~~isWhitespace, 0);
};
var onlyPrefixes = (s) => s && !includes('!:', s[0]);
var onlyVariants = (s) => s[0] == ':';
var addRule = (directive2, negate) => {
  rules.push({
    v: groupings.filter(onlyVariants),
    d: directive2,
    n: negate,
    i: includes(groupings, '!'),
    $: '',
  });
};
var saveRule = (buffer) => {
  const negate = buffer[0] == '-';
  if (negate) {
    buffer = tail(buffer);
  }
  const prefix = join(groupings.filter(onlyPrefixes));
  addRule(buffer == '&' ? prefix : (prefix && prefix + '-') + buffer, negate);
  return '';
};
var parseString = (token, isVariant) => {
  let buffer = '';
  for (let char, dynamic = false, position2 = 0; (char = token[position2++]); ) {
    if (dynamic || char == '[') {
      buffer += char;
      dynamic = char != ']';
      continue;
    }
    switch (char) {
      case ':':
        buffer =
          buffer &&
          startGrouping(':' + (token[position2] == char ? token[position2++] : '') + buffer);
        break;
      case '(':
        buffer = buffer && startGrouping(buffer);
        startGrouping();
        break;
      case '!':
        startGrouping(char);
        break;
      case ')':
      case ' ':
      case '	':
      case '\n':
      case '\r':
        buffer = buffer && saveRule(buffer);
        endGrouping(char !== ')');
        break;
      default:
        buffer += char;
    }
  }
  if (buffer) {
    if (isVariant) {
      startGrouping(':' + buffer);
    } else if (buffer.slice(-1) == '-') {
      startGrouping(buffer.slice(0, -1));
    } else {
      saveRule(buffer);
    }
  }
};
var parseGroupedToken = (token) => {
  startGrouping();
  parseToken(token);
  endGrouping();
};
var parseGroup = (key, token) => {
  if (token) {
    startGrouping();
    const isVariant = includes('tbu', (typeof token)[1]);
    parseString(key, isVariant);
    if (isVariant) {
      parseGroupedToken(token);
    }
    endGrouping();
  }
};
var parseToken = (token) => {
  switch (typeof token) {
    case 'string':
      parseString(token);
      break;
    case 'function':
      addRule(token);
      break;
    case 'object':
      if (Array.isArray(token)) {
        token.forEach(parseGroupedToken);
      } else if (token) {
        Object.keys(token).forEach((key) => {
          parseGroup(key, token[key]);
        });
      }
  }
};
var staticsCaches = new WeakMap();
var buildStatics = (strings) => {
  let statics = staticsCaches.get(strings);
  if (!statics) {
    let slowModeIndex = NaN;
    let buffer = '';
    statics = strings.map((token, index) => {
      if (
        slowModeIndex !== slowModeIndex &&
        (token.slice(-1) == '[' || includes(':-(', (strings[index + 1] || '')[0]))
      ) {
        slowModeIndex = index;
      }
      if (index >= slowModeIndex) {
        return (interpolation) => {
          if (index == slowModeIndex) {
            buffer = '';
          }
          buffer += token;
          if (includes('rg', (typeof interpolation)[5])) {
            buffer += interpolation;
          } else if (interpolation) {
            parseString(buffer);
            buffer = '';
            parseToken(interpolation);
          }
          if (index == strings.length - 1) {
            parseString(buffer);
          }
        };
      }
      const staticRules = (rules = []);
      parseString(token);
      const activeGroupings = [...groupings];
      rules = [];
      return (interpolation) => {
        rules.push(...staticRules);
        groupings = [...activeGroupings];
        if (interpolation) {
          parseToken(interpolation);
        }
      };
    });
    staticsCaches.set(strings, statics);
  }
  return statics;
};
var parse = (tokens) => {
  groupings = [];
  rules = [];
  if (Array.isArray(tokens[0]) && Array.isArray(tokens[0].raw)) {
    buildStatics(tokens[0]).forEach((apply2, index) => apply2(tokens[index + 1]));
  } else {
    parseToken(tokens);
  }
  return rules;
};

// src/twind/directive.ts
var isFunctionFree;
var detectFunction = (key, value) => {
  if (typeof value == 'function') {
    isFunctionFree = false;
  }
  return value;
};
var stringify = (data) => {
  isFunctionFree = true;
  const key = JSON.stringify(data, detectFunction);
  return isFunctionFree && key;
};
var cacheByFactory = new WeakMap();
var directive = (factory, data) => {
  const key = stringify(data);
  let directive2;
  if (key) {
    var cache = cacheByFactory.get(factory);
    if (!cache) {
      cacheByFactory.set(factory, (cache = new Map()));
    }
    directive2 = cache.get(key);
  }
  if (!directive2) {
    directive2 = Object.defineProperty(
      (params, context) => {
        context = Array.isArray(params) ? context : params;
        return evalThunk(factory(data, context), context);
      },
      'toJSON',
      {
        value: () => key || data,
      }
    );

    if (cache) {
      cache.set(key, directive2);
      ensureMaxSize(cache, 1e4);
    }
  }
  return directive2;
};

// src/twind/apply.ts
var applyFactory = (tokens, { css }) => css(parse(tokens));
var apply = (...tokens) => directive(applyFactory, tokens);

// src/twind/helpers.ts
var positions = (resolve) => (value, position2, prefix, suffix) => {
  if (value) {
    const properties = position2 && resolve(position2);
    if (properties && properties.length > 0) {
      return properties.reduce((declarations, property2) => {
        declarations[joinTruthy([prefix, property2, suffix])] = value;
        return declarations;
      }, {});
    }
  }
};
var corners = /* @__PURE__ */ positions(
  (key) =>
    ({
      t: ['top-left', 'top-right'],
      r: ['top-right', 'bottom-right'],
      b: ['bottom-left', 'bottom-right'],
      l: ['bottom-left', 'top-left'],
      tl: ['top-left'],
      tr: ['top-right'],
      bl: ['bottom-left'],
      br: ['bottom-right'],
    }[key])
);
var expandEdges = (key) => {
  const parts = ({ x: 'lr', y: 'tb' }[key] || key || '').split('').sort();
  for (let index = parts.length; index--; ) {
    if (
      !(parts[index] = {
        t: 'top',
        r: 'right',
        b: 'bottom',
        l: 'left',
      }[parts[index]])
    )
      return;
  }
  if (parts.length) return parts;
};
var edges = /* @__PURE__ */ positions(expandEdges);

// src/twind/plugins.ts
var _;
var __;
var $;
var toColumnsOrRows = (x) => (x == 'cols' ? 'columns' : 'rows');
var property = (property2) => (params, context, id) => ({
  [property2]: id + ((_ = join(params)) && '-' + _),
});

var propertyValue = (property2, separator) => (params, context, id) =>
  (_ = join(params, separator)) && {
    [property2 || id]: _,
  };

var themeProperty =
  (section) =>
  (params, { theme: theme2 }, id) =>
    (_ = theme2(section || id, params)) && {
      [section || id]: _,
    };

var themePropertyFallback =
  (section, separator) =>
  (params, { theme: theme2 }, id) =>
    (_ = theme2(section || id, params, join(params, separator))) && {
      [section || id]: _,
    };

var alias = (handler, name) => (params, context) => handler(params, context, name);
var display = property('display');
var position = property('position');
var textTransform = property('textTransform');
var textDecoration = property('textDecoration');
var fontStyle = property('fontStyle');
var fontVariantNumeric = (key) => (params, context, id) => ({
  ['--tw-' + key]: id,
  fontVariantNumeric:
    'var(--tw-ordinal,/*!*/ /*!*/) var(--tw-slashed-zero,/*!*/ /*!*/) var(--tw-numeric-figure,/*!*/ /*!*/) var(--tw-numeric-spacing,/*!*/ /*!*/) var(--tw-numeric-fraction,/*!*/ /*!*/)',
});

var inset = (params, { theme: theme2 }, id) => (_ = theme2('inset', params)) && { [id]: _ };
var opacityProperty = (params, theme2, id, section = id) =>
  (_ = theme2(section + 'Opacity', tail(params))) && {
    [`--tw-${id}-opacity`]: _,
  };

var parseColorComponent = (chars, factor) => Math.round(parseInt(chars, 16) * factor);
var asRGBA = (color, opacityProperty2, opacityDefault) => {
  if (
    color &&
    color[0] == '#' &&
    (_ = (color.length - 1) / 3) &&
    ($ = [17, 1, 0.062272][_ - 1])
  ) {
    return `rgba(${parseColorComponent(color.substr(1, _), $)},${parseColorComponent(
      color.substr(1 + _, _),
      $
    )},${parseColorComponent(color.substr(1 + 2 * _, _), $)},${
      opacityProperty2
        ? `var(--tw-${opacityProperty2}${opacityDefault ? ',' + opacityDefault : ''})`
        : opacityDefault || 1
    })`;
  }
  return color;
};
var withOpacityFallback = (property2, kind, color) =>
  color && typeof color == 'string'
    ? (_ = asRGBA(color, kind + '-opacity')) && _ !== color
      ? {
          [`--tw-${kind}-opacity`]: '1',
          [property2]: [color, _],
        }
      : { [property2]: color }
    : void 0;
var transparentTo = (color) => (($ = asRGBA(color, '', '0')) == _ ? 'transparent' : $);
var reversableEdge = (params, { theme: theme2 }, id, section, prefix, suffix) =>
  (_ = { x: ['right', 'left'], y: ['bottom', 'top'] }[params[0]]) &&
  ($ = `--tw-${id}-${params[0]}-reverse`)
    ? params[1] == 'reverse'
      ? {
          [$]: '1',
        }
      : {
          [$]: '0',
          [joinTruthy([prefix, _[0], suffix])]:
            (__ = theme2(section, tail(params))) && `calc(${__} * var(${$}))`,
          [joinTruthy([prefix, _[1], suffix])]: __ && [
            __,
            `calc(${__} * calc(1 - var(${$})))`,
          ],
        }
    : void 0;
var placeHelper = (property2, params) =>
  params[0] && {
    [property2]: (includes('wun', (params[0] || '')[3]) ? 'space-' : '') + params[0],
  };

var contentPluginFor = (property2) => (params) =>
  includes(['start', 'end'], params[0])
    ? { [property2]: 'flex-' + params[0] }
    : placeHelper(property2, params);
var gridPlugin =
  (kind) =>
  (params, { theme: theme2 }) => {
    if ((_ = theme2('grid' + capitalize(kind), params, ''))) {
      return { ['grid-' + kind]: _ };
    }
    switch (params[0]) {
      case 'span':
        return (
          params[1] && {
            ['grid-' + kind]: `span ${params[1]} / span ${params[1]}`,
          }
        );

      case 'start':
      case 'end':
        return (
          (_ = theme2(
            'grid' + capitalize(kind) + capitalize(params[0]),
            tail(params),
            join(tail(params))
          )) && {
            [`grid-${kind}-${params[0]}`]: _,
          }
        );
    }
  };
var border = (params, { theme: theme2 }, id) => {
  switch (params[0]) {
    case 'solid':
    case 'dashed':
    case 'dotted':
    case 'double':
    case 'none':
      return propertyValue('borderStyle')(params);
    case 'collapse':
    case 'separate':
      return propertyValue('borderCollapse')(params);
    case 'opacity':
      return opacityProperty(params, theme2, id);
  }

  return (_ = theme2(id + 'Width', params, ''))
    ? { borderWidth: _ }
    : withOpacityFallback('borderColor', id, theme2(id + 'Color', params));
};
var transform = (gpu) =>
  (gpu
    ? 'translate3d(var(--tw-translate-x,0),var(--tw-translate-y,0),0)'
    : 'translateX(var(--tw-translate-x,0)) translateY(var(--tw-translate-y,0))') +
  ' rotate(var(--tw-rotate,0)) skewX(var(--tw-skew-x,0)) skewY(var(--tw-skew-y,0)) scaleX(var(--tw-scale-x,1)) scaleY(var(--tw-scale-y,1))';
var transformXYFunction = (params, context, id) =>
  params[0] &&
  (_ = context.theme(id, params[1] || params[0])) && {
    [`--tw-${id}-x`]: params[0] !== 'y' && _,
    [`--tw-${id}-y`]: params[0] !== 'x' && _,
    transform: [`${id}${params[1] ? params[0].toUpperCase() : ''}(${_})`, transform()],
  };

var edgesPluginFor = (key) => (params, context, id) =>
  id[1]
    ? edges(context.theme(key, params), id[1], key)
    : themeProperty(key)(params, context, id);
var padding = edgesPluginFor('padding');
var margin = edgesPluginFor('margin');
var minMax = (params, { theme: theme2 }, id) =>
  (_ = { w: 'width', h: 'height' }[params[0]]) && {
    [(_ = `${id}${capitalize(_)}`)]: theme2(_, tail(params)),
  };

var filter = (params, { theme: theme2 }, id) => {
  const parts = id.split('-');
  const prefix = parts[0] == 'backdrop' ? parts[0] + '-' : '';
  if (!prefix) {
    params.unshift(...parts);
  }
  if (params[0] == 'filter') {
    const filters = [
      'blur',
      'brightness',
      'contrast',
      'grayscale',
      'hue-rotate',
      'invert',
      prefix && 'opacity',
      'saturate',
      'sepia',
      !prefix && 'drop-shadow',
    ].filter(Boolean);
    return params[1] == 'none'
      ? { [prefix + 'filter']: 'none' }
      : filters.reduce(
          (css, key) => {
            css['--tw-' + prefix + key] = 'var(--tw-empty,/*!*/ /*!*/)';
            return css;
          },
          {
            [prefix + 'filter']: filters.map((key) => `var(--tw-${prefix}${key})`).join(' '),
          }
        );
  }
  $ = params.shift();
  if (includes(['hue', 'drop'], $)) $ += capitalize(params.shift());
  return (
    (_ = theme2(prefix ? 'backdrop' + capitalize($) : $, params)) && {
      ['--tw-' + prefix + $]: (Array.isArray(_) ? _ : [_])
        .map((_4) => `${hyphenate($)}(${_4})`)
        .join(' '),
    }
  );
};
var corePlugins = {
  group: (params, { tag }, id) => tag(join([id, ...params])),
  hidden: alias(display, 'none'),
  inline: display,
  block: display,
  contents: display,
  flow: display,
  table: (params, context, id) =>
    includes(['auto', 'fixed'], params[0])
      ? { tableLayout: params[0] }
      : display(params, context, id),
  flex(params, context, id) {
    switch (params[0]) {
      case 'row':
      case 'col':
        return {
          flexDirection: join(params[0] == 'col' ? ['column', ...tail(params)] : params),
        };

      case 'nowrap':
      case 'wrap':
        return { flexWrap: join(params) };
      case 'grow':
      case 'shrink':
        _ = context.theme('flex' + capitalize(params[0]), tail(params), params[1] || 1);
        return (
          _ != null && {
            ['flex-' + params[0]]: '' + _,
          }
        );
    }

    return (_ = context.theme('flex', params, ''))
      ? { flex: _ }
      : display(params, context, id);
  },
  grid(params, context, id) {
    switch (params[0]) {
      case 'cols':
      case 'rows':
        return (
          (_ = context.theme(
            'gridTemplate' + capitalize(toColumnsOrRows(params[0])),
            tail(params),
            params.length == 2 && Number(params[1])
              ? `repeat(${params[1]},minmax(0,1fr))`
              : join(tail(params))
          )) && {
            ['gridTemplate-' + toColumnsOrRows(params[0])]: _,
          }
        );

      case 'flow':
        return (
          params.length > 1 && {
            gridAutoFlow: join(
              params[1] == 'col' ? ['column', ...tail(params, 2)] : tail(params),
              ' '
            ),
          }
        );
    }

    return display(params, context, id);
  },
  auto: (params, { theme: theme2 }) =>
    includes(['cols', 'rows'], params[0]) &&
    (_ = theme2(
      'gridAuto' + capitalize(toColumnsOrRows(params[0])),
      tail(params),
      join(tail(params))
    )) && {
      ['gridAuto-' + toColumnsOrRows(params[0])]: _,
    },

  static: position,
  fixed: position,
  absolute: position,
  relative: position,
  sticky: position,
  visible: { visibility: 'visible' },
  invisible: { visibility: 'hidden' },
  antialiased: {
    WebkitFontSmoothing: 'antialiased',
    MozOsxFontSmoothing: 'grayscale',
  },

  'subpixel-antialiased': {
    WebkitFontSmoothing: 'auto',
    MozOsxFontSmoothing: 'auto',
  },

  truncate: {
    overflow: 'hidden',
    whiteSpace: 'nowrap',
    textOverflow: 'ellipsis',
  },

  'sr-only': {
    position: 'absolute',
    width: '1px',
    height: '1px',
    padding: '0',
    margin: '-1px',
    overflow: 'hidden',
    whiteSpace: 'nowrap',
    clip: 'rect(0,0,0,0)',
    borderWidth: '0',
  },

  'not-sr-only': {
    position: 'static',
    width: 'auto',
    height: 'auto',
    padding: '0',
    margin: '0',
    overflow: 'visible',
    whiteSpace: 'normal',
    clip: 'auto',
  },

  resize: (params) => ({
    resize: { x: 'horizontal', y: 'vertical' }[params[0]] || params[0] || 'both',
  }),

  box: (params) => params[0] && { boxSizing: params[0] + '-box' },
  appearance: propertyValue(),
  cursor: themePropertyFallback(),
  float: propertyValue(),
  clear: propertyValue(),
  decoration: propertyValue('boxDecorationBreak'),
  isolate: { isolation: 'isolate' },
  isolation: propertyValue(),
  'mix-blend': propertyValue('mixBlendMode'),
  top: inset,
  right: inset,
  bottom: inset,
  left: inset,
  inset: (params, { theme: theme2 }) =>
    (_ = expandEdges(params[0]))
      ? edges(theme2('inset', tail(params)), params[0])
      : (_ = theme2('inset', params)) && {
          top: _,
          right: _,
          bottom: _,
          left: _,
        },

  underline: textDecoration,
  'line-through': textDecoration,
  'no-underline': alias(textDecoration, 'none'),
  'text-underline': alias(textDecoration, 'underline'),
  'text-no-underline': alias(textDecoration, 'none'),
  'text-line-through': alias(textDecoration, 'line-through'),
  uppercase: textTransform,
  lowercase: textTransform,
  capitalize: textTransform,
  'normal-case': alias(textTransform, 'none'),
  'text-normal-case': alias(textTransform, 'none'),
  italic: fontStyle,
  'not-italic': alias(fontStyle, 'normal'),
  'font-italic': alias(fontStyle, 'italic'),
  'font-not-italic': alias(fontStyle, 'normal'),
  font: (params, context, id) =>
    (_ = context.theme('fontFamily', params, ''))
      ? { fontFamily: _ }
      : themeProperty('fontWeight')(params, context, id),
  items: (params) =>
    params[0] && {
      alignItems: includes(['start', 'end'], params[0]) ? 'flex-' + params[0] : join(params),
    },

  'justify-self': propertyValue(),
  'justify-items': propertyValue(),
  justify: contentPluginFor('justifyContent'),
  content: contentPluginFor('alignContent'),
  self: contentPluginFor('alignSelf'),
  place: (params) => params[0] && placeHelper('place-' + params[0], tail(params)),
  overscroll: (params) =>
    params[0] && {
      ['overscrollBehavior' + (params[1] ? '-' + params[0] : '')]: params[1] || params[0],
    },

  col: gridPlugin('column'),
  row: gridPlugin('row'),
  duration: themeProperty('transitionDuration'),
  delay: themeProperty('transitionDelay'),
  tracking: themeProperty('letterSpacing'),
  leading: themeProperty('lineHeight'),
  z: themeProperty('zIndex'),
  opacity: themeProperty(),
  ease: themeProperty('transitionTimingFunction'),
  p: padding,
  py: padding,
  px: padding,
  pt: padding,
  pr: padding,
  pb: padding,
  pl: padding,
  m: margin,
  my: margin,
  mx: margin,
  mt: margin,
  mr: margin,
  mb: margin,
  ml: margin,
  w: themeProperty('width'),
  h: themeProperty('height'),
  min: minMax,
  max: minMax,
  fill: themeProperty(),
  order: themeProperty(),
  origin: themePropertyFallback('transformOrigin', ' '),
  select: propertyValue('userSelect'),
  'pointer-events': propertyValue(),
  align: propertyValue('verticalAlign'),
  whitespace: propertyValue('whiteSpace'),
  'normal-nums': { fontVariantNumeric: 'normal' },
  ordinal: fontVariantNumeric('ordinal'),
  'slashed-zero': fontVariantNumeric('slashed-zero'),
  'lining-nums': fontVariantNumeric('numeric-figure'),
  'oldstyle-nums': fontVariantNumeric('numeric-figure'),
  'proportional-nums': fontVariantNumeric('numeric-spacing'),
  'tabular-nums': fontVariantNumeric('numeric-spacing'),
  'diagonal-fractions': fontVariantNumeric('numeric-fraction'),
  'stacked-fractions': fontVariantNumeric('numeric-fraction'),
  overflow: (params, context, id) =>
    includes(['ellipsis', 'clip'], params[0])
      ? propertyValue('textOverflow')(params)
      : params[1]
      ? { ['overflow-' + params[0]]: params[1] }
      : propertyValue()(params, context, id),
  transform: (params) =>
    params[0] == 'none'
      ? { transform: 'none' }
      : {
          '--tw-translate-x': '0',
          '--tw-translate-y': '0',
          '--tw-rotate': '0',
          '--tw-skew-x': '0',
          '--tw-skew-y': '0',
          '--tw-scale-x': '1',
          '--tw-scale-y': '1',
          transform: transform(params[0] == 'gpu'),
        },

  rotate: (params, { theme: theme2 }) =>
    (_ = theme2('rotate', params)) && {
      '--tw-rotate': _,
      transform: [`rotate(${_})`, transform()],
    },

  scale: transformXYFunction,
  translate: transformXYFunction,
  skew: transformXYFunction,
  gap: (params, context, id) =>
    (_ = { x: 'column', y: 'row' }[params[0]])
      ? { [_ + 'Gap']: context.theme('gap', tail(params)) }
      : themeProperty('gap')(params, context, id),
  stroke: (params, context, id) =>
    (_ = context.theme('stroke', params, ''))
      ? { stroke: _ }
      : themeProperty('strokeWidth')(params, context, id),
  outline: (params, { theme: theme2 }) =>
    (_ = theme2('outline', params)) && {
      outline: _[0],
      outlineOffset: _[1],
    },

  'break-normal': {
    wordBreak: 'normal',
    overflowWrap: 'normal',
  },

  'break-words': { overflowWrap: 'break-word' },
  'break-all': { wordBreak: 'break-all' },
  text(params, { theme: theme2 }, id) {
    switch (params[0]) {
      case 'left':
      case 'center':
      case 'right':
      case 'justify':
        return { textAlign: params[0] };
      case 'uppercase':
      case 'lowercase':
      case 'capitalize':
        return textTransform([], _, params[0]);
      case 'opacity':
        return opacityProperty(params, theme2, id);
    }

    const fontSize = theme2('fontSize', params, '');
    if (fontSize) {
      return typeof fontSize == 'string'
        ? { fontSize }
        : {
            fontSize: fontSize[0],
            ...(typeof fontSize[1] == 'string' ? { lineHeight: fontSize[1] } : fontSize[1]),
          };
    }
    return withOpacityFallback('color', 'text', theme2('textColor', params));
  },
  bg(params, { theme: theme2 }, id) {
    switch (params[0]) {
      case 'fixed':
      case 'local':
      case 'scroll':
        return propertyValue('backgroundAttachment', ',')(params);
      case 'bottom':
      case 'center':
      case 'left':
      case 'right':
      case 'top':
        return propertyValue('backgroundPosition', ' ')(params);
      case 'no':
        return params[1] == 'repeat' && propertyValue('backgroundRepeat')(params);
      case 'repeat':
        return includes('xy', params[1])
          ? propertyValue('backgroundRepeat')(params)
          : { backgroundRepeat: params[1] || params[0] };
      case 'opacity':
        return opacityProperty(params, theme2, id, 'background');
      case 'clip':
      case 'origin':
        return (
          params[1] && {
            ['background-' + params[0]]: params[1] + (params[1] == 'text' ? '' : '-box'),
          }
        );

      case 'blend':
        return propertyValue('background-blend-mode')(tail(params));
      case 'gradient':
        if (params[1] == 'to' && (_ = expandEdges(params[2]))) {
          return {
            backgroundImage: `linear-gradient(to ${join(_, ' ')},var(--tw-gradient-stops))`,
          };
        }
    }

    return (_ = theme2('backgroundPosition', params, ''))
      ? { backgroundPosition: _ }
      : (_ = theme2('backgroundSize', params, ''))
      ? { backgroundSize: _ }
      : (_ = theme2('backgroundImage', params, ''))
      ? { backgroundImage: _ }
      : withOpacityFallback('backgroundColor', 'bg', theme2('backgroundColor', params));
  },
  from: (params, { theme: theme2 }) =>
    (_ = theme2('gradientColorStops', params)) && {
      '--tw-gradient-from': _,
      '--tw-gradient-stops': `var(--tw-gradient-from),var(--tw-gradient-to,${transparentTo(
        _
      )})`,
    },

  via: (params, { theme: theme2 }) =>
    (_ = theme2('gradientColorStops', params)) && {
      '--tw-gradient-stops': `var(--tw-gradient-from),${_},var(--tw-gradient-to,${transparentTo(
        _
      )})`,
    },

  to: (params, { theme: theme2 }) =>
    (_ = theme2('gradientColorStops', params)) && {
      '--tw-gradient-to': _,
    },

  border: (params, context, id) =>
    expandEdges(params[0])
      ? edges(context.theme('borderWidth', tail(params)), params[0], 'border', 'width')
      : border(params, context, id),
  divide: (params, context, id) =>
    (_ =
      reversableEdge(params, context, id, 'divideWidth', 'border', 'width') ||
      border(params, context, id)) && {
      '&>:not([hidden])~:not([hidden])': _,
    },

  space: (params, context, id) =>
    (_ = reversableEdge(params, context, id, 'space', 'margin')) && {
      '&>:not([hidden])~:not([hidden])': _,
    },

  placeholder: (params, { theme: theme2 }, id) =>
    (_ =
      params[0] == 'opacity'
        ? opacityProperty(params, theme2, id)
        : withOpacityFallback('color', 'placeholder', theme2('placeholderColor', params))) && {
      '&::placeholder': _,
    },

  shadow: (params, { theme: theme2 }) =>
    (_ = theme2('boxShadow', params)) && {
      ':global': {
        '*': {
          '--tw-shadow': '0 0 transparent',
        },
      },

      '--tw-shadow': _ == 'none' ? '0 0 transparent' : _,
      boxShadow: [
        _,
        `var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)`,
      ],
    },

  animate: (params, { theme: theme2, tag }) => {
    if (($ = theme2('animation', params))) {
      const parts = $.split(' ');
      if ((_ = theme2('keyframes', parts[0], (__ = {}))) !== __) {
        return (
          ($ = tag(parts[0])) && {
            animation: $ + ' ' + join(tail(parts), ' '),
            ['@keyframes ' + $]: _,
          }
        );
      }
      return { animation: $ };
    }
  },
  ring(params, { theme: theme2 }, id) {
    switch (params[0]) {
      case 'inset':
        return { '--tw-ring-inset': 'inset' };
      case 'opacity':
        return opacityProperty(params, theme2, id);
      case 'offset':
        return (_ = theme2('ringOffsetWidth', tail(params), ''))
          ? {
              '--tw-ring-offset-width': _,
            }
          : {
              '--tw-ring-offset-color': theme2('ringOffsetColor', tail(params)),
            };
    }

    return (_ = theme2('ringWidth', params, ''))
      ? {
          '--tw-ring-offset-shadow': `var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)`,
          '--tw-ring-shadow': `var(--tw-ring-inset) 0 0 0 calc(${_} + var(--tw-ring-offset-width)) var(--tw-ring-color)`,
          boxShadow: `var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)`,
          ':global': {
            '*': {
              '--tw-ring-inset': 'var(--tw-empty,/*!*/ /*!*/)',
              '--tw-ring-offset-width': theme2('ringOffsetWidth', '', '0px'),
              '--tw-ring-offset-color': theme2('ringOffsetColor', '', '#fff'),
              '--tw-ring-color': asRGBA(
                theme2('ringColor', '', '#93c5fd'),
                'ring-opacity',
                theme2('ringOpacity', '', '0.5')
              ),
              '--tw-ring-offset-shadow': '0 0 transparent',
              '--tw-ring-shadow': '0 0 transparent',
            },
          },
        }
      : {
          '--tw-ring-opacity': '1',
          '--tw-ring-color': asRGBA(theme2('ringColor', params), 'ring-opacity'),
        };
  },
  object: (params, context, id) =>
    includes(['contain', 'cover', 'fill', 'none', 'scale-down'], join(params))
      ? { objectFit: join(params) }
      : themePropertyFallback('objectPosition', ' ')(params, context, id),
  list: (params, context, id) =>
    join(params) == 'item'
      ? display(params, context, id)
      : includes(['inside', 'outside'], join(params))
      ? { listStylePosition: params[0] }
      : themePropertyFallback('listStyleType')(params, context, id),
  rounded: (params, context, id) =>
    corners(context.theme('borderRadius', tail(params), ''), params[0], 'border', 'radius') ||
    themeProperty('borderRadius')(params, context, id),
  'transition-none': { transitionProperty: 'none' },
  transition: (params, { theme: theme2 }) => ({
    transitionProperty: theme2('transitionProperty', params),
    transitionTimingFunction: theme2('transitionTimingFunction', ''),
    transitionDuration: theme2('transitionDuration', ''),
  }),

  container: (params, { theme: theme2 }) => {
    const { screens = theme2('screens'), center, padding: padding2 } = theme2('container');
    const paddingFor = (screen) =>
      (_ =
        padding2 &&
        (typeof padding2 == 'string' ? padding2 : padding2[screen] || padding2.DEFAULT))
        ? {
            paddingRight: _,
            paddingLeft: _,
          }
        : {};
    return Object.keys(screens).reduce(
      (rules2, screen) => {
        if (($ = screens[screen]) && typeof $ == 'string') {
          rules2[buildMediaQuery($)] = {
            '&': {
              'max-width': $,
              ...paddingFor(screen),
            },
          };
        }
        return rules2;
      },
      {
        width: '100%',
        ...(center ? { marginRight: 'auto', marginLeft: 'auto' } : {}),
        ...paddingFor('xs'),
      }
    );
  },
  filter,
  blur: filter,
  brightness: filter,
  contrast: filter,
  grayscale: filter,
  'hue-rotate': filter,
  invert: filter,
  saturate: filter,
  sepia: filter,
  'drop-shadow': filter,
  backdrop: filter,
};

// src/twind/preflight.ts
var createPreflight = (theme2) => ({
  ':root': { tabSize: 4 },
  'body,blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre,fieldset,ol,ul': { margin: '0' },
  button: { backgroundColor: 'transparent', backgroundImage: 'none' },
  'button,[type="button"],[type="reset"],[type="submit"]': { WebkitAppearance: 'button' },
  'button:focus': { outline: ['1px dotted', '5px auto -webkit-focus-ring-color'] },
  'fieldset,ol,ul,legend': { padding: '0' },
  'ol,ul': { listStyle: 'none' },
  html: {
    lineHeight: '1.5',
    WebkitTextSizeAdjust: '100%',
    fontFamily: theme2('fontFamily.sans', 'ui-sans-serif,system-ui,sans-serif'),
  },

  body: { fontFamily: 'inherit', lineHeight: 'inherit' },
  '*,::before,::after': {
    boxSizing: 'border-box',
    border: `0 solid ${theme2('borderColor.DEFAULT', 'currentColor')}`,
  },

  hr: { height: '0', color: 'inherit', borderTopWidth: '1px' },
  img: { borderStyle: 'solid' },
  textarea: { resize: 'vertical' },
  'input::placeholder,textarea::placeholder': {
    opacity: '1',
    color: theme2('placeholderColor.DEFAULT', theme2('colors.gray.400', '#a1a1aa')),
  },

  'button,[role="button"]': { cursor: 'pointer' },
  table: { textIndent: '0', borderColor: 'inherit', borderCollapse: 'collapse' },
  'h1,h2,h3,h4,h5,h6': { fontSize: 'inherit', fontWeight: 'inherit' },
  a: { color: 'inherit', textDecoration: 'inherit' },
  'button,input,optgroup,select,textarea': {
    fontFamily: 'inherit',
    fontSize: '100%',
    margin: '0',
    padding: '0',
    lineHeight: 'inherit',
    color: 'inherit',
  },

  'button,select': { textTransform: 'none' },
  '::-moz-focus-inner': { borderStyle: 'none', padding: '0' },
  ':-moz-focusring': { outline: '1px dotted ButtonText' },
  ':-moz-ui-invalid': { boxShadow: 'none' },
  progress: { verticalAlign: 'baseline' },
  '::-webkit-inner-spin-button,::-webkit-outer-spin-button': { height: 'auto' },
  '[type="search"]': { WebkitAppearance: 'textfield', outlineOffset: '-2px' },
  '::-webkit-search-decoration': { WebkitAppearance: 'none' },
  '::-webkit-file-upload-button': { WebkitAppearance: 'button', font: 'inherit' },
  summary: { display: 'list-item' },
  'abbr[title]': { textDecoration: 'underline dotted' },
  'b,strong': { fontWeight: 'bolder' },
  'pre,code,kbd,samp': {
    fontFamily: theme2('fontFamily', 'mono', 'ui-monospace,monospace'),
    fontSize: '1em',
  },

  'sub,sup': {
    fontSize: '75%',
    lineHeight: '0',
    position: 'relative',
    verticalAlign: 'baseline',
  },
  sub: { bottom: '-0.25em' },
  sup: { top: '-0.5em' },
  'img,svg,video,canvas,audio,iframe,embed,object': {
    display: 'block',
    verticalAlign: 'middle',
  },
  'img,video': { maxWidth: '100%', height: 'auto' },
});

// src/twind/variants.ts
var coreVariants = {
  dark: '@media (prefers-color-scheme:dark)',
  sticky: '@supports ((position: -webkit-sticky) or (position:sticky))',
  'motion-reduce': '@media (prefers-reduced-motion:reduce)',
  'motion-safe': '@media (prefers-reduced-motion:no-preference)',
  first: '&:first-child',
  last: '&:last-child',
  even: '&:nth-child(2n)',
  odd: '&:nth-child(odd)',
  children: '&>*',
  siblings: '&~*',
  sibling: '&+*',
  override: '&&',
};

// src/internal/dom.ts
var STYLE_ELEMENT_ID = '__twind';
var getStyleElement = (nonce) => {
  let element = self[STYLE_ELEMENT_ID];
  if (!element) {
    element = document.head.appendChild(document.createElement('style'));
    element.id = STYLE_ELEMENT_ID;
    nonce && (element.nonce = nonce);
    element.appendChild(document.createTextNode(''));
  }
  return element;
};

// src/twind/sheets.ts
var cssomSheet = ({ nonce, target = getStyleElement(nonce).sheet } = {}) => {
  const offset = target.cssRules.length;
  return {
    target,
    insert: (rule, index) => target.insertRule(rule, offset + index),
  };
};
var voidSheet = () => ({
  target: null,
  insert: noop,
});

// src/twind/modes.ts
var mode = (report) => ({
  unknown(section, key = [], optional, context) {
    if (!optional) {
      this.report({ id: 'UNKNOWN_THEME_VALUE', key: section + '.' + join(key) }, context);
    }
  },
  report({ id, ...info }) {
    return report(`[${id}] ${JSON.stringify(info)}`);
  },
});

var warn = /* @__PURE__ */ mode((message) => console.warn(message));
var strict = /* @__PURE__ */ mode((message) => {
  throw new Error(message);
});
var silent = /* @__PURE__ */ mode(noop);

// src/twind/prefix.ts
import {
  cssPropertyAlias,
  cssPropertyPrefixFlags,
  cssValuePrefixFlags,
} from './style-vendorizer.mjs';
var noprefix = (property2, value, important) =>
  `${property2}:${value}${important ? ' !important' : ''}`;
var autoprefix = (property2, value, important) => {
  let cssText = '';
  const propertyAlias = cssPropertyAlias(property2);
  if (propertyAlias) cssText += `${noprefix(propertyAlias, value, important)};`;
  let flags = cssPropertyPrefixFlags(property2);
  if (flags & 1) cssText += `-webkit-${noprefix(property2, value, important)};`;
  if (flags & 2) cssText += `-moz-${noprefix(property2, value, important)};`;
  if (flags & 4) cssText += `-ms-${noprefix(property2, value, important)};`;
  flags = cssValuePrefixFlags(property2, value);
  if (flags & 1) cssText += `${noprefix(property2, `-webkit-${value}`, important)};`;
  if (flags & 2) cssText += `${noprefix(property2, `-moz-${value}`, important)};`;
  if (flags & 4) cssText += `${noprefix(property2, `-ms-${value}`, important)};`;
  cssText += noprefix(property2, value, important);
  return cssText;
};

// src/twind/theme.ts
var ratios = (start, end) => {
  const result = {};
  do {
    for (let dividend = 1; dividend < start; dividend++) {
      result[`${dividend}/${start}`] = Number(((dividend / start) * 100).toFixed(6)) + '%';
    }
  } while (++start <= end);
  return result;
};
var exponential = (stop, unit, start = 0) => {
  const result = {};
  for (; start <= stop; start = start * 2 || 1) {
    result[start] = start + unit;
  }
  return result;
};
var linear = (stop, unit = '', divideBy = 1, start = 0, step = 1, result = {}) => {
  for (; start <= stop; start += step) {
    result[start] = start / divideBy + unit;
  }
  return result;
};
var alias2 = (section) => (theme2) => theme2(section);
var themeFactory = (args, { theme: theme2 }) => theme2(...args);
var theme = (...args) => directive(themeFactory, args);
var defaultTheme = {
  screens: {
    sm: '640px',
    md: '768px',
    lg: '1024px',
    xl: '1280px',
    '2xl': '1536px',
  },

  colors: {
    transparent: 'transparent',
    current: 'currentColor',
    black: '#000',
    white: '#fff',
    gray: {
      50: '#f9fafb',
      100: '#f3f4f6',
      200: '#e5e7eb',
      300: '#d1d5db',
      400: '#9ca3af',
      500: '#6b7280',
      600: '#4b5563',
      700: '#374151',
      800: '#1f2937',
      900: '#111827',
    },

    red: {
      50: '#fef2f2',
      100: '#fee2e2',
      200: '#fecaca',
      300: '#fca5a5',
      400: '#f87171',
      500: '#ef4444',
      600: '#dc2626',
      700: '#b91c1c',
      800: '#991b1b',
      900: '#7f1d1d',
    },

    yellow: {
      50: '#fffbeb',
      100: '#fef3c7',
      200: '#fde68a',
      300: '#fcd34d',
      400: '#fbbf24',
      500: '#f59e0b',
      600: '#d97706',
      700: '#b45309',
      800: '#92400e',
      900: '#78350f',
    },

    green: {
      50: '#ecfdf5',
      100: '#d1fae5',
      200: '#a7f3d0',
      300: '#6ee7b7',
      400: '#34d399',
      500: '#10b981',
      600: '#059669',
      700: '#047857',
      800: '#065f46',
      900: '#064e3b',
    },

    blue: {
      50: '#eff6ff',
      100: '#dbeafe',
      200: '#bfdbfe',
      300: '#93c5fd',
      400: '#60a5fa',
      500: '#3b82f6',
      600: '#2563eb',
      700: '#1d4ed8',
      800: '#1e40af',
      900: '#1e3a8a',
    },

    indigo: {
      50: '#eef2ff',
      100: '#e0e7ff',
      200: '#c7d2fe',
      300: '#a5b4fc',
      400: '#818cf8',
      500: '#6366f1',
      600: '#4f46e5',
      700: '#4338ca',
      800: '#3730a3',
      900: '#312e81',
    },

    purple: {
      50: '#f5f3ff',
      100: '#ede9fe',
      200: '#ddd6fe',
      300: '#c4b5fd',
      400: '#a78bfa',
      500: '#8b5cf6',
      600: '#7c3aed',
      700: '#6d28d9',
      800: '#5b21b6',
      900: '#4c1d95',
    },

    pink: {
      50: '#fdf2f8',
      100: '#fce7f3',
      200: '#fbcfe8',
      300: '#f9a8d4',
      400: '#f472b6',
      500: '#ec4899',
      600: '#db2777',
      700: '#be185d',
      800: '#9d174d',
      900: '#831843',
    },
  },

  spacing: {
    px: '1px',
    0: '0px',
    .../* @__PURE__ */ linear(4, 'rem', 4, 0.5, 0.5),
    .../* @__PURE__ */ linear(12, 'rem', 4, 5),
    14: '3.5rem',
    .../* @__PURE__ */ linear(64, 'rem', 4, 16, 4),
    72: '18rem',
    80: '20rem',
    96: '24rem',
  },

  durations: {
    75: '75ms',
    100: '100ms',
    150: '150ms',
    200: '200ms',
    300: '300ms',
    500: '500ms',
    700: '700ms',
    1e3: '1000ms',
  },

  animation: {
    none: 'none',
    spin: 'spin 1s linear infinite',
    ping: 'ping 1s cubic-bezier(0, 0, 0.2, 1) infinite',
    pulse: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite',
    bounce: 'bounce 1s infinite',
  },

  backdropBlur: /* @__PURE__ */ alias2('blur'),
  backdropBrightness: /* @__PURE__ */ alias2('brightness'),
  backdropContrast: /* @__PURE__ */ alias2('contrast'),
  backdropGrayscale: /* @__PURE__ */ alias2('grayscale'),
  backdropHueRotate: /* @__PURE__ */ alias2('hueRotate'),
  backdropInvert: /* @__PURE__ */ alias2('invert'),
  backdropOpacity: /* @__PURE__ */ alias2('opacity'),
  backdropSaturate: /* @__PURE__ */ alias2('saturate'),
  backdropSepia: /* @__PURE__ */ alias2('sepia'),
  backgroundColor: /* @__PURE__ */ alias2('colors'),
  backgroundImage: {
    none: 'none',
  },

  backgroundOpacity: /* @__PURE__ */ alias2('opacity'),
  backgroundSize: {
    auto: 'auto',
    cover: 'cover',
    contain: 'contain',
  },

  blur: {
    0: '0',
    sm: '4px',
    DEFAULT: '8px',
    md: '12px',
    lg: '16px',
    xl: '24px',
    '2xl': '40px',
    '3xl': '64px',
  },

  brightness: {
    .../* @__PURE__ */ linear(200, '', 100, 0, 50),
    .../* @__PURE__ */ linear(110, '', 100, 90, 5),
    75: '0.75',
    125: '1.25',
  },

  borderColor: (theme2) => ({
    ...theme2('colors'),
    DEFAULT: theme2('colors.gray.200', 'currentColor'),
  }),

  borderOpacity: /* @__PURE__ */ alias2('opacity'),
  borderRadius: {
    none: '0px',
    sm: '0.125rem',
    DEFAULT: '0.25rem',
    md: '0.375rem',
    lg: '0.5rem',
    xl: '0.75rem',
    '2xl': '1rem',
    '3xl': '1.5rem',
    '1/2': '50%',
    full: '9999px',
  },

  borderWidth: {
    DEFAULT: '1px',
    .../* @__PURE__ */ exponential(8, 'px'),
  },

  boxShadow: {
    sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
    DEFAULT: '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)',
    md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
    lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
    xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
    '2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.25)',
    inner: 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)',
    none: 'none',
  },

  contrast: {
    .../* @__PURE__ */ linear(200, '', 100, 0, 50),
    75: '0.75',
    125: '1.25',
  },

  divideColor: /* @__PURE__ */ alias2('borderColor'),
  divideOpacity: /* @__PURE__ */ alias2('borderOpacity'),
  divideWidth: /* @__PURE__ */ alias2('borderWidth'),
  dropShadow: {
    sm: '0 1px 1px rgba(0,0,0,0.05)',
    DEFAULT: ['0 1px 2px rgba(0, 0, 0, 0.1)', '0 1px 1px rgba(0, 0, 0, 0.06)'],
    md: ['0 4px 3px rgba(0, 0, 0, 0.07)', '0 2px 2px rgba(0, 0, 0, 0.06)'],
    lg: ['0 10px 8px rgba(0, 0, 0, 0.04)', '0 4px 3px rgba(0, 0, 0, 0.1)'],
    xl: ['0 20px 13px rgba(0, 0, 0, 0.03)', '0 8px 5px rgba(0, 0, 0, 0.08)'],
    '2xl': '0 25px 25px rgba(0, 0, 0, 0.15)',
    none: '0 0 #0000',
  },

  fill: { current: 'currentColor' },
  grayscale: {
    0: '0',
    DEFAULT: '100%',
  },

  hueRotate: {
    0: '0deg',
    15: '15deg',
    30: '30deg',
    60: '60deg',
    90: '90deg',
    180: '180deg',
  },

  invert: {
    0: '0',
    DEFAULT: '100%',
  },

  flex: {
    1: '1 1 0%',
    auto: '1 1 auto',
    initial: '0 1 auto',
    none: 'none',
  },

  fontFamily: {
    sans: 'ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"'.split(
      ','
    ),
    serif: 'ui-serif,Georgia,Cambria,"Times New Roman",Times,serif'.split(','),
    mono: 'ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace'.split(
      ','
    ),
  },

  fontSize: {
    xs: ['0.75rem', '1rem'],
    sm: ['0.875rem', '1.25rem'],
    base: ['1rem', '1.5rem'],
    lg: ['1.125rem', '1.75rem'],
    xl: ['1.25rem', '1.75rem'],
    '2xl': ['1.5rem', '2rem'],
    '3xl': ['1.875rem', '2.25rem'],
    '4xl': ['2.25rem', '2.5rem'],
    '5xl': ['3rem', '1'],
    '6xl': ['3.75rem', '1'],
    '7xl': ['4.5rem', '1'],
    '8xl': ['6rem', '1'],
    '9xl': ['8rem', '1'],
  },

  fontWeight: {
    thin: '100',
    extralight: '200',
    light: '300',
    normal: '400',
    medium: '500',
    semibold: '600',
    bold: '700',
    extrabold: '800',
    black: '900',
  },

  gridTemplateColumns: {},
  gridTemplateRows: {},
  gridAutoColumns: {
    min: 'min-content',
    max: 'max-content',
    fr: 'minmax(0,1fr)',
  },

  gridAutoRows: {
    min: 'min-content',
    max: 'max-content',
    fr: 'minmax(0,1fr)',
  },

  gridColumn: {
    auto: 'auto',
    'span-full': '1 / -1',
  },

  gridRow: {
    auto: 'auto',
    'span-full': '1 / -1',
  },

  gap: /* @__PURE__ */ alias2('spacing'),
  gradientColorStops: /* @__PURE__ */ alias2('colors'),
  height: (theme2) => ({
    auto: 'auto',
    ...theme2('spacing'),
    ...ratios(2, 6),
    full: '100%',
    screen: '100vh',
  }),

  inset: (theme2) => ({
    auto: 'auto',
    ...theme2('spacing'),
    ...ratios(2, 4),
    full: '100%',
  }),

  keyframes: {
    spin: {
      from: {
        transform: 'rotate(0deg)',
      },

      to: {
        transform: 'rotate(360deg)',
      },
    },

    ping: {
      '0%': {
        transform: 'scale(1)',
        opacity: '1',
      },

      '75%,100%': {
        transform: 'scale(2)',
        opacity: '0',
      },
    },

    pulse: {
      '0%,100%': {
        opacity: '1',
      },

      '50%': {
        opacity: '.5',
      },
    },

    bounce: {
      '0%, 100%': {
        transform: 'translateY(-25%)',
        animationTimingFunction: 'cubic-bezier(0.8,0,1,1)',
      },

      '50%': {
        transform: 'none',
        animationTimingFunction: 'cubic-bezier(0,0,0.2,1)',
      },
    },
  },

  letterSpacing: {
    tighter: '-0.05em',
    tight: '-0.025em',
    normal: '0em',
    wide: '0.025em',
    wider: '0.05em',
    widest: '0.1em',
  },

  lineHeight: {
    none: '1',
    tight: '1.25',
    snug: '1.375',
    normal: '1.5',
    relaxed: '1.625',
    loose: '2',
    .../* @__PURE__ */ linear(10, 'rem', 4, 3),
  },

  margin: (theme2) => ({
    auto: 'auto',
    ...theme2('spacing'),
  }),

  maxHeight: (theme2) => ({
    ...theme2('spacing'),
    full: '100%',
    screen: '100vh',
  }),

  maxWidth: (theme2, { breakpoints }) => ({
    none: 'none',
    0: '0rem',
    xs: '20rem',
    sm: '24rem',
    md: '28rem',
    lg: '32rem',
    xl: '36rem',
    '2xl': '42rem',
    '3xl': '48rem',
    '4xl': '56rem',
    '5xl': '64rem',
    '6xl': '72rem',
    '7xl': '80rem',
    full: '100%',
    min: 'min-content',
    max: 'max-content',
    prose: '65ch',
    ...breakpoints(theme2('screens')),
  }),

  minHeight: {
    0: '0px',
    full: '100%',
    screen: '100vh',
  },

  minWidth: {
    0: '0px',
    full: '100%',
    min: 'min-content',
    max: 'max-content',
  },

  opacity: {
    .../* @__PURE__ */ linear(100, '', 100, 0, 10),
    5: '0.05',
    25: '0.25',
    75: '0.75',
    95: '0.95',
  },

  order: {
    first: '-9999',
    last: '9999',
    none: '0',
    .../* @__PURE__ */ linear(12, '', 1, 1),
  },

  outline: {
    none: ['2px solid transparent', '2px'],
    white: ['2px dotted white', '2px'],
    black: ['2px dotted black', '2px'],
  },

  padding: /* @__PURE__ */ alias2('spacing'),
  placeholderColor: /* @__PURE__ */ alias2('colors'),
  placeholderOpacity: /* @__PURE__ */ alias2('opacity'),
  ringColor: (theme2) => ({
    DEFAULT: theme2('colors.blue.500', '#3b82f6'),
    ...theme2('colors'),
  }),

  ringOffsetColor: /* @__PURE__ */ alias2('colors'),
  ringOffsetWidth: /* @__PURE__ */ exponential(8, 'px'),
  ringOpacity: (theme2) => ({
    DEFAULT: '0.5',
    ...theme2('opacity'),
  }),

  ringWidth: {
    DEFAULT: '3px',
    .../* @__PURE__ */ exponential(8, 'px'),
  },

  rotate: {
    .../* @__PURE__ */ exponential(2, 'deg'),
    .../* @__PURE__ */ exponential(12, 'deg', 3),
    .../* @__PURE__ */ exponential(180, 'deg', 45),
  },

  saturate: /* @__PURE__ */ linear(200, '', 100, 0, 50),
  scale: {
    .../* @__PURE__ */ linear(150, '', 100, 0, 50),
    .../* @__PURE__ */ linear(110, '', 100, 90, 5),
    75: '0.75',
    125: '1.25',
  },

  sepia: {
    0: '0',
    DEFAULT: '100%',
  },

  skew: {
    .../* @__PURE__ */ exponential(2, 'deg'),
    .../* @__PURE__ */ exponential(12, 'deg', 3),
  },

  space: /* @__PURE__ */ alias2('spacing'),
  stroke: {
    current: 'currentColor',
  },

  strokeWidth: /* @__PURE__ */ linear(2),
  textColor: /* @__PURE__ */ alias2('colors'),
  textOpacity: /* @__PURE__ */ alias2('opacity'),
  transitionDuration: (theme2) => ({
    DEFAULT: '150ms',
    ...theme2('durations'),
  }),

  transitionDelay: /* @__PURE__ */ alias2('durations'),
  transitionProperty: {
    none: 'none',
    all: 'all',
    DEFAULT:
      'background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter',
    colors: 'background-color,border-color,color,fill,stroke',
    opacity: 'opacity',
    shadow: 'box-shadow',
    transform: 'transform',
  },

  transitionTimingFunction: {
    DEFAULT: 'cubic-bezier(0.4,0,0.2,1)',
    linear: 'linear',
    in: 'cubic-bezier(0.4,0,1,1)',
    out: 'cubic-bezier(0,0,0.2,1)',
    'in-out': 'cubic-bezier(0.4,0,0.2,1)',
  },

  translate: (theme2) => ({
    ...theme2('spacing'),
    ...ratios(2, 4),
    full: '100%',
  }),

  width: (theme2) => ({
    auto: 'auto',
    ...theme2('spacing'),
    ...ratios(2, 6),
    ...ratios(12, 12),
    screen: '100vw',
    full: '100%',
    min: 'min-content',
    max: 'max-content',
  }),

  zIndex: {
    auto: 'auto',
    .../* @__PURE__ */ linear(50, '', 1, 0, 10),
  },
};

var flattenColorPalette = (colors, target = {}, prefix = []) => {
  Object.keys(colors).forEach((property2) => {
    const value = colors[property2];
    if (property2 == 'DEFAULT') {
      target[join(prefix)] = value;
      target[join(prefix, '.')] = value;
    }
    const key = [...prefix, property2];
    target[join(key)] = value;
    target[join(key, '.')] = value;
    if (value && typeof value == 'object') {
      flattenColorPalette(value, target, key);
    }
  }, target);
  return target;
};
var resolveContext = {
  negative: () => ({}),
  breakpoints: (screens) =>
    Object.keys(screens)
      .filter((key) => typeof screens[key] == 'string')
      .reduce((target, key) => {
        target['screen-' + key] = screens[key];
        return target;
      }, {}),
};

var handleArbitraryValues = (section, key) =>
  (key = key[0] == '[' && key.slice(-1) == ']' && key.slice(1, -1)) &&
  includes(section, 'olor') == /^(#|(hsl|rgb)a?\(|[a-z]+$)/.test(key) &&
  (includes(key, 'calc(')
    ? key.replace(
        /(-?\d*\.?\d(?!\b-.+[,)](?![^+\-/*])\D)(?:%|[a-z]+)?|\))([+\-/*])/g,
        '$1 $2 '
      )
    : key);
var makeThemeResolver = (config) => {
  const cache = new Map();
  const theme2 = { ...defaultTheme, ...config };
  const deref = (theme3, section) => {
    const base = theme3 && theme3[section];
    const value = typeof base == 'function' ? base(resolve, resolveContext) : base;
    return value && section == 'colors' ? flattenColorPalette(value) : value;
  };
  const resolve = (section, key, defaultValue) => {
    const keypath = section.split('.');
    section = keypath[0];
    if (keypath.length > 1) {
      defaultValue = key;
      key = join(tail(keypath), '.');
    }
    let base = cache.get(section);
    if (!base) {
      cache.set(section, (base = { ...deref(theme2, section) }));
      Object.assign(base, deref(theme2.extend, section));
    }
    if (key != null) {
      key = (Array.isArray(key) ? join(key) : key) || 'DEFAULT';
      const value = handleArbitraryValues(section, key) || base[key];
      return value == null
        ? defaultValue
        : Array.isArray(value) && !includes(['fontSize', 'outline', 'dropShadow'], section)
        ? join(value, ',')
        : value;
    }
    return base;
  };
  return resolve;
};

// src/twind/translate.ts
var translate = (plugins, context) => (rule, isTranslating) => {
  if (typeof rule.d == 'function') {
    return rule.d(context);
  }
  const parameters = rule.d.split(/-(?![^[]*])/g);
  if (!isTranslating && parameters[0] == 'tw' && rule.$ == rule.d) {
    return rule.$;
  }
  for (let index = parameters.length; index; index--) {
    const id = join(parameters.slice(0, index));
    const plugin = plugins[id];
    if (plugin) {
      return typeof plugin == 'function'
        ? plugin(tail(parameters, index), context, id)
        : typeof plugin == 'string'
        ? context[isTranslating ? 'css' : 'tw'](plugin)
        : plugin;
    }
  }
};

// src/twind/decorate.ts
var _2;
var GROUP_RE = /^:(group(?:(?!-focus).+?)*)-(.+)$/;
var NOT_PREFIX_RE = /^(:not)-(.+)/;
var prepareVariantSelector = (variant) => (variant[1] == '[' ? tail(variant) : variant);
var decorate = (darkMode, variants, { theme: theme2, tag }) => {
  const applyVariant = (translation, variant) => {
    if ((_2 = theme2('screens', tail(variant), ''))) {
      return { [buildMediaQuery(_2)]: translation };
    }
    if (variant == ':dark' && darkMode == 'class') {
      return { '.dark &': translation };
    }
    if ((_2 = GROUP_RE.exec(variant))) {
      return { [`.${escape(tag(_2[1]))}:${_2[2]} &`]: translation };
    }
    return {
      [variants[tail(variant)] ||
      '&' +
        variant.replace(
          NOT_PREFIX_RE,
          (_4, not, variant2) => not + '(' + prepareVariantSelector(':' + variant2) + ')'
        )]: translation,
    };
  };
  return (translation, rule) => rule.v.reduceRight(applyVariant, translation);
};

// src/twind/presedence.ts
var _3;
var responsivePrecedence = (css) =>
  (((_3 = /(?:^|min-width: *)(\d+(?:.\d+)?)(p)?/.exec(css))
    ? +_3[1] / (_3[2] ? 15 : 1) / 10
    : 0) &
    31) <<
  22;
var seperatorPrecedence = (string) => {
  _3 = 0;
  for (let index = string.length; index--; ) {
    _3 += includes('-:,', string[index]);
  }
  return _3;
};
var atRulePresedence = (css) => (seperatorPrecedence(css) & 15) << 18;
var PRECEDENCES_BY_PSEUDO_CLASS = [
  'rst',
  'st',
  'en',
  'd',
  'nk',
  'sited',
  'pty',
  'ecked',
  'cus-w',
  'ver',
  'cus',
  'cus-v',
  'tive',
  'sable',
  'ad-on',
  'tiona',
  'quire',
];

var pseudoPrecedence = (pseudoClass) =>
  1 <<
  (~(_3 = PRECEDENCES_BY_PSEUDO_CLASS.indexOf(
    pseudoClass.replace(GROUP_RE, ':$2').slice(3, 8)
  ))
    ? _3
    : 17);
var makeVariantPresedenceCalculator = (theme2, variants) => (presedence, variant) =>
  presedence |
  ((_3 = theme2('screens', tail(variant), ''))
    ? (1 << 27) | responsivePrecedence(buildMediaQuery(_3))
    : variant == ':dark'
    ? 1 << 30
    : (_3 = variants[variant] || variant.replace(NOT_PREFIX_RE, ':$2'))[0] == '@'
    ? atRulePresedence(_3)
    : pseudoPrecedence(variant));
var declarationPropertyPrecedence = (property2) =>
  property2[0] == '-'
    ? 0
    : seperatorPrecedence(property2) +
      ((_3 = /^(?:(border-(?!w|c|sty)|[tlbr].{2,4}m?$|c.{7}$)|([fl].{5}l|g.{8}$|pl))/.exec(
        property2
      ))
        ? +!!_3[1] || -!!_3[2]
        : 0) +
      1;

// src/twind/serialize.ts
var stringifyBlock = (body, selector) => selector + '{' + body + '}';
var serialize = (prefix, variants, context) => {
  const { theme: theme2, tag } = context;
  const tagVar = (_4, property2) => '--' + tag(property2);
  const tagVars = (value) => `${value}`.replace(/--(tw-[\w-]+)\b/g, tagVar);
  const stringifyDeclaration = (property2, value, important) => {
    property2 = tagVars(property2);
    return Array.isArray(value)
      ? join(
          value.filter(Boolean).map((value2) => prefix(property2, tagVars(value2), important)),
          ';'
        )
      : prefix(property2, tagVars(value), important);
  };
  let rules2;
  const stringify3 = (atRules, selector, presedence, css, important) => {
    if (Array.isArray(css)) {
      css.forEach(
        (css2) => css2 && stringify3(atRules, selector, presedence, css2, important)
      );
      return;
    }
    let declarations = '';
    let maxPropertyPresedence = 0;
    let numberOfDeclarations = 0;
    if (css['@apply']) {
      css = merge(
        evalThunk(apply(css['@apply']), context),
        { ...css, '@apply': void 0 },
        context
      );
    }
    Object.keys(css).forEach((key) => {
      const value = evalThunk(css[key], context);
      if (isCSSProperty(key, value)) {
        if (value !== '' && key.length > 1) {
          const property2 = hyphenate(key);
          numberOfDeclarations += 1;
          maxPropertyPresedence = Math.max(
            maxPropertyPresedence,
            declarationPropertyPrecedence(property2)
          );
          declarations =
            (declarations && declarations + ';') +
            stringifyDeclaration(property2, value, important);
        }
      } else if (value) {
        if (key == ':global') {
          key = '@global';
        }
        if (key[0] == '@') {
          if (key[1] == 'g') {
            stringify3([], '', 0, value, important);
          } else if (key[1] == 'f') {
            stringify3([], key, 0, value, important);
          } else if (key[1] == 'k') {
            const currentSize = rules2.length;
            stringify3([], '', 0, value, important);
            const waypoints = rules2.splice(currentSize, rules2.length - currentSize);
            rules2.push({
              r: stringifyBlock(
                join(
                  waypoints.map((p) => p.r),
                  ''
                ),
                key
              ),
              p: waypoints.reduce((sum, p) => sum + p.p, 0),
            });
          } else if (key[1] == 'i') {
            (Array.isArray(value) ? value : [value]).forEach(
              (value2) => value2 && rules2.push({ p: 0, r: `${key} ${value2};` })
            );
          } else {
            if (key[2] == 'c') {
              key = buildMediaQuery(context.theme('screens', tail(key, 8).trim()));
            }
            stringify3(
              [...atRules, key],
              selector,
              presedence | responsivePrecedence(key) | atRulePresedence(key),
              value,
              important
            );
          }
        } else {
          stringify3(
            atRules,
            selector
              ? join(
                  selector.split(/,(?![^[]*])/g).map((selectorPart) =>
                    join(
                      key
                        .split(/,(?![^[]*])/g)
                        .map((keyPart) =>
                          includes(keyPart, '&')
                            ? keyPart.replace(/&/g, selectorPart)
                            : (selectorPart && selectorPart + ' ') + keyPart
                        ),
                      ','
                    )
                  ),
                  ','
                )
              : key,
            presedence,
            value,
            important
          );
        }
      }
    });
    if (numberOfDeclarations) {
      rules2.push({
        r: atRules.reduceRight(stringifyBlock, stringifyBlock(declarations, selector)),
        p:
          presedence * (1 << 8) +
          (((Math.max(0, 15 - numberOfDeclarations) & 15) << 4) |
            ((maxPropertyPresedence || 15) & 15)),
      });
    }
  };
  const variantPresedence = makeVariantPresedenceCalculator(theme2, variants);
  return (css, className, rule, layer = 0) => {
    layer <<= 28;
    rules2 = [];
    stringify3(
      [],
      className ? '.' + escape(className) : '',
      rule ? rule.v.reduceRight(variantPresedence, layer) : layer,
      css,
      rule && rule.i
    );
    return rules2;
  };
};

// src/twind/inject.ts
var inject = (sheet, mode2, init, context) => {
  let sortedPrecedences;
  init((value = []) => (sortedPrecedences = value));
  let insertedRules;
  init((value = new Set()) => (insertedRules = value));
  return ({ r: css, p: presedence }) => {
    if (!insertedRules.has(css)) {
      insertedRules.add(css);
      const index = sortedInsertionIndex(sortedPrecedences, presedence);
      try {
        sheet.insert(css, index);
        sortedPrecedences.splice(index, 0, presedence);
      } catch (error) {
        if (!/:-[mwo]/.test(css)) {
          mode2.report({ id: 'INJECT_CSS_ERROR', css, error }, context);
        }
      }
    }
  };
};

// src/twind/configure.ts
var sanitize = (value, defaultValue, disabled, enabled = defaultValue) =>
  value === false ? disabled : value === true ? enabled : value || defaultValue;
var loadMode = (mode2) =>
  (typeof mode2 == 'string' ? { t: strict, a: warn, i: silent }[mode2[1]] : mode2) || warn;
var stringifyVariant = (selector, variant) =>
  selector + (variant[1] == ':' ? tail(variant, 2) + ':' : tail(variant)) + ':';
var stringify2 = (rule, directive2 = rule.d) =>
  typeof directive2 == 'function'
    ? ''
    : rule.v.reduce(stringifyVariant, '') +
      (rule.i ? '!' : '') +
      (rule.n ? '-' : '') +
      directive2;
var COMPONENT_PROPS = { _: { value: '', writable: true } };
var configure = (config = {}) => {
  const theme2 = makeThemeResolver(config.theme);
  const mode2 = loadMode(config.mode);
  const hash = sanitize(config.hash, false, false, cyrb32);
  const important = config.important;
  let activeRule = { v: [] };
  let translateDepth = 0;
  const lastTranslations = [];
  const context = {
    tw: (...tokens) => process(tokens),
    theme: (section, key, defaultValue) => {
      var _a;
      const value =
        (_a = theme2(section, key, defaultValue)) != null
          ? _a
          : mode2.unknown(
              section,
              key == null || Array.isArray(key) ? key : key.split('.'),
              defaultValue != null,
              context
            );
      return activeRule.n && value && includes('rg', (typeof value)[5])
        ? `calc(${value} * -1)`
        : value;
    },
    tag: (value) => (hash ? hash(value) : value),
    css: (rules2) => {
      translateDepth++;
      const lastTranslationsIndex = lastTranslations.length;
      try {
        (typeof rules2 == 'string' ? parse([rules2]) : rules2).forEach(convert);
        const css = Object.create(null, COMPONENT_PROPS);
        for (let index = lastTranslationsIndex; index < lastTranslations.length; index++) {
          const translation = lastTranslations[index];
          if (translation) {
            switch (typeof translation) {
              case 'object':
                merge(css, translation, context);
                break;
              case 'string':
                css._ += (css._ && ' ') + translation;
            }
          }
        }
        return css;
      } finally {
        lastTranslations.length = lastTranslationsIndex;
        translateDepth--;
      }
    },
  };

  const translate2 = translate({ ...corePlugins, ...config.plugins }, context);
  const doTranslate = (rule) => {
    const parentRule = activeRule;
    activeRule = rule;
    try {
      return evalThunk(translate2(rule), context);
    } finally {
      activeRule = parentRule;
    }
  };
  const variants = { ...coreVariants, ...config.variants };
  const decorate2 = decorate(config.darkMode || 'media', variants, context);
  const serialize2 = serialize(
    sanitize(config.prefix, autoprefix, noprefix),
    variants,
    context
  );
  const sheet =
    config.sheet || (typeof window == 'undefined' ? voidSheet() : cssomSheet(config));
  const { init = (callback) => callback() } = sheet;
  const inject2 = inject(sheet, mode2, init, context);
  let idToClassName;
  init((value = new Map()) => (idToClassName = value));
  const inlineDirectiveName = new WeakMap();
  const evaluateFunctions = (key, value) =>
    key == '_'
      ? void 0
      : typeof value == 'function'
      ? JSON.stringify(evalThunk(value, context), evaluateFunctions)
      : value;
  const convert = (rule) => {
    if (!translateDepth && activeRule.v.length) {
      rule = { ...rule, v: [...activeRule.v, ...rule.v], $: '' };
    }
    if (!rule.$) {
      rule.$ = stringify2(rule, inlineDirectiveName.get(rule.d));
    }
    let className = translateDepth ? null : idToClassName.get(rule.$);
    if (className == null) {
      let translation = doTranslate(rule);
      if (!rule.$) {
        rule.$ = cyrb32(JSON.stringify(translation, evaluateFunctions));
        inlineDirectiveName.set(rule.d, rule.$);
        rule.$ = stringify2(rule, rule.$);
      }
      if (translation && typeof translation == 'object') {
        rule.v = rule.v.map(prepareVariantSelector);
        if (important) rule.i = important;
        translation = decorate2(translation, rule);
        if (translateDepth) {
          lastTranslations.push(translation);
        } else {
          const layer =
            typeof rule.d == 'function' ? (typeof translation._ == 'string' ? 1 : 3) : 2;
          className =
            hash || typeof rule.d == 'function' ? (hash || cyrb32)(layer + rule.$) : rule.$;
          serialize2(translation, className, rule, layer).forEach(inject2);
          if (translation._) {
            className += ' ' + translation._;
          }
        }
      } else {
        if (typeof translation == 'string') {
          className = translation;
        } else {
          className = rule.$;
          mode2.report({ id: 'UNKNOWN_DIRECTIVE', rule: className }, context);
        }
        if (translateDepth && typeof rule.d !== 'function') {
          lastTranslations.push(className);
        }
      }
      if (!translateDepth) {
        idToClassName.set(rule.$, className);
        ensureMaxSize(idToClassName, 3e4);
      }
    }
    return className;
  };
  const process = (tokens) => join(parse(tokens).map(convert).filter(Boolean), ' ');
  const preflight = sanitize(config.preflight, identity, false);
  if (preflight) {
    const css = createPreflight(theme2);
    const styles = serialize2(
      typeof preflight == 'function'
        ? evalThunk(preflight(css, context), context) || css
        : { ...css, ...preflight }
    );
    init((injected = (styles.forEach(inject2), true)) => injected);
  }
  return {
    init: () => mode2.report({ id: 'LATE_SETUP_CALL' }, context),
    process,
  };
};

// src/twind/instance.ts
var create = (config) => {
  let process = (tokens) => {
    init();
    return process(tokens);
  };
  let init = (config2) => {
    ({ process, init } = configure(config2));
  };
  if (config) init(config);
  let context;
  const fromContext = (key) => () => {
    if (!context) {
      process([
        (_4) => {
          context = _4;
          return '';
        },
      ]);
    }
    return context[key];
  };
  return {
    tw: Object.defineProperties((...tokens) => process(tokens), {
      theme: {
        get: fromContext('theme'),
      },
    }),

    setup: (config2) => init(config2),
  };
};

// src/twind/default.ts
var { tw, setup } = /* @__PURE__ */ create();
export {
  apply,
  autoprefix,
  create,
  cssomSheet,
  directive,
  cyrb32 as hash,
  mode,
  noprefix,
  setup,
  silent,
  strict,
  theme,
  tw,
  voidSheet,
  warn,
};