{"version":3,"file":"index.cjs","sources":["../node_modules/tslib/tslib.es6.mjs","../src/loadFonts.ts","../src/icons/lwcIconColored.ts","../src/icons/crossIcon.ts","../src/lwc-element.ts","../node_modules/@twind/core/core.js","../node_modules/@twind/preset-tailwind/baseTheme.js","../node_modules/@twind/preset-tailwind/preflight.js","../node_modules/@twind/preset-tailwind/rules.js","../node_modules/@twind/preset-tailwind/variants.js","../node_modules/@twind/preset-tailwind/_/colors-16fd59b8.js","../node_modules/@twind/preset-tailwind/preset-tailwind.js","../node_modules/@twind/preset-tailwind/base.js","../node_modules/@twind/with-web-components/with-web-components.js","../src/twind/withTwind.ts","../src/connectors/lwc-connector.ts","../src/icons/puzzleIcon.ts","../src/icons/albyIcon.ts","../src/connectors/lwc-extension-connector.ts","../src/icons/nwcIcon.ts","../src/connectors/lwc-alby-nwc-connector.ts","../src/icons/lwcIcon.ts","../src/connectors/lwc-nwc-connector.ts","../src/lwc-connector-list.ts","../src/lwc-modal.ts","../src/lwc-button.ts"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose;\n    if (async) {\n        if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n        dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n        if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n        dispose = value[Symbol.dispose];\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","let appendedFonts = false;\nexport function loadFonts() {\n  if (appendedFonts) {\n    return;\n  }\n  appendedFonts = true;\n  const font = document.createElement('link');\n  font.href =\n    'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap';\n  font.rel = 'stylesheet';\n  document.head.appendChild(font);\n}\n","import { svg } from \"lit\";\n\nexport const lwcIconColored = svg`<svg width=\"33\" height=\"32\" viewBox=\"0 0 33 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M32.3023 17.4161C31.0174 18.6948 29.2424 18.3883 27.9635 17.1038C27.9635 17.1038 27.9635 17.1038 27.9633 17.1036L17.6133 6.70709L22.4634 1.83601C23.8679 0.425247 26.251 0.862027 27.0638 2.67931L32.4596 16.7343C32.5483 16.9652 32.4924 17.2268 32.317 17.4015L28.9089 20.7935L32.3021 17.4161H32.3023Z\" fill=\"#472459\"/>\n<path d=\"M27.9623 17.1035C27.9623 17.1035 27.9623 17.1035 27.9621 17.1033L14.4236 3.5038C13.1445 2.2191 11.0662 2.21428 9.78116 3.49301L1.46688 11.7681C0.18183 13.047 0.177204 15.1251 1.45609 16.41L14.9944 30.0094C16.2735 31.2941 18.3518 31.2989 19.6369 30.0202L22.3103 27.3594L23.0936 26.5799L20.5946 24.0718C18.7462 25.2699 16.2498 25.0568 14.6341 23.4311L12.9336 21.72C12.6919 21.4767 12.693 21.0876 12.9363 20.8459L13.7732 20.0143L11.6715 17.8996C11.3421 17.5681 11.2904 17.0349 11.5875 16.676C11.9273 16.2639 12.5404 16.2446 12.9097 16.6163L15.038 18.7578L16.7065 17.1001L14.6048 14.9854C14.2754 14.6538 14.2237 14.1207 14.5235 13.7593C14.8658 13.3499 15.4764 13.3279 15.8457 13.6995L17.974 15.841L18.8135 15.0068C19.0568 14.7651 19.446 14.7662 19.6878 15.0095L21.3883 16.7205C23.0041 18.3464 23.2013 20.8441 21.9909 22.6847L24.4887 25.1915L25.9121 23.7747L27.9511 21.7452L32.301 17.416C31.0161 18.6947 29.241 18.3882 27.9619 17.1037L27.9623 17.1035Z\" fill=\"url(#paint0_linear_433_409)\"/>\n<defs>\n<linearGradient id=\"paint0_linear_433_409\" x1=\"16.4005\" y1=\"2.53711\" x2=\"16.4005\" y2=\"30.9761\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#FFCA4A\"/>\n<stop offset=\"1\" stop-color=\"#F7931A\"/>\n</linearGradient>\n</defs>\n</svg>\n`","import { svg } from \"lit\";\n\nexport const crossIcon = svg`<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M6 6L18 18\" stroke=\"#472459\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n<path d=\"M18 6L6.00001 18\" stroke=\"#472459\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n</svg>\n`","import {LitElement} from 'lit';\nimport {loadFonts} from './loadFonts';\n\n/**\n * @fires lwc:connected - Indicates a wallet has been connected and window.webln is now available and enabled\n */\nexport class LwcElement extends LitElement {\n  constructor() {\n    super();\n    this.addEventListener('lwc:connected', this._onConnect);\n    loadFonts();\n  }\n\n  protected _onConnect() {}\n\n  protected _dispatchLwcEvent(eventType: 'lwc:connected' | 'lwc:modalclosed') {\n    const event = new Event(eventType, {bubbles: true, composed: true});\n    this.dispatchEvent(event);\n  }\n}\n","let active;\nfunction toClassName(rule) {\n    return [\n        ...rule.v,\n        (rule.i ? '!' : '') + rule.n\n    ].join(':');\n}\nfunction format(rules, seperator = ',') {\n    return rules.map(toClassName).join(seperator);\n}\n/**\n * @internal\n */ let escape = 'undefined' != typeof CSS && CSS.escape || // Simplified: escaping only special characters\n// Needed for NodeJS and Edge <79 (https://caniuse.com/mdn-api_css_escape)\n((className)=>className.// Simplifed escape testing only for chars that we know happen to be in tailwind directives\n    replace(/[!\"'`*+.,;:\\\\/<=>?@#$%&^|~()[\\]{}]/g, '\\\\$&').// If the character is the first character and is in the range [0-9] (2xl, ...)\n    // https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n    replace(/^\\d/, '\\\\3$& '));\n// Based on https://stackoverflow.com/a/52171480\n/**\n * @group Configuration\n * @param value\n * @returns\n */ function hash(value) {\n    // eslint-disable-next-line no-var\n    for(var h = 9, index = value.length; index--;)h = Math.imul(h ^ value.charCodeAt(index), 0x5f356495);\n    return '#' + ((h ^ h >>> 9) >>> 0).toString(36);\n}\n/**\n * @internal\n * @param screen\n * @param prefix\n * @returns\n */ function mql(screen, prefix = '@media ') {\n    return prefix + asArray(screen).map((screen)=>{\n        return 'string' == typeof screen && (screen = {\n            min: screen\n        }), screen.raw || Object.keys(screen).map((feature)=>`(${feature}-width:${screen[feature]})`).join(' and ');\n    }).join(',');\n}\n/**\n * @internal\n * @param value\n * @returns\n */ function asArray(value = []) {\n    return Array.isArray(value) ? value : null == value ? [] : [\n        value\n    ];\n}\n/**\n * @internal\n * @param value\n * @returns\n */ function identity(value) {\n    return value;\n}\n/**\n * @internal\n */ function noop() {}\n// no-op\n// Based on https://github.com/kripod/otion\n// License MIT\n// export const enum Shifts {\n//   darkMode = 30,\n//   layer = 27,\n//   screens = 26,\n//   responsive = 22,\n//   atRules = 18,\n//   variants = 0,\n// }\nlet Layer = {\n    /**\n   * 1. `default` (public)\n   */ d: /* efaults */ 0,\n    /* Shifts.layer */ /**\n   * 2. `base` (public) — for things like reset rules or default styles applied to plain HTML elements.\n   */ b: /* ase */ 134217728,\n    /* Shifts.layer */ /**\n   * 3. `components` (public, used by `style()`) — is for class-based styles that you want to be able to override with utilities.\n   */ c: /* omponents */ 268435456,\n    /* Shifts.layer */ // reserved for style():\n    // - props: 0b011\n    // - when: 0b100\n    /**\n   * 6. `aliases` (public, used by `apply()`) — `~(...)`\n   */ a: /* liases */ 671088640,\n    /* Shifts.layer */ /**\n   * 6. `utilities` (public) — for small, single-purpose classes\n   */ u: /* tilities */ 805306368,\n    /* Shifts.layer */ /**\n   * 7. `overrides` (public, used by `css()`)\n   */ o: /* verrides */ 939524096\n};\n/*\nTo set a bit: n |= mask;\nTo clear a bit: n &= ~mask;\nTo test if a bit is set: (n & mask)\n\nBit shifts for the primary bits:\n\n| bits | trait                                                   | shift |\n| ---- | ------------------------------------------------------- | ----- |\n| 1    | dark mode                                               | 30    |\n| 3    | layer: preflight, global, components, utilities, css    | 27    |\n| 1    | screens: is this a responsive variation of a rule       | 26    |\n| 4    | responsive based on min-width, max-width or width       | 22    |\n| 4    | at-rules                                                | 18    |\n| 18   | pseudo and group variants                               | 0     |\n\nLayer: 0 - 7: 3 bits\n  - defaults: 0 << 27\n  - base: 1 << 27\n  - components: 2 << 27\n  - variants: 3 << 27\n  - joints: 4 << 27\n  - aliases: 5 << 27\n  - utilities: 6 << 27\n  - overrides: 7 << 27\n\nThese are calculated by serialize and added afterwards:\n\n| bits | trait                               |\n| ---- | ----------------------------------- |\n| 4    | number of selectors (descending)    |\n| 4    | number of declarations (descending) |\n| 4    | greatest precedence of properties   |\n\nThese are added by shifting the primary bits using multiplication as js only\nsupports bit shift up to 32 bits.\n*/ // Colon and dash count of string (ascending)\nfunction seperatorPrecedence(string) {\n    return string.match(/[-=:;]/g)?.length || 0;\n}\nfunction atRulePrecedence(css) {\n    // 0 - 15: 4 bits (max 144rem or 2304px)\n    // rem -> bit\n    // <20 ->  0 (<320px)\n    //  20 ->  1 (320px)\n    //  24 ->  2 (384px)\n    //  28 ->  3 (448px)\n    //  32 ->  4 (512px)\n    //  36 ->  5 (576px)\n    //  42 ->  6 (672px)\n    //  48 ->  7 (768px)\n    //  56 ->  8 (896px)\n    //  64 ->  9 (1024px)\n    //  72 -> 10 (1152px)\n    //  80 -> 11 (1280px)\n    //  96 -> 12 (1536px)\n    // 112 -> 13 (1792px)\n    // 128 -> 14 (2048px)\n    // 144 -> 15 (2304px)\n    // https://www.dcode.fr/function-equation-finder\n    return Math.min(/(?:^|width[^\\d]+)(\\d+(?:.\\d+)?)(p)?/.test(css) ? Math.max(0, 29.63 * (+RegExp.$1 / (RegExp.$2 ? 15 : 1)) ** 0.137 - 43) : 0, 15) << 22 | /* Shifts.responsive */ Math.min(seperatorPrecedence(css), 15) << 18;\n}\n/* Shifts.atRules */ // Pesudo variant presedence\n// Chars 3 - 8: Uniquely identifies a pseudo selector\n// represented as a bit set for each relevant value\n// 18 bits: one for each variant plus one for unknown variants\n//\n// ':group-*' variants are normalized to their native pseudo class (':group-hover' -> ':hover')\n// as they already have a higher selector presedence due to the add '.group' ('.group:hover .group-hover:...')\n// Sources:\n// - https://bitsofco.de/when-do-the-hover-focus-and-active-pseudo-classes-apply/#orderofstyleshoverthenfocusthenactive\n// - https://developer.mozilla.org/docs/Web/CSS/:active#Active_links\n// - https://github.com/tailwindlabs/tailwindcss/blob/master/stubs/defaultConfig.stub.js#L931\nlet PRECEDENCES_BY_PSEUDO_CLASS = [\n    /* fi */ 'rst-c',\n    /* hild: 0 */ /* la */ 'st-ch',\n    /* ild: 1 */ // even and odd use: nth-child\n    /* nt */ 'h-chi',\n    /* ld: 2 */ /* an */ 'y-lin',\n    /* k: 3 */ /* li */ 'nk',\n    /* : 4 */ /* vi */ 'sited',\n    /* : 5 */ /* ch */ 'ecked',\n    /* : 6 */ /* em */ 'pty',\n    /* : 7 */ /* re */ 'ad-on',\n    /* ly: 8 */ /* fo */ 'cus-w',\n    /* ithin : 9 */ /* ho */ 'ver',\n    /* : 10 */ /* fo */ 'cus',\n    /* : 11 */ /* fo */ 'cus-v',\n    /* isible : 12 */ /* ac */ 'tive',\n    /* : 13 */ /* di */ 'sable',\n    /* d : 14 */ /* op */ 'tiona',\n    /* l: 15 */ /* re */ 'quire'\n];\n/** The name to use for `&` expansion in selectors. Maybe empty for at-rules like `@import`, `@font-face`, `@media`, ... */ /** The calculated precedence taking all variants into account. */ /** The rulesets (selectors and at-rules). expanded variants `@media ...`, `@supports ...`, `&:focus`, `.dark &` */ /** Is this rule `!important` eg something like `!underline` or `!bg-red-500` or `!red-500` */ function convert({ n: name , i: important , v: variants = []  }, context, precedence, conditions) {\n    name && (name = toClassName({\n        n: name,\n        i: important,\n        v: variants\n    }));\n    conditions = [\n        ...asArray(conditions)\n    ];\n    for (let variant of variants){\n        let screen = context.theme('screens', variant);\n        for (let condition of asArray(screen && mql(screen) || context.v(variant))){\n            var /* d: 16 */ selector;\n            conditions.push(condition);\n            precedence |= screen ? 67108864 | /* Shifts.screens */ atRulePrecedence(condition) : 'dark' == variant ? 1073741824 : /* Shifts.darkMode */ '@' == condition[0] ? atRulePrecedence(condition) : (selector = condition, // use first found pseudo-class\n            1 << ~(/:([a-z-]+)/.test(selector) && ~PRECEDENCES_BY_PSEUDO_CLASS.indexOf(RegExp.$1.slice(2, 7)) || -18));\n        }\n    }\n    return {\n        n: name,\n        p: precedence,\n        r: conditions,\n        i: important\n    };\n}\nlet registry = new Map();\nfunction stringify$1(rule) {\n    if (rule.d) {\n        let groups = [], selector = replaceEach(// merge all conditions into a selector string\n        rule.r.reduce((selector, condition)=>{\n            return '@' == condition[0] ? (groups.push(condition), selector) : // Go over the selector and replace the matching multiple selectors if any\n            condition ? replaceEach(selector, (selectorPart)=>replaceEach(condition, // If the current condition has a nested selector replace it\n                (conditionPart)=>{\n                    let mergeMatch = /(:merge\\(.+?\\))(:[a-z-]+|\\\\[.+])/.exec(conditionPart);\n                    if (mergeMatch) {\n                        let selectorIndex = selectorPart.indexOf(mergeMatch[1]);\n                        return ~selectorIndex ? // [':merge(.group):hover .rule', ':merge(.group):focus &'] -> ':merge(.group):focus:hover .rule'\n                        // ':merge(.group)' + ':focus' + ':hover .rule'\n                        selectorPart.slice(0, selectorIndex) + mergeMatch[0] + selectorPart.slice(selectorIndex + mergeMatch[1].length) : // [':merge(.peer):focus~&', ':merge(.group):hover &'] -> ':merge(.peer):focus~:merge(.group):hover &'\n                        replaceReference(selectorPart, conditionPart);\n                    }\n                    // Return the current selector with the key matching multiple selectors if any\n                    return replaceReference(conditionPart, selectorPart);\n                })) : selector;\n        }, '&'), // replace '&' with rule name or an empty string\n        (selectorPart)=>replaceReference(selectorPart, rule.n ? '.' + escape(rule.n) : ''));\n        return selector && groups.push(selector.replace(/:merge\\((.+?)\\)/g, '$1')), groups.reduceRight((body, grouping)=>grouping + '{' + body + '}', rule.d);\n    }\n}\nfunction replaceEach(selector, iteratee) {\n    return selector.replace(/ *((?:\\(.+?\\)|\\[.+?\\]|[^,])+) *(,|$)/g, (_, selectorPart, comma)=>iteratee(selectorPart) + comma);\n}\nfunction replaceReference(selector, reference) {\n    return selector.replace(/&/g, reference);\n}\nlet collator = new Intl.Collator('en', {\n    numeric: true\n});\n/** The calculated precedence taking all variants into account. */ /* The precedence of the properties within {@link d}. */ /** The name to use for `&` expansion in selectors. Maybe empty for at-rules like `@import`, `@font-face`, `@media`, ... */ /**\n * Find the array index of where to add an element to keep it sorted.\n *\n * @returns The insertion index\n */ function sortedInsertionIndex(array, element) {\n    // Find position using binary search\n    // eslint-disable-next-line no-var\n    for(var low = 0, high = array.length; low < high;){\n        let pivot = high + low >> 1;\n        0 >= compareTwindRules(array[pivot], element) ? low = pivot + 1 : high = pivot;\n    }\n    return high;\n}\nfunction compareTwindRules(a, b) {\n    // base and overrides (css) layers are kept in order they are declared\n    let layer = a.p & Layer.o;\n    return layer == (b.p & Layer.o) && (layer == Layer.b || layer == Layer.o) ? 0 : a.p - b.p || a.o - b.o || collator.compare(byModifier(a.n), byModifier(b.n)) || collator.compare(byName(a.n), byName(b.n));\n}\nfunction byModifier(s) {\n    return (s || '').split(/:/).pop().split('/').pop() || '\\x00';\n}\nfunction byName(s) {\n    return (s || '').replace(/\\W/g, (c)=>String.fromCharCode(127 + c.charCodeAt(0))) + '\\x00';\n}\nfunction parseColorComponent(chars, factor) {\n    return Math.round(parseInt(chars, 16) * factor);\n}\n/**\n * @internal\n * @param color\n * @param options\n * @returns\n */ function toColorValue(color, options = {}) {\n    if ('function' == typeof color) return color(options);\n    let { opacityValue ='1' , opacityVariable  } = options, opacity = opacityVariable ? `var(${opacityVariable})` : opacityValue;\n    if (color.includes('<alpha-value>')) return color.replace('<alpha-value>', opacity);\n    // rgb hex: #0123 and #001122\n    if ('#' == color[0] && (4 == color.length || 7 == color.length)) {\n        let size = (color.length - 1) / 3, factor = [\n            17,\n            1,\n            0.062272\n        ][size - 1];\n        return `rgba(${[\n            parseColorComponent(color.substr(1, size), factor),\n            parseColorComponent(color.substr(1 + size, size), factor),\n            parseColorComponent(color.substr(1 + 2 * size, size), factor),\n            opacity\n        ]})`;\n    }\n    return '1' == opacity ? color : '0' == opacity ? '#0000' : // convert rgb and hsl to alpha variant\n    color.replace(/^(rgb|hsl)(\\([^)]+)\\)$/, `$1a$2,${opacity})`);\n}\n/**\n * Looks for a matching dark color within a [tailwind color palette](https://tailwindcss.com/docs/customizing-colors) (`50`, `100`, `200`, ..., `800`, `900`).\n *\n * ```js\n * defineConfig({\n *   darkColor: autoDarkColor,\n * })\n * ```\n *\n * **Note**: Does not work for arbitrary values like `[theme(colors.gray.500)]` or `[theme(colors.gray.500, #ccc)]`.\n *\n * @group Configuration\n * @param section within theme to use\n * @param key of the light color or an arbitrary value\n * @param context to use\n * @returns the dark color if found\n */ function autoDarkColor(section, key, { theme  }) {\n    return theme(section, // 50 -> 900, 100 -> 800, ..., 800 -> 100, 900 -> 50\n    // key: gray-50, gray.50\n    key = key.replace(/\\d+$/, (shade)=>// ~~(parseInt(shade, 10) / 100): 50 -> 0, 900 -> 9\n        100 * // (9 - 0) -> 900, (9 - 9) -> 50\n        (9 - ~~(parseInt(shade, 10) / 100) || 0.5)));\n}\nfunction serialize(style, rule, context, precedence, conditions = []) {\n    return function serialize$(style, { n: name , p: precedence , r: conditions = [] , i: important  }, context) {\n        let rules = [], // The generated declaration block eg body of the css rule\n        declarations = '', // This ensures that 'border-top-width' has a higher precedence than 'border-top'\n        maxPropertyPrecedence = 0, // More specific utilities have less declarations and a higher precedence\n        numberOfDeclarations = 0;\n        for(let key in style || {}){\n            var layer, // https://github.com/kripod/otion/blob/main/packages/otion/src/propertyMatchers.ts\n            // \"+1\": [\n            // \t/* ^border-.*(w|c|sty) */\n            // \t\"border-.*(width,color,style)\",\n            // \t/* ^[tlbr].{2,4}m?$ */\n            // \t\"top\",\n            // \t\"left\",\n            // \t\"bottom\",\n            // \t\"right\",\n            // \t/* ^c.{7}$ */\n            // \t\"continue\",\n            // \t/* ^c.{8}$ */\n            // \t\"container\",\n            // ],\n            // \"-1\": [\n            // \t/* ^[fl].{5}l */\n            // \t\"flex-flow\",\n            // \t\"line-clamp\",\n            // \t/* ^g.{8}$ */\n            // \t\"grid-area\",\n            // \t/* ^pl */\n            // \t\"place-content\",\n            // \t\"place-items\",\n            // \t\"place-self\",\n            // ],\n            // group: 1 => +1\n            // group: 2 => -1\n            // 0 - 15 => 4 bits\n            // Ignore vendor prefixed and custom properties\n            property;\n            let value = style[key];\n            if ('@' == key[0]) {\n                // at rules: https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule\n                if (!value) continue;\n                // @apply ...;\n                if ('a' == key[1]) {\n                    rules.push(...translateWith(name, precedence, parse('' + value), context, precedence, conditions, important, true));\n                    continue;\n                }\n                // @layer <layer>\n                if ('l' == key[1]) {\n                    for (let css of asArray(value))rules.push(...serialize$(css, {\n                        n: name,\n                        p: (layer = Layer[key[7]], // Set layer (first reset, than set)\n                        precedence & ~Layer.o | layer),\n                        r: 'd' == key[7] ? [] : conditions,\n                        i: important\n                    }, context));\n                    continue;\n                }\n                // @import\n                if ('i' == key[1]) {\n                    rules.push(...asArray(value).map((value)=>({\n                            // before all layers\n                            p: -1,\n                            o: 0,\n                            r: [],\n                            d: key + ' ' + value\n                        })));\n                    continue;\n                }\n                // @keyframes\n                if ('k' == key[1]) {\n                    // Use defaults layer\n                    rules.push({\n                        p: Layer.d,\n                        o: 0,\n                        r: [\n                            key\n                        ],\n                        d: serialize$(value, {\n                            p: Layer.d\n                        }, context).map(stringify$1).join('')\n                    });\n                    continue;\n                }\n                // @font-face\n                // TODO @font-feature-values\n                if ('f' == key[1]) {\n                    // Use defaults layer\n                    rules.push(...asArray(value).map((value)=>({\n                            p: Layer.d,\n                            o: 0,\n                            r: [\n                                key\n                            ],\n                            d: serialize$(value, {\n                                p: Layer.d\n                            }, context).map(stringify$1).join('')\n                        })));\n                    continue;\n                }\n            }\n            // -> All other are handled below; same as selector\n            // @media\n            // @supports\n            // selector\n            if ('object' != typeof value || Array.isArray(value)) {\n                if ('label' == key && value) name = value + hash(JSON.stringify([\n                    precedence,\n                    important,\n                    style\n                ]));\n                else if (value || 0 === value) {\n                    // property -> hyphenate\n                    key = key.replace(/[A-Z]/g, (_)=>'-' + _.toLowerCase());\n                    // Update precedence\n                    numberOfDeclarations += 1;\n                    maxPropertyPrecedence = Math.max(maxPropertyPrecedence, '-' == (property = key)[0] ? 0 : seperatorPrecedence(property) + (/^(?:(border-(?!w|c|sty)|[tlbr].{2,4}m?$|c.{7,8}$)|([fl].{5}l|g.{8}$|pl))/.test(property) ? +!!RegExp.$1 || /* +1 */ -!!RegExp.$2 : /* -1 */ 0) + 1);\n                    declarations += (declarations ? ';' : '') + asArray(value).map((value)=>context.s(key, // support theme(...) function in values\n                        // calc(100vh - theme('spacing.12'))\n                        resolveThemeFunction('' + value, context.theme) + (important ? ' !important' : ''))).join(';');\n                }\n            } else // at-rule or non-global selector\n            if ('@' == key[0] || key.includes('&')) {\n                let rulePrecedence = precedence;\n                if ('@' == key[0]) {\n                    // Handle `@media screen(sm)` and `@media (screen(sm) or ...)`\n                    key = key.replace(/\\bscreen\\(([^)]+)\\)/g, (_, screenKey)=>{\n                        let screen = context.theme('screens', screenKey);\n                        return screen ? (rulePrecedence |= 67108864, /* Shifts.screens */ mql(screen, '')) : _;\n                    });\n                    rulePrecedence |= atRulePrecedence(key);\n                }\n                rules.push(...serialize$(value, {\n                    n: name,\n                    p: rulePrecedence,\n                    r: [\n                        ...conditions,\n                        key\n                    ],\n                    i: important\n                }, context));\n            } else // global selector\n            rules.push(...serialize$(value, {\n                p: precedence,\n                r: [\n                    ...conditions,\n                    key\n                ]\n            }, context));\n        }\n        return(// PERF: prevent unshift using `rules = [{}]` above and then `rules[0] = {...}`\n        rules.unshift({\n            n: name,\n            p: precedence,\n            o: // number of declarations (descending)\n            Math.max(0, 15 - numberOfDeclarations) + // greatest precedence of properties\n            // if there is no property precedence this is most likely a custom property only declaration\n            // these have the highest precedence\n            1.5 * Math.min(maxPropertyPrecedence || 15, 15),\n            r: conditions,\n            // stringified declarations\n            d: declarations\n        }), rules.sort(compareTwindRules));\n    }(style, convert(rule, context, precedence, conditions), context);\n}\nfunction resolveThemeFunction(value, theme) {\n    // support theme(...) function in values\n    // calc(100vh - theme('spacing.12'))\n    // theme('borderColor.DEFAULT', 'currentColor')\n    // PERF: check for theme before running the regexp\n    // if (value.includes('theme')) {\n    return value.replace(/theme\\(([\"'`])?(.+?)\\1(?:\\s*,\\s*([\"'`])?(.+?)\\3)?\\)/g, (_, __, key, ___, defaultValue = '')=>{\n        let value = theme(key, defaultValue);\n        return 'function' == typeof value && /color|fill|stroke/i.test(key) ? toColorValue(value) : '' + asArray(value).filter((v)=>Object(v) !== v);\n    });\n}\n// }\n// return value\nfunction merge(rules, name) {\n    let current;\n    // merge:\n    // - same conditions\n    // - replace name with hash of name + condititions + declarations\n    // - precedence:\n    //   - combine bits or use max precendence\n    //   - set layer bit to merged\n    let result = [];\n    for (let rule of rules)// only merge rules with declarations and names (eg no global rules)\n    if (rule.d && rule.n) {\n        if (current?.p == rule.p && '' + current.r == '' + rule.r) {\n            current.c = [\n                current.c,\n                rule.c\n            ].filter(Boolean).join(' ');\n            current.d = current.d + ';' + rule.d;\n        } else // only set name for named rules eg not for global or className propagation rules\n        result.push(current = {\n            ...rule,\n            n: rule.n && name\n        });\n    } else result.push({\n        ...rule,\n        n: rule.n && name\n    });\n    return result;\n}\nfunction translate(rules, context, precedence = Layer.u, conditions, important) {\n    // Sorted by precedence\n    let result = [];\n    for (let rule of rules)for (let cssRule of function(rule, context, precedence, conditions, important) {\n        rule = {\n            ...rule,\n            i: rule.i || important\n        };\n        let resolved = function(rule, context) {\n            let factory = registry.get(rule.n);\n            return factory ? factory(rule, context) : context.r(rule.n, 'dark' == rule.v[0]);\n        }(rule, context);\n        return resolved ? // a list of class names\n        'string' == typeof resolved ? ({ r: conditions , p: precedence  } = convert(rule, context, precedence, conditions), merge(translate(parse(resolved), context, precedence, conditions, rule.i), rule.n)) : Array.isArray(resolved) ? resolved.map((rule)=>{\n            var /* Shifts.layer */ /*\nTo have a predictable styling the styles must be ordered.\n\nThis order is represented by a precedence number. The lower values\nare inserted before higher values. Meaning higher precedence styles\noverwrite lower precedence styles.\n\nEach rule has some traits that are put into a bit set which form\nthe precedence:\n\n| bits | trait                                                |\n| ---- | ---------------------------------------------------- |\n| 1    | dark mode                                            |\n| 2    | layer: preflight, global, components, utilities, css |\n| 1    | screens: is this a responsive variation of a rule    |\n| 5    | responsive based on min-width                        |\n| 4    | at-rules                                             |\n| 18   | pseudo and group variants                            |\n| 4    | number of declarations (descending)                  |\n| 4    | greatest precedence of properties                    |\n\n**Dark Mode: 1 bit**\n\nFlag for dark mode rules.\n\n**Layer: 3 bits**\n\n- defaults = 0: The preflight styles and any base styles registered by plugins.\n- base = 1: The global styles registered by plugins.\n- components = 2\n- variants = 3\n- compounds = 4\n- aliases = 5\n- utilities = 6: Utility classes and any utility classes registered by plugins.\n- css = 7: Styles generated by css\n\n**Screens: 1 bit**\n\nFlag for screen variants. They may not always have a `min-width` to be detected by _Responsive_ below.\n\n**Responsive: 4 bits**\n\nBased on extracted `min-width` value:\n\n- 576px -> 3\n- 1536px -> 10\n- 36rem -> 3\n- 96rem -> 9\n\n**At-Rules: 4 bits**\n\nBased on the count of special chars (`-:,`) within the at-rule.\n\n**Pseudo and group variants: 18 bits**\n\nEnsures predictable order of pseudo classes.\n\n- https://bitsofco.de/when-do-the-hover-focus-and-active-pseudo-classes-apply/#orderofstyleshoverthenfocusthenactive\n- https://developer.mozilla.org/docs/Web/CSS/:active#Active_links\n- https://github.com/tailwindlabs/tailwindcss/blob/master/stubs/defaultConfig.stub.js#L718\n\n**Number of declarations (descending): 4 bits**\n\nAllows single declaration styles to overwrite styles from multi declaration styles.\n\n**Greatest precedence of properties: 4 bits**\n\nEnsure shorthand properties are inserted before longhand properties; eg longhand override shorthand\n*/ precedence1, layer;\n            return {\n                o: 0,\n                ...rule,\n                r: [\n                    ...asArray(conditions),\n                    ...asArray(rule.r)\n                ],\n                p: (precedence1 = precedence, layer = rule.p ?? precedence, precedence1 & ~Layer.o | layer)\n            };\n        }) : serialize(resolved, rule, context, precedence, conditions) : // propagate className as is\n        [\n            {\n                c: toClassName(rule),\n                p: 0,\n                o: 0,\n                r: []\n            }\n        ];\n    }(rule, context, precedence, conditions, important))result.splice(sortedInsertionIndex(result, cssRule), 0, cssRule);\n    return result;\n}\nfunction translateWith(name, layer, rules, context, precedence, conditions, important, useOrderOfRules) {\n    return merge((useOrderOfRules ? rules.flatMap((rule)=>translate([\n            rule\n        ], context, precedence, conditions, important)) : translate(rules, context, precedence, conditions, important)).map((rule)=>{\n        return(// do not move defaults\n        // move only rules with a name unless they are in the base layer\n        rule.p & Layer.o && (rule.n || layer == Layer.b) ? {\n            ...rule,\n            p: rule.p & ~Layer.o | layer,\n            o: 0\n        } : rule);\n    }), name);\n}\nfunction define(className, layer, rules, useOrderOfRules) {\n    var factory;\n    return factory = (rule, context)=>{\n        let { n: name , p: precedence , r: conditions , i: important  } = convert(rule, context, layer);\n        return rules && translateWith(name, layer, rules, context, precedence, conditions, important, useOrderOfRules);\n    }, registry.set(className, factory), className;\n}\n/**\n   * The utility name including `-` if set, but without `!` and variants\n   */ /**\n   * All variants without trailing colon: `hover`, `after:`, `[...]`\n   */ /**\n   * Something like `!underline` or `!bg-red-500` or `!red-500`\n   */ function createRule(active, current, loc) {\n    if ('(' != active[active.length - 1]) {\n        let variants = [], important = false, negated = false, name = '';\n        for (let value of active)if (!('(' == value || /[~@]$/.test(value))) {\n            if ('!' == value[0]) {\n                value = value.slice(1);\n                important = !important;\n            }\n            if (value.endsWith(':')) {\n                variants['dark:' == value ? 'unshift' : 'push'](value.slice(0, -1));\n                continue;\n            }\n            if ('-' == value[0]) {\n                value = value.slice(1);\n                negated = !negated;\n            }\n            value.endsWith('-') && (value = value.slice(0, -1));\n            value && '&' != value && (name += (name && '-') + value);\n        }\n        if (name) {\n            negated && (name = '-' + name);\n            current[0].push({\n                n: name,\n                v: variants.filter(uniq),\n                i: important\n            });\n        }\n    }\n}\nfunction uniq(value, index, values) {\n    return values.indexOf(value) == index;\n}\nlet cache = new Map();\n/**\n * @internal\n * @param token\n * @returns\n */ function parse(token) {\n    let parsed = cache.get(token);\n    if (!parsed) {\n        // Stack of active groupings (`(`), variants, or nested (`~` or `@`)\n        let active = [], // Stack of current rule list to put new rules in\n        // the first `0` element is the current list\n        current = [\n            []\n        ], startIndex = 0, skip = 0, comment = null, position = 0, // eslint-disable-next-line no-inner-declarations\n        commit = (isRule, endOffset = 0)=>{\n            if (startIndex != position) {\n                active.push(token.slice(startIndex, position + endOffset));\n                isRule && createRule(active, current);\n            }\n            startIndex = position + 1;\n        };\n        for(; position < token.length; position++){\n            let char = token[position];\n            if (skip) '\\\\' != token[position - 1] && (skip += +('[' == char) || -(']' == char));\n            else if ('[' == char) // start to skip\n            skip += 1;\n            else if (comment) {\n                if ('\\\\' != token[position - 1] && comment.test(token.slice(position))) {\n                    comment = null;\n                    startIndex = position + RegExp.lastMatch.length;\n                }\n            } else if ('/' == char && '\\\\' != token[position - 1] && ('*' == token[position + 1] || '/' == token[position + 1])) // multiline or single line comment\n            comment = '*' == token[position + 1] ? /^\\*\\// : /^[\\r\\n]/;\n            else if ('(' == char) {\n                // hover:(...) or utilitity-(...)\n                commit();\n                active.push(char);\n            } else if (':' == char) ':' != token[position + 1] && commit(false, 1);\n            else if (/[\\s,)]/.test(char)) {\n                // whitespace, comma or closing brace\n                commit(true);\n                let lastGroup = active.lastIndexOf('(');\n                if (')' == char) {\n                    // Close nested block\n                    let nested = active[lastGroup - 1];\n                    if (/[~@]$/.test(nested)) {\n                        let rules = current.shift();\n                        active.length = lastGroup;\n                        // remove variants that are already applied through active\n                        createRule([\n                            ...active,\n                            '#'\n                        ], current);\n                        let { v  } = current[0].pop();\n                        for (let rule of rules)// if a rule has dark we need to splice after the first entry eg dark\n                        rule.v.splice(+('dark' == rule.v[0]) - +('dark' == v[0]), v.length);\n                        createRule([\n                            ...active,\n                            define(// named nested\n                            nested.length > 1 ? nested.slice(0, -1) + hash(JSON.stringify([\n                                nested,\n                                rules\n                            ])) : nested + '(' + format(rules) + ')', Layer.a, rules, /@$/.test(nested))\n                        ], current);\n                    }\n                    lastGroup = active.lastIndexOf('(', lastGroup - 1);\n                }\n                active.length = lastGroup + 1;\n            } else /[~@]/.test(char) && '(' == token[position + 1] && // start nested block\n            // ~(...) or button~(...)\n            // @(...) or button@(...)\n            current.unshift([]);\n        }\n        // Consume remaining stack\n        commit(true);\n        cache.set(token, parsed = current[0]);\n    }\n    return parsed;\n}\nfunction interleave(strings, interpolations, handle) {\n    return interpolations.reduce((result, interpolation, index)=>result + handle(interpolation) + strings[index + 1], strings[0]);\n}\n// based on https://github.com/lukeed/clsx and https://github.com/jorgebucaran/classcat\nfunction interpolate(strings, interpolations) {\n    return Array.isArray(strings) && Array.isArray(strings.raw) ? interleave(strings, interpolations, (value)=>toString(value).trim()) : interpolations.filter(Boolean).reduce((result, value)=>result + toString(value), strings ? toString(strings) : '');\n}\nfunction toString(value) {\n    let tmp, result = '';\n    if (value && 'object' == typeof value) {\n        if (Array.isArray(value)) (tmp = interpolate(value[0], value.slice(1))) && (result += ' ' + tmp);\n        else for(let key in value)value[key] && (result += ' ' + key);\n    } else null != value && 'boolean' != typeof value && (result += ' ' + value);\n    return result;\n}\n/**\n * @group Class Name Generators\n */ let apply = /* #__PURE__ */ alias('@'), /**\n * @group Class Name Generators\n */ shortcut = /* #__PURE__ */ alias('~');\nfunction alias(marker) {\n    return new Proxy(function alias(strings, ...interpolations) {\n        return alias$('', strings, interpolations);\n    }, {\n        get (target, name) {\n            return name in target ? target[name] : function namedAlias(strings, ...interpolations) {\n                return alias$(name, strings, interpolations);\n            };\n        }\n    });\n    function alias$(name, strings, interpolations) {\n        return format(parse(name + marker + '(' + interpolate(strings, interpolations) + ')'));\n    }\n}\nfunction astish(strings, interpolations) {\n    return Array.isArray(strings) ? astish$(interleave(strings, interpolations, (interpolation)=>null != interpolation && 'boolean' != typeof interpolation ? interpolation : '')) : 'string' == typeof strings ? astish$(strings) : [\n        strings\n    ];\n}\n// Based on https://github.com/cristianbote/goober/blob/master/src/core/astish.js\nlet newRule = / *(?:(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}))/g;\n/**\n * Convert a css style string into a object\n */ function astish$(css) {\n    let block;\n    css = // Remove comments (multiline and single line)\n    css.replace(/\\/\\*[^]*?\\*\\/|\\s\\s+|\\n/gm, ' ');\n    let tree = [\n        {}\n    ], rules = [\n        tree[0]\n    ], conditions = [];\n    for(; block = newRule.exec(css);){\n        // Remove the current entry\n        if (block[4]) {\n            tree.shift();\n            conditions.shift();\n        }\n        if (block[3]) {\n            // new nested\n            conditions.unshift(block[3]);\n            tree.unshift({});\n            rules.push(conditions.reduce((body, condition)=>({\n                    [condition]: body\n                }), tree[0]));\n        } else if (!block[4]) {\n            // if we already have that property — start a new CSSObject\n            if (tree[0][block[1]]) {\n                tree.unshift({});\n                rules.push(conditions.reduce((body, condition)=>({\n                        [condition]: body\n                    }), tree[0]));\n            }\n            tree[0][block[1]] = block[2];\n        }\n    }\n    // console.log(rules)\n    return rules;\n}\n/**\n * @group Class Name Generators\n * @param strings\n * @param interpolations\n */ function css(strings, ...interpolations) {\n    var factory;\n    let ast = astish(strings, interpolations), className = (ast.find((o)=>o.label)?.label || 'css') + hash(JSON.stringify(ast));\n    return factory = (rule, context)=>merge(ast.flatMap((css)=>serialize(css, rule, context, Layer.o)), className), registry.set(className, factory), className;\n}\n/**\n * @group Class Name Generators\n */ let animation = /* #__PURE__ */ new Proxy(function animation(animation, waypoints) {\n    return animation$('animation', animation, waypoints);\n}, {\n    get (target, name) {\n        return name in target ? target[name] : function namedAnimation(animation, waypoints) {\n            return animation$(name, animation, waypoints);\n        };\n    }\n});\nfunction animation$(label, animation, waypoints) {\n    return {\n        toString () {\n            return css({\n                label,\n                '@layer components': {\n                    ...'object' == typeof animation ? animation : {\n                        animation\n                    },\n                    animationName: '' + waypoints\n                }\n            });\n        }\n    };\n}\n/** The found theme value */ // indirection wrapper to remove autocomplete functions from production bundles\n/**\n * @group Configuration\n * @param pattern\n */ /**\n * @group Configuration\n * @param pattern\n * @param resolver\n */ /**\n * @group Configuration\n * @param pattern\n * @param resolve\n */ // eslint-disable-next-line @typescript-eslint/ban-types\n/**\n * @group Configuration\n * @param pattern\n * @param resolve\n * @param convert\n */ function match(pattern, // eslint-disable-next-line @typescript-eslint/ban-types\nresolve, convert) {\n    return [\n        pattern,\n        fromMatch(resolve, convert)\n    ];\n}\n/**\n * @group Configuration\n * @internal\n * @deprecated Use {@link match} instead.\n */ /**\n * @group Configuration\n * @internal\n * @deprecated Use {@link match} instead.\n */ /**\n * @group Configuration\n * @internal\n * @deprecated Use {@link match} instead.\n */ /**\n * @group Configuration\n * @internal\n * @deprecated Use {@link match} instead.\n */ function fromMatch(resolve, convert) {\n    return 'function' == typeof resolve ? resolve : 'string' == typeof resolve && /^[\\w-]+$/.test(resolve) ? // a CSS property alias\n    (match, context)=>({\n            [resolve]: convert ? convert(match, context) : maybeNegate(match, 1)\n        }) : (match)=>// CSSObject, shortcut or apply\n        resolve || {\n            [match[1]]: maybeNegate(match, 2)\n        };\n}\nfunction maybeNegate(match, offset, value = match.slice(offset).find(Boolean) || match.$$ || match.input) {\n    return '-' == match.input[0] ? `calc(${value} * -1)` : value;\n}\n/**\n * @group Configuration\n * @param pattern\n * @param section\n * @param resolve\n * @param convert\n * @returns\n */ function matchTheme(pattern, /** Theme section to use (default: `$1` — The first matched group) */ section, /** The css property (default: value of {@link section}) */ resolve, convert) {\n    return [\n        pattern,\n        fromTheme(section, resolve, convert)\n    ];\n}\n/**\n * @group Configuration\n * @internal\n * @deprecated Use {@link matchTheme} instead.\n * @param section\n * @param resolve\n * @param convert\n * @returns\n */ function fromTheme(/** Theme section to use (default: `$1` — The first matched group) */ section, /** The css property (default: value of {@link section}) */ resolve, convert) {\n    let factory = 'string' == typeof resolve ? (match, context)=>({\n            [resolve]: convert ? convert(match, context) : match._\n        }) : resolve || (({ 1: $1 , _  }, context, section)=>({\n            [$1 || section]: _\n        }));\n    return (match, context)=>{\n        let themeSection = camelize(section || match[1]), value = context.theme(themeSection, match.$$) ?? arbitrary(match.$$, themeSection, context);\n        if (null != value) return match._ = maybeNegate(match, 0, value), factory(match, context, themeSection);\n    };\n}\n/** Theme section to use (default: `$0.replace('-', 'Color')` — The matched string with `Color` appended) */ /** The css property (default: value of {@link section}) */ /** `--tw-${$0}opacity` -> '--tw-text-opacity' */ /** `section.replace('Color', 'Opacity')` -> 'textOpacity' */ /**\n * @group Configuration\n * @param pattern\n * @param options\n * @param resolve\n * @returns\n */ function matchColor(pattern, options = {}, resolve) {\n    return [\n        pattern,\n        colorFromTheme(options, resolve)\n    ];\n}\n/**\n * @group Configuration\n * @internal\n * @deprecated Use {@link matchColor} instead.\n * @param options\n * @param resolve\n * @returns\n */ function colorFromTheme(options = {}, resolve) {\n    return (match, context)=>{\n        // text- -> textColor\n        // ring-offset(?:-|$) -> ringOffsetColor\n        let { section =camelize(match[0]).replace('-', '') + 'Color'  } = options, // extract color and opacity\n        // rose-500                  -> ['rose-500']\n        // [hsl(0_100%_/_50%)]       -> ['[hsl(0_100%_/_50%)]']\n        // indigo-500/100            -> ['indigo-500', '100']\n        // [hsl(0_100%_/_50%)]/[.25] -> ['[hsl(0_100%_/_50%)]', '[.25]']\n        [colorMatch, opacityMatch] = parseValue(match.$$);\n        if (!colorMatch) return;\n        let colorValue = context.theme(section, colorMatch) || arbitrary(colorMatch, section, context);\n        if (!colorValue || 'object' == typeof colorValue) return;\n        let { // text- -> --tw-text-opacity\n        // ring-offset(?:-|$) -> --tw-ring-offset-opacity\n        // TODO move this default into preset-tailwind?\n        opacityVariable =`--tw-${match[0].replace(/-$/, '')}-opacity` , opacitySection =section.replace('Color', 'Opacity') , property =section , selector  } = options, opacityValue = context.theme(opacitySection, opacityMatch || 'DEFAULT') || opacityMatch && arbitrary(opacityMatch, opacitySection, context), // if (typeof color != 'string') {\n        //   console.warn(`Invalid color ${colorMatch} (from ${match.input}):`, color)\n        //   return\n        // }\n        create = resolve || (({ _  })=>{\n            let properties = toCSS(property, _);\n            return selector ? {\n                [selector]: properties\n            } : properties;\n        });\n        match._ = {\n            value: toColorValue(colorValue, {\n                opacityVariable: opacityVariable || void 0,\n                opacityValue: opacityValue || void 0\n            }),\n            color: (options)=>toColorValue(colorValue, options),\n            opacityVariable: opacityVariable || void 0,\n            opacityValue: opacityValue || void 0\n        };\n        let properties = create(match, context);\n        // auto support dark mode colors\n        if (!match.dark) {\n            let darkColorValue = context.d(section, colorMatch, colorValue);\n            if (darkColorValue && darkColorValue !== colorValue) {\n                match._ = {\n                    value: toColorValue(darkColorValue, {\n                        opacityVariable: opacityVariable || void 0,\n                        opacityValue: opacityValue || '1'\n                    }),\n                    color: (options)=>toColorValue(darkColorValue, options),\n                    opacityVariable: opacityVariable || void 0,\n                    opacityValue: opacityValue || void 0\n                };\n                properties = {\n                    '&': properties,\n                    [context.v('dark')]: create(match, context)\n                };\n            }\n        }\n        return properties;\n    };\n}\n/**\n * @internal\n * @param input\n */ function parseValue(input) {\n    // extract color and opacity\n    // rose-500                  -> ['rose-500']\n    // [hsl(0_100%_/_50%)]       -> ['[hsl(0_100%_/_50%)]']\n    // indigo-500/100            -> ['indigo-500', '100']\n    // [hsl(0_100%_/_50%)]/[.25] -> ['[hsl(0_100%_/_50%)]', '[.25]']\n    return (input.match(/^(\\[[^\\]]+]|[^/]+?)(?:\\/(.+))?$/) || []).slice(1);\n}\n/**\n * @internal\n * @param property\n * @param value\n * @returns\n */ function toCSS(property, value) {\n    let properties = {};\n    if ('string' == typeof value) properties[property] = value;\n    else {\n        value.opacityVariable && value.value.includes(value.opacityVariable) && (properties[value.opacityVariable] = value.opacityValue || '1');\n        properties[property] = value.value;\n    }\n    return properties;\n}\n/**\n * @internal\n * @param value\n * @param section\n * @param context\n * @returns\n */ function arbitrary(value, section, context) {\n    if ('[' == value[0] && ']' == value.slice(-1)) {\n        value = normalize(resolveThemeFunction(value.slice(1, -1), context.theme));\n        if (!section) return value;\n        if (// Respect type hints from the user on ambiguous arbitrary values - https://tailwindcss.com/docs/adding-custom-styles#resolving-ambiguities\n        !// If this is a color section and the value is a hex color, color function or color name\n        (/color|fill|stroke/i.test(section) && !(/^color:/.test(value) || /^(#|((hsl|rgb)a?|hwb|lab|lch|color)\\(|[a-z]+$)/.test(value)) || // url(, [a-z]-gradient(, image(, cross-fade(, image-set(\n        /image/i.test(section) && !(/^image:/.test(value) || /^[a-z-]+\\(/.test(value)) || // font-*\n        // - fontWeight (type: ['lookup', 'number', 'any'])\n        // - fontFamily (type: ['lookup', 'generic-name', 'family-name'])\n        /weight/i.test(section) && !(/^(number|any):/.test(value) || /^\\d+$/.test(value)) || // bg-*\n        // - backgroundPosition (type: ['lookup', ['position', { preferOnConflict: true }]])\n        // - backgroundSize (type: ['lookup', 'length', 'percentage', 'size'])\n        /position/i.test(section) && /^(length|size):/.test(value))) // remove arbitrary type prefix — we do not need it but user may use it\n        // https://github.com/tailwindlabs/tailwindcss/blob/master/src/util/dataTypes.js\n        // url, number, percentage, length, line-width, shadow, color, image, gradient, position, family-name, lookup, any, generic-name, absolute-size, relative-size\n        return value.replace(/^[a-z-]+:/, '');\n    }\n}\nfunction camelize(value) {\n    return value.replace(/-./g, (x)=>x[1].toUpperCase());\n}\n/**\n * @internal\n * @param value\n * @returns\n */ function normalize(value) {\n    return(// Keep raw strings if it starts with `url(`\n    value.includes('url(') ? value.replace(/(.*?)(url\\(.*?\\))(.*?)/g, (_, before = '', url, after = '')=>normalize(before) + url + normalize(after)) : value.// Convert `_` to ` `, except for escaped underscores `\\_`\n    replace(/(^|[^\\\\])_+/g, (fullMatch, characterBefore)=>characterBefore + ' '.repeat(fullMatch.length - characterBefore.length)).replace(/\\\\_/g, '_').// Add spaces around operators inside math functions like calc() that do not follow an operator\n    // or '('.\n    replace(/(calc|min|max|clamp)\\(.+\\)/g, (match)=>match.replace(/(-?\\d*\\.?\\d(?!\\b-.+[,)](?![^+\\-/*])\\D)(?:%|[a-z]+)?|\\))([+\\-/*])/g, '$1 $2 ')));\n}\n/** Allows to resolve theme values. */ let kAutocomplete = /* #__PURE__ */ Symbol();\n/**\n * @experimental\n * @group Configuration\n * @param resolver\n * @param autocomplete\n */ function withAutocomplete(rule, autocomplete) {\n    return rule;\n}\n/**\n * @internal\n * @param resolver\n * @returns\n */ function getAutocompleteProvider(resolver) {\n    return resolver[kAutocomplete];\n}\n/**\n * Constructs `class` strings conditionally.\n *\n * Twinds version of popular libraries like [classnames](https://github.com/JedWatson/classnames) or [clsx](https://github.com/lukeed/clsx).\n * The key advantage of `cx` is that it supports twinds enhanced class name syntax like grouping and aliases.\n *\n * @group Class Name Generators\n * @param strings\n * @param interpolations\n * @returns\n */ /**\n * Constructs `class` strings conditionally.\n *\n * Twinds version of popular libraries like [classnames](https://github.com/JedWatson/classnames) or [clsx](https://github.com/lukeed/clsx).\n * The key advantage of `cx` is that it supports twinds enhanced class name syntax like grouping and aliases.\n *\n * @group Class Name Generators\n * @param input\n */ function cx(strings, ...interpolations) {\n    return format(parse(interpolate(strings, interpolations)), ' ');\n}\n/**\n * @group Configuration\n * @param param0\n * @returns\n */ function defineConfig({ presets =[] , ...userConfig }) {\n    // most user config values go first to have precendence over preset config\n    // only `preflight` and `theme` are applied as last preset to override all presets\n    let config = {\n        darkMode: void 0,\n        darkColor: void 0,\n        preflight: false !== userConfig.preflight && [],\n        theme: {},\n        variants: asArray(userConfig.variants),\n        rules: asArray(userConfig.rules),\n        ignorelist: asArray(userConfig.ignorelist),\n        hash: void 0,\n        stringify: (property, value)=>property + ':' + value,\n        finalize: []\n    };\n    for (let preset of asArray([\n        ...presets,\n        {\n            darkMode: userConfig.darkMode,\n            darkColor: userConfig.darkColor,\n            preflight: false !== userConfig.preflight && asArray(userConfig.preflight),\n            theme: userConfig.theme,\n            hash: userConfig.hash,\n            stringify: userConfig.stringify,\n            finalize: userConfig.finalize\n        }\n    ])){\n        let { preflight , darkMode =config.darkMode , darkColor =config.darkColor , theme , variants , rules , ignorelist , hash =config.hash , stringify =config.stringify , finalize  } = 'function' == typeof preset ? preset(config) : preset;\n        config = {\n            // values defined by user or previous presets take precedence\n            preflight: false !== config.preflight && false !== preflight && [\n                ...config.preflight,\n                ...asArray(preflight)\n            ],\n            darkMode,\n            darkColor,\n            theme: {\n                ...config.theme,\n                ...theme,\n                extend: {\n                    ...config.theme.extend,\n                    ...theme?.extend\n                }\n            },\n            variants: [\n                ...config.variants,\n                ...asArray(variants)\n            ],\n            rules: [\n                ...config.rules,\n                ...asArray(rules)\n            ],\n            ignorelist: [\n                ...config.ignorelist,\n                ...asArray(ignorelist)\n            ],\n            hash,\n            stringify,\n            finalize: [\n                ...config.finalize,\n                ...asArray(finalize)\n            ]\n        };\n    }\n    return config;\n}\nfunction find(value, list, cache, getResolver, context, isDark) {\n    for (let item of list){\n        let resolver = cache.get(item);\n        resolver || cache.set(item, resolver = getResolver(item));\n        let resolved = resolver(value, context, isDark);\n        if (resolved) return resolved;\n    }\n}\nfunction getVariantResolver(variant) {\n    var resolve;\n    return createResolve(variant[0], 'function' == typeof (resolve = variant[1]) ? resolve : ()=>resolve);\n}\nfunction getRuleResolver(rule) {\n    var resolve, convert;\n    return Array.isArray(rule) ? createResolve(rule[0], fromMatch(rule[1], rule[2])) : createResolve(rule, fromMatch(resolve, convert));\n}\nfunction createResolve(patterns, resolve) {\n    return createRegExpExecutor(patterns, (value, condition, context, isDark)=>{\n        let match = condition.exec(value);\n        if (match) return(// MATCH.$_ = value\n        match.$$ = value.slice(match[0].length), match.dark = isDark, resolve(match, context));\n    });\n}\nfunction createRegExpExecutor(patterns, run) {\n    let conditions = asArray(patterns).map(toCondition);\n    return (value, context, isDark)=>{\n        for (let condition of conditions){\n            let result = run(value, condition, context, isDark);\n            if (result) return result;\n        }\n    };\n}\nfunction toCondition(value) {\n    // \"visible\" -> /^visible$/\n    // \"(float)-(left|right|none)\" -> /^(float)-(left|right|none)$/\n    // \"auto-rows-\" -> /^auto-rows-/\n    // \"gap(-|$)\" -> /^gap(-|$)/\n    return 'string' == typeof value ? RegExp('^' + value + (value.includes('$') || '-' == value.slice(-1) ? '' : '$')) : value;\n}\n/**\n * @group Runtime\n * @param config\n * @param sheet\n */ function twind(userConfig, sheet) {\n    let config = defineConfig(userConfig), context = function({ theme , darkMode , darkColor =noop , variants , rules , hash: hash$1 , stringify , ignorelist , finalize  }) {\n        // Used to cache resolved rule values\n        let variantCache = new Map(), // lazy created resolve functions\n        variantResolvers = new Map(), // Used to cache resolved rule values\n        ruleCache = new Map(), // lazy created resolve functions\n        ruleResolvers = new Map(), ignored = createRegExpExecutor(ignorelist, (value, condition)=>condition.test(value));\n        // add dark as last variant to allow user to override it\n        // we can modify variants as it has been passed through defineConfig which already made a copy\n        variants.push([\n            'dark',\n            Array.isArray(darkMode) || 'class' == darkMode ? `${asArray(darkMode)[1] || '.dark'} &` : 'string' == typeof darkMode && 'media' != darkMode ? darkMode : // a custom selector\n            '@media (prefers-color-scheme:dark)'\n        ]);\n        let h = 'function' == typeof hash$1 ? (value)=>hash$1(value, hash) : hash$1 ? hash : identity;\n        h !== identity && finalize.push((rule)=>({\n                ...rule,\n                n: rule.n && h(rule.n),\n                d: rule.d?.replace(/--(tw(?:-[\\w-]+)?)\\b/g, (_, property)=>'--' + h(property).replace('#', ''))\n            }));\n        let ctx = {\n            theme: function({ extend ={} , ...base }) {\n                let resolved = {}, resolveContext = {\n                    get colors () {\n                        return theme('colors');\n                    },\n                    theme,\n                    // Stub implementation as negated values are automatically infered and do _not_ need to be in the theme\n                    negative () {\n                        return {};\n                    },\n                    breakpoints (screens) {\n                        let breakpoints = {};\n                        for(let key in screens)'string' == typeof screens[key] && (breakpoints['screen-' + key] = screens[key]);\n                        return breakpoints;\n                    }\n                };\n                return theme;\n                function theme(sectionKey, key, defaultValue, opacityValue) {\n                    if (sectionKey) {\n                        ({ 1: sectionKey , 2: opacityValue  } = // eslint-disable-next-line no-sparse-arrays\n                        /^(\\S+?)(?:\\s*\\/\\s*([^/]+))?$/.exec(sectionKey) || [\n                            ,\n                            sectionKey\n                        ]);\n                        if (/[.[]/.test(sectionKey)) {\n                            let path = [];\n                            // dotted deep access: colors.gray.500 or spacing[2.5]\n                            sectionKey.replace(/\\[([^\\]]+)\\]|([^.[]+)/g, (_, $1, $2 = $1)=>path.push($2));\n                            sectionKey = path.shift();\n                            defaultValue = key;\n                            key = path.join('-');\n                        }\n                        let section = resolved[sectionKey] || // two-step deref to allow extend section to reference base section\n                        Object.assign(Object.assign(// Make sure to not get into recursive calls\n                        resolved[sectionKey] = {}, deref(base, sectionKey)), deref(extend, sectionKey));\n                        if (null == key) return section;\n                        key || (key = 'DEFAULT');\n                        let value = section[key] ?? key.split('-').reduce((obj, prop)=>obj?.[prop], section) ?? defaultValue;\n                        return opacityValue ? toColorValue(value, {\n                            opacityValue: resolveThemeFunction(opacityValue, theme)\n                        }) : value;\n                    }\n                    // Collect the whole theme\n                    let result = {};\n                    for (let section1 of [\n                        ...Object.keys(base),\n                        ...Object.keys(extend)\n                    ])result[section1] = theme(section1);\n                    return result;\n                }\n                function deref(source, section) {\n                    let value = source[section];\n                    return ('function' == typeof value && (value = value(resolveContext)), value && /color|fill|stroke/i.test(section)) ? function flattenColorPalette(colors, path = []) {\n                        let flattend = {};\n                        for(let key in colors){\n                            let value = colors[key], keyPath = [\n                                ...path,\n                                key\n                            ];\n                            flattend[keyPath.join('-')] = value;\n                            if ('DEFAULT' == key) {\n                                keyPath = path;\n                                flattend[path.join('-')] = value;\n                            }\n                            'object' == typeof value && Object.assign(flattend, flattenColorPalette(value, keyPath));\n                        }\n                        return flattend;\n                    }(value) : value;\n                }\n            }(theme),\n            e: escape,\n            h,\n            s (property, value) {\n                return stringify(property, value, ctx);\n            },\n            d (section, key, color) {\n                return darkColor(section, key, ctx, color);\n            },\n            v (value) {\n                return variantCache.has(value) || variantCache.set(value, find(value, variants, variantResolvers, getVariantResolver, ctx) || '&:' + value), variantCache.get(value);\n            },\n            r (className, isDark) {\n                let key = JSON.stringify([\n                    className,\n                    isDark\n                ]);\n                return ruleCache.has(key) || ruleCache.set(key, !ignored(className, ctx) && find(className, rules, ruleResolvers, getRuleResolver, ctx, isDark)), ruleCache.get(key);\n            },\n            f (rule) {\n                return finalize.reduce((rule, p)=>p(rule, ctx), rule);\n            }\n        };\n        return ctx;\n    }(config), // Map of tokens to generated className\n    cache = new Map(), // An array of precedence by index within the sheet\n    // always sorted\n    sortedPrecedences = [], // Cache for already inserted css rules\n    // to prevent double insertions\n    insertedRules = new Set();\n    sheet.resume((className)=>cache.set(className, className), (cssText, rule)=>{\n        sheet.insert(cssText, sortedPrecedences.length, rule);\n        sortedPrecedences.push(rule);\n        insertedRules.add(cssText);\n    });\n    function insert(rule) {\n        let finalRule = context.f(rule), cssText = stringify$1(finalRule);\n        // If not already inserted\n        if (cssText && !insertedRules.has(cssText)) {\n            // Mark rule as inserted\n            insertedRules.add(cssText);\n            // Find the correct position\n            let index = sortedInsertionIndex(sortedPrecedences, rule);\n            // Insert\n            sheet.insert(cssText, index, rule);\n            // Update sorted index\n            sortedPrecedences.splice(index, 0, rule);\n        }\n        return finalRule.n;\n    }\n    return Object.defineProperties(function tw(tokens) {\n        if (!cache.size) for (let preflight of asArray(config.preflight)){\n            'function' == typeof preflight && (preflight = preflight(context));\n            preflight && ('string' == typeof preflight ? translateWith('', Layer.b, parse(preflight), context, Layer.b, [], false, true) : serialize(preflight, {}, context, Layer.b)).forEach(insert);\n        }\n        tokens = '' + tokens;\n        let className = cache.get(tokens);\n        if (!className) {\n            let classNames = new Set();\n            for (let rule of translate(parse(tokens), context))classNames.add(rule.c).add(insert(rule));\n            className = [\n                ...classNames\n            ].filter(Boolean).join(' ');\n            // Remember the generated class name\n            cache.set(tokens, className).set(className, className);\n        }\n        return className;\n    }, Object.getOwnPropertyDescriptors({\n        get target () {\n            return sheet.target;\n        },\n        theme: context.theme,\n        config,\n        snapshot () {\n            let restoreSheet = sheet.snapshot(), insertedRules$ = new Set(insertedRules), cache$ = new Map(cache), sortedPrecedences$ = [\n                ...sortedPrecedences\n            ];\n            return ()=>{\n                restoreSheet();\n                insertedRules = insertedRules$;\n                cache = cache$;\n                sortedPrecedences = sortedPrecedences$;\n            };\n        },\n        clear () {\n            sheet.clear();\n            insertedRules = new Set();\n            cache = new Map();\n            sortedPrecedences = [];\n        },\n        destroy () {\n            this.clear();\n            sheet.destroy();\n        }\n    }));\n}\n/**\n * Determines if two class name strings contain the same classes.\n *\n * @param a first class names\n * @param b second class names\n * @returns are they different\n */ function changed(a, b) {\n    return a != b && '' + a.split(' ').sort() != '' + b.split(' ').sort();\n}\n/**\n * @group Runtime\n * @param tw\n * @param target\n * @returns\n * @internal\n */ function mo(tw) {\n    let observer = new MutationObserver(handleMutationRecords);\n    return {\n        observe (target) {\n            observer.observe(target, {\n                attributeFilter: [\n                    'class'\n                ],\n                subtree: true,\n                childList: true\n            });\n            // handle class attribute on target\n            handleClassAttributeChange(target);\n            // handle children of target\n            handleMutationRecords([\n                {\n                    target,\n                    type: ''\n                }\n            ]);\n        },\n        disconnect () {\n            observer.disconnect();\n        }\n    };\n    function handleMutationRecords(records) {\n        for (let { type , target  } of records)if ('a' == type[0]) /* attribute */ // class attribute has been changed\n        handleClassAttributeChange(target);\n        else /* childList */ // some nodes have been added — find all with a class attribute\n        for (let el of target.querySelectorAll('[class]'))handleClassAttributeChange(el);\n        // remove pending mutations — these are triggered by updating the class attributes\n        observer.takeRecords();\n    }\n    // XXX maybe we need to handle all pending mutations\n    // observer.takeRecords().forEach(handleMutation)\n    function handleClassAttributeChange(target) {\n        let className;\n        // Not using target.classList.value (not supported in all browsers) or target.class (this is an SVGAnimatedString for svg)\n        // safe guard access to getAttribute because ShadowRoot does not have attribute but child nodes\n        let tokens = target.getAttribute?.('class');\n        tokens && changed(tokens, className = tw(tokens)) && // Not using `target.className = ...` as that is read-only for SVGElements\n        target.setAttribute('class', className);\n    }\n}\n/**\n * @group Runtime\n * @param tw\n * @param target\n * @returns\n */ function observe(tw$1 = tw, target = 'undefined' != typeof document && document.documentElement) {\n    if (target) {\n        let observer = mo(tw$1);\n        observer.observe(target);\n        // monkey patch tw.destroy to disconnect this observer\n        // eslint-disable-next-line @typescript-eslint/unbound-method\n        let { destroy  } = tw$1;\n        tw$1.destroy = ()=>{\n            observer.disconnect();\n            destroy.call(tw$1);\n        };\n    }\n    return tw$1;\n}\n/**\n * Simplified MutationRecord which allows us to pass an\n * ArrayLike (compatible with Array and NodeList) `addedNodes` and\n * omit other properties we are not interested in.\n */ function getStyleElement(selector) {\n    let style = document.querySelector(selector || 'style[data-twind=\"\"]');\n    if (!style || 'STYLE' != style.tagName) {\n        style = document.createElement('style');\n        document.head.prepend(style);\n    }\n    return style.dataset.twind = 'claimed', style;\n}\n/**\n * @group Sheets\n * @param element\n * @returns\n */ function cssom(element) {\n    let target = element?.cssRules ? element : (element && 'string' != typeof element ? element : getStyleElement(element)).sheet;\n    return {\n        target,\n        snapshot () {\n            // collect current rules\n            let rules = Array.from(target.cssRules, (rule)=>rule.cssText);\n            return ()=>{\n                // remove all existing rules\n                this.clear();\n                // add all snapshot rules back\n                // eslint-disable-next-line @typescript-eslint/unbound-method\n                rules.forEach(this.insert);\n            };\n        },\n        clear () {\n            // remove all added rules\n            for(let index = target.cssRules.length; index--;)target.deleteRule(index);\n        },\n        destroy () {\n            target.ownerNode?.remove();\n        },\n        insert (cssText, index) {\n            try {\n                // Insert\n                target.insertRule(cssText, index);\n            } catch (error) {\n                // Empty rule to keep index valid — not using `*{}` as that would show up in all rules (DX)\n                target.insertRule(':root{}', index);\n            }\n        },\n        resume: noop\n    };\n}\n/**\n * @group Sheets\n * @param element\n * @returns\n */ function dom(element) {\n    let target = element && 'string' != typeof element ? element : getStyleElement(element);\n    return {\n        target,\n        snapshot () {\n            // collect current rules\n            let rules = Array.from(target.childNodes, (node)=>node.textContent);\n            return ()=>{\n                // remove all existing rules\n                this.clear();\n                // add all snapshot rules back\n                // eslint-disable-next-line @typescript-eslint/unbound-method\n                rules.forEach(this.insert);\n            };\n        },\n        clear () {\n            target.textContent = '';\n        },\n        destroy () {\n            target.remove();\n        },\n        insert (cssText, index) {\n            target.insertBefore(document.createTextNode(cssText), target.childNodes[index] || null);\n        },\n        resume: noop\n    };\n}\n/**\n * @group Sheets\n * @param includeResumeData\n * @returns\n */ function virtual(includeResumeData) {\n    let target = [];\n    return {\n        target,\n        snapshot () {\n            // collect current rules\n            let rules = [\n                ...target\n            ];\n            return ()=>{\n                // remove all existing rules and add all snapshot rules back\n                target.splice(0, target.length, ...rules);\n            };\n        },\n        clear () {\n            target.length = 0;\n        },\n        destroy () {\n            this.clear();\n        },\n        insert (css, index, rule) {\n            target.splice(index, 0, includeResumeData ? `/*!${rule.p.toString(36)},${(2 * rule.o).toString(36)}${rule.n ? ',' + rule.n : ''}*/${css}` : css);\n        },\n        resume: noop\n    };\n}\n/**\n * Returns a sheet useable in the current environment.\n *\n * @group Sheets\n * @param useDOMSheet usually something like `process.env.NODE_ENV != 'production'` or `import.meta.env.DEV` (default: browser={@link cssom}, server={@link virtual})\n * @param disableResume to not include or use resume data\n * @returns a sheet to use\n */ function getSheet(useDOMSheet, disableResume) {\n    let sheet = 'undefined' == typeof document ? virtual(!disableResume) : useDOMSheet ? dom() : cssom();\n    return disableResume || (sheet.resume = resume), sheet;\n}\n/**\n * @group Sheets\n * @param target\n * @returns\n */ function stringify(target) {\n    // string[] | CSSStyleSheet | HTMLStyleElement\n    return(// prefer the raw text content of a CSSStyleSheet as it may include the resume data\n    (target.ownerNode || target).textContent || (target.cssRules ? Array.from(target.cssRules, (rule)=>rule.cssText) : asArray(target)).join(''));\n}\nfunction resume(addClassName, insert) {\n    // hydration from SSR sheet\n    let textContent = stringify(this.target), RE = /\\/\\*!([\\da-z]+),([\\da-z]+)(?:,(.+?))?\\*\\//g;\n    // only if this is a hydratable sheet\n    if (RE.test(textContent)) {\n        var match;\n        let // 3. parse SSR styles\n        lastMatch;\n        // RE has global flag — reset index to get the first match as well\n        RE.lastIndex = 0;\n        // 1. start with a fresh sheet\n        this.clear();\n        // 2. add all existing class attributes to the token/className cache\n        if ('undefined' != typeof document) for (let el of document.querySelectorAll('[class]'))addClassName(el.getAttribute('class'));\n        for(; match = RE.exec(textContent), lastMatch && insert(// grep the cssText from the previous match end up to this match start\n        textContent.slice(lastMatch.index + lastMatch[0].length, match?.index), {\n            p: parseInt(lastMatch[1], 36),\n            o: parseInt(lastMatch[2], 36) / 2,\n            n: lastMatch[3]\n        }), lastMatch = match;);\n    }\n}\n/* no-op */ /**\n * @group Runtime\n * @param install\n * @returns\n */ function auto(install) {\n    // If we run in the browser we call install at latest when the body is inserted\n    // This algorith works well for _normal_ scripts (`<script src=\"...\"></script>`)\n    // but not for modules because those are executed __after__ the DOM is ready\n    // and we would have FOUC\n    if ('undefined' != typeof document && document.currentScript) {\n        let cancelAutoInstall = ()=>observer.disconnect(), observer = new MutationObserver((mutationsList)=>{\n            for (let { target  } of mutationsList)// If we reach the body we immediately run the install to prevent FOUC\n            if (target === document.body) {\n                install();\n                return cancelAutoInstall();\n            }\n        });\n        return observer.observe(document.documentElement, {\n            childList: true,\n            subtree: true\n        }), cancelAutoInstall;\n    }\n    return noop;\n}\n/**\n * A proxy to the currently active Twind instance.\n * @group Style Injectors\n */ let tw = /* #__PURE__ */ new Proxy(// just exposing the active as tw should work with most bundlers\n// as ES module export can be re-assigned BUT some bundlers to not honor this\n// -> using a delegation proxy here\nnoop, {\n    apply (_target, _thisArg, args) {\n        return active(args[0]);\n    },\n    get (target, property) {\n        let value = active[property];\n        return 'function' == typeof value ? function() {\n            // eslint-disable-next-line prefer-rest-params\n            return value.apply(active, arguments);\n        } : value;\n    }\n});\n/**\n * Manages a single Twind instance — works in browser, Node.js, Deno, workers...\n *\n * @group Runtime\n * @param config\n * @param sheet\n * @param target\n * @returns\n */ function setup(config = {}, sheet = getSheet, target) {\n    return active?.destroy(), active = observe(twind(config, 'function' == typeof sheet ? sheet() : sheet), target);\n}\n/**\n * Injects styles into the global scope and is useful for applications such as gloabl styles, CSS resets or font faces.\n *\n * It **does not** return a class name, but adds the styles within the base layer to the stylesheet directly.\n *\n * @group Style Injectors\n */ let injectGlobal = function(strings, ...interpolations) {\n    ('function' == typeof this ? this : tw)(css({\n        '@layer base': astish(strings, interpolations)\n    }));\n};\n/**\n * @group Runtime\n * @param config\n * @param isProduction\n */ function install(config, isProduction = true) {\n    let config$ = defineConfig(config);\n    return setup({\n        ...config$,\n        // in production use short hashed class names\n        hash: config$.hash ?? isProduction\n    }, ()=>getSheet(!isProduction));\n}\n/**\n * **Note**: The styles will be injected on first use.\n *\n * @group Style Injectors\n */ let keyframes = /* #__PURE__ */ function bind(thisArg) {\n    return new Proxy(function keyframes(strings, ...interpolations) {\n        return keyframes$(thisArg, '', strings, interpolations);\n    }, {\n        get (target, name) {\n            return 'bind' === name ? bind : name in target ? target[name] : function namedKeyframes(strings, ...interpolations) {\n                return keyframes$(thisArg, name, strings, interpolations);\n            };\n        }\n    });\n}();\nfunction keyframes$(thisArg, name, strings, interpolations) {\n    // lazy inject keyframes\n    return {\n        toString () {\n            let ast = astish(strings, interpolations), keyframeName = escape(name + hash(JSON.stringify([\n                name,\n                ast\n            ])));\n            return(// lazy access tw\n            ('function' == typeof thisArg ? thisArg : tw)(css({\n                [`@keyframes ${keyframeName}`]: astish(strings, interpolations)\n            })), keyframeName);\n        }\n    };\n}\n/**\n * Options for {@link inline}\n */ /**\n   * {@link Twind} instance to use (default: {@link @twind/core.tw})\n   */ /**\n   * Allows to minify the resulting CSS.\n   */ /**\n   * Called to minify the CSS.\n   *\n   * @param css the CSS to minify\n   * @param html the HTML that will be used — allows to only include above-the-fold CSS\n   * @return the resulting CSS\n   */ /**\n * Used for static HTML processing (usually to provide SSR support for your javascript-powered web apps)\n *\n * 1. parse the markup and process element classes with the provided Twind instance\n * 2. update the class attributes _if_ necessary\n * 3. inject a style element with the CSS as last element into the head\n * 4. return the HTML string with the final element classes\n *\n * ```js\n * import { inline } from '@twind/core'\n *\n * function render() {\n *   return inline(renderApp())\n * }\n * ```\n *\n * Minify CSS with [@parcel/css](https://www.npmjs.com/package/@parcel/css):\n *\n * ```js\n * import { inline } from '@twind/core'\n * import { transform } from '@parcel/css'\n *\n * function render() {\n *   return inline(renderApp(), { minify: (css) => transform({ filename: 'twind.css', code: Buffer.from(css), minify: true }) })\n * }\n * ```\n *\n * You can provide your own Twind instance:\n *\n * ```js\n * import { inline } from '@twind/core'\n * import { tw } from './custom/twind/instance'\n *\n * function render() {\n *   return inline(renderApp(), { tw })\n * }\n * ```\n *\n * @group Static Extraction\n * @param markup HTML to process\n * @param options to customize the processing\n * @returns the resulting HTML\n */ function inline(markup, options = {}) {\n    let { tw: tw$1 = tw , minify =identity  } = 'function' == typeof options ? {\n        tw: options\n    } : options, { html , css  } = extract(markup, tw$1);\n    // inject as last element into the head\n    return html.replace('</head>', `<style data-twind>${minify(css, html)}</style></head>`);\n}\n/**\n * Result of {@link extract}\n */ /** The possibly modified HTML */ /** The generated CSS */ /**\n * Used for static HTML processing (usually to provide SSR support for your javascript-powered web apps)\n *\n * **Note**: Consider using {@link inline} instead.\n *\n * 1. parse the markup and process element classes with the provided Twind instance\n * 2. update the class attributes _if_ necessary\n * 3. return the HTML string with the final element classes\n *\n * ```js\n * import { extract } from '@twind/core'\n *\n * function render() {\n *   const { html, css } = extract(renderApp())\n *\n *   // inject as last element into the head\n *   return html.replace('</head>', `<style data-twind>${css}</style></head>`)\n * }\n * ```\n *\n * You can provide your own Twind instance:\n *\n * ```js\n * import { extract } from '@twind/core'\n * import { tw } from './custom/twind/instance'\n *\n * function render() {\n *   const { html, css } = extract(renderApp(), tw)\n *\n *   // inject as last element into the head\n *   return html.replace('</head>', `<style data-twind>${css}</style></head>`)\n * }\n * ```\n *\n * @group Static Extraction\n * @param markup HTML to process\n * @param tw a {@link Twind} instance (default: twind managed tw)\n * @returns the possibly modified html and css\n */ function extract(html, tw$1 = tw) {\n    let restore = tw$1.snapshot(), result = {\n        html: consume(html, tw$1),\n        css: stringify(tw$1.target)\n    };\n    return restore(), result;\n}\n/**\n * Used for static HTML processing (usually to provide SSR support for your javascript-powered web apps)\n *\n * **Note**: Consider using {@link inline} or {@link extract} instead.\n *\n * 1. parse the markup and process element classes with the provided Twind instance\n * 2. update the class attributes _if_ necessary\n * 3. return the HTML string with the final element classes\n *\n * ```js\n * import { consume, stringify, tw } from '@twind/core'\n *\n * function render() {\n *   const html = renderApp()\n *\n *   // remember global classes\n *   const restore = tw.snapshot()\n *\n *   // generated markup\n *   const markup = consume(html)\n *\n *   // create CSS\n *   const css = stringify(tw.target)\n *\n *   // restore global classes\n *   restore()\n *\n *   // inject as last element into the head\n *   return markup.replace('</head>', `<style data-twind>${css}</style></head>`)\n * }\n * ```\n *\n * You can provide your own Twind instance:\n *\n * ```js\n * import { consume, stringify } from '@twind/core'\n * import { tw } from './custom/twind/instance'\n *\n * function render() {\n *   const html = renderApp()\n *\n *   // remember global classes\n *   const restore = snapshot(tw.target)\n *\n *   // generated markup\n *   const markup = consume(html)\n *\n *   // restore global classes\n *   restore()\n *\n *   // create CSS\n *   const css = stringify(tw.target)\n *\n *   // inject as last element into the head\n *   return markup.replace('</head>', `<style data-twind>${css}</style></head>`)\n * }\n * ```\n *\n * @group Static Extraction\n * @param markup HTML to process\n * @param tw a {@link Twind} instance\n * @returns possibly modified HTML\n */ function consume(markup, tw$1 = tw) {\n    let result = '', lastChunkStart = 0;\n    return !function(markup, onClass) {\n        let mode = 1, startIndex = 0, quote = '', attributeName = '', commit = (currentIndex)=>{\n            5 == mode && 'class' == attributeName && false === onClass(startIndex, currentIndex, quote) && (markup = '');\n        };\n        for(let position = 0; position < markup.length; position++){\n            let char = markup[position];\n            if (1 == mode) '<' == char && (mode = '!--' == markup.substr(position + 1, 3) ? 4 : 3);\n            else if (4 == mode) '>' == char && '--' == markup.slice(position - 2, position) && (mode = 1);\n            else if (quote) {\n                if (char == quote && '\\\\' != markup[position - 1]) {\n                    commit(position);\n                    mode = 2;\n                    quote = '';\n                }\n            } else if ('\"' == char || \"'\" == char) {\n                quote = char;\n                startIndex += 1;\n            } else if ('>' == char) {\n                commit(position);\n                mode = 1;\n            } else if (mode) {\n                // MODE_SLASH\n                // Ignore everything until the tag ends\n                if ('=' == char) {\n                    attributeName = markup.slice(startIndex, position);\n                    mode = 5;\n                    startIndex = position + 1;\n                } else if ('/' == char && (mode < 5 || '>' == markup[position + 1])) {\n                    commit(position);\n                    mode = // For now we are using a simple parser adapted from htm (https://github.com/developit/htm/blob/master/src/build.mjs)\n                    // If we find any issues we can switch to something more sophisticated like\n                    // - https://github.com/acrazing/html5parser\n                    // - https://github.com/fb55/htmlparser2\n                    0;\n                } else if (/\\s/.test(char)) {\n                    // <a class=font-bold>\n                    commit(position);\n                    mode = 2;\n                    startIndex = position + 1;\n                }\n            }\n        }\n    }(markup, (startIndex, endIndex, quote)=>{\n        var quote1;\n        let value = markup.slice(startIndex, endIndex), className = tw$1(// const value = markup.slice(startIndex, endIndex)\n        // Lets handle some special react cases:\n        //   * arbitrary values for `content-`\n        //     <span class=\"before:content-[&#x27;asas&#x27;]\"></span>\n        //     <span class=\"before:content-[&quot;asas&quot;]\"></span>\n        //\n        //   * self-referenced groups\n        //     <span class=\"flex(&amp; col)\"></span>\n        //\n        //     If a class name contains `'`, `\"`, or `&` those will be replaced with HTML entities\n        //     To fix this we replace those for depending on the actual symbol that is being used\n        //     As an alternative we could always escape class names direcly in twind like react does\n        //     but this works for now\n        ('\"' == (quote1 = quote) ? // `'` -> &#39; &apos; &#x27;\n        value.replace(/(=|\\[)(?:&#39;|&apos;|&#x27;)|(?:&#39;|&apos;|&#x27;)(])/g, \"$1'$2\") : \"'\" == quote1 ? // `\"` -> &#34; &quot; &#x22;\n        value.replace(/(=|\\[)(?:&#34;|&quot;|&#x22;)|(?:&#34;|&quot;|&#x22;)(])/g, '$1\"$2') : value).replace(/(&#38;|&amp;|&#x26;)/g, '&'));\n        // We only need to shift things around if we need to actually change the markup\n        if (changed(value, className)) {\n            // We've hit another mutation boundary\n            // Add quote if necessary\n            quote = quote ? '' : '\"';\n            result += markup.slice(lastChunkStart, startIndex) + quote + className + quote;\n            lastChunkStart = endIndex;\n        }\n    }), // Combine the current result with the tail-end of the input\n    result + markup.slice(lastChunkStart, markup.length);\n}\n// Based on https://github.com/modulz/stitches\n// No support for thunks yet — these may use props that are not in the generated class name\n// and may therefore override each other\n/**\n * Allows to extract the supported properties of a style function.\n *\n * Here is an example for `react`\n * ```js\n * import { HTMLAttributes } from \"react\";\n * import { style, PropsOf } from \"@twind/core\";\n * const button = style({ ... })\n * type ButtonProps = PropsOf<typeof button>\n * export const Button = (props: ButtonProps & HTMLAttributes<HTMLButtonElement>) => {\n *   return <button className={style(props)} {...rest} />\n * }\n * ```\n */ /** initial breakpoint */ // TODO possible breakpoint from theme\n/** initial breakpoint */ // eslint-disable-next-line @typescript-eslint/ban-types\n/** Used as prefix */ /**\n   * CSS Class associated with the current component.\n   *\n   * ```jsx\n   * const button = style({\n   *   base: css({\n   *     color: \"DarkSlateGray\"\n   *   })\n   * })\n   *\n   * <div className={button()} />\n   * ```\n   * <br />\n   */ /**\n   * To be used as resolve within config.rules:\n   *\n   * ```js\n   * {\n   *   rules: [\n   *     // label?prop=value&other=propValue\n   *     // if the style has base eg no prop is required\n   *     ['label(\\\\?.+)?', style( /* ... *\\/ )],\n   *\n   *     // if the style requires at least one prop\n   *     ['label\\\\?(.+)', style( /* ... *\\/ )],\n   *   ]\n   * }\n   * ```\n   *\n   * The first group is used to extract the props using {@link !URLSearchParams | URLSearchParams}.\n   */ /**\n   * CSS Class associated with the current component.\n   *\n   * ```js\n   * const button = style({\n   *   base: css`\n   *     color: \"DarkSlateGray\"\n   *   `\n   * })\n   *\n   * <div className={button.className} />\n   * ```\n   */ /**\n   * CSS Selector associated with the current component.\n   *\n   * ```js\n   * const button = style({\n   *   base: css({\n   *     color: \"DarkSlateGray\"\n   *   })\n   * })\n   *\n   * const Card = styled({\n   *   base: css`\n   *     & ${button.selector} {\n   *       boxShadow: \"0 0 0 5px\"\n   *     }\n   *   `\n   * })\n   * ```\n   */ /**\n * @group Class Name Generators\n */ let style = (base, config)=>'function' == typeof base ? createStyle(config, base) : createStyle(base);\nfunction createStyle(config = {}, parent) {\n    let { label ='style' , base , props: variants = {} , defaults: localDefaults , when =[]  } = config, defaults = {\n        ...parent?.defaults,\n        ...localDefaults\n    }, id = hash(JSON.stringify([\n        label,\n        parent?.className,\n        base,\n        variants,\n        defaults,\n        when\n    ])), // Layers:\n    // component: 0b010\n    // props: 0b011\n    // when: 0b100\n    className = register('', base || '', Layer.c);\n    function register(mq, token, layer) {\n        return define(// `<name>#<id>` or `<parent>~<name>#<id>`\n        ((parent ? parent.className.replace(/#.+$/, '~') : '') + label + mq + id).replace(/[: ,()[\\]]/, ''), layer, token && parse(token));\n    }\n    return Object.defineProperties(function style(allProps) {\n        let isWithinRuleDeclaration, token;\n        if (Array.isArray(allProps)) {\n            isWithinRuleDeclaration = true;\n            allProps = Object.fromEntries(new URLSearchParams(allProps[1]).entries());\n        }\n        let props = {\n            ...defaults,\n            ...allProps\n        }, // If this style is used within config.rules we do NOT include the marker classes\n        classNames = isWithinRuleDeclaration ? '' : (parent ? parent(props) + ' ' : '') + className;\n        for(let variantKey in variants){\n            let variant = variants[variantKey], propsValue = props[variantKey];\n            if (propsValue === Object(propsValue)) {\n                // inline responsive breakpoints\n                let mq = '';\n                token = '';\n                for(let breakpoint in propsValue){\n                    let breakpointToken = variant[propsValue[breakpoint]];\n                    if (breakpointToken) {\n                        mq += '@' + breakpoint + '-' + propsValue[breakpoint];\n                        token += (token && ' ') + ('_' == breakpoint ? breakpointToken : breakpoint + ':(' + breakpointToken + ')');\n                    }\n                }\n                token && (classNames += ' ' + register('--' + variantKey + '-' + mq, token, 402653184));\n            } else (token = variant[propsValue]) && (classNames += ' ' + register('--' + variantKey + '-' + propsValue, token, 402653184));\n        }\n        return /* Shifts.layer */ when.forEach((match, index)=>{\n            let mq = '';\n            for(let variantKey in match[0]){\n                let propsValue = props[variantKey];\n                // TODO we ignore inline responsive breakpoints for now — what be the result??\n                if (propsValue !== Object(propsValue) && '' + propsValue == '' + match[0][variantKey]) mq += (mq && '_') + variantKey + '-' + propsValue;\n                else {\n                    mq = '';\n                    break;\n                }\n            }\n            mq && (token = match[1]) && (classNames += ' ' + register('-' + index + '--' + mq, token, 536870912));\n        }), /* Shifts.layer */ classNames;\n    }, Object.getOwnPropertyDescriptors({\n        className,\n        defaults,\n        selector: '.' + escape(className)\n    }));\n}\n/**\n * Combines {@link tw} and {@link cx}.\n *\n * Using the default `tw` instance:\n *\n * ```js\n * import { tw } from '@twind/core'\n * tx`underline ${falsy && 'italic'}`\n * tx('underline', falsy && 'italic')\n * tx({'underline': true, 'italic': false})\n *\n * // using a custom twind instance\n * import { tw } from './custom/twind'\n * import { tw } from './custom/twind'\n * tx.bind(tw)\n * ```\n *\n * Using a custom `tw` instance:\n *\n * ```js\n * import { tx as tx$ } from '@twind/core'\n * import { tw } from './custom/twind'\n *\n * export const tx = tx$.bind(tw)\n *\n * tx`underline ${falsy && 'italic'}`\n * tx('underline', falsy && 'italic')\n * tx({'underline': true, 'italic': false})\n * ```\n *\n * @group Style Injectors\n * @param this {@link Twind} instance to use (default: {@link tw})\n * @param strings\n * @param interpolations\n * @returns the class name\n */ let tx = function(strings, ...interpolations) {\n    return ('function' == typeof this ? this : tw)(interpolate(strings, interpolations));\n};\nexport { animation, apply, arbitrary, asArray, auto, autoDarkColor, colorFromTheme, consume, css, cssom, cx, defineConfig, dom, escape, extract, fromMatch, fromTheme, getAutocompleteProvider, getSheet, hash, identity, injectGlobal, inline, install, keyframes, match, matchColor, matchTheme, mo, mql, noop, normalize, observe, parse, parseValue, setup, shortcut, stringify, style, toCSS, toColorValue, tw, twind, tx, virtual, withAutocomplete };\n//# sourceMappingURL=core.js.map\n","/**\n * @module @twind/preset-tailwind/baseTheme\n */ /**\n * @experimental\n */ let theme = {\n    screens: {\n        sm: '640px',\n        md: '768px',\n        lg: '1024px',\n        xl: '1280px',\n        '2xl': '1536px'\n    },\n    columns: {\n        auto: 'auto',\n        // Handled by plugin,\n        // 1: '1',\n        // 2: '2',\n        // 3: '3',\n        // 4: '4',\n        // 5: '5',\n        // 6: '6',\n        // 7: '7',\n        // 8: '8',\n        // 9: '9',\n        // 10: '10',\n        // 11: '11',\n        // 12: '12',\n        '3xs': '16rem',\n        '2xs': '18rem',\n        xs: '20rem',\n        sm: '24rem',\n        md: '28rem',\n        lg: '32rem',\n        xl: '36rem',\n        '2xl': '42rem',\n        '3xl': '48rem',\n        '4xl': '56rem',\n        '5xl': '64rem',\n        '6xl': '72rem',\n        '7xl': '80rem'\n    },\n    spacing: {\n        px: '1px',\n        0: '0px',\n        .../* #__PURE__ */ linear(4, 'rem', 4, 0.5, 0.5),\n        // 0.5: '0.125rem',\n        // 1: '0.25rem',\n        // 1.5: '0.375rem',\n        // 2: '0.5rem',\n        // 2.5: '0.625rem',\n        // 3: '0.75rem',\n        // 3.5: '0.875rem',\n        // 4: '1rem',\n        .../* #__PURE__ */ linear(12, 'rem', 4, 5),\n        // 5: '1.25rem',\n        // 6: '1.5rem',\n        // 7: '1.75rem',\n        // 8: '2rem',\n        // 9: '2.25rem',\n        // 10: '2.5rem',\n        // 11: '2.75rem',\n        // 12: '3rem',\n        14: '3.5rem',\n        .../* #__PURE__ */ linear(64, 'rem', 4, 16, 4),\n        // 16: '4rem',\n        // 20: '5rem',\n        // 24: '6rem',\n        // 28: '7rem',\n        // 32: '8rem',\n        // 36: '9rem',\n        // 40: '10rem',\n        // 44: '11rem',\n        // 48: '12rem',\n        // 52: '13rem',\n        // 56: '14rem',\n        // 60: '15rem',\n        // 64: '16rem',\n        72: '18rem',\n        80: '20rem',\n        96: '24rem'\n    },\n    durations: {\n        75: '75ms',\n        100: '100ms',\n        150: '150ms',\n        200: '200ms',\n        300: '300ms',\n        500: '500ms',\n        700: '700ms',\n        1000: '1000ms'\n    },\n    animation: {\n        none: 'none',\n        spin: 'spin 1s linear infinite',\n        ping: 'ping 1s cubic-bezier(0,0,0.2,1) infinite',\n        pulse: 'pulse 2s cubic-bezier(0.4,0,0.6,1) infinite',\n        bounce: 'bounce 1s infinite'\n    },\n    aspectRatio: {\n        auto: 'auto',\n        square: '1/1',\n        video: '16/9'\n    },\n    backdropBlur: /* #__PURE__ */ alias('blur'),\n    backdropBrightness: /* #__PURE__ */ alias('brightness'),\n    backdropContrast: /* #__PURE__ */ alias('contrast'),\n    backdropGrayscale: /* #__PURE__ */ alias('grayscale'),\n    backdropHueRotate: /* #__PURE__ */ alias('hueRotate'),\n    backdropInvert: /* #__PURE__ */ alias('invert'),\n    backdropOpacity: /* #__PURE__ */ alias('opacity'),\n    backdropSaturate: /* #__PURE__ */ alias('saturate'),\n    backdropSepia: /* #__PURE__ */ alias('sepia'),\n    backgroundColor: /* #__PURE__ */ alias('colors'),\n    backgroundImage: {\n        none: 'none'\n    },\n    // These are built-in\n    // 'gradient-to-t': 'linear-gradient(to top, var(--tw-gradient-stops))',\n    // 'gradient-to-tr': 'linear-gradient(to top right, var(--tw-gradient-stops))',\n    // 'gradient-to-r': 'linear-gradient(to right, var(--tw-gradient-stops))',\n    // 'gradient-to-br': 'linear-gradient(to bottom right, var(--tw-gradient-stops))',\n    // 'gradient-to-b': 'linear-gradient(to bottom, var(--tw-gradient-stops))',\n    // 'gradient-to-bl': 'linear-gradient(to bottom left, var(--tw-gradient-stops))',\n    // 'gradient-to-l': 'linear-gradient(to left, var(--tw-gradient-stops))',\n    // 'gradient-to-tl': 'linear-gradient(to top left, var(--tw-gradient-stops))',\n    backgroundOpacity: /* #__PURE__ */ alias('opacity'),\n    // backgroundPosition: {\n    //   // The following are already handled by the plugin:\n    //   // center, right, left, bottom, top\n    //   // 'bottom-10px-right-20px' -> bottom 10px right 20px\n    // },\n    backgroundSize: {\n        auto: 'auto',\n        cover: 'cover',\n        contain: 'contain'\n    },\n    blur: {\n        none: 'none',\n        0: '0',\n        sm: '4px',\n        DEFAULT: '8px',\n        md: '12px',\n        lg: '16px',\n        xl: '24px',\n        '2xl': '40px',\n        '3xl': '64px'\n    },\n    brightness: {\n        .../* #__PURE__ */ linear(200, '', 100, 0, 50),\n        // 0: '0',\n        // 50: '.5',\n        // 150: '1.5',\n        // 200: '2',\n        .../* #__PURE__ */ linear(110, '', 100, 90, 5),\n        // 90: '.9',\n        // 95: '.95',\n        // 100: '1',\n        // 105: '1.05',\n        // 110: '1.1',\n        75: '0.75',\n        125: '1.25'\n    },\n    borderColor: ({ theme  })=>({\n            DEFAULT: theme('colors.gray.200', 'currentColor'),\n            ...theme('colors')\n        }),\n    borderOpacity: /* #__PURE__ */ alias('opacity'),\n    borderRadius: {\n        none: '0px',\n        sm: '0.125rem',\n        DEFAULT: '0.25rem',\n        md: '0.375rem',\n        lg: '0.5rem',\n        xl: '0.75rem',\n        '2xl': '1rem',\n        '3xl': '1.5rem',\n        '1/2': '50%',\n        full: '9999px'\n    },\n    borderSpacing: /* #__PURE__ */ alias('spacing'),\n    borderWidth: {\n        DEFAULT: '1px',\n        .../* #__PURE__ */ exponential(8, 'px')\n    },\n    // 0: '0px',\n    // 2: '2px',\n    // 4: '4px',\n    // 8: '8px',\n    boxShadow: {\n        sm: '0 1px 2px 0 rgba(0,0,0,0.05)',\n        DEFAULT: '0 1px 3px 0 rgba(0,0,0,0.1), 0 1px 2px -1px rgba(0,0,0,0.1)',\n        md: '0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1)',\n        lg: '0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1)',\n        xl: '0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1)',\n        '2xl': '0 25px 50px -12px rgba(0,0,0,0.25)',\n        inner: 'inset 0 2px 4px 0 rgba(0,0,0,0.05)',\n        none: '0 0 #0000'\n    },\n    boxShadowColor: alias('colors'),\n    // container: {},\n    // cursor: {\n    //   // Default values are handled by plugin\n    // },\n    caretColor: /* #__PURE__ */ alias('colors'),\n    accentColor: ({ theme  })=>({\n            auto: 'auto',\n            ...theme('colors')\n        }),\n    contrast: {\n        .../* #__PURE__ */ linear(200, '', 100, 0, 50),\n        // 0: '0',\n        // 50: '.5',\n        // 150: '1.5',\n        // 200: '2',\n        75: '0.75',\n        125: '1.25'\n    },\n    content: {\n        none: 'none'\n    },\n    divideColor: /* #__PURE__ */ alias('borderColor'),\n    divideOpacity: /* #__PURE__ */ alias('borderOpacity'),\n    divideWidth: /* #__PURE__ */ alias('borderWidth'),\n    dropShadow: {\n        sm: '0 1px 1px rgba(0,0,0,0.05)',\n        DEFAULT: [\n            '0 1px 2px rgba(0,0,0,0.1)',\n            '0 1px 1px rgba(0,0,0,0.06)'\n        ],\n        md: [\n            '0 4px 3px rgba(0,0,0,0.07)',\n            '0 2px 2px rgba(0,0,0,0.06)'\n        ],\n        lg: [\n            '0 10px 8px rgba(0,0,0,0.04)',\n            '0 4px 3px rgba(0,0,0,0.1)'\n        ],\n        xl: [\n            '0 20px 13px rgba(0,0,0,0.03)',\n            '0 8px 5px rgba(0,0,0,0.08)'\n        ],\n        '2xl': '0 25px 25px rgba(0,0,0,0.15)',\n        none: '0 0 #0000'\n    },\n    fill: ({ theme  })=>({\n            ...theme('colors'),\n            none: 'none'\n        }),\n    grayscale: {\n        DEFAULT: '100%',\n        0: '0'\n    },\n    hueRotate: {\n        0: '0deg',\n        15: '15deg',\n        30: '30deg',\n        60: '60deg',\n        90: '90deg',\n        180: '180deg'\n    },\n    invert: {\n        DEFAULT: '100%',\n        0: '0'\n    },\n    flex: {\n        1: '1 1 0%',\n        auto: '1 1 auto',\n        initial: '0 1 auto',\n        none: 'none'\n    },\n    flexBasis: ({ theme  })=>({\n            ...theme('spacing'),\n            ...ratios(2, 6),\n            // '1/2': '50%',\n            // '1/3': '33.333333%',\n            // '2/3': '66.666667%',\n            // '1/4': '25%',\n            // '2/4': '50%',\n            // '3/4': '75%',\n            // '1/5': '20%',\n            // '2/5': '40%',\n            // '3/5': '60%',\n            // '4/5': '80%',\n            // '1/6': '16.666667%',\n            // '2/6': '33.333333%',\n            // '3/6': '50%',\n            // '4/6': '66.666667%',\n            // '5/6': '83.333333%',\n            ...ratios(12, 12),\n            // '1/12': '8.333333%',\n            // '2/12': '16.666667%',\n            // '3/12': '25%',\n            // '4/12': '33.333333%',\n            // '5/12': '41.666667%',\n            // '6/12': '50%',\n            // '7/12': '58.333333%',\n            // '8/12': '66.666667%',\n            // '9/12': '75%',\n            // '10/12': '83.333333%',\n            // '11/12': '91.666667%',\n            auto: 'auto',\n            full: '100%'\n        }),\n    flexGrow: {\n        DEFAULT: 1,\n        0: 0\n    },\n    flexShrink: {\n        DEFAULT: 1,\n        0: 0\n    },\n    fontFamily: {\n        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(','),\n        serif: 'ui-serif,Georgia,Cambria,\"Times New Roman\",Times,serif'.split(','),\n        mono: 'ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace'.split(',')\n    },\n    fontSize: {\n        xs: [\n            '0.75rem',\n            '1rem'\n        ],\n        sm: [\n            '0.875rem',\n            '1.25rem'\n        ],\n        base: [\n            '1rem',\n            '1.5rem'\n        ],\n        lg: [\n            '1.125rem',\n            '1.75rem'\n        ],\n        xl: [\n            '1.25rem',\n            '1.75rem'\n        ],\n        '2xl': [\n            '1.5rem',\n            '2rem'\n        ],\n        '3xl': [\n            '1.875rem',\n            '2.25rem'\n        ],\n        '4xl': [\n            '2.25rem',\n            '2.5rem'\n        ],\n        '5xl': [\n            '3rem',\n            '1'\n        ],\n        '6xl': [\n            '3.75rem',\n            '1'\n        ],\n        '7xl': [\n            '4.5rem',\n            '1'\n        ],\n        '8xl': [\n            '6rem',\n            '1'\n        ],\n        '9xl': [\n            '8rem',\n            '1'\n        ]\n    },\n    fontWeight: {\n        thin: '100',\n        extralight: '200',\n        light: '300',\n        normal: '400',\n        medium: '500',\n        semibold: '600',\n        bold: '700',\n        extrabold: '800',\n        black: '900'\n    },\n    gap: /* #__PURE__ */ alias('spacing'),\n    gradientColorStops: /* #__PURE__ */ alias('colors'),\n    gridAutoColumns: {\n        auto: 'auto',\n        min: 'min-content',\n        max: 'max-content',\n        fr: 'minmax(0,1fr)'\n    },\n    gridAutoRows: {\n        auto: 'auto',\n        min: 'min-content',\n        max: 'max-content',\n        fr: 'minmax(0,1fr)'\n    },\n    gridColumn: {\n        // span-X is handled by the plugin: span-1 -> span 1 / span 1\n        auto: 'auto',\n        'span-full': '1 / -1'\n    },\n    // gridColumnEnd: {\n    //   // Defaults handled by plugin\n    // },\n    // gridColumnStart: {\n    //   // Defaults handled by plugin\n    // },\n    gridRow: {\n        // span-X is handled by the plugin: span-1 -> span 1 / span 1\n        auto: 'auto',\n        'span-full': '1 / -1'\n    },\n    // gridRowStart: {\n    //   // Defaults handled by plugin\n    // },\n    // gridRowEnd: {\n    //   // Defaults handled by plugin\n    // },\n    gridTemplateColumns: {\n        // numbers are handled by the plugin: 1 -> repeat(1, minmax(0, 1fr))\n        none: 'none'\n    },\n    gridTemplateRows: {\n        // numbers are handled by the plugin: 1 -> repeat(1, minmax(0, 1fr))\n        none: 'none'\n    },\n    height: ({ theme  })=>({\n            ...theme('spacing'),\n            ...ratios(2, 6),\n            // '1/2': '50%',\n            // '1/3': '33.333333%',\n            // '2/3': '66.666667%',\n            // '1/4': '25%',\n            // '2/4': '50%',\n            // '3/4': '75%',\n            // '1/5': '20%',\n            // '2/5': '40%',\n            // '3/5': '60%',\n            // '4/5': '80%',\n            // '1/6': '16.666667%',\n            // '2/6': '33.333333%',\n            // '3/6': '50%',\n            // '4/6': '66.666667%',\n            // '5/6': '83.333333%',\n            min: 'min-content',\n            max: 'max-content',\n            fit: 'fit-content',\n            auto: 'auto',\n            full: '100%',\n            screen: '100vh'\n        }),\n    inset: ({ theme  })=>({\n            ...theme('spacing'),\n            ...ratios(2, 4),\n            // '1/2': '50%',\n            // '1/3': '33.333333%',\n            // '2/3': '66.666667%',\n            // '1/4': '25%',\n            // '2/4': '50%',\n            // '3/4': '75%',\n            auto: 'auto',\n            full: '100%'\n        }),\n    keyframes: {\n        spin: {\n            from: {\n                transform: 'rotate(0deg)'\n            },\n            to: {\n                transform: 'rotate(360deg)'\n            }\n        },\n        ping: {\n            '0%': {\n                transform: 'scale(1)',\n                opacity: '1'\n            },\n            '75%,100%': {\n                transform: 'scale(2)',\n                opacity: '0'\n            }\n        },\n        pulse: {\n            '0%,100%': {\n                opacity: '1'\n            },\n            '50%': {\n                opacity: '.5'\n            }\n        },\n        bounce: {\n            '0%, 100%': {\n                transform: 'translateY(-25%)',\n                animationTimingFunction: 'cubic-bezier(0.8,0,1,1)'\n            },\n            '50%': {\n                transform: 'none',\n                animationTimingFunction: 'cubic-bezier(0,0,0.2,1)'\n            }\n        }\n    },\n    letterSpacing: {\n        tighter: '-0.05em',\n        tight: '-0.025em',\n        normal: '0em',\n        wide: '0.025em',\n        wider: '0.05em',\n        widest: '0.1em'\n    },\n    lineHeight: {\n        .../* #__PURE__ */ linear(10, 'rem', 4, 3),\n        // 3: '.75rem',\n        // 4: '1rem',\n        // 5: '1.25rem',\n        // 6: '1.5rem',\n        // 7: '1.75rem',\n        // 8: '2rem',\n        // 9: '2.25rem',\n        // 10: '2.5rem',\n        none: '1',\n        tight: '1.25',\n        snug: '1.375',\n        normal: '1.5',\n        relaxed: '1.625',\n        loose: '2'\n    },\n    // listStyleType: {\n    //   // Defaults handled by plugin\n    // },\n    margin: ({ theme  })=>({\n            auto: 'auto',\n            ...theme('spacing')\n        }),\n    maxHeight: ({ theme  })=>({\n            full: '100%',\n            min: 'min-content',\n            max: 'max-content',\n            fit: 'fit-content',\n            screen: '100vh',\n            ...theme('spacing')\n        }),\n    maxWidth: ({ theme , breakpoints  })=>({\n            ...breakpoints(theme('screens')),\n            none: 'none',\n            0: '0rem',\n            xs: '20rem',\n            sm: '24rem',\n            md: '28rem',\n            lg: '32rem',\n            xl: '36rem',\n            '2xl': '42rem',\n            '3xl': '48rem',\n            '4xl': '56rem',\n            '5xl': '64rem',\n            '6xl': '72rem',\n            '7xl': '80rem',\n            full: '100%',\n            min: 'min-content',\n            max: 'max-content',\n            fit: 'fit-content',\n            prose: '65ch'\n        }),\n    minHeight: {\n        0: '0px',\n        full: '100%',\n        min: 'min-content',\n        max: 'max-content',\n        fit: 'fit-content',\n        screen: '100vh'\n    },\n    minWidth: {\n        0: '0px',\n        full: '100%',\n        min: 'min-content',\n        max: 'max-content',\n        fit: 'fit-content'\n    },\n    // objectPosition: {\n    //   // The plugins joins all arguments by default\n    // },\n    opacity: {\n        .../* #__PURE__ */ linear(100, '', 100, 0, 10),\n        // 0: '0',\n        // 10: '0.1',\n        // 20: '0.2',\n        // 30: '0.3',\n        // 40: '0.4',\n        // 60: '0.6',\n        // 70: '0.7',\n        // 80: '0.8',\n        // 90: '0.9',\n        // 100: '1',\n        5: '0.05',\n        25: '0.25',\n        75: '0.75',\n        95: '0.95'\n    },\n    order: {\n        // Handled by plugin\n        // 1: '1',\n        // 2: '2',\n        // 3: '3',\n        // 4: '4',\n        // 5: '5',\n        // 6: '6',\n        // 7: '7',\n        // 8: '8',\n        // 9: '9',\n        // 10: '10',\n        // 11: '11',\n        // 12: '12',\n        first: '-9999',\n        last: '9999',\n        none: '0'\n    },\n    padding: /* #__PURE__ */ alias('spacing'),\n    placeholderColor: /* #__PURE__ */ alias('colors'),\n    placeholderOpacity: /* #__PURE__ */ alias('opacity'),\n    outlineColor: /* #__PURE__ */ alias('colors'),\n    outlineOffset: /* #__PURE__ */ exponential(8, 'px'),\n    // 0: '0px',\n    // 1: '1px',\n    // 2: '2px',\n    // 4: '4px',\n    // 8: '8px',,\n    outlineWidth: /* #__PURE__ */ exponential(8, 'px'),\n    // 0: '0px',\n    // 1: '1px',\n    // 2: '2px',\n    // 4: '4px',\n    // 8: '8px',,\n    ringColor: ({ theme  })=>({\n            ...theme('colors'),\n            DEFAULT: '#3b82f6'\n        }),\n    ringOffsetColor: /* #__PURE__ */ alias('colors'),\n    ringOffsetWidth: /* #__PURE__ */ exponential(8, 'px'),\n    // 0: '0px',\n    // 1: '1px',\n    // 2: '2px',\n    // 4: '4px',\n    // 8: '8px',,\n    ringOpacity: ({ theme  })=>({\n            ...theme('opacity'),\n            DEFAULT: '0.5'\n        }),\n    ringWidth: {\n        DEFAULT: '3px',\n        .../* #__PURE__ */ exponential(8, 'px')\n    },\n    // 0: '0px',\n    // 1: '1px',\n    // 2: '2px',\n    // 4: '4px',\n    // 8: '8px',\n    rotate: {\n        .../* #__PURE__ */ exponential(2, 'deg'),\n        // 0: '0deg',\n        // 1: '1deg',\n        // 2: '2deg',\n        .../* #__PURE__ */ exponential(12, 'deg', 3),\n        // 3: '3deg',\n        // 6: '6deg',\n        // 12: '12deg',\n        .../* #__PURE__ */ exponential(180, 'deg', 45)\n    },\n    // 45: '45deg',\n    // 90: '90deg',\n    // 180: '180deg',\n    saturate: /* #__PURE__ */ linear(200, '', 100, 0, 50),\n    // 0: '0',\n    // 50: '.5',\n    // 100: '1',\n    // 150: '1.5',\n    // 200: '2',\n    scale: {\n        .../* #__PURE__ */ linear(150, '', 100, 0, 50),\n        // 0: '0',\n        // 50: '.5',\n        // 150: '1.5',\n        .../* #__PURE__ */ linear(110, '', 100, 90, 5),\n        // 90: '.9',\n        // 95: '.95',\n        // 100: '1',\n        // 105: '1.05',\n        // 110: '1.1',\n        75: '0.75',\n        125: '1.25'\n    },\n    scrollMargin: /* #__PURE__ */ alias('spacing'),\n    scrollPadding: /* #__PURE__ */ alias('spacing'),\n    sepia: {\n        0: '0',\n        DEFAULT: '100%'\n    },\n    skew: {\n        .../* #__PURE__ */ exponential(2, 'deg'),\n        // 0: '0deg',\n        // 1: '1deg',\n        // 2: '2deg',\n        .../* #__PURE__ */ exponential(12, 'deg', 3)\n    },\n    // 3: '3deg',\n    // 6: '6deg',\n    // 12: '12deg',\n    space: /* #__PURE__ */ alias('spacing'),\n    stroke: ({ theme  })=>({\n            ...theme('colors'),\n            none: 'none'\n        }),\n    strokeWidth: /* #__PURE__ */ linear(2),\n    // 0: '0',\n    // 1: '1',\n    // 2: '2',,\n    textColor: /* #__PURE__ */ alias('colors'),\n    textDecorationColor: /* #__PURE__ */ alias('colors'),\n    textDecorationThickness: {\n        'from-font': 'from-font',\n        auto: 'auto',\n        .../* #__PURE__ */ exponential(8, 'px')\n    },\n    // 0: '0px',\n    // 1: '1px',\n    // 2: '2px',\n    // 4: '4px',\n    // 8: '8px',\n    textUnderlineOffset: {\n        auto: 'auto',\n        .../* #__PURE__ */ exponential(8, 'px')\n    },\n    // 0: '0px',\n    // 1: '1px',\n    // 2: '2px',\n    // 4: '4px',\n    // 8: '8px',\n    textIndent: /* #__PURE__ */ alias('spacing'),\n    textOpacity: /* #__PURE__ */ alias('opacity'),\n    // transformOrigin: {\n    //   // The following are already handled by the plugin:\n    //   // center, right, left, bottom, top\n    //   // 'bottom-10px-right-20px' -> bottom 10px right 20px\n    // },\n    transitionDuration: ({ theme  })=>({\n            ...theme('durations'),\n            DEFAULT: '150ms'\n        }),\n    transitionDelay: /* #__PURE__ */ alias('durations'),\n    transitionProperty: {\n        none: 'none',\n        all: 'all',\n        DEFAULT: 'color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter',\n        colors: 'color,background-color,border-color,text-decoration-color,fill,stroke',\n        opacity: 'opacity',\n        shadow: 'box-shadow',\n        transform: 'transform'\n    },\n    transitionTimingFunction: {\n        DEFAULT: 'cubic-bezier(0.4,0,0.2,1)',\n        linear: 'linear',\n        in: 'cubic-bezier(0.4,0,1,1)',\n        out: 'cubic-bezier(0,0,0.2,1)',\n        'in-out': 'cubic-bezier(0.4,0,0.2,1)'\n    },\n    translate: ({ theme  })=>({\n            ...theme('spacing'),\n            ...ratios(2, 4),\n            // '1/2': '50%',\n            // '1/3': '33.333333%',\n            // '2/3': '66.666667%',\n            // '1/4': '25%',\n            // '2/4': '50%',\n            // '3/4': '75%',\n            full: '100%'\n        }),\n    width: ({ theme  })=>({\n            min: 'min-content',\n            max: 'max-content',\n            fit: 'fit-content',\n            screen: '100vw',\n            ...theme('flexBasis')\n        }),\n    willChange: {\n        scroll: 'scroll-position'\n    },\n    // other options handled by rules\n    // auto: 'auto',\n    // contents: 'contents',\n    // transform: 'transform',\n    zIndex: {\n        .../* #__PURE__ */ linear(50, '', 1, 0, 10),\n        // 0: '0',\n        // 10: '10',\n        // 20: '20',\n        // 30: '30',\n        // 40: '40',\n        // 50: '50',\n        auto: 'auto'\n    }\n};\n// '1/2': '50%',\n// '1/3': '33.333333%',\n// '2/3': '66.666667%',\n// '1/4': '25%',\n// '2/4': '50%',\n// '3/4': '75%',\n// '1/5': '20%',\n// '2/5': '40%',\n// '3/5': '60%',\n// '4/5': '80%',\n// '1/6': '16.666667%',\n// '2/6': '33.333333%',\n// '3/6': '50%',\n// '4/6': '66.666667%',\n// '5/6': '83.333333%',\nfunction ratios(start, end) {\n    let result = {};\n    do // XXX: using var to avoid strange bug when generating cjs where `= 1` is removed\n    // eslint-disable-next-line no-var\n    for(var dividend = 1; dividend < start; dividend++)result[`${dividend}/${start}`] = Number((dividend / start * 100).toFixed(6)) + '%';\n    while (++start <= end)\n    return result;\n}\n// 0: '0px',\n// 2: '2px',\n// 4: '4px',\n// 8: '8px',\nfunction exponential(stop, unit, start = 0) {\n    let result = {};\n    for(; start <= stop; start = 2 * start || 1)result[start] = start + unit;\n    return result;\n}\n// 3: '.75rem',\n// 4: '1rem',\n// 5: '1.25rem',\n// 6: '1.5rem',\n// 7: '1.75rem',\n// 8: '2rem',\n// 9: '2.25rem',\n// 10: '2.5rem',\nfunction linear(stop, unit = '', divideBy = 1, start = 0, step = 1, result = {}) // eslint-disable-next-line max-params\n{\n    for(; start <= stop; start += step)result[start] = start / divideBy + unit;\n    return result;\n}\nfunction alias(section) {\n    return ({ theme  })=>theme(section);\n}\nexport { theme as default };\n//# sourceMappingURL=baseTheme.js.map\n","import theme from './baseTheme.js';\nlet preflight = {\n    /*\n    1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n    2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n    */ '*,::before,::after': {\n        boxSizing: 'border-box',\n        /* 1 */ borderWidth: '0',\n        /* 2 */ borderStyle: 'solid',\n        /* 2 */ borderColor: 'theme(borderColor.DEFAULT, currentColor)'\n    },\n    /* 2 */ '::before,::after': {\n        '--tw-content': \"''\"\n    },\n    /*\n    1. Use a consistent sensible line-height in all browsers.\n    2. Prevent adjustments of font size after orientation changes in iOS.\n    3. Use a more readable tab size.\n    4. Use the user's configured `sans` font-family by default.\n    5. Use the user's configured `sans` font-feature-settings by default.\n    */ html: {\n        lineHeight: 1.5,\n        /* 1 */ WebkitTextSizeAdjust: '100%',\n        /* 2 */ MozTabSize: '4',\n        /* 3 */ tabSize: 4,\n        /* 3 */ fontFamily: `theme(fontFamily.sans, ${theme.fontFamily.sans})`,\n        /* 4 */ fontFeatureSettings: 'theme(fontFamily.sans[1].fontFeatureSettings, normal)'\n    },\n    /* 5 */ /*\n    1. Remove the margin in all browsers.\n    2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n    */ body: {\n        margin: '0',\n        /* 1 */ lineHeight: 'inherit'\n    },\n    /* 2 */ /*\n    1. Add the correct height in Firefox.\n    2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n    3. Ensure horizontal rules are visible by default.\n    */ hr: {\n        height: '0',\n        /* 1 */ color: 'inherit',\n        /* 2 */ borderTopWidth: '1px'\n    },\n    /* 3 */ /*\n    Add the correct text decoration in Chrome, Edge, and Safari.\n    */ 'abbr:where([title])': {\n        textDecoration: 'underline dotted'\n    },\n    /*\n    Remove the default font size and weight for headings.\n    */ 'h1,h2,h3,h4,h5,h6': {\n        fontSize: 'inherit',\n        fontWeight: 'inherit'\n    },\n    /*\n    Reset links to optimize for opt-in styling instead of opt-out.\n    */ a: {\n        color: 'inherit',\n        textDecoration: 'inherit'\n    },\n    /*\n    Add the correct font weight in Edge and Safari.\n    */ 'b,strong': {\n        fontWeight: 'bolder'\n    },\n    /*\n    1. Use the user's configured `mono` font family by default.\n    2. Use the user's configured `mono` font-feature-settings by default.\n    3. Correct the odd `em` font sizing in all browsers.\n    */ 'code,kbd,samp,pre': {\n        fontFamily: `theme(fontFamily.mono, ${theme.fontFamily.mono})`,\n        fontFeatureSettings: 'theme(fontFamily.mono[1].fontFeatureSettings, normal)',\n        fontSize: '1em'\n    },\n    /*\n    Add the correct font size in all browsers.\n    */ small: {\n        fontSize: '80%'\n    },\n    /*\n    Prevent `sub` and `sup` elements from affecting the line height in all browsers.\n    */ 'sub,sup': {\n        fontSize: '75%',\n        lineHeight: 0,\n        position: 'relative',\n        verticalAlign: 'baseline'\n    },\n    sub: {\n        bottom: '-0.25em'\n    },\n    sup: {\n        top: '-0.5em'\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    3. Remove gaps between table borders by default.\n    */ table: {\n        textIndent: '0',\n        /* 1 */ borderColor: 'inherit',\n        /* 2 */ borderCollapse: 'collapse'\n    },\n    /* 3 */ /*\n    1. Change the font styles in all browsers.\n    2. Remove the margin in Firefox and Safari.\n    3. Remove default padding in all browsers.\n    */ 'button,input,optgroup,select,textarea': {\n        fontFamily: 'inherit',\n        /* 1 */ fontSize: '100%',\n        /* 1 */ lineHeight: 'inherit',\n        /* 1 */ color: 'inherit',\n        /* 1 */ margin: '0',\n        /* 2 */ padding: '0'\n    },\n    /* 3 */ /*\n    Remove the inheritance of text transform in Edge and Firefox.\n    */ 'button,select': {\n        textTransform: 'none'\n    },\n    /*\n    1. Correct the inability to style clickable types in iOS and Safari.\n    2. Remove default button styles.\n    */ \"button,[type='button'],[type='reset'],[type='submit']\": {\n        WebkitAppearance: 'button',\n        /* 1 */ backgroundColor: 'transparent',\n        /* 2 */ backgroundImage: 'none'\n    },\n    /* 4 */ /*\n    Use the modern Firefox focus style for all focusable elements.\n    */ ':-moz-focusring': {\n        outline: 'auto'\n    },\n    /*\n    Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n    */ ':-moz-ui-invalid': {\n        boxShadow: 'none'\n    },\n    /*\n    Add the correct vertical alignment in Chrome and Firefox.\n    */ progress: {\n        verticalAlign: 'baseline'\n    },\n    /*\n    Correct the cursor style of increment and decrement buttons in Safari.\n    */ '::-webkit-inner-spin-button,::-webkit-outer-spin-button': {\n        height: 'auto'\n    },\n    /*\n    1. Correct the odd appearance in Chrome and Safari.\n    2. Correct the outline style in Safari.\n    */ \"[type='search']\": {\n        WebkitAppearance: 'textfield',\n        /* 1 */ outlineOffset: '-2px'\n    },\n    /* 2 */ /*\n    Remove the inner padding in Chrome and Safari on macOS.\n    */ '::-webkit-search-decoration': {\n        WebkitAppearance: 'none'\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    */ '::-webkit-file-upload-button': {\n        WebkitAppearance: 'button',\n        /* 1 */ font: 'inherit'\n    },\n    /* 2 */ /*\n    Add the correct display in Chrome and Safari.\n    */ summary: {\n        display: 'list-item'\n    },\n    /*\n    Removes the default spacing and border for appropriate elements.\n    */ 'blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre': {\n        margin: '0'\n    },\n    fieldset: {\n        margin: '0',\n        padding: '0'\n    },\n    legend: {\n        padding: '0'\n    },\n    'ol,ul,menu': {\n        listStyle: 'none',\n        margin: '0',\n        padding: '0'\n    },\n    /*\n    Prevent resizing textareas horizontally by default.\n    */ textarea: {\n        resize: 'vertical'\n    },\n    /*\n    1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n    2. Set the default placeholder color to the user's configured gray 400 color.\n    */ 'input::placeholder,textarea::placeholder': {\n        opacity: 1,\n        /* 1 */ color: 'theme(colors.gray.400, #9ca3af)'\n    },\n    /* 2 */ /*\n    Set the default cursor for buttons.\n    */ 'button,[role=\"button\"]': {\n        cursor: 'pointer'\n    },\n    /*\n    Make sure disabled buttons don't get the pointer cursor.\n    */ ':disabled': {\n        cursor: 'default'\n    },\n    /*\n    1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n    2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n      This can trigger a poorly considered lint error in some tools but is included by design.\n    */ 'img,svg,video,canvas,audio,iframe,embed,object': {\n        display: 'block',\n        /* 1 */ verticalAlign: 'middle'\n    },\n    /* 2 */ /*\n    Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n    */ 'img,video': {\n        maxWidth: '100%',\n        height: 'auto'\n    },\n    /* Make elements with the HTML hidden attribute stay hidden by default */ '[hidden]': {\n        display: 'none'\n    }\n};\nexport { preflight as default };\n//# sourceMappingURL=preflight.js.map\n","import { match, arbitrary, matchTheme, mql, asArray, matchColor, toColorValue, toCSS } from '@twind/core';\n// indirection wrapper to remove autocomplete functions from production bundles\nlet rules = [\n    /* arbitrary properties: [paint-order:markers] */ match('\\\\[([-\\\\w]+):(.+)]', ({ 1: $1 , 2: $2  }, context)=>({\n            '@layer overrides': {\n                '&': {\n                    [$1]: arbitrary(`[${$2}]`, '', context)\n                }\n            }\n        })),\n    /* Styling based on parent and peer state */ match('(group|peer)([~/][^-[]+)?', ({ input  }, { h  })=>[\n            {\n                c: h(input)\n            }\n        ]),\n    /* LAYOUT */ matchTheme('aspect-', 'aspectRatio'),\n    match('container', (_, { theme  })=>{\n        let { screens =theme('screens') , center , padding  } = theme('container'), rules = {\n            width: '100%',\n            marginRight: center && 'auto',\n            marginLeft: center && 'auto',\n            ...paddingFor('xs')\n        };\n        for(let screen in screens){\n            let value = screens[screen];\n            'string' == typeof value && (rules[mql(value)] = {\n                '&': {\n                    maxWidth: value,\n                    ...paddingFor(screen)\n                }\n            });\n        }\n        return rules;\n        function paddingFor(screen) {\n            let value = padding && ('string' == typeof padding ? padding : padding[screen] || padding.DEFAULT);\n            if (value) return {\n                paddingRight: value,\n                paddingLeft: value\n            };\n        }\n    }),\n    // Content\n    matchTheme('content-', 'content', ({ _  })=>({\n            '--tw-content': _,\n            content: 'var(--tw-content)'\n        })),\n    // Box Decoration Break\n    match('(?:box-)?decoration-(slice|clone)', 'boxDecorationBreak'),\n    // Box Sizing\n    match('box-(border|content)', 'boxSizing', ({ 1: $1  })=>$1 + '-box'),\n    // Display\n    match('hidden', {\n        display: 'none'\n    }),\n    // Table Layout\n    match('table-(auto|fixed)', 'tableLayout'),\n    match([\n        '(block|flex|table|grid|inline|contents|flow-root|list-item)',\n        '(inline-(block|flex|table|grid))',\n        '(table-(caption|cell|column|row|(column|row|footer|header)-group))'\n    ], 'display'),\n    // Floats\n    '(float)-(left|right|none)',\n    // Clear\n    '(clear)-(left|right|none|both)',\n    // Overflow\n    '(overflow(?:-[xy])?)-(auto|hidden|clip|visible|scroll)',\n    // Isolation\n    '(isolation)-(auto)',\n    // Isolation\n    match('isolate', 'isolation'),\n    // Object Fit\n    match('object-(contain|cover|fill|none|scale-down)', 'objectFit'),\n    // Object Position\n    matchTheme('object-', 'objectPosition'),\n    match('object-(top|bottom|center|(left|right)(-(top|bottom))?)', 'objectPosition', spacify),\n    // Overscroll Behavior\n    match('overscroll(-[xy])?-(auto|contain|none)', ({ 1: $1 = '' , 2: $2  })=>({\n            ['overscroll-behavior' + $1]: $2\n        })),\n    // Position\n    match('(static|fixed|absolute|relative|sticky)', 'position'),\n    // Top / Right / Bottom / Left\n    matchTheme('-?inset(-[xy])?(?:$|-)', 'inset', ({ 1: $1 , _  })=>({\n            top: '-x' != $1 && _,\n            right: '-y' != $1 && _,\n            bottom: '-x' != $1 && _,\n            left: '-y' != $1 && _\n        })),\n    matchTheme('-?(top|bottom|left|right)(?:$|-)', 'inset'),\n    // Visibility\n    match('(visible|collapse)', 'visibility'),\n    match('invisible', {\n        visibility: 'hidden'\n    }),\n    // Z-Index\n    matchTheme('-?z-', 'zIndex'),\n    /* FLEXBOX */ // Flex Direction\n    match('flex-((row|col)(-reverse)?)', 'flexDirection', columnify),\n    match('flex-(wrap|wrap-reverse|nowrap)', 'flexWrap'),\n    matchTheme('(flex-(?:grow|shrink))(?:$|-)'),\n    /*, 'flex-grow' | flex-shrink */ matchTheme('(flex)-'),\n    /*, 'flex' */ matchTheme('grow(?:$|-)', 'flexGrow'),\n    matchTheme('shrink(?:$|-)', 'flexShrink'),\n    matchTheme('basis-', 'flexBasis'),\n    matchTheme('-?(order)-'),\n    /*, 'order' */ '-?(order)-(\\\\d+)',\n    /* GRID */ // Grid Template Columns\n    matchTheme('grid-cols-', 'gridTemplateColumns'),\n    match('grid-cols-(\\\\d+)', 'gridTemplateColumns', gridTemplate),\n    // Grid Column Start / End\n    matchTheme('col-', 'gridColumn'),\n    match('col-(span)-(\\\\d+)', 'gridColumn', span),\n    matchTheme('col-start-', 'gridColumnStart'),\n    match('col-start-(auto|\\\\d+)', 'gridColumnStart'),\n    matchTheme('col-end-', 'gridColumnEnd'),\n    match('col-end-(auto|\\\\d+)', 'gridColumnEnd'),\n    // Grid Template Rows\n    matchTheme('grid-rows-', 'gridTemplateRows'),\n    match('grid-rows-(\\\\d+)', 'gridTemplateRows', gridTemplate),\n    // Grid Row Start / End\n    matchTheme('row-', 'gridRow'),\n    match('row-(span)-(\\\\d+)', 'gridRow', span),\n    matchTheme('row-start-', 'gridRowStart'),\n    match('row-start-(auto|\\\\d+)', 'gridRowStart'),\n    matchTheme('row-end-', 'gridRowEnd'),\n    match('row-end-(auto|\\\\d+)', 'gridRowEnd'),\n    // Grid Auto Flow\n    match('grid-flow-((row|col)(-dense)?)', 'gridAutoFlow', (match)=>spacify(columnify(match))),\n    match('grid-flow-(dense)', 'gridAutoFlow'),\n    // Grid Auto Columns\n    matchTheme('auto-cols-', 'gridAutoColumns'),\n    // Grid Auto Rows\n    matchTheme('auto-rows-', 'gridAutoRows'),\n    // Gap\n    matchTheme('gap-x(?:$|-)', 'gap', 'columnGap'),\n    matchTheme('gap-y(?:$|-)', 'gap', 'rowGap'),\n    matchTheme('gap(?:$|-)', 'gap'),\n    /* BOX ALIGNMENT */ // Justify Items\n    // Justify Self\n    '(justify-(?:items|self))-',\n    // Justify Content\n    match('justify-', 'justifyContent', convertContentValue),\n    // Align Content\n    // Align Items\n    // Align Self\n    match('(content|items|self)-', (match)=>({\n            ['align-' + match[1]]: convertContentValue(match)\n        })),\n    // Place Content\n    // Place Items\n    // Place Self\n    match('(place-(content|items|self))-', ({ 1: $1 , $$  })=>({\n            [$1]: ('wun'.includes($$[3]) ? 'space-' : '') + $$\n        })),\n    /* SPACING */ // Padding\n    matchTheme('p([xytrbl])?(?:$|-)', 'padding', edge('padding')),\n    // Margin\n    matchTheme('-?m([xytrbl])?(?:$|-)', 'margin', edge('margin')),\n    // Space Between\n    matchTheme('-?space-(x|y)(?:$|-)', 'space', ({ 1: $1 , _  })=>({\n            '&>:not([hidden])~:not([hidden])': {\n                [`--tw-space-${$1}-reverse`]: '0',\n                ['margin-' + ({\n                    y: 'top',\n                    x: 'left'\n                })[$1]]: `calc(${_} * calc(1 - var(--tw-space-${$1}-reverse)))`,\n                ['margin-' + ({\n                    y: 'bottom',\n                    x: 'right'\n                })[$1]]: `calc(${_} * var(--tw-space-${$1}-reverse))`\n            }\n        })),\n    match('space-(x|y)-reverse', ({ 1: $1  })=>({\n            '&>:not([hidden])~:not([hidden])': {\n                [`--tw-space-${$1}-reverse`]: '1'\n            }\n        })),\n    /* SIZING */ // Width\n    matchTheme('w-', 'width'),\n    // Min-Width\n    matchTheme('min-w-', 'minWidth'),\n    // Max-Width\n    matchTheme('max-w-', 'maxWidth'),\n    // Height\n    matchTheme('h-', 'height'),\n    // Min-Height\n    matchTheme('min-h-', 'minHeight'),\n    // Max-Height\n    matchTheme('max-h-', 'maxHeight'),\n    /* TYPOGRAPHY */ // Font Weight\n    matchTheme('font-', 'fontWeight'),\n    // Font Family\n    matchTheme('font-', 'fontFamily', ({ _  })=>{\n        return 'string' == typeof (_ = asArray(_))[1] ? {\n            fontFamily: join(_)\n        } : {\n            fontFamily: join(_[0]),\n            ..._[1]\n        };\n    }),\n    // Font Smoothing\n    match('antialiased', {\n        WebkitFontSmoothing: 'antialiased',\n        MozOsxFontSmoothing: 'grayscale'\n    }),\n    match('subpixel-antialiased', {\n        WebkitFontSmoothing: 'auto',\n        MozOsxFontSmoothing: 'auto'\n    }),\n    // Font Style\n    match('italic', 'fontStyle'),\n    match('not-italic', {\n        fontStyle: 'normal'\n    }),\n    // Font Variant Numeric\n    match('(ordinal|slashed-zero|(normal|lining|oldstyle|proportional|tabular)-nums|(diagonal|stacked)-fractions)', ({ 1: $1 , 2: $2 = '' , 3: $3  })=>// normal-nums\n        'normal' == $2 ? {\n            fontVariantNumeric: 'normal'\n        } : {\n            ['--tw-' + ($3 ? // diagonal-fractions, stacked-fractions\n            'numeric-fraction' : 'pt'.includes($2[0]) ? // proportional-nums, tabular-nums\n            'numeric-spacing' : $2 ? // lining-nums, oldstyle-nums\n            'numeric-figure' : // ordinal, slashed-zero\n            $1)]: $1,\n            fontVariantNumeric: 'var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)',\n            ...asDefaults({\n                '--tw-ordinal': 'var(--tw-empty,/*!*/ /*!*/)',\n                '--tw-slashed-zero': 'var(--tw-empty,/*!*/ /*!*/)',\n                '--tw-numeric-figure': 'var(--tw-empty,/*!*/ /*!*/)',\n                '--tw-numeric-spacing': 'var(--tw-empty,/*!*/ /*!*/)',\n                '--tw-numeric-fraction': 'var(--tw-empty,/*!*/ /*!*/)'\n            })\n        }),\n    // Letter Spacing\n    matchTheme('tracking-', 'letterSpacing'),\n    // Line Height\n    matchTheme('leading-', 'lineHeight'),\n    // List Style Position\n    match('list-(inside|outside)', 'listStylePosition'),\n    // List Style Type\n    matchTheme('list-', 'listStyleType'),\n    match('list-', 'listStyleType'),\n    // Placeholder Opacity\n    matchTheme('placeholder-opacity-', 'placeholderOpacity', ({ _  })=>({\n            '&::placeholder': {\n                '--tw-placeholder-opacity': _\n            }\n        })),\n    // Placeholder Color\n    matchColor('placeholder-', {\n        property: 'color',\n        selector: '&::placeholder'\n    }),\n    // Text Alignment\n    match('text-(left|center|right|justify|start|end)', 'textAlign'),\n    match('text-(ellipsis|clip)', 'textOverflow'),\n    // Text Opacity\n    matchTheme('text-opacity-', 'textOpacity', '--tw-text-opacity'),\n    // Text Color\n    matchColor('text-', {\n        property: 'color'\n    }),\n    // Font Size\n    matchTheme('text-', 'fontSize', ({ _  })=>'string' == typeof _ ? {\n            fontSize: _\n        } : {\n            fontSize: _[0],\n            ...'string' == typeof _[1] ? {\n                lineHeight: _[1]\n            } : _[1]\n        }),\n    // Text Indent\n    matchTheme('indent-', 'textIndent'),\n    // Text Decoration\n    match('(overline|underline|line-through)', 'textDecorationLine'),\n    match('no-underline', {\n        textDecorationLine: 'none'\n    }),\n    // Text Underline offset\n    matchTheme('underline-offset-', 'textUnderlineOffset'),\n    // Text Decoration Color\n    matchColor('decoration-', {\n        section: 'textDecorationColor',\n        opacityVariable: false,\n        opacitySection: 'opacity'\n    }),\n    // Text Decoration Thickness\n    matchTheme('decoration-', 'textDecorationThickness'),\n    // Text Decoration Style\n    match('decoration-', 'textDecorationStyle'),\n    // Text Transform\n    match('(uppercase|lowercase|capitalize)', 'textTransform'),\n    match('normal-case', {\n        textTransform: 'none'\n    }),\n    // Text Overflow\n    match('truncate', {\n        overflow: 'hidden',\n        whiteSpace: 'nowrap',\n        textOverflow: 'ellipsis'\n    }),\n    // Vertical Alignment\n    match('align-', 'verticalAlign'),\n    // Whitespace\n    match('whitespace-', 'whiteSpace'),\n    // Word Break\n    match('break-normal', {\n        wordBreak: 'normal',\n        overflowWrap: 'normal'\n    }),\n    match('break-words', {\n        overflowWrap: 'break-word'\n    }),\n    match('break-all', {\n        wordBreak: 'break-all'\n    }),\n    match('break-keep', {\n        wordBreak: 'keep-all'\n    }),\n    // Caret Color\n    matchColor('caret-', {\n        // section: 'caretColor',\n        opacityVariable: false,\n        opacitySection: 'opacity'\n    }),\n    // Accent Color\n    matchColor('accent-', {\n        // section: 'accentColor',\n        opacityVariable: false,\n        opacitySection: 'opacity'\n    }),\n    // Gradient Color Stops\n    match('bg-gradient-to-([trbl]|[tb][rl])', 'backgroundImage', ({ 1: $1  })=>`linear-gradient(to ${position($1, ' ')},var(--tw-gradient-stops))`),\n    matchColor('from-', {\n        section: 'gradientColorStops',\n        opacityVariable: false,\n        opacitySection: 'opacity'\n    }, ({ _  })=>({\n            '--tw-gradient-from': _.value,\n            '--tw-gradient-to': _.color({\n                opacityValue: '0'\n            }),\n            '--tw-gradient-stops': \"var(--tw-gradient-from),var(--tw-gradient-to)\"\n        })),\n    matchColor('via-', {\n        section: 'gradientColorStops',\n        opacityVariable: false,\n        opacitySection: 'opacity'\n    }, ({ _  })=>({\n            '--tw-gradient-to': _.color({\n                opacityValue: '0'\n            }),\n            '--tw-gradient-stops': `var(--tw-gradient-from),${_.value},var(--tw-gradient-to)`\n        })),\n    matchColor('to-', {\n        section: 'gradientColorStops',\n        property: '--tw-gradient-to',\n        opacityVariable: false,\n        opacitySection: 'opacity'\n    }),\n    /* BACKGROUNDS */ // Background Attachment\n    match('bg-(fixed|local|scroll)', 'backgroundAttachment'),\n    // Background Origin\n    match('bg-origin-(border|padding|content)', 'backgroundOrigin', ({ 1: $1  })=>$1 + '-box'),\n    // Background Repeat\n    match([\n        'bg-(no-repeat|repeat(-[xy])?)',\n        'bg-repeat-(round|space)'\n    ], 'backgroundRepeat'),\n    // Background Blend Mode\n    match('bg-blend-', 'backgroundBlendMode'),\n    // Background Clip\n    match('bg-clip-(border|padding|content|text)', 'backgroundClip', ({ 1: $1  })=>$1 + ('text' == $1 ? '' : '-box')),\n    // Background Opacity\n    matchTheme('bg-opacity-', 'backgroundOpacity', '--tw-bg-opacity'),\n    // Background Color\n    // bg-${backgroundColor}/${backgroundOpacity}\n    matchColor('bg-', {\n        section: 'backgroundColor'\n    }),\n    // Background Image\n    // supported arbitrary types are: length, color, angle, list\n    matchTheme('bg-', 'backgroundImage'),\n    // Background Position\n    matchTheme('bg-', 'backgroundPosition'),\n    match('bg-(top|bottom|center|(left|right)(-(top|bottom))?)', 'backgroundPosition', spacify),\n    // Background Size\n    matchTheme('bg-', 'backgroundSize'),\n    /* BORDERS */ // Border Radius\n    matchTheme('rounded(?:$|-)', 'borderRadius'),\n    matchTheme('rounded-([trbl]|[tb][rl])(?:$|-)', 'borderRadius', ({ 1: $1 , _  })=>{\n        let corners = {\n            t: [\n                'tl',\n                'tr'\n            ],\n            r: [\n                'tr',\n                'br'\n            ],\n            b: [\n                'bl',\n                'br'\n            ],\n            l: [\n                'bl',\n                'tl'\n            ]\n        }[$1] || [\n            $1,\n            $1\n        ];\n        return {\n            [`border-${position(corners[0])}-radius`]: _,\n            [`border-${position(corners[1])}-radius`]: _\n        };\n    }),\n    // Border Collapse\n    match('border-(collapse|separate)', 'borderCollapse'),\n    // Border Opacity\n    matchTheme('border-opacity(?:$|-)', 'borderOpacity', '--tw-border-opacity'),\n    // Border Style\n    match('border-(solid|dashed|dotted|double|none)', 'borderStyle'),\n    // Border Spacing\n    matchTheme('border-spacing(-[xy])?(?:$|-)', 'borderSpacing', ({ 1: $1 , _  })=>({\n            ...asDefaults({\n                '--tw-border-spacing-x': '0',\n                '--tw-border-spacing-y': '0'\n            }),\n            ['--tw-border-spacing' + ($1 || '-x')]: _,\n            ['--tw-border-spacing' + ($1 || '-y')]: _,\n            'border-spacing': 'var(--tw-border-spacing-x) var(--tw-border-spacing-y)'\n        })),\n    // Border Color\n    matchColor('border-([xytrbl])-', {\n        section: 'borderColor'\n    }, edge('border', 'Color')),\n    matchColor('border-'),\n    // Border Width\n    matchTheme('border-([xytrbl])(?:$|-)', 'borderWidth', edge('border', 'Width')),\n    matchTheme('border(?:$|-)', 'borderWidth'),\n    // Divide Opacity\n    matchTheme('divide-opacity(?:$|-)', 'divideOpacity', ({ _  })=>({\n            '&>:not([hidden])~:not([hidden])': {\n                '--tw-divide-opacity': _\n            }\n        })),\n    // Divide Style\n    match('divide-(solid|dashed|dotted|double|none)', ({ 1: $1  })=>({\n            '&>:not([hidden])~:not([hidden])': {\n                borderStyle: $1\n            }\n        })),\n    // Divide Width\n    match('divide-([xy]-reverse)', ({ 1: $1  })=>({\n            '&>:not([hidden])~:not([hidden])': {\n                ['--tw-divide-' + $1]: '1'\n            }\n        })),\n    matchTheme('divide-([xy])(?:$|-)', 'divideWidth', ({ 1: $1 , _  })=>{\n        let edges = {\n            x: 'lr',\n            y: 'tb'\n        }[$1];\n        return {\n            '&>:not([hidden])~:not([hidden])': {\n                [`--tw-divide-${$1}-reverse`]: '0',\n                [`border-${position(edges[0])}Width`]: `calc(${_} * calc(1 - var(--tw-divide-${$1}-reverse)))`,\n                [`border-${position(edges[1])}Width`]: `calc(${_} * var(--tw-divide-${$1}-reverse))`\n            }\n        };\n    }),\n    // Divide Color\n    matchColor('divide-', {\n        // section: $0.replace('-', 'Color') -> 'divideColor'\n        property: 'borderColor',\n        // opacityVariable: '--tw-border-opacity',\n        // opacitySection: section.replace('Color', 'Opacity') -> 'divideOpacity'\n        selector: '&>:not([hidden])~:not([hidden])'\n    }),\n    // Ring Offset Opacity\n    matchTheme('ring-opacity(?:$|-)', 'ringOpacity', '--tw-ring-opacity'),\n    // Ring Offset Color\n    matchColor('ring-offset-', {\n        // section: 'ringOffsetColor',\n        property: '--tw-ring-offset-color',\n        opacityVariable: false\n    }),\n    // opacitySection: section.replace('Color', 'Opacity') -> 'ringOffsetOpacity'\n    // Ring Offset Width\n    matchTheme('ring-offset(?:$|-)', 'ringOffsetWidth', '--tw-ring-offset-width'),\n    // Ring Inset\n    match('ring-inset', {\n        '--tw-ring-inset': 'inset'\n    }),\n    // Ring Color\n    matchColor('ring-', {\n        // section: 'ringColor',\n        property: '--tw-ring-color'\n    }),\n    // opacityVariable: '--tw-ring-opacity',\n    // opacitySection: section.replace('Color', 'Opacity') -> 'ringOpacity'\n    // Ring Width\n    matchTheme('ring(?:$|-)', 'ringWidth', ({ _  }, { theme  })=>({\n            ...asDefaults({\n                '--tw-ring-offset-shadow': '0 0 #0000',\n                '--tw-ring-shadow': '0 0 #0000',\n                '--tw-shadow': '0 0 #0000',\n                '--tw-shadow-colored': '0 0 #0000',\n                // Within own declaration to have the defaults above to be merged with defaults from shadow\n                '&': {\n                    '--tw-ring-inset': 'var(--tw-empty,/*!*/ /*!*/)',\n                    '--tw-ring-offset-width': theme('ringOffsetWidth', '', '0px'),\n                    '--tw-ring-offset-color': toColorValue(theme('ringOffsetColor', '', '#fff')),\n                    '--tw-ring-color': toColorValue(theme('ringColor', '', '#93c5fd'), {\n                        opacityVariable: '--tw-ring-opacity'\n                    }),\n                    '--tw-ring-opacity': theme('ringOpacity', '', '0.5')\n                }\n            }),\n            '--tw-ring-offset-shadow': \"var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)\",\n            '--tw-ring-shadow': `var(--tw-ring-inset) 0 0 0 calc(${_} + var(--tw-ring-offset-width)) var(--tw-ring-color)`,\n            boxShadow: \"var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)\"\n        })),\n    /* EFFECTS */ // Box Shadow Color\n    matchColor('shadow-', {\n        section: 'boxShadowColor',\n        opacityVariable: false,\n        opacitySection: 'opacity'\n    }, ({ _  })=>({\n            '--tw-shadow-color': _.value,\n            '--tw-shadow': 'var(--tw-shadow-colored)'\n        })),\n    // Box Shadow\n    matchTheme('shadow(?:$|-)', 'boxShadow', ({ _  })=>({\n            ...asDefaults({\n                '--tw-ring-offset-shadow': '0 0 #0000',\n                '--tw-ring-shadow': '0 0 #0000',\n                '--tw-shadow': '0 0 #0000',\n                '--tw-shadow-colored': '0 0 #0000'\n            }),\n            '--tw-shadow': join(_),\n            // replace all colors with reference to --tw-shadow-colored\n            // this matches colors after non-comma char (keyword, offset) before comma or the end\n            '--tw-shadow-colored': join(_).replace(/([^,]\\s+)(?:#[a-f\\d]+|(?:(?:hsl|rgb)a?|hwb|lab|lch|color|var)\\(.+?\\)|[a-z]+)(,|$)/g, '$1var(--tw-shadow-color)$2'),\n            boxShadow: \"var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)\"\n        })),\n    // Opacity\n    matchTheme('(opacity)-'),\n    /*, 'opacity' */ // Mix Blend Mode\n    match('mix-blend-', 'mixBlendMode'),\n    /* FILTERS */ ...filter(),\n    ...filter('backdrop-'),\n    /* TRANSITIONS AND ANIMATION */ // Transition Property\n    matchTheme('transition(?:$|-)', 'transitionProperty', (match, { theme  })=>({\n            transitionProperty: join(match),\n            transitionTimingFunction: 'none' == match._ ? void 0 : join(theme('transitionTimingFunction', '')),\n            transitionDuration: 'none' == match._ ? void 0 : join(theme('transitionDuration', ''))\n        })),\n    // Transition Duration\n    matchTheme('duration(?:$|-)', 'transitionDuration', 'transitionDuration', join),\n    // Transition Timing Function\n    matchTheme('ease(?:$|-)', 'transitionTimingFunction', 'transitionTimingFunction', join),\n    // Transition Delay\n    matchTheme('delay(?:$|-)', 'transitionDelay', 'transitionDelay', join),\n    matchTheme('animate(?:$|-)', 'animation', (match, { theme , h , e  })=>{\n        let animation = join(match), // Try to auto inject keyframes\n        parts = animation.split(' '), keyframeValues = theme('keyframes', parts[0]);\n        return keyframeValues ? {\n            ['@keyframes ' + (parts[0] = e(h(parts[0])))]: keyframeValues,\n            animation: parts.join(' ')\n        } : {\n            animation\n        };\n    }),\n    /* TRANSFORMS */ // Transform\n    '(transform)-(none)',\n    match('transform', tranformDefaults),\n    match('transform-(cpu|gpu)', ({ 1: $1  })=>({\n            '--tw-transform': transformValue('gpu' == $1)\n        })),\n    // Scale\n    matchTheme('scale(-[xy])?-', 'scale', ({ 1: $1 , _  })=>({\n            ['--tw-scale' + ($1 || '-x')]: _,\n            ['--tw-scale' + ($1 || '-y')]: _,\n            ...tranformDefaults()\n        })),\n    // Rotate\n    matchTheme('-?(rotate)-', 'rotate', transform),\n    // Translate\n    matchTheme('-?(translate-[xy])-', 'translate', transform),\n    // Skew\n    matchTheme('-?(skew-[xy])-', 'skew', transform),\n    // Transform Origin\n    match('origin-(center|((top|bottom)(-(left|right))?)|left|right)', 'transformOrigin', spacify),\n    /* INTERACTIVITY */ // Appearance\n    '(appearance)-',\n    // Columns\n    matchTheme('(columns)-'),\n    /*, 'columns' */ '(columns)-(\\\\d+)',\n    // Break Before, After and Inside\n    '(break-(?:before|after|inside))-',\n    // Cursor\n    matchTheme('(cursor)-'),\n    /*, 'cursor' */ '(cursor)-',\n    // Scroll Snap Type\n    match('snap-(none)', 'scroll-snap-type'),\n    match('snap-(x|y|both)', ({ 1: $1  })=>({\n            ...asDefaults({\n                '--tw-scroll-snap-strictness': 'proximity'\n            }),\n            'scroll-snap-type': $1 + ' var(--tw-scroll-snap-strictness)'\n        })),\n    match('snap-(mandatory|proximity)', '--tw-scroll-snap-strictness'),\n    // Scroll Snap Align\n    match('snap-(?:(start|end|center)|align-(none))', 'scroll-snap-align'),\n    // Scroll Snap Stop\n    match('snap-(normal|always)', 'scroll-snap-stop'),\n    match('scroll-(auto|smooth)', 'scroll-behavior'),\n    // Scroll Margin\n    // Padding\n    matchTheme('scroll-p([xytrbl])?(?:$|-)', 'padding', edge('scroll-padding')),\n    // Margin\n    matchTheme('-?scroll-m([xytrbl])?(?:$|-)', 'scroll-margin', edge('scroll-margin')),\n    // Touch Action\n    match('touch-(auto|none|manipulation)', 'touch-action'),\n    match('touch-(pinch-zoom|pan-(?:(x|left|right)|(y|up|down)))', ({ 1: $1 , 2: $2 , 3: $3  })=>({\n            ...asDefaults({\n                '--tw-pan-x': 'var(--tw-empty,/*!*/ /*!*/)',\n                '--tw-pan-y': 'var(--tw-empty,/*!*/ /*!*/)',\n                '--tw-pinch-zoom': 'var(--tw-empty,/*!*/ /*!*/)',\n                '--tw-touch-action': 'var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)'\n            }),\n            // x, left, right -> pan-x\n            // y, up, down -> pan-y\n            // -> pinch-zoom\n            [`--tw-${$2 ? 'pan-x' : $3 ? 'pan-y' : $1}`]: $1,\n            'touch-action': 'var(--tw-touch-action)'\n        })),\n    // Outline Style\n    match('outline-none', {\n        outline: '2px solid transparent',\n        'outline-offset': '2px'\n    }),\n    match('outline', {\n        outlineStyle: 'solid'\n    }),\n    match('outline-(dashed|dotted|double)', 'outlineStyle'),\n    // Outline Offset\n    matchTheme('-?(outline-offset)-'),\n    /*, 'outlineOffset'*/ // Outline Color\n    matchColor('outline-', {\n        opacityVariable: false,\n        opacitySection: 'opacity'\n    }),\n    // Outline Width\n    matchTheme('outline-', 'outlineWidth'),\n    // Pointer Events\n    '(pointer-events)-',\n    // Will Change\n    matchTheme('(will-change)-'),\n    /*, 'willChange' */ '(will-change)-',\n    // Resize\n    [\n        'resize(?:-(none|x|y))?',\n        'resize',\n        ({ 1: $1  })=>({\n                x: 'horizontal',\n                y: 'vertical'\n            })[$1] || $1 || 'both'\n    ],\n    // User Select\n    match('select-(none|text|all|auto)', 'userSelect'),\n    /* SVG */ // Fill, Stroke\n    matchColor('fill-', {\n        section: 'fill',\n        opacityVariable: false,\n        opacitySection: 'opacity'\n    }),\n    matchColor('stroke-', {\n        section: 'stroke',\n        opacityVariable: false,\n        opacitySection: 'opacity'\n    }),\n    // Stroke Width\n    matchTheme('stroke-', 'strokeWidth'),\n    /* ACCESSIBILITY */ // Screen Readers\n    match('sr-only', {\n        position: 'absolute',\n        width: '1px',\n        height: '1px',\n        padding: '0',\n        margin: '-1px',\n        overflow: 'hidden',\n        whiteSpace: 'nowrap',\n        clip: 'rect(0,0,0,0)',\n        borderWidth: '0'\n    }),\n    match('not-sr-only', {\n        position: 'static',\n        width: 'auto',\n        height: 'auto',\n        padding: '0',\n        margin: '0',\n        overflow: 'visible',\n        whiteSpace: 'normal',\n        clip: 'auto'\n    })\n];\nfunction spacify(value) {\n    return ('string' == typeof value ? value : value[1]).replace(/-/g, ' ').trim();\n}\nfunction columnify(value) {\n    return ('string' == typeof value ? value : value[1]).replace('col', 'column');\n}\nfunction position(shorthand, separator = '-') {\n    let longhand = [];\n    for (let short of shorthand)longhand.push({\n        t: 'top',\n        r: 'right',\n        b: 'bottom',\n        l: 'left'\n    }[short]);\n    return longhand.join(separator);\n}\nfunction join(value) {\n    return value && '' + (value._ || value);\n}\nfunction convertContentValue({ $$  }) {\n    return (({\n        // /* aut*/ o: '',\n        /* sta*/ r: /*t*/ 'flex-',\n        /* end*/ '': 'flex-',\n        // /* cen*/ t /*er*/: '',\n        /* bet*/ w: /*een*/ 'space-',\n        /* aro*/ u: /*nd*/ 'space-',\n        /* eve*/ n: /*ly*/ 'space-'\n    })[$$[3] || ''] || '') + $$;\n}\nfunction edge(propertyPrefix, propertySuffix = '') {\n    return ({ 1: $1 , _  })=>{\n        let edges = {\n            x: 'lr',\n            y: 'tb'\n        }[$1] || $1 + $1;\n        return edges ? {\n            ...toCSS(propertyPrefix + '-' + position(edges[0]) + propertySuffix, _),\n            ...toCSS(propertyPrefix + '-' + position(edges[1]) + propertySuffix, _)\n        } : toCSS(propertyPrefix + propertySuffix, _);\n    };\n}\nfunction filter(prefix = '') {\n    let filters = [\n        'blur',\n        'brightness',\n        'contrast',\n        'grayscale',\n        'hue-rotate',\n        'invert',\n        prefix && 'opacity',\n        'saturate',\n        'sepia',\n        !prefix && 'drop-shadow'\n    ].filter(Boolean), defaults = {};\n    // first create properties defaults\n    for (let key of filters)defaults[`--tw-${prefix}${key}`] = 'var(--tw-empty,/*!*/ /*!*/)';\n    return defaults = {\n        // move defaults\n        ...asDefaults(defaults),\n        // add default filter which allows standalone usage\n        [`${prefix}filter`]: filters.map((key)=>`var(--tw-${prefix}${key})`).join(' ')\n    }, [\n        `(${prefix}filter)-(none)`,\n        match(`${prefix}filter`, defaults),\n        ...filters.map((key)=>matchTheme(// hue-rotate can be negated\n            `${'h' == key[0] ? '-?' : ''}(${prefix}${key})(?:$|-)`, key, ({ 1: $1 , _  })=>({\n                    [`--tw-${$1}`]: asArray(_).map((value)=>`${key}(${value})`).join(' '),\n                    ...defaults\n                })))\n    ];\n}\nfunction transform({ 1: $1 , _  }) {\n    return {\n        ['--tw-' + $1]: _,\n        ...tranformDefaults()\n    };\n}\nfunction tranformDefaults() {\n    return {\n        ...asDefaults({\n            '--tw-translate-x': '0',\n            '--tw-translate-y': '0',\n            '--tw-rotate': '0',\n            '--tw-skew-x': '0',\n            '--tw-skew-y': '0',\n            '--tw-scale-x': '1',\n            '--tw-scale-y': '1',\n            '--tw-transform': transformValue()\n        }),\n        transform: 'var(--tw-transform)'\n    };\n}\nfunction transformValue(gpu) {\n    return [\n        gpu ? // -gpu\n        'translate3d(var(--tw-translate-x),var(--tw-translate-y),0)' : 'translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y))',\n        'rotate(var(--tw-rotate))',\n        'skewX(var(--tw-skew-x))',\n        'skewY(var(--tw-skew-y))',\n        'scaleX(var(--tw-scale-x))',\n        'scaleY(var(--tw-scale-y))'\n    ].join(' ');\n}\nfunction span({ 1: $1 , 2: $2  }) {\n    return `${$1} ${$2} / ${$1} ${$2}`;\n}\nfunction gridTemplate({ 1: $1  }) {\n    return `repeat(${$1},minmax(0,1fr))`;\n}\nfunction asDefaults(props) {\n    return {\n        '@layer defaults': {\n            '*,::before,::after': props,\n            '::backdrop': props\n        }\n    };\n}\nexport { rules as default };\n//# sourceMappingURL=rules.js.map\n","import { normalize, arbitrary } from '@twind/core';\n// indirection wrapper to remove autocomplete functions from production bundles\nlet variants = [\n    [\n        'sticky',\n        '@supports ((position: -webkit-sticky) or (position:sticky))'\n    ],\n    [\n        'motion-reduce',\n        '@media (prefers-reduced-motion:reduce)'\n    ],\n    [\n        'motion-safe',\n        '@media (prefers-reduced-motion:no-preference)'\n    ],\n    [\n        'print',\n        '@media print'\n    ],\n    [\n        '(portrait|landscape)',\n        ({ 1: $1  })=>`@media (orientation:${$1})`\n    ],\n    [\n        'contrast-(more|less)',\n        ({ 1: $1  })=>`@media (prefers-contrast:${$1})`\n    ],\n    [\n        '(first-(letter|line)|placeholder|backdrop|before|after)',\n        ({ 1: $1  })=>`&::${$1}`\n    ],\n    [\n        '(marker|selection)',\n        ({ 1: $1  })=>`& *::${$1},&::${$1}`\n    ],\n    [\n        'file',\n        '&::file-selector-button'\n    ],\n    [\n        '(first|last|only)',\n        ({ 1: $1  })=>`&:${$1}-child`\n    ],\n    [\n        'even',\n        '&:nth-child(2n)'\n    ],\n    [\n        'odd',\n        '&:nth-child(odd)'\n    ],\n    [\n        'open',\n        '&[open]'\n    ],\n    // All other pseudo classes are already supported by twind\n    [\n        '(aria|data)-',\n        ({ 1: $1 , /* aria or data */ $$  }, /* everything after the dash */ context)=>$$ && `&[${$1}-${// aria-asc or data-checked -> from theme\n            context.theme($1, $$) || // aria-[...] or data-[...]\n            arbitrary($$, '', context) || // default handling\n            `${$$}=\"true\"`}]`\n    ],\n    /* Styling based on parent and peer state */ // Groups classes like: group-focus and group-hover\n    // these need to add a marker selector with the pseudo class\n    // => '.group:focus .group-focus:selector'\n    [\n        '((group|peer)(~[^-[]+)?)(-\\\\[(.+)]|[-[].+?)(\\\\/.+)?',\n        ({ 2: type , 3: name = '' , 4: $4 , 5: $5 = '' , 6: label = name  }, { e , h , v  })=>{\n            let selector = normalize($5) || ('[' == $4[0] ? $4 : v($4.slice(1)));\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n            return `${(selector.includes('&') ? selector : '&' + selector).replace(/&/g, `:merge(.${e(h(type + label))})`)}${'p' == type[0] ? '~' : ' '}&`;\n        }\n    ],\n    // direction variants\n    [\n        '(ltr|rtl)',\n        ({ 1: $1  })=>`[dir=\"${$1}\"] &`\n    ],\n    [\n        'supports-',\n        ({ $$  }, /* everything after the dash */ context)=>{\n            $$ && ($$ = context.theme('supports', $$) || arbitrary($$, '', context));\n            if ($$) return $$.includes(':') || ($$ += ':var(--tw)'), /^\\w*\\s*\\(/.test($$) || ($$ = `(${$$})`), // Chrome has a bug where `(condtion1)or(condition2)` is not valid\n            // But `(condition1) or (condition2)` is supported.\n            `@supports ${$$.replace(/\\b(and|or|not)\\b/g, ' $1 ').trim()}`;\n        }\n    ],\n    [\n        'max-',\n        ({ $$  }, context)=>{\n            $$ && ($$ = context.theme('screens', $$) || arbitrary($$, '', context));\n            if ('string' == typeof $$) return `@media not all and (min-width:${$$})`;\n        }\n    ],\n    [\n        'min-',\n        ({ $$  }, context)=>{\n            return $$ && ($$ = arbitrary($$, '', context)), $$ && `@media (min-width:${$$})`;\n        }\n    ],\n    // Arbitrary variants\n    [\n        /^\\[(.+)]$/,\n        ({ 1: $1  })=>/[&@]/.test($1) && normalize($1).replace(/[}]+$/, '').split('{')\n    ]\n];\nexport { variants as default };\n//# sourceMappingURL=variants.js.map\n","// Source from https://github.com/tailwindlabs/tailwindcss/blob/master/src/public/colors.js\n/**\n * @module @twind/preset-tailwind/colors\n */ let slate = {\n    50: '#f8fafc',\n    100: '#f1f5f9',\n    200: '#e2e8f0',\n    300: '#cbd5e1',\n    400: '#94a3b8',\n    500: '#64748b',\n    600: '#475569',\n    700: '#334155',\n    800: '#1e293b',\n    900: '#0f172a'\n}, gray = {\n    50: '#f9fafb',\n    100: '#f3f4f6',\n    200: '#e5e7eb',\n    300: '#d1d5db',\n    400: '#9ca3af',\n    500: '#6b7280',\n    600: '#4b5563',\n    700: '#374151',\n    800: '#1f2937',\n    900: '#111827'\n}, zinc = {\n    50: '#fafafa',\n    100: '#f4f4f5',\n    200: '#e4e4e7',\n    300: '#d4d4d8',\n    400: '#a1a1aa',\n    500: '#71717a',\n    600: '#52525b',\n    700: '#3f3f46',\n    800: '#27272a',\n    900: '#18181b'\n}, neutral = {\n    50: '#fafafa',\n    100: '#f5f5f5',\n    200: '#e5e5e5',\n    300: '#d4d4d4',\n    400: '#a3a3a3',\n    500: '#737373',\n    600: '#525252',\n    700: '#404040',\n    800: '#262626',\n    900: '#171717'\n}, stone = {\n    50: '#fafaf9',\n    100: '#f5f5f4',\n    200: '#e7e5e4',\n    300: '#d6d3d1',\n    400: '#a8a29e',\n    500: '#78716c',\n    600: '#57534e',\n    700: '#44403c',\n    800: '#292524',\n    900: '#1c1917'\n}, red = {\n    50: '#fef2f2',\n    100: '#fee2e2',\n    200: '#fecaca',\n    300: '#fca5a5',\n    400: '#f87171',\n    500: '#ef4444',\n    600: '#dc2626',\n    700: '#b91c1c',\n    800: '#991b1b',\n    900: '#7f1d1d'\n}, orange = {\n    50: '#fff7ed',\n    100: '#ffedd5',\n    200: '#fed7aa',\n    300: '#fdba74',\n    400: '#fb923c',\n    500: '#f97316',\n    600: '#ea580c',\n    700: '#c2410c',\n    800: '#9a3412',\n    900: '#7c2d12'\n}, amber = {\n    50: '#fffbeb',\n    100: '#fef3c7',\n    200: '#fde68a',\n    300: '#fcd34d',\n    400: '#fbbf24',\n    500: '#f59e0b',\n    600: '#d97706',\n    700: '#b45309',\n    800: '#92400e',\n    900: '#78350f'\n}, yellow = {\n    50: '#fefce8',\n    100: '#fef9c3',\n    200: '#fef08a',\n    300: '#fde047',\n    400: '#facc15',\n    500: '#eab308',\n    600: '#ca8a04',\n    700: '#a16207',\n    800: '#854d0e',\n    900: '#713f12'\n}, lime = {\n    50: '#f7fee7',\n    100: '#ecfccb',\n    200: '#d9f99d',\n    300: '#bef264',\n    400: '#a3e635',\n    500: '#84cc16',\n    600: '#65a30d',\n    700: '#4d7c0f',\n    800: '#3f6212',\n    900: '#365314'\n}, green = {\n    50: '#f0fdf4',\n    100: '#dcfce7',\n    200: '#bbf7d0',\n    300: '#86efac',\n    400: '#4ade80',\n    500: '#22c55e',\n    600: '#16a34a',\n    700: '#15803d',\n    800: '#166534',\n    900: '#14532d'\n}, emerald = {\n    50: '#ecfdf5',\n    100: '#d1fae5',\n    200: '#a7f3d0',\n    300: '#6ee7b7',\n    400: '#34d399',\n    500: '#10b981',\n    600: '#059669',\n    700: '#047857',\n    800: '#065f46',\n    900: '#064e3b'\n}, teal = {\n    50: '#f0fdfa',\n    100: '#ccfbf1',\n    200: '#99f6e4',\n    300: '#5eead4',\n    400: '#2dd4bf',\n    500: '#14b8a6',\n    600: '#0d9488',\n    700: '#0f766e',\n    800: '#115e59',\n    900: '#134e4a'\n}, cyan = {\n    50: '#ecfeff',\n    100: '#cffafe',\n    200: '#a5f3fc',\n    300: '#67e8f9',\n    400: '#22d3ee',\n    500: '#06b6d4',\n    600: '#0891b2',\n    700: '#0e7490',\n    800: '#155e75',\n    900: '#164e63'\n}, sky = {\n    50: '#f0f9ff',\n    100: '#e0f2fe',\n    200: '#bae6fd',\n    300: '#7dd3fc',\n    400: '#38bdf8',\n    500: '#0ea5e9',\n    600: '#0284c7',\n    700: '#0369a1',\n    800: '#075985',\n    900: '#0c4a6e'\n}, blue = {\n    50: '#eff6ff',\n    100: '#dbeafe',\n    200: '#bfdbfe',\n    300: '#93c5fd',\n    400: '#60a5fa',\n    500: '#3b82f6',\n    600: '#2563eb',\n    700: '#1d4ed8',\n    800: '#1e40af',\n    900: '#1e3a8a'\n}, indigo = {\n    50: '#eef2ff',\n    100: '#e0e7ff',\n    200: '#c7d2fe',\n    300: '#a5b4fc',\n    400: '#818cf8',\n    500: '#6366f1',\n    600: '#4f46e5',\n    700: '#4338ca',\n    800: '#3730a3',\n    900: '#312e81'\n}, violet = {\n    50: '#f5f3ff',\n    100: '#ede9fe',\n    200: '#ddd6fe',\n    300: '#c4b5fd',\n    400: '#a78bfa',\n    500: '#8b5cf6',\n    600: '#7c3aed',\n    700: '#6d28d9',\n    800: '#5b21b6',\n    900: '#4c1d95'\n}, purple = {\n    50: '#faf5ff',\n    100: '#f3e8ff',\n    200: '#e9d5ff',\n    300: '#d8b4fe',\n    400: '#c084fc',\n    500: '#a855f7',\n    600: '#9333ea',\n    700: '#7e22ce',\n    800: '#6b21a8',\n    900: '#581c87'\n}, fuchsia = {\n    50: '#fdf4ff',\n    100: '#fae8ff',\n    200: '#f5d0fe',\n    300: '#f0abfc',\n    400: '#e879f9',\n    500: '#d946ef',\n    600: '#c026d3',\n    700: '#a21caf',\n    800: '#86198f',\n    900: '#701a75'\n}, pink = {\n    50: '#fdf2f8',\n    100: '#fce7f3',\n    200: '#fbcfe8',\n    300: '#f9a8d4',\n    400: '#f472b6',\n    500: '#ec4899',\n    600: '#db2777',\n    700: '#be185d',\n    800: '#9d174d',\n    900: '#831843'\n}, rose = {\n    50: '#fff1f2',\n    100: '#ffe4e6',\n    200: '#fecdd3',\n    300: '#fda4af',\n    400: '#fb7185',\n    500: '#f43f5e',\n    600: '#e11d48',\n    700: '#be123c',\n    800: '#9f1239',\n    900: '#881337'\n}, // get lightBlue() {\n//   warn({ version: 'v2.2', from: 'lightBlue', to: 'sky' })\n//   return this.sky\n// }\n// get warmGray() {\n//   warn({ version: 'v3.0', from: 'warmGray', to: 'stone' })\n//   return this.stone\n// }\n// get trueGray() {\n//   warn({ version: 'v3.0', from: 'trueGray', to: 'neutral' })\n//   return this.neutral\n// }\n// get coolGray() {\n//   warn({ version: 'v3.0', from: 'coolGray', to: 'gray' })\n//   return this.gray\n// }\n// get blueGray() {\n//   warn({ version: 'v3.0', from: 'blueGray', to: 'slate' })\n//   return this.slate\n// }\ncolors = {\n    __proto__: null,\n    slate,\n    gray,\n    zinc,\n    neutral,\n    stone,\n    red,\n    orange,\n    amber,\n    yellow,\n    lime,\n    green,\n    emerald,\n    teal,\n    cyan,\n    sky,\n    blue,\n    indigo,\n    violet,\n    purple,\n    fuchsia,\n    pink,\n    rose\n};\nexport { amber, blue, colors, cyan, emerald, fuchsia, gray, green, indigo, lime, neutral, orange, pink, purple, red, rose, sky, slate, stone, teal, violet, yellow, zinc };\n//# sourceMappingURL=colors-16fd59b8.js.map\n","import presetTailwindBase from './base.js';\nimport { colors } from './_/colors-16fd59b8.js';\n/** Allows to disable to tailwind preflight (default: `false` eg include the tailwind preflight ) */ function presetTailwind({ disablePreflight  } = {}) {\n    return presetTailwindBase({\n        colors,\n        disablePreflight\n    });\n}\nexport { presetTailwind as default };\n//# sourceMappingURL=preset-tailwind.js.map\n","import theme from './baseTheme.js';\nimport preflight from './preflight.js';\nimport rules from './rules.js';\nimport variants from './variants.js';\n/** Allows to disable to tailwind preflight (default: `false` eg include the tailwind preflight ) */ /**\n * @experimental\n */ function presetTailwindBase({ colors , disablePreflight  } = {}) {\n    return {\n        // allow other preflight to run\n        preflight: disablePreflight ? void 0 : preflight,\n        theme: {\n            ...theme,\n            colors: {\n                inherit: 'inherit',\n                current: 'currentColor',\n                transparent: 'transparent',\n                black: '#000',\n                white: '#fff',\n                ...colors\n            }\n        },\n        variants,\n        rules,\n        finalize (rule) {\n            return(// automatically add `content: ''` to before and after so you don’t have to specify it unless you want a different value\n            // ignore global, preflight, and auto added rules\n            rule.n && // only if there are declarations\n            rule.d && // and it has a ::before or ::after selector\n            rule.r.some((r)=>/^&::(before|after)$/.test(r)) && // there is no content property yet\n            !/(^|;)content:/.test(rule.d) ? {\n                ...rule,\n                d: 'content:var(--tw-content);' + rule.d\n            } : rule);\n        }\n    };\n}\nexport { presetTailwindBase as default };\n//# sourceMappingURL=base.js.map\n","import { twind, mo, cssom, noop } from '@twind/core';\nfunction install(config, isProduction = true) {\n    // 1. Create separate adoptable sheet\n    let sheet = function() {\n        // TODO: search for SSR stylesheet\n        if (supportsAdoptingStyleSheets) try {\n            // Try using adoptedStyleSheets — not supported in all browsers\n            let sheet = cssom(new CSSStyleSheet());\n            sheet.connect = (element)=>{\n                let shadowRoot = getShadowRoot(element);\n                shadowRoot.adoptedStyleSheets = [\n                    ...shadowRoot.adoptedStyleSheets,\n                    sheet.target\n                ];\n            };\n            sheet.disconnect = noop;\n            return sheet;\n        } catch  {}\n        // ignore — continue with fallback\n        // Fallback: create a dedicated stylesheet for each element instance\n        // Create our base stylesheet — its css rules will be copied to each element style\n        let style = document.createElement('style');\n        // Prevent this style sheet from being applied anywhere\n        style.media = 'not all';\n        document.head.prepend(style);\n        let sheets = [\n            cssom(style)\n        ], /** @type {WeakMap<HTMLElement, import('@twind/core').Sheet>} */ sheetsByElement = new WeakMap();\n        return {\n            get target () {\n                return sheets[0].target;\n            },\n            snapshot () {\n                let restores = sheets.map((sheet)=>sheet.snapshot());\n                return ()=>restores.forEach((restore)=>restore());\n            },\n            clear () {\n                sheets.forEach((sheets)=>sheets.clear());\n            },\n            destroy () {\n                sheets.forEach((sheets)=>sheets.destroy());\n            },\n            insert (css, index, rule) {\n                // We first insert the rule into our base sheet\n                // This call will check (try-catch) and warn if necessary\n                sheets[0].insert(css, index, rule);\n                // For all connected sheets we insert the resulting rule directly\n                // by-passing the try-catch block\n                let cssRule = this.target.cssRules[index];\n                sheets.forEach((sheets, notFirst)=>notFirst && sheets.target.insertRule(cssRule.cssText, index));\n            },\n            resume (addClassName, insert) {\n                return sheets[0].resume(addClassName, insert);\n            },\n            connect (element) {\n                let style = document.createElement('style');\n                getShadowRoot(element).appendChild(style);\n                let sheet = cssom(style), // Directly copy all rules from our base sheet\n                { cssRules  } = this.target;\n                for(let i = 0; i < cssRules.length; i++)sheet.target.insertRule(cssRules[i].cssText, i);\n                sheets.push(sheet);\n                sheetsByElement.set(element, sheet);\n            },\n            disconnect (element) {\n                let index = sheets.indexOf(sheetsByElement.get(element));\n                index >= 0 && sheets.splice(index, 1);\n            }\n        };\n    }(), // 2. Use that to create an own twind instance\n    tw = twind({\n        ...config,\n        // in production use short hashed class names\n        hash: config.hash ?? isProduction\n    }, sheet), // 3. One MutationObserver for all element instances\n    observer = mo(tw);\n    return function install$(BaseElement) {\n        return class WithTwindElement extends BaseElement {\n            connectedCallback() {\n                super.connectedCallback?.();\n                sheet.connect(this);\n                observer.observe(getShadowRoot(this));\n            }\n            disconnectedCallback() {\n                sheet.disconnect(this);\n                super.disconnectedCallback?.();\n            }\n            constructor(...args){\n                super(...args);\n                this.tw = tw;\n            }\n        };\n    };\n}\n// eslint-disable-next-line no-var\n/**\n * Whether the current browser supports `adoptedStyleSheets`.\n * @link https://github.com/lit/lit/blob/393e30cf7c7f97712e524df34e7343147055fc5d/packages/reactive-element/src/css-tag.ts#L13\n */ let supportsAdoptingStyleSheets = 'undefined' != typeof ShadowRoot && ('undefined' == typeof ShadyCSS || ShadyCSS.nativeShadow) && 'adoptedStyleSheets' in Document.prototype && 'replace' in CSSStyleSheet.prototype;\nfunction getShadowRoot(element) {\n    return element.shadowRoot || element.attachShadow({\n        mode: 'open'\n    });\n}\nexport { install as default };\n//# sourceMappingURL=with-web-components.js.map\n","import {defineConfig} from '@twind/core';\nimport presetTailwind from '@twind/preset-tailwind';\nimport install from '@twind/with-web-components';\n\nexport const withTwindExtended = (extend?: object) =>\n  install(\n    defineConfig({\n      theme: {\n        fontFamily: {\n          sans: ['Inter', 'sans-serif'],\n        },\n        extend,\n      },\n      presets: [presetTailwind({})],\n      hash: false,\n    })\n  );\n\nexport const withTwind = withTwindExtended();\n","import {TemplateResult, html} from 'lit';\nimport {LwcElement} from '../lwc-element';\nimport {withTwind} from '../twind/withTwind';\n\nexport abstract class LwcConnector extends withTwind(LwcElement) {\n  private _title: string;\n  private _background: string;\n  private _icon: TemplateResult<2>;\n  protected abstract _onClick(): void;\n  constructor(title: string, background: string, icon: TemplateResult<2>) {\n    super();\n    this._title = title;\n    this._background = background;\n    this._icon = icon;\n  }\n\n  override render() {\n    return html`<div\n      class=\"flex flex-col justify-between items-center w-32 h-24 cursor-pointer\"\n      @click=${this._onClick}\n    >\n      <div\n        class=\"w-16 h-16 drop-shadow-lg rounded-2xl flex justify-center items-center\"\n        style=\"background: ${this._background};\"\n      >\n        ${this._icon}\n      </div>\n      <span class=\"text-sm font-sans font-medium\">${this._title}</span>\n    </div>`;\n  }\n\n  protected async _connect() {\n    if (!window.webln) {\n      throw new Error('No webln provided');\n    }\n\n    await window.webln.enable();\n\n    this._dispatchLwcEvent('lwc:connected');\n  }\n}\n","import { svg } from \"lit\";\n\nexport const puzzleIcon = svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\" class=\"w-12 h-12\"><g><path d=\"M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5C13 2.12 11.88 1 10.5 1S8 2.12 8 3.5V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-1.5c0-1.49 1.21-2.7 2.7-2.7 1.49 0 2.7 1.21 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5c1.38 0 2.5-1.12 2.5-2.5S21.88 11 20.5 11z\"></path></g></svg>`","import {svg} from 'lit';\n\nexport const albyIcon = svg`<svg width=\"45\" height=\"64\" viewBox=\"0 0 45 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M32.9716 52.1905C38.5774 52.1905 41.1289 39.7778 41.1289 35.0713C41.1289 31.4029 38.5976 29.1797 35.2699 29.1797C31.9629 29.1797 29.2782 30.6017 29.2449 32.3627C29.2448 37.01 28.4268 52.1905 32.9716 52.1905Z\" fill=\"white\" stroke=\"black\" stroke-width=\"1.66938\"/>\n<path d=\"M12.4972 52.1905C6.89139 52.1905 4.33989 39.7778 4.33989 35.0713C4.33989 31.4029 6.87114 29.1797 10.1989 29.1797C13.5058 29.1797 16.1906 30.6017 16.2239 32.3627C16.224 37.01 17.0419 52.1905 12.4972 52.1905Z\" fill=\"white\" stroke=\"black\" stroke-width=\"1.66938\"/>\n<path d=\"M7.84577 33.579L7.84575 33.5787C7.83973 33.5213 7.8514 33.488 7.86332 33.4663C7.87739 33.4406 7.90412 33.4101 7.949 33.3846C8.04196 33.3318 8.17216 33.3222 8.29337 33.3931C12.457 35.8337 17.2594 37.2328 22.4806 37.2328C27.7028 37.2328 32.5942 35.8065 36.7846 33.3233C36.905 33.252 37.0349 33.2608 37.1281 33.3133C37.1732 33.3386 37.2001 33.3691 37.2144 33.3949C37.2264 33.4167 37.2382 33.4501 37.2324 33.5076C36.5842 39.9314 33.0999 45.2421 28.4166 47.6866L28.4165 47.6867C26.8697 48.4942 25.8061 49.897 24.8719 51.1291L24.8218 51.1952L24.8217 51.1954C24.0624 52.197 23.3752 53.094 22.5354 53.755C21.6955 53.094 21.0084 52.197 20.2491 51.1954L20.249 51.1952C20.2323 51.1732 20.2156 51.1512 20.1989 51.1291C19.2647 49.897 18.2011 48.4942 16.6542 47.6867L16.6542 47.6866C11.9887 45.2516 8.51323 39.9716 7.84577 33.579Z\" fill=\"#FFDF6F\" stroke=\"black\" stroke-width=\"1.6609\"/>\n<ellipse cx=\"22.5675\" cy=\"33.4515\" rx=\"14.6905\" ry=\"4.89684\" fill=\"black\" stroke=\"black\" stroke-width=\"1.66938\"/>\n<path d=\"M10.7715 41.6875C10.7715 41.6875 18.0175 44.1359 22.6797 44.1359C27.3419 44.1359 34.5879 41.6875 34.5879 41.6875\" stroke=\"black\" stroke-width=\"1.66938\" stroke-linecap=\"round\"/>\n<circle cx=\"3.3218\" cy=\"3.3218\" r=\"3.3218\" transform=\"matrix(-1 0 0 1 12.0703 9.19043)\" fill=\"black\"/>\n<path d=\"M8.19579 12.0137L14.3965 18.2144\" stroke=\"black\" stroke-width=\"1.6609\"/>\n<circle cx=\"35.8784\" cy=\"12.5122\" r=\"3.3218\" fill=\"black\"/>\n<path d=\"M36.4878 12.0137L30.2871 18.2144\" stroke=\"black\" stroke-width=\"1.6609\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.69481 32.3343C7.90447 31.482 6.86251 29.568 7.21154 27.6161C8.70958 19.2385 14.9526 12.9551 22.4267 12.9551C29.9188 12.9551 36.174 19.269 37.6526 27.677C37.9965 29.6325 36.946 31.5456 35.1496 32.391C31.3055 34.1999 27.0119 35.2111 22.482 35.2111C17.9051 35.2111 13.5693 34.1788 9.69481 32.3343Z\" fill=\"#FFDF6F\"/>\n<path d=\"M37.6526 27.677L36.8347 27.8209L37.6526 27.677ZM8.02903 27.7623C9.47654 19.6673 15.46 13.7855 22.4267 13.7855V12.1246C14.4452 12.1246 7.94263 18.8097 6.39406 27.4699L8.02903 27.7623ZM22.4267 13.7855C29.4101 13.7855 35.4059 19.696 36.8347 27.8209L38.4705 27.5332C36.9421 18.842 30.4275 12.1246 22.4267 12.1246V13.7855ZM34.796 31.6396C31.0602 33.3976 26.8871 34.3807 22.482 34.3807V36.0416C27.1366 36.0416 31.5508 35.0023 35.5032 33.1424L34.796 31.6396ZM22.482 34.3807C18.0312 34.3807 13.8172 33.377 10.0518 31.5845L9.33786 33.0841C13.3215 34.9806 17.779 36.0416 22.482 36.0416V34.3807ZM36.8347 27.8209C37.1104 29.3886 36.2709 30.9454 34.796 31.6396L35.5032 33.1424C37.6211 32.1457 38.8825 29.8763 38.4705 27.5332L36.8347 27.8209ZM6.39406 27.4699C5.97582 29.8089 7.22718 32.0793 9.33786 33.0841L10.0518 31.5845C8.58176 30.8847 7.7492 29.3272 8.02903 27.7623L6.39406 27.4699Z\" fill=\"black\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.8892 30.2522C11.4481 29.6652 10.5932 28.1319 11.0926 26.6582C12.6325 22.1132 17.1248 18.8242 22.4266 18.8242C27.7285 18.8242 32.2208 22.1132 33.7607 26.6582C34.2601 28.1319 33.4052 29.6652 31.9641 30.2522C29.0207 31.4509 25.8008 32.1114 22.4266 32.1114C19.0525 32.1114 15.8326 31.4509 12.8892 30.2522Z\" fill=\"black\"/>\n<ellipse cx=\"26.2447\" cy=\"25.9098\" rx=\"2.76817\" ry=\"2.21453\" fill=\"white\"/>\n<ellipse cx=\"18.3209\" cy=\"25.9118\" rx=\"2.76817\" ry=\"2.21453\" fill=\"white\"/>\n</svg>\n`;\n","import {customElement} from 'lit/decorators.js';\nimport {LwcConnector} from './lwc-connector';\nimport {puzzleIcon} from '../icons/puzzleIcon';\n\n@customElement('lwc-extension-connector')\nexport class LwcExtensionConnector extends LwcConnector {\n  constructor() {\n    super(\n      'Extension',\n      'linear-gradient(180deg, #E7E7E7 63.72%, #D1D1D1 95.24%)',\n      puzzleIcon\n    );\n  }\n\n  protected _onClick() {\n    this._connect();\n  }\n}\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'lwc-extension-connector': LwcExtensionConnector;\n  }\n}\n","import {svg} from 'lit';\n\nexport const nwcIcon = svg`<svg\n  width=\"25\"\n  height=\"24\"\n  viewBox=\"0 0 25 24\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\"\n  class=\"w-10 h-10\"\n  >\n  <path\n    fill-rule=\"evenodd\"\n    clip-rule=\"evenodd\"\n    d=\"M14.1287 5.03035L21.4952 12.43L21.4962 12.431C21.9034 12.84 22.3607 13.0639 22.7796 13.1062C23.1718 13.1459 23.5673 13.0322 23.9225 12.6949L19.9036 2.22631C19.4497 1.2345 18.1428 0.998839 17.3711 1.7739L14.1287 5.03035ZM21.0966 12.8275L21.0967 12.8277L21.0965 12.8278C22.0558 13.7912 23.3871 14.021 24.3507 13.062L21.0884 16.3089L19.5591 17.8311L18.4915 18.8936L16.6182 17.0135C17.526 15.6331 17.3781 13.7598 16.1662 12.5404L14.8908 11.2571C14.7095 11.0747 14.4176 11.0738 14.2351 11.2551L13.6055 11.8808L12.0093 10.2746C11.7323 9.99591 11.2744 10.0124 11.0176 10.3194C10.7928 10.5905 10.8315 10.9904 11.0786 11.239L12.6549 12.8251L11.4035 14.0683L9.8073 12.4622C9.53028 12.1835 9.07051 12.1979 8.81561 12.507C8.5928 12.7762 8.63155 13.1761 8.87864 13.4247L10.4549 15.0107L9.82725 15.6344C9.64479 15.8157 9.64392 16.1076 9.82523 16.29L11.1006 17.5733C12.3123 18.7926 14.1847 18.9525 15.5709 18.0538L17.4452 19.9349L16.8577 20.5195L14.8527 22.5151C13.8889 23.4742 12.3301 23.4706 11.3708 22.507L1.21706 12.3075C0.257903 11.3438 0.261373 9.78528 1.22516 8.82609L7.46087 2.61976C8.42465 1.66071 9.9834 1.66432 10.9427 2.62785L21.0966 12.8275Z\"\n    fill=\"white\"\n  />\n</svg>`;\n","import {customElement} from 'lit/decorators.js';\nimport {LwcConnector} from './lwc-connector';\nimport {albyIcon} from '../icons/albyIcon';\nimport {webln} from 'alby-js-sdk';\nimport {WebLNProvider} from '@webbtc/webln-types';\n\n@customElement('lwc-alby-nwc-connector')\nexport class LwcAlbyNWCConnector extends LwcConnector {\n  constructor() {\n    super(\n      'Alby NWC',\n      'linear-gradient(180deg, #FFDE6E 63.72%, #F8C455 95.24%)',\n      albyIcon\n    );\n  }\n\n  protected async _onClick() {\n    const nwc = webln.NostrWebLNProvider.withNewSecret();\n\n    await nwc.initNWC({\n      // TODO: pass to component\n      name: 'Lightning Wallet Connect',\n    });\n    // FIXME: typings\n    window.webln = nwc as unknown as WebLNProvider;\n    return this._connect();\n  }\n}\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'lwc-alby-nwc-connector': LwcAlbyNWCConnector;\n  }\n}\n","import { svg } from \"lit\";\n\nexport const lwcIcon = svg`<svg\n  width=\"25\"\n  height=\"24\"\n  viewBox=\"0 0 25 24\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\"\n  >\n  <path\n    fill-rule=\"evenodd\"\n    clip-rule=\"evenodd\"\n    d=\"M14.1287 5.03035L21.4952 12.43L21.4962 12.431C21.9034 12.84 22.3607 13.0639 22.7796 13.1062C23.1718 13.1459 23.5673 13.0322 23.9225 12.6949L19.9036 2.22631C19.4497 1.2345 18.1428 0.998839 17.3711 1.7739L14.1287 5.03035ZM21.0966 12.8275L21.0967 12.8277L21.0965 12.8278C22.0558 13.7912 23.3871 14.021 24.3507 13.062L21.0884 16.3089L19.5591 17.8311L18.4915 18.8936L16.6182 17.0135C17.526 15.6331 17.3781 13.7598 16.1662 12.5404L14.8908 11.2571C14.7095 11.0747 14.4176 11.0738 14.2351 11.2551L13.6055 11.8808L12.0093 10.2746C11.7323 9.99591 11.2744 10.0124 11.0176 10.3194C10.7928 10.5905 10.8315 10.9904 11.0786 11.239L12.6549 12.8251L11.4035 14.0683L9.8073 12.4622C9.53028 12.1835 9.07051 12.1979 8.81561 12.507C8.5928 12.7762 8.63155 13.1761 8.87864 13.4247L10.4549 15.0107L9.82725 15.6344C9.64479 15.8157 9.64392 16.1076 9.82523 16.29L11.1006 17.5733C12.3123 18.7926 14.1847 18.9525 15.5709 18.0538L17.4452 19.9349L16.8577 20.5195L14.8527 22.5151C13.8889 23.4742 12.3301 23.4706 11.3708 22.507L1.21706 12.3075C0.257903 11.3438 0.261373 9.78528 1.22516 8.82609L7.46087 2.61976C8.42465 1.66071 9.9834 1.66432 10.9427 2.62785L21.0966 12.8275Z\"\n    fill=\"black\"\n  />\n</svg>`;","import {customElement} from 'lit/decorators.js';\nimport {LwcConnector} from './lwc-connector';\nimport {nwcIcon} from '../icons/nwcIcon';\nimport {webln} from 'alby-js-sdk';\nimport {WebLNProvider} from '@webbtc/webln-types';\n\n@customElement('lwc-nwc-connector')\nexport class LwcGenericNWCConnector extends LwcConnector {\n  constructor() {\n    super('NWC Generic', '#7E22CD', nwcIcon);\n  }\n\n  protected async _onClick() {\n    // TODO: this should open a new page on the list component?\n    const nostrWalletConnectUrl = prompt('Enter your Nostr Wallet Connect URL');\n    if (!nostrWalletConnectUrl) {\n      return;\n    }\n\n    const nwc = new webln.NostrWebLNProvider({\n      nostrWalletConnectUrl,\n    });\n\n    // FIXME: typings\n    window.webln = nwc as unknown as WebLNProvider;\n    return this._connect();\n  }\n}\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'lwc-nwc-connector': LwcGenericNWCConnector;\n  }\n}\n","import {html} from 'lit';\nimport {withTwind} from './twind/withTwind.js';\nimport {LwcElement} from './lwc-element.js';\nimport {customElement} from 'lit/decorators.js';\nimport './connectors/lwc-extension-connector.js';\nimport './connectors/lwc-alby-nwc-connector.js';\nimport './connectors/lwc-nwc-connector.js';\n\n/**\n * A list of available connectors\n *\n * @csspart connector-list\n */\n@customElement('lwc-connector-list')\nexport class LwcConnectorList extends withTwind(LwcElement) {\n  override render() {\n    return html` <div\n      part=\"connector-list\"\n      class=\"flex justify-center items-start flex-wrap\"\n    >\n      ${window.webln &&\n      html`<lwc-extension-connector></lwc-extension-connector>`}\n      <lwc-alby-nwc-connector></lwc-alby-nwc-connector>\n      <lwc-nwc-connector></lwc-nwc-connector>\n    </div>`;\n  }\n}\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'lwc-connector-list': LwcConnectorList;\n  }\n}\n","// import { WebLNProvider } from '@webbtc/webln-types';\n// import { webln } from 'alby-js-sdk';\nimport {html} from 'lit';\nimport {customElement, property} from 'lit/decorators.js';\nimport {LwcElement} from './lwc-element';\nimport {lwcIconColored} from './icons/lwcIconColored';\nimport {crossIcon} from './icons/crossIcon';\nimport './lwc-connector-list.js';\nimport {withTwindExtended} from './twind/withTwind';\n\n@customElement('lwc-modal')\nexport class LwcModal extends withTwindExtended({\n  animation: {\n    'slide-up': 'slide-up 0.5s ease-in-out forwards',\n  },\n  keyframes: {\n    'slide-up': {\n      '0%': {top: '100%'},\n      '100%': {top: '0%'},\n    },\n  },\n})(LwcElement) {\n  /**\n   * Called when modal is closed\n   */\n  @property({\n    attribute: 'on-close',\n  })\n  onClose?: () => void;\n\n  constructor() {\n    super();\n    this.addEventListener('lwc:connected', this._onConnect);\n  }\n\n  // TODO: move buttons to a separate component so they can be displayed outside of a modal\n  override render() {\n    return html` <div\n      part=\"modal\"\n      class=\"fixed left-0 w-full h-full flex justify-center items-end sm:items-center animate-slide-up z-[21000]\"\n    >\n      <div\n        class=\"p-4 pb-8 rounded-3xl shadow-2xl flex flex-col justify-center items-center bg-white w-full max-w-md max-sm:rounded-b-none\"\n      >\n        <div class=\"flex justify-center items-center gap-2 w-full relative\">\n          <div class=\"absolute right-0 h-full flex items-center justify-center\">\n            <div class=\"cursor-pointer\" @click=${this._onClose}>\n              ${crossIcon}\n            </div>\n          </div>\n          ${lwcIconColored}\n          <span class=\"font-medium font-sans\">Lightning Wallet Connect</span>\n        </div>\n        <h1 class=\"font-sans text-gray-500 my-8\">\n          Choose your wallet to connect\n        </h1>\n\n        <lwc-connector-list />\n      </div>\n    </div>`;\n  }\n\n  protected override _onConnect() {\n    super._onConnect();\n    this._onClose();\n  }\n\n  private _onClose() {\n    this._dispatchLwcEvent('lwc:modalclosed');\n    this.onClose?.();\n  }\n}\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'lwc-modal': LwcModal;\n  }\n}\n","import {html} from 'lit';\nimport {customElement, property, state} from 'lit/decorators.js';\nimport './lwc-modal.js';\nimport {LwcElement} from './lwc-element.js';\nimport {lwcIcon} from './icons/lwcIcon.js';\nimport {withTwind} from './twind/withTwind.js';\n\n/**\n * A button that when clicked launches the LWC modal.\n *\n * @csspart button - The button\n */\n@customElement('lwc-button')\nexport class LwcButton extends withTwind(LwcElement) {\n  @state()\n  private _modalOpen = false;\n\n  @property({\n    attribute: 'icon-only',\n    type: Boolean,\n  })\n  iconOnly?: boolean;\n\n  @property({\n    type: Boolean,\n  })\n  disabled = false;\n\n  override render() {\n    return html`<div>\n      <button\n        @click=${this._onClick}\n        part=\"button\"\n        class=\"${this.iconOnly && 'p-2'} ${!this.iconOnly &&\n        'w-64 py-2 px-7'} font-medium font-sans shadow rounded-md flex gap-2 justify-center items-center ${this\n          .disabled && 'bg-gray-300 opacity-50'}\"\n        style=\"${!this.disabled &&\n        'background: linear-gradient(180deg, #FFDE6E 63.72%, #F8C455 95.24%);'}\"\n        ?disabled=${this.disabled}\n      >\n        ${lwcIcon} ${this.iconOnly ? html`` : html`Connect Wallet`}\n      </button>\n      ${this._modalOpen\n        ? html`<lwc-modal .onClose=${this._closeModal} />`\n        : html``}\n    </div>`;\n  }\n\n  private _closeModal = () => {\n    this._modalOpen = false;\n  };\n\n  private _onClick() {\n    this._modalOpen = true;\n  }\n}\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'lwc-button': LwcButton;\n  }\n}\n"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","SuppressedError","_templateObject","appendedFonts","LwcElement","_LitElement","_this","call","this","addEventListener","_onConnect","font","document","createElement","href","rel","head","appendChild","loadFonts","_inheritsLoose","_proto","prototype","_dispatchLwcEvent","eventType","event","Event","bubbles","composed","dispatchEvent","LitElement","lwcIconColored","svg","_taggedTemplateLiteralLoose","crossIcon","toClassName","rule","v","n","join","format","rules","seperator","map","escape","CSS","className","replace","hash","value","h","index","Math","imul","charCodeAt","toString","mql","screen","prefix","asArray","min","raw","keys","feature","Array","isArray","identity","noop","Layer","b","a","u","o","seperatorPrecedence","string","match","atRulePrecedence","css","test","max","RegExp","$1","$2","PRECEDENCES_BY_PSEUDO_CLASS","convert","name","important","variants","context","precedence","conditions","variant","theme","condition","push","indexOf","slice","p","registry","Map","stringify$1","groups","selector","replaceEach","reduce","selectorPart","conditionPart","mergeMatch","exec","selectorIndex","replaceReference","reduceRight","body","grouping","iteratee","_","comma","reference","collator","Intl","Collator","numeric","sortedInsertionIndex","array","element","low","high","pivot","compareTwindRules","layer","compare","byModifier","byName","s","split","pop","String","fromCharCode","parseColorComponent","chars","factor","round","parseInt","toColorValue","color","options","opacityValue","opacityVariable","opacity","includes","size","substr","serialize","style","serialize$","declarations","maxPropertyPrecedence","numberOfDeclarations","property","translateWith","parse","JSON","stringify","toLowerCase","resolveThemeFunction","rulePrecedence","screenKey","unshift","sort","__","___","defaultValue","filter","merge","current","result","Boolean","translate","cssRule","resolved","factory","get","precedence1","splice","useOrderOfRules","flatMap","define","set","createRule","active","loc","negated","endsWith","uniq","values","cache","token","parsed","startIndex","skip","comment","position","commit","isRule","endOffset","char","lastMatch","lastGroup","lastIndexOf","nested","shift","pattern","resolve","fromMatch","maybeNegate","offset","find","$$","input","matchTheme","section","fromTheme","themeSection","camelize","arbitrary","matchColor","colorFromTheme","colorMatch","opacityMatch","colorValue","opacitySection","create","properties","toCSS","dark","darkColorValue","normalize","x","toUpperCase","before","url","after","fullMatch","characterBefore","repeat","defineConfig","presets","userConfig","config","darkMode","darkColor","preflight","ignorelist","finalize","preset","extend","list","getResolver","isDark","item","resolver","getVariantResolver","createResolve","getRuleResolver","patterns","createRegExpExecutor","run","toCondition","cssom","cssRules","querySelector","tagName","prepend","dataset","twind","getStyleElement","sheet","snapshot","from","cssText","clear","forEach","insert","deleteRule","destroy","ownerNode","remove","insertRule","error","resume","screens","sm","md","lg","xl","columns","auto","xs","spacing","px","linear","durations","animation","none","spin","ping","pulse","bounce","aspectRatio","square","video","backdropBlur","alias","backdropBrightness","backdropContrast","backdropGrayscale","backdropHueRotate","backdropInvert","backdropOpacity","backdropSaturate","backdropSepia","backgroundColor","backgroundImage","backgroundOpacity","backgroundSize","cover","contain","blur","DEFAULT","brightness","borderColor","borderOpacity","borderRadius","full","borderSpacing","borderWidth","exponential","boxShadow","inner","boxShadowColor","caretColor","accentColor","contrast","content","divideColor","divideOpacity","divideWidth","dropShadow","fill","grayscale","hueRotate","invert","flex","initial","flexBasis","ratios","flexGrow","flexShrink","fontFamily","sans","serif","mono","fontSize","base","fontWeight","thin","extralight","light","normal","medium","semibold","bold","extrabold","black","gap","gradientColorStops","gridAutoColumns","fr","gridAutoRows","gridColumn","gridRow","gridTemplateColumns","gridTemplateRows","height","fit","inset","keyframes","transform","to","animationTimingFunction","letterSpacing","tighter","tight","wide","wider","widest","lineHeight","snug","relaxed","loose","margin","maxHeight","maxWidth","breakpoints","prose","minHeight","minWidth","order","first","last","padding","placeholderColor","placeholderOpacity","outlineColor","outlineOffset","outlineWidth","ringColor","ringOffsetColor","ringOffsetWidth","ringOpacity","ringWidth","rotate","saturate","scale","scrollMargin","scrollPadding","sepia","skew","space","stroke","strokeWidth","textColor","textDecorationColor","textDecorationThickness","textUnderlineOffset","textIndent","textOpacity","transitionDuration","transitionDelay","transitionProperty","all","colors","shadow","transitionTimingFunction","in","out","width","willChange","scroll","zIndex","start","end","dividend","Number","toFixed","stop","unit","divideBy","step","boxSizing","borderStyle","html","WebkitTextSizeAdjust","MozTabSize","tabSize","fontFeatureSettings","hr","borderTopWidth","textDecoration","small","verticalAlign","sub","bottom","sup","top","table","borderCollapse","textTransform","WebkitAppearance","outline","progress","summary","display","fieldset","legend","listStyle","textarea","resize","cursor","center","marginRight","marginLeft","paddingFor","paddingRight","paddingLeft","spacify","right","left","visibility","columnify","gridTemplate","span","convertContentValue","edge","y","WebkitFontSmoothing","MozOsxFontSmoothing","fontStyle","$3","fontVariantNumeric","asDefaults","textDecorationLine","overflow","whiteSpace","textOverflow","wordBreak","overflowWrap","corners","t","l","edges","e","parts","keyframeValues","tranformDefaults","transformValue","outlineStyle","clip","trim","shorthand","separator","longhand","short","w","propertyPrefix","propertySuffix","filters","defaults","gpu","props","type","$4","$5","label","__proto__","slate","gray","zinc","neutral","stone","red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose","presetTailwind","disablePreflight","inherit","transparent","white","some","presetTailwindBase","supportsAdoptingStyleSheets","ShadowRoot","ShadyCSS","nativeShadow","Document","CSSStyleSheet","getShadowRoot","shadowRoot","attachShadow","mode","withTwindExtended","isProduction","connect","adoptedStyleSheets","disconnect","media","sheets","sheetsByElement","WeakMap","restores","restore","notFirst","addClassName","tw","hash$1","variantCache","variantResolvers","ruleCache","ruleResolvers","ignored","ctx","resolveContext","negative","sectionKey","path","assign","deref","obj","prop","section1","source","flattenColorPalette","flattend","keyPath","has","f","sortedPrecedences","insertedRules","Set","finalRule","add","defineProperties","tokens","classNames","getOwnPropertyDescriptors","restoreSheet","insertedRules$","cache$","sortedPrecedences$","observer","MutationObserver","handleMutationRecords","observe","attributeFilter","subtree","childList","handleClassAttributeChange","records","el","querySelectorAll","takeRecords","getAttribute","setAttribute","mo","BaseElement","connectedCallback","super","disconnectedCallback","constructor","args","install","withTwind","LwcConnector","_withTwind","title","background","icon","_title","_background","_icon","render","_onClick","_connect","_this2","window","webln","Error","Promise","enable","then","reject","puzzleIcon","LwcExtensionConnector","_LwcConnector","customElement","albyIcon","LwcAlbyNWCConnector","nwc","NostrWebLNProvider","withNewSecret","initNWC","nwcIcon","LwcGenericNWCConnector","nostrWalletConnectUrl","prompt","LwcConnectorList","apply","_templateObject2","LwcModal","_withTwindExtended","_onClose","_this$onClose","onClose","attribute","lwcIcon","LwcButton","_modalOpen","disabled","_closeModal","iconOnly","_templateObject3","_templateObject4","_templateObject5","state"],"mappings":"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"}