diff --git a/.github/workflows/workshop.yml b/.github/workflows/workshop.yml index 6ff75c93a..2214c4eeb 100644 --- a/.github/workflows/workshop.yml +++ b/.github/workflows/workshop.yml @@ -26,8 +26,6 @@ jobs: - run: pnpm install --frozen-lockfile - run: pnpm --filter @homarr/workshop typecheck - run: pnpm --filter @homarr/docs typecheck - - run: pnpm build:workshop-validator - - run: git diff --exit-code -- apps/workshop/pb_hooks/widget-validator.bundle.cjs - run: pnpm test:workshop - run: docker build --target production -f apps/workshop/Dockerfile . - name: Build and smoke-test a non-root documentation deployment diff --git a/apps/docs/docs/management/custom-widgets/index.mdx b/apps/docs/docs/management/custom-widgets/index.mdx index eb96c949e..dfa2a25a5 100644 --- a/apps/docs/docs/management/custom-widgets/index.mdx +++ b/apps/docs/docs/management/custom-widgets/index.mdx @@ -75,11 +75,13 @@ Mutations remain authenticated and enforce each request's view, modify, or full The workbench keeps one continuous layout with visual source, request, and option editors. Advanced raw JSON remains available for experts and AI paste. Invalid values stay inline and disable both preview and Save/Create until they are corrected. -Exports, imports, Workshop, MCP, and storage all validate the same schema. Widgets saved in the v1 format remain -visible to administrators with a **Migration required** badge after upgrading. Use **Copy migration prompt**, give the -redacted prompt to an LLM, then import its v2 JSON from that widget's action menu. The prompt keeps safe request -metadata but deliberately omits the v1 display configuration because legacy free-text and JSX can contain hard-coded -credentials. Add a credential-free description of the widget's visible layout and behavior when sending the prompt. +Exports, imports, the official Workshop client, and MCP validate the same schema. PocketBase stores community +submissions without interpreting their content, and Homarr validates them before installation. Widgets saved in the v1 +format remain visible to administrators with a **Migration required** badge after upgrading. Use **Copy migration +prompt**, give the redacted prompt to an LLM, then import its v2 JSON from that widget's action menu. The prompt keeps +safe request metadata but deliberately omits the v1 display configuration because legacy free-text and JSX can contain +hard-coded credentials. Add a credential-free description of the widget's visible layout and behavior when sending the +prompt. Homarr keeps the original v1 definition and encrypted secret as a compatibility backup even after the validated v2 replacement is created. The v2 record uses the same stable ID and takes precedence. The archived v1 copy stays hidden diff --git a/apps/docs/docs/management/workshop/index.mdx b/apps/docs/docs/management/workshop/index.mdx index 77f4d89ca..cf6f43b71 100644 --- a/apps/docs/docs/management/workshop/index.mdx +++ b/apps/docs/docs/management/workshop/index.mdx @@ -22,9 +22,10 @@ publishing, or importing Workshop content **inside a Homarr instance is restrict :::warning -The Workshop contains community-made content. Moderation is not a security boundary. Always review widget capabilities, -network origins, actions, and CSS before installing. Homarr's installation-time validator is definitive and can reject -content that the public service accepted earlier. Back up your instance before installing untrusted content. +The Workshop contains community-made content. Moderation is not a security boundary, and PocketBase does not interpret +or validate submission content. Always review widget capabilities, network origins, actions, and CSS before installing. +Homarr's installation-time validator is definitive and can reject content that the public service accepted earlier. +Back up your instance before installing untrusted content. ::: diff --git a/apps/workshop/Dockerfile b/apps/workshop/Dockerfile index 332f96d28..e825366cb 100644 --- a/apps/workshop/Dockerfile +++ b/apps/workshop/Dockerfile @@ -12,10 +12,8 @@ COPY apps/docs ./apps/docs COPY packages/custom-widgets ./packages/custom-widgets COPY packages/definitions ./packages/definitions COPY packages/workshop ./packages/workshop -COPY scripts/build-workshop-validator.mjs ./scripts/build-workshop-validator.mjs COPY tooling/typescript ./tooling/typescript RUN pnpm config set store-dir /pnpm/store && pnpm install --filter @homarr/docs... --frozen-lockfile -RUN pnpm build:workshop-validator FROM dependencies AS website ARG HOMARR_WEBSITE_URL=https://homarr.dev @@ -51,9 +49,6 @@ ENTRYPOINT ["workshop-entrypoint"] FROM pocketbase-runtime AS development COPY --chown=pocketbase:pocketbase apps/workshop/pb_migrations /pb_migrations COPY --chown=pocketbase:pocketbase apps/workshop/pb_hooks /pb_hooks -COPY --from=dependencies --chown=pocketbase:pocketbase \ - /app/apps/workshop/pb_hooks/widget-validator.bundle.cjs \ - /pb_hooks/widget-validator.bundle.cjs EXPOSE 8090 HEALTHCHECK --interval=10s --timeout=5s --start-period=15s --retries=6 CMD wget -q --spider "http://127.0.0.1:${PORT}/api/health" || exit 1 @@ -62,9 +57,6 @@ ENV WORKSHOP_REQUIRE_PUBLIC_ORIGIN=true COPY --from=website /app/workshop-public /pb_public COPY apps/workshop/pb_migrations /pb_migrations COPY apps/workshop/pb_hooks /pb_hooks -COPY --from=dependencies \ - /app/apps/workshop/pb_hooks/widget-validator.bundle.cjs \ - /pb_hooks/widget-validator.bundle.cjs RUN chown -R pocketbase:pocketbase /pb_hooks /pb_migrations /pb_public EXPOSE 8090 HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 CMD wget -q --spider "http://127.0.0.1:${PORT}/api/health" || exit 1 diff --git a/apps/workshop/README.md b/apps/workshop/README.md index 653e7409d..b565aa28e 100644 --- a/apps/workshop/README.md +++ b/apps/workshop/README.md @@ -93,9 +93,10 @@ separate roles in separate services. ## Validation and tests -The browser and shared client validate content with the canonical TypeScript schema. PocketBase independently validates -direct writes, owns schema and revision fields, and rejects stale compare-and-swap updates. Homarr validates the -downloaded content again before installation. +The official browser and shared client validate content with the canonical TypeScript schema and send the matching +schema identifier. PocketBase stores submission content without parsing, normalizing, or validating it; it only owns +revision fields and rejects stale compare-and-swap updates. Homarr validates downloaded content again before +installation, so direct API submissions that bypass the official client can be rejected there. Run the disposable integration suite: diff --git a/apps/workshop/pb_hooks/widget-validator.bundle.cjs b/apps/workshop/pb_hooks/widget-validator.bundle.cjs deleted file mode 100644 index dda084bda..000000000 --- a/apps/workshop/pb_hooks/widget-validator.bundle.cjs +++ /dev/null @@ -1,29062 +0,0 @@ -"use strict"; -var __create = Object.create; -var __defProp = Object.defineProperty; -var __defProps = Object.defineProperties; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropDescs = Object.getOwnPropertyDescriptors; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getOwnPropSymbols = Object.getOwnPropertySymbols; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __propIsEnum = Object.prototype.propertyIsEnumerable; -var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; -var __spreadValues = (a, b) => { - for (var prop in b || (b = {})) - if (__hasOwnProp.call(b, prop)) - __defNormalProp(a, prop, b[prop]); - if (__getOwnPropSymbols) - for (var prop of __getOwnPropSymbols(b)) { - if (__propIsEnum.call(b, prop)) - __defNormalProp(a, prop, b[prop]); - } - return a; -}; -var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); -var __objRest = (source, exclude) => { - var target = {}; - for (var prop in source) - if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) - target[prop] = source[prop]; - if (source != null && __getOwnPropSymbols) - for (var prop of __getOwnPropSymbols(source)) { - if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) - target[prop] = source[prop]; - } - return target; -}; -var __esm = (fn, res, err) => function __init() { - if (err) throw err[0]; - try { - return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; - } catch (e) { - throw err = [e], e; - } -}; -var __commonJS = (cb, mod) => function __require() { - try { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - } catch (e) { - throw mod = 0, e; - } -}; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); -var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); -var __async = (__this, __arguments, generator) => { - return new Promise((resolve, reject) => { - var fulfilled = (value) => { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - }; - var rejected = (value) => { - try { - step(generator.throw(value)); - } catch (e) { - reject(e); - } - }; - var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); - step((generator = generator.apply(__this, __arguments)).next()); - }); -}; - -// node_modules/acorn-jsx/xhtml.js -var require_xhtml = __commonJS({ - "node_modules/acorn-jsx/xhtml.js"(exports, module2) { - module2.exports = { - quot: '"', - amp: "&", - apos: "'", - lt: "<", - gt: ">", - nbsp: "\xA0", - iexcl: "\xA1", - cent: "\xA2", - pound: "\xA3", - curren: "\xA4", - yen: "\xA5", - brvbar: "\xA6", - sect: "\xA7", - uml: "\xA8", - copy: "\xA9", - ordf: "\xAA", - laquo: "\xAB", - not: "\xAC", - shy: "\xAD", - reg: "\xAE", - macr: "\xAF", - deg: "\xB0", - plusmn: "\xB1", - sup2: "\xB2", - sup3: "\xB3", - acute: "\xB4", - micro: "\xB5", - para: "\xB6", - middot: "\xB7", - cedil: "\xB8", - sup1: "\xB9", - ordm: "\xBA", - raquo: "\xBB", - frac14: "\xBC", - frac12: "\xBD", - frac34: "\xBE", - iquest: "\xBF", - Agrave: "\xC0", - Aacute: "\xC1", - Acirc: "\xC2", - Atilde: "\xC3", - Auml: "\xC4", - Aring: "\xC5", - AElig: "\xC6", - Ccedil: "\xC7", - Egrave: "\xC8", - Eacute: "\xC9", - Ecirc: "\xCA", - Euml: "\xCB", - Igrave: "\xCC", - Iacute: "\xCD", - Icirc: "\xCE", - Iuml: "\xCF", - ETH: "\xD0", - Ntilde: "\xD1", - Ograve: "\xD2", - Oacute: "\xD3", - Ocirc: "\xD4", - Otilde: "\xD5", - Ouml: "\xD6", - times: "\xD7", - Oslash: "\xD8", - Ugrave: "\xD9", - Uacute: "\xDA", - Ucirc: "\xDB", - Uuml: "\xDC", - Yacute: "\xDD", - THORN: "\xDE", - szlig: "\xDF", - agrave: "\xE0", - aacute: "\xE1", - acirc: "\xE2", - atilde: "\xE3", - auml: "\xE4", - aring: "\xE5", - aelig: "\xE6", - ccedil: "\xE7", - egrave: "\xE8", - eacute: "\xE9", - ecirc: "\xEA", - euml: "\xEB", - igrave: "\xEC", - iacute: "\xED", - icirc: "\xEE", - iuml: "\xEF", - eth: "\xF0", - ntilde: "\xF1", - ograve: "\xF2", - oacute: "\xF3", - ocirc: "\xF4", - otilde: "\xF5", - ouml: "\xF6", - divide: "\xF7", - oslash: "\xF8", - ugrave: "\xF9", - uacute: "\xFA", - ucirc: "\xFB", - uuml: "\xFC", - yacute: "\xFD", - thorn: "\xFE", - yuml: "\xFF", - OElig: "\u0152", - oelig: "\u0153", - Scaron: "\u0160", - scaron: "\u0161", - Yuml: "\u0178", - fnof: "\u0192", - circ: "\u02C6", - tilde: "\u02DC", - Alpha: "\u0391", - Beta: "\u0392", - Gamma: "\u0393", - Delta: "\u0394", - Epsilon: "\u0395", - Zeta: "\u0396", - Eta: "\u0397", - Theta: "\u0398", - Iota: "\u0399", - Kappa: "\u039A", - Lambda: "\u039B", - Mu: "\u039C", - Nu: "\u039D", - Xi: "\u039E", - Omicron: "\u039F", - Pi: "\u03A0", - Rho: "\u03A1", - Sigma: "\u03A3", - Tau: "\u03A4", - Upsilon: "\u03A5", - Phi: "\u03A6", - Chi: "\u03A7", - Psi: "\u03A8", - Omega: "\u03A9", - alpha: "\u03B1", - beta: "\u03B2", - gamma: "\u03B3", - delta: "\u03B4", - epsilon: "\u03B5", - zeta: "\u03B6", - eta: "\u03B7", - theta: "\u03B8", - iota: "\u03B9", - kappa: "\u03BA", - lambda: "\u03BB", - mu: "\u03BC", - nu: "\u03BD", - xi: "\u03BE", - omicron: "\u03BF", - pi: "\u03C0", - rho: "\u03C1", - sigmaf: "\u03C2", - sigma: "\u03C3", - tau: "\u03C4", - upsilon: "\u03C5", - phi: "\u03C6", - chi: "\u03C7", - psi: "\u03C8", - omega: "\u03C9", - thetasym: "\u03D1", - upsih: "\u03D2", - piv: "\u03D6", - ensp: "\u2002", - emsp: "\u2003", - thinsp: "\u2009", - zwnj: "\u200C", - zwj: "\u200D", - lrm: "\u200E", - rlm: "\u200F", - ndash: "\u2013", - mdash: "\u2014", - lsquo: "\u2018", - rsquo: "\u2019", - sbquo: "\u201A", - ldquo: "\u201C", - rdquo: "\u201D", - bdquo: "\u201E", - dagger: "\u2020", - Dagger: "\u2021", - bull: "\u2022", - hellip: "\u2026", - permil: "\u2030", - prime: "\u2032", - Prime: "\u2033", - lsaquo: "\u2039", - rsaquo: "\u203A", - oline: "\u203E", - frasl: "\u2044", - euro: "\u20AC", - image: "\u2111", - weierp: "\u2118", - real: "\u211C", - trade: "\u2122", - alefsym: "\u2135", - larr: "\u2190", - uarr: "\u2191", - rarr: "\u2192", - darr: "\u2193", - harr: "\u2194", - crarr: "\u21B5", - lArr: "\u21D0", - uArr: "\u21D1", - rArr: "\u21D2", - dArr: "\u21D3", - hArr: "\u21D4", - forall: "\u2200", - part: "\u2202", - exist: "\u2203", - empty: "\u2205", - nabla: "\u2207", - isin: "\u2208", - notin: "\u2209", - ni: "\u220B", - prod: "\u220F", - sum: "\u2211", - minus: "\u2212", - lowast: "\u2217", - radic: "\u221A", - prop: "\u221D", - infin: "\u221E", - ang: "\u2220", - and: "\u2227", - or: "\u2228", - cap: "\u2229", - cup: "\u222A", - "int": "\u222B", - there4: "\u2234", - sim: "\u223C", - cong: "\u2245", - asymp: "\u2248", - ne: "\u2260", - equiv: "\u2261", - le: "\u2264", - ge: "\u2265", - sub: "\u2282", - sup: "\u2283", - nsub: "\u2284", - sube: "\u2286", - supe: "\u2287", - oplus: "\u2295", - otimes: "\u2297", - perp: "\u22A5", - sdot: "\u22C5", - lceil: "\u2308", - rceil: "\u2309", - lfloor: "\u230A", - rfloor: "\u230B", - lang: "\u2329", - rang: "\u232A", - loz: "\u25CA", - spades: "\u2660", - clubs: "\u2663", - hearts: "\u2665", - diams: "\u2666" - }; - } -}); - -// node_modules/acorn/dist/acorn.js -var require_acorn = __commonJS({ - "node_modules/acorn/dist/acorn.js"(exports, module2) { - (function(global, factory) { - typeof exports === "object" && typeof module2 !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.acorn = {})); - })(exports, (function(exports2) { - "use strict"; - var astralIdentifierCodes2 = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; - var astralIdentifierStartCodes2 = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489]; - var nonASCIIidentifierChars2 = "\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65"; - var nonASCIIidentifierStartChars2 = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088F\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5C\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDC-\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7DC\uA7F1-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC"; - var reservedWords2 = { - 3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile", - 5: "class enum extends super const export import", - 6: "enum", - strict: "implements interface let package private protected public static yield", - strictBind: "eval arguments" - }; - var ecma5AndLessKeywords2 = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this"; - var keywords$12 = { - 5: ecma5AndLessKeywords2, - "5module": ecma5AndLessKeywords2 + " export import", - 6: ecma5AndLessKeywords2 + " const class extends export import super" - }; - var keywordRelationalOperator2 = /^in(stanceof)?$/; - var nonASCIIidentifierStart2 = new RegExp("[" + nonASCIIidentifierStartChars2 + "]"); - var nonASCIIidentifier2 = new RegExp("[" + nonASCIIidentifierStartChars2 + nonASCIIidentifierChars2 + "]"); - function isInAstralSet2(code, set2) { - var pos = 65536; - for (var i3 = 0; i3 < set2.length; i3 += 2) { - pos += set2[i3]; - if (pos > code) { - return false; - } - pos += set2[i3 + 1]; - if (pos >= code) { - return true; - } - } - return false; - } - function isIdentifierStart2(code, astral) { - if (code < 65) { - return code === 36; - } - if (code < 91) { - return true; - } - if (code < 97) { - return code === 95; - } - if (code < 123) { - return true; - } - if (code <= 65535) { - return code >= 170 && nonASCIIidentifierStart2.test(String.fromCharCode(code)); - } - if (astral === false) { - return false; - } - return isInAstralSet2(code, astralIdentifierStartCodes2); - } - function isIdentifierChar2(code, astral) { - if (code < 48) { - return code === 36; - } - if (code < 58) { - return true; - } - if (code < 65) { - return false; - } - if (code < 91) { - return true; - } - if (code < 97) { - return code === 95; - } - if (code < 123) { - return true; - } - if (code <= 65535) { - return code >= 170 && nonASCIIidentifier2.test(String.fromCharCode(code)); - } - if (astral === false) { - return false; - } - return isInAstralSet2(code, astralIdentifierStartCodes2) || isInAstralSet2(code, astralIdentifierCodes2); - } - var TokenType3 = function TokenType4(label, conf) { - if (conf === void 0) conf = {}; - this.label = label; - this.keyword = conf.keyword; - this.beforeExpr = !!conf.beforeExpr; - this.startsExpr = !!conf.startsExpr; - this.isLoop = !!conf.isLoop; - this.isAssign = !!conf.isAssign; - this.prefix = !!conf.prefix; - this.postfix = !!conf.postfix; - this.binop = conf.binop || null; - this.updateContext = null; - }; - function binop2(name, prec) { - return new TokenType3(name, { beforeExpr: true, binop: prec }); - } - var beforeExpr2 = { beforeExpr: true }, startsExpr2 = { startsExpr: true }; - var keywords2 = {}; - function kw2(name, options) { - if (options === void 0) options = {}; - options.keyword = name; - return keywords2[name] = new TokenType3(name, options); - } - var types$12 = { - num: new TokenType3("num", startsExpr2), - regexp: new TokenType3("regexp", startsExpr2), - string: new TokenType3("string", startsExpr2), - name: new TokenType3("name", startsExpr2), - privateId: new TokenType3("privateId", startsExpr2), - eof: new TokenType3("eof"), - // Punctuation token types. - bracketL: new TokenType3("[", { beforeExpr: true, startsExpr: true }), - bracketR: new TokenType3("]"), - braceL: new TokenType3("{", { beforeExpr: true, startsExpr: true }), - braceR: new TokenType3("}"), - parenL: new TokenType3("(", { beforeExpr: true, startsExpr: true }), - parenR: new TokenType3(")"), - comma: new TokenType3(",", beforeExpr2), - semi: new TokenType3(";", beforeExpr2), - colon: new TokenType3(":", beforeExpr2), - dot: new TokenType3("."), - question: new TokenType3("?", beforeExpr2), - questionDot: new TokenType3("?."), - arrow: new TokenType3("=>", beforeExpr2), - template: new TokenType3("template"), - invalidTemplate: new TokenType3("invalidTemplate"), - ellipsis: new TokenType3("...", beforeExpr2), - backQuote: new TokenType3("`", startsExpr2), - dollarBraceL: new TokenType3("${", { beforeExpr: true, startsExpr: true }), - // Operators. These carry several kinds of properties to help the - // parser use them properly (the presence of these properties is - // what categorizes them as operators). - // - // `binop`, when present, specifies that this operator is a binary - // operator, and will refer to its precedence. - // - // `prefix` and `postfix` mark the operator as a prefix or postfix - // unary operator. - // - // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as - // binary operators with a very low precedence, that should result - // in AssignmentExpression nodes. - eq: new TokenType3("=", { beforeExpr: true, isAssign: true }), - assign: new TokenType3("_=", { beforeExpr: true, isAssign: true }), - incDec: new TokenType3("++/--", { prefix: true, postfix: true, startsExpr: true }), - prefix: new TokenType3("!/~", { beforeExpr: true, prefix: true, startsExpr: true }), - logicalOR: binop2("||", 1), - logicalAND: binop2("&&", 2), - bitwiseOR: binop2("|", 3), - bitwiseXOR: binop2("^", 4), - bitwiseAND: binop2("&", 5), - equality: binop2("==/!=/===/!==", 6), - relational: binop2("/<=/>=", 7), - bitShift: binop2("<>/>>>", 8), - plusMin: new TokenType3("+/-", { beforeExpr: true, binop: 9, prefix: true, startsExpr: true }), - modulo: binop2("%", 10), - star: binop2("*", 10), - slash: binop2("/", 10), - starstar: new TokenType3("**", { beforeExpr: true }), - coalesce: binop2("??", 1), - // Keyword token types. - _break: kw2("break"), - _case: kw2("case", beforeExpr2), - _catch: kw2("catch"), - _continue: kw2("continue"), - _debugger: kw2("debugger"), - _default: kw2("default", beforeExpr2), - _do: kw2("do", { isLoop: true, beforeExpr: true }), - _else: kw2("else", beforeExpr2), - _finally: kw2("finally"), - _for: kw2("for", { isLoop: true }), - _function: kw2("function", startsExpr2), - _if: kw2("if"), - _return: kw2("return", beforeExpr2), - _switch: kw2("switch"), - _throw: kw2("throw", beforeExpr2), - _try: kw2("try"), - _var: kw2("var"), - _const: kw2("const"), - _while: kw2("while", { isLoop: true }), - _with: kw2("with"), - _new: kw2("new", { beforeExpr: true, startsExpr: true }), - _this: kw2("this", startsExpr2), - _super: kw2("super", startsExpr2), - _class: kw2("class", startsExpr2), - _extends: kw2("extends", beforeExpr2), - _export: kw2("export"), - _import: kw2("import", startsExpr2), - _null: kw2("null", startsExpr2), - _true: kw2("true", startsExpr2), - _false: kw2("false", startsExpr2), - _in: kw2("in", { beforeExpr: true, binop: 7 }), - _instanceof: kw2("instanceof", { beforeExpr: true, binop: 7 }), - _typeof: kw2("typeof", { beforeExpr: true, prefix: true, startsExpr: true }), - _void: kw2("void", { beforeExpr: true, prefix: true, startsExpr: true }), - _delete: kw2("delete", { beforeExpr: true, prefix: true, startsExpr: true }) - }; - var lineBreak2 = /\r\n?|\n|\u2028|\u2029/; - var lineBreakG2 = new RegExp(lineBreak2.source, "g"); - function isNewLine2(code) { - return code === 10 || code === 13 || code === 8232 || code === 8233; - } - function nextLineBreak2(code, from, end) { - if (end === void 0) end = code.length; - for (var i3 = from; i3 < end; i3++) { - var next = code.charCodeAt(i3); - if (isNewLine2(next)) { - return i3 < end - 1 && next === 13 && code.charCodeAt(i3 + 1) === 10 ? i3 + 2 : i3 + 1; - } - } - return -1; - } - var nonASCIIwhitespace2 = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/; - var skipWhiteSpace2 = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; - var ref2 = Object.prototype; - var hasOwnProperty2 = ref2.hasOwnProperty; - var toString2 = ref2.toString; - var hasOwn2 = Object.hasOwn || (function(obj, propName) { - return hasOwnProperty2.call(obj, propName); - }); - var isArray2 = Array.isArray || (function(obj) { - return toString2.call(obj) === "[object Array]"; - }); - var regexpCache2 = /* @__PURE__ */ Object.create(null); - function wordsRegexp2(words) { - return regexpCache2[words] || (regexpCache2[words] = new RegExp("^(?:" + words.replace(/ /g, "|") + ")$")); - } - function codePointToString2(code) { - if (code <= 65535) { - return String.fromCharCode(code); - } - code -= 65536; - return String.fromCharCode((code >> 10) + 55296, (code & 1023) + 56320); - } - var loneSurrogate2 = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/; - var Position3 = function Position4(line, col) { - this.line = line; - this.column = col; - }; - Position3.prototype.offset = function offset2(n) { - return new Position3(this.line, this.column + n); - }; - var SourceLocation3 = function SourceLocation4(p, start, end) { - this.start = start; - this.end = end; - if (p.sourceFile !== null) { - this.source = p.sourceFile; - } - }; - function getLineInfo2(input, offset2) { - for (var line = 1, cur = 0; ; ) { - var nextBreak = nextLineBreak2(input, cur, offset2); - if (nextBreak < 0) { - return new Position3(line, offset2 - cur); - } - ++line; - cur = nextBreak; - } - } - var defaultOptions2 = { - // `ecmaVersion` indicates the ECMAScript version to parse. Must be - // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10 - // (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `"latest"` - // (the latest version the library supports). This influences - // support for strict mode, the set of reserved words, and support - // for new syntax features. - ecmaVersion: null, - // `sourceType` indicates the mode the code should be parsed in. - // Can be either `"script"`, `"module"` or `"commonjs"`. This influences global - // strict mode and parsing of `import` and `export` declarations. - sourceType: "script", - // `onInsertedSemicolon` can be a callback that will be called when - // a semicolon is automatically inserted. It will be passed the - // position of the inserted semicolon as an offset, and if - // `locations` is enabled, it is given the location as a `{line, - // column}` object as second argument. - onInsertedSemicolon: null, - // `onTrailingComma` is similar to `onInsertedSemicolon`, but for - // trailing commas. - onTrailingComma: null, - // By default, reserved words are only enforced if ecmaVersion >= 5. - // Set `allowReserved` to a boolean value to explicitly turn this on - // an off. When this option has the value "never", reserved words - // and keywords can also not be used as property names. - allowReserved: null, - // When enabled, a return at the top level is not considered an - // error. - allowReturnOutsideFunction: false, - // When enabled, import/export statements are not constrained to - // appearing at the top of the program, and an import.meta expression - // in a script isn't considered an error. - allowImportExportEverywhere: false, - // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022. - // When enabled, await identifiers are allowed to appear at the top-level scope, - // but they are still not allowed in non-async functions. - allowAwaitOutsideFunction: null, - // When enabled, super identifiers are not constrained to - // appearing in methods and do not raise an error when they appear elsewhere. - allowSuperOutsideMethod: null, - // When enabled, hashbang directive in the beginning of file is - // allowed and treated as a line comment. Enabled by default when - // `ecmaVersion` >= 2023. - allowHashBang: false, - // By default, the parser will verify that private properties are - // only used in places where they are valid and have been declared. - // Set this to false to turn such checks off. - checkPrivateFields: true, - // When `locations` is on, `loc` properties holding objects with - // `start` and `end` properties in `{line, column}` form (with - // line being 1-based and column 0-based) will be attached to the - // nodes. - locations: false, - // A function can be passed as `onToken` option, which will - // cause Acorn to call that function with object in the same - // format as tokens returned from `tokenizer().getToken()`. Note - // that you are not allowed to call the parser from the - // callback—that will corrupt its internal state. - onToken: null, - // A function can be passed as `onComment` option, which will - // cause Acorn to call that function with `(block, text, start, - // end)` parameters whenever a comment is skipped. `block` is a - // boolean indicating whether this is a block (`/* */`) comment, - // `text` is the content of the comment, and `start` and `end` are - // character offsets that denote the start and end of the comment. - // When the `locations` option is on, two more parameters are - // passed, the full `{line, column}` locations of the start and - // end of the comments. Note that you are not allowed to call the - // parser from the callback—that will corrupt its internal state. - // When this option has an array as value, objects representing the - // comments are pushed to it. - onComment: null, - // Nodes have their start and end characters offsets recorded in - // `start` and `end` properties (directly on the node, rather than - // the `loc` object, which holds line/column data. To also add a - // [semi-standardized][range] `range` property holding a `[start, - // end]` array with the same numbers, set the `ranges` option to - // `true`. - // - // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678 - ranges: false, - // It is possible to parse multiple files into a single AST by - // passing the tree produced by parsing the first file as - // `program` option in subsequent parses. This will add the - // toplevel forms of the parsed file to the `Program` (top) node - // of an existing parse tree. - program: null, - // When `locations` is on, you can pass this to record the source - // file in every node's `loc` object. - sourceFile: null, - // This value, if given, is stored in every node, whether - // `locations` is on or off. - directSourceFile: null, - // When enabled, parenthesized expressions are represented by - // (non-standard) ParenthesizedExpression nodes - preserveParens: false - }; - var warnedAboutEcmaVersion2 = false; - function getOptions2(opts) { - var options = {}; - for (var opt in defaultOptions2) { - options[opt] = opts && hasOwn2(opts, opt) ? opts[opt] : defaultOptions2[opt]; - } - if (options.ecmaVersion === "latest") { - options.ecmaVersion = 1e8; - } else if (options.ecmaVersion == null) { - if (!warnedAboutEcmaVersion2 && typeof console === "object" && console.warn) { - warnedAboutEcmaVersion2 = true; - console.warn("Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future."); - } - options.ecmaVersion = 11; - } else if (options.ecmaVersion >= 2015) { - options.ecmaVersion -= 2009; - } - if (options.allowReserved == null) { - options.allowReserved = options.ecmaVersion < 5; - } - if (!opts || opts.allowHashBang == null) { - options.allowHashBang = options.ecmaVersion >= 14; - } - if (isArray2(options.onToken)) { - var tokens = options.onToken; - options.onToken = function(token) { - return tokens.push(token); - }; - } - if (isArray2(options.onComment)) { - options.onComment = pushComment2(options, options.onComment); - } - if (options.sourceType === "commonjs" && options.allowAwaitOutsideFunction) { - throw new Error("Cannot use allowAwaitOutsideFunction with sourceType: commonjs"); - } - return options; - } - function pushComment2(options, array2) { - return function(block, text, start, end, startLoc, endLoc) { - var comment = { - type: block ? "Block" : "Line", - value: text, - start, - end - }; - if (options.locations) { - comment.loc = new SourceLocation3(this, startLoc, endLoc); - } - if (options.ranges) { - comment.range = [start, end]; - } - array2.push(comment); - }; - } - var SCOPE_TOP2 = 1, SCOPE_FUNCTION2 = 2, SCOPE_ASYNC2 = 4, SCOPE_GENERATOR2 = 8, SCOPE_ARROW2 = 16, SCOPE_SIMPLE_CATCH2 = 32, SCOPE_SUPER2 = 64, SCOPE_DIRECT_SUPER2 = 128, SCOPE_CLASS_STATIC_BLOCK2 = 256, SCOPE_CLASS_FIELD_INIT2 = 512, SCOPE_SWITCH2 = 1024, SCOPE_VAR2 = SCOPE_TOP2 | SCOPE_FUNCTION2 | SCOPE_CLASS_STATIC_BLOCK2; - function functionFlags2(async, generator) { - return SCOPE_FUNCTION2 | (async ? SCOPE_ASYNC2 : 0) | (generator ? SCOPE_GENERATOR2 : 0); - } - var BIND_NONE2 = 0, BIND_VAR2 = 1, BIND_LEXICAL2 = 2, BIND_FUNCTION2 = 3, BIND_SIMPLE_CATCH2 = 4, BIND_OUTSIDE2 = 5; - var Parser3 = function Parser4(options, input, startPos) { - this.options = options = getOptions2(options); - this.sourceFile = options.sourceFile; - this.keywords = wordsRegexp2(keywords$12[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]); - var reserved = ""; - if (options.allowReserved !== true) { - reserved = reservedWords2[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3]; - if (options.sourceType === "module") { - reserved += " await"; - } - } - this.reservedWords = wordsRegexp2(reserved); - var reservedStrict = (reserved ? reserved + " " : "") + reservedWords2.strict; - this.reservedWordsStrict = wordsRegexp2(reservedStrict); - this.reservedWordsStrictBind = wordsRegexp2(reservedStrict + " " + reservedWords2.strictBind); - this.input = String(input); - this.containsEsc = false; - if (startPos) { - this.pos = startPos; - this.lineStart = this.input.lastIndexOf("\n", startPos - 1) + 1; - this.curLine = this.input.slice(0, this.lineStart).split(lineBreak2).length; - } else { - this.pos = this.lineStart = 0; - this.curLine = 1; - } - this.type = types$12.eof; - this.value = null; - this.start = this.end = this.pos; - this.startLoc = this.endLoc = this.curPosition(); - this.lastTokEndLoc = this.lastTokStartLoc = null; - this.lastTokStart = this.lastTokEnd = this.pos; - this.context = this.initialContext(); - this.exprAllowed = true; - this.inModule = options.sourceType === "module"; - this.strict = this.inModule || this.strictDirective(this.pos); - this.potentialArrowAt = -1; - this.potentialArrowInForAwait = false; - this.yieldPos = this.awaitPos = this.awaitIdentPos = 0; - this.labels = []; - this.undefinedExports = /* @__PURE__ */ Object.create(null); - if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === "#!") { - this.skipLineComment(2); - } - this.scopeStack = []; - this.enterScope( - this.options.sourceType === "commonjs" ? SCOPE_FUNCTION2 : SCOPE_TOP2 - ); - this.regexpState = null; - this.privateNameStack = []; - }; - var prototypeAccessors2 = { inFunction: { configurable: true }, inGenerator: { configurable: true }, inAsync: { configurable: true }, canAwait: { configurable: true }, allowReturn: { configurable: true }, allowSuper: { configurable: true }, allowDirectSuper: { configurable: true }, treatFunctionsAsVar: { configurable: true }, allowNewDotTarget: { configurable: true }, allowUsing: { configurable: true }, inClassStaticBlock: { configurable: true } }; - Parser3.prototype.parse = function parse6() { - var node = this.options.program || this.startNode(); - this.nextToken(); - return this.parseTopLevel(node); - }; - prototypeAccessors2.inFunction.get = function() { - return (this.currentVarScope().flags & SCOPE_FUNCTION2) > 0; - }; - prototypeAccessors2.inGenerator.get = function() { - return (this.currentVarScope().flags & SCOPE_GENERATOR2) > 0; - }; - prototypeAccessors2.inAsync.get = function() { - return (this.currentVarScope().flags & SCOPE_ASYNC2) > 0; - }; - prototypeAccessors2.canAwait.get = function() { - for (var i3 = this.scopeStack.length - 1; i3 >= 0; i3--) { - var ref3 = this.scopeStack[i3]; - var flags = ref3.flags; - if (flags & (SCOPE_CLASS_STATIC_BLOCK2 | SCOPE_CLASS_FIELD_INIT2)) { - return false; - } - if (flags & SCOPE_FUNCTION2) { - return (flags & SCOPE_ASYNC2) > 0; - } - } - return this.inModule && this.options.ecmaVersion >= 13 || this.options.allowAwaitOutsideFunction; - }; - prototypeAccessors2.allowReturn.get = function() { - if (this.inFunction) { - return true; - } - if (this.options.allowReturnOutsideFunction && this.currentVarScope().flags & SCOPE_TOP2) { - return true; - } - return false; - }; - prototypeAccessors2.allowSuper.get = function() { - var ref3 = this.currentThisScope(); - var flags = ref3.flags; - return (flags & SCOPE_SUPER2) > 0 || this.options.allowSuperOutsideMethod; - }; - prototypeAccessors2.allowDirectSuper.get = function() { - return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER2) > 0; - }; - prototypeAccessors2.treatFunctionsAsVar.get = function() { - return this.treatFunctionsAsVarInScope(this.currentScope()); - }; - prototypeAccessors2.allowNewDotTarget.get = function() { - for (var i3 = this.scopeStack.length - 1; i3 >= 0; i3--) { - var ref3 = this.scopeStack[i3]; - var flags = ref3.flags; - if (flags & (SCOPE_CLASS_STATIC_BLOCK2 | SCOPE_CLASS_FIELD_INIT2) || flags & SCOPE_FUNCTION2 && !(flags & SCOPE_ARROW2)) { - return true; - } - } - return false; - }; - prototypeAccessors2.allowUsing.get = function() { - var ref3 = this.currentScope(); - var flags = ref3.flags; - if (flags & SCOPE_SWITCH2) { - return false; - } - if (!this.inModule && flags & SCOPE_TOP2) { - return false; - } - return true; - }; - prototypeAccessors2.inClassStaticBlock.get = function() { - return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK2) > 0; - }; - Parser3.extend = function extend3() { - var plugins = [], len = arguments.length; - while (len--) plugins[len] = arguments[len]; - var cls = this; - for (var i3 = 0; i3 < plugins.length; i3++) { - cls = plugins[i3](cls); - } - return cls; - }; - Parser3.parse = function parse6(input, options) { - return new this(options, input).parse(); - }; - Parser3.parseExpressionAt = function parseExpressionAt3(input, pos, options) { - var parser = new this(options, input, pos); - parser.nextToken(); - return parser.parseExpression(); - }; - Parser3.tokenizer = function tokenizer3(input, options) { - return new this(options, input); - }; - Object.defineProperties(Parser3.prototype, prototypeAccessors2); - var pp$92 = Parser3.prototype; - var literal3 = /^(?:'((?:\\[^]|[^'\\])*?)'|"((?:\\[^]|[^"\\])*?)")/; - pp$92.strictDirective = function(start) { - if (this.options.ecmaVersion < 5) { - return false; - } - for (; ; ) { - skipWhiteSpace2.lastIndex = start; - start += skipWhiteSpace2.exec(this.input)[0].length; - var match = literal3.exec(this.input.slice(start)); - if (!match) { - return false; - } - if ((match[1] || match[2]) === "use strict") { - skipWhiteSpace2.lastIndex = start + match[0].length; - var spaceAfter = skipWhiteSpace2.exec(this.input), end = spaceAfter.index + spaceAfter[0].length; - var next = this.input.charAt(end); - return next === ";" || next === "}" || lineBreak2.test(spaceAfter[0]) && !(/[(`.[+\-/*%<>=,?^&]/.test(next) || next === "!" && this.input.charAt(end + 1) === "="); - } - start += match[0].length; - skipWhiteSpace2.lastIndex = start; - start += skipWhiteSpace2.exec(this.input)[0].length; - if (this.input[start] === ";") { - start++; - } - } - }; - pp$92.eat = function(type) { - if (this.type === type) { - this.next(); - return true; - } else { - return false; - } - }; - pp$92.isContextual = function(name) { - return this.type === types$12.name && this.value === name && !this.containsEsc; - }; - pp$92.eatContextual = function(name) { - if (!this.isContextual(name)) { - return false; - } - this.next(); - return true; - }; - pp$92.expectContextual = function(name) { - if (!this.eatContextual(name)) { - this.unexpected(); - } - }; - pp$92.canInsertSemicolon = function() { - return this.type === types$12.eof || this.type === types$12.braceR || lineBreak2.test(this.input.slice(this.lastTokEnd, this.start)); - }; - pp$92.insertSemicolon = function() { - if (this.canInsertSemicolon()) { - if (this.options.onInsertedSemicolon) { - this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); - } - return true; - } - }; - pp$92.semicolon = function() { - if (!this.eat(types$12.semi) && !this.insertSemicolon()) { - this.unexpected(); - } - }; - pp$92.afterTrailingComma = function(tokType, notNext) { - if (this.type === tokType) { - if (this.options.onTrailingComma) { - this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); - } - if (!notNext) { - this.next(); - } - return true; - } - }; - pp$92.expect = function(type) { - this.eat(type) || this.unexpected(); - }; - pp$92.unexpected = function(pos) { - this.raise(pos != null ? pos : this.start, "Unexpected token"); - }; - var DestructuringErrors3 = function DestructuringErrors4() { - this.shorthandAssign = this.trailingComma = this.parenthesizedAssign = this.parenthesizedBind = this.doubleProto = -1; - }; - pp$92.checkPatternErrors = function(refDestructuringErrors, isAssign) { - if (!refDestructuringErrors) { - return; - } - if (refDestructuringErrors.trailingComma > -1) { - this.raiseRecoverable(refDestructuringErrors.trailingComma, "Comma is not permitted after the rest element"); - } - var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind; - if (parens > -1) { - this.raiseRecoverable(parens, isAssign ? "Assigning to rvalue" : "Parenthesized pattern"); - } - }; - pp$92.checkExpressionErrors = function(refDestructuringErrors, andThrow) { - if (!refDestructuringErrors) { - return false; - } - var shorthandAssign = refDestructuringErrors.shorthandAssign; - var doubleProto = refDestructuringErrors.doubleProto; - if (!andThrow) { - return shorthandAssign >= 0 || doubleProto >= 0; - } - if (shorthandAssign >= 0) { - this.raise(shorthandAssign, "Shorthand property assignments are valid only in destructuring patterns"); - } - if (doubleProto >= 0) { - this.raiseRecoverable(doubleProto, "Redefinition of __proto__ property"); - } - }; - pp$92.checkYieldAwaitInDefaultParams = function() { - if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos)) { - this.raise(this.yieldPos, "Yield expression cannot be a default value"); - } - if (this.awaitPos) { - this.raise(this.awaitPos, "Await expression cannot be a default value"); - } - }; - pp$92.isSimpleAssignTarget = function(expr) { - if (expr.type === "ParenthesizedExpression") { - return this.isSimpleAssignTarget(expr.expression); - } - return expr.type === "Identifier" || expr.type === "MemberExpression"; - }; - var pp$82 = Parser3.prototype; - pp$82.parseTopLevel = function(node) { - var exports3 = /* @__PURE__ */ Object.create(null); - if (!node.body) { - node.body = []; - } - while (this.type !== types$12.eof) { - var stmt = this.parseStatement(null, true, exports3); - node.body.push(stmt); - } - if (this.inModule) { - for (var i3 = 0, list3 = Object.keys(this.undefinedExports); i3 < list3.length; i3 += 1) { - var name = list3[i3]; - this.raiseRecoverable(this.undefinedExports[name].start, "Export '" + name + "' is not defined"); - } - } - this.adaptDirectivePrologue(node.body); - this.next(); - node.sourceType = this.options.sourceType === "commonjs" ? "script" : this.options.sourceType; - return this.finishNode(node, "Program"); - }; - var loopLabel2 = { kind: "loop" }, switchLabel2 = { kind: "switch" }; - pp$82.isLet = function(context) { - if (this.options.ecmaVersion < 6 || !this.isContextual("let")) { - return false; - } - skipWhiteSpace2.lastIndex = this.pos; - var skip = skipWhiteSpace2.exec(this.input); - var next = this.pos + skip[0].length, nextCh = this.fullCharCodeAt(next); - if (nextCh === 91 || nextCh === 92) { - return true; - } - if (context) { - return false; - } - if (nextCh === 123) { - return true; - } - if (isIdentifierStart2(nextCh)) { - var start = next; - do { - next += nextCh <= 65535 ? 1 : 2; - } while (isIdentifierChar2(nextCh = this.fullCharCodeAt(next))); - if (nextCh === 92) { - return true; - } - var ident = this.input.slice(start, next); - if (!keywordRelationalOperator2.test(ident)) { - return true; - } - } - return false; - }; - pp$82.isAsyncFunction = function() { - if (this.options.ecmaVersion < 8 || !this.isContextual("async")) { - return false; - } - skipWhiteSpace2.lastIndex = this.pos; - var skip = skipWhiteSpace2.exec(this.input); - var next = this.pos + skip[0].length, after; - return !lineBreak2.test(this.input.slice(this.pos, next)) && this.input.slice(next, next + 8) === "function" && (next + 8 === this.input.length || !(isIdentifierChar2(after = this.fullCharCodeAt(next + 8)) || after === 92)); - }; - pp$82.isUsingKeyword = function(isAwaitUsing, isFor) { - if (this.options.ecmaVersion < 17 || !this.isContextual(isAwaitUsing ? "await" : "using")) { - return false; - } - skipWhiteSpace2.lastIndex = this.pos; - var skip = skipWhiteSpace2.exec(this.input); - var next = this.pos + skip[0].length; - if (lineBreak2.test(this.input.slice(this.pos, next))) { - return false; - } - if (isAwaitUsing) { - var usingEndPos = next + 5, after; - if (this.input.slice(next, usingEndPos) !== "using" || usingEndPos === this.input.length || isIdentifierChar2(after = this.fullCharCodeAt(usingEndPos)) || after === 92) { - return false; - } - skipWhiteSpace2.lastIndex = usingEndPos; - var skipAfterUsing = skipWhiteSpace2.exec(this.input); - next = usingEndPos + skipAfterUsing[0].length; - if (skipAfterUsing && lineBreak2.test(this.input.slice(usingEndPos, next))) { - return false; - } - } - var ch = this.fullCharCodeAt(next); - if (!isIdentifierStart2(ch) && ch !== 92) { - return false; - } - var idStart = next; - do { - next += ch <= 65535 ? 1 : 2; - } while (isIdentifierChar2(ch = this.fullCharCodeAt(next))); - if (ch === 92) { - return true; - } - var id = this.input.slice(idStart, next); - if (keywordRelationalOperator2.test(id) || isFor && id === "of") { - return false; - } - return true; - }; - pp$82.isAwaitUsing = function(isFor) { - return this.isUsingKeyword(true, isFor); - }; - pp$82.isUsing = function(isFor) { - return this.isUsingKeyword(false, isFor); - }; - pp$82.parseStatement = function(context, topLevel, exports3) { - var starttype = this.type, node = this.startNode(), kind; - if (this.isLet(context)) { - starttype = types$12._var; - kind = "let"; - } - switch (starttype) { - case types$12._break: - case types$12._continue: - return this.parseBreakContinueStatement(node, starttype.keyword); - case types$12._debugger: - return this.parseDebuggerStatement(node); - case types$12._do: - return this.parseDoStatement(node); - case types$12._for: - return this.parseForStatement(node); - case types$12._function: - if (context && (this.strict || context !== "if" && context !== "label") && this.options.ecmaVersion >= 6) { - this.unexpected(); - } - return this.parseFunctionStatement(node, false, !context); - case types$12._class: - if (context) { - this.unexpected(); - } - return this.parseClass(node, true); - case types$12._if: - return this.parseIfStatement(node); - case types$12._return: - return this.parseReturnStatement(node); - case types$12._switch: - return this.parseSwitchStatement(node); - case types$12._throw: - return this.parseThrowStatement(node); - case types$12._try: - return this.parseTryStatement(node); - case types$12._const: - case types$12._var: - kind = kind || this.value; - if (context && kind !== "var") { - this.unexpected(); - } - return this.parseVarStatement(node, kind); - case types$12._while: - return this.parseWhileStatement(node); - case types$12._with: - return this.parseWithStatement(node); - case types$12.braceL: - return this.parseBlock(true, node); - case types$12.semi: - return this.parseEmptyStatement(node); - case types$12._export: - case types$12._import: - if (this.options.ecmaVersion > 10 && starttype === types$12._import) { - skipWhiteSpace2.lastIndex = this.pos; - var skip = skipWhiteSpace2.exec(this.input); - var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next); - if (nextCh === 40 || nextCh === 46) { - return this.parseExpressionStatement(node, this.parseExpression()); - } - } - if (!this.options.allowImportExportEverywhere) { - if (!topLevel) { - this.raise(this.start, "'import' and 'export' may only appear at the top level"); - } - if (!this.inModule) { - this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'"); - } - } - return starttype === types$12._import ? this.parseImport(node) : this.parseExport(node, exports3); - // If the statement does not start with a statement keyword or a - // brace, it's an ExpressionStatement or LabeledStatement. We - // simply start parsing an expression, and afterwards, if the - // next token is a colon and the expression was a simple - // Identifier node, we switch to interpreting it as a label. - default: - if (this.isAsyncFunction()) { - if (context) { - this.unexpected(); - } - this.next(); - return this.parseFunctionStatement(node, true, !context); - } - var usingKind = this.isAwaitUsing(false) ? "await using" : this.isUsing(false) ? "using" : null; - if (usingKind) { - if (!this.allowUsing) { - this.raise(this.start, "Using declaration cannot appear in the top level when source type is `script` or in the bare case statement"); - } - if (usingKind === "await using") { - if (!this.canAwait) { - this.raise(this.start, "Await using cannot appear outside of async function"); - } - this.next(); - } - this.next(); - this.parseVar(node, false, usingKind); - this.semicolon(); - return this.finishNode(node, "VariableDeclaration"); - } - var maybeName = this.value, expr = this.parseExpression(); - if (starttype === types$12.name && expr.type === "Identifier" && this.eat(types$12.colon)) { - return this.parseLabeledStatement(node, maybeName, expr, context); - } else { - return this.parseExpressionStatement(node, expr); - } - } - }; - pp$82.parseBreakContinueStatement = function(node, keyword) { - var isBreak = keyword === "break"; - this.next(); - if (this.eat(types$12.semi) || this.insertSemicolon()) { - node.label = null; - } else if (this.type !== types$12.name) { - this.unexpected(); - } else { - node.label = this.parseIdent(); - this.semicolon(); - } - var i3 = 0; - for (; i3 < this.labels.length; ++i3) { - var lab = this.labels[i3]; - if (node.label == null || lab.name === node.label.name) { - if (lab.kind != null && (isBreak || lab.kind === "loop")) { - break; - } - if (node.label && isBreak) { - break; - } - } - } - if (i3 === this.labels.length) { - this.raise(node.start, "Unsyntactic " + keyword); - } - return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement"); - }; - pp$82.parseDebuggerStatement = function(node) { - this.next(); - this.semicolon(); - return this.finishNode(node, "DebuggerStatement"); - }; - pp$82.parseDoStatement = function(node) { - this.next(); - this.labels.push(loopLabel2); - node.body = this.parseStatement("do"); - this.labels.pop(); - this.expect(types$12._while); - node.test = this.parseParenExpression(); - if (this.options.ecmaVersion >= 6) { - this.eat(types$12.semi); - } else { - this.semicolon(); - } - return this.finishNode(node, "DoWhileStatement"); - }; - pp$82.parseForStatement = function(node) { - this.next(); - var awaitAt = this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual("await") ? this.lastTokStart : -1; - this.labels.push(loopLabel2); - this.enterScope(0); - this.expect(types$12.parenL); - if (this.type === types$12.semi) { - if (awaitAt > -1) { - this.unexpected(awaitAt); - } - return this.parseFor(node, null); - } - var isLet = this.isLet(); - if (this.type === types$12._var || this.type === types$12._const || isLet) { - var init$1 = this.startNode(), kind = isLet ? "let" : this.value; - this.next(); - this.parseVar(init$1, true, kind); - this.finishNode(init$1, "VariableDeclaration"); - return this.parseForAfterInit(node, init$1, awaitAt); - } - var startsWithLet = this.isContextual("let"), isForOf = false; - var usingKind = this.isUsing(true) ? "using" : this.isAwaitUsing(true) ? "await using" : null; - if (usingKind) { - var init$2 = this.startNode(); - this.next(); - if (usingKind === "await using") { - if (!this.canAwait) { - this.raise(this.start, "Await using cannot appear outside of async function"); - } - this.next(); - } - this.parseVar(init$2, true, usingKind); - this.finishNode(init$2, "VariableDeclaration"); - return this.parseForAfterInit(node, init$2, awaitAt); - } - var containsEsc = this.containsEsc; - var refDestructuringErrors = new DestructuringErrors3(); - var initPos = this.start; - var init = awaitAt > -1 ? this.parseExprSubscripts(refDestructuringErrors, "await") : this.parseExpression(true, refDestructuringErrors); - if (this.type === types$12._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual("of"))) { - if (awaitAt > -1) { - if (this.type === types$12._in) { - this.unexpected(awaitAt); - } - node.await = true; - } else if (isForOf && this.options.ecmaVersion >= 8) { - if (init.start === initPos && !containsEsc && init.type === "Identifier" && init.name === "async") { - this.unexpected(); - } else if (this.options.ecmaVersion >= 9) { - node.await = false; - } - } - if (startsWithLet && isForOf) { - this.raise(init.start, "The left-hand side of a for-of loop may not start with 'let'."); - } - this.toAssignable(init, false, refDestructuringErrors); - this.checkLValPattern(init); - return this.parseForIn(node, init); - } else { - this.checkExpressionErrors(refDestructuringErrors, true); - } - if (awaitAt > -1) { - this.unexpected(awaitAt); - } - return this.parseFor(node, init); - }; - pp$82.parseForAfterInit = function(node, init, awaitAt) { - if ((this.type === types$12._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) && init.declarations.length === 1) { - if (this.options.ecmaVersion >= 9) { - if (this.type === types$12._in) { - if (awaitAt > -1) { - this.unexpected(awaitAt); - } - } else { - node.await = awaitAt > -1; - } - } - return this.parseForIn(node, init); - } - if (awaitAt > -1) { - this.unexpected(awaitAt); - } - return this.parseFor(node, init); - }; - pp$82.parseFunctionStatement = function(node, isAsync, declarationPosition) { - this.next(); - return this.parseFunction(node, FUNC_STATEMENT2 | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT2), false, isAsync); - }; - pp$82.parseIfStatement = function(node) { - this.next(); - node.test = this.parseParenExpression(); - node.consequent = this.parseStatement("if"); - node.alternate = this.eat(types$12._else) ? this.parseStatement("if") : null; - return this.finishNode(node, "IfStatement"); - }; - pp$82.parseReturnStatement = function(node) { - if (!this.allowReturn) { - this.raise(this.start, "'return' outside of function"); - } - this.next(); - if (this.eat(types$12.semi) || this.insertSemicolon()) { - node.argument = null; - } else { - node.argument = this.parseExpression(); - this.semicolon(); - } - return this.finishNode(node, "ReturnStatement"); - }; - pp$82.parseSwitchStatement = function(node) { - this.next(); - node.discriminant = this.parseParenExpression(); - node.cases = []; - this.expect(types$12.braceL); - this.labels.push(switchLabel2); - this.enterScope(SCOPE_SWITCH2); - var cur; - for (var sawDefault = false; this.type !== types$12.braceR; ) { - if (this.type === types$12._case || this.type === types$12._default) { - var isCase = this.type === types$12._case; - if (cur) { - this.finishNode(cur, "SwitchCase"); - } - node.cases.push(cur = this.startNode()); - cur.consequent = []; - this.next(); - if (isCase) { - cur.test = this.parseExpression(); - } else { - if (sawDefault) { - this.raiseRecoverable(this.lastTokStart, "Multiple default clauses"); - } - sawDefault = true; - cur.test = null; - } - this.expect(types$12.colon); - } else { - if (!cur) { - this.unexpected(); - } - cur.consequent.push(this.parseStatement(null)); - } - } - this.exitScope(); - if (cur) { - this.finishNode(cur, "SwitchCase"); - } - this.next(); - this.labels.pop(); - return this.finishNode(node, "SwitchStatement"); - }; - pp$82.parseThrowStatement = function(node) { - this.next(); - if (lineBreak2.test(this.input.slice(this.lastTokEnd, this.start))) { - this.raise(this.lastTokEnd, "Illegal newline after throw"); - } - node.argument = this.parseExpression(); - this.semicolon(); - return this.finishNode(node, "ThrowStatement"); - }; - var empty$12 = []; - pp$82.parseCatchClauseParam = function() { - var param = this.parseBindingAtom(); - var simple = param.type === "Identifier"; - this.enterScope(simple ? SCOPE_SIMPLE_CATCH2 : 0); - this.checkLValPattern(param, simple ? BIND_SIMPLE_CATCH2 : BIND_LEXICAL2); - this.expect(types$12.parenR); - return param; - }; - pp$82.parseTryStatement = function(node) { - this.next(); - node.block = this.parseBlock(); - node.handler = null; - if (this.type === types$12._catch) { - var clause = this.startNode(); - this.next(); - if (this.eat(types$12.parenL)) { - clause.param = this.parseCatchClauseParam(); - } else { - if (this.options.ecmaVersion < 10) { - this.unexpected(); - } - clause.param = null; - this.enterScope(0); - } - clause.body = this.parseBlock(false); - this.exitScope(); - node.handler = this.finishNode(clause, "CatchClause"); - } - node.finalizer = this.eat(types$12._finally) ? this.parseBlock() : null; - if (!node.handler && !node.finalizer) { - this.raise(node.start, "Missing catch or finally clause"); - } - return this.finishNode(node, "TryStatement"); - }; - pp$82.parseVarStatement = function(node, kind, allowMissingInitializer) { - this.next(); - this.parseVar(node, false, kind, allowMissingInitializer); - this.semicolon(); - return this.finishNode(node, "VariableDeclaration"); - }; - pp$82.parseWhileStatement = function(node) { - this.next(); - node.test = this.parseParenExpression(); - this.labels.push(loopLabel2); - node.body = this.parseStatement("while"); - this.labels.pop(); - return this.finishNode(node, "WhileStatement"); - }; - pp$82.parseWithStatement = function(node) { - if (this.strict) { - this.raise(this.start, "'with' in strict mode"); - } - this.next(); - node.object = this.parseParenExpression(); - node.body = this.parseStatement("with"); - return this.finishNode(node, "WithStatement"); - }; - pp$82.parseEmptyStatement = function(node) { - this.next(); - return this.finishNode(node, "EmptyStatement"); - }; - pp$82.parseLabeledStatement = function(node, maybeName, expr, context) { - for (var i$1 = 0, list3 = this.labels; i$1 < list3.length; i$1 += 1) { - var label = list3[i$1]; - if (label.name === maybeName) { - this.raise(expr.start, "Label '" + maybeName + "' is already declared"); - } - } - var kind = this.type.isLoop ? "loop" : this.type === types$12._switch ? "switch" : null; - for (var i3 = this.labels.length - 1; i3 >= 0; i3--) { - var label$1 = this.labels[i3]; - if (label$1.statementStart === node.start) { - label$1.statementStart = this.start; - label$1.kind = kind; - } else { - break; - } - } - this.labels.push({ name: maybeName, kind, statementStart: this.start }); - node.body = this.parseStatement(context ? context.indexOf("label") === -1 ? context + "label" : context : "label"); - this.labels.pop(); - node.label = expr; - return this.finishNode(node, "LabeledStatement"); - }; - pp$82.parseExpressionStatement = function(node, expr) { - node.expression = expr; - this.semicolon(); - return this.finishNode(node, "ExpressionStatement"); - }; - pp$82.parseBlock = function(createNewLexicalScope, node, exitStrict) { - if (createNewLexicalScope === void 0) createNewLexicalScope = true; - if (node === void 0) node = this.startNode(); - node.body = []; - this.expect(types$12.braceL); - if (createNewLexicalScope) { - this.enterScope(0); - } - while (this.type !== types$12.braceR) { - var stmt = this.parseStatement(null); - node.body.push(stmt); - } - if (exitStrict) { - this.strict = false; - } - this.next(); - if (createNewLexicalScope) { - this.exitScope(); - } - return this.finishNode(node, "BlockStatement"); - }; - pp$82.parseFor = function(node, init) { - node.init = init; - this.expect(types$12.semi); - node.test = this.type === types$12.semi ? null : this.parseExpression(); - this.expect(types$12.semi); - node.update = this.type === types$12.parenR ? null : this.parseExpression(); - this.expect(types$12.parenR); - node.body = this.parseStatement("for"); - this.exitScope(); - this.labels.pop(); - return this.finishNode(node, "ForStatement"); - }; - pp$82.parseForIn = function(node, init) { - var isForIn = this.type === types$12._in; - this.next(); - if (init.type === "VariableDeclaration" && init.declarations[0].init != null && (!isForIn || this.options.ecmaVersion < 8 || this.strict || init.kind !== "var" || init.declarations[0].id.type !== "Identifier")) { - this.raise( - init.start, - (isForIn ? "for-in" : "for-of") + " loop variable declaration may not have an initializer" - ); - } - node.left = init; - node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign(); - this.expect(types$12.parenR); - node.body = this.parseStatement("for"); - this.exitScope(); - this.labels.pop(); - return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement"); - }; - pp$82.parseVar = function(node, isFor, kind, allowMissingInitializer) { - node.declarations = []; - node.kind = kind; - for (; ; ) { - var decl = this.startNode(); - this.parseVarId(decl, kind); - if (this.eat(types$12.eq)) { - decl.init = this.parseMaybeAssign(isFor); - } else if (!allowMissingInitializer && kind === "const" && !(this.type === types$12._in || this.options.ecmaVersion >= 6 && this.isContextual("of"))) { - this.unexpected(); - } else if (!allowMissingInitializer && (kind === "using" || kind === "await using") && this.options.ecmaVersion >= 17 && this.type !== types$12._in && !this.isContextual("of")) { - this.raise(this.lastTokEnd, "Missing initializer in " + kind + " declaration"); - } else if (!allowMissingInitializer && decl.id.type !== "Identifier" && !(isFor && (this.type === types$12._in || this.isContextual("of")))) { - this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value"); - } else { - decl.init = null; - } - node.declarations.push(this.finishNode(decl, "VariableDeclarator")); - if (!this.eat(types$12.comma)) { - break; - } - } - return node; - }; - pp$82.parseVarId = function(decl, kind) { - decl.id = kind === "using" || kind === "await using" ? this.parseIdent() : this.parseBindingAtom(); - this.checkLValPattern(decl.id, kind === "var" ? BIND_VAR2 : BIND_LEXICAL2, false); - }; - var FUNC_STATEMENT2 = 1, FUNC_HANGING_STATEMENT2 = 2, FUNC_NULLABLE_ID2 = 4; - pp$82.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) { - this.initFunction(node); - if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) { - if (this.type === types$12.star && statement & FUNC_HANGING_STATEMENT2) { - this.unexpected(); - } - node.generator = this.eat(types$12.star); - } - if (this.options.ecmaVersion >= 8) { - node.async = !!isAsync; - } - if (statement & FUNC_STATEMENT2) { - node.id = statement & FUNC_NULLABLE_ID2 && this.type !== types$12.name ? null : this.parseIdent(); - if (node.id && !(statement & FUNC_HANGING_STATEMENT2)) { - this.checkLValSimple(node.id, this.strict || node.generator || node.async ? this.treatFunctionsAsVar ? BIND_VAR2 : BIND_LEXICAL2 : BIND_FUNCTION2); - } - } - var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - this.enterScope(functionFlags2(node.async, node.generator)); - if (!(statement & FUNC_STATEMENT2)) { - node.id = this.type === types$12.name ? this.parseIdent() : null; - } - this.parseFunctionParams(node); - this.parseFunctionBody(node, allowExpressionBody, false, forInit); - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.finishNode(node, statement & FUNC_STATEMENT2 ? "FunctionDeclaration" : "FunctionExpression"); - }; - pp$82.parseFunctionParams = function(node) { - this.expect(types$12.parenL); - node.params = this.parseBindingList(types$12.parenR, false, this.options.ecmaVersion >= 8); - this.checkYieldAwaitInDefaultParams(); - }; - pp$82.parseClass = function(node, isStatement) { - this.next(); - var oldStrict = this.strict; - this.strict = true; - this.parseClassId(node, isStatement); - this.parseClassSuper(node); - var privateNameMap = this.enterClassBody(); - var classBody = this.startNode(); - var hadConstructor = false; - classBody.body = []; - this.expect(types$12.braceL); - while (this.type !== types$12.braceR) { - var element = this.parseClassElement(node.superClass !== null); - if (element) { - classBody.body.push(element); - if (element.type === "MethodDefinition" && element.kind === "constructor") { - if (hadConstructor) { - this.raiseRecoverable(element.start, "Duplicate constructor in the same class"); - } - hadConstructor = true; - } else if (element.key && element.key.type === "PrivateIdentifier" && isPrivateNameConflicted2(privateNameMap, element)) { - this.raiseRecoverable(element.key.start, "Identifier '#" + element.key.name + "' has already been declared"); - } - } - } - this.strict = oldStrict; - this.next(); - node.body = this.finishNode(classBody, "ClassBody"); - this.exitClassBody(); - return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression"); - }; - pp$82.parseClassElement = function(constructorAllowsSuper) { - if (this.eat(types$12.semi)) { - return null; - } - var ecmaVersion3 = this.options.ecmaVersion; - var node = this.startNode(); - var keyName = ""; - var isGenerator = false; - var isAsync = false; - var kind = "method"; - var isStatic = false; - if (this.eatContextual("static")) { - if (ecmaVersion3 >= 13 && this.eat(types$12.braceL)) { - this.parseClassStaticBlock(node); - return node; - } - if (this.isClassElementNameStart() || this.type === types$12.star) { - isStatic = true; - } else { - keyName = "static"; - } - } - node.static = isStatic; - if (!keyName && ecmaVersion3 >= 8 && this.eatContextual("async")) { - if ((this.isClassElementNameStart() || this.type === types$12.star) && !this.canInsertSemicolon()) { - isAsync = true; - } else { - keyName = "async"; - } - } - if (!keyName && (ecmaVersion3 >= 9 || !isAsync) && this.eat(types$12.star)) { - isGenerator = true; - } - if (!keyName && !isAsync && !isGenerator) { - var lastValue = this.value; - if (this.eatContextual("get") || this.eatContextual("set")) { - if (this.isClassElementNameStart()) { - kind = lastValue; - } else { - keyName = lastValue; - } - } - } - if (keyName) { - node.computed = false; - node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc); - node.key.name = keyName; - this.finishNode(node.key, "Identifier"); - } else { - this.parseClassElementName(node); - } - if (ecmaVersion3 < 13 || this.type === types$12.parenL || kind !== "method" || isGenerator || isAsync) { - var isConstructor = !node.static && checkKeyName2(node, "constructor"); - var allowsDirectSuper = isConstructor && constructorAllowsSuper; - if (isConstructor && kind !== "method") { - this.raise(node.key.start, "Constructor can't have get/set modifier"); - } - node.kind = isConstructor ? "constructor" : kind; - this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper); - } else { - this.parseClassField(node); - } - return node; - }; - pp$82.isClassElementNameStart = function() { - return this.type === types$12.name || this.type === types$12.privateId || this.type === types$12.num || this.type === types$12.string || this.type === types$12.bracketL || this.type.keyword; - }; - pp$82.parseClassElementName = function(element) { - if (this.type === types$12.privateId) { - if (this.value === "constructor") { - this.raise(this.start, "Classes can't have an element named '#constructor'"); - } - element.computed = false; - element.key = this.parsePrivateIdent(); - } else { - this.parsePropertyName(element); - } - }; - pp$82.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) { - var key = method.key; - if (method.kind === "constructor") { - if (isGenerator) { - this.raise(key.start, "Constructor can't be a generator"); - } - if (isAsync) { - this.raise(key.start, "Constructor can't be an async method"); - } - } else if (method.static && checkKeyName2(method, "prototype")) { - this.raise(key.start, "Classes may not have a static property named prototype"); - } - var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper); - if (method.kind === "get" && value.params.length !== 0) { - this.raiseRecoverable(value.start, "getter should have no params"); - } - if (method.kind === "set" && value.params.length !== 1) { - this.raiseRecoverable(value.start, "setter should have exactly one param"); - } - if (method.kind === "set" && value.params[0].type === "RestElement") { - this.raiseRecoverable(value.params[0].start, "Setter cannot use rest params"); - } - return this.finishNode(method, "MethodDefinition"); - }; - pp$82.parseClassField = function(field) { - if (checkKeyName2(field, "constructor")) { - this.raise(field.key.start, "Classes can't have a field named 'constructor'"); - } else if (field.static && checkKeyName2(field, "prototype")) { - this.raise(field.key.start, "Classes can't have a static field named 'prototype'"); - } - if (this.eat(types$12.eq)) { - this.enterScope(SCOPE_CLASS_FIELD_INIT2 | SCOPE_SUPER2); - field.value = this.parseMaybeAssign(); - this.exitScope(); - } else { - field.value = null; - } - this.semicolon(); - return this.finishNode(field, "PropertyDefinition"); - }; - pp$82.parseClassStaticBlock = function(node) { - node.body = []; - var oldLabels = this.labels; - this.labels = []; - this.enterScope(SCOPE_CLASS_STATIC_BLOCK2 | SCOPE_SUPER2); - while (this.type !== types$12.braceR) { - var stmt = this.parseStatement(null); - node.body.push(stmt); - } - this.next(); - this.exitScope(); - this.labels = oldLabels; - return this.finishNode(node, "StaticBlock"); - }; - pp$82.parseClassId = function(node, isStatement) { - if (this.type === types$12.name) { - node.id = this.parseIdent(); - if (isStatement) { - this.checkLValSimple(node.id, BIND_LEXICAL2, false); - } - } else { - if (isStatement === true) { - this.unexpected(); - } - node.id = null; - } - }; - pp$82.parseClassSuper = function(node) { - node.superClass = this.eat(types$12._extends) ? this.parseExprSubscripts(null, false) : null; - }; - pp$82.enterClassBody = function() { - var element = { declared: /* @__PURE__ */ Object.create(null), used: [] }; - this.privateNameStack.push(element); - return element.declared; - }; - pp$82.exitClassBody = function() { - var ref3 = this.privateNameStack.pop(); - var declared = ref3.declared; - var used = ref3.used; - if (!this.options.checkPrivateFields) { - return; - } - var len = this.privateNameStack.length; - var parent = len === 0 ? null : this.privateNameStack[len - 1]; - for (var i3 = 0; i3 < used.length; ++i3) { - var id = used[i3]; - if (!hasOwn2(declared, id.name)) { - if (parent) { - parent.used.push(id); - } else { - this.raiseRecoverable(id.start, "Private field '#" + id.name + "' must be declared in an enclosing class"); - } - } - } - }; - function isPrivateNameConflicted2(privateNameMap, element) { - var name = element.key.name; - var curr = privateNameMap[name]; - var next = "true"; - if (element.type === "MethodDefinition" && (element.kind === "get" || element.kind === "set")) { - next = (element.static ? "s" : "i") + element.kind; - } - if (curr === "iget" && next === "iset" || curr === "iset" && next === "iget" || curr === "sget" && next === "sset" || curr === "sset" && next === "sget") { - privateNameMap[name] = "true"; - return false; - } else if (!curr) { - privateNameMap[name] = next; - return false; - } else { - return true; - } - } - function checkKeyName2(node, name) { - var computed = node.computed; - var key = node.key; - return !computed && (key.type === "Identifier" && key.name === name || key.type === "Literal" && key.value === name); - } - pp$82.parseExportAllDeclaration = function(node, exports3) { - if (this.options.ecmaVersion >= 11) { - if (this.eatContextual("as")) { - node.exported = this.parseModuleExportName(); - this.checkExport(exports3, node.exported, this.lastTokStart); - } else { - node.exported = null; - } - } - this.expectContextual("from"); - if (this.type !== types$12.string) { - this.unexpected(); - } - node.source = this.parseExprAtom(); - if (this.options.ecmaVersion >= 16) { - node.attributes = this.parseWithClause(); - } - this.semicolon(); - return this.finishNode(node, "ExportAllDeclaration"); - }; - pp$82.parseExport = function(node, exports3) { - this.next(); - if (this.eat(types$12.star)) { - return this.parseExportAllDeclaration(node, exports3); - } - if (this.eat(types$12._default)) { - this.checkExport(exports3, "default", this.lastTokStart); - node.declaration = this.parseExportDefaultDeclaration(); - return this.finishNode(node, "ExportDefaultDeclaration"); - } - if (this.shouldParseExportStatement()) { - node.declaration = this.parseExportDeclaration(node); - if (node.declaration.type === "VariableDeclaration") { - this.checkVariableExport(exports3, node.declaration.declarations); - } else { - this.checkExport(exports3, node.declaration.id, node.declaration.id.start); - } - node.specifiers = []; - node.source = null; - if (this.options.ecmaVersion >= 16) { - node.attributes = []; - } - } else { - node.declaration = null; - node.specifiers = this.parseExportSpecifiers(exports3); - if (this.eatContextual("from")) { - if (this.type !== types$12.string) { - this.unexpected(); - } - node.source = this.parseExprAtom(); - if (this.options.ecmaVersion >= 16) { - node.attributes = this.parseWithClause(); - } - } else { - for (var i3 = 0, list3 = node.specifiers; i3 < list3.length; i3 += 1) { - var spec = list3[i3]; - this.checkUnreserved(spec.local); - this.checkLocalExport(spec.local); - if (spec.local.type === "Literal") { - this.raise(spec.local.start, "A string literal cannot be used as an exported binding without `from`."); - } - } - node.source = null; - if (this.options.ecmaVersion >= 16) { - node.attributes = []; - } - } - this.semicolon(); - } - return this.finishNode(node, "ExportNamedDeclaration"); - }; - pp$82.parseExportDeclaration = function(node) { - return this.parseStatement(null); - }; - pp$82.parseExportDefaultDeclaration = function() { - var isAsync; - if (this.type === types$12._function || (isAsync = this.isAsyncFunction())) { - var fNode = this.startNode(); - this.next(); - if (isAsync) { - this.next(); - } - return this.parseFunction(fNode, FUNC_STATEMENT2 | FUNC_NULLABLE_ID2, false, isAsync); - } else if (this.type === types$12._class) { - var cNode = this.startNode(); - return this.parseClass(cNode, "nullableID"); - } else { - var declaration = this.parseMaybeAssign(); - this.semicolon(); - return declaration; - } - }; - pp$82.checkExport = function(exports3, name, pos) { - if (!exports3) { - return; - } - if (typeof name !== "string") { - name = name.type === "Identifier" ? name.name : name.value; - } - if (hasOwn2(exports3, name)) { - this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); - } - exports3[name] = true; - }; - pp$82.checkPatternExport = function(exports3, pat) { - var type = pat.type; - if (type === "Identifier") { - this.checkExport(exports3, pat, pat.start); - } else if (type === "ObjectPattern") { - for (var i3 = 0, list3 = pat.properties; i3 < list3.length; i3 += 1) { - var prop = list3[i3]; - this.checkPatternExport(exports3, prop); - } - } else if (type === "ArrayPattern") { - for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) { - var elt = list$1[i$1]; - if (elt) { - this.checkPatternExport(exports3, elt); - } - } - } else if (type === "Property") { - this.checkPatternExport(exports3, pat.value); - } else if (type === "AssignmentPattern") { - this.checkPatternExport(exports3, pat.left); - } else if (type === "RestElement") { - this.checkPatternExport(exports3, pat.argument); - } - }; - pp$82.checkVariableExport = function(exports3, decls) { - if (!exports3) { - return; - } - for (var i3 = 0, list3 = decls; i3 < list3.length; i3 += 1) { - var decl = list3[i3]; - this.checkPatternExport(exports3, decl.id); - } - }; - pp$82.shouldParseExportStatement = function() { - return this.type.keyword === "var" || this.type.keyword === "const" || this.type.keyword === "class" || this.type.keyword === "function" || this.isLet() || this.isAsyncFunction(); - }; - pp$82.parseExportSpecifier = function(exports3) { - var node = this.startNode(); - node.local = this.parseModuleExportName(); - node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local; - this.checkExport( - exports3, - node.exported, - node.exported.start - ); - return this.finishNode(node, "ExportSpecifier"); - }; - pp$82.parseExportSpecifiers = function(exports3) { - var nodes = [], first = true; - this.expect(types$12.braceL); - while (!this.eat(types$12.braceR)) { - if (!first) { - this.expect(types$12.comma); - if (this.afterTrailingComma(types$12.braceR)) { - break; - } - } else { - first = false; - } - nodes.push(this.parseExportSpecifier(exports3)); - } - return nodes; - }; - pp$82.parseImport = function(node) { - this.next(); - if (this.type === types$12.string) { - node.specifiers = empty$12; - node.source = this.parseExprAtom(); - } else { - node.specifiers = this.parseImportSpecifiers(); - this.expectContextual("from"); - node.source = this.type === types$12.string ? this.parseExprAtom() : this.unexpected(); - } - if (this.options.ecmaVersion >= 16) { - node.attributes = this.parseWithClause(); - } - this.semicolon(); - return this.finishNode(node, "ImportDeclaration"); - }; - pp$82.parseImportSpecifier = function() { - var node = this.startNode(); - node.imported = this.parseModuleExportName(); - if (this.eatContextual("as")) { - node.local = this.parseIdent(); - } else { - this.checkUnreserved(node.imported); - node.local = node.imported; - } - this.checkLValSimple(node.local, BIND_LEXICAL2); - return this.finishNode(node, "ImportSpecifier"); - }; - pp$82.parseImportDefaultSpecifier = function() { - var node = this.startNode(); - node.local = this.parseIdent(); - this.checkLValSimple(node.local, BIND_LEXICAL2); - return this.finishNode(node, "ImportDefaultSpecifier"); - }; - pp$82.parseImportNamespaceSpecifier = function() { - var node = this.startNode(); - this.next(); - this.expectContextual("as"); - node.local = this.parseIdent(); - this.checkLValSimple(node.local, BIND_LEXICAL2); - return this.finishNode(node, "ImportNamespaceSpecifier"); - }; - pp$82.parseImportSpecifiers = function() { - var nodes = [], first = true; - if (this.type === types$12.name) { - nodes.push(this.parseImportDefaultSpecifier()); - if (!this.eat(types$12.comma)) { - return nodes; - } - } - if (this.type === types$12.star) { - nodes.push(this.parseImportNamespaceSpecifier()); - return nodes; - } - this.expect(types$12.braceL); - while (!this.eat(types$12.braceR)) { - if (!first) { - this.expect(types$12.comma); - if (this.afterTrailingComma(types$12.braceR)) { - break; - } - } else { - first = false; - } - nodes.push(this.parseImportSpecifier()); - } - return nodes; - }; - pp$82.parseWithClause = function() { - var nodes = []; - if (!this.eat(types$12._with)) { - return nodes; - } - this.expect(types$12.braceL); - var attributeKeys = {}; - var first = true; - while (!this.eat(types$12.braceR)) { - if (!first) { - this.expect(types$12.comma); - if (this.afterTrailingComma(types$12.braceR)) { - break; - } - } else { - first = false; - } - var attr = this.parseImportAttribute(); - var keyName = attr.key.type === "Identifier" ? attr.key.name : attr.key.value; - if (hasOwn2(attributeKeys, keyName)) { - this.raiseRecoverable(attr.key.start, "Duplicate attribute key '" + keyName + "'"); - } - attributeKeys[keyName] = true; - nodes.push(attr); - } - return nodes; - }; - pp$82.parseImportAttribute = function() { - var node = this.startNode(); - node.key = this.type === types$12.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never"); - this.expect(types$12.colon); - if (this.type !== types$12.string) { - this.unexpected(); - } - node.value = this.parseExprAtom(); - return this.finishNode(node, "ImportAttribute"); - }; - pp$82.parseModuleExportName = function() { - if (this.options.ecmaVersion >= 13 && this.type === types$12.string) { - var stringLiteral = this.parseLiteral(this.value); - if (loneSurrogate2.test(stringLiteral.value)) { - this.raise(stringLiteral.start, "An export name cannot include a lone surrogate."); - } - return stringLiteral; - } - return this.parseIdent(true); - }; - pp$82.adaptDirectivePrologue = function(statements) { - for (var i3 = 0; i3 < statements.length && this.isDirectiveCandidate(statements[i3]); ++i3) { - statements[i3].directive = statements[i3].expression.raw.slice(1, -1); - } - }; - pp$82.isDirectiveCandidate = function(statement) { - return this.options.ecmaVersion >= 5 && statement.type === "ExpressionStatement" && statement.expression.type === "Literal" && typeof statement.expression.value === "string" && // Reject parenthesized strings. - (this.input[statement.start] === '"' || this.input[statement.start] === "'"); - }; - var pp$72 = Parser3.prototype; - pp$72.toAssignable = function(node, isBinding, refDestructuringErrors) { - if (this.options.ecmaVersion >= 6 && node) { - switch (node.type) { - case "Identifier": - if (this.inAsync && node.name === "await") { - this.raise(node.start, "Cannot use 'await' as identifier inside an async function"); - } - break; - case "ObjectPattern": - case "ArrayPattern": - case "AssignmentPattern": - case "RestElement": - break; - case "ObjectExpression": - node.type = "ObjectPattern"; - if (refDestructuringErrors) { - this.checkPatternErrors(refDestructuringErrors, true); - } - for (var i3 = 0, list3 = node.properties; i3 < list3.length; i3 += 1) { - var prop = list3[i3]; - this.toAssignable(prop, isBinding); - if (prop.type === "RestElement" && (prop.argument.type === "ArrayPattern" || prop.argument.type === "ObjectPattern")) { - this.raise(prop.argument.start, "Unexpected token"); - } - } - break; - case "Property": - if (node.kind !== "init") { - this.raise(node.key.start, "Object pattern can't contain getter or setter"); - } - this.toAssignable(node.value, isBinding); - break; - case "ArrayExpression": - node.type = "ArrayPattern"; - if (refDestructuringErrors) { - this.checkPatternErrors(refDestructuringErrors, true); - } - this.toAssignableList(node.elements, isBinding); - break; - case "SpreadElement": - node.type = "RestElement"; - this.toAssignable(node.argument, isBinding); - if (node.argument.type === "AssignmentPattern") { - this.raise(node.argument.start, "Rest elements cannot have a default value"); - } - break; - case "AssignmentExpression": - if (node.operator !== "=") { - this.raise(node.left.end, "Only '=' operator can be used for specifying default value."); - } - node.type = "AssignmentPattern"; - delete node.operator; - this.toAssignable(node.left, isBinding); - break; - case "ParenthesizedExpression": - this.toAssignable(node.expression, isBinding, refDestructuringErrors); - break; - case "ChainExpression": - this.raiseRecoverable(node.start, "Optional chaining cannot appear in left-hand side"); - break; - case "MemberExpression": - if (!isBinding) { - break; - } - default: - this.raise(node.start, "Assigning to rvalue"); - } - } else if (refDestructuringErrors) { - this.checkPatternErrors(refDestructuringErrors, true); - } - return node; - }; - pp$72.toAssignableList = function(exprList, isBinding) { - var end = exprList.length; - for (var i3 = 0; i3 < end; i3++) { - var elt = exprList[i3]; - if (elt) { - this.toAssignable(elt, isBinding); - } - } - if (end) { - var last = exprList[end - 1]; - if (this.options.ecmaVersion === 6 && isBinding && last && last.type === "RestElement" && last.argument.type !== "Identifier") { - this.unexpected(last.argument.start); - } - } - return exprList; - }; - pp$72.parseSpread = function(refDestructuringErrors) { - var node = this.startNode(); - this.next(); - node.argument = this.parseMaybeAssign(false, refDestructuringErrors); - return this.finishNode(node, "SpreadElement"); - }; - pp$72.parseRestBinding = function() { - var node = this.startNode(); - this.next(); - if (this.options.ecmaVersion === 6 && this.type !== types$12.name) { - this.unexpected(); - } - node.argument = this.parseBindingAtom(); - return this.finishNode(node, "RestElement"); - }; - pp$72.parseBindingAtom = function() { - if (this.options.ecmaVersion >= 6) { - switch (this.type) { - case types$12.bracketL: - var node = this.startNode(); - this.next(); - node.elements = this.parseBindingList(types$12.bracketR, true, true); - return this.finishNode(node, "ArrayPattern"); - case types$12.braceL: - return this.parseObj(true); - } - } - return this.parseIdent(); - }; - pp$72.parseBindingList = function(close, allowEmpty, allowTrailingComma, allowModifiers) { - var elts = [], first = true; - while (!this.eat(close)) { - if (first) { - first = false; - } else { - this.expect(types$12.comma); - } - if (allowEmpty && this.type === types$12.comma) { - elts.push(null); - } else if (allowTrailingComma && this.afterTrailingComma(close)) { - break; - } else if (this.type === types$12.ellipsis) { - var rest = this.parseRestBinding(); - this.parseBindingListItem(rest); - elts.push(rest); - if (this.type === types$12.comma) { - this.raiseRecoverable(this.start, "Comma is not permitted after the rest element"); - } - this.expect(close); - break; - } else { - elts.push(this.parseAssignableListItem(allowModifiers)); - } - } - return elts; - }; - pp$72.parseAssignableListItem = function(allowModifiers) { - var elem = this.parseMaybeDefault(this.start, this.startLoc); - this.parseBindingListItem(elem); - return elem; - }; - pp$72.parseBindingListItem = function(param) { - return param; - }; - pp$72.parseMaybeDefault = function(startPos, startLoc, left) { - left = left || this.parseBindingAtom(); - if (this.options.ecmaVersion < 6 || !this.eat(types$12.eq)) { - return left; - } - var node = this.startNodeAt(startPos, startLoc); - node.left = left; - node.right = this.parseMaybeAssign(); - return this.finishNode(node, "AssignmentPattern"); - }; - pp$72.checkLValSimple = function(expr, bindingType, checkClashes) { - if (bindingType === void 0) bindingType = BIND_NONE2; - var isBind = bindingType !== BIND_NONE2; - switch (expr.type) { - case "Identifier": - if (this.strict && this.reservedWordsStrictBind.test(expr.name)) { - this.raiseRecoverable(expr.start, (isBind ? "Binding " : "Assigning to ") + expr.name + " in strict mode"); - } - if (isBind) { - if (bindingType === BIND_LEXICAL2 && expr.name === "let") { - this.raiseRecoverable(expr.start, "let is disallowed as a lexically bound name"); - } - if (checkClashes) { - if (hasOwn2(checkClashes, expr.name)) { - this.raiseRecoverable(expr.start, "Argument name clash"); - } - checkClashes[expr.name] = true; - } - if (bindingType !== BIND_OUTSIDE2) { - this.declareName(expr.name, bindingType, expr.start); - } - } - break; - case "ChainExpression": - this.raiseRecoverable(expr.start, "Optional chaining cannot appear in left-hand side"); - break; - case "MemberExpression": - if (isBind) { - this.raiseRecoverable(expr.start, "Binding member expression"); - } - break; - case "ParenthesizedExpression": - if (isBind) { - this.raiseRecoverable(expr.start, "Binding parenthesized expression"); - } - return this.checkLValSimple(expr.expression, bindingType, checkClashes); - default: - this.raise(expr.start, (isBind ? "Binding" : "Assigning to") + " rvalue"); - } - }; - pp$72.checkLValPattern = function(expr, bindingType, checkClashes) { - if (bindingType === void 0) bindingType = BIND_NONE2; - switch (expr.type) { - case "ObjectPattern": - for (var i3 = 0, list3 = expr.properties; i3 < list3.length; i3 += 1) { - var prop = list3[i3]; - this.checkLValInnerPattern(prop, bindingType, checkClashes); - } - break; - case "ArrayPattern": - for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) { - var elem = list$1[i$1]; - if (elem) { - this.checkLValInnerPattern(elem, bindingType, checkClashes); - } - } - break; - default: - this.checkLValSimple(expr, bindingType, checkClashes); - } - }; - pp$72.checkLValInnerPattern = function(expr, bindingType, checkClashes) { - if (bindingType === void 0) bindingType = BIND_NONE2; - switch (expr.type) { - case "Property": - this.checkLValInnerPattern(expr.value, bindingType, checkClashes); - break; - case "AssignmentPattern": - this.checkLValPattern(expr.left, bindingType, checkClashes); - break; - case "RestElement": - this.checkLValPattern(expr.argument, bindingType, checkClashes); - break; - default: - this.checkLValPattern(expr, bindingType, checkClashes); - } - }; - var TokContext3 = function TokContext4(token, isExpr, preserveSpace, override, generator) { - this.token = token; - this.isExpr = !!isExpr; - this.preserveSpace = !!preserveSpace; - this.override = override; - this.generator = !!generator; - }; - var types2 = { - b_stat: new TokContext3("{", false), - b_expr: new TokContext3("{", true), - b_tmpl: new TokContext3("${", false), - p_stat: new TokContext3("(", false), - p_expr: new TokContext3("(", true), - q_tmpl: new TokContext3("`", true, true, function(p) { - return p.tryReadTemplateToken(); - }), - f_stat: new TokContext3("function", false), - f_expr: new TokContext3("function", true), - f_expr_gen: new TokContext3("function", true, false, null, true), - f_gen: new TokContext3("function", false, false, null, true) - }; - var pp$62 = Parser3.prototype; - pp$62.initialContext = function() { - return [types2.b_stat]; - }; - pp$62.curContext = function() { - return this.context[this.context.length - 1]; - }; - pp$62.braceIsBlock = function(prevType) { - var parent = this.curContext(); - if (parent === types2.f_expr || parent === types2.f_stat) { - return true; - } - if (prevType === types$12.colon && (parent === types2.b_stat || parent === types2.b_expr)) { - return !parent.isExpr; - } - if (prevType === types$12._return || prevType === types$12.name && this.exprAllowed) { - return lineBreak2.test(this.input.slice(this.lastTokEnd, this.start)); - } - if (prevType === types$12._else || prevType === types$12.semi || prevType === types$12.eof || prevType === types$12.parenR || prevType === types$12.arrow) { - return true; - } - if (prevType === types$12.braceL) { - return parent === types2.b_stat; - } - if (prevType === types$12._var || prevType === types$12._const || prevType === types$12.name) { - return false; - } - return !this.exprAllowed; - }; - pp$62.inGeneratorContext = function() { - for (var i3 = this.context.length - 1; i3 >= 1; i3--) { - var context = this.context[i3]; - if (context.token === "function") { - return context.generator; - } - } - return false; - }; - pp$62.updateContext = function(prevType) { - var update, type = this.type; - if (type.keyword && prevType === types$12.dot) { - this.exprAllowed = false; - } else if (update = type.updateContext) { - update.call(this, prevType); - } else { - this.exprAllowed = type.beforeExpr; - } - }; - pp$62.overrideContext = function(tokenCtx) { - if (this.curContext() !== tokenCtx) { - this.context[this.context.length - 1] = tokenCtx; - } - }; - types$12.parenR.updateContext = types$12.braceR.updateContext = function() { - if (this.context.length === 1) { - this.exprAllowed = true; - return; - } - var out = this.context.pop(); - if (out === types2.b_stat && this.curContext().token === "function") { - out = this.context.pop(); - } - this.exprAllowed = !out.isExpr; - }; - types$12.braceL.updateContext = function(prevType) { - this.context.push(this.braceIsBlock(prevType) ? types2.b_stat : types2.b_expr); - this.exprAllowed = true; - }; - types$12.dollarBraceL.updateContext = function() { - this.context.push(types2.b_tmpl); - this.exprAllowed = true; - }; - types$12.parenL.updateContext = function(prevType) { - var statementParens = prevType === types$12._if || prevType === types$12._for || prevType === types$12._with || prevType === types$12._while; - this.context.push(statementParens ? types2.p_stat : types2.p_expr); - this.exprAllowed = true; - }; - types$12.incDec.updateContext = function() { - }; - types$12._function.updateContext = types$12._class.updateContext = function(prevType) { - if (prevType.beforeExpr && prevType !== types$12._else && !(prevType === types$12.semi && this.curContext() !== types2.p_stat) && !(prevType === types$12._return && lineBreak2.test(this.input.slice(this.lastTokEnd, this.start))) && !((prevType === types$12.colon || prevType === types$12.braceL) && this.curContext() === types2.b_stat)) { - this.context.push(types2.f_expr); - } else { - this.context.push(types2.f_stat); - } - this.exprAllowed = false; - }; - types$12.colon.updateContext = function() { - if (this.curContext().token === "function") { - this.context.pop(); - } - this.exprAllowed = true; - }; - types$12.backQuote.updateContext = function() { - if (this.curContext() === types2.q_tmpl) { - this.context.pop(); - } else { - this.context.push(types2.q_tmpl); - } - this.exprAllowed = false; - }; - types$12.star.updateContext = function(prevType) { - if (prevType === types$12._function) { - var index = this.context.length - 1; - if (this.context[index] === types2.f_expr) { - this.context[index] = types2.f_expr_gen; - } else { - this.context[index] = types2.f_gen; - } - } - this.exprAllowed = true; - }; - types$12.name.updateContext = function(prevType) { - var allowed = false; - if (this.options.ecmaVersion >= 6 && prevType !== types$12.dot) { - if (this.value === "of" && !this.exprAllowed || this.value === "yield" && this.inGeneratorContext()) { - allowed = true; - } - } - this.exprAllowed = allowed; - }; - var pp$52 = Parser3.prototype; - pp$52.checkPropClash = function(prop, propHash, refDestructuringErrors) { - if (this.options.ecmaVersion >= 9 && prop.type === "SpreadElement") { - return; - } - if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand)) { - return; - } - var key = prop.key; - var name; - switch (key.type) { - case "Identifier": - name = key.name; - break; - case "Literal": - name = String(key.value); - break; - default: - return; - } - var kind = prop.kind; - if (this.options.ecmaVersion >= 6) { - if (name === "__proto__" && kind === "init") { - if (propHash.proto) { - if (refDestructuringErrors) { - if (refDestructuringErrors.doubleProto < 0) { - refDestructuringErrors.doubleProto = key.start; - } - } else { - this.raiseRecoverable(key.start, "Redefinition of __proto__ property"); - } - } - propHash.proto = true; - } - return; - } - name = "$" + name; - var other = propHash[name]; - if (other) { - var redefinition; - if (kind === "init") { - redefinition = this.strict && other.init || other.get || other.set; - } else { - redefinition = other.init || other[kind]; - } - if (redefinition) { - this.raiseRecoverable(key.start, "Redefinition of property"); - } - } else { - other = propHash[name] = { - init: false, - get: false, - set: false - }; - } - other[kind] = true; - }; - pp$52.parseExpression = function(forInit, refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseMaybeAssign(forInit, refDestructuringErrors); - if (this.type === types$12.comma) { - var node = this.startNodeAt(startPos, startLoc); - node.expressions = [expr]; - while (this.eat(types$12.comma)) { - node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); - } - return this.finishNode(node, "SequenceExpression"); - } - return expr; - }; - pp$52.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) { - if (this.isContextual("yield")) { - if (this.inGenerator) { - return this.parseYield(forInit); - } else { - this.exprAllowed = false; - } - } - var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldDoubleProto = -1; - if (refDestructuringErrors) { - oldParenAssign = refDestructuringErrors.parenthesizedAssign; - oldTrailingComma = refDestructuringErrors.trailingComma; - oldDoubleProto = refDestructuringErrors.doubleProto; - refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1; - } else { - refDestructuringErrors = new DestructuringErrors3(); - ownDestructuringErrors = true; - } - var startPos = this.start, startLoc = this.startLoc; - if (this.type === types$12.parenL || this.type === types$12.name) { - this.potentialArrowAt = this.start; - this.potentialArrowInForAwait = forInit === "await"; - } - var left = this.parseMaybeConditional(forInit, refDestructuringErrors); - if (afterLeftParse) { - left = afterLeftParse.call(this, left, startPos, startLoc); - } - if (this.type.isAssign) { - var node = this.startNodeAt(startPos, startLoc); - node.operator = this.value; - if (this.type === types$12.eq) { - left = this.toAssignable(left, false, refDestructuringErrors); - } - if (!ownDestructuringErrors) { - refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1; - } - if (refDestructuringErrors.shorthandAssign >= left.start) { - refDestructuringErrors.shorthandAssign = -1; - } - if (this.type === types$12.eq) { - this.checkLValPattern(left); - } else { - this.checkLValSimple(left); - } - node.left = left; - this.next(); - node.right = this.parseMaybeAssign(forInit); - if (oldDoubleProto > -1) { - refDestructuringErrors.doubleProto = oldDoubleProto; - } - return this.finishNode(node, "AssignmentExpression"); - } else { - if (ownDestructuringErrors) { - this.checkExpressionErrors(refDestructuringErrors, true); - } - } - if (oldParenAssign > -1) { - refDestructuringErrors.parenthesizedAssign = oldParenAssign; - } - if (oldTrailingComma > -1) { - refDestructuringErrors.trailingComma = oldTrailingComma; - } - return left; - }; - pp$52.parseMaybeConditional = function(forInit, refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseExprOps(forInit, refDestructuringErrors); - if (this.checkExpressionErrors(refDestructuringErrors)) { - return expr; - } - if (this.eat(types$12.question)) { - var node = this.startNodeAt(startPos, startLoc); - node.test = expr; - node.consequent = this.parseMaybeAssign(); - this.expect(types$12.colon); - node.alternate = this.parseMaybeAssign(forInit); - return this.finishNode(node, "ConditionalExpression"); - } - return expr; - }; - pp$52.parseExprOps = function(forInit, refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit); - if (this.checkExpressionErrors(refDestructuringErrors)) { - return expr; - } - return expr.start === startPos && expr.type === "ArrowFunctionExpression" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit); - }; - pp$52.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) { - var prec = this.type.binop; - if (prec != null && (!forInit || this.type !== types$12._in)) { - if (prec > minPrec) { - var logical = this.type === types$12.logicalOR || this.type === types$12.logicalAND; - var coalesce = this.type === types$12.coalesce; - if (coalesce) { - prec = types$12.logicalAND.binop; - } - var op = this.value; - this.next(); - var startPos = this.start, startLoc = this.startLoc; - var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit); - var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce); - if (logical && this.type === types$12.coalesce || coalesce && (this.type === types$12.logicalOR || this.type === types$12.logicalAND)) { - this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"); - } - return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit); - } - } - return left; - }; - pp$52.buildBinary = function(startPos, startLoc, left, right, op, logical) { - if (right.type === "PrivateIdentifier") { - this.raise(right.start, "Private identifier can only be left side of binary expression"); - } - var node = this.startNodeAt(startPos, startLoc); - node.left = left; - node.operator = op; - node.right = right; - return this.finishNode(node, logical ? "LogicalExpression" : "BinaryExpression"); - }; - pp$52.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) { - var startPos = this.start, startLoc = this.startLoc, expr; - if (this.isContextual("await") && this.canAwait) { - expr = this.parseAwait(forInit); - sawUnary = true; - } else if (this.type.prefix) { - var node = this.startNode(), update = this.type === types$12.incDec; - node.operator = this.value; - node.prefix = true; - this.next(); - node.argument = this.parseMaybeUnary(null, true, update, forInit); - this.checkExpressionErrors(refDestructuringErrors, true); - if (update) { - this.checkLValSimple(node.argument); - } else if (this.strict && node.operator === "delete" && isLocalVariableAccess2(node.argument)) { - this.raiseRecoverable(node.start, "Deleting local variable in strict mode"); - } else if (node.operator === "delete" && isPrivateFieldAccess2(node.argument)) { - this.raiseRecoverable(node.start, "Private fields can not be deleted"); - } else { - sawUnary = true; - } - expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression"); - } else if (!sawUnary && this.type === types$12.privateId) { - if ((forInit || this.privateNameStack.length === 0) && this.options.checkPrivateFields) { - this.unexpected(); - } - expr = this.parsePrivateIdent(); - if (this.type !== types$12._in) { - this.unexpected(); - } - } else { - expr = this.parseExprSubscripts(refDestructuringErrors, forInit); - if (this.checkExpressionErrors(refDestructuringErrors)) { - return expr; - } - while (this.type.postfix && !this.canInsertSemicolon()) { - var node$1 = this.startNodeAt(startPos, startLoc); - node$1.operator = this.value; - node$1.prefix = false; - node$1.argument = expr; - this.checkLValSimple(expr); - this.next(); - expr = this.finishNode(node$1, "UpdateExpression"); - } - } - if (!incDec && this.eat(types$12.starstar)) { - if (sawUnary) { - this.unexpected(this.lastTokStart); - } else { - return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false, false, forInit), "**", false); - } - } else { - return expr; - } - }; - function isLocalVariableAccess2(node) { - return node.type === "Identifier" || node.type === "ParenthesizedExpression" && isLocalVariableAccess2(node.expression); - } - function isPrivateFieldAccess2(node) { - return node.type === "MemberExpression" && node.property.type === "PrivateIdentifier" || node.type === "ChainExpression" && isPrivateFieldAccess2(node.expression) || node.type === "ParenthesizedExpression" && isPrivateFieldAccess2(node.expression); - } - pp$52.parseExprSubscripts = function(refDestructuringErrors, forInit) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseExprAtom(refDestructuringErrors, forInit); - if (expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")") { - return expr; - } - var result = this.parseSubscripts(expr, startPos, startLoc, false, forInit); - if (refDestructuringErrors && result.type === "MemberExpression") { - if (refDestructuringErrors.parenthesizedAssign >= result.start) { - refDestructuringErrors.parenthesizedAssign = -1; - } - if (refDestructuringErrors.parenthesizedBind >= result.start) { - refDestructuringErrors.parenthesizedBind = -1; - } - if (refDestructuringErrors.trailingComma >= result.start) { - refDestructuringErrors.trailingComma = -1; - } - } - return result; - }; - pp$52.parseSubscripts = function(base2, startPos, startLoc, noCalls, forInit) { - var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base2.type === "Identifier" && base2.name === "async" && this.lastTokEnd === base2.end && !this.canInsertSemicolon() && base2.end - base2.start === 5 && this.potentialArrowAt === base2.start; - var optionalChained = false; - while (true) { - var element = this.parseSubscript(base2, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit); - if (element.optional) { - optionalChained = true; - } - if (element === base2 || element.type === "ArrowFunctionExpression") { - if (optionalChained) { - var chainNode = this.startNodeAt(startPos, startLoc); - chainNode.expression = element; - element = this.finishNode(chainNode, "ChainExpression"); - } - return element; - } - base2 = element; - } - }; - pp$52.shouldParseAsyncArrow = function() { - return !this.canInsertSemicolon() && this.eat(types$12.arrow); - }; - pp$52.parseSubscriptAsyncArrow = function(startPos, startLoc, exprList, forInit) { - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true, forInit); - }; - pp$52.parseSubscript = function(base2, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) { - var optionalSupported = this.options.ecmaVersion >= 11; - var optional2 = optionalSupported && this.eat(types$12.questionDot); - if (noCalls && optional2) { - this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions"); - } - var computed = this.eat(types$12.bracketL); - if (computed || optional2 && this.type !== types$12.parenL && this.type !== types$12.backQuote || this.eat(types$12.dot)) { - var node = this.startNodeAt(startPos, startLoc); - node.object = base2; - if (computed) { - node.property = this.parseExpression(); - this.expect(types$12.bracketR); - } else if (this.type === types$12.privateId && base2.type !== "Super") { - node.property = this.parsePrivateIdent(); - } else { - node.property = this.parseIdent(this.options.allowReserved !== "never"); - } - node.computed = !!computed; - if (optionalSupported) { - node.optional = optional2; - } - base2 = this.finishNode(node, "MemberExpression"); - } else if (!noCalls && this.eat(types$12.parenL)) { - var refDestructuringErrors = new DestructuringErrors3(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - var exprList = this.parseExprList(types$12.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors); - if (maybeAsyncArrow && !optional2 && this.shouldParseAsyncArrow()) { - this.checkPatternErrors(refDestructuringErrors, false); - this.checkYieldAwaitInDefaultParams(); - if (this.awaitIdentPos > 0) { - this.raise(this.awaitIdentPos, "Cannot use 'await' as identifier inside an async function"); - } - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.parseSubscriptAsyncArrow(startPos, startLoc, exprList, forInit); - } - this.checkExpressionErrors(refDestructuringErrors, true); - this.yieldPos = oldYieldPos || this.yieldPos; - this.awaitPos = oldAwaitPos || this.awaitPos; - this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos; - var node$1 = this.startNodeAt(startPos, startLoc); - node$1.callee = base2; - node$1.arguments = exprList; - if (optionalSupported) { - node$1.optional = optional2; - } - base2 = this.finishNode(node$1, "CallExpression"); - } else if (this.type === types$12.backQuote) { - if (optional2 || optionalChained) { - this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions"); - } - var node$2 = this.startNodeAt(startPos, startLoc); - node$2.tag = base2; - node$2.quasi = this.parseTemplate({ isTagged: true }); - base2 = this.finishNode(node$2, "TaggedTemplateExpression"); - } - return base2; - }; - pp$52.parseExprAtom = function(refDestructuringErrors, forInit, forNew) { - if (this.type === types$12.slash) { - this.readRegexp(); - } - var node, canBeArrow = this.potentialArrowAt === this.start; - switch (this.type) { - case types$12._super: - if (!this.allowSuper) { - this.raise(this.start, "'super' keyword outside a method"); - } - node = this.startNode(); - this.next(); - if (this.type === types$12.parenL && !this.allowDirectSuper) { - this.raise(node.start, "super() call outside constructor of a subclass"); - } - if (this.type !== types$12.dot && this.type !== types$12.bracketL && this.type !== types$12.parenL) { - this.unexpected(); - } - return this.finishNode(node, "Super"); - case types$12._this: - node = this.startNode(); - this.next(); - return this.finishNode(node, "ThisExpression"); - case types$12.name: - var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc; - var id = this.parseIdent(false); - if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types$12._function)) { - this.overrideContext(types2.f_expr); - return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit); - } - if (canBeArrow && !this.canInsertSemicolon()) { - if (this.eat(types$12.arrow)) { - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit); - } - if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types$12.name && !containsEsc && (!this.potentialArrowInForAwait || this.value !== "of" || this.containsEsc)) { - id = this.parseIdent(false); - if (this.canInsertSemicolon() || !this.eat(types$12.arrow)) { - this.unexpected(); - } - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit); - } - } - return id; - case types$12.regexp: - var value = this.value; - node = this.parseLiteral(value.value); - node.regex = { pattern: value.pattern, flags: value.flags }; - return node; - case types$12.num: - case types$12.string: - return this.parseLiteral(this.value); - case types$12._null: - case types$12._true: - case types$12._false: - node = this.startNode(); - node.value = this.type === types$12._null ? null : this.type === types$12._true; - node.raw = this.type.keyword; - this.next(); - return this.finishNode(node, "Literal"); - case types$12.parenL: - var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit); - if (refDestructuringErrors) { - if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr)) { - refDestructuringErrors.parenthesizedAssign = start; - } - if (refDestructuringErrors.parenthesizedBind < 0) { - refDestructuringErrors.parenthesizedBind = start; - } - } - return expr; - case types$12.bracketL: - node = this.startNode(); - this.next(); - node.elements = this.parseExprList(types$12.bracketR, true, true, refDestructuringErrors); - return this.finishNode(node, "ArrayExpression"); - case types$12.braceL: - this.overrideContext(types2.b_expr); - return this.parseObj(false, refDestructuringErrors); - case types$12._function: - node = this.startNode(); - this.next(); - return this.parseFunction(node, 0); - case types$12._class: - return this.parseClass(this.startNode(), false); - case types$12._new: - return this.parseNew(); - case types$12.backQuote: - return this.parseTemplate(); - case types$12._import: - if (this.options.ecmaVersion >= 11) { - return this.parseExprImport(forNew); - } else { - return this.unexpected(); - } - default: - return this.parseExprAtomDefault(); - } - }; - pp$52.parseExprAtomDefault = function() { - this.unexpected(); - }; - pp$52.parseExprImport = function(forNew) { - var node = this.startNode(); - if (this.containsEsc) { - this.raiseRecoverable(this.start, "Escape sequence in keyword import"); - } - this.next(); - if (this.type === types$12.parenL && !forNew) { - return this.parseDynamicImport(node); - } else if (this.type === types$12.dot) { - var meta3 = this.startNodeAt(node.start, node.loc && node.loc.start); - meta3.name = "import"; - node.meta = this.finishNode(meta3, "Identifier"); - return this.parseImportMeta(node); - } else { - this.unexpected(); - } - }; - pp$52.parseDynamicImport = function(node) { - this.next(); - node.source = this.parseMaybeAssign(); - if (this.options.ecmaVersion >= 16) { - if (!this.eat(types$12.parenR)) { - this.expect(types$12.comma); - if (!this.afterTrailingComma(types$12.parenR)) { - node.options = this.parseMaybeAssign(); - if (!this.eat(types$12.parenR)) { - this.expect(types$12.comma); - if (!this.afterTrailingComma(types$12.parenR)) { - this.unexpected(); - } - } - } else { - node.options = null; - } - } else { - node.options = null; - } - } else { - if (!this.eat(types$12.parenR)) { - var errorPos = this.start; - if (this.eat(types$12.comma) && this.eat(types$12.parenR)) { - this.raiseRecoverable(errorPos, "Trailing comma is not allowed in import()"); - } else { - this.unexpected(errorPos); - } - } - } - return this.finishNode(node, "ImportExpression"); - }; - pp$52.parseImportMeta = function(node) { - this.next(); - var containsEsc = this.containsEsc; - node.property = this.parseIdent(true); - if (node.property.name !== "meta") { - this.raiseRecoverable(node.property.start, "The only valid meta property for import is 'import.meta'"); - } - if (containsEsc) { - this.raiseRecoverable(node.start, "'import.meta' must not contain escaped characters"); - } - if (this.options.sourceType !== "module" && !this.options.allowImportExportEverywhere) { - this.raiseRecoverable(node.start, "Cannot use 'import.meta' outside a module"); - } - return this.finishNode(node, "MetaProperty"); - }; - pp$52.parseLiteral = function(value) { - var node = this.startNode(); - node.value = value; - node.raw = this.input.slice(this.start, this.end); - if (node.raw.charCodeAt(node.raw.length - 1) === 110) { - node.bigint = node.value != null ? node.value.toString() : node.raw.slice(0, -1).replace(/_/g, ""); - } - this.next(); - return this.finishNode(node, "Literal"); - }; - pp$52.parseParenExpression = function() { - this.expect(types$12.parenL); - var val = this.parseExpression(); - this.expect(types$12.parenR); - return val; - }; - pp$52.shouldParseArrow = function(exprList) { - return !this.canInsertSemicolon(); - }; - pp$52.parseParenAndDistinguishExpression = function(canBeArrow, forInit) { - var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8; - if (this.options.ecmaVersion >= 6) { - this.next(); - var innerStartPos = this.start, innerStartLoc = this.startLoc; - var exprList = [], first = true, lastIsComma = false; - var refDestructuringErrors = new DestructuringErrors3(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart; - this.yieldPos = 0; - this.awaitPos = 0; - while (this.type !== types$12.parenR) { - first ? first = false : this.expect(types$12.comma); - if (allowTrailingComma && this.afterTrailingComma(types$12.parenR, true)) { - lastIsComma = true; - break; - } else if (this.type === types$12.ellipsis) { - spreadStart = this.start; - exprList.push(this.parseParenItem(this.parseRestBinding())); - if (this.type === types$12.comma) { - this.raiseRecoverable( - this.start, - "Comma is not permitted after the rest element" - ); - } - break; - } else { - exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem)); - } - } - var innerEndPos = this.lastTokEnd, innerEndLoc = this.lastTokEndLoc; - this.expect(types$12.parenR); - if (canBeArrow && this.shouldParseArrow(exprList) && this.eat(types$12.arrow)) { - this.checkPatternErrors(refDestructuringErrors, false); - this.checkYieldAwaitInDefaultParams(); - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - return this.parseParenArrowList(startPos, startLoc, exprList, forInit); - } - if (!exprList.length || lastIsComma) { - this.unexpected(this.lastTokStart); - } - if (spreadStart) { - this.unexpected(spreadStart); - } - this.checkExpressionErrors(refDestructuringErrors, true); - this.yieldPos = oldYieldPos || this.yieldPos; - this.awaitPos = oldAwaitPos || this.awaitPos; - if (exprList.length > 1) { - val = this.startNodeAt(innerStartPos, innerStartLoc); - val.expressions = exprList; - this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc); - } else { - val = exprList[0]; - } - } else { - val = this.parseParenExpression(); - } - if (this.options.preserveParens) { - var par = this.startNodeAt(startPos, startLoc); - par.expression = val; - return this.finishNode(par, "ParenthesizedExpression"); - } else { - return val; - } - }; - pp$52.parseParenItem = function(item) { - return item; - }; - pp$52.parseParenArrowList = function(startPos, startLoc, exprList, forInit) { - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit); - }; - var empty2 = []; - pp$52.parseNew = function() { - if (this.containsEsc) { - this.raiseRecoverable(this.start, "Escape sequence in keyword new"); - } - var node = this.startNode(); - this.next(); - if (this.options.ecmaVersion >= 6 && this.type === types$12.dot) { - var meta3 = this.startNodeAt(node.start, node.loc && node.loc.start); - meta3.name = "new"; - node.meta = this.finishNode(meta3, "Identifier"); - this.next(); - var containsEsc = this.containsEsc; - node.property = this.parseIdent(true); - if (node.property.name !== "target") { - this.raiseRecoverable(node.property.start, "The only valid meta property for new is 'new.target'"); - } - if (containsEsc) { - this.raiseRecoverable(node.start, "'new.target' must not contain escaped characters"); - } - if (!this.allowNewDotTarget) { - this.raiseRecoverable(node.start, "'new.target' can only be used in functions and class static block"); - } - return this.finishNode(node, "MetaProperty"); - } - var startPos = this.start, startLoc = this.startLoc; - node.callee = this.parseSubscripts(this.parseExprAtom(null, false, true), startPos, startLoc, true, false); - if (this.eat(types$12.parenL)) { - node.arguments = this.parseExprList(types$12.parenR, this.options.ecmaVersion >= 8, false); - } else { - node.arguments = empty2; - } - return this.finishNode(node, "NewExpression"); - }; - pp$52.parseTemplateElement = function(ref3) { - var isTagged = ref3.isTagged; - var elem = this.startNode(); - if (this.type === types$12.invalidTemplate) { - if (!isTagged) { - this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal"); - } - elem.value = { - raw: this.value.replace(/\r\n?/g, "\n"), - cooked: null - }; - } else { - elem.value = { - raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, "\n"), - cooked: this.value - }; - } - this.next(); - elem.tail = this.type === types$12.backQuote; - return this.finishNode(elem, "TemplateElement"); - }; - pp$52.parseTemplate = function(ref3) { - if (ref3 === void 0) ref3 = {}; - var isTagged = ref3.isTagged; - if (isTagged === void 0) isTagged = false; - var node = this.startNode(); - this.next(); - node.expressions = []; - var curElt = this.parseTemplateElement({ isTagged }); - node.quasis = [curElt]; - while (!curElt.tail) { - if (this.type === types$12.eof) { - this.raise(this.pos, "Unterminated template literal"); - } - this.expect(types$12.dollarBraceL); - node.expressions.push(this.parseExpression()); - this.expect(types$12.braceR); - node.quasis.push(curElt = this.parseTemplateElement({ isTagged })); - } - this.next(); - return this.finishNode(node, "TemplateLiteral"); - }; - pp$52.isAsyncProp = function(prop) { - return !prop.computed && prop.key.type === "Identifier" && prop.key.name === "async" && (this.type === types$12.name || this.type === types$12.num || this.type === types$12.string || this.type === types$12.bracketL || this.type.keyword || this.options.ecmaVersion >= 9 && this.type === types$12.star) && !lineBreak2.test(this.input.slice(this.lastTokEnd, this.start)); - }; - pp$52.parseObj = function(isPattern, refDestructuringErrors) { - var node = this.startNode(), first = true, propHash = {}; - node.properties = []; - this.next(); - while (!this.eat(types$12.braceR)) { - if (!first) { - this.expect(types$12.comma); - if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$12.braceR)) { - break; - } - } else { - first = false; - } - var prop = this.parseProperty(isPattern, refDestructuringErrors); - if (!isPattern) { - this.checkPropClash(prop, propHash, refDestructuringErrors); - } - node.properties.push(prop); - } - return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression"); - }; - pp$52.parseProperty = function(isPattern, refDestructuringErrors) { - var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc; - if (this.options.ecmaVersion >= 9 && this.eat(types$12.ellipsis)) { - if (isPattern) { - prop.argument = this.parseIdent(false); - if (this.type === types$12.comma) { - this.raiseRecoverable(this.start, "Comma is not permitted after the rest element"); - } - return this.finishNode(prop, "RestElement"); - } - prop.argument = this.parseMaybeAssign(false, refDestructuringErrors); - if (this.type === types$12.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) { - refDestructuringErrors.trailingComma = this.start; - } - return this.finishNode(prop, "SpreadElement"); - } - if (this.options.ecmaVersion >= 6) { - prop.method = false; - prop.shorthand = false; - if (isPattern || refDestructuringErrors) { - startPos = this.start; - startLoc = this.startLoc; - } - if (!isPattern) { - isGenerator = this.eat(types$12.star); - } - } - var containsEsc = this.containsEsc; - this.parsePropertyName(prop); - if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) { - isAsync = true; - isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$12.star); - this.parsePropertyName(prop); - } else { - isAsync = false; - } - this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc); - return this.finishNode(prop, "Property"); - }; - pp$52.parseGetterSetter = function(prop) { - var kind = prop.key.name; - this.parsePropertyName(prop); - prop.value = this.parseMethod(false); - prop.kind = kind; - var paramCount = prop.kind === "get" ? 0 : 1; - if (prop.value.params.length !== paramCount) { - var start = prop.value.start; - if (prop.kind === "get") { - this.raiseRecoverable(start, "getter should have no params"); - } else { - this.raiseRecoverable(start, "setter should have exactly one param"); - } - } else { - if (prop.kind === "set" && prop.value.params[0].type === "RestElement") { - this.raiseRecoverable(prop.value.params[0].start, "Setter cannot use rest params"); - } - } - }; - pp$52.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) { - if ((isGenerator || isAsync) && this.type === types$12.colon) { - this.unexpected(); - } - if (this.eat(types$12.colon)) { - prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors); - prop.kind = "init"; - } else if (this.options.ecmaVersion >= 6 && this.type === types$12.parenL) { - if (isPattern) { - this.unexpected(); - } - prop.method = true; - prop.value = this.parseMethod(isGenerator, isAsync); - prop.kind = "init"; - } else if (!isPattern && !containsEsc && this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set") && (this.type !== types$12.comma && this.type !== types$12.braceR && this.type !== types$12.eq)) { - if (isGenerator || isAsync) { - this.unexpected(); - } - this.parseGetterSetter(prop); - } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === "Identifier") { - if (isGenerator || isAsync) { - this.unexpected(); - } - this.checkUnreserved(prop.key); - if (prop.key.name === "await" && !this.awaitIdentPos) { - this.awaitIdentPos = startPos; - } - if (isPattern) { - prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); - } else if (this.type === types$12.eq && refDestructuringErrors) { - if (refDestructuringErrors.shorthandAssign < 0) { - refDestructuringErrors.shorthandAssign = this.start; - } - prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); - } else { - prop.value = this.copyNode(prop.key); - } - prop.kind = "init"; - prop.shorthand = true; - } else { - this.unexpected(); - } - }; - pp$52.parsePropertyName = function(prop) { - if (this.options.ecmaVersion >= 6) { - if (this.eat(types$12.bracketL)) { - prop.computed = true; - prop.key = this.parseMaybeAssign(); - this.expect(types$12.bracketR); - return prop.key; - } else { - prop.computed = false; - } - } - return prop.key = this.type === types$12.num || this.type === types$12.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never"); - }; - pp$52.initFunction = function(node) { - node.id = null; - if (this.options.ecmaVersion >= 6) { - node.generator = node.expression = false; - } - if (this.options.ecmaVersion >= 8) { - node.async = false; - } - }; - pp$52.parseMethod = function(isGenerator, isAsync, allowDirectSuper) { - var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - this.initFunction(node); - if (this.options.ecmaVersion >= 6) { - node.generator = isGenerator; - } - if (this.options.ecmaVersion >= 8) { - node.async = !!isAsync; - } - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - this.enterScope(functionFlags2(isAsync, node.generator) | SCOPE_SUPER2 | (allowDirectSuper ? SCOPE_DIRECT_SUPER2 : 0)); - this.expect(types$12.parenL); - node.params = this.parseBindingList(types$12.parenR, false, this.options.ecmaVersion >= 8); - this.checkYieldAwaitInDefaultParams(); - this.parseFunctionBody(node, false, true, false); - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.finishNode(node, "FunctionExpression"); - }; - pp$52.parseArrowExpression = function(node, params, isAsync, forInit) { - var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - this.enterScope(functionFlags2(isAsync, false) | SCOPE_ARROW2); - this.initFunction(node); - if (this.options.ecmaVersion >= 8) { - node.async = !!isAsync; - } - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - node.params = this.toAssignableList(params, true); - this.parseFunctionBody(node, true, false, forInit); - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.finishNode(node, "ArrowFunctionExpression"); - }; - pp$52.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) { - var isExpression = isArrowFunction && this.type !== types$12.braceL; - var oldStrict = this.strict, useStrict = false; - if (isExpression) { - node.body = this.parseMaybeAssign(forInit); - node.expression = true; - this.checkParams(node, false); - } else { - var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params); - if (!oldStrict || nonSimple) { - useStrict = this.strictDirective(this.end); - if (useStrict && nonSimple) { - this.raiseRecoverable(node.start, "Illegal 'use strict' directive in function with non-simple parameter list"); - } - } - var oldLabels = this.labels; - this.labels = []; - if (useStrict) { - this.strict = true; - } - this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params)); - if (this.strict && node.id) { - this.checkLValSimple(node.id, BIND_OUTSIDE2); - } - node.body = this.parseBlock(false, void 0, useStrict && !oldStrict); - node.expression = false; - this.adaptDirectivePrologue(node.body.body); - this.labels = oldLabels; - } - this.exitScope(); - }; - pp$52.isSimpleParamList = function(params) { - for (var i3 = 0, list3 = params; i3 < list3.length; i3 += 1) { - var param = list3[i3]; - if (param.type !== "Identifier") { - return false; - } - } - return true; - }; - pp$52.checkParams = function(node, allowDuplicates) { - var nameHash = /* @__PURE__ */ Object.create(null); - for (var i3 = 0, list3 = node.params; i3 < list3.length; i3 += 1) { - var param = list3[i3]; - this.checkLValInnerPattern(param, BIND_VAR2, allowDuplicates ? null : nameHash); - } - }; - pp$52.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) { - var elts = [], first = true; - while (!this.eat(close)) { - if (!first) { - this.expect(types$12.comma); - if (allowTrailingComma && this.afterTrailingComma(close)) { - break; - } - } else { - first = false; - } - var elt = void 0; - if (allowEmpty && this.type === types$12.comma) { - elt = null; - } else if (this.type === types$12.ellipsis) { - elt = this.parseSpread(refDestructuringErrors); - if (refDestructuringErrors && this.type === types$12.comma && refDestructuringErrors.trailingComma < 0) { - refDestructuringErrors.trailingComma = this.start; - } - } else { - elt = this.parseMaybeAssign(false, refDestructuringErrors); - } - elts.push(elt); - } - return elts; - }; - pp$52.checkUnreserved = function(ref3) { - var start = ref3.start; - var end = ref3.end; - var name = ref3.name; - if (this.inGenerator && name === "yield") { - this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); - } - if (this.inAsync && name === "await") { - this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function"); - } - if (!(this.currentThisScope().flags & SCOPE_VAR2) && name === "arguments") { - this.raiseRecoverable(start, "Cannot use 'arguments' in class field initializer"); - } - if (this.inClassStaticBlock && (name === "arguments" || name === "await")) { - this.raise(start, "Cannot use " + name + " in class static initialization block"); - } - if (this.keywords.test(name)) { - this.raise(start, "Unexpected keyword '" + name + "'"); - } - if (this.options.ecmaVersion < 6 && this.input.slice(start, end).indexOf("\\") !== -1) { - return; - } - var re = this.strict ? this.reservedWordsStrict : this.reservedWords; - if (re.test(name)) { - if (!this.inAsync && name === "await") { - this.raiseRecoverable(start, "Cannot use keyword 'await' outside an async function"); - } - this.raiseRecoverable(start, "The keyword '" + name + "' is reserved"); - } - }; - pp$52.parseIdent = function(liberal) { - var node = this.parseIdentNode(); - this.next(!!liberal); - this.finishNode(node, "Identifier"); - if (!liberal) { - this.checkUnreserved(node); - if (node.name === "await" && !this.awaitIdentPos) { - this.awaitIdentPos = node.start; - } - } - return node; - }; - pp$52.parseIdentNode = function() { - var node = this.startNode(); - if (this.type === types$12.name) { - node.name = this.value; - } else if (this.type.keyword) { - node.name = this.type.keyword; - if ((node.name === "class" || node.name === "function") && (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) { - this.context.pop(); - } - this.type = types$12.name; - } else { - this.unexpected(); - } - return node; - }; - pp$52.parsePrivateIdent = function() { - var node = this.startNode(); - if (this.type === types$12.privateId) { - node.name = this.value; - } else { - this.unexpected(); - } - this.next(); - this.finishNode(node, "PrivateIdentifier"); - if (this.options.checkPrivateFields) { - if (this.privateNameStack.length === 0) { - this.raise(node.start, "Private field '#" + node.name + "' must be declared in an enclosing class"); - } else { - this.privateNameStack[this.privateNameStack.length - 1].used.push(node); - } - } - return node; - }; - pp$52.parseYield = function(forInit) { - if (!this.yieldPos) { - this.yieldPos = this.start; - } - var node = this.startNode(); - this.next(); - if (this.type === types$12.semi || this.canInsertSemicolon() || this.type !== types$12.star && !this.type.startsExpr) { - node.delegate = false; - node.argument = null; - } else { - node.delegate = this.eat(types$12.star); - node.argument = this.parseMaybeAssign(forInit); - } - return this.finishNode(node, "YieldExpression"); - }; - pp$52.parseAwait = function(forInit) { - if (!this.awaitPos) { - this.awaitPos = this.start; - } - var node = this.startNode(); - this.next(); - node.argument = this.parseMaybeUnary(null, true, false, forInit); - return this.finishNode(node, "AwaitExpression"); - }; - var pp$42 = Parser3.prototype; - pp$42.raise = function(pos, message) { - var loc = getLineInfo2(this.input, pos); - message += " (" + loc.line + ":" + loc.column + ")"; - if (this.sourceFile) { - message += " in " + this.sourceFile; - } - var err = new SyntaxError(message); - err.pos = pos; - err.loc = loc; - err.raisedAt = this.pos; - throw err; - }; - pp$42.raiseRecoverable = pp$42.raise; - pp$42.curPosition = function() { - if (this.options.locations) { - return new Position3(this.curLine, this.pos - this.lineStart); - } - }; - var pp$32 = Parser3.prototype; - var Scope3 = function Scope4(flags) { - this.flags = flags; - this.var = []; - this.lexical = []; - this.functions = []; - }; - pp$32.enterScope = function(flags) { - this.scopeStack.push(new Scope3(flags)); - }; - pp$32.exitScope = function() { - this.scopeStack.pop(); - }; - pp$32.treatFunctionsAsVarInScope = function(scope) { - return scope.flags & SCOPE_FUNCTION2 || !this.inModule && scope.flags & SCOPE_TOP2; - }; - pp$32.declareName = function(name, bindingType, pos) { - var redeclared = false; - if (bindingType === BIND_LEXICAL2) { - var scope = this.currentScope(); - redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1; - scope.lexical.push(name); - if (this.inModule && scope.flags & SCOPE_TOP2) { - delete this.undefinedExports[name]; - } - } else if (bindingType === BIND_SIMPLE_CATCH2) { - var scope$1 = this.currentScope(); - scope$1.lexical.push(name); - } else if (bindingType === BIND_FUNCTION2) { - var scope$2 = this.currentScope(); - if (this.treatFunctionsAsVar) { - redeclared = scope$2.lexical.indexOf(name) > -1; - } else { - redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; - } - scope$2.functions.push(name); - } else { - for (var i3 = this.scopeStack.length - 1; i3 >= 0; --i3) { - var scope$3 = this.scopeStack[i3]; - if (scope$3.lexical.indexOf(name) > -1 && !(scope$3.flags & SCOPE_SIMPLE_CATCH2 && scope$3.lexical[0] === name) || !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) { - redeclared = true; - break; - } - scope$3.var.push(name); - if (this.inModule && scope$3.flags & SCOPE_TOP2) { - delete this.undefinedExports[name]; - } - if (scope$3.flags & SCOPE_VAR2) { - break; - } - } - } - if (redeclared) { - this.raiseRecoverable(pos, "Identifier '" + name + "' has already been declared"); - } - }; - pp$32.checkLocalExport = function(id) { - if (this.scopeStack[0].lexical.indexOf(id.name) === -1 && this.scopeStack[0].var.indexOf(id.name) === -1) { - this.undefinedExports[id.name] = id; - } - }; - pp$32.currentScope = function() { - return this.scopeStack[this.scopeStack.length - 1]; - }; - pp$32.currentVarScope = function() { - for (var i3 = this.scopeStack.length - 1; ; i3--) { - var scope = this.scopeStack[i3]; - if (scope.flags & (SCOPE_VAR2 | SCOPE_CLASS_FIELD_INIT2 | SCOPE_CLASS_STATIC_BLOCK2)) { - return scope; - } - } - }; - pp$32.currentThisScope = function() { - for (var i3 = this.scopeStack.length - 1; ; i3--) { - var scope = this.scopeStack[i3]; - if (scope.flags & (SCOPE_VAR2 | SCOPE_CLASS_FIELD_INIT2 | SCOPE_CLASS_STATIC_BLOCK2) && !(scope.flags & SCOPE_ARROW2)) { - return scope; - } - } - }; - var Node3 = function Node4(parser, pos, loc) { - this.type = ""; - this.start = pos; - this.end = 0; - if (parser.options.locations) { - this.loc = new SourceLocation3(parser, loc); - } - if (parser.options.directSourceFile) { - this.sourceFile = parser.options.directSourceFile; - } - if (parser.options.ranges) { - this.range = [pos, 0]; - } - }; - var pp$22 = Parser3.prototype; - pp$22.startNode = function() { - return new Node3(this, this.start, this.startLoc); - }; - pp$22.startNodeAt = function(pos, loc) { - return new Node3(this, pos, loc); - }; - function finishNodeAt2(node, type, pos, loc) { - node.type = type; - node.end = pos; - if (this.options.locations) { - node.loc.end = loc; - } - if (this.options.ranges) { - node.range[1] = pos; - } - return node; - } - pp$22.finishNode = function(node, type) { - return finishNodeAt2.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc); - }; - pp$22.finishNodeAt = function(node, type, pos, loc) { - return finishNodeAt2.call(this, node, type, pos, loc); - }; - pp$22.copyNode = function(node) { - var newNode = new Node3(this, node.start, this.startLoc); - for (var prop in node) { - newNode[prop] = node[prop]; - } - return newNode; - }; - var scriptValuesAddedInUnicode2 = "Berf Beria_Erfe Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sidetic Sidt Sunu Sunuwar Tai_Yo Tayo Todhri Todr Tolong_Siki Tols Tulu_Tigalari Tutg Unknown Zzzz"; - var ecma9BinaryProperties2 = "ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS"; - var ecma10BinaryProperties2 = ecma9BinaryProperties2 + " Extended_Pictographic"; - var ecma11BinaryProperties2 = ecma10BinaryProperties2; - var ecma12BinaryProperties2 = ecma11BinaryProperties2 + " EBase EComp EMod EPres ExtPict"; - var ecma13BinaryProperties2 = ecma12BinaryProperties2; - var ecma14BinaryProperties2 = ecma13BinaryProperties2; - var unicodeBinaryProperties2 = { - 9: ecma9BinaryProperties2, - 10: ecma10BinaryProperties2, - 11: ecma11BinaryProperties2, - 12: ecma12BinaryProperties2, - 13: ecma13BinaryProperties2, - 14: ecma14BinaryProperties2 - }; - var ecma14BinaryPropertiesOfStrings2 = "Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji"; - var unicodeBinaryPropertiesOfStrings2 = { - 9: "", - 10: "", - 11: "", - 12: "", - 13: "", - 14: ecma14BinaryPropertiesOfStrings2 - }; - var unicodeGeneralCategoryValues2 = "Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu"; - var ecma9ScriptValues2 = "Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb"; - var ecma10ScriptValues2 = ecma9ScriptValues2 + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd"; - var ecma11ScriptValues2 = ecma10ScriptValues2 + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho"; - var ecma12ScriptValues2 = ecma11ScriptValues2 + " Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi"; - var ecma13ScriptValues2 = ecma12ScriptValues2 + " Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith"; - var ecma14ScriptValues2 = ecma13ScriptValues2 + " " + scriptValuesAddedInUnicode2; - var unicodeScriptValues2 = { - 9: ecma9ScriptValues2, - 10: ecma10ScriptValues2, - 11: ecma11ScriptValues2, - 12: ecma12ScriptValues2, - 13: ecma13ScriptValues2, - 14: ecma14ScriptValues2 - }; - var data2 = {}; - function buildUnicodeData2(ecmaVersion3) { - var d = data2[ecmaVersion3] = { - binary: wordsRegexp2(unicodeBinaryProperties2[ecmaVersion3] + " " + unicodeGeneralCategoryValues2), - binaryOfStrings: wordsRegexp2(unicodeBinaryPropertiesOfStrings2[ecmaVersion3]), - nonBinary: { - General_Category: wordsRegexp2(unicodeGeneralCategoryValues2), - Script: wordsRegexp2(unicodeScriptValues2[ecmaVersion3]) - } - }; - d.nonBinary.Script_Extensions = d.nonBinary.Script; - d.nonBinary.gc = d.nonBinary.General_Category; - d.nonBinary.sc = d.nonBinary.Script; - d.nonBinary.scx = d.nonBinary.Script_Extensions; - } - for (var i2 = 0, list2 = [9, 10, 11, 12, 13, 14]; i2 < list2.length; i2 += 1) { - var ecmaVersion2 = list2[i2]; - buildUnicodeData2(ecmaVersion2); - } - var pp$12 = Parser3.prototype; - var BranchID3 = function BranchID4(parent, base2) { - this.parent = parent; - this.base = base2 || this; - }; - BranchID3.prototype.separatedFrom = function separatedFrom2(alt) { - for (var self2 = this; self2; self2 = self2.parent) { - for (var other = alt; other; other = other.parent) { - if (self2.base === other.base && self2 !== other) { - return true; - } - } - } - return false; - }; - BranchID3.prototype.sibling = function sibling2() { - return new BranchID3(this.parent, this.base); - }; - var RegExpValidationState3 = function RegExpValidationState4(parser) { - this.parser = parser; - this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : "") + (parser.options.ecmaVersion >= 13 ? "d" : "") + (parser.options.ecmaVersion >= 15 ? "v" : ""); - this.unicodeProperties = data2[parser.options.ecmaVersion >= 14 ? 14 : parser.options.ecmaVersion]; - this.source = ""; - this.flags = ""; - this.start = 0; - this.switchU = false; - this.switchV = false; - this.switchN = false; - this.pos = 0; - this.lastIntValue = 0; - this.lastStringValue = ""; - this.lastAssertionIsQuantifiable = false; - this.numCapturingParens = 0; - this.maxBackReference = 0; - this.groupNames = /* @__PURE__ */ Object.create(null); - this.backReferenceNames = []; - this.branchID = null; - }; - RegExpValidationState3.prototype.reset = function reset2(start, pattern, flags) { - var unicodeSets = flags.indexOf("v") !== -1; - var unicode = flags.indexOf("u") !== -1; - this.start = start | 0; - this.source = pattern + ""; - this.flags = flags; - if (unicodeSets && this.parser.options.ecmaVersion >= 15) { - this.switchU = true; - this.switchV = true; - this.switchN = true; - } else { - this.switchU = unicode && this.parser.options.ecmaVersion >= 6; - this.switchV = false; - this.switchN = unicode && this.parser.options.ecmaVersion >= 9; - } - }; - RegExpValidationState3.prototype.raise = function raise2(message) { - this.parser.raiseRecoverable(this.start, "Invalid regular expression: /" + this.source + "/: " + message); - }; - RegExpValidationState3.prototype.at = function at2(i3, forceU) { - if (forceU === void 0) forceU = false; - var s = this.source; - var l = s.length; - if (i3 >= l) { - return -1; - } - var c = s.charCodeAt(i3); - if (!(forceU || this.switchU) || c <= 55295 || c >= 57344 || i3 + 1 >= l) { - return c; - } - var next = s.charCodeAt(i3 + 1); - return next >= 56320 && next <= 57343 ? (c << 10) + next - 56613888 : c; - }; - RegExpValidationState3.prototype.nextIndex = function nextIndex2(i3, forceU) { - if (forceU === void 0) forceU = false; - var s = this.source; - var l = s.length; - if (i3 >= l) { - return l; - } - var c = s.charCodeAt(i3), next; - if (!(forceU || this.switchU) || c <= 55295 || c >= 57344 || i3 + 1 >= l || (next = s.charCodeAt(i3 + 1)) < 56320 || next > 57343) { - return i3 + 1; - } - return i3 + 2; - }; - RegExpValidationState3.prototype.current = function current2(forceU) { - if (forceU === void 0) forceU = false; - return this.at(this.pos, forceU); - }; - RegExpValidationState3.prototype.lookahead = function lookahead2(forceU) { - if (forceU === void 0) forceU = false; - return this.at(this.nextIndex(this.pos, forceU), forceU); - }; - RegExpValidationState3.prototype.advance = function advance2(forceU) { - if (forceU === void 0) forceU = false; - this.pos = this.nextIndex(this.pos, forceU); - }; - RegExpValidationState3.prototype.eat = function eat2(ch, forceU) { - if (forceU === void 0) forceU = false; - if (this.current(forceU) === ch) { - this.advance(forceU); - return true; - } - return false; - }; - RegExpValidationState3.prototype.eatChars = function eatChars2(chs, forceU) { - if (forceU === void 0) forceU = false; - var pos = this.pos; - for (var i3 = 0, list3 = chs; i3 < list3.length; i3 += 1) { - var ch = list3[i3]; - var current2 = this.at(pos, forceU); - if (current2 === -1 || current2 !== ch) { - return false; - } - pos = this.nextIndex(pos, forceU); - } - this.pos = pos; - return true; - }; - pp$12.validateRegExpFlags = function(state) { - var validFlags = state.validFlags; - var flags = state.flags; - var u = false; - var v = false; - for (var i3 = 0; i3 < flags.length; i3++) { - var flag = flags.charAt(i3); - if (validFlags.indexOf(flag) === -1) { - this.raise(state.start, "Invalid regular expression flag"); - } - if (flags.indexOf(flag, i3 + 1) > -1) { - this.raise(state.start, "Duplicate regular expression flag"); - } - if (flag === "u") { - u = true; - } - if (flag === "v") { - v = true; - } - } - if (this.options.ecmaVersion >= 15 && u && v) { - this.raise(state.start, "Invalid regular expression flag"); - } - }; - function hasProp2(obj) { - for (var _ in obj) { - return true; - } - return false; - } - pp$12.validateRegExpPattern = function(state) { - this.regexp_pattern(state); - if (!state.switchN && this.options.ecmaVersion >= 9 && hasProp2(state.groupNames)) { - state.switchN = true; - this.regexp_pattern(state); - } - }; - pp$12.regexp_pattern = function(state) { - state.pos = 0; - state.lastIntValue = 0; - state.lastStringValue = ""; - state.lastAssertionIsQuantifiable = false; - state.numCapturingParens = 0; - state.maxBackReference = 0; - state.groupNames = /* @__PURE__ */ Object.create(null); - state.backReferenceNames.length = 0; - state.branchID = null; - this.regexp_disjunction(state); - if (state.pos !== state.source.length) { - if (state.eat( - 41 - /* ) */ - )) { - state.raise("Unmatched ')'"); - } - if (state.eat( - 93 - /* ] */ - ) || state.eat( - 125 - /* } */ - )) { - state.raise("Lone quantifier brackets"); - } - } - if (state.maxBackReference > state.numCapturingParens) { - state.raise("Invalid escape"); - } - for (var i3 = 0, list3 = state.backReferenceNames; i3 < list3.length; i3 += 1) { - var name = list3[i3]; - if (!state.groupNames[name]) { - state.raise("Invalid named capture referenced"); - } - } - }; - pp$12.regexp_disjunction = function(state) { - var trackDisjunction = this.options.ecmaVersion >= 16; - if (trackDisjunction) { - state.branchID = new BranchID3(state.branchID, null); - } - this.regexp_alternative(state); - while (state.eat( - 124 - /* | */ - )) { - if (trackDisjunction) { - state.branchID = state.branchID.sibling(); - } - this.regexp_alternative(state); - } - if (trackDisjunction) { - state.branchID = state.branchID.parent; - } - if (this.regexp_eatQuantifier(state, true)) { - state.raise("Nothing to repeat"); - } - if (state.eat( - 123 - /* { */ - )) { - state.raise("Lone quantifier brackets"); - } - }; - pp$12.regexp_alternative = function(state) { - while (state.pos < state.source.length && this.regexp_eatTerm(state)) { - } - }; - pp$12.regexp_eatTerm = function(state) { - if (this.regexp_eatAssertion(state)) { - if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) { - if (state.switchU) { - state.raise("Invalid quantifier"); - } - } - return true; - } - if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) { - this.regexp_eatQuantifier(state); - return true; - } - return false; - }; - pp$12.regexp_eatAssertion = function(state) { - var start = state.pos; - state.lastAssertionIsQuantifiable = false; - if (state.eat( - 94 - /* ^ */ - ) || state.eat( - 36 - /* $ */ - )) { - return true; - } - if (state.eat( - 92 - /* \ */ - )) { - if (state.eat( - 66 - /* B */ - ) || state.eat( - 98 - /* b */ - )) { - return true; - } - state.pos = start; - } - if (state.eat( - 40 - /* ( */ - ) && state.eat( - 63 - /* ? */ - )) { - var lookbehind = false; - if (this.options.ecmaVersion >= 9) { - lookbehind = state.eat( - 60 - /* < */ - ); - } - if (state.eat( - 61 - /* = */ - ) || state.eat( - 33 - /* ! */ - )) { - this.regexp_disjunction(state); - if (!state.eat( - 41 - /* ) */ - )) { - state.raise("Unterminated group"); - } - state.lastAssertionIsQuantifiable = !lookbehind; - return true; - } - } - state.pos = start; - return false; - }; - pp$12.regexp_eatQuantifier = function(state, noError) { - if (noError === void 0) noError = false; - if (this.regexp_eatQuantifierPrefix(state, noError)) { - state.eat( - 63 - /* ? */ - ); - return true; - } - return false; - }; - pp$12.regexp_eatQuantifierPrefix = function(state, noError) { - return state.eat( - 42 - /* * */ - ) || state.eat( - 43 - /* + */ - ) || state.eat( - 63 - /* ? */ - ) || this.regexp_eatBracedQuantifier(state, noError); - }; - pp$12.regexp_eatBracedQuantifier = function(state, noError) { - var start = state.pos; - if (state.eat( - 123 - /* { */ - )) { - var min = 0, max = -1; - if (this.regexp_eatDecimalDigits(state)) { - min = state.lastIntValue; - if (state.eat( - 44 - /* , */ - ) && this.regexp_eatDecimalDigits(state)) { - max = state.lastIntValue; - } - if (state.eat( - 125 - /* } */ - )) { - if (max !== -1 && max < min && !noError) { - state.raise("numbers out of order in {} quantifier"); - } - return true; - } - } - if (state.switchU && !noError) { - state.raise("Incomplete quantifier"); - } - state.pos = start; - } - return false; - }; - pp$12.regexp_eatAtom = function(state) { - return this.regexp_eatPatternCharacters(state) || state.eat( - 46 - /* . */ - ) || this.regexp_eatReverseSolidusAtomEscape(state) || this.regexp_eatCharacterClass(state) || this.regexp_eatUncapturingGroup(state) || this.regexp_eatCapturingGroup(state); - }; - pp$12.regexp_eatReverseSolidusAtomEscape = function(state) { - var start = state.pos; - if (state.eat( - 92 - /* \ */ - )) { - if (this.regexp_eatAtomEscape(state)) { - return true; - } - state.pos = start; - } - return false; - }; - pp$12.regexp_eatUncapturingGroup = function(state) { - var start = state.pos; - if (state.eat( - 40 - /* ( */ - )) { - if (state.eat( - 63 - /* ? */ - )) { - if (this.options.ecmaVersion >= 16) { - var addModifiers = this.regexp_eatModifiers(state); - var hasHyphen = state.eat( - 45 - /* - */ - ); - if (addModifiers || hasHyphen) { - for (var i3 = 0; i3 < addModifiers.length; i3++) { - var modifier = addModifiers.charAt(i3); - if (addModifiers.indexOf(modifier, i3 + 1) > -1) { - state.raise("Duplicate regular expression modifiers"); - } - } - if (hasHyphen) { - var removeModifiers = this.regexp_eatModifiers(state); - if (!addModifiers && !removeModifiers && state.current() === 58) { - state.raise("Invalid regular expression modifiers"); - } - for (var i$1 = 0; i$1 < removeModifiers.length; i$1++) { - var modifier$1 = removeModifiers.charAt(i$1); - if (removeModifiers.indexOf(modifier$1, i$1 + 1) > -1 || addModifiers.indexOf(modifier$1) > -1) { - state.raise("Duplicate regular expression modifiers"); - } - } - } - } - } - if (state.eat( - 58 - /* : */ - )) { - this.regexp_disjunction(state); - if (state.eat( - 41 - /* ) */ - )) { - return true; - } - state.raise("Unterminated group"); - } - } - state.pos = start; - } - return false; - }; - pp$12.regexp_eatCapturingGroup = function(state) { - if (state.eat( - 40 - /* ( */ - )) { - if (this.options.ecmaVersion >= 9) { - this.regexp_groupSpecifier(state); - } else if (state.current() === 63) { - state.raise("Invalid group"); - } - this.regexp_disjunction(state); - if (state.eat( - 41 - /* ) */ - )) { - state.numCapturingParens += 1; - return true; - } - state.raise("Unterminated group"); - } - return false; - }; - pp$12.regexp_eatModifiers = function(state) { - var modifiers = ""; - var ch = 0; - while ((ch = state.current()) !== -1 && isRegularExpressionModifier2(ch)) { - modifiers += codePointToString2(ch); - state.advance(); - } - return modifiers; - }; - function isRegularExpressionModifier2(ch) { - return ch === 105 || ch === 109 || ch === 115; - } - pp$12.regexp_eatExtendedAtom = function(state) { - return state.eat( - 46 - /* . */ - ) || this.regexp_eatReverseSolidusAtomEscape(state) || this.regexp_eatCharacterClass(state) || this.regexp_eatUncapturingGroup(state) || this.regexp_eatCapturingGroup(state) || this.regexp_eatInvalidBracedQuantifier(state) || this.regexp_eatExtendedPatternCharacter(state); - }; - pp$12.regexp_eatInvalidBracedQuantifier = function(state) { - if (this.regexp_eatBracedQuantifier(state, true)) { - state.raise("Nothing to repeat"); - } - return false; - }; - pp$12.regexp_eatSyntaxCharacter = function(state) { - var ch = state.current(); - if (isSyntaxCharacter2(ch)) { - state.lastIntValue = ch; - state.advance(); - return true; - } - return false; - }; - function isSyntaxCharacter2(ch) { - return ch === 36 || ch >= 40 && ch <= 43 || ch === 46 || ch === 63 || ch >= 91 && ch <= 94 || ch >= 123 && ch <= 125; - } - pp$12.regexp_eatPatternCharacters = function(state) { - var start = state.pos; - var ch = 0; - while ((ch = state.current()) !== -1 && !isSyntaxCharacter2(ch)) { - state.advance(); - } - return state.pos !== start; - }; - pp$12.regexp_eatExtendedPatternCharacter = function(state) { - var ch = state.current(); - if (ch !== -1 && ch !== 36 && !(ch >= 40 && ch <= 43) && ch !== 46 && ch !== 63 && ch !== 91 && ch !== 94 && ch !== 124) { - state.advance(); - return true; - } - return false; - }; - pp$12.regexp_groupSpecifier = function(state) { - if (state.eat( - 63 - /* ? */ - )) { - if (!this.regexp_eatGroupName(state)) { - state.raise("Invalid group"); - } - var trackDisjunction = this.options.ecmaVersion >= 16; - var known = state.groupNames[state.lastStringValue]; - if (known) { - if (trackDisjunction) { - for (var i3 = 0, list3 = known; i3 < list3.length; i3 += 1) { - var altID = list3[i3]; - if (!altID.separatedFrom(state.branchID)) { - state.raise("Duplicate capture group name"); - } - } - } else { - state.raise("Duplicate capture group name"); - } - } - if (trackDisjunction) { - (known || (state.groupNames[state.lastStringValue] = [])).push(state.branchID); - } else { - state.groupNames[state.lastStringValue] = true; - } - } - }; - pp$12.regexp_eatGroupName = function(state) { - state.lastStringValue = ""; - if (state.eat( - 60 - /* < */ - )) { - if (this.regexp_eatRegExpIdentifierName(state) && state.eat( - 62 - /* > */ - )) { - return true; - } - state.raise("Invalid capture group name"); - } - return false; - }; - pp$12.regexp_eatRegExpIdentifierName = function(state) { - state.lastStringValue = ""; - if (this.regexp_eatRegExpIdentifierStart(state)) { - state.lastStringValue += codePointToString2(state.lastIntValue); - while (this.regexp_eatRegExpIdentifierPart(state)) { - state.lastStringValue += codePointToString2(state.lastIntValue); - } - return true; - } - return false; - }; - pp$12.regexp_eatRegExpIdentifierStart = function(state) { - var start = state.pos; - var forceU = this.options.ecmaVersion >= 11; - var ch = state.current(forceU); - state.advance(forceU); - if (ch === 92 && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) { - ch = state.lastIntValue; - } - if (isRegExpIdentifierStart2(ch)) { - state.lastIntValue = ch; - return true; - } - state.pos = start; - return false; - }; - function isRegExpIdentifierStart2(ch) { - return isIdentifierStart2(ch, true) || ch === 36 || ch === 95; - } - pp$12.regexp_eatRegExpIdentifierPart = function(state) { - var start = state.pos; - var forceU = this.options.ecmaVersion >= 11; - var ch = state.current(forceU); - state.advance(forceU); - if (ch === 92 && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) { - ch = state.lastIntValue; - } - if (isRegExpIdentifierPart2(ch)) { - state.lastIntValue = ch; - return true; - } - state.pos = start; - return false; - }; - function isRegExpIdentifierPart2(ch) { - return isIdentifierChar2(ch, true) || ch === 36 || ch === 95 || ch === 8204 || ch === 8205; - } - pp$12.regexp_eatAtomEscape = function(state) { - if (this.regexp_eatBackReference(state) || this.regexp_eatCharacterClassEscape(state) || this.regexp_eatCharacterEscape(state) || state.switchN && this.regexp_eatKGroupName(state)) { - return true; - } - if (state.switchU) { - if (state.current() === 99) { - state.raise("Invalid unicode escape"); - } - state.raise("Invalid escape"); - } - return false; - }; - pp$12.regexp_eatBackReference = function(state) { - var start = state.pos; - if (this.regexp_eatDecimalEscape(state)) { - var n = state.lastIntValue; - if (state.switchU) { - if (n > state.maxBackReference) { - state.maxBackReference = n; - } - return true; - } - if (n <= state.numCapturingParens) { - return true; - } - state.pos = start; - } - return false; - }; - pp$12.regexp_eatKGroupName = function(state) { - if (state.eat( - 107 - /* k */ - )) { - if (this.regexp_eatGroupName(state)) { - state.backReferenceNames.push(state.lastStringValue); - return true; - } - state.raise("Invalid named reference"); - } - return false; - }; - pp$12.regexp_eatCharacterEscape = function(state) { - return this.regexp_eatControlEscape(state) || this.regexp_eatCControlLetter(state) || this.regexp_eatZero(state) || this.regexp_eatHexEscapeSequence(state) || this.regexp_eatRegExpUnicodeEscapeSequence(state, false) || !state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state) || this.regexp_eatIdentityEscape(state); - }; - pp$12.regexp_eatCControlLetter = function(state) { - var start = state.pos; - if (state.eat( - 99 - /* c */ - )) { - if (this.regexp_eatControlLetter(state)) { - return true; - } - state.pos = start; - } - return false; - }; - pp$12.regexp_eatZero = function(state) { - if (state.current() === 48 && !isDecimalDigit2(state.lookahead())) { - state.lastIntValue = 0; - state.advance(); - return true; - } - return false; - }; - pp$12.regexp_eatControlEscape = function(state) { - var ch = state.current(); - if (ch === 116) { - state.lastIntValue = 9; - state.advance(); - return true; - } - if (ch === 110) { - state.lastIntValue = 10; - state.advance(); - return true; - } - if (ch === 118) { - state.lastIntValue = 11; - state.advance(); - return true; - } - if (ch === 102) { - state.lastIntValue = 12; - state.advance(); - return true; - } - if (ch === 114) { - state.lastIntValue = 13; - state.advance(); - return true; - } - return false; - }; - pp$12.regexp_eatControlLetter = function(state) { - var ch = state.current(); - if (isControlLetter2(ch)) { - state.lastIntValue = ch % 32; - state.advance(); - return true; - } - return false; - }; - function isControlLetter2(ch) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122; - } - pp$12.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) { - if (forceU === void 0) forceU = false; - var start = state.pos; - var switchU = forceU || state.switchU; - if (state.eat( - 117 - /* u */ - )) { - if (this.regexp_eatFixedHexDigits(state, 4)) { - var lead = state.lastIntValue; - if (switchU && lead >= 55296 && lead <= 56319) { - var leadSurrogateEnd = state.pos; - if (state.eat( - 92 - /* \ */ - ) && state.eat( - 117 - /* u */ - ) && this.regexp_eatFixedHexDigits(state, 4)) { - var trail = state.lastIntValue; - if (trail >= 56320 && trail <= 57343) { - state.lastIntValue = (lead - 55296) * 1024 + (trail - 56320) + 65536; - return true; - } - } - state.pos = leadSurrogateEnd; - state.lastIntValue = lead; - } - return true; - } - if (switchU && state.eat( - 123 - /* { */ - ) && this.regexp_eatHexDigits(state) && state.eat( - 125 - /* } */ - ) && isValidUnicode2(state.lastIntValue)) { - return true; - } - if (switchU) { - state.raise("Invalid unicode escape"); - } - state.pos = start; - } - return false; - }; - function isValidUnicode2(ch) { - return ch >= 0 && ch <= 1114111; - } - pp$12.regexp_eatIdentityEscape = function(state) { - if (state.switchU) { - if (this.regexp_eatSyntaxCharacter(state)) { - return true; - } - if (state.eat( - 47 - /* / */ - )) { - state.lastIntValue = 47; - return true; - } - return false; - } - var ch = state.current(); - if (ch !== 99 && (!state.switchN || ch !== 107)) { - state.lastIntValue = ch; - state.advance(); - return true; - } - return false; - }; - pp$12.regexp_eatDecimalEscape = function(state) { - state.lastIntValue = 0; - var ch = state.current(); - if (ch >= 49 && ch <= 57) { - do { - state.lastIntValue = 10 * state.lastIntValue + (ch - 48); - state.advance(); - } while ((ch = state.current()) >= 48 && ch <= 57); - return true; - } - return false; - }; - var CharSetNone2 = 0; - var CharSetOk2 = 1; - var CharSetString2 = 2; - pp$12.regexp_eatCharacterClassEscape = function(state) { - var ch = state.current(); - if (isCharacterClassEscape2(ch)) { - state.lastIntValue = -1; - state.advance(); - return CharSetOk2; - } - var negate = false; - if (state.switchU && this.options.ecmaVersion >= 9 && ((negate = ch === 80) || ch === 112)) { - state.lastIntValue = -1; - state.advance(); - var result; - if (state.eat( - 123 - /* { */ - ) && (result = this.regexp_eatUnicodePropertyValueExpression(state)) && state.eat( - 125 - /* } */ - )) { - if (negate && result === CharSetString2) { - state.raise("Invalid property name"); - } - return result; - } - state.raise("Invalid property name"); - } - return CharSetNone2; - }; - function isCharacterClassEscape2(ch) { - return ch === 100 || ch === 68 || ch === 115 || ch === 83 || ch === 119 || ch === 87; - } - pp$12.regexp_eatUnicodePropertyValueExpression = function(state) { - var start = state.pos; - if (this.regexp_eatUnicodePropertyName(state) && state.eat( - 61 - /* = */ - )) { - var name = state.lastStringValue; - if (this.regexp_eatUnicodePropertyValue(state)) { - var value = state.lastStringValue; - this.regexp_validateUnicodePropertyNameAndValue(state, name, value); - return CharSetOk2; - } - } - state.pos = start; - if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) { - var nameOrValue = state.lastStringValue; - return this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue); - } - return CharSetNone2; - }; - pp$12.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) { - if (!hasOwn2(state.unicodeProperties.nonBinary, name)) { - state.raise("Invalid property name"); - } - if (!state.unicodeProperties.nonBinary[name].test(value)) { - state.raise("Invalid property value"); - } - }; - pp$12.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) { - if (state.unicodeProperties.binary.test(nameOrValue)) { - return CharSetOk2; - } - if (state.switchV && state.unicodeProperties.binaryOfStrings.test(nameOrValue)) { - return CharSetString2; - } - state.raise("Invalid property name"); - }; - pp$12.regexp_eatUnicodePropertyName = function(state) { - var ch = 0; - state.lastStringValue = ""; - while (isUnicodePropertyNameCharacter2(ch = state.current())) { - state.lastStringValue += codePointToString2(ch); - state.advance(); - } - return state.lastStringValue !== ""; - }; - function isUnicodePropertyNameCharacter2(ch) { - return isControlLetter2(ch) || ch === 95; - } - pp$12.regexp_eatUnicodePropertyValue = function(state) { - var ch = 0; - state.lastStringValue = ""; - while (isUnicodePropertyValueCharacter2(ch = state.current())) { - state.lastStringValue += codePointToString2(ch); - state.advance(); - } - return state.lastStringValue !== ""; - }; - function isUnicodePropertyValueCharacter2(ch) { - return isUnicodePropertyNameCharacter2(ch) || isDecimalDigit2(ch); - } - pp$12.regexp_eatLoneUnicodePropertyNameOrValue = function(state) { - return this.regexp_eatUnicodePropertyValue(state); - }; - pp$12.regexp_eatCharacterClass = function(state) { - if (state.eat( - 91 - /* [ */ - )) { - var negate = state.eat( - 94 - /* ^ */ - ); - var result = this.regexp_classContents(state); - if (!state.eat( - 93 - /* ] */ - )) { - state.raise("Unterminated character class"); - } - if (negate && result === CharSetString2) { - state.raise("Negated character class may contain strings"); - } - return true; - } - return false; - }; - pp$12.regexp_classContents = function(state) { - if (state.current() === 93) { - return CharSetOk2; - } - if (state.switchV) { - return this.regexp_classSetExpression(state); - } - this.regexp_nonEmptyClassRanges(state); - return CharSetOk2; - }; - pp$12.regexp_nonEmptyClassRanges = function(state) { - while (this.regexp_eatClassAtom(state)) { - var left = state.lastIntValue; - if (state.eat( - 45 - /* - */ - ) && this.regexp_eatClassAtom(state)) { - var right = state.lastIntValue; - if (state.switchU && (left === -1 || right === -1)) { - state.raise("Invalid character class"); - } - if (left !== -1 && right !== -1 && left > right) { - state.raise("Range out of order in character class"); - } - } - } - }; - pp$12.regexp_eatClassAtom = function(state) { - var start = state.pos; - if (state.eat( - 92 - /* \ */ - )) { - if (this.regexp_eatClassEscape(state)) { - return true; - } - if (state.switchU) { - var ch$1 = state.current(); - if (ch$1 === 99 || isOctalDigit2(ch$1)) { - state.raise("Invalid class escape"); - } - state.raise("Invalid escape"); - } - state.pos = start; - } - var ch = state.current(); - if (ch !== 93) { - state.lastIntValue = ch; - state.advance(); - return true; - } - return false; - }; - pp$12.regexp_eatClassEscape = function(state) { - var start = state.pos; - if (state.eat( - 98 - /* b */ - )) { - state.lastIntValue = 8; - return true; - } - if (state.switchU && state.eat( - 45 - /* - */ - )) { - state.lastIntValue = 45; - return true; - } - if (!state.switchU && state.eat( - 99 - /* c */ - )) { - if (this.regexp_eatClassControlLetter(state)) { - return true; - } - state.pos = start; - } - return this.regexp_eatCharacterClassEscape(state) || this.regexp_eatCharacterEscape(state); - }; - pp$12.regexp_classSetExpression = function(state) { - var result = CharSetOk2, subResult; - if (this.regexp_eatClassSetRange(state)) ; - else if (subResult = this.regexp_eatClassSetOperand(state)) { - if (subResult === CharSetString2) { - result = CharSetString2; - } - var start = state.pos; - while (state.eatChars( - [38, 38] - /* && */ - )) { - if (state.current() !== 38 && (subResult = this.regexp_eatClassSetOperand(state))) { - if (subResult !== CharSetString2) { - result = CharSetOk2; - } - continue; - } - state.raise("Invalid character in character class"); - } - if (start !== state.pos) { - return result; - } - while (state.eatChars( - [45, 45] - /* -- */ - )) { - if (this.regexp_eatClassSetOperand(state)) { - continue; - } - state.raise("Invalid character in character class"); - } - if (start !== state.pos) { - return result; - } - } else { - state.raise("Invalid character in character class"); - } - for (; ; ) { - if (this.regexp_eatClassSetRange(state)) { - continue; - } - subResult = this.regexp_eatClassSetOperand(state); - if (!subResult) { - return result; - } - if (subResult === CharSetString2) { - result = CharSetString2; - } - } - }; - pp$12.regexp_eatClassSetRange = function(state) { - var start = state.pos; - if (this.regexp_eatClassSetCharacter(state)) { - var left = state.lastIntValue; - if (state.eat( - 45 - /* - */ - ) && this.regexp_eatClassSetCharacter(state)) { - var right = state.lastIntValue; - if (left !== -1 && right !== -1 && left > right) { - state.raise("Range out of order in character class"); - } - return true; - } - state.pos = start; - } - return false; - }; - pp$12.regexp_eatClassSetOperand = function(state) { - if (this.regexp_eatClassSetCharacter(state)) { - return CharSetOk2; - } - return this.regexp_eatClassStringDisjunction(state) || this.regexp_eatNestedClass(state); - }; - pp$12.regexp_eatNestedClass = function(state) { - var start = state.pos; - if (state.eat( - 91 - /* [ */ - )) { - var negate = state.eat( - 94 - /* ^ */ - ); - var result = this.regexp_classContents(state); - if (state.eat( - 93 - /* ] */ - )) { - if (negate && result === CharSetString2) { - state.raise("Negated character class may contain strings"); - } - return result; - } - state.pos = start; - } - if (state.eat( - 92 - /* \ */ - )) { - var result$1 = this.regexp_eatCharacterClassEscape(state); - if (result$1) { - return result$1; - } - state.pos = start; - } - return null; - }; - pp$12.regexp_eatClassStringDisjunction = function(state) { - var start = state.pos; - if (state.eatChars( - [92, 113] - /* \q */ - )) { - if (state.eat( - 123 - /* { */ - )) { - var result = this.regexp_classStringDisjunctionContents(state); - if (state.eat( - 125 - /* } */ - )) { - return result; - } - } else { - state.raise("Invalid escape"); - } - state.pos = start; - } - return null; - }; - pp$12.regexp_classStringDisjunctionContents = function(state) { - var result = this.regexp_classString(state); - while (state.eat( - 124 - /* | */ - )) { - if (this.regexp_classString(state) === CharSetString2) { - result = CharSetString2; - } - } - return result; - }; - pp$12.regexp_classString = function(state) { - var count = 0; - while (this.regexp_eatClassSetCharacter(state)) { - count++; - } - return count === 1 ? CharSetOk2 : CharSetString2; - }; - pp$12.regexp_eatClassSetCharacter = function(state) { - var start = state.pos; - if (state.eat( - 92 - /* \ */ - )) { - if (this.regexp_eatCharacterEscape(state) || this.regexp_eatClassSetReservedPunctuator(state)) { - return true; - } - if (state.eat( - 98 - /* b */ - )) { - state.lastIntValue = 8; - return true; - } - state.pos = start; - return false; - } - var ch = state.current(); - if (ch < 0 || ch === state.lookahead() && isClassSetReservedDoublePunctuatorCharacter2(ch)) { - return false; - } - if (isClassSetSyntaxCharacter2(ch)) { - return false; - } - state.advance(); - state.lastIntValue = ch; - return true; - }; - function isClassSetReservedDoublePunctuatorCharacter2(ch) { - return ch === 33 || ch >= 35 && ch <= 38 || ch >= 42 && ch <= 44 || ch === 46 || ch >= 58 && ch <= 64 || ch === 94 || ch === 96 || ch === 126; - } - function isClassSetSyntaxCharacter2(ch) { - return ch === 40 || ch === 41 || ch === 45 || ch === 47 || ch >= 91 && ch <= 93 || ch >= 123 && ch <= 125; - } - pp$12.regexp_eatClassSetReservedPunctuator = function(state) { - var ch = state.current(); - if (isClassSetReservedPunctuator2(ch)) { - state.lastIntValue = ch; - state.advance(); - return true; - } - return false; - }; - function isClassSetReservedPunctuator2(ch) { - return ch === 33 || ch === 35 || ch === 37 || ch === 38 || ch === 44 || ch === 45 || ch >= 58 && ch <= 62 || ch === 64 || ch === 96 || ch === 126; - } - pp$12.regexp_eatClassControlLetter = function(state) { - var ch = state.current(); - if (isDecimalDigit2(ch) || ch === 95) { - state.lastIntValue = ch % 32; - state.advance(); - return true; - } - return false; - }; - pp$12.regexp_eatHexEscapeSequence = function(state) { - var start = state.pos; - if (state.eat( - 120 - /* x */ - )) { - if (this.regexp_eatFixedHexDigits(state, 2)) { - return true; - } - if (state.switchU) { - state.raise("Invalid escape"); - } - state.pos = start; - } - return false; - }; - pp$12.regexp_eatDecimalDigits = function(state) { - var start = state.pos; - var ch = 0; - state.lastIntValue = 0; - while (isDecimalDigit2(ch = state.current())) { - state.lastIntValue = 10 * state.lastIntValue + (ch - 48); - state.advance(); - } - return state.pos !== start; - }; - function isDecimalDigit2(ch) { - return ch >= 48 && ch <= 57; - } - pp$12.regexp_eatHexDigits = function(state) { - var start = state.pos; - var ch = 0; - state.lastIntValue = 0; - while (isHexDigit2(ch = state.current())) { - state.lastIntValue = 16 * state.lastIntValue + hexToInt2(ch); - state.advance(); - } - return state.pos !== start; - }; - function isHexDigit2(ch) { - return ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102; - } - function hexToInt2(ch) { - if (ch >= 65 && ch <= 70) { - return 10 + (ch - 65); - } - if (ch >= 97 && ch <= 102) { - return 10 + (ch - 97); - } - return ch - 48; - } - pp$12.regexp_eatLegacyOctalEscapeSequence = function(state) { - if (this.regexp_eatOctalDigit(state)) { - var n1 = state.lastIntValue; - if (this.regexp_eatOctalDigit(state)) { - var n2 = state.lastIntValue; - if (n1 <= 3 && this.regexp_eatOctalDigit(state)) { - state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue; - } else { - state.lastIntValue = n1 * 8 + n2; - } - } else { - state.lastIntValue = n1; - } - return true; - } - return false; - }; - pp$12.regexp_eatOctalDigit = function(state) { - var ch = state.current(); - if (isOctalDigit2(ch)) { - state.lastIntValue = ch - 48; - state.advance(); - return true; - } - state.lastIntValue = 0; - return false; - }; - function isOctalDigit2(ch) { - return ch >= 48 && ch <= 55; - } - pp$12.regexp_eatFixedHexDigits = function(state, length) { - var start = state.pos; - state.lastIntValue = 0; - for (var i3 = 0; i3 < length; ++i3) { - var ch = state.current(); - if (!isHexDigit2(ch)) { - state.pos = start; - return false; - } - state.lastIntValue = 16 * state.lastIntValue + hexToInt2(ch); - state.advance(); - } - return true; - }; - var Token3 = function Token4(p) { - this.type = p.type; - this.value = p.value; - this.start = p.start; - this.end = p.end; - if (p.options.locations) { - this.loc = new SourceLocation3(p, p.startLoc, p.endLoc); - } - if (p.options.ranges) { - this.range = [p.start, p.end]; - } - }; - var pp2 = Parser3.prototype; - pp2.next = function(ignoreEscapeSequenceInKeyword) { - if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc) { - this.raiseRecoverable(this.start, "Escape sequence in keyword " + this.type.keyword); - } - if (this.options.onToken) { - this.options.onToken(new Token3(this)); - } - this.lastTokEnd = this.end; - this.lastTokStart = this.start; - this.lastTokEndLoc = this.endLoc; - this.lastTokStartLoc = this.startLoc; - this.nextToken(); - }; - pp2.getToken = function() { - this.next(); - return new Token3(this); - }; - if (typeof Symbol !== "undefined") { - pp2[Symbol.iterator] = function() { - var this$1$1 = this; - return { - next: function() { - var token = this$1$1.getToken(); - return { - done: token.type === types$12.eof, - value: token - }; - } - }; - }; - } - pp2.nextToken = function() { - var curContext = this.curContext(); - if (!curContext || !curContext.preserveSpace) { - this.skipSpace(); - } - this.start = this.pos; - if (this.options.locations) { - this.startLoc = this.curPosition(); - } - if (this.pos >= this.input.length) { - return this.finishToken(types$12.eof); - } - if (curContext.override) { - return curContext.override(this); - } else { - this.readToken(this.fullCharCodeAtPos()); - } - }; - pp2.readToken = function(code) { - if (isIdentifierStart2(code, this.options.ecmaVersion >= 6) || code === 92) { - return this.readWord(); - } - return this.getTokenFromCode(code); - }; - pp2.fullCharCodeAt = function(pos) { - var code = this.input.charCodeAt(pos); - if (code <= 55295 || code >= 56320) { - return code; - } - var next = this.input.charCodeAt(pos + 1); - return next <= 56319 || next >= 57344 ? code : (code << 10) + next - 56613888; - }; - pp2.fullCharCodeAtPos = function() { - return this.fullCharCodeAt(this.pos); - }; - pp2.skipBlockComment = function() { - var startLoc = this.options.onComment && this.curPosition(); - var start = this.pos, end = this.input.indexOf("*/", this.pos += 2); - if (end === -1) { - this.raise(this.pos - 2, "Unterminated comment"); - } - this.pos = end + 2; - if (this.options.locations) { - for (var nextBreak = void 0, pos = start; (nextBreak = nextLineBreak2(this.input, pos, this.pos)) > -1; ) { - ++this.curLine; - pos = this.lineStart = nextBreak; - } - } - if (this.options.onComment) { - this.options.onComment( - true, - this.input.slice(start + 2, end), - start, - this.pos, - startLoc, - this.curPosition() - ); - } - }; - pp2.skipLineComment = function(startSkip) { - var start = this.pos; - var startLoc = this.options.onComment && this.curPosition(); - var ch = this.input.charCodeAt(this.pos += startSkip); - while (this.pos < this.input.length && !isNewLine2(ch)) { - ch = this.input.charCodeAt(++this.pos); - } - if (this.options.onComment) { - this.options.onComment( - false, - this.input.slice(start + startSkip, this.pos), - start, - this.pos, - startLoc, - this.curPosition() - ); - } - }; - pp2.skipSpace = function() { - loop: while (this.pos < this.input.length) { - var ch = this.input.charCodeAt(this.pos); - switch (ch) { - case 32: - case 160: - ++this.pos; - break; - case 13: - if (this.input.charCodeAt(this.pos + 1) === 10) { - ++this.pos; - } - case 10: - case 8232: - case 8233: - ++this.pos; - if (this.options.locations) { - ++this.curLine; - this.lineStart = this.pos; - } - break; - case 47: - switch (this.input.charCodeAt(this.pos + 1)) { - case 42: - this.skipBlockComment(); - break; - case 47: - this.skipLineComment(2); - break; - default: - break loop; - } - break; - default: - if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace2.test(String.fromCharCode(ch))) { - ++this.pos; - } else { - break loop; - } - } - } - }; - pp2.finishToken = function(type, val) { - this.end = this.pos; - if (this.options.locations) { - this.endLoc = this.curPosition(); - } - var prevType = this.type; - this.type = type; - this.value = val; - this.updateContext(prevType); - }; - pp2.readToken_dot = function() { - var next = this.input.charCodeAt(this.pos + 1); - if (next >= 48 && next <= 57) { - return this.readNumber(true); - } - var next2 = this.input.charCodeAt(this.pos + 2); - if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { - this.pos += 3; - return this.finishToken(types$12.ellipsis); - } else { - ++this.pos; - return this.finishToken(types$12.dot); - } - }; - pp2.readToken_slash = function() { - var next = this.input.charCodeAt(this.pos + 1); - if (this.exprAllowed) { - ++this.pos; - return this.readRegexp(); - } - if (next === 61) { - return this.finishOp(types$12.assign, 2); - } - return this.finishOp(types$12.slash, 1); - }; - pp2.readToken_mult_modulo_exp = function(code) { - var next = this.input.charCodeAt(this.pos + 1); - var size = 1; - var tokentype = code === 42 ? types$12.star : types$12.modulo; - if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) { - ++size; - tokentype = types$12.starstar; - next = this.input.charCodeAt(this.pos + 2); - } - if (next === 61) { - return this.finishOp(types$12.assign, size + 1); - } - return this.finishOp(tokentype, size); - }; - pp2.readToken_pipe_amp = function(code) { - var next = this.input.charCodeAt(this.pos + 1); - if (next === code) { - if (this.options.ecmaVersion >= 12) { - var next2 = this.input.charCodeAt(this.pos + 2); - if (next2 === 61) { - return this.finishOp(types$12.assign, 3); - } - } - return this.finishOp(code === 124 ? types$12.logicalOR : types$12.logicalAND, 2); - } - if (next === 61) { - return this.finishOp(types$12.assign, 2); - } - return this.finishOp(code === 124 ? types$12.bitwiseOR : types$12.bitwiseAND, 1); - }; - pp2.readToken_caret = function() { - var next = this.input.charCodeAt(this.pos + 1); - if (next === 61) { - return this.finishOp(types$12.assign, 2); - } - return this.finishOp(types$12.bitwiseXOR, 1); - }; - pp2.readToken_plus_min = function(code) { - var next = this.input.charCodeAt(this.pos + 1); - if (next === code) { - if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 && (this.lastTokEnd === 0 || lineBreak2.test(this.input.slice(this.lastTokEnd, this.pos)))) { - this.skipLineComment(3); - this.skipSpace(); - return this.nextToken(); - } - return this.finishOp(types$12.incDec, 2); - } - if (next === 61) { - return this.finishOp(types$12.assign, 2); - } - return this.finishOp(types$12.plusMin, 1); - }; - pp2.readToken_lt_gt = function(code) { - var next = this.input.charCodeAt(this.pos + 1); - var size = 1; - if (next === code) { - size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2; - if (this.input.charCodeAt(this.pos + size) === 61) { - return this.finishOp(types$12.assign, size + 1); - } - return this.finishOp(types$12.bitShift, size); - } - if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && this.input.charCodeAt(this.pos + 3) === 45) { - this.skipLineComment(4); - this.skipSpace(); - return this.nextToken(); - } - if (next === 61) { - size = 2; - } - return this.finishOp(types$12.relational, size); - }; - pp2.readToken_eq_excl = function(code) { - var next = this.input.charCodeAt(this.pos + 1); - if (next === 61) { - return this.finishOp(types$12.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2); - } - if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { - this.pos += 2; - return this.finishToken(types$12.arrow); - } - return this.finishOp(code === 61 ? types$12.eq : types$12.prefix, 1); - }; - pp2.readToken_question = function() { - var ecmaVersion3 = this.options.ecmaVersion; - if (ecmaVersion3 >= 11) { - var next = this.input.charCodeAt(this.pos + 1); - if (next === 46) { - var next2 = this.input.charCodeAt(this.pos + 2); - if (next2 < 48 || next2 > 57) { - return this.finishOp(types$12.questionDot, 2); - } - } - if (next === 63) { - if (ecmaVersion3 >= 12) { - var next2$1 = this.input.charCodeAt(this.pos + 2); - if (next2$1 === 61) { - return this.finishOp(types$12.assign, 3); - } - } - return this.finishOp(types$12.coalesce, 2); - } - } - return this.finishOp(types$12.question, 1); - }; - pp2.readToken_numberSign = function() { - var ecmaVersion3 = this.options.ecmaVersion; - var code = 35; - if (ecmaVersion3 >= 13) { - ++this.pos; - code = this.fullCharCodeAtPos(); - if (isIdentifierStart2(code, true) || code === 92) { - return this.finishToken(types$12.privateId, this.readWord1()); - } - } - this.raise(this.pos, "Unexpected character '" + codePointToString2(code) + "'"); - }; - pp2.getTokenFromCode = function(code) { - switch (code) { - // The interpretation of a dot depends on whether it is followed - // by a digit or another two dots. - case 46: - return this.readToken_dot(); - // Punctuation tokens. - case 40: - ++this.pos; - return this.finishToken(types$12.parenL); - case 41: - ++this.pos; - return this.finishToken(types$12.parenR); - case 59: - ++this.pos; - return this.finishToken(types$12.semi); - case 44: - ++this.pos; - return this.finishToken(types$12.comma); - case 91: - ++this.pos; - return this.finishToken(types$12.bracketL); - case 93: - ++this.pos; - return this.finishToken(types$12.bracketR); - case 123: - ++this.pos; - return this.finishToken(types$12.braceL); - case 125: - ++this.pos; - return this.finishToken(types$12.braceR); - case 58: - ++this.pos; - return this.finishToken(types$12.colon); - case 96: - if (this.options.ecmaVersion < 6) { - break; - } - ++this.pos; - return this.finishToken(types$12.backQuote); - case 48: - var next = this.input.charCodeAt(this.pos + 1); - if (next === 120 || next === 88) { - return this.readRadixNumber(16); - } - if (this.options.ecmaVersion >= 6) { - if (next === 111 || next === 79) { - return this.readRadixNumber(8); - } - if (next === 98 || next === 66) { - return this.readRadixNumber(2); - } - } - // Anything else beginning with a digit is an integer, octal - // number, or float. - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - return this.readNumber(false); - // Quotes produce strings. - case 34: - case 39: - return this.readString(code); - // Operators are parsed inline in tiny state machines. '=' (61) is - // often referred to. `finishOp` simply skips the amount of - // characters it is given as second argument, and returns a token - // of the type given by its first argument. - case 47: - return this.readToken_slash(); - case 37: - case 42: - return this.readToken_mult_modulo_exp(code); - case 124: - case 38: - return this.readToken_pipe_amp(code); - case 94: - return this.readToken_caret(); - case 43: - case 45: - return this.readToken_plus_min(code); - case 60: - case 62: - return this.readToken_lt_gt(code); - case 61: - case 33: - return this.readToken_eq_excl(code); - case 63: - return this.readToken_question(); - case 126: - return this.finishOp(types$12.prefix, 1); - case 35: - return this.readToken_numberSign(); - } - this.raise(this.pos, "Unexpected character '" + codePointToString2(code) + "'"); - }; - pp2.finishOp = function(type, size) { - var str = this.input.slice(this.pos, this.pos + size); - this.pos += size; - return this.finishToken(type, str); - }; - pp2.readRegexp = function() { - var escaped, inClass, start = this.pos; - for (; ; ) { - if (this.pos >= this.input.length) { - this.raise(start, "Unterminated regular expression"); - } - var ch = this.input.charAt(this.pos); - if (lineBreak2.test(ch)) { - this.raise(start, "Unterminated regular expression"); - } - if (!escaped) { - if (ch === "[") { - inClass = true; - } else if (ch === "]" && inClass) { - inClass = false; - } else if (ch === "/" && !inClass) { - break; - } - escaped = ch === "\\"; - } else { - escaped = false; - } - ++this.pos; - } - var pattern = this.input.slice(start, this.pos); - ++this.pos; - var flagsStart = this.pos; - var flags = this.readWord1(); - if (this.containsEsc) { - this.unexpected(flagsStart); - } - var state = this.regexpState || (this.regexpState = new RegExpValidationState3(this)); - state.reset(start, pattern, flags); - this.validateRegExpFlags(state); - this.validateRegExpPattern(state); - var value = null; - try { - value = new RegExp(pattern, flags); - } catch (e) { - } - return this.finishToken(types$12.regexp, { pattern, flags, value }); - }; - pp2.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) { - var allowSeparators = this.options.ecmaVersion >= 12 && len === void 0; - var isLegacyOctalNumericLiteral = maybeLegacyOctalNumericLiteral && this.input.charCodeAt(this.pos) === 48; - var start = this.pos, total = 0, lastCode = 0; - for (var i3 = 0, e = len == null ? Infinity : len; i3 < e; ++i3, ++this.pos) { - var code = this.input.charCodeAt(this.pos), val = void 0; - if (allowSeparators && code === 95) { - if (isLegacyOctalNumericLiteral) { - this.raiseRecoverable(this.pos, "Numeric separator is not allowed in legacy octal numeric literals"); - } - if (lastCode === 95) { - this.raiseRecoverable(this.pos, "Numeric separator must be exactly one underscore"); - } - if (i3 === 0) { - this.raiseRecoverable(this.pos, "Numeric separator is not allowed at the first of digits"); - } - lastCode = code; - continue; - } - if (code >= 97) { - val = code - 97 + 10; - } else if (code >= 65) { - val = code - 65 + 10; - } else if (code >= 48 && code <= 57) { - val = code - 48; - } else { - val = Infinity; - } - if (val >= radix) { - break; - } - lastCode = code; - total = total * radix + val; - } - if (allowSeparators && lastCode === 95) { - this.raiseRecoverable(this.pos - 1, "Numeric separator is not allowed at the last of digits"); - } - if (this.pos === start || len != null && this.pos - start !== len) { - return null; - } - return total; - }; - function stringToNumber2(str, isLegacyOctalNumericLiteral) { - if (isLegacyOctalNumericLiteral) { - return parseInt(str, 8); - } - return parseFloat(str.replace(/_/g, "")); - } - function stringToBigInt2(str) { - if (typeof BigInt !== "function") { - return null; - } - return BigInt(str.replace(/_/g, "")); - } - pp2.readRadixNumber = function(radix) { - var start = this.pos; - this.pos += 2; - var val = this.readInt(radix); - if (val == null) { - this.raise(this.start + 2, "Expected number in radix " + radix); - } - if (this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110) { - val = stringToBigInt2(this.input.slice(start, this.pos)); - ++this.pos; - } else if (isIdentifierStart2(this.fullCharCodeAtPos())) { - this.raise(this.pos, "Identifier directly after number"); - } - return this.finishToken(types$12.num, val); - }; - pp2.readNumber = function(startsWithDot) { - var start = this.pos; - if (!startsWithDot && this.readInt(10, void 0, true) === null) { - this.raise(start, "Invalid number"); - } - var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48; - if (octal && this.strict) { - this.raise(start, "Invalid number"); - } - var next = this.input.charCodeAt(this.pos); - if (!octal && !startsWithDot && this.options.ecmaVersion >= 11 && next === 110) { - var val$1 = stringToBigInt2(this.input.slice(start, this.pos)); - ++this.pos; - if (isIdentifierStart2(this.fullCharCodeAtPos())) { - this.raise(this.pos, "Identifier directly after number"); - } - return this.finishToken(types$12.num, val$1); - } - if (octal && /[89]/.test(this.input.slice(start, this.pos))) { - octal = false; - } - if (next === 46 && !octal) { - ++this.pos; - this.readInt(10); - next = this.input.charCodeAt(this.pos); - } - if ((next === 69 || next === 101) && !octal) { - next = this.input.charCodeAt(++this.pos); - if (next === 43 || next === 45) { - ++this.pos; - } - if (this.readInt(10) === null) { - this.raise(start, "Invalid number"); - } - } - if (isIdentifierStart2(this.fullCharCodeAtPos())) { - this.raise(this.pos, "Identifier directly after number"); - } - var val = stringToNumber2(this.input.slice(start, this.pos), octal); - return this.finishToken(types$12.num, val); - }; - pp2.readCodePoint = function() { - var ch = this.input.charCodeAt(this.pos), code; - if (ch === 123) { - if (this.options.ecmaVersion < 6) { - this.unexpected(); - } - var codePos = ++this.pos; - code = this.readHexChar(this.input.indexOf("}", this.pos) - this.pos); - ++this.pos; - if (code > 1114111) { - this.invalidStringToken(codePos, "Code point out of bounds"); - } - } else { - code = this.readHexChar(4); - } - return code; - }; - pp2.readString = function(quote) { - var out = "", chunkStart = ++this.pos; - for (; ; ) { - if (this.pos >= this.input.length) { - this.raise(this.start, "Unterminated string constant"); - } - var ch = this.input.charCodeAt(this.pos); - if (ch === quote) { - break; - } - if (ch === 92) { - out += this.input.slice(chunkStart, this.pos); - out += this.readEscapedChar(false); - chunkStart = this.pos; - } else if (ch === 8232 || ch === 8233) { - if (this.options.ecmaVersion < 10) { - this.raise(this.start, "Unterminated string constant"); - } - ++this.pos; - if (this.options.locations) { - this.curLine++; - this.lineStart = this.pos; - } - } else { - if (isNewLine2(ch)) { - this.raise(this.start, "Unterminated string constant"); - } - ++this.pos; - } - } - out += this.input.slice(chunkStart, this.pos++); - return this.finishToken(types$12.string, out); - }; - var INVALID_TEMPLATE_ESCAPE_ERROR2 = {}; - pp2.tryReadTemplateToken = function() { - this.inTemplateElement = true; - try { - this.readTmplToken(); - } catch (err) { - if (err === INVALID_TEMPLATE_ESCAPE_ERROR2) { - this.readInvalidTemplateToken(); - } else { - throw err; - } - } - this.inTemplateElement = false; - }; - pp2.invalidStringToken = function(position, message) { - if (this.inTemplateElement && this.options.ecmaVersion >= 9) { - throw INVALID_TEMPLATE_ESCAPE_ERROR2; - } else { - this.raise(position, message); - } - }; - pp2.readTmplToken = function() { - var out = "", chunkStart = this.pos; - for (; ; ) { - if (this.pos >= this.input.length) { - this.raise(this.start, "Unterminated template"); - } - var ch = this.input.charCodeAt(this.pos); - if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { - if (this.pos === this.start && (this.type === types$12.template || this.type === types$12.invalidTemplate)) { - if (ch === 36) { - this.pos += 2; - return this.finishToken(types$12.dollarBraceL); - } else { - ++this.pos; - return this.finishToken(types$12.backQuote); - } - } - out += this.input.slice(chunkStart, this.pos); - return this.finishToken(types$12.template, out); - } - if (ch === 92) { - out += this.input.slice(chunkStart, this.pos); - out += this.readEscapedChar(true); - chunkStart = this.pos; - } else if (isNewLine2(ch)) { - out += this.input.slice(chunkStart, this.pos); - ++this.pos; - switch (ch) { - case 13: - if (this.input.charCodeAt(this.pos) === 10) { - ++this.pos; - } - case 10: - out += "\n"; - break; - default: - out += String.fromCharCode(ch); - break; - } - if (this.options.locations) { - ++this.curLine; - this.lineStart = this.pos; - } - chunkStart = this.pos; - } else { - ++this.pos; - } - } - }; - pp2.readInvalidTemplateToken = function() { - for (; this.pos < this.input.length; this.pos++) { - switch (this.input[this.pos]) { - case "\\": - ++this.pos; - break; - case "$": - if (this.input[this.pos + 1] !== "{") { - break; - } - // fall through - case "`": - return this.finishToken(types$12.invalidTemplate, this.input.slice(this.start, this.pos)); - case "\r": - if (this.input[this.pos + 1] === "\n") { - ++this.pos; - } - // fall through - case "\n": - case "\u2028": - case "\u2029": - ++this.curLine; - this.lineStart = this.pos + 1; - break; - } - } - this.raise(this.start, "Unterminated template"); - }; - pp2.readEscapedChar = function(inTemplate) { - var ch = this.input.charCodeAt(++this.pos); - ++this.pos; - switch (ch) { - case 110: - return "\n"; - // 'n' -> '\n' - case 114: - return "\r"; - // 'r' -> '\r' - case 120: - return String.fromCharCode(this.readHexChar(2)); - // 'x' - case 117: - return codePointToString2(this.readCodePoint()); - // 'u' - case 116: - return " "; - // 't' -> '\t' - case 98: - return "\b"; - // 'b' -> '\b' - case 118: - return "\v"; - // 'v' -> '\u000b' - case 102: - return "\f"; - // 'f' -> '\f' - case 13: - if (this.input.charCodeAt(this.pos) === 10) { - ++this.pos; - } - // '\r\n' - case 10: - if (this.options.locations) { - this.lineStart = this.pos; - ++this.curLine; - } - return ""; - case 56: - case 57: - if (this.strict) { - this.invalidStringToken( - this.pos - 1, - "Invalid escape sequence" - ); - } - if (inTemplate) { - var codePos = this.pos - 1; - this.invalidStringToken( - codePos, - "Invalid escape sequence in template string" - ); - } - default: - if (ch >= 48 && ch <= 55) { - var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0]; - var octal = parseInt(octalStr, 8); - if (octal > 255) { - octalStr = octalStr.slice(0, -1); - octal = parseInt(octalStr, 8); - } - this.pos += octalStr.length - 1; - ch = this.input.charCodeAt(this.pos); - if ((octalStr !== "0" || ch === 56 || ch === 57) && (this.strict || inTemplate)) { - this.invalidStringToken( - this.pos - 1 - octalStr.length, - inTemplate ? "Octal literal in template string" : "Octal literal in strict mode" - ); - } - return String.fromCharCode(octal); - } - if (isNewLine2(ch)) { - if (this.options.locations) { - this.lineStart = this.pos; - ++this.curLine; - } - return ""; - } - return String.fromCharCode(ch); - } - }; - pp2.readHexChar = function(len) { - var codePos = this.pos; - var n = this.readInt(16, len); - if (n === null) { - this.invalidStringToken(codePos, "Bad character escape sequence"); - } - return n; - }; - pp2.readWord1 = function() { - this.containsEsc = false; - var word = "", first = true, chunkStart = this.pos; - var astral = this.options.ecmaVersion >= 6; - while (this.pos < this.input.length) { - var ch = this.fullCharCodeAtPos(); - if (isIdentifierChar2(ch, astral)) { - this.pos += ch <= 65535 ? 1 : 2; - } else if (ch === 92) { - this.containsEsc = true; - word += this.input.slice(chunkStart, this.pos); - var escStart = this.pos; - if (this.input.charCodeAt(++this.pos) !== 117) { - this.invalidStringToken(this.pos, "Expecting Unicode escape sequence \\uXXXX"); - } - ++this.pos; - var esc2 = this.readCodePoint(); - if (!(first ? isIdentifierStart2 : isIdentifierChar2)(esc2, astral)) { - this.invalidStringToken(escStart, "Invalid Unicode escape"); - } - word += codePointToString2(esc2); - chunkStart = this.pos; - } else { - break; - } - first = false; - } - return word + this.input.slice(chunkStart, this.pos); - }; - pp2.readWord = function() { - var word = this.readWord1(); - var type = types$12.name; - if (this.keywords.test(word)) { - type = keywords2[word]; - } - return this.finishToken(type, word); - }; - var version3 = "8.16.0"; - Parser3.acorn = { - Parser: Parser3, - version: version3, - defaultOptions: defaultOptions2, - Position: Position3, - SourceLocation: SourceLocation3, - getLineInfo: getLineInfo2, - Node: Node3, - TokenType: TokenType3, - tokTypes: types$12, - keywordTypes: keywords2, - TokContext: TokContext3, - tokContexts: types2, - isIdentifierChar: isIdentifierChar2, - isIdentifierStart: isIdentifierStart2, - Token: Token3, - isNewLine: isNewLine2, - lineBreak: lineBreak2, - lineBreakG: lineBreakG2, - nonASCIIwhitespace: nonASCIIwhitespace2 - }; - function parse5(input, options) { - return Parser3.parse(input, options); - } - function parseExpressionAt2(input, pos, options) { - return Parser3.parseExpressionAt(input, pos, options); - } - function tokenizer2(input, options) { - return Parser3.tokenizer(input, options); - } - exports2.Node = Node3; - exports2.Parser = Parser3; - exports2.Position = Position3; - exports2.SourceLocation = SourceLocation3; - exports2.TokContext = TokContext3; - exports2.Token = Token3; - exports2.TokenType = TokenType3; - exports2.defaultOptions = defaultOptions2; - exports2.getLineInfo = getLineInfo2; - exports2.isIdentifierChar = isIdentifierChar2; - exports2.isIdentifierStart = isIdentifierStart2; - exports2.isNewLine = isNewLine2; - exports2.keywordTypes = keywords2; - exports2.lineBreak = lineBreak2; - exports2.lineBreakG = lineBreakG2; - exports2.nonASCIIwhitespace = nonASCIIwhitespace2; - exports2.parse = parse5; - exports2.parseExpressionAt = parseExpressionAt2; - exports2.tokContexts = types2; - exports2.tokTypes = types$12; - exports2.tokenizer = tokenizer2; - exports2.version = version3; - })); - } -}); - -// node_modules/acorn-jsx/index.js -var require_acorn_jsx = __commonJS({ - "node_modules/acorn-jsx/index.js"(exports, module2) { - "use strict"; - var XHTMLEntities = require_xhtml(); - var hexNumber = /^[\da-fA-F]+$/; - var decimalNumber = /^\d+$/; - var acornJsxMap = /* @__PURE__ */ new WeakMap(); - function getJsxTokens(acorn) { - acorn = acorn.Parser.acorn || acorn; - let acornJsx = acornJsxMap.get(acorn); - if (!acornJsx) { - const tt = acorn.tokTypes; - const TokContext3 = acorn.TokContext; - const TokenType3 = acorn.TokenType; - const tc_oTag = new TokContext3("...", true, true); - const tokContexts = { - tc_oTag, - tc_cTag, - tc_expr - }; - const tokTypes = { - jsxName: new TokenType3("jsxName"), - jsxText: new TokenType3("jsxText", { beforeExpr: true }), - jsxTagStart: new TokenType3("jsxTagStart", { startsExpr: true }), - jsxTagEnd: new TokenType3("jsxTagEnd") - }; - tokTypes.jsxTagStart.updateContext = function() { - this.context.push(tc_expr); - this.context.push(tc_oTag); - this.exprAllowed = false; - }; - tokTypes.jsxTagEnd.updateContext = function(prevType) { - let out = this.context.pop(); - if (out === tc_oTag && prevType === tt.slash || out === tc_cTag) { - this.context.pop(); - this.exprAllowed = this.curContext() === tc_expr; - } else { - this.exprAllowed = true; - } - }; - acornJsx = { tokContexts, tokTypes }; - acornJsxMap.set(acorn, acornJsx); - } - return acornJsx; - } - function getQualifiedJSXName(object2) { - if (!object2) - return object2; - if (object2.type === "JSXIdentifier") - return object2.name; - if (object2.type === "JSXNamespacedName") - return object2.namespace.name + ":" + object2.name.name; - if (object2.type === "JSXMemberExpression") - return getQualifiedJSXName(object2.object) + "." + getQualifiedJSXName(object2.property); - } - module2.exports = function(options) { - options = options || {}; - return function(Parser3) { - return plugin({ - allowNamespaces: options.allowNamespaces !== false, - allowNamespacedObjects: !!options.allowNamespacedObjects - }, Parser3); - }; - }; - Object.defineProperty(module2.exports, "tokTypes", { - get: function get_tokTypes() { - return getJsxTokens(require_acorn()).tokTypes; - }, - configurable: true, - enumerable: true - }); - function plugin(options, Parser3) { - const acorn = Parser3.acorn || require_acorn(); - const acornJsx = getJsxTokens(acorn); - const tt = acorn.tokTypes; - const tok = acornJsx.tokTypes; - const tokContexts = acorn.tokContexts; - const tc_oTag = acornJsx.tokContexts.tc_oTag; - const tc_cTag = acornJsx.tokContexts.tc_cTag; - const tc_expr = acornJsx.tokContexts.tc_expr; - const isNewLine2 = acorn.isNewLine; - const isIdentifierStart2 = acorn.isIdentifierStart; - const isIdentifierChar2 = acorn.isIdentifierChar; - return class extends Parser3 { - // Expose actual `tokTypes` and `tokContexts` to other plugins. - static get acornJsx() { - return acornJsx; - } - // Reads inline JSX contents token. - jsx_readToken() { - let out = "", chunkStart = this.pos; - for (; ; ) { - if (this.pos >= this.input.length) - this.raise(this.start, "Unterminated JSX contents"); - let ch = this.input.charCodeAt(this.pos); - switch (ch) { - case 60: - // '<' - case 123: - if (this.pos === this.start) { - if (ch === 60 && this.exprAllowed) { - ++this.pos; - return this.finishToken(tok.jsxTagStart); - } - return this.getTokenFromCode(ch); - } - out += this.input.slice(chunkStart, this.pos); - return this.finishToken(tok.jsxText, out); - case 38: - out += this.input.slice(chunkStart, this.pos); - out += this.jsx_readEntity(); - chunkStart = this.pos; - break; - case 62: - // '>' - case 125: - this.raise( - this.pos, - "Unexpected token `" + this.input[this.pos] + "`. Did you mean `" + (ch === 62 ? ">" : "}") + '` or `{"' + this.input[this.pos] + '"}`?' - ); - default: - if (isNewLine2(ch)) { - out += this.input.slice(chunkStart, this.pos); - out += this.jsx_readNewLine(true); - chunkStart = this.pos; - } else { - ++this.pos; - } - } - } - } - jsx_readNewLine(normalizeCRLF) { - let ch = this.input.charCodeAt(this.pos); - let out; - ++this.pos; - if (ch === 13 && this.input.charCodeAt(this.pos) === 10) { - ++this.pos; - out = normalizeCRLF ? "\n" : "\r\n"; - } else { - out = String.fromCharCode(ch); - } - if (this.options.locations) { - ++this.curLine; - this.lineStart = this.pos; - } - return out; - } - jsx_readString(quote) { - let out = "", chunkStart = ++this.pos; - for (; ; ) { - if (this.pos >= this.input.length) - this.raise(this.start, "Unterminated string constant"); - let ch = this.input.charCodeAt(this.pos); - if (ch === quote) break; - if (ch === 38) { - out += this.input.slice(chunkStart, this.pos); - out += this.jsx_readEntity(); - chunkStart = this.pos; - } else if (isNewLine2(ch)) { - out += this.input.slice(chunkStart, this.pos); - out += this.jsx_readNewLine(false); - chunkStart = this.pos; - } else { - ++this.pos; - } - } - out += this.input.slice(chunkStart, this.pos++); - return this.finishToken(tt.string, out); - } - jsx_readEntity() { - let str = "", count = 0, entity; - let ch = this.input[this.pos]; - if (ch !== "&") - this.raise(this.pos, "Entity must start with an ampersand"); - let startPos = ++this.pos; - while (this.pos < this.input.length && count++ < 10) { - ch = this.input[this.pos++]; - if (ch === ";") { - if (str[0] === "#") { - if (str[1] === "x") { - str = str.substr(2); - if (hexNumber.test(str)) - entity = String.fromCharCode(parseInt(str, 16)); - } else { - str = str.substr(1); - if (decimalNumber.test(str)) - entity = String.fromCharCode(parseInt(str, 10)); - } - } else { - entity = XHTMLEntities[str]; - } - break; - } - str += ch; - } - if (!entity) { - this.pos = startPos; - return "&"; - } - return entity; - } - // Read a JSX identifier (valid tag or attribute name). - // - // Optimized version since JSX identifiers can't contain - // escape characters and so can be read as single slice. - // Also assumes that first character was already checked - // by isIdentifierStart in readToken. - jsx_readWord() { - let ch, start = this.pos; - do { - ch = this.input.charCodeAt(++this.pos); - } while (isIdentifierChar2(ch) || ch === 45); - return this.finishToken(tok.jsxName, this.input.slice(start, this.pos)); - } - // Parse next token as JSX identifier - jsx_parseIdentifier() { - let node = this.startNode(); - if (this.type === tok.jsxName) - node.name = this.value; - else if (this.type.keyword) - node.name = this.type.keyword; - else - this.unexpected(); - this.next(); - return this.finishNode(node, "JSXIdentifier"); - } - // Parse namespaced identifier. - jsx_parseNamespacedName() { - let startPos = this.start, startLoc = this.startLoc; - let name = this.jsx_parseIdentifier(); - if (!options.allowNamespaces || !this.eat(tt.colon)) return name; - var node = this.startNodeAt(startPos, startLoc); - node.namespace = name; - node.name = this.jsx_parseIdentifier(); - return this.finishNode(node, "JSXNamespacedName"); - } - // Parses element name in any form - namespaced, member - // or single identifier. - jsx_parseElementName() { - if (this.type === tok.jsxTagEnd) return ""; - let startPos = this.start, startLoc = this.startLoc; - let node = this.jsx_parseNamespacedName(); - if (this.type === tt.dot && node.type === "JSXNamespacedName" && !options.allowNamespacedObjects) { - this.unexpected(); - } - while (this.eat(tt.dot)) { - let newNode = this.startNodeAt(startPos, startLoc); - newNode.object = node; - newNode.property = this.jsx_parseIdentifier(); - node = this.finishNode(newNode, "JSXMemberExpression"); - } - return node; - } - // Parses any type of JSX attribute value. - jsx_parseAttributeValue() { - switch (this.type) { - case tt.braceL: - let node = this.jsx_parseExpressionContainer(); - if (node.expression.type === "JSXEmptyExpression") - this.raise(node.start, "JSX attributes must only be assigned a non-empty expression"); - return node; - case tok.jsxTagStart: - case tt.string: - return this.parseExprAtom(); - default: - this.raise(this.start, "JSX value should be either an expression or a quoted JSX text"); - } - } - // JSXEmptyExpression is unique type since it doesn't actually parse anything, - // and so it should start at the end of last read token (left brace) and finish - // at the beginning of the next one (right brace). - jsx_parseEmptyExpression() { - let node = this.startNodeAt(this.lastTokEnd, this.lastTokEndLoc); - return this.finishNodeAt(node, "JSXEmptyExpression", this.start, this.startLoc); - } - // Parses JSX expression enclosed into curly brackets. - jsx_parseExpressionContainer() { - let node = this.startNode(); - this.next(); - node.expression = this.type === tt.braceR ? this.jsx_parseEmptyExpression() : this.parseExpression(); - this.expect(tt.braceR); - return this.finishNode(node, "JSXExpressionContainer"); - } - // Parses following JSX attribute name-value pair. - jsx_parseAttribute() { - let node = this.startNode(); - if (this.eat(tt.braceL)) { - this.expect(tt.ellipsis); - node.argument = this.parseMaybeAssign(); - this.expect(tt.braceR); - return this.finishNode(node, "JSXSpreadAttribute"); - } - node.name = this.jsx_parseNamespacedName(); - node.value = this.eat(tt.eq) ? this.jsx_parseAttributeValue() : null; - return this.finishNode(node, "JSXAttribute"); - } - // Parses JSX opening tag starting after '<'. - jsx_parseOpeningElementAt(startPos, startLoc) { - let node = this.startNodeAt(startPos, startLoc); - node.attributes = []; - let nodeName = this.jsx_parseElementName(); - if (nodeName) node.name = nodeName; - while (this.type !== tt.slash && this.type !== tok.jsxTagEnd) - node.attributes.push(this.jsx_parseAttribute()); - node.selfClosing = this.eat(tt.slash); - this.expect(tok.jsxTagEnd); - return this.finishNode(node, nodeName ? "JSXOpeningElement" : "JSXOpeningFragment"); - } - // Parses JSX closing tag starting after '" - ); - } - } - let fragmentOrElement = openingElement.name ? "Element" : "Fragment"; - node["opening" + fragmentOrElement] = openingElement; - node["closing" + fragmentOrElement] = closingElement; - node.children = children; - if (this.type === tt.relational && this.value === "<") { - this.raise(this.start, "Adjacent JSX elements must be wrapped in an enclosing tag"); - } - return this.finishNode(node, "JSX" + fragmentOrElement); - } - // Parse JSX text - jsx_parseText() { - let node = this.parseLiteral(this.value); - node.type = "JSXText"; - return node; - } - // Parses entire JSX element from current position. - jsx_parseElement() { - let startPos = this.start, startLoc = this.startLoc; - this.next(); - return this.jsx_parseElementAt(startPos, startLoc); - } - parseExprAtom(refShortHandDefaultPos) { - if (this.type === tok.jsxText) - return this.jsx_parseText(); - else if (this.type === tok.jsxTagStart) - return this.jsx_parseElement(); - else - return super.parseExprAtom(refShortHandDefaultPos); - } - readToken(code) { - let context = this.curContext(); - if (context === tc_expr) return this.jsx_readToken(); - if (context === tc_oTag || context === tc_cTag) { - if (isIdentifierStart2(code)) return this.jsx_readWord(); - if (code == 62) { - ++this.pos; - return this.finishToken(tok.jsxTagEnd); - } - if ((code === 34 || code === 39) && context == tc_oTag) - return this.jsx_readString(code); - } - if (code === 60 && this.exprAllowed && this.input.charCodeAt(this.pos + 1) !== 33) { - ++this.pos; - return this.finishToken(tok.jsxTagStart); - } - return super.readToken(code); - } - updateContext(prevType) { - if (this.type == tt.braceL) { - var curContext = this.curContext(); - if (curContext == tc_oTag) this.context.push(tokContexts.b_expr); - else if (curContext == tc_expr) this.context.push(tokContexts.b_tmpl); - else super.updateContext(prevType); - this.exprAllowed = true; - } else if (this.type === tt.slash && prevType === tok.jsxTagStart) { - this.context.length -= 2; - this.context.push(tc_cTag); - this.exprAllowed = false; - } else { - return super.updateContext(prevType); - } - } - }; - } - } -}); - -// node_modules/punycode/punycode.es6.js -var punycode_es6_exports = {}; -__export(punycode_es6_exports, { - decode: () => decode3, - default: () => punycode_es6_default, - encode: () => encode3, - toASCII: () => toASCII, - toUnicode: () => toUnicode, - ucs2decode: () => ucs2decode, - ucs2encode: () => ucs2encode -}); -function error51(type) { - throw new RangeError(errors[type]); -} -function map2(array2, callback) { - const result = []; - let length = array2.length; - while (length--) { - result[length] = callback(array2[length]); - } - return result; -} -function mapDomain(domain2, callback) { - const parts = domain2.split("@"); - let result = ""; - if (parts.length > 1) { - result = parts[0] + "@"; - domain2 = parts[1]; - } - domain2 = domain2.replace(regexSeparators, "."); - const labels = domain2.split("."); - const encoded = map2(labels, callback).join("."); - return result + encoded; -} -function ucs2decode(string4) { - const output = []; - let counter = 0; - const length = string4.length; - while (counter < length) { - const value = string4.charCodeAt(counter++); - if (value >= 55296 && value <= 56319 && counter < length) { - const extra = string4.charCodeAt(counter++); - if ((extra & 64512) == 56320) { - output.push(((value & 1023) << 10) + (extra & 1023) + 65536); - } else { - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; -} -var maxInt, base, tMin, tMax, skew, damp, initialBias, initialN, delimiter, regexPunycode, regexNonASCII, regexSeparators, errors, baseMinusTMin, floor, stringFromCharCode, ucs2encode, basicToDigit, digitToBasic, adapt, decode3, encode3, toUnicode, toASCII, punycode, punycode_es6_default; -var init_punycode_es6 = __esm({ - "node_modules/punycode/punycode.es6.js"() { - "use strict"; - maxInt = 2147483647; - base = 36; - tMin = 1; - tMax = 26; - skew = 38; - damp = 700; - initialBias = 72; - initialN = 128; - delimiter = "-"; - regexPunycode = /^xn--/; - regexNonASCII = /[^\0-\x7F]/; - regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; - errors = { - "overflow": "Overflow: input needs wider integers to process", - "not-basic": "Illegal input >= 0x80 (not a basic code point)", - "invalid-input": "Invalid input" - }; - baseMinusTMin = base - tMin; - floor = Math.floor; - stringFromCharCode = String.fromCharCode; - ucs2encode = (codePoints) => String.fromCodePoint(...codePoints); - basicToDigit = function(codePoint) { - if (codePoint >= 48 && codePoint < 58) { - return 26 + (codePoint - 48); - } - if (codePoint >= 65 && codePoint < 91) { - return codePoint - 65; - } - if (codePoint >= 97 && codePoint < 123) { - return codePoint - 97; - } - return base; - }; - digitToBasic = function(digit, flag) { - return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); - }; - adapt = function(delta, numPoints, firstTime) { - let k = 0; - delta = firstTime ? floor(delta / damp) : delta >> 1; - delta += floor(delta / numPoints); - for (; delta > baseMinusTMin * tMax >> 1; k += base) { - delta = floor(delta / baseMinusTMin); - } - return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); - }; - decode3 = function(input) { - const output = []; - const inputLength = input.length; - let i2 = 0; - let n = initialN; - let bias = initialBias; - let basic = input.lastIndexOf(delimiter); - if (basic < 0) { - basic = 0; - } - for (let j = 0; j < basic; ++j) { - if (input.charCodeAt(j) >= 128) { - error51("not-basic"); - } - output.push(input.charCodeAt(j)); - } - for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; ) { - const oldi = i2; - for (let w = 1, k = base; ; k += base) { - if (index >= inputLength) { - error51("invalid-input"); - } - const digit = basicToDigit(input.charCodeAt(index++)); - if (digit >= base) { - error51("invalid-input"); - } - if (digit > floor((maxInt - i2) / w)) { - error51("overflow"); - } - i2 += digit * w; - const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; - if (digit < t) { - break; - } - const baseMinusT = base - t; - if (w > floor(maxInt / baseMinusT)) { - error51("overflow"); - } - w *= baseMinusT; - } - const out = output.length + 1; - bias = adapt(i2 - oldi, out, oldi == 0); - if (floor(i2 / out) > maxInt - n) { - error51("overflow"); - } - n += floor(i2 / out); - i2 %= out; - output.splice(i2++, 0, n); - } - return String.fromCodePoint(...output); - }; - encode3 = function(input) { - const output = []; - input = ucs2decode(input); - const inputLength = input.length; - let n = initialN; - let delta = 0; - let bias = initialBias; - for (const currentValue of input) { - if (currentValue < 128) { - output.push(stringFromCharCode(currentValue)); - } - } - const basicLength = output.length; - let handledCPCount = basicLength; - if (basicLength) { - output.push(delimiter); - } - while (handledCPCount < inputLength) { - let m = maxInt; - for (const currentValue of input) { - if (currentValue >= n && currentValue < m) { - m = currentValue; - } - } - const handledCPCountPlusOne = handledCPCount + 1; - if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { - error51("overflow"); - } - delta += (m - n) * handledCPCountPlusOne; - n = m; - for (const currentValue of input) { - if (currentValue < n && ++delta > maxInt) { - error51("overflow"); - } - if (currentValue === n) { - let q = delta; - for (let k = base; ; k += base) { - const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; - if (q < t) { - break; - } - const qMinusT = q - t; - const baseMinusT = base - t; - output.push( - stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) - ); - q = floor(qMinusT / baseMinusT); - } - output.push(stringFromCharCode(digitToBasic(q, 0))); - bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength); - delta = 0; - ++handledCPCount; - } - } - ++delta; - ++n; - } - return output.join(""); - }; - toUnicode = function(input) { - return mapDomain(input, function(string4) { - return regexPunycode.test(string4) ? decode3(string4.slice(4).toLowerCase()) : string4; - }); - }; - toASCII = function(input) { - return mapDomain(input, function(string4) { - return regexNonASCII.test(string4) ? "xn--" + encode3(string4) : string4; - }); - }; - punycode = { - /** - * A string representing the current Punycode.js version number. - * @memberOf punycode - * @type String - */ - "version": "2.3.1", - /** - * An object of methods to convert from JavaScript's internal character - * representation (UCS-2) to Unicode code points, and back. - * @see - * @memberOf punycode - * @type Object - */ - "ucs2": { - "decode": ucs2decode, - "encode": ucs2encode - }, - "decode": decode3, - "encode": encode3, - "toASCII": toASCII, - "toUnicode": toUnicode - }; - punycode_es6_default = punycode; - } -}); - -// node_modules/tr46/lib/regexes.js -var require_regexes = __commonJS({ - "node_modules/tr46/lib/regexes.js"(exports, module2) { - "use strict"; - var combiningMarks = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{10D24}-\u{10D27}\u{10D69}-\u{10D6D}\u{10EAB}\u{10EAC}\u{10EFA}-\u{10EFF}\u{10F46}-\u{10F50}\u{10F82}-\u{10F85}\u{11000}-\u{11002}\u{11038}-\u{11046}\u{11070}\u{11073}\u{11074}\u{1107F}-\u{11082}\u{110B0}-\u{110BA}\u{110C2}\u{11100}-\u{11102}\u{11127}-\u{11134}\u{11145}\u{11146}\u{11173}\u{11180}-\u{11182}\u{111B3}-\u{111C0}\u{111C9}-\u{111CC}\u{111CE}\u{111CF}\u{1122C}-\u{11237}\u{1123E}\u{11241}\u{112DF}-\u{112EA}\u{11300}-\u{11303}\u{1133B}\u{1133C}\u{1133E}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11357}\u{11362}\u{11363}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{113B8}-\u{113C0}\u{113C2}\u{113C5}\u{113C7}-\u{113CA}\u{113CC}-\u{113D0}\u{113D2}\u{113E1}\u{113E2}\u{11435}-\u{11446}\u{1145E}\u{114B0}-\u{114C3}\u{115AF}-\u{115B5}\u{115B8}-\u{115C0}\u{115DC}\u{115DD}\u{11630}-\u{11640}\u{116AB}-\u{116B7}\u{1171D}-\u{1172B}\u{1182C}-\u{1183A}\u{11930}-\u{11935}\u{11937}\u{11938}\u{1193B}-\u{1193E}\u{11940}\u{11942}\u{11943}\u{119D1}-\u{119D7}\u{119DA}-\u{119E0}\u{119E4}\u{11A01}-\u{11A0A}\u{11A33}-\u{11A39}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A5B}\u{11A8A}-\u{11A99}\u{11B60}-\u{11B67}\u{11C2F}-\u{11C36}\u{11C38}-\u{11C3F}\u{11C92}-\u{11CA7}\u{11CA9}-\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{11D8A}-\u{11D8E}\u{11D90}\u{11D91}\u{11D93}-\u{11D97}\u{11EF3}-\u{11EF6}\u{11F00}\u{11F01}\u{11F03}\u{11F34}-\u{11F3A}\u{11F3E}-\u{11F42}\u{11F5A}\u{13440}\u{13447}-\u{13455}\u{1611E}-\u{1612F}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F4F}\u{16F51}-\u{16F87}\u{16F8F}-\u{16F92}\u{16FE4}\u{16FF0}\u{16FF1}\u{1BC9D}\u{1BC9E}\u{1CF00}-\u{1CF2D}\u{1CF30}-\u{1CF46}\u{1D165}-\u{1D169}\u{1D16D}-\u{1D172}\u{1D17B}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E08F}\u{1E130}-\u{1E136}\u{1E2AE}\u{1E2EC}-\u{1E2EF}\u{1E4EC}-\u{1E4EF}\u{1E5EE}\u{1E5EF}\u{1E6E3}\u{1E6E6}\u{1E6EE}\u{1E6EF}\u{1E6F5}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0100}-\u{E01EF}]/u; - var combiningClassVirama = /[\u094D\u09CD\u0A4D\u0ACD\u0B4D\u0BCD\u0C4D\u0CCD\u0D3B\u0D3C\u0D4D\u0DCA\u0E3A\u0EBA\u0F84\u1039\u103A\u1714\u1715\u1734\u17D2\u1A60\u1B44\u1BAA\u1BAB\u1BF2\u1BF3\u2D7F\uA806\uA82C\uA8C4\uA953\uA9C0\uAAF6\uABED\u{10A3F}\u{11046}\u{11070}\u{1107F}\u{110B9}\u{11133}\u{11134}\u{111C0}\u{11235}\u{112EA}\u{1134D}\u{113CE}-\u{113D0}\u{11442}\u{114C2}\u{115BF}\u{1163F}\u{116B6}\u{1172B}\u{11839}\u{1193D}\u{1193E}\u{119E0}\u{11A34}\u{11A47}\u{11A99}\u{11C3F}\u{11D44}\u{11D45}\u{11D97}\u{11F41}\u{11F42}\u{1612F}]/u; - var validZWNJ = /[\u0620\u0626\u0628\u062A-\u062E\u0633-\u063F\u0641-\u0647\u0649\u064A\u066E\u066F\u0678-\u0687\u069A-\u06BF\u06C1\u06C2\u06CC\u06CE\u06D0\u06D1\u06FA-\u06FC\u06FF\u0712-\u0714\u071A-\u071D\u071F-\u0727\u0729\u072B\u072D\u072E\u074E-\u0758\u075C-\u076A\u076D-\u0770\u0772\u0775-\u0777\u077A-\u077F\u07CA-\u07EA\u0841-\u0845\u0848\u084A-\u0853\u0855\u0860\u0862-\u0865\u0868\u0886\u0889-\u088D\u088F\u08A0-\u08A9\u08AF\u08B0\u08B3-\u08B8\u08BA-\u08C8\u1807\u1820-\u1878\u1887-\u18A8\u18AA\uA840-\uA872\u{10AC0}-\u{10AC4}\u{10ACD}\u{10AD3}-\u{10ADC}\u{10ADE}-\u{10AE0}\u{10AEB}-\u{10AEE}\u{10B80}\u{10B82}\u{10B86}-\u{10B88}\u{10B8A}\u{10B8B}\u{10B8D}\u{10B90}\u{10BAD}\u{10BAE}\u{10D00}-\u{10D21}\u{10D23}\u{10EC3}\u{10EC4}\u{10EC6}\u{10EC7}\u{10F30}-\u{10F32}\u{10F34}-\u{10F44}\u{10F51}-\u{10F53}\u{10F70}-\u{10F73}\u{10F76}-\u{10F81}\u{10FB0}\u{10FB2}\u{10FB3}\u{10FB8}\u{10FBB}\u{10FBC}\u{10FBE}\u{10FBF}\u{10FC1}\u{10FC4}\u{10FCA}\u{10FCB}\u{1E900}-\u{1E943}][\xAD\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u061C\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u070F\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B55\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0D81\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u200B\u200E\u200F\u202A-\u202E\u2060-\u2064\u206A-\u206F\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFEFF\uFFF9-\uFFFB\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{10D24}-\u{10D27}\u{10D69}-\u{10D6D}\u{10EAB}\u{10EAC}\u{10EFA}-\u{10EFF}\u{10F46}-\u{10F50}\u{10F82}-\u{10F85}\u{11001}\u{11038}-\u{11046}\u{11070}\u{11073}\u{11074}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{110C2}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111C9}-\u{111CC}\u{111CF}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{11241}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133B}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{113BB}-\u{113C0}\u{113CE}\u{113D0}\u{113D2}\u{113E1}\u{113E2}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{1145E}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{1182F}-\u{11837}\u{11839}\u{1183A}\u{1193B}\u{1193C}\u{1193E}\u{11943}\u{119D4}-\u{119D7}\u{119DA}\u{119DB}\u{119E0}\u{11A01}-\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11B60}\u{11B62}-\u{11B64}\u{11B66}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C3F}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{11D90}\u{11D91}\u{11D95}\u{11D97}\u{11EF3}\u{11EF4}\u{11F00}\u{11F01}\u{11F36}-\u{11F3A}\u{11F40}\u{11F42}\u{11F5A}\u{13430}-\u{13440}\u{13447}-\u{13455}\u{1611E}-\u{16129}\u{1612D}-\u{1612F}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F4F}\u{16F8F}-\u{16F92}\u{16FE4}\u{1BC9D}\u{1BC9E}\u{1BCA0}-\u{1BCA3}\u{1CF00}-\u{1CF2D}\u{1CF30}-\u{1CF46}\u{1D167}-\u{1D169}\u{1D173}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E08F}\u{1E130}-\u{1E136}\u{1E2AE}\u{1E2EC}-\u{1E2EF}\u{1E4EC}-\u{1E4EF}\u{1E5EE}\u{1E5EF}\u{1E6E3}\u{1E6E6}\u{1E6EE}\u{1E6EF}\u{1E6F5}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94B}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}]*\u200C[\xAD\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u061C\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u070F\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B55\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0D81\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u200B\u200E\u200F\u202A-\u202E\u2060-\u2064\u206A-\u206F\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFEFF\uFFF9-\uFFFB\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{10D24}-\u{10D27}\u{10D69}-\u{10D6D}\u{10EAB}\u{10EAC}\u{10EFA}-\u{10EFF}\u{10F46}-\u{10F50}\u{10F82}-\u{10F85}\u{11001}\u{11038}-\u{11046}\u{11070}\u{11073}\u{11074}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{110C2}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111C9}-\u{111CC}\u{111CF}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{11241}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133B}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{113BB}-\u{113C0}\u{113CE}\u{113D0}\u{113D2}\u{113E1}\u{113E2}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{1145E}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{1182F}-\u{11837}\u{11839}\u{1183A}\u{1193B}\u{1193C}\u{1193E}\u{11943}\u{119D4}-\u{119D7}\u{119DA}\u{119DB}\u{119E0}\u{11A01}-\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11B60}\u{11B62}-\u{11B64}\u{11B66}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C3F}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{11D90}\u{11D91}\u{11D95}\u{11D97}\u{11EF3}\u{11EF4}\u{11F00}\u{11F01}\u{11F36}-\u{11F3A}\u{11F40}\u{11F42}\u{11F5A}\u{13430}-\u{13440}\u{13447}-\u{13455}\u{1611E}-\u{16129}\u{1612D}-\u{1612F}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F4F}\u{16F8F}-\u{16F92}\u{16FE4}\u{1BC9D}\u{1BC9E}\u{1BCA0}-\u{1BCA3}\u{1CF00}-\u{1CF2D}\u{1CF30}-\u{1CF46}\u{1D167}-\u{1D169}\u{1D173}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E08F}\u{1E130}-\u{1E136}\u{1E2AE}\u{1E2EC}-\u{1E2EF}\u{1E4EC}-\u{1E4EF}\u{1E5EE}\u{1E5EF}\u{1E6E3}\u{1E6E6}\u{1E6EE}\u{1E6EF}\u{1E6F5}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94B}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}]*[\u0620\u0622-\u063F\u0641-\u064A\u066E\u066F\u0671-\u0673\u0675-\u06D3\u06D5\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u077F\u07CA-\u07EA\u0840-\u0858\u0860\u0862-\u0865\u0867-\u086A\u0870-\u0882\u0886\u0889-\u088F\u08A0-\u08AC\u08AE-\u08C8\u1807\u1820-\u1878\u1887-\u18A8\u18AA\uA840-\uA871\u{10AC0}-\u{10AC5}\u{10AC7}\u{10AC9}\u{10ACA}\u{10ACE}-\u{10AD6}\u{10AD8}-\u{10AE1}\u{10AE4}\u{10AEB}-\u{10AEF}\u{10B80}-\u{10B91}\u{10BA9}-\u{10BAE}\u{10D01}-\u{10D23}\u{10EC2}-\u{10EC4}\u{10EC6}\u{10EC7}\u{10F30}-\u{10F44}\u{10F51}-\u{10F54}\u{10F70}-\u{10F81}\u{10FB0}\u{10FB2}-\u{10FB6}\u{10FB8}-\u{10FBF}\u{10FC1}-\u{10FC4}\u{10FC9}\u{10FCA}\u{1E900}-\u{1E943}]/u; - var bidiDomain = /[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05EA\u05EF-\u05F4\u0600-\u0605\u0608\u060B\u060D\u061B-\u064A\u0660-\u0669\u066B-\u066F\u0671-\u06D5\u06DD\u06E5\u06E6\u06EE\u06EF\u06FA-\u070D\u070F\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u083E\u0840-\u0858\u085E\u0860-\u086A\u0870-\u0891\u08A0-\u08C9\u08E2\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBC2\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFC\uFE70-\uFE74\uFE76-\uFEFC\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{10920}-\u{10939}\u{1093F}-\u{10959}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A00}\u{10A10}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A35}\u{10A40}-\u{10A48}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE4}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B40}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10D23}\u{10D30}-\u{10D39}\u{10D40}-\u{10D65}\u{10D6F}-\u{10D85}\u{10D8E}\u{10D8F}\u{10E60}-\u{10E7E}\u{10E80}-\u{10EA9}\u{10EAD}\u{10EB0}\u{10EB1}\u{10EC2}-\u{10EC7}\u{10F00}-\u{10F27}\u{10F30}-\u{10F45}\u{10F51}-\u{10F59}\u{10F70}-\u{10F81}\u{10F86}-\u{10F89}\u{10FB0}-\u{10FCB}\u{10FE0}-\u{10FF6}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8CF}\u{1E900}-\u{1E943}\u{1E94B}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EC71}-\u{1ECB4}\u{1ED01}-\u{1ED3D}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}]/u; - var bidiS1LTR = /[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02BB-\u02C1\u02D0\u02D1\u02E0-\u02E4\u02EE\u0370-\u0373\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0482\u048A-\u052F\u0531-\u0556\u0559-\u0589\u0903-\u0939\u093B\u093D-\u0940\u0949-\u094C\u094E-\u0950\u0958-\u0961\u0964-\u0980\u0982\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C0\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09FA\u09FC\u09FD\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A40\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A76\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC0\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0\u0AE1\u0AE6-\u0AF0\u0AF9\u0B02\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0BE6-\u0BF2\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C41-\u0C44\u0C58-\u0C5A\u0C5C\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C77\u0C7F\u0C80\u0C82-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0CDC-\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1-\u0CF3\u0D02-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D4F\u0D54-\u0D61\u0D66-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E4F-\u0E5B\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00-\u0F17\u0F1A-\u0F34\u0F36\u0F38\u0F3E-\u0F47\u0F49-\u0F6C\u0F7F\u0F85\u0F88-\u0F8C\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE-\u0FDA\u1000-\u102C\u1031\u1038\u103B\u103C\u103F-\u1057\u105A-\u105D\u1061-\u1070\u1075-\u1081\u1083\u1084\u1087-\u108C\u108E-\u109C\u109E-\u10C5\u10C7\u10CD\u10D0-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1360-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u167F\u1681-\u169A\u16A0-\u16F8\u1700-\u1711\u1715\u171F-\u1731\u1734-\u1736\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17B6\u17BE-\u17C5\u17C7\u17C8\u17D4-\u17DA\u17DC\u17E0-\u17E9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A19\u1A1A\u1A1E-\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1A80-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD\u1B04-\u1B33\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B4C\u1B4E-\u1B6A\u1B74-\u1B7F\u1B82-\u1BA1\u1BA6\u1BA7\u1BAA\u1BAE-\u1BE5\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1BFC-\u1C2B\u1C34\u1C35\u1C3B-\u1C49\u1C4D-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CC7\u1CD3\u1CE1\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5-\u1CF7\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200E\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u214F\u2160-\u2188\u2336-\u237A\u2395\u249C-\u24E9\u26AC\u2800-\u28FF\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D70\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u302E\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3190-\u31BF\u31F0-\u321C\u3220-\u324F\u3260-\u327B\u327F-\u32B0\u32C0-\u32CB\u32D0-\u3376\u337B-\u33DD\u33E0-\u33FE\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA60C\uA610-\uA62B\uA640-\uA66E\uA680-\uA69D\uA6A0-\uA6EF\uA6F2-\uA6F7\uA722-\uA787\uA789-\uA7DC\uA7F1-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA824\uA827\uA830-\uA837\uA840-\uA873\uA880-\uA8C3\uA8CE-\uA8D9\uA8F2-\uA8FE\uA900-\uA925\uA92E-\uA946\uA952\uA953\uA95F-\uA97C\uA983-\uA9B2\uA9B4\uA9B5\uA9BA\uA9BB\uA9BE-\uA9CD\uA9CF-\uA9D9\uA9DE-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA2F\uAA30\uAA33\uAA34\uAA40-\uAA42\uAA44-\uAA4B\uAA4D\uAA50-\uAA59\uAA5C-\uAA7B\uAA7D-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAAEB\uAAEE-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB69\uAB70-\uABE4\uABE6\uABE7\uABE9-\uABEC\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uD800-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\u{10000}-\u{1000B}\u{1000D}-\u{10026}\u{10028}-\u{1003A}\u{1003C}\u{1003D}\u{1003F}-\u{1004D}\u{10050}-\u{1005D}\u{10080}-\u{100FA}\u{10100}\u{10102}\u{10107}-\u{10133}\u{10137}-\u{1013F}\u{1018D}\u{1018E}\u{101D0}-\u{101FC}\u{10280}-\u{1029C}\u{102A0}-\u{102D0}\u{10300}-\u{10323}\u{1032D}-\u{1034A}\u{10350}-\u{10375}\u{10380}-\u{1039D}\u{1039F}-\u{103C3}\u{103C8}-\u{103D5}\u{10400}-\u{1049D}\u{104A0}-\u{104A9}\u{104B0}-\u{104D3}\u{104D8}-\u{104FB}\u{10500}-\u{10527}\u{10530}-\u{10563}\u{1056F}-\u{1057A}\u{1057C}-\u{1058A}\u{1058C}-\u{10592}\u{10594}\u{10595}\u{10597}-\u{105A1}\u{105A3}-\u{105B1}\u{105B3}-\u{105B9}\u{105BB}\u{105BC}\u{105C0}-\u{105F3}\u{10600}-\u{10736}\u{10740}-\u{10755}\u{10760}-\u{10767}\u{10780}-\u{10785}\u{10787}-\u{107B0}\u{107B2}-\u{107BA}\u{11000}\u{11002}-\u{11037}\u{11047}-\u{1104D}\u{11066}-\u{1106F}\u{11071}\u{11072}\u{11075}\u{11082}-\u{110B2}\u{110B7}\u{110B8}\u{110BB}-\u{110C1}\u{110CD}\u{110D0}-\u{110E8}\u{110F0}-\u{110F9}\u{11103}-\u{11126}\u{1112C}\u{11136}-\u{11147}\u{11150}-\u{11172}\u{11174}-\u{11176}\u{11182}-\u{111B5}\u{111BF}-\u{111C8}\u{111CD}\u{111CE}\u{111D0}-\u{111DF}\u{111E1}-\u{111F4}\u{11200}-\u{11211}\u{11213}-\u{1122E}\u{11232}\u{11233}\u{11235}\u{11238}-\u{1123D}\u{1123F}\u{11240}\u{11280}-\u{11286}\u{11288}\u{1128A}-\u{1128D}\u{1128F}-\u{1129D}\u{1129F}-\u{112A9}\u{112B0}-\u{112DE}\u{112E0}-\u{112E2}\u{112F0}-\u{112F9}\u{11302}\u{11303}\u{11305}-\u{1130C}\u{1130F}\u{11310}\u{11313}-\u{11328}\u{1132A}-\u{11330}\u{11332}\u{11333}\u{11335}-\u{11339}\u{1133D}-\u{1133F}\u{11341}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11350}\u{11357}\u{1135D}-\u{11363}\u{11380}-\u{11389}\u{1138B}\u{1138E}\u{11390}-\u{113B5}\u{113B7}-\u{113BA}\u{113C2}\u{113C5}\u{113C7}-\u{113CA}\u{113CC}\u{113CD}\u{113CF}\u{113D1}\u{113D3}-\u{113D5}\u{113D7}\u{113D8}\u{11400}-\u{11437}\u{11440}\u{11441}\u{11445}\u{11447}-\u{1145B}\u{1145D}\u{1145F}-\u{11461}\u{11480}-\u{114B2}\u{114B9}\u{114BB}-\u{114BE}\u{114C1}\u{114C4}-\u{114C7}\u{114D0}-\u{114D9}\u{11580}-\u{115B1}\u{115B8}-\u{115BB}\u{115BE}\u{115C1}-\u{115DB}\u{11600}-\u{11632}\u{1163B}\u{1163C}\u{1163E}\u{11641}-\u{11644}\u{11650}-\u{11659}\u{11680}-\u{116AA}\u{116AC}\u{116AE}\u{116AF}\u{116B6}\u{116B8}\u{116B9}\u{116C0}-\u{116C9}\u{116D0}-\u{116E3}\u{11700}-\u{1171A}\u{1171E}\u{11720}\u{11721}\u{11726}\u{11730}-\u{11746}\u{11800}-\u{1182E}\u{11838}\u{1183B}\u{118A0}-\u{118F2}\u{118FF}-\u{11906}\u{11909}\u{1190C}-\u{11913}\u{11915}\u{11916}\u{11918}-\u{11935}\u{11937}\u{11938}\u{1193D}\u{1193F}-\u{11942}\u{11944}-\u{11946}\u{11950}-\u{11959}\u{119A0}-\u{119A7}\u{119AA}-\u{119D3}\u{119DC}-\u{119DF}\u{119E1}-\u{119E4}\u{11A00}\u{11A07}\u{11A08}\u{11A0B}-\u{11A32}\u{11A39}\u{11A3A}\u{11A3F}-\u{11A46}\u{11A50}\u{11A57}\u{11A58}\u{11A5C}-\u{11A89}\u{11A97}\u{11A9A}-\u{11AA2}\u{11AB0}-\u{11AF8}\u{11B00}-\u{11B09}\u{11B61}\u{11B65}\u{11B67}\u{11BC0}-\u{11BE1}\u{11BF0}-\u{11BF9}\u{11C00}-\u{11C08}\u{11C0A}-\u{11C2F}\u{11C3E}-\u{11C45}\u{11C50}-\u{11C6C}\u{11C70}-\u{11C8F}\u{11CA9}\u{11CB1}\u{11CB4}\u{11D00}-\u{11D06}\u{11D08}\u{11D09}\u{11D0B}-\u{11D30}\u{11D46}\u{11D50}-\u{11D59}\u{11D60}-\u{11D65}\u{11D67}\u{11D68}\u{11D6A}-\u{11D8E}\u{11D93}\u{11D94}\u{11D96}\u{11D98}\u{11DA0}-\u{11DA9}\u{11DB0}-\u{11DDB}\u{11DE0}-\u{11DE9}\u{11EE0}-\u{11EF2}\u{11EF5}-\u{11EF8}\u{11F02}-\u{11F10}\u{11F12}-\u{11F35}\u{11F3E}\u{11F3F}\u{11F41}\u{11F43}-\u{11F59}\u{11FB0}\u{11FC0}-\u{11FD4}\u{11FFF}-\u{12399}\u{12400}-\u{1246E}\u{12470}-\u{12474}\u{12480}-\u{12543}\u{12F90}-\u{12FF2}\u{13000}-\u{1343F}\u{13441}-\u{13446}\u{13460}-\u{143FA}\u{14400}-\u{14646}\u{16100}-\u{1611D}\u{1612A}-\u{1612C}\u{16130}-\u{16139}\u{16800}-\u{16A38}\u{16A40}-\u{16A5E}\u{16A60}-\u{16A69}\u{16A6E}-\u{16ABE}\u{16AC0}-\u{16AC9}\u{16AD0}-\u{16AED}\u{16AF5}\u{16B00}-\u{16B2F}\u{16B37}-\u{16B45}\u{16B50}-\u{16B59}\u{16B5B}-\u{16B61}\u{16B63}-\u{16B77}\u{16B7D}-\u{16B8F}\u{16D40}-\u{16D79}\u{16E40}-\u{16E9A}\u{16EA0}-\u{16EB8}\u{16EBB}-\u{16ED3}\u{16F00}-\u{16F4A}\u{16F50}-\u{16F87}\u{16F93}-\u{16F9F}\u{16FE0}\u{16FE1}\u{16FE3}\u{16FF0}-\u{16FF6}\u{17000}-\u{18CD5}\u{18CFF}-\u{18D1E}\u{18D80}-\u{18DF2}\u{1AFF0}-\u{1AFF3}\u{1AFF5}-\u{1AFFB}\u{1AFFD}\u{1AFFE}\u{1B000}-\u{1B122}\u{1B132}\u{1B150}-\u{1B152}\u{1B155}\u{1B164}-\u{1B167}\u{1B170}-\u{1B2FB}\u{1BC00}-\u{1BC6A}\u{1BC70}-\u{1BC7C}\u{1BC80}-\u{1BC88}\u{1BC90}-\u{1BC99}\u{1BC9C}\u{1BC9F}\u{1CCD6}-\u{1CCEF}\u{1CF50}-\u{1CFC3}\u{1D000}-\u{1D0F5}\u{1D100}-\u{1D126}\u{1D129}-\u{1D166}\u{1D16A}-\u{1D172}\u{1D183}\u{1D184}\u{1D18C}-\u{1D1A9}\u{1D1AE}-\u{1D1E8}\u{1D2C0}-\u{1D2D3}\u{1D2E0}-\u{1D2F3}\u{1D360}-\u{1D378}\u{1D400}-\u{1D454}\u{1D456}-\u{1D49C}\u{1D49E}\u{1D49F}\u{1D4A2}\u{1D4A5}\u{1D4A6}\u{1D4A9}-\u{1D4AC}\u{1D4AE}-\u{1D4B9}\u{1D4BB}\u{1D4BD}-\u{1D4C3}\u{1D4C5}-\u{1D505}\u{1D507}-\u{1D50A}\u{1D50D}-\u{1D514}\u{1D516}-\u{1D51C}\u{1D51E}-\u{1D539}\u{1D53B}-\u{1D53E}\u{1D540}-\u{1D544}\u{1D546}\u{1D54A}-\u{1D550}\u{1D552}-\u{1D6A5}\u{1D6A8}-\u{1D6C0}\u{1D6C2}-\u{1D6DA}\u{1D6DC}-\u{1D6FA}\u{1D6FC}-\u{1D714}\u{1D716}-\u{1D734}\u{1D736}-\u{1D74E}\u{1D750}-\u{1D76E}\u{1D770}-\u{1D788}\u{1D78A}-\u{1D7A8}\u{1D7AA}-\u{1D7C2}\u{1D7C4}-\u{1D7CB}\u{1D800}-\u{1D9FF}\u{1DA37}-\u{1DA3A}\u{1DA6D}-\u{1DA74}\u{1DA76}-\u{1DA83}\u{1DA85}-\u{1DA8B}\u{1DF00}-\u{1DF1E}\u{1DF25}-\u{1DF2A}\u{1E030}-\u{1E06D}\u{1E100}-\u{1E12C}\u{1E137}-\u{1E13D}\u{1E140}-\u{1E149}\u{1E14E}\u{1E14F}\u{1E290}-\u{1E2AD}\u{1E2C0}-\u{1E2EB}\u{1E2F0}-\u{1E2F9}\u{1E4D0}-\u{1E4EB}\u{1E4F0}-\u{1E4F9}\u{1E5D0}-\u{1E5ED}\u{1E5F0}-\u{1E5FA}\u{1E5FF}\u{1E6C0}-\u{1E6DE}\u{1E6E0}-\u{1E6E2}\u{1E6E4}\u{1E6E5}\u{1E6E7}-\u{1E6ED}\u{1E6F0}-\u{1E6F4}\u{1E6FE}\u{1E6FF}\u{1E7E0}-\u{1E7E6}\u{1E7E8}-\u{1E7EB}\u{1E7ED}\u{1E7EE}\u{1E7F0}-\u{1E7FE}\u{1F110}-\u{1F12E}\u{1F130}-\u{1F169}\u{1F170}-\u{1F1AC}\u{1F1E6}-\u{1F202}\u{1F210}-\u{1F23B}\u{1F240}-\u{1F248}\u{1F250}\u{1F251}\u{20000}-\u{2A6DF}\u{2A700}-\u{2B81D}\u{2B820}-\u{2CEAD}\u{2CEB0}-\u{2EBE0}\u{2EBF0}-\u{2EE5D}\u{2F800}-\u{2FA1D}\u{30000}-\u{3134A}\u{31350}-\u{33479}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]/u; - var bidiS1RTL = /[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05EA\u05EF-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u070D\u070F\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u083E\u0840-\u0858\u085E\u0860-\u086A\u0870-\u088F\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBC2\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFC\uFE70-\uFE74\uFE76-\uFEFC\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{10920}-\u{10939}\u{1093F}-\u{10959}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A00}\u{10A10}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A35}\u{10A40}-\u{10A48}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE4}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B40}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10D23}\u{10D4A}-\u{10D65}\u{10D6F}-\u{10D85}\u{10D8E}\u{10D8F}\u{10E80}-\u{10EA9}\u{10EAD}\u{10EB0}\u{10EB1}\u{10EC2}-\u{10EC7}\u{10F00}-\u{10F27}\u{10F30}-\u{10F45}\u{10F51}-\u{10F59}\u{10F70}-\u{10F81}\u{10F86}-\u{10F89}\u{10FB0}-\u{10FCB}\u{10FE0}-\u{10FF6}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8CF}\u{1E900}-\u{1E943}\u{1E94B}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EC71}-\u{1ECB4}\u{1ED01}-\u{1ED3D}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}]/u; - var bidiS2 = /^[\0-\x08\x0E-\x1B!-@\[-`\{-\x84\x86-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02B9\u02BA\u02C2-\u02CF\u02D2-\u02DF\u02E5-\u02ED\u02EF-\u036F\u0374\u0375\u037E\u0384\u0385\u0387\u03F6\u0483-\u0489\u058A\u058D-\u058F\u0591-\u05C7\u05D0-\u05EA\u05EF-\u05F4\u0600-\u070D\u070F-\u074A\u074D-\u07B1\u07C0-\u07FA\u07FD-\u082D\u0830-\u083E\u0840-\u085B\u085E\u0860-\u086A\u0870-\u0891\u0897-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09F2\u09F3\u09FB\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AF1\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B55\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0BF3-\u0BFA\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C78-\u0C7E\u0C81\u0CBC\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0D81\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E3F\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39-\u0F3D\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1390-\u1399\u1400\u169B\u169C\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DB\u17DD\u17F0-\u17F9\u1800-\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1940\u1944\u1945\u19DE-\u19FF\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u200B-\u200D\u200F-\u2027\u202F-\u205E\u2060-\u2064\u206A-\u2070\u2074-\u207E\u2080-\u208E\u20A0-\u20C1\u20D0-\u20F0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u2150-\u215F\u2189-\u218B\u2190-\u2335\u237B-\u2394\u2396-\u2429\u2440-\u244A\u2460-\u249B\u24EA-\u26AB\u26AD-\u27FF\u2900-\u2B73\u2B76-\u2BFF\u2CE5-\u2CEA\u2CEF-\u2CF1\u2CF9-\u2CFF\u2D7F\u2DE0-\u2E5D\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3001-\u3004\u3008-\u3020\u302A-\u302D\u3030\u3036\u3037\u303D-\u303F\u3099-\u309C\u30A0\u30FB\u31C0-\u31E5\u31EF\u321D\u321E\u3250-\u325F\u327C-\u327E\u32B1-\u32BF\u32CC-\u32CF\u3377-\u337A\u33DE\u33DF\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA60D-\uA60F\uA66F-\uA67F\uA69E\uA69F\uA6F0\uA6F1\uA700-\uA721\uA788\uA802\uA806\uA80B\uA825\uA826\uA828-\uA82C\uA838\uA839\uA874-\uA877\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uAB6A\uAB6B\uABE5\uABE8\uABED\uFB1D-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFDCF\uFDF0-\uFE19\uFE20-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFE70-\uFE74\uFE76-\uFEFC\uFEFF\uFF01-\uFF20\uFF3B-\uFF40\uFF5B-\uFF65\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFF9-\uFFFD\u{10101}\u{10140}-\u{1018C}\u{10190}-\u{1019C}\u{101A0}\u{101FD}\u{102E0}-\u{102FB}\u{10376}-\u{1037A}\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{1091F}-\u{10939}\u{1093F}-\u{10959}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A35}\u{10A38}-\u{10A3A}\u{10A3F}-\u{10A48}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE6}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B39}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10D27}\u{10D30}-\u{10D39}\u{10D40}-\u{10D65}\u{10D69}-\u{10D85}\u{10D8E}\u{10D8F}\u{10E60}-\u{10E7E}\u{10E80}-\u{10EA9}\u{10EAB}-\u{10EAD}\u{10EB0}\u{10EB1}\u{10EC2}-\u{10EC7}\u{10ED0}-\u{10ED8}\u{10EFA}-\u{10F27}\u{10F30}-\u{10F59}\u{10F70}-\u{10F89}\u{10FB0}-\u{10FCB}\u{10FE0}-\u{10FF6}\u{11001}\u{11038}-\u{11046}\u{11052}-\u{11065}\u{11070}\u{11073}\u{11074}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{110C2}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111C9}-\u{111CC}\u{111CF}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{11241}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133B}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{113BB}-\u{113C0}\u{113CE}\u{113D0}\u{113D2}\u{113E1}\u{113E2}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{1145E}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{11660}-\u{1166C}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{1182F}-\u{11837}\u{11839}\u{1183A}\u{1193B}\u{1193C}\u{1193E}\u{11943}\u{119D4}-\u{119D7}\u{119DA}\u{119DB}\u{119E0}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11B60}\u{11B62}-\u{11B64}\u{11B66}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{11D90}\u{11D91}\u{11D95}\u{11D97}\u{11EF3}\u{11EF4}\u{11F00}\u{11F01}\u{11F36}-\u{11F3A}\u{11F40}\u{11F42}\u{11F5A}\u{11FD5}-\u{11FF1}\u{13440}\u{13447}-\u{13455}\u{1611E}-\u{16129}\u{1612D}-\u{1612F}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F4F}\u{16F8F}-\u{16F92}\u{16FE2}\u{16FE4}\u{1BC9D}\u{1BC9E}\u{1BCA0}-\u{1BCA3}\u{1CC00}-\u{1CCD5}\u{1CCF0}-\u{1CCFC}\u{1CD00}-\u{1CEB3}\u{1CEBA}-\u{1CED0}\u{1CEE0}-\u{1CEF0}\u{1CF00}-\u{1CF2D}\u{1CF30}-\u{1CF46}\u{1D167}-\u{1D169}\u{1D173}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D1E9}\u{1D1EA}\u{1D200}-\u{1D245}\u{1D300}-\u{1D356}\u{1D6C1}\u{1D6DB}\u{1D6FB}\u{1D715}\u{1D735}\u{1D74F}\u{1D76F}\u{1D789}\u{1D7A9}\u{1D7C3}\u{1D7CE}-\u{1D7FF}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E08F}\u{1E130}-\u{1E136}\u{1E2AE}\u{1E2EC}-\u{1E2EF}\u{1E2FF}\u{1E4EC}-\u{1E4EF}\u{1E5EE}\u{1E5EF}\u{1E6E3}\u{1E6E6}\u{1E6EE}\u{1E6EF}\u{1E6F5}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8D6}\u{1E900}-\u{1E94B}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EC71}-\u{1ECB4}\u{1ED01}-\u{1ED3D}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}\u{1EEF0}\u{1EEF1}\u{1F000}-\u{1F02B}\u{1F030}-\u{1F093}\u{1F0A0}-\u{1F0AE}\u{1F0B1}-\u{1F0BF}\u{1F0C1}-\u{1F0CF}\u{1F0D1}-\u{1F0F5}\u{1F100}-\u{1F10F}\u{1F12F}\u{1F16A}-\u{1F16F}\u{1F1AD}\u{1F260}-\u{1F265}\u{1F300}-\u{1F6D8}\u{1F6DC}-\u{1F6EC}\u{1F6F0}-\u{1F6FC}\u{1F700}-\u{1F7D9}\u{1F7E0}-\u{1F7EB}\u{1F7F0}\u{1F800}-\u{1F80B}\u{1F810}-\u{1F847}\u{1F850}-\u{1F859}\u{1F860}-\u{1F887}\u{1F890}-\u{1F8AD}\u{1F8B0}-\u{1F8BB}\u{1F8C0}\u{1F8C1}\u{1F8D0}-\u{1F8D8}\u{1F900}-\u{1FA57}\u{1FA60}-\u{1FA6D}\u{1FA70}-\u{1FA7C}\u{1FA80}-\u{1FA8A}\u{1FA8E}-\u{1FAC6}\u{1FAC8}\u{1FACD}-\u{1FADC}\u{1FADF}-\u{1FAEA}\u{1FAEF}-\u{1FAF8}\u{1FB00}-\u{1FB92}\u{1FB94}-\u{1FBFA}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}]*$/u; - var bidiS3 = /[0-9\xB2\xB3\xB9\u05BE\u05C0\u05C3\u05C6\u05D0-\u05EA\u05EF-\u05F4\u0600-\u0605\u0608\u060B\u060D\u061B-\u064A\u0660-\u0669\u066B-\u066F\u0671-\u06D5\u06DD\u06E5\u06E6\u06EE-\u070D\u070F\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u083E\u0840-\u0858\u085E\u0860-\u086A\u0870-\u0891\u08A0-\u08C9\u08E2\u200F\u2070\u2074-\u2079\u2080-\u2089\u2488-\u249B\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBC2\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFC\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\u{102E1}-\u{102FB}\u{10800}-\u{10805}\u{10808}\u{1080A}-\u{10835}\u{10837}\u{10838}\u{1083C}\u{1083F}-\u{10855}\u{10857}-\u{1089E}\u{108A7}-\u{108AF}\u{108E0}-\u{108F2}\u{108F4}\u{108F5}\u{108FB}-\u{1091B}\u{10920}-\u{10939}\u{1093F}-\u{10959}\u{10980}-\u{109B7}\u{109BC}-\u{109CF}\u{109D2}-\u{10A00}\u{10A10}-\u{10A13}\u{10A15}-\u{10A17}\u{10A19}-\u{10A35}\u{10A40}-\u{10A48}\u{10A50}-\u{10A58}\u{10A60}-\u{10A9F}\u{10AC0}-\u{10AE4}\u{10AEB}-\u{10AF6}\u{10B00}-\u{10B35}\u{10B40}-\u{10B55}\u{10B58}-\u{10B72}\u{10B78}-\u{10B91}\u{10B99}-\u{10B9C}\u{10BA9}-\u{10BAF}\u{10C00}-\u{10C48}\u{10C80}-\u{10CB2}\u{10CC0}-\u{10CF2}\u{10CFA}-\u{10D23}\u{10D30}-\u{10D39}\u{10D40}-\u{10D65}\u{10D6F}-\u{10D85}\u{10D8E}\u{10D8F}\u{10E60}-\u{10E7E}\u{10E80}-\u{10EA9}\u{10EAD}\u{10EB0}\u{10EB1}\u{10EC2}-\u{10EC7}\u{10F00}-\u{10F27}\u{10F30}-\u{10F45}\u{10F51}-\u{10F59}\u{10F70}-\u{10F81}\u{10F86}-\u{10F89}\u{10FB0}-\u{10FCB}\u{10FE0}-\u{10FF6}\u{1CCF0}-\u{1CCF9}\u{1D7CE}-\u{1D7FF}\u{1E800}-\u{1E8C4}\u{1E8C7}-\u{1E8CF}\u{1E900}-\u{1E943}\u{1E94B}\u{1E950}-\u{1E959}\u{1E95E}\u{1E95F}\u{1EC71}-\u{1ECB4}\u{1ED01}-\u{1ED3D}\u{1EE00}-\u{1EE03}\u{1EE05}-\u{1EE1F}\u{1EE21}\u{1EE22}\u{1EE24}\u{1EE27}\u{1EE29}-\u{1EE32}\u{1EE34}-\u{1EE37}\u{1EE39}\u{1EE3B}\u{1EE42}\u{1EE47}\u{1EE49}\u{1EE4B}\u{1EE4D}-\u{1EE4F}\u{1EE51}\u{1EE52}\u{1EE54}\u{1EE57}\u{1EE59}\u{1EE5B}\u{1EE5D}\u{1EE5F}\u{1EE61}\u{1EE62}\u{1EE64}\u{1EE67}-\u{1EE6A}\u{1EE6C}-\u{1EE72}\u{1EE74}-\u{1EE77}\u{1EE79}-\u{1EE7C}\u{1EE7E}\u{1EE80}-\u{1EE89}\u{1EE8B}-\u{1EE9B}\u{1EEA1}-\u{1EEA3}\u{1EEA5}-\u{1EEA9}\u{1EEAB}-\u{1EEBB}\u{1F100}-\u{1F10A}\u{1FBF0}-\u{1FBF9}][\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B55\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0D81\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{10D24}-\u{10D27}\u{10D69}-\u{10D6D}\u{10EAB}\u{10EAC}\u{10EFA}-\u{10EFF}\u{10F46}-\u{10F50}\u{10F82}-\u{10F85}\u{11001}\u{11038}-\u{11046}\u{11070}\u{11073}\u{11074}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{110C2}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111C9}-\u{111CC}\u{111CF}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{11241}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133B}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{113BB}-\u{113C0}\u{113CE}\u{113D0}\u{113D2}\u{113E1}\u{113E2}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{1145E}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{1182F}-\u{11837}\u{11839}\u{1183A}\u{1193B}\u{1193C}\u{1193E}\u{11943}\u{119D4}-\u{119D7}\u{119DA}\u{119DB}\u{119E0}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11B60}\u{11B62}-\u{11B64}\u{11B66}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{11D90}\u{11D91}\u{11D95}\u{11D97}\u{11EF3}\u{11EF4}\u{11F00}\u{11F01}\u{11F36}-\u{11F3A}\u{11F40}\u{11F42}\u{11F5A}\u{13440}\u{13447}-\u{13455}\u{1611E}-\u{16129}\u{1612D}-\u{1612F}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F4F}\u{16F8F}-\u{16F92}\u{16FE4}\u{1BC9D}\u{1BC9E}\u{1CF00}-\u{1CF2D}\u{1CF30}-\u{1CF46}\u{1D167}-\u{1D169}\u{1D17B}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E08F}\u{1E130}-\u{1E136}\u{1E2AE}\u{1E2EC}-\u{1E2EF}\u{1E4EC}-\u{1E4EF}\u{1E5EE}\u{1E5EF}\u{1E6E3}\u{1E6E6}\u{1E6EE}\u{1E6EF}\u{1E6F5}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0100}-\u{E01EF}]*$/u; - var bidiS4EN = /[0-9\xB2\xB3\xB9\u06F0-\u06F9\u2070\u2074-\u2079\u2080-\u2089\u2488-\u249B\uFF10-\uFF19\u{102E1}-\u{102FB}\u{1CCF0}-\u{1CCF9}\u{1D7CE}-\u{1D7FF}\u{1F100}-\u{1F10A}\u{1FBF0}-\u{1FBF9}]/u; - var bidiS4AN = /[\u0600-\u0605\u0660-\u0669\u066B\u066C\u06DD\u0890\u0891\u08E2\u{10D30}-\u{10D39}\u{10D40}-\u{10D49}\u{10E60}-\u{10E7E}]/u; - var bidiS5 = /^[\0-\x08\x0E-\x1B!-\x84\x86-\u0377\u037A-\u037F\u0384-\u038A\u038C\u038E-\u03A1\u03A3-\u052F\u0531-\u0556\u0559-\u058A\u058D-\u058F\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0606\u0607\u0609\u060A\u060C\u060E-\u061A\u064B-\u065F\u066A\u0670\u06D6-\u06DC\u06DE-\u06E4\u06E7-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07F6-\u07F9\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A76\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AF1\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B77\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BFA\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5C\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C77-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDC-\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1-\u0CF3\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4F\u0D54-\u0D63\u0D66-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4\u0E01-\u0E3A\u0E3F-\u0E5B\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECE\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00-\u0F47\u0F49-\u0F6C\u0F71-\u0F97\u0F99-\u0FBC\u0FBE-\u0FCC\u0FCE-\u0FDA\u1000-\u10C5\u10C7\u10CD\u10D0-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u137C\u1380-\u1399\u13A0-\u13F5\u13F8-\u13FD\u1400-\u167F\u1681-\u169C\u16A0-\u16F8\u1700-\u1715\u171F-\u1736\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17DD\u17E0-\u17E9\u17F0-\u17F9\u1800-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1940\u1944-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u19DE-\u1A1B\u1A1E-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD\u1AB0-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B4C\u1B4E-\u1BF3\u1BFC-\u1C37\u1C3B-\u1C49\u1C4D-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CC7\u1CD0-\u1CFA\u1D00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FC4\u1FC6-\u1FD3\u1FD6-\u1FDB\u1FDD-\u1FEF\u1FF2-\u1FF4\u1FF6-\u1FFE\u200B-\u200E\u2010-\u2027\u202F-\u205E\u2060-\u2064\u206A-\u2071\u2074-\u208E\u2090-\u209C\u20A0-\u20C1\u20D0-\u20F0\u2100-\u218B\u2190-\u2429\u2440-\u244A\u2460-\u2B73\u2B76-\u2CF3\u2CF9-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D70\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2E5D\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3001-\u303F\u3041-\u3096\u3099-\u30FF\u3105-\u312F\u3131-\u318E\u3190-\u31E5\u31EF-\u321E\u3220-\uA48C\uA490-\uA4C6\uA4D0-\uA62B\uA640-\uA6F7\uA700-\uA7DC\uA7F1-\uA82C\uA830-\uA839\uA840-\uA877\uA880-\uA8C5\uA8CE-\uA8D9\uA8E0-\uA953\uA95F-\uA97C\uA980-\uA9CD\uA9CF-\uA9D9\uA9DE-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA5C-\uAAC2\uAADB-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB6B\uAB70-\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uD800-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1E\uFB29\uFBC3-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDCF\uFDFD-\uFE19\uFE20-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFEFF\uFF01-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFF9-\uFFFD\u{10000}-\u{1000B}\u{1000D}-\u{10026}\u{10028}-\u{1003A}\u{1003C}\u{1003D}\u{1003F}-\u{1004D}\u{10050}-\u{1005D}\u{10080}-\u{100FA}\u{10100}-\u{10102}\u{10107}-\u{10133}\u{10137}-\u{1018E}\u{10190}-\u{1019C}\u{101A0}\u{101D0}-\u{101FD}\u{10280}-\u{1029C}\u{102A0}-\u{102D0}\u{102E0}-\u{102FB}\u{10300}-\u{10323}\u{1032D}-\u{1034A}\u{10350}-\u{1037A}\u{10380}-\u{1039D}\u{1039F}-\u{103C3}\u{103C8}-\u{103D5}\u{10400}-\u{1049D}\u{104A0}-\u{104A9}\u{104B0}-\u{104D3}\u{104D8}-\u{104FB}\u{10500}-\u{10527}\u{10530}-\u{10563}\u{1056F}-\u{1057A}\u{1057C}-\u{1058A}\u{1058C}-\u{10592}\u{10594}\u{10595}\u{10597}-\u{105A1}\u{105A3}-\u{105B1}\u{105B3}-\u{105B9}\u{105BB}\u{105BC}\u{105C0}-\u{105F3}\u{10600}-\u{10736}\u{10740}-\u{10755}\u{10760}-\u{10767}\u{10780}-\u{10785}\u{10787}-\u{107B0}\u{107B2}-\u{107BA}\u{1091F}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{10B39}-\u{10B3F}\u{10D24}-\u{10D27}\u{10D69}-\u{10D6E}\u{10EAB}\u{10EAC}\u{10ED0}-\u{10ED8}\u{10EFA}-\u{10EFF}\u{10F46}-\u{10F50}\u{10F82}-\u{10F85}\u{11000}-\u{1104D}\u{11052}-\u{11075}\u{1107F}-\u{110C2}\u{110CD}\u{110D0}-\u{110E8}\u{110F0}-\u{110F9}\u{11100}-\u{11134}\u{11136}-\u{11147}\u{11150}-\u{11176}\u{11180}-\u{111DF}\u{111E1}-\u{111F4}\u{11200}-\u{11211}\u{11213}-\u{11241}\u{11280}-\u{11286}\u{11288}\u{1128A}-\u{1128D}\u{1128F}-\u{1129D}\u{1129F}-\u{112A9}\u{112B0}-\u{112EA}\u{112F0}-\u{112F9}\u{11300}-\u{11303}\u{11305}-\u{1130C}\u{1130F}\u{11310}\u{11313}-\u{11328}\u{1132A}-\u{11330}\u{11332}\u{11333}\u{11335}-\u{11339}\u{1133B}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11350}\u{11357}\u{1135D}-\u{11363}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{11380}-\u{11389}\u{1138B}\u{1138E}\u{11390}-\u{113B5}\u{113B7}-\u{113C0}\u{113C2}\u{113C5}\u{113C7}-\u{113CA}\u{113CC}-\u{113D5}\u{113D7}\u{113D8}\u{113E1}\u{113E2}\u{11400}-\u{1145B}\u{1145D}-\u{11461}\u{11480}-\u{114C7}\u{114D0}-\u{114D9}\u{11580}-\u{115B5}\u{115B8}-\u{115DD}\u{11600}-\u{11644}\u{11650}-\u{11659}\u{11660}-\u{1166C}\u{11680}-\u{116B9}\u{116C0}-\u{116C9}\u{116D0}-\u{116E3}\u{11700}-\u{1171A}\u{1171D}-\u{1172B}\u{11730}-\u{11746}\u{11800}-\u{1183B}\u{118A0}-\u{118F2}\u{118FF}-\u{11906}\u{11909}\u{1190C}-\u{11913}\u{11915}\u{11916}\u{11918}-\u{11935}\u{11937}\u{11938}\u{1193B}-\u{11946}\u{11950}-\u{11959}\u{119A0}-\u{119A7}\u{119AA}-\u{119D7}\u{119DA}-\u{119E4}\u{11A00}-\u{11A47}\u{11A50}-\u{11AA2}\u{11AB0}-\u{11AF8}\u{11B00}-\u{11B09}\u{11B60}-\u{11B67}\u{11BC0}-\u{11BE1}\u{11BF0}-\u{11BF9}\u{11C00}-\u{11C08}\u{11C0A}-\u{11C36}\u{11C38}-\u{11C45}\u{11C50}-\u{11C6C}\u{11C70}-\u{11C8F}\u{11C92}-\u{11CA7}\u{11CA9}-\u{11CB6}\u{11D00}-\u{11D06}\u{11D08}\u{11D09}\u{11D0B}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D47}\u{11D50}-\u{11D59}\u{11D60}-\u{11D65}\u{11D67}\u{11D68}\u{11D6A}-\u{11D8E}\u{11D90}\u{11D91}\u{11D93}-\u{11D98}\u{11DA0}-\u{11DA9}\u{11DB0}-\u{11DDB}\u{11DE0}-\u{11DE9}\u{11EE0}-\u{11EF8}\u{11F00}-\u{11F10}\u{11F12}-\u{11F3A}\u{11F3E}-\u{11F5A}\u{11FB0}\u{11FC0}-\u{11FF1}\u{11FFF}-\u{12399}\u{12400}-\u{1246E}\u{12470}-\u{12474}\u{12480}-\u{12543}\u{12F90}-\u{12FF2}\u{13000}-\u{13455}\u{13460}-\u{143FA}\u{14400}-\u{14646}\u{16100}-\u{16139}\u{16800}-\u{16A38}\u{16A40}-\u{16A5E}\u{16A60}-\u{16A69}\u{16A6E}-\u{16ABE}\u{16AC0}-\u{16AC9}\u{16AD0}-\u{16AED}\u{16AF0}-\u{16AF5}\u{16B00}-\u{16B45}\u{16B50}-\u{16B59}\u{16B5B}-\u{16B61}\u{16B63}-\u{16B77}\u{16B7D}-\u{16B8F}\u{16D40}-\u{16D79}\u{16E40}-\u{16E9A}\u{16EA0}-\u{16EB8}\u{16EBB}-\u{16ED3}\u{16F00}-\u{16F4A}\u{16F4F}-\u{16F87}\u{16F8F}-\u{16F9F}\u{16FE0}-\u{16FE4}\u{16FF0}-\u{16FF6}\u{17000}-\u{18CD5}\u{18CFF}-\u{18D1E}\u{18D80}-\u{18DF2}\u{1AFF0}-\u{1AFF3}\u{1AFF5}-\u{1AFFB}\u{1AFFD}\u{1AFFE}\u{1B000}-\u{1B122}\u{1B132}\u{1B150}-\u{1B152}\u{1B155}\u{1B164}-\u{1B167}\u{1B170}-\u{1B2FB}\u{1BC00}-\u{1BC6A}\u{1BC70}-\u{1BC7C}\u{1BC80}-\u{1BC88}\u{1BC90}-\u{1BC99}\u{1BC9C}-\u{1BCA3}\u{1CC00}-\u{1CCFC}\u{1CD00}-\u{1CEB3}\u{1CEBA}-\u{1CED0}\u{1CEE0}-\u{1CEF0}\u{1CF00}-\u{1CF2D}\u{1CF30}-\u{1CF46}\u{1CF50}-\u{1CFC3}\u{1D000}-\u{1D0F5}\u{1D100}-\u{1D126}\u{1D129}-\u{1D1EA}\u{1D200}-\u{1D245}\u{1D2C0}-\u{1D2D3}\u{1D2E0}-\u{1D2F3}\u{1D300}-\u{1D356}\u{1D360}-\u{1D378}\u{1D400}-\u{1D454}\u{1D456}-\u{1D49C}\u{1D49E}\u{1D49F}\u{1D4A2}\u{1D4A5}\u{1D4A6}\u{1D4A9}-\u{1D4AC}\u{1D4AE}-\u{1D4B9}\u{1D4BB}\u{1D4BD}-\u{1D4C3}\u{1D4C5}-\u{1D505}\u{1D507}-\u{1D50A}\u{1D50D}-\u{1D514}\u{1D516}-\u{1D51C}\u{1D51E}-\u{1D539}\u{1D53B}-\u{1D53E}\u{1D540}-\u{1D544}\u{1D546}\u{1D54A}-\u{1D550}\u{1D552}-\u{1D6A5}\u{1D6A8}-\u{1D7CB}\u{1D7CE}-\u{1DA8B}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1DF00}-\u{1DF1E}\u{1DF25}-\u{1DF2A}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E030}-\u{1E06D}\u{1E08F}\u{1E100}-\u{1E12C}\u{1E130}-\u{1E13D}\u{1E140}-\u{1E149}\u{1E14E}\u{1E14F}\u{1E290}-\u{1E2AE}\u{1E2C0}-\u{1E2F9}\u{1E2FF}\u{1E4D0}-\u{1E4F9}\u{1E5D0}-\u{1E5FA}\u{1E5FF}\u{1E6C0}-\u{1E6DE}\u{1E6E0}-\u{1E6F5}\u{1E6FE}\u{1E6FF}\u{1E7E0}-\u{1E7E6}\u{1E7E8}-\u{1E7EB}\u{1E7ED}\u{1E7EE}\u{1E7F0}-\u{1E7FE}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{1EEF0}\u{1EEF1}\u{1F000}-\u{1F02B}\u{1F030}-\u{1F093}\u{1F0A0}-\u{1F0AE}\u{1F0B1}-\u{1F0BF}\u{1F0C1}-\u{1F0CF}\u{1F0D1}-\u{1F0F5}\u{1F100}-\u{1F1AD}\u{1F1E6}-\u{1F202}\u{1F210}-\u{1F23B}\u{1F240}-\u{1F248}\u{1F250}\u{1F251}\u{1F260}-\u{1F265}\u{1F300}-\u{1F6D8}\u{1F6DC}-\u{1F6EC}\u{1F6F0}-\u{1F6FC}\u{1F700}-\u{1F7D9}\u{1F7E0}-\u{1F7EB}\u{1F7F0}\u{1F800}-\u{1F80B}\u{1F810}-\u{1F847}\u{1F850}-\u{1F859}\u{1F860}-\u{1F887}\u{1F890}-\u{1F8AD}\u{1F8B0}-\u{1F8BB}\u{1F8C0}\u{1F8C1}\u{1F8D0}-\u{1F8D8}\u{1F900}-\u{1FA57}\u{1FA60}-\u{1FA6D}\u{1FA70}-\u{1FA7C}\u{1FA80}-\u{1FA8A}\u{1FA8E}-\u{1FAC6}\u{1FAC8}\u{1FACD}-\u{1FADC}\u{1FADF}-\u{1FAEA}\u{1FAEF}-\u{1FAF8}\u{1FB00}-\u{1FB92}\u{1FB94}-\u{1FBFA}\u{20000}-\u{2A6DF}\u{2A700}-\u{2B81D}\u{2B820}-\u{2CEAD}\u{2CEB0}-\u{2EBE0}\u{2EBF0}-\u{2EE5D}\u{2F800}-\u{2FA1D}\u{30000}-\u{3134A}\u{31350}-\u{33479}\u{E0001}\u{E0020}-\u{E007F}\u{E0100}-\u{E01EF}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]*$/u; - var bidiS6 = /[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02BB-\u02C1\u02D0\u02D1\u02E0-\u02E4\u02EE\u0370-\u0373\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0482\u048A-\u052F\u0531-\u0556\u0559-\u0589\u06F0-\u06F9\u0903-\u0939\u093B\u093D-\u0940\u0949-\u094C\u094E-\u0950\u0958-\u0961\u0964-\u0980\u0982\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C0\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09FA\u09FC\u09FD\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A40\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A76\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC0\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0\u0AE1\u0AE6-\u0AF0\u0AF9\u0B02\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0BE6-\u0BF2\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C41-\u0C44\u0C58-\u0C5A\u0C5C\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C77\u0C7F\u0C80\u0C82-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0CDC-\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1-\u0CF3\u0D02-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D4F\u0D54-\u0D61\u0D66-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E4F-\u0E5B\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00-\u0F17\u0F1A-\u0F34\u0F36\u0F38\u0F3E-\u0F47\u0F49-\u0F6C\u0F7F\u0F85\u0F88-\u0F8C\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE-\u0FDA\u1000-\u102C\u1031\u1038\u103B\u103C\u103F-\u1057\u105A-\u105D\u1061-\u1070\u1075-\u1081\u1083\u1084\u1087-\u108C\u108E-\u109C\u109E-\u10C5\u10C7\u10CD\u10D0-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1360-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u167F\u1681-\u169A\u16A0-\u16F8\u1700-\u1711\u1715\u171F-\u1731\u1734-\u1736\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17B6\u17BE-\u17C5\u17C7\u17C8\u17D4-\u17DA\u17DC\u17E0-\u17E9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A19\u1A1A\u1A1E-\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1A80-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD\u1B04-\u1B33\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B4C\u1B4E-\u1B6A\u1B74-\u1B7F\u1B82-\u1BA1\u1BA6\u1BA7\u1BAA\u1BAE-\u1BE5\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1BFC-\u1C2B\u1C34\u1C35\u1C3B-\u1C49\u1C4D-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CC7\u1CD3\u1CE1\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5-\u1CF7\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200E\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u214F\u2160-\u2188\u2336-\u237A\u2395\u2488-\u24E9\u26AC\u2800-\u28FF\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D70\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u302E\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3190-\u31BF\u31F0-\u321C\u3220-\u324F\u3260-\u327B\u327F-\u32B0\u32C0-\u32CB\u32D0-\u3376\u337B-\u33DD\u33E0-\u33FE\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA60C\uA610-\uA62B\uA640-\uA66E\uA680-\uA69D\uA6A0-\uA6EF\uA6F2-\uA6F7\uA722-\uA787\uA789-\uA7DC\uA7F1-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA824\uA827\uA830-\uA837\uA840-\uA873\uA880-\uA8C3\uA8CE-\uA8D9\uA8F2-\uA8FE\uA900-\uA925\uA92E-\uA946\uA952\uA953\uA95F-\uA97C\uA983-\uA9B2\uA9B4\uA9B5\uA9BA\uA9BB\uA9BE-\uA9CD\uA9CF-\uA9D9\uA9DE-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA2F\uAA30\uAA33\uAA34\uAA40-\uAA42\uAA44-\uAA4B\uAA4D\uAA50-\uAA59\uAA5C-\uAA7B\uAA7D-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAAEB\uAAEE-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB69\uAB70-\uABE4\uABE6\uABE7\uABE9-\uABEC\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uD800-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\u{10000}-\u{1000B}\u{1000D}-\u{10026}\u{10028}-\u{1003A}\u{1003C}\u{1003D}\u{1003F}-\u{1004D}\u{10050}-\u{1005D}\u{10080}-\u{100FA}\u{10100}\u{10102}\u{10107}-\u{10133}\u{10137}-\u{1013F}\u{1018D}\u{1018E}\u{101D0}-\u{101FC}\u{10280}-\u{1029C}\u{102A0}-\u{102D0}\u{102E1}-\u{102FB}\u{10300}-\u{10323}\u{1032D}-\u{1034A}\u{10350}-\u{10375}\u{10380}-\u{1039D}\u{1039F}-\u{103C3}\u{103C8}-\u{103D5}\u{10400}-\u{1049D}\u{104A0}-\u{104A9}\u{104B0}-\u{104D3}\u{104D8}-\u{104FB}\u{10500}-\u{10527}\u{10530}-\u{10563}\u{1056F}-\u{1057A}\u{1057C}-\u{1058A}\u{1058C}-\u{10592}\u{10594}\u{10595}\u{10597}-\u{105A1}\u{105A3}-\u{105B1}\u{105B3}-\u{105B9}\u{105BB}\u{105BC}\u{105C0}-\u{105F3}\u{10600}-\u{10736}\u{10740}-\u{10755}\u{10760}-\u{10767}\u{10780}-\u{10785}\u{10787}-\u{107B0}\u{107B2}-\u{107BA}\u{11000}\u{11002}-\u{11037}\u{11047}-\u{1104D}\u{11066}-\u{1106F}\u{11071}\u{11072}\u{11075}\u{11082}-\u{110B2}\u{110B7}\u{110B8}\u{110BB}-\u{110C1}\u{110CD}\u{110D0}-\u{110E8}\u{110F0}-\u{110F9}\u{11103}-\u{11126}\u{1112C}\u{11136}-\u{11147}\u{11150}-\u{11172}\u{11174}-\u{11176}\u{11182}-\u{111B5}\u{111BF}-\u{111C8}\u{111CD}\u{111CE}\u{111D0}-\u{111DF}\u{111E1}-\u{111F4}\u{11200}-\u{11211}\u{11213}-\u{1122E}\u{11232}\u{11233}\u{11235}\u{11238}-\u{1123D}\u{1123F}\u{11240}\u{11280}-\u{11286}\u{11288}\u{1128A}-\u{1128D}\u{1128F}-\u{1129D}\u{1129F}-\u{112A9}\u{112B0}-\u{112DE}\u{112E0}-\u{112E2}\u{112F0}-\u{112F9}\u{11302}\u{11303}\u{11305}-\u{1130C}\u{1130F}\u{11310}\u{11313}-\u{11328}\u{1132A}-\u{11330}\u{11332}\u{11333}\u{11335}-\u{11339}\u{1133D}-\u{1133F}\u{11341}-\u{11344}\u{11347}\u{11348}\u{1134B}-\u{1134D}\u{11350}\u{11357}\u{1135D}-\u{11363}\u{11380}-\u{11389}\u{1138B}\u{1138E}\u{11390}-\u{113B5}\u{113B7}-\u{113BA}\u{113C2}\u{113C5}\u{113C7}-\u{113CA}\u{113CC}\u{113CD}\u{113CF}\u{113D1}\u{113D3}-\u{113D5}\u{113D7}\u{113D8}\u{11400}-\u{11437}\u{11440}\u{11441}\u{11445}\u{11447}-\u{1145B}\u{1145D}\u{1145F}-\u{11461}\u{11480}-\u{114B2}\u{114B9}\u{114BB}-\u{114BE}\u{114C1}\u{114C4}-\u{114C7}\u{114D0}-\u{114D9}\u{11580}-\u{115B1}\u{115B8}-\u{115BB}\u{115BE}\u{115C1}-\u{115DB}\u{11600}-\u{11632}\u{1163B}\u{1163C}\u{1163E}\u{11641}-\u{11644}\u{11650}-\u{11659}\u{11680}-\u{116AA}\u{116AC}\u{116AE}\u{116AF}\u{116B6}\u{116B8}\u{116B9}\u{116C0}-\u{116C9}\u{116D0}-\u{116E3}\u{11700}-\u{1171A}\u{1171E}\u{11720}\u{11721}\u{11726}\u{11730}-\u{11746}\u{11800}-\u{1182E}\u{11838}\u{1183B}\u{118A0}-\u{118F2}\u{118FF}-\u{11906}\u{11909}\u{1190C}-\u{11913}\u{11915}\u{11916}\u{11918}-\u{11935}\u{11937}\u{11938}\u{1193D}\u{1193F}-\u{11942}\u{11944}-\u{11946}\u{11950}-\u{11959}\u{119A0}-\u{119A7}\u{119AA}-\u{119D3}\u{119DC}-\u{119DF}\u{119E1}-\u{119E4}\u{11A00}\u{11A07}\u{11A08}\u{11A0B}-\u{11A32}\u{11A39}\u{11A3A}\u{11A3F}-\u{11A46}\u{11A50}\u{11A57}\u{11A58}\u{11A5C}-\u{11A89}\u{11A97}\u{11A9A}-\u{11AA2}\u{11AB0}-\u{11AF8}\u{11B00}-\u{11B09}\u{11B61}\u{11B65}\u{11B67}\u{11BC0}-\u{11BE1}\u{11BF0}-\u{11BF9}\u{11C00}-\u{11C08}\u{11C0A}-\u{11C2F}\u{11C3E}-\u{11C45}\u{11C50}-\u{11C6C}\u{11C70}-\u{11C8F}\u{11CA9}\u{11CB1}\u{11CB4}\u{11D00}-\u{11D06}\u{11D08}\u{11D09}\u{11D0B}-\u{11D30}\u{11D46}\u{11D50}-\u{11D59}\u{11D60}-\u{11D65}\u{11D67}\u{11D68}\u{11D6A}-\u{11D8E}\u{11D93}\u{11D94}\u{11D96}\u{11D98}\u{11DA0}-\u{11DA9}\u{11DB0}-\u{11DDB}\u{11DE0}-\u{11DE9}\u{11EE0}-\u{11EF2}\u{11EF5}-\u{11EF8}\u{11F02}-\u{11F10}\u{11F12}-\u{11F35}\u{11F3E}\u{11F3F}\u{11F41}\u{11F43}-\u{11F59}\u{11FB0}\u{11FC0}-\u{11FD4}\u{11FFF}-\u{12399}\u{12400}-\u{1246E}\u{12470}-\u{12474}\u{12480}-\u{12543}\u{12F90}-\u{12FF2}\u{13000}-\u{1343F}\u{13441}-\u{13446}\u{13460}-\u{143FA}\u{14400}-\u{14646}\u{16100}-\u{1611D}\u{1612A}-\u{1612C}\u{16130}-\u{16139}\u{16800}-\u{16A38}\u{16A40}-\u{16A5E}\u{16A60}-\u{16A69}\u{16A6E}-\u{16ABE}\u{16AC0}-\u{16AC9}\u{16AD0}-\u{16AED}\u{16AF5}\u{16B00}-\u{16B2F}\u{16B37}-\u{16B45}\u{16B50}-\u{16B59}\u{16B5B}-\u{16B61}\u{16B63}-\u{16B77}\u{16B7D}-\u{16B8F}\u{16D40}-\u{16D79}\u{16E40}-\u{16E9A}\u{16EA0}-\u{16EB8}\u{16EBB}-\u{16ED3}\u{16F00}-\u{16F4A}\u{16F50}-\u{16F87}\u{16F93}-\u{16F9F}\u{16FE0}\u{16FE1}\u{16FE3}\u{16FF0}-\u{16FF6}\u{17000}-\u{18CD5}\u{18CFF}-\u{18D1E}\u{18D80}-\u{18DF2}\u{1AFF0}-\u{1AFF3}\u{1AFF5}-\u{1AFFB}\u{1AFFD}\u{1AFFE}\u{1B000}-\u{1B122}\u{1B132}\u{1B150}-\u{1B152}\u{1B155}\u{1B164}-\u{1B167}\u{1B170}-\u{1B2FB}\u{1BC00}-\u{1BC6A}\u{1BC70}-\u{1BC7C}\u{1BC80}-\u{1BC88}\u{1BC90}-\u{1BC99}\u{1BC9C}\u{1BC9F}\u{1CCD6}-\u{1CCF9}\u{1CF50}-\u{1CFC3}\u{1D000}-\u{1D0F5}\u{1D100}-\u{1D126}\u{1D129}-\u{1D166}\u{1D16A}-\u{1D172}\u{1D183}\u{1D184}\u{1D18C}-\u{1D1A9}\u{1D1AE}-\u{1D1E8}\u{1D2C0}-\u{1D2D3}\u{1D2E0}-\u{1D2F3}\u{1D360}-\u{1D378}\u{1D400}-\u{1D454}\u{1D456}-\u{1D49C}\u{1D49E}\u{1D49F}\u{1D4A2}\u{1D4A5}\u{1D4A6}\u{1D4A9}-\u{1D4AC}\u{1D4AE}-\u{1D4B9}\u{1D4BB}\u{1D4BD}-\u{1D4C3}\u{1D4C5}-\u{1D505}\u{1D507}-\u{1D50A}\u{1D50D}-\u{1D514}\u{1D516}-\u{1D51C}\u{1D51E}-\u{1D539}\u{1D53B}-\u{1D53E}\u{1D540}-\u{1D544}\u{1D546}\u{1D54A}-\u{1D550}\u{1D552}-\u{1D6A5}\u{1D6A8}-\u{1D6C0}\u{1D6C2}-\u{1D6DA}\u{1D6DC}-\u{1D6FA}\u{1D6FC}-\u{1D714}\u{1D716}-\u{1D734}\u{1D736}-\u{1D74E}\u{1D750}-\u{1D76E}\u{1D770}-\u{1D788}\u{1D78A}-\u{1D7A8}\u{1D7AA}-\u{1D7C2}\u{1D7C4}-\u{1D7CB}\u{1D7CE}-\u{1D9FF}\u{1DA37}-\u{1DA3A}\u{1DA6D}-\u{1DA74}\u{1DA76}-\u{1DA83}\u{1DA85}-\u{1DA8B}\u{1DF00}-\u{1DF1E}\u{1DF25}-\u{1DF2A}\u{1E030}-\u{1E06D}\u{1E100}-\u{1E12C}\u{1E137}-\u{1E13D}\u{1E140}-\u{1E149}\u{1E14E}\u{1E14F}\u{1E290}-\u{1E2AD}\u{1E2C0}-\u{1E2EB}\u{1E2F0}-\u{1E2F9}\u{1E4D0}-\u{1E4EB}\u{1E4F0}-\u{1E4F9}\u{1E5D0}-\u{1E5ED}\u{1E5F0}-\u{1E5FA}\u{1E5FF}\u{1E6C0}-\u{1E6DE}\u{1E6E0}-\u{1E6E2}\u{1E6E4}\u{1E6E5}\u{1E6E7}-\u{1E6ED}\u{1E6F0}-\u{1E6F4}\u{1E6FE}\u{1E6FF}\u{1E7E0}-\u{1E7E6}\u{1E7E8}-\u{1E7EB}\u{1E7ED}\u{1E7EE}\u{1E7F0}-\u{1E7FE}\u{1F100}-\u{1F10A}\u{1F110}-\u{1F12E}\u{1F130}-\u{1F169}\u{1F170}-\u{1F1AC}\u{1F1E6}-\u{1F202}\u{1F210}-\u{1F23B}\u{1F240}-\u{1F248}\u{1F250}\u{1F251}\u{1FBF0}-\u{1FBF9}\u{20000}-\u{2A6DF}\u{2A700}-\u{2B81D}\u{2B820}-\u{2CEAD}\u{2CEB0}-\u{2EBE0}\u{2EBF0}-\u{2EE5D}\u{2F800}-\u{2FA1D}\u{30000}-\u{3134A}\u{31350}-\u{33479}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}][\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B55\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0D81\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\u{101FD}\u{102E0}\u{10376}-\u{1037A}\u{10A01}-\u{10A03}\u{10A05}\u{10A06}\u{10A0C}-\u{10A0F}\u{10A38}-\u{10A3A}\u{10A3F}\u{10AE5}\u{10AE6}\u{10D24}-\u{10D27}\u{10D69}-\u{10D6D}\u{10EAB}\u{10EAC}\u{10EFA}-\u{10EFF}\u{10F46}-\u{10F50}\u{10F82}-\u{10F85}\u{11001}\u{11038}-\u{11046}\u{11070}\u{11073}\u{11074}\u{1107F}-\u{11081}\u{110B3}-\u{110B6}\u{110B9}\u{110BA}\u{110C2}\u{11100}-\u{11102}\u{11127}-\u{1112B}\u{1112D}-\u{11134}\u{11173}\u{11180}\u{11181}\u{111B6}-\u{111BE}\u{111C9}-\u{111CC}\u{111CF}\u{1122F}-\u{11231}\u{11234}\u{11236}\u{11237}\u{1123E}\u{11241}\u{112DF}\u{112E3}-\u{112EA}\u{11300}\u{11301}\u{1133B}\u{1133C}\u{11340}\u{11366}-\u{1136C}\u{11370}-\u{11374}\u{113BB}-\u{113C0}\u{113CE}\u{113D0}\u{113D2}\u{113E1}\u{113E2}\u{11438}-\u{1143F}\u{11442}-\u{11444}\u{11446}\u{1145E}\u{114B3}-\u{114B8}\u{114BA}\u{114BF}\u{114C0}\u{114C2}\u{114C3}\u{115B2}-\u{115B5}\u{115BC}\u{115BD}\u{115BF}\u{115C0}\u{115DC}\u{115DD}\u{11633}-\u{1163A}\u{1163D}\u{1163F}\u{11640}\u{116AB}\u{116AD}\u{116B0}-\u{116B5}\u{116B7}\u{1171D}\u{1171F}\u{11722}-\u{11725}\u{11727}-\u{1172B}\u{1182F}-\u{11837}\u{11839}\u{1183A}\u{1193B}\u{1193C}\u{1193E}\u{11943}\u{119D4}-\u{119D7}\u{119DA}\u{119DB}\u{119E0}\u{11A01}-\u{11A06}\u{11A09}\u{11A0A}\u{11A33}-\u{11A38}\u{11A3B}-\u{11A3E}\u{11A47}\u{11A51}-\u{11A56}\u{11A59}-\u{11A5B}\u{11A8A}-\u{11A96}\u{11A98}\u{11A99}\u{11B60}\u{11B62}-\u{11B64}\u{11B66}\u{11C30}-\u{11C36}\u{11C38}-\u{11C3D}\u{11C92}-\u{11CA7}\u{11CAA}-\u{11CB0}\u{11CB2}\u{11CB3}\u{11CB5}\u{11CB6}\u{11D31}-\u{11D36}\u{11D3A}\u{11D3C}\u{11D3D}\u{11D3F}-\u{11D45}\u{11D47}\u{11D90}\u{11D91}\u{11D95}\u{11D97}\u{11EF3}\u{11EF4}\u{11F00}\u{11F01}\u{11F36}-\u{11F3A}\u{11F40}\u{11F42}\u{11F5A}\u{13440}\u{13447}-\u{13455}\u{1611E}-\u{16129}\u{1612D}-\u{1612F}\u{16AF0}-\u{16AF4}\u{16B30}-\u{16B36}\u{16F4F}\u{16F8F}-\u{16F92}\u{16FE4}\u{1BC9D}\u{1BC9E}\u{1CF00}-\u{1CF2D}\u{1CF30}-\u{1CF46}\u{1D167}-\u{1D169}\u{1D17B}-\u{1D182}\u{1D185}-\u{1D18B}\u{1D1AA}-\u{1D1AD}\u{1D242}-\u{1D244}\u{1DA00}-\u{1DA36}\u{1DA3B}-\u{1DA6C}\u{1DA75}\u{1DA84}\u{1DA9B}-\u{1DA9F}\u{1DAA1}-\u{1DAAF}\u{1E000}-\u{1E006}\u{1E008}-\u{1E018}\u{1E01B}-\u{1E021}\u{1E023}\u{1E024}\u{1E026}-\u{1E02A}\u{1E08F}\u{1E130}-\u{1E136}\u{1E2AE}\u{1E2EC}-\u{1E2EF}\u{1E4EC}-\u{1E4EF}\u{1E5EE}\u{1E5EF}\u{1E6E3}\u{1E6E6}\u{1E6EE}\u{1E6EF}\u{1E6F5}\u{1E8D0}-\u{1E8D6}\u{1E944}-\u{1E94A}\u{E0100}-\u{E01EF}]*$/u; - module2.exports = { - combiningMarks, - combiningClassVirama, - validZWNJ, - bidiDomain, - bidiS1LTR, - bidiS1RTL, - bidiS2, - bidiS3, - bidiS4EN, - bidiS4AN, - bidiS5, - bidiS6 - }; - } -}); - -// node_modules/tr46/lib/mappingTable.json -var require_mappingTable = __commonJS({ - "node_modules/tr46/lib/mappingTable.json"(exports, module2) { - module2.exports = [[[0, 44], 2], [[45, 46], 2], [47, 2], [[48, 57], 2], [[58, 64], 2], [65, 1, "a"], [66, 1, "b"], [67, 1, "c"], [68, 1, "d"], [69, 1, "e"], [70, 1, "f"], [71, 1, "g"], [72, 1, "h"], [73, 1, "i"], [74, 1, "j"], [75, 1, "k"], [76, 1, "l"], [77, 1, "m"], [78, 1, "n"], [79, 1, "o"], [80, 1, "p"], [81, 1, "q"], [82, 1, "r"], [83, 1, "s"], [84, 1, "t"], [85, 1, "u"], [86, 1, "v"], [87, 1, "w"], [88, 1, "x"], [89, 1, "y"], [90, 1, "z"], [[91, 96], 2], [[97, 122], 2], [[123, 127], 2], [[128, 159], 3], [160, 1, " "], [[161, 167], 2], [168, 1, " \u0308"], [169, 2], [170, 1, "a"], [[171, 172], 2], [173, 7], [174, 2], [175, 1, " \u0304"], [[176, 177], 2], [178, 1, "2"], [179, 1, "3"], [180, 1, " \u0301"], [181, 1, "\u03BC"], [182, 2], [183, 2], [184, 1, " \u0327"], [185, 1, "1"], [186, 1, "o"], [187, 2], [188, 1, "1\u20444"], [189, 1, "1\u20442"], [190, 1, "3\u20444"], [191, 2], [192, 1, "\xE0"], [193, 1, "\xE1"], [194, 1, "\xE2"], [195, 1, "\xE3"], [196, 1, "\xE4"], [197, 1, "\xE5"], [198, 1, "\xE6"], [199, 1, "\xE7"], [200, 1, "\xE8"], [201, 1, "\xE9"], [202, 1, "\xEA"], [203, 1, "\xEB"], [204, 1, "\xEC"], [205, 1, "\xED"], [206, 1, "\xEE"], [207, 1, "\xEF"], [208, 1, "\xF0"], [209, 1, "\xF1"], [210, 1, "\xF2"], [211, 1, "\xF3"], [212, 1, "\xF4"], [213, 1, "\xF5"], [214, 1, "\xF6"], [215, 2], [216, 1, "\xF8"], [217, 1, "\xF9"], [218, 1, "\xFA"], [219, 1, "\xFB"], [220, 1, "\xFC"], [221, 1, "\xFD"], [222, 1, "\xFE"], [223, 6, "ss"], [[224, 246], 2], [247, 2], [[248, 255], 2], [256, 1, "\u0101"], [257, 2], [258, 1, "\u0103"], [259, 2], [260, 1, "\u0105"], [261, 2], [262, 1, "\u0107"], [263, 2], [264, 1, "\u0109"], [265, 2], [266, 1, "\u010B"], [267, 2], [268, 1, "\u010D"], [269, 2], [270, 1, "\u010F"], [271, 2], [272, 1, "\u0111"], [273, 2], [274, 1, "\u0113"], [275, 2], [276, 1, "\u0115"], [277, 2], [278, 1, "\u0117"], [279, 2], [280, 1, "\u0119"], [281, 2], [282, 1, "\u011B"], [283, 2], [284, 1, "\u011D"], [285, 2], [286, 1, "\u011F"], [287, 2], [288, 1, "\u0121"], [289, 2], [290, 1, "\u0123"], [291, 2], [292, 1, "\u0125"], [293, 2], [294, 1, "\u0127"], [295, 2], [296, 1, "\u0129"], [297, 2], [298, 1, "\u012B"], [299, 2], [300, 1, "\u012D"], [301, 2], [302, 1, "\u012F"], [303, 2], [304, 1, "i\u0307"], [305, 2], [[306, 307], 1, "ij"], [308, 1, "\u0135"], [309, 2], [310, 1, "\u0137"], [[311, 312], 2], [313, 1, "\u013A"], [314, 2], [315, 1, "\u013C"], [316, 2], [317, 1, "\u013E"], [318, 2], [[319, 320], 1, "l\xB7"], [321, 1, "\u0142"], [322, 2], [323, 1, "\u0144"], [324, 2], [325, 1, "\u0146"], [326, 2], [327, 1, "\u0148"], [328, 2], [329, 1, "\u02BCn"], [330, 1, "\u014B"], [331, 2], [332, 1, "\u014D"], [333, 2], [334, 1, "\u014F"], [335, 2], [336, 1, "\u0151"], [337, 2], [338, 1, "\u0153"], [339, 2], [340, 1, "\u0155"], [341, 2], [342, 1, "\u0157"], [343, 2], [344, 1, "\u0159"], [345, 2], [346, 1, "\u015B"], [347, 2], [348, 1, "\u015D"], [349, 2], [350, 1, "\u015F"], [351, 2], [352, 1, "\u0161"], [353, 2], [354, 1, "\u0163"], [355, 2], [356, 1, "\u0165"], [357, 2], [358, 1, "\u0167"], [359, 2], [360, 1, "\u0169"], [361, 2], [362, 1, "\u016B"], [363, 2], [364, 1, "\u016D"], [365, 2], [366, 1, "\u016F"], [367, 2], [368, 1, "\u0171"], [369, 2], [370, 1, "\u0173"], [371, 2], [372, 1, "\u0175"], [373, 2], [374, 1, "\u0177"], [375, 2], [376, 1, "\xFF"], [377, 1, "\u017A"], [378, 2], [379, 1, "\u017C"], [380, 2], [381, 1, "\u017E"], [382, 2], [383, 1, "s"], [384, 2], [385, 1, "\u0253"], [386, 1, "\u0183"], [387, 2], [388, 1, "\u0185"], [389, 2], [390, 1, "\u0254"], [391, 1, "\u0188"], [392, 2], [393, 1, "\u0256"], [394, 1, "\u0257"], [395, 1, "\u018C"], [[396, 397], 2], [398, 1, "\u01DD"], [399, 1, "\u0259"], [400, 1, "\u025B"], [401, 1, "\u0192"], [402, 2], [403, 1, "\u0260"], [404, 1, "\u0263"], [405, 2], [406, 1, "\u0269"], [407, 1, "\u0268"], [408, 1, "\u0199"], [[409, 411], 2], [412, 1, "\u026F"], [413, 1, "\u0272"], [414, 2], [415, 1, "\u0275"], [416, 1, "\u01A1"], [417, 2], [418, 1, "\u01A3"], [419, 2], [420, 1, "\u01A5"], [421, 2], [422, 1, "\u0280"], [423, 1, "\u01A8"], [424, 2], [425, 1, "\u0283"], [[426, 427], 2], [428, 1, "\u01AD"], [429, 2], [430, 1, "\u0288"], [431, 1, "\u01B0"], [432, 2], [433, 1, "\u028A"], [434, 1, "\u028B"], [435, 1, "\u01B4"], [436, 2], [437, 1, "\u01B6"], [438, 2], [439, 1, "\u0292"], [440, 1, "\u01B9"], [[441, 443], 2], [444, 1, "\u01BD"], [[445, 451], 2], [[452, 454], 1, "d\u017E"], [[455, 457], 1, "lj"], [[458, 460], 1, "nj"], [461, 1, "\u01CE"], [462, 2], [463, 1, "\u01D0"], [464, 2], [465, 1, "\u01D2"], [466, 2], [467, 1, "\u01D4"], [468, 2], [469, 1, "\u01D6"], [470, 2], [471, 1, "\u01D8"], [472, 2], [473, 1, "\u01DA"], [474, 2], [475, 1, "\u01DC"], [[476, 477], 2], [478, 1, "\u01DF"], [479, 2], [480, 1, "\u01E1"], [481, 2], [482, 1, "\u01E3"], [483, 2], [484, 1, "\u01E5"], [485, 2], [486, 1, "\u01E7"], [487, 2], [488, 1, "\u01E9"], [489, 2], [490, 1, "\u01EB"], [491, 2], [492, 1, "\u01ED"], [493, 2], [494, 1, "\u01EF"], [[495, 496], 2], [[497, 499], 1, "dz"], [500, 1, "\u01F5"], [501, 2], [502, 1, "\u0195"], [503, 1, "\u01BF"], [504, 1, "\u01F9"], [505, 2], [506, 1, "\u01FB"], [507, 2], [508, 1, "\u01FD"], [509, 2], [510, 1, "\u01FF"], [511, 2], [512, 1, "\u0201"], [513, 2], [514, 1, "\u0203"], [515, 2], [516, 1, "\u0205"], [517, 2], [518, 1, "\u0207"], [519, 2], [520, 1, "\u0209"], [521, 2], [522, 1, "\u020B"], [523, 2], [524, 1, "\u020D"], [525, 2], [526, 1, "\u020F"], [527, 2], [528, 1, "\u0211"], [529, 2], [530, 1, "\u0213"], [531, 2], [532, 1, "\u0215"], [533, 2], [534, 1, "\u0217"], [535, 2], [536, 1, "\u0219"], [537, 2], [538, 1, "\u021B"], [539, 2], [540, 1, "\u021D"], [541, 2], [542, 1, "\u021F"], [543, 2], [544, 1, "\u019E"], [545, 2], [546, 1, "\u0223"], [547, 2], [548, 1, "\u0225"], [549, 2], [550, 1, "\u0227"], [551, 2], [552, 1, "\u0229"], [553, 2], [554, 1, "\u022B"], [555, 2], [556, 1, "\u022D"], [557, 2], [558, 1, "\u022F"], [559, 2], [560, 1, "\u0231"], [561, 2], [562, 1, "\u0233"], [563, 2], [[564, 566], 2], [[567, 569], 2], [570, 1, "\u2C65"], [571, 1, "\u023C"], [572, 2], [573, 1, "\u019A"], [574, 1, "\u2C66"], [[575, 576], 2], [577, 1, "\u0242"], [578, 2], [579, 1, "\u0180"], [580, 1, "\u0289"], [581, 1, "\u028C"], [582, 1, "\u0247"], [583, 2], [584, 1, "\u0249"], [585, 2], [586, 1, "\u024B"], [587, 2], [588, 1, "\u024D"], [589, 2], [590, 1, "\u024F"], [591, 2], [[592, 680], 2], [[681, 685], 2], [[686, 687], 2], [688, 1, "h"], [689, 1, "\u0266"], [690, 1, "j"], [691, 1, "r"], [692, 1, "\u0279"], [693, 1, "\u027B"], [694, 1, "\u0281"], [695, 1, "w"], [696, 1, "y"], [[697, 705], 2], [[706, 709], 2], [[710, 721], 2], [[722, 727], 2], [728, 1, " \u0306"], [729, 1, " \u0307"], [730, 1, " \u030A"], [731, 1, " \u0328"], [732, 1, " \u0303"], [733, 1, " \u030B"], [734, 2], [735, 2], [736, 1, "\u0263"], [737, 1, "l"], [738, 1, "s"], [739, 1, "x"], [740, 1, "\u0295"], [[741, 745], 2], [[746, 747], 2], [748, 2], [749, 2], [750, 2], [[751, 767], 2], [[768, 831], 2], [832, 1, "\u0300"], [833, 1, "\u0301"], [834, 2], [835, 1, "\u0313"], [836, 1, "\u0308\u0301"], [837, 1, "\u03B9"], [[838, 846], 2], [847, 7], [[848, 855], 2], [[856, 860], 2], [[861, 863], 2], [[864, 865], 2], [866, 2], [[867, 879], 2], [880, 1, "\u0371"], [881, 2], [882, 1, "\u0373"], [883, 2], [884, 1, "\u02B9"], [885, 2], [886, 1, "\u0377"], [887, 2], [[888, 889], 3], [890, 1, " \u03B9"], [[891, 893], 2], [894, 1, ";"], [895, 1, "\u03F3"], [[896, 899], 3], [900, 1, " \u0301"], [901, 1, " \u0308\u0301"], [902, 1, "\u03AC"], [903, 1, "\xB7"], [904, 1, "\u03AD"], [905, 1, "\u03AE"], [906, 1, "\u03AF"], [907, 3], [908, 1, "\u03CC"], [909, 3], [910, 1, "\u03CD"], [911, 1, "\u03CE"], [912, 2], [913, 1, "\u03B1"], [914, 1, "\u03B2"], [915, 1, "\u03B3"], [916, 1, "\u03B4"], [917, 1, "\u03B5"], [918, 1, "\u03B6"], [919, 1, "\u03B7"], [920, 1, "\u03B8"], [921, 1, "\u03B9"], [922, 1, "\u03BA"], [923, 1, "\u03BB"], [924, 1, "\u03BC"], [925, 1, "\u03BD"], [926, 1, "\u03BE"], [927, 1, "\u03BF"], [928, 1, "\u03C0"], [929, 1, "\u03C1"], [930, 3], [931, 1, "\u03C3"], [932, 1, "\u03C4"], [933, 1, "\u03C5"], [934, 1, "\u03C6"], [935, 1, "\u03C7"], [936, 1, "\u03C8"], [937, 1, "\u03C9"], [938, 1, "\u03CA"], [939, 1, "\u03CB"], [[940, 961], 2], [962, 6, "\u03C3"], [[963, 974], 2], [975, 1, "\u03D7"], [976, 1, "\u03B2"], [977, 1, "\u03B8"], [978, 1, "\u03C5"], [979, 1, "\u03CD"], [980, 1, "\u03CB"], [981, 1, "\u03C6"], [982, 1, "\u03C0"], [983, 2], [984, 1, "\u03D9"], [985, 2], [986, 1, "\u03DB"], [987, 2], [988, 1, "\u03DD"], [989, 2], [990, 1, "\u03DF"], [991, 2], [992, 1, "\u03E1"], [993, 2], [994, 1, "\u03E3"], [995, 2], [996, 1, "\u03E5"], [997, 2], [998, 1, "\u03E7"], [999, 2], [1e3, 1, "\u03E9"], [1001, 2], [1002, 1, "\u03EB"], [1003, 2], [1004, 1, "\u03ED"], [1005, 2], [1006, 1, "\u03EF"], [1007, 2], [1008, 1, "\u03BA"], [1009, 1, "\u03C1"], [1010, 1, "\u03C3"], [1011, 2], [1012, 1, "\u03B8"], [1013, 1, "\u03B5"], [1014, 2], [1015, 1, "\u03F8"], [1016, 2], [1017, 1, "\u03C3"], [1018, 1, "\u03FB"], [1019, 2], [1020, 2], [1021, 1, "\u037B"], [1022, 1, "\u037C"], [1023, 1, "\u037D"], [1024, 1, "\u0450"], [1025, 1, "\u0451"], [1026, 1, "\u0452"], [1027, 1, "\u0453"], [1028, 1, "\u0454"], [1029, 1, "\u0455"], [1030, 1, "\u0456"], [1031, 1, "\u0457"], [1032, 1, "\u0458"], [1033, 1, "\u0459"], [1034, 1, "\u045A"], [1035, 1, "\u045B"], [1036, 1, "\u045C"], [1037, 1, "\u045D"], [1038, 1, "\u045E"], [1039, 1, "\u045F"], [1040, 1, "\u0430"], [1041, 1, "\u0431"], [1042, 1, "\u0432"], [1043, 1, "\u0433"], [1044, 1, "\u0434"], [1045, 1, "\u0435"], [1046, 1, "\u0436"], [1047, 1, "\u0437"], [1048, 1, "\u0438"], [1049, 1, "\u0439"], [1050, 1, "\u043A"], [1051, 1, "\u043B"], [1052, 1, "\u043C"], [1053, 1, "\u043D"], [1054, 1, "\u043E"], [1055, 1, "\u043F"], [1056, 1, "\u0440"], [1057, 1, "\u0441"], [1058, 1, "\u0442"], [1059, 1, "\u0443"], [1060, 1, "\u0444"], [1061, 1, "\u0445"], [1062, 1, "\u0446"], [1063, 1, "\u0447"], [1064, 1, "\u0448"], [1065, 1, "\u0449"], [1066, 1, "\u044A"], [1067, 1, "\u044B"], [1068, 1, "\u044C"], [1069, 1, "\u044D"], [1070, 1, "\u044E"], [1071, 1, "\u044F"], [[1072, 1103], 2], [1104, 2], [[1105, 1116], 2], [1117, 2], [[1118, 1119], 2], [1120, 1, "\u0461"], [1121, 2], [1122, 1, "\u0463"], [1123, 2], [1124, 1, "\u0465"], [1125, 2], [1126, 1, "\u0467"], [1127, 2], [1128, 1, "\u0469"], [1129, 2], [1130, 1, "\u046B"], [1131, 2], [1132, 1, "\u046D"], [1133, 2], [1134, 1, "\u046F"], [1135, 2], [1136, 1, "\u0471"], [1137, 2], [1138, 1, "\u0473"], [1139, 2], [1140, 1, "\u0475"], [1141, 2], [1142, 1, "\u0477"], [1143, 2], [1144, 1, "\u0479"], [1145, 2], [1146, 1, "\u047B"], [1147, 2], [1148, 1, "\u047D"], [1149, 2], [1150, 1, "\u047F"], [1151, 2], [1152, 1, "\u0481"], [1153, 2], [1154, 2], [[1155, 1158], 2], [1159, 2], [[1160, 1161], 2], [1162, 1, "\u048B"], [1163, 2], [1164, 1, "\u048D"], [1165, 2], [1166, 1, "\u048F"], [1167, 2], [1168, 1, "\u0491"], [1169, 2], [1170, 1, "\u0493"], [1171, 2], [1172, 1, "\u0495"], [1173, 2], [1174, 1, "\u0497"], [1175, 2], [1176, 1, "\u0499"], [1177, 2], [1178, 1, "\u049B"], [1179, 2], [1180, 1, "\u049D"], [1181, 2], [1182, 1, "\u049F"], [1183, 2], [1184, 1, "\u04A1"], [1185, 2], [1186, 1, "\u04A3"], [1187, 2], [1188, 1, "\u04A5"], [1189, 2], [1190, 1, "\u04A7"], [1191, 2], [1192, 1, "\u04A9"], [1193, 2], [1194, 1, "\u04AB"], [1195, 2], [1196, 1, "\u04AD"], [1197, 2], [1198, 1, "\u04AF"], [1199, 2], [1200, 1, "\u04B1"], [1201, 2], [1202, 1, "\u04B3"], [1203, 2], [1204, 1, "\u04B5"], [1205, 2], [1206, 1, "\u04B7"], [1207, 2], [1208, 1, "\u04B9"], [1209, 2], [1210, 1, "\u04BB"], [1211, 2], [1212, 1, "\u04BD"], [1213, 2], [1214, 1, "\u04BF"], [1215, 2], [1216, 1, "\u04CF"], [1217, 1, "\u04C2"], [1218, 2], [1219, 1, "\u04C4"], [1220, 2], [1221, 1, "\u04C6"], [1222, 2], [1223, 1, "\u04C8"], [1224, 2], [1225, 1, "\u04CA"], [1226, 2], [1227, 1, "\u04CC"], [1228, 2], [1229, 1, "\u04CE"], [1230, 2], [1231, 2], [1232, 1, "\u04D1"], [1233, 2], [1234, 1, "\u04D3"], [1235, 2], [1236, 1, "\u04D5"], [1237, 2], [1238, 1, "\u04D7"], [1239, 2], [1240, 1, "\u04D9"], [1241, 2], [1242, 1, "\u04DB"], [1243, 2], [1244, 1, "\u04DD"], [1245, 2], [1246, 1, "\u04DF"], [1247, 2], [1248, 1, "\u04E1"], [1249, 2], [1250, 1, "\u04E3"], [1251, 2], [1252, 1, "\u04E5"], [1253, 2], [1254, 1, "\u04E7"], [1255, 2], [1256, 1, "\u04E9"], [1257, 2], [1258, 1, "\u04EB"], [1259, 2], [1260, 1, "\u04ED"], [1261, 2], [1262, 1, "\u04EF"], [1263, 2], [1264, 1, "\u04F1"], [1265, 2], [1266, 1, "\u04F3"], [1267, 2], [1268, 1, "\u04F5"], [1269, 2], [1270, 1, "\u04F7"], [1271, 2], [1272, 1, "\u04F9"], [1273, 2], [1274, 1, "\u04FB"], [1275, 2], [1276, 1, "\u04FD"], [1277, 2], [1278, 1, "\u04FF"], [1279, 2], [1280, 1, "\u0501"], [1281, 2], [1282, 1, "\u0503"], [1283, 2], [1284, 1, "\u0505"], [1285, 2], [1286, 1, "\u0507"], [1287, 2], [1288, 1, "\u0509"], [1289, 2], [1290, 1, "\u050B"], [1291, 2], [1292, 1, "\u050D"], [1293, 2], [1294, 1, "\u050F"], [1295, 2], [1296, 1, "\u0511"], [1297, 2], [1298, 1, "\u0513"], [1299, 2], [1300, 1, "\u0515"], [1301, 2], [1302, 1, "\u0517"], [1303, 2], [1304, 1, "\u0519"], [1305, 2], [1306, 1, "\u051B"], [1307, 2], [1308, 1, "\u051D"], [1309, 2], [1310, 1, "\u051F"], [1311, 2], [1312, 1, "\u0521"], [1313, 2], [1314, 1, "\u0523"], [1315, 2], [1316, 1, "\u0525"], [1317, 2], [1318, 1, "\u0527"], [1319, 2], [1320, 1, "\u0529"], [1321, 2], [1322, 1, "\u052B"], [1323, 2], [1324, 1, "\u052D"], [1325, 2], [1326, 1, "\u052F"], [1327, 2], [1328, 3], [1329, 1, "\u0561"], [1330, 1, "\u0562"], [1331, 1, "\u0563"], [1332, 1, "\u0564"], [1333, 1, "\u0565"], [1334, 1, "\u0566"], [1335, 1, "\u0567"], [1336, 1, "\u0568"], [1337, 1, "\u0569"], [1338, 1, "\u056A"], [1339, 1, "\u056B"], [1340, 1, "\u056C"], [1341, 1, "\u056D"], [1342, 1, "\u056E"], [1343, 1, "\u056F"], [1344, 1, "\u0570"], [1345, 1, "\u0571"], [1346, 1, "\u0572"], [1347, 1, "\u0573"], [1348, 1, "\u0574"], [1349, 1, "\u0575"], [1350, 1, "\u0576"], [1351, 1, "\u0577"], [1352, 1, "\u0578"], [1353, 1, "\u0579"], [1354, 1, "\u057A"], [1355, 1, "\u057B"], [1356, 1, "\u057C"], [1357, 1, "\u057D"], [1358, 1, "\u057E"], [1359, 1, "\u057F"], [1360, 1, "\u0580"], [1361, 1, "\u0581"], [1362, 1, "\u0582"], [1363, 1, "\u0583"], [1364, 1, "\u0584"], [1365, 1, "\u0585"], [1366, 1, "\u0586"], [[1367, 1368], 3], [1369, 2], [[1370, 1375], 2], [1376, 2], [[1377, 1414], 2], [1415, 1, "\u0565\u0582"], [1416, 2], [1417, 2], [1418, 2], [[1419, 1420], 3], [[1421, 1422], 2], [1423, 2], [1424, 3], [[1425, 1441], 2], [1442, 2], [[1443, 1455], 2], [[1456, 1465], 2], [1466, 2], [[1467, 1469], 2], [1470, 2], [1471, 2], [1472, 2], [[1473, 1474], 2], [1475, 2], [1476, 2], [1477, 2], [1478, 2], [1479, 2], [[1480, 1487], 3], [[1488, 1514], 2], [[1515, 1518], 3], [1519, 2], [[1520, 1524], 2], [[1525, 1535], 3], [[1536, 1539], 3], [1540, 3], [1541, 3], [[1542, 1546], 2], [1547, 2], [1548, 2], [[1549, 1551], 2], [[1552, 1557], 2], [[1558, 1562], 2], [1563, 2], [1564, 3], [1565, 2], [1566, 2], [1567, 2], [1568, 2], [[1569, 1594], 2], [[1595, 1599], 2], [1600, 2], [[1601, 1618], 2], [[1619, 1621], 2], [[1622, 1624], 2], [[1625, 1630], 2], [1631, 2], [[1632, 1641], 2], [[1642, 1645], 2], [[1646, 1647], 2], [[1648, 1652], 2], [1653, 1, "\u0627\u0674"], [1654, 1, "\u0648\u0674"], [1655, 1, "\u06C7\u0674"], [1656, 1, "\u064A\u0674"], [[1657, 1719], 2], [[1720, 1721], 2], [[1722, 1726], 2], [1727, 2], [[1728, 1742], 2], [1743, 2], [[1744, 1747], 2], [1748, 2], [[1749, 1756], 2], [1757, 3], [1758, 2], [[1759, 1768], 2], [1769, 2], [[1770, 1773], 2], [[1774, 1775], 2], [[1776, 1785], 2], [[1786, 1790], 2], [1791, 2], [[1792, 1805], 2], [1806, 3], [1807, 3], [[1808, 1836], 2], [[1837, 1839], 2], [[1840, 1866], 2], [[1867, 1868], 3], [[1869, 1871], 2], [[1872, 1901], 2], [[1902, 1919], 2], [[1920, 1968], 2], [1969, 2], [[1970, 1983], 3], [[1984, 2037], 2], [[2038, 2042], 2], [[2043, 2044], 3], [2045, 2], [[2046, 2047], 2], [[2048, 2093], 2], [[2094, 2095], 3], [[2096, 2110], 2], [2111, 3], [[2112, 2139], 2], [[2140, 2141], 3], [2142, 2], [2143, 3], [[2144, 2154], 2], [[2155, 2159], 3], [[2160, 2183], 2], [2184, 2], [[2185, 2190], 2], [2191, 2], [[2192, 2193], 3], [[2194, 2198], 3], [2199, 2], [[2200, 2207], 2], [2208, 2], [2209, 2], [[2210, 2220], 2], [[2221, 2226], 2], [[2227, 2228], 2], [2229, 2], [[2230, 2237], 2], [[2238, 2247], 2], [[2248, 2258], 2], [2259, 2], [[2260, 2273], 2], [2274, 3], [2275, 2], [[2276, 2302], 2], [2303, 2], [2304, 2], [[2305, 2307], 2], [2308, 2], [[2309, 2361], 2], [[2362, 2363], 2], [[2364, 2381], 2], [2382, 2], [2383, 2], [[2384, 2388], 2], [2389, 2], [[2390, 2391], 2], [2392, 1, "\u0915\u093C"], [2393, 1, "\u0916\u093C"], [2394, 1, "\u0917\u093C"], [2395, 1, "\u091C\u093C"], [2396, 1, "\u0921\u093C"], [2397, 1, "\u0922\u093C"], [2398, 1, "\u092B\u093C"], [2399, 1, "\u092F\u093C"], [[2400, 2403], 2], [[2404, 2405], 2], [[2406, 2415], 2], [2416, 2], [[2417, 2418], 2], [[2419, 2423], 2], [2424, 2], [[2425, 2426], 2], [[2427, 2428], 2], [2429, 2], [[2430, 2431], 2], [2432, 2], [[2433, 2435], 2], [2436, 3], [[2437, 2444], 2], [[2445, 2446], 3], [[2447, 2448], 2], [[2449, 2450], 3], [[2451, 2472], 2], [2473, 3], [[2474, 2480], 2], [2481, 3], [2482, 2], [[2483, 2485], 3], [[2486, 2489], 2], [[2490, 2491], 3], [2492, 2], [2493, 2], [[2494, 2500], 2], [[2501, 2502], 3], [[2503, 2504], 2], [[2505, 2506], 3], [[2507, 2509], 2], [2510, 2], [[2511, 2518], 3], [2519, 2], [[2520, 2523], 3], [2524, 1, "\u09A1\u09BC"], [2525, 1, "\u09A2\u09BC"], [2526, 3], [2527, 1, "\u09AF\u09BC"], [[2528, 2531], 2], [[2532, 2533], 3], [[2534, 2545], 2], [[2546, 2554], 2], [2555, 2], [2556, 2], [2557, 2], [2558, 2], [[2559, 2560], 3], [2561, 2], [2562, 2], [2563, 2], [2564, 3], [[2565, 2570], 2], [[2571, 2574], 3], [[2575, 2576], 2], [[2577, 2578], 3], [[2579, 2600], 2], [2601, 3], [[2602, 2608], 2], [2609, 3], [2610, 2], [2611, 1, "\u0A32\u0A3C"], [2612, 3], [2613, 2], [2614, 1, "\u0A38\u0A3C"], [2615, 3], [[2616, 2617], 2], [[2618, 2619], 3], [2620, 2], [2621, 3], [[2622, 2626], 2], [[2627, 2630], 3], [[2631, 2632], 2], [[2633, 2634], 3], [[2635, 2637], 2], [[2638, 2640], 3], [2641, 2], [[2642, 2648], 3], [2649, 1, "\u0A16\u0A3C"], [2650, 1, "\u0A17\u0A3C"], [2651, 1, "\u0A1C\u0A3C"], [2652, 2], [2653, 3], [2654, 1, "\u0A2B\u0A3C"], [[2655, 2661], 3], [[2662, 2676], 2], [2677, 2], [2678, 2], [[2679, 2688], 3], [[2689, 2691], 2], [2692, 3], [[2693, 2699], 2], [2700, 2], [2701, 2], [2702, 3], [[2703, 2705], 2], [2706, 3], [[2707, 2728], 2], [2729, 3], [[2730, 2736], 2], [2737, 3], [[2738, 2739], 2], [2740, 3], [[2741, 2745], 2], [[2746, 2747], 3], [[2748, 2757], 2], [2758, 3], [[2759, 2761], 2], [2762, 3], [[2763, 2765], 2], [[2766, 2767], 3], [2768, 2], [[2769, 2783], 3], [2784, 2], [[2785, 2787], 2], [[2788, 2789], 3], [[2790, 2799], 2], [2800, 2], [2801, 2], [[2802, 2808], 3], [2809, 2], [[2810, 2815], 2], [2816, 3], [[2817, 2819], 2], [2820, 3], [[2821, 2828], 2], [[2829, 2830], 3], [[2831, 2832], 2], [[2833, 2834], 3], [[2835, 2856], 2], [2857, 3], [[2858, 2864], 2], [2865, 3], [[2866, 2867], 2], [2868, 3], [2869, 2], [[2870, 2873], 2], [[2874, 2875], 3], [[2876, 2883], 2], [2884, 2], [[2885, 2886], 3], [[2887, 2888], 2], [[2889, 2890], 3], [[2891, 2893], 2], [[2894, 2900], 3], [2901, 2], [[2902, 2903], 2], [[2904, 2907], 3], [2908, 1, "\u0B21\u0B3C"], [2909, 1, "\u0B22\u0B3C"], [2910, 3], [[2911, 2913], 2], [[2914, 2915], 2], [[2916, 2917], 3], [[2918, 2927], 2], [2928, 2], [2929, 2], [[2930, 2935], 2], [[2936, 2945], 3], [[2946, 2947], 2], [2948, 3], [[2949, 2954], 2], [[2955, 2957], 3], [[2958, 2960], 2], [2961, 3], [[2962, 2965], 2], [[2966, 2968], 3], [[2969, 2970], 2], [2971, 3], [2972, 2], [2973, 3], [[2974, 2975], 2], [[2976, 2978], 3], [[2979, 2980], 2], [[2981, 2983], 3], [[2984, 2986], 2], [[2987, 2989], 3], [[2990, 2997], 2], [2998, 2], [[2999, 3001], 2], [[3002, 3005], 3], [[3006, 3010], 2], [[3011, 3013], 3], [[3014, 3016], 2], [3017, 3], [[3018, 3021], 2], [[3022, 3023], 3], [3024, 2], [[3025, 3030], 3], [3031, 2], [[3032, 3045], 3], [3046, 2], [[3047, 3055], 2], [[3056, 3058], 2], [[3059, 3066], 2], [[3067, 3071], 3], [3072, 2], [[3073, 3075], 2], [3076, 2], [[3077, 3084], 2], [3085, 3], [[3086, 3088], 2], [3089, 3], [[3090, 3112], 2], [3113, 3], [[3114, 3123], 2], [3124, 2], [[3125, 3129], 2], [[3130, 3131], 3], [3132, 2], [3133, 2], [[3134, 3140], 2], [3141, 3], [[3142, 3144], 2], [3145, 3], [[3146, 3149], 2], [[3150, 3156], 3], [[3157, 3158], 2], [3159, 3], [[3160, 3161], 2], [3162, 2], [3163, 3], [3164, 2], [3165, 2], [[3166, 3167], 3], [[3168, 3169], 2], [[3170, 3171], 2], [[3172, 3173], 3], [[3174, 3183], 2], [[3184, 3190], 3], [3191, 2], [[3192, 3199], 2], [3200, 2], [3201, 2], [[3202, 3203], 2], [3204, 2], [[3205, 3212], 2], [3213, 3], [[3214, 3216], 2], [3217, 3], [[3218, 3240], 2], [3241, 3], [[3242, 3251], 2], [3252, 3], [[3253, 3257], 2], [[3258, 3259], 3], [[3260, 3261], 2], [[3262, 3268], 2], [3269, 3], [[3270, 3272], 2], [3273, 3], [[3274, 3277], 2], [[3278, 3284], 3], [[3285, 3286], 2], [[3287, 3291], 3], [3292, 2], [3293, 2], [3294, 2], [3295, 3], [[3296, 3297], 2], [[3298, 3299], 2], [[3300, 3301], 3], [[3302, 3311], 2], [3312, 3], [[3313, 3314], 2], [3315, 2], [[3316, 3327], 3], [3328, 2], [3329, 2], [[3330, 3331], 2], [3332, 2], [[3333, 3340], 2], [3341, 3], [[3342, 3344], 2], [3345, 3], [[3346, 3368], 2], [3369, 2], [[3370, 3385], 2], [3386, 2], [[3387, 3388], 2], [3389, 2], [[3390, 3395], 2], [3396, 2], [3397, 3], [[3398, 3400], 2], [3401, 3], [[3402, 3405], 2], [3406, 2], [3407, 2], [[3408, 3411], 3], [[3412, 3414], 2], [3415, 2], [[3416, 3422], 2], [3423, 2], [[3424, 3425], 2], [[3426, 3427], 2], [[3428, 3429], 3], [[3430, 3439], 2], [[3440, 3445], 2], [[3446, 3448], 2], [3449, 2], [[3450, 3455], 2], [3456, 3], [3457, 2], [[3458, 3459], 2], [3460, 3], [[3461, 3478], 2], [[3479, 3481], 3], [[3482, 3505], 2], [3506, 3], [[3507, 3515], 2], [3516, 3], [3517, 2], [[3518, 3519], 3], [[3520, 3526], 2], [[3527, 3529], 3], [3530, 2], [[3531, 3534], 3], [[3535, 3540], 2], [3541, 3], [3542, 2], [3543, 3], [[3544, 3551], 2], [[3552, 3557], 3], [[3558, 3567], 2], [[3568, 3569], 3], [[3570, 3571], 2], [3572, 2], [[3573, 3584], 3], [[3585, 3634], 2], [3635, 1, "\u0E4D\u0E32"], [[3636, 3642], 2], [[3643, 3646], 3], [3647, 2], [[3648, 3662], 2], [3663, 2], [[3664, 3673], 2], [[3674, 3675], 2], [[3676, 3712], 3], [[3713, 3714], 2], [3715, 3], [3716, 2], [3717, 3], [3718, 2], [[3719, 3720], 2], [3721, 2], [3722, 2], [3723, 3], [3724, 2], [3725, 2], [[3726, 3731], 2], [[3732, 3735], 2], [3736, 2], [[3737, 3743], 2], [3744, 2], [[3745, 3747], 2], [3748, 3], [3749, 2], [3750, 3], [3751, 2], [[3752, 3753], 2], [[3754, 3755], 2], [3756, 2], [[3757, 3762], 2], [3763, 1, "\u0ECD\u0EB2"], [[3764, 3769], 2], [3770, 2], [[3771, 3773], 2], [[3774, 3775], 3], [[3776, 3780], 2], [3781, 3], [3782, 2], [3783, 3], [[3784, 3789], 2], [3790, 2], [3791, 3], [[3792, 3801], 2], [[3802, 3803], 3], [3804, 1, "\u0EAB\u0E99"], [3805, 1, "\u0EAB\u0EA1"], [[3806, 3807], 2], [[3808, 3839], 3], [3840, 2], [[3841, 3850], 2], [3851, 2], [3852, 1, "\u0F0B"], [[3853, 3863], 2], [[3864, 3865], 2], [[3866, 3871], 2], [[3872, 3881], 2], [[3882, 3892], 2], [3893, 2], [3894, 2], [3895, 2], [3896, 2], [3897, 2], [[3898, 3901], 2], [[3902, 3906], 2], [3907, 1, "\u0F42\u0FB7"], [[3908, 3911], 2], [3912, 3], [[3913, 3916], 2], [3917, 1, "\u0F4C\u0FB7"], [[3918, 3921], 2], [3922, 1, "\u0F51\u0FB7"], [[3923, 3926], 2], [3927, 1, "\u0F56\u0FB7"], [[3928, 3931], 2], [3932, 1, "\u0F5B\u0FB7"], [[3933, 3944], 2], [3945, 1, "\u0F40\u0FB5"], [3946, 2], [[3947, 3948], 2], [[3949, 3952], 3], [[3953, 3954], 2], [3955, 1, "\u0F71\u0F72"], [3956, 2], [3957, 1, "\u0F71\u0F74"], [3958, 1, "\u0FB2\u0F80"], [3959, 1, "\u0FB2\u0F71\u0F80"], [3960, 1, "\u0FB3\u0F80"], [3961, 1, "\u0FB3\u0F71\u0F80"], [[3962, 3968], 2], [3969, 1, "\u0F71\u0F80"], [[3970, 3972], 2], [3973, 2], [[3974, 3979], 2], [[3980, 3983], 2], [[3984, 3986], 2], [3987, 1, "\u0F92\u0FB7"], [[3988, 3989], 2], [3990, 2], [3991, 2], [3992, 3], [[3993, 3996], 2], [3997, 1, "\u0F9C\u0FB7"], [[3998, 4001], 2], [4002, 1, "\u0FA1\u0FB7"], [[4003, 4006], 2], [4007, 1, "\u0FA6\u0FB7"], [[4008, 4011], 2], [4012, 1, "\u0FAB\u0FB7"], [4013, 2], [[4014, 4016], 2], [[4017, 4023], 2], [4024, 2], [4025, 1, "\u0F90\u0FB5"], [[4026, 4028], 2], [4029, 3], [[4030, 4037], 2], [4038, 2], [[4039, 4044], 2], [4045, 3], [4046, 2], [4047, 2], [[4048, 4049], 2], [[4050, 4052], 2], [[4053, 4056], 2], [[4057, 4058], 2], [[4059, 4095], 3], [[4096, 4129], 2], [4130, 2], [[4131, 4135], 2], [4136, 2], [[4137, 4138], 2], [4139, 2], [[4140, 4146], 2], [[4147, 4149], 2], [[4150, 4153], 2], [[4154, 4159], 2], [[4160, 4169], 2], [[4170, 4175], 2], [[4176, 4185], 2], [[4186, 4249], 2], [[4250, 4253], 2], [[4254, 4255], 2], [4256, 1, "\u2D00"], [4257, 1, "\u2D01"], [4258, 1, "\u2D02"], [4259, 1, "\u2D03"], [4260, 1, "\u2D04"], [4261, 1, "\u2D05"], [4262, 1, "\u2D06"], [4263, 1, "\u2D07"], [4264, 1, "\u2D08"], [4265, 1, "\u2D09"], [4266, 1, "\u2D0A"], [4267, 1, "\u2D0B"], [4268, 1, "\u2D0C"], [4269, 1, "\u2D0D"], [4270, 1, "\u2D0E"], [4271, 1, "\u2D0F"], [4272, 1, "\u2D10"], [4273, 1, "\u2D11"], [4274, 1, "\u2D12"], [4275, 1, "\u2D13"], [4276, 1, "\u2D14"], [4277, 1, "\u2D15"], [4278, 1, "\u2D16"], [4279, 1, "\u2D17"], [4280, 1, "\u2D18"], [4281, 1, "\u2D19"], [4282, 1, "\u2D1A"], [4283, 1, "\u2D1B"], [4284, 1, "\u2D1C"], [4285, 1, "\u2D1D"], [4286, 1, "\u2D1E"], [4287, 1, "\u2D1F"], [4288, 1, "\u2D20"], [4289, 1, "\u2D21"], [4290, 1, "\u2D22"], [4291, 1, "\u2D23"], [4292, 1, "\u2D24"], [4293, 1, "\u2D25"], [4294, 3], [4295, 1, "\u2D27"], [[4296, 4300], 3], [4301, 1, "\u2D2D"], [[4302, 4303], 3], [[4304, 4342], 2], [[4343, 4344], 2], [[4345, 4346], 2], [4347, 2], [4348, 1, "\u10DC"], [[4349, 4351], 2], [[4352, 4441], 2], [[4442, 4446], 2], [[4447, 4448], 7], [[4449, 4514], 2], [[4515, 4519], 2], [[4520, 4601], 2], [[4602, 4607], 2], [[4608, 4614], 2], [4615, 2], [[4616, 4678], 2], [4679, 2], [4680, 2], [4681, 3], [[4682, 4685], 2], [[4686, 4687], 3], [[4688, 4694], 2], [4695, 3], [4696, 2], [4697, 3], [[4698, 4701], 2], [[4702, 4703], 3], [[4704, 4742], 2], [4743, 2], [4744, 2], [4745, 3], [[4746, 4749], 2], [[4750, 4751], 3], [[4752, 4782], 2], [4783, 2], [4784, 2], [4785, 3], [[4786, 4789], 2], [[4790, 4791], 3], [[4792, 4798], 2], [4799, 3], [4800, 2], [4801, 3], [[4802, 4805], 2], [[4806, 4807], 3], [[4808, 4814], 2], [4815, 2], [[4816, 4822], 2], [4823, 3], [[4824, 4846], 2], [4847, 2], [[4848, 4878], 2], [4879, 2], [4880, 2], [4881, 3], [[4882, 4885], 2], [[4886, 4887], 3], [[4888, 4894], 2], [4895, 2], [[4896, 4934], 2], [4935, 2], [[4936, 4954], 2], [[4955, 4956], 3], [[4957, 4958], 2], [4959, 2], [4960, 2], [[4961, 4988], 2], [[4989, 4991], 3], [[4992, 5007], 2], [[5008, 5017], 2], [[5018, 5023], 3], [[5024, 5108], 2], [5109, 2], [[5110, 5111], 3], [5112, 1, "\u13F0"], [5113, 1, "\u13F1"], [5114, 1, "\u13F2"], [5115, 1, "\u13F3"], [5116, 1, "\u13F4"], [5117, 1, "\u13F5"], [[5118, 5119], 3], [5120, 2], [[5121, 5740], 2], [[5741, 5742], 2], [[5743, 5750], 2], [[5751, 5759], 2], [5760, 3], [[5761, 5786], 2], [[5787, 5788], 2], [[5789, 5791], 3], [[5792, 5866], 2], [[5867, 5872], 2], [[5873, 5880], 2], [[5881, 5887], 3], [[5888, 5900], 2], [5901, 2], [[5902, 5908], 2], [5909, 2], [[5910, 5918], 3], [5919, 2], [[5920, 5940], 2], [[5941, 5942], 2], [[5943, 5951], 3], [[5952, 5971], 2], [[5972, 5983], 3], [[5984, 5996], 2], [5997, 3], [[5998, 6e3], 2], [6001, 3], [[6002, 6003], 2], [[6004, 6015], 3], [[6016, 6067], 2], [[6068, 6069], 7], [[6070, 6099], 2], [[6100, 6102], 2], [6103, 2], [[6104, 6107], 2], [6108, 2], [6109, 2], [[6110, 6111], 3], [[6112, 6121], 2], [[6122, 6127], 3], [[6128, 6137], 2], [[6138, 6143], 3], [[6144, 6154], 2], [[6155, 6158], 7], [6159, 7], [[6160, 6169], 2], [[6170, 6175], 3], [[6176, 6263], 2], [6264, 2], [[6265, 6271], 3], [[6272, 6313], 2], [6314, 2], [[6315, 6319], 3], [[6320, 6389], 2], [[6390, 6399], 3], [[6400, 6428], 2], [[6429, 6430], 2], [6431, 3], [[6432, 6443], 2], [[6444, 6447], 3], [[6448, 6459], 2], [[6460, 6463], 3], [6464, 2], [[6465, 6467], 3], [[6468, 6469], 2], [[6470, 6509], 2], [[6510, 6511], 3], [[6512, 6516], 2], [[6517, 6527], 3], [[6528, 6569], 2], [[6570, 6571], 2], [[6572, 6575], 3], [[6576, 6601], 2], [[6602, 6607], 3], [[6608, 6617], 2], [6618, 2], [[6619, 6621], 3], [[6622, 6623], 2], [[6624, 6655], 2], [[6656, 6683], 2], [[6684, 6685], 3], [[6686, 6687], 2], [[6688, 6750], 2], [6751, 3], [[6752, 6780], 2], [[6781, 6782], 3], [[6783, 6793], 2], [[6794, 6799], 3], [[6800, 6809], 2], [[6810, 6815], 3], [[6816, 6822], 2], [6823, 2], [[6824, 6829], 2], [[6830, 6831], 3], [[6832, 6845], 2], [6846, 2], [[6847, 6848], 2], [[6849, 6862], 2], [[6863, 6877], 2], [[6878, 6879], 3], [[6880, 6891], 2], [[6892, 6911], 3], [[6912, 6987], 2], [6988, 2], [6989, 3], [[6990, 6991], 2], [[6992, 7001], 2], [[7002, 7018], 2], [[7019, 7027], 2], [[7028, 7036], 2], [[7037, 7038], 2], [7039, 2], [[7040, 7082], 2], [[7083, 7085], 2], [[7086, 7097], 2], [[7098, 7103], 2], [[7104, 7155], 2], [[7156, 7163], 3], [[7164, 7167], 2], [[7168, 7223], 2], [[7224, 7226], 3], [[7227, 7231], 2], [[7232, 7241], 2], [[7242, 7244], 3], [[7245, 7293], 2], [[7294, 7295], 2], [7296, 1, "\u0432"], [7297, 1, "\u0434"], [7298, 1, "\u043E"], [7299, 1, "\u0441"], [[7300, 7301], 1, "\u0442"], [7302, 1, "\u044A"], [7303, 1, "\u0463"], [7304, 1, "\uA64B"], [7305, 1, "\u1C8A"], [7306, 2], [[7307, 7311], 3], [7312, 1, "\u10D0"], [7313, 1, "\u10D1"], [7314, 1, "\u10D2"], [7315, 1, "\u10D3"], [7316, 1, "\u10D4"], [7317, 1, "\u10D5"], [7318, 1, "\u10D6"], [7319, 1, "\u10D7"], [7320, 1, "\u10D8"], [7321, 1, "\u10D9"], [7322, 1, "\u10DA"], [7323, 1, "\u10DB"], [7324, 1, "\u10DC"], [7325, 1, "\u10DD"], [7326, 1, "\u10DE"], [7327, 1, "\u10DF"], [7328, 1, "\u10E0"], [7329, 1, "\u10E1"], [7330, 1, "\u10E2"], [7331, 1, "\u10E3"], [7332, 1, "\u10E4"], [7333, 1, "\u10E5"], [7334, 1, "\u10E6"], [7335, 1, "\u10E7"], [7336, 1, "\u10E8"], [7337, 1, "\u10E9"], [7338, 1, "\u10EA"], [7339, 1, "\u10EB"], [7340, 1, "\u10EC"], [7341, 1, "\u10ED"], [7342, 1, "\u10EE"], [7343, 1, "\u10EF"], [7344, 1, "\u10F0"], [7345, 1, "\u10F1"], [7346, 1, "\u10F2"], [7347, 1, "\u10F3"], [7348, 1, "\u10F4"], [7349, 1, "\u10F5"], [7350, 1, "\u10F6"], [7351, 1, "\u10F7"], [7352, 1, "\u10F8"], [7353, 1, "\u10F9"], [7354, 1, "\u10FA"], [[7355, 7356], 3], [7357, 1, "\u10FD"], [7358, 1, "\u10FE"], [7359, 1, "\u10FF"], [[7360, 7367], 2], [[7368, 7375], 3], [[7376, 7378], 2], [7379, 2], [[7380, 7410], 2], [[7411, 7414], 2], [7415, 2], [[7416, 7417], 2], [7418, 2], [[7419, 7423], 3], [[7424, 7467], 2], [7468, 1, "a"], [7469, 1, "\xE6"], [7470, 1, "b"], [7471, 2], [7472, 1, "d"], [7473, 1, "e"], [7474, 1, "\u01DD"], [7475, 1, "g"], [7476, 1, "h"], [7477, 1, "i"], [7478, 1, "j"], [7479, 1, "k"], [7480, 1, "l"], [7481, 1, "m"], [7482, 1, "n"], [7483, 2], [7484, 1, "o"], [7485, 1, "\u0223"], [7486, 1, "p"], [7487, 1, "r"], [7488, 1, "t"], [7489, 1, "u"], [7490, 1, "w"], [7491, 1, "a"], [7492, 1, "\u0250"], [7493, 1, "\u0251"], [7494, 1, "\u1D02"], [7495, 1, "b"], [7496, 1, "d"], [7497, 1, "e"], [7498, 1, "\u0259"], [7499, 1, "\u025B"], [7500, 1, "\u025C"], [7501, 1, "g"], [7502, 2], [7503, 1, "k"], [7504, 1, "m"], [7505, 1, "\u014B"], [7506, 1, "o"], [7507, 1, "\u0254"], [7508, 1, "\u1D16"], [7509, 1, "\u1D17"], [7510, 1, "p"], [7511, 1, "t"], [7512, 1, "u"], [7513, 1, "\u1D1D"], [7514, 1, "\u026F"], [7515, 1, "v"], [7516, 1, "\u1D25"], [7517, 1, "\u03B2"], [7518, 1, "\u03B3"], [7519, 1, "\u03B4"], [7520, 1, "\u03C6"], [7521, 1, "\u03C7"], [7522, 1, "i"], [7523, 1, "r"], [7524, 1, "u"], [7525, 1, "v"], [7526, 1, "\u03B2"], [7527, 1, "\u03B3"], [7528, 1, "\u03C1"], [7529, 1, "\u03C6"], [7530, 1, "\u03C7"], [7531, 2], [[7532, 7543], 2], [7544, 1, "\u043D"], [[7545, 7578], 2], [7579, 1, "\u0252"], [7580, 1, "c"], [7581, 1, "\u0255"], [7582, 1, "\xF0"], [7583, 1, "\u025C"], [7584, 1, "f"], [7585, 1, "\u025F"], [7586, 1, "\u0261"], [7587, 1, "\u0265"], [7588, 1, "\u0268"], [7589, 1, "\u0269"], [7590, 1, "\u026A"], [7591, 1, "\u1D7B"], [7592, 1, "\u029D"], [7593, 1, "\u026D"], [7594, 1, "\u1D85"], [7595, 1, "\u029F"], [7596, 1, "\u0271"], [7597, 1, "\u0270"], [7598, 1, "\u0272"], [7599, 1, "\u0273"], [7600, 1, "\u0274"], [7601, 1, "\u0275"], [7602, 1, "\u0278"], [7603, 1, "\u0282"], [7604, 1, "\u0283"], [7605, 1, "\u01AB"], [7606, 1, "\u0289"], [7607, 1, "\u028A"], [7608, 1, "\u1D1C"], [7609, 1, "\u028B"], [7610, 1, "\u028C"], [7611, 1, "z"], [7612, 1, "\u0290"], [7613, 1, "\u0291"], [7614, 1, "\u0292"], [7615, 1, "\u03B8"], [[7616, 7619], 2], [[7620, 7626], 2], [[7627, 7654], 2], [[7655, 7669], 2], [[7670, 7673], 2], [7674, 2], [7675, 2], [7676, 2], [7677, 2], [[7678, 7679], 2], [7680, 1, "\u1E01"], [7681, 2], [7682, 1, "\u1E03"], [7683, 2], [7684, 1, "\u1E05"], [7685, 2], [7686, 1, "\u1E07"], [7687, 2], [7688, 1, "\u1E09"], [7689, 2], [7690, 1, "\u1E0B"], [7691, 2], [7692, 1, "\u1E0D"], [7693, 2], [7694, 1, "\u1E0F"], [7695, 2], [7696, 1, "\u1E11"], [7697, 2], [7698, 1, "\u1E13"], [7699, 2], [7700, 1, "\u1E15"], [7701, 2], [7702, 1, "\u1E17"], [7703, 2], [7704, 1, "\u1E19"], [7705, 2], [7706, 1, "\u1E1B"], [7707, 2], [7708, 1, "\u1E1D"], [7709, 2], [7710, 1, "\u1E1F"], [7711, 2], [7712, 1, "\u1E21"], [7713, 2], [7714, 1, "\u1E23"], [7715, 2], [7716, 1, "\u1E25"], [7717, 2], [7718, 1, "\u1E27"], [7719, 2], [7720, 1, "\u1E29"], [7721, 2], [7722, 1, "\u1E2B"], [7723, 2], [7724, 1, "\u1E2D"], [7725, 2], [7726, 1, "\u1E2F"], [7727, 2], [7728, 1, "\u1E31"], [7729, 2], [7730, 1, "\u1E33"], [7731, 2], [7732, 1, "\u1E35"], [7733, 2], [7734, 1, "\u1E37"], [7735, 2], [7736, 1, "\u1E39"], [7737, 2], [7738, 1, "\u1E3B"], [7739, 2], [7740, 1, "\u1E3D"], [7741, 2], [7742, 1, "\u1E3F"], [7743, 2], [7744, 1, "\u1E41"], [7745, 2], [7746, 1, "\u1E43"], [7747, 2], [7748, 1, "\u1E45"], [7749, 2], [7750, 1, "\u1E47"], [7751, 2], [7752, 1, "\u1E49"], [7753, 2], [7754, 1, "\u1E4B"], [7755, 2], [7756, 1, "\u1E4D"], [7757, 2], [7758, 1, "\u1E4F"], [7759, 2], [7760, 1, "\u1E51"], [7761, 2], [7762, 1, "\u1E53"], [7763, 2], [7764, 1, "\u1E55"], [7765, 2], [7766, 1, "\u1E57"], [7767, 2], [7768, 1, "\u1E59"], [7769, 2], [7770, 1, "\u1E5B"], [7771, 2], [7772, 1, "\u1E5D"], [7773, 2], [7774, 1, "\u1E5F"], [7775, 2], [7776, 1, "\u1E61"], [7777, 2], [7778, 1, "\u1E63"], [7779, 2], [7780, 1, "\u1E65"], [7781, 2], [7782, 1, "\u1E67"], [7783, 2], [7784, 1, "\u1E69"], [7785, 2], [7786, 1, "\u1E6B"], [7787, 2], [7788, 1, "\u1E6D"], [7789, 2], [7790, 1, "\u1E6F"], [7791, 2], [7792, 1, "\u1E71"], [7793, 2], [7794, 1, "\u1E73"], [7795, 2], [7796, 1, "\u1E75"], [7797, 2], [7798, 1, "\u1E77"], [7799, 2], [7800, 1, "\u1E79"], [7801, 2], [7802, 1, "\u1E7B"], [7803, 2], [7804, 1, "\u1E7D"], [7805, 2], [7806, 1, "\u1E7F"], [7807, 2], [7808, 1, "\u1E81"], [7809, 2], [7810, 1, "\u1E83"], [7811, 2], [7812, 1, "\u1E85"], [7813, 2], [7814, 1, "\u1E87"], [7815, 2], [7816, 1, "\u1E89"], [7817, 2], [7818, 1, "\u1E8B"], [7819, 2], [7820, 1, "\u1E8D"], [7821, 2], [7822, 1, "\u1E8F"], [7823, 2], [7824, 1, "\u1E91"], [7825, 2], [7826, 1, "\u1E93"], [7827, 2], [7828, 1, "\u1E95"], [[7829, 7833], 2], [7834, 1, "a\u02BE"], [7835, 1, "\u1E61"], [[7836, 7837], 2], [7838, 1, "\xDF"], [7839, 2], [7840, 1, "\u1EA1"], [7841, 2], [7842, 1, "\u1EA3"], [7843, 2], [7844, 1, "\u1EA5"], [7845, 2], [7846, 1, "\u1EA7"], [7847, 2], [7848, 1, "\u1EA9"], [7849, 2], [7850, 1, "\u1EAB"], [7851, 2], [7852, 1, "\u1EAD"], [7853, 2], [7854, 1, "\u1EAF"], [7855, 2], [7856, 1, "\u1EB1"], [7857, 2], [7858, 1, "\u1EB3"], [7859, 2], [7860, 1, "\u1EB5"], [7861, 2], [7862, 1, "\u1EB7"], [7863, 2], [7864, 1, "\u1EB9"], [7865, 2], [7866, 1, "\u1EBB"], [7867, 2], [7868, 1, "\u1EBD"], [7869, 2], [7870, 1, "\u1EBF"], [7871, 2], [7872, 1, "\u1EC1"], [7873, 2], [7874, 1, "\u1EC3"], [7875, 2], [7876, 1, "\u1EC5"], [7877, 2], [7878, 1, "\u1EC7"], [7879, 2], [7880, 1, "\u1EC9"], [7881, 2], [7882, 1, "\u1ECB"], [7883, 2], [7884, 1, "\u1ECD"], [7885, 2], [7886, 1, "\u1ECF"], [7887, 2], [7888, 1, "\u1ED1"], [7889, 2], [7890, 1, "\u1ED3"], [7891, 2], [7892, 1, "\u1ED5"], [7893, 2], [7894, 1, "\u1ED7"], [7895, 2], [7896, 1, "\u1ED9"], [7897, 2], [7898, 1, "\u1EDB"], [7899, 2], [7900, 1, "\u1EDD"], [7901, 2], [7902, 1, "\u1EDF"], [7903, 2], [7904, 1, "\u1EE1"], [7905, 2], [7906, 1, "\u1EE3"], [7907, 2], [7908, 1, "\u1EE5"], [7909, 2], [7910, 1, "\u1EE7"], [7911, 2], [7912, 1, "\u1EE9"], [7913, 2], [7914, 1, "\u1EEB"], [7915, 2], [7916, 1, "\u1EED"], [7917, 2], [7918, 1, "\u1EEF"], [7919, 2], [7920, 1, "\u1EF1"], [7921, 2], [7922, 1, "\u1EF3"], [7923, 2], [7924, 1, "\u1EF5"], [7925, 2], [7926, 1, "\u1EF7"], [7927, 2], [7928, 1, "\u1EF9"], [7929, 2], [7930, 1, "\u1EFB"], [7931, 2], [7932, 1, "\u1EFD"], [7933, 2], [7934, 1, "\u1EFF"], [7935, 2], [[7936, 7943], 2], [7944, 1, "\u1F00"], [7945, 1, "\u1F01"], [7946, 1, "\u1F02"], [7947, 1, "\u1F03"], [7948, 1, "\u1F04"], [7949, 1, "\u1F05"], [7950, 1, "\u1F06"], [7951, 1, "\u1F07"], [[7952, 7957], 2], [[7958, 7959], 3], [7960, 1, "\u1F10"], [7961, 1, "\u1F11"], [7962, 1, "\u1F12"], [7963, 1, "\u1F13"], [7964, 1, "\u1F14"], [7965, 1, "\u1F15"], [[7966, 7967], 3], [[7968, 7975], 2], [7976, 1, "\u1F20"], [7977, 1, "\u1F21"], [7978, 1, "\u1F22"], [7979, 1, "\u1F23"], [7980, 1, "\u1F24"], [7981, 1, "\u1F25"], [7982, 1, "\u1F26"], [7983, 1, "\u1F27"], [[7984, 7991], 2], [7992, 1, "\u1F30"], [7993, 1, "\u1F31"], [7994, 1, "\u1F32"], [7995, 1, "\u1F33"], [7996, 1, "\u1F34"], [7997, 1, "\u1F35"], [7998, 1, "\u1F36"], [7999, 1, "\u1F37"], [[8e3, 8005], 2], [[8006, 8007], 3], [8008, 1, "\u1F40"], [8009, 1, "\u1F41"], [8010, 1, "\u1F42"], [8011, 1, "\u1F43"], [8012, 1, "\u1F44"], [8013, 1, "\u1F45"], [[8014, 8015], 3], [[8016, 8023], 2], [8024, 3], [8025, 1, "\u1F51"], [8026, 3], [8027, 1, "\u1F53"], [8028, 3], [8029, 1, "\u1F55"], [8030, 3], [8031, 1, "\u1F57"], [[8032, 8039], 2], [8040, 1, "\u1F60"], [8041, 1, "\u1F61"], [8042, 1, "\u1F62"], [8043, 1, "\u1F63"], [8044, 1, "\u1F64"], [8045, 1, "\u1F65"], [8046, 1, "\u1F66"], [8047, 1, "\u1F67"], [8048, 2], [8049, 1, "\u03AC"], [8050, 2], [8051, 1, "\u03AD"], [8052, 2], [8053, 1, "\u03AE"], [8054, 2], [8055, 1, "\u03AF"], [8056, 2], [8057, 1, "\u03CC"], [8058, 2], [8059, 1, "\u03CD"], [8060, 2], [8061, 1, "\u03CE"], [[8062, 8063], 3], [8064, 1, "\u1F00\u03B9"], [8065, 1, "\u1F01\u03B9"], [8066, 1, "\u1F02\u03B9"], [8067, 1, "\u1F03\u03B9"], [8068, 1, "\u1F04\u03B9"], [8069, 1, "\u1F05\u03B9"], [8070, 1, "\u1F06\u03B9"], [8071, 1, "\u1F07\u03B9"], [8072, 1, "\u1F00\u03B9"], [8073, 1, "\u1F01\u03B9"], [8074, 1, "\u1F02\u03B9"], [8075, 1, "\u1F03\u03B9"], [8076, 1, "\u1F04\u03B9"], [8077, 1, "\u1F05\u03B9"], [8078, 1, "\u1F06\u03B9"], [8079, 1, "\u1F07\u03B9"], [8080, 1, "\u1F20\u03B9"], [8081, 1, "\u1F21\u03B9"], [8082, 1, "\u1F22\u03B9"], [8083, 1, "\u1F23\u03B9"], [8084, 1, "\u1F24\u03B9"], [8085, 1, "\u1F25\u03B9"], [8086, 1, "\u1F26\u03B9"], [8087, 1, "\u1F27\u03B9"], [8088, 1, "\u1F20\u03B9"], [8089, 1, "\u1F21\u03B9"], [8090, 1, "\u1F22\u03B9"], [8091, 1, "\u1F23\u03B9"], [8092, 1, "\u1F24\u03B9"], [8093, 1, "\u1F25\u03B9"], [8094, 1, "\u1F26\u03B9"], [8095, 1, "\u1F27\u03B9"], [8096, 1, "\u1F60\u03B9"], [8097, 1, "\u1F61\u03B9"], [8098, 1, "\u1F62\u03B9"], [8099, 1, "\u1F63\u03B9"], [8100, 1, "\u1F64\u03B9"], [8101, 1, "\u1F65\u03B9"], [8102, 1, "\u1F66\u03B9"], [8103, 1, "\u1F67\u03B9"], [8104, 1, "\u1F60\u03B9"], [8105, 1, "\u1F61\u03B9"], [8106, 1, "\u1F62\u03B9"], [8107, 1, "\u1F63\u03B9"], [8108, 1, "\u1F64\u03B9"], [8109, 1, "\u1F65\u03B9"], [8110, 1, "\u1F66\u03B9"], [8111, 1, "\u1F67\u03B9"], [[8112, 8113], 2], [8114, 1, "\u1F70\u03B9"], [8115, 1, "\u03B1\u03B9"], [8116, 1, "\u03AC\u03B9"], [8117, 3], [8118, 2], [8119, 1, "\u1FB6\u03B9"], [8120, 1, "\u1FB0"], [8121, 1, "\u1FB1"], [8122, 1, "\u1F70"], [8123, 1, "\u03AC"], [8124, 1, "\u03B1\u03B9"], [8125, 1, " \u0313"], [8126, 1, "\u03B9"], [8127, 1, " \u0313"], [8128, 1, " \u0342"], [8129, 1, " \u0308\u0342"], [8130, 1, "\u1F74\u03B9"], [8131, 1, "\u03B7\u03B9"], [8132, 1, "\u03AE\u03B9"], [8133, 3], [8134, 2], [8135, 1, "\u1FC6\u03B9"], [8136, 1, "\u1F72"], [8137, 1, "\u03AD"], [8138, 1, "\u1F74"], [8139, 1, "\u03AE"], [8140, 1, "\u03B7\u03B9"], [8141, 1, " \u0313\u0300"], [8142, 1, " \u0313\u0301"], [8143, 1, " \u0313\u0342"], [[8144, 8146], 2], [8147, 1, "\u0390"], [[8148, 8149], 3], [[8150, 8151], 2], [8152, 1, "\u1FD0"], [8153, 1, "\u1FD1"], [8154, 1, "\u1F76"], [8155, 1, "\u03AF"], [8156, 3], [8157, 1, " \u0314\u0300"], [8158, 1, " \u0314\u0301"], [8159, 1, " \u0314\u0342"], [[8160, 8162], 2], [8163, 1, "\u03B0"], [[8164, 8167], 2], [8168, 1, "\u1FE0"], [8169, 1, "\u1FE1"], [8170, 1, "\u1F7A"], [8171, 1, "\u03CD"], [8172, 1, "\u1FE5"], [8173, 1, " \u0308\u0300"], [8174, 1, " \u0308\u0301"], [8175, 1, "`"], [[8176, 8177], 3], [8178, 1, "\u1F7C\u03B9"], [8179, 1, "\u03C9\u03B9"], [8180, 1, "\u03CE\u03B9"], [8181, 3], [8182, 2], [8183, 1, "\u1FF6\u03B9"], [8184, 1, "\u1F78"], [8185, 1, "\u03CC"], [8186, 1, "\u1F7C"], [8187, 1, "\u03CE"], [8188, 1, "\u03C9\u03B9"], [8189, 1, " \u0301"], [8190, 1, " \u0314"], [8191, 3], [[8192, 8202], 1, " "], [8203, 7], [[8204, 8205], 6, ""], [[8206, 8207], 3], [8208, 2], [8209, 1, "\u2010"], [[8210, 8214], 2], [8215, 1, " \u0333"], [[8216, 8227], 2], [[8228, 8230], 3], [8231, 2], [[8232, 8238], 3], [8239, 1, " "], [[8240, 8242], 2], [8243, 1, "\u2032\u2032"], [8244, 1, "\u2032\u2032\u2032"], [8245, 2], [8246, 1, "\u2035\u2035"], [8247, 1, "\u2035\u2035\u2035"], [[8248, 8251], 2], [8252, 1, "!!"], [8253, 2], [8254, 1, " \u0305"], [[8255, 8262], 2], [8263, 1, "??"], [8264, 1, "?!"], [8265, 1, "!?"], [[8266, 8269], 2], [[8270, 8274], 2], [[8275, 8276], 2], [[8277, 8278], 2], [8279, 1, "\u2032\u2032\u2032\u2032"], [[8280, 8286], 2], [8287, 1, " "], [[8288, 8291], 7], [8292, 7], [8293, 3], [[8294, 8297], 3], [[8298, 8303], 7], [8304, 1, "0"], [8305, 1, "i"], [[8306, 8307], 3], [8308, 1, "4"], [8309, 1, "5"], [8310, 1, "6"], [8311, 1, "7"], [8312, 1, "8"], [8313, 1, "9"], [8314, 1, "+"], [8315, 1, "\u2212"], [8316, 1, "="], [8317, 1, "("], [8318, 1, ")"], [8319, 1, "n"], [8320, 1, "0"], [8321, 1, "1"], [8322, 1, "2"], [8323, 1, "3"], [8324, 1, "4"], [8325, 1, "5"], [8326, 1, "6"], [8327, 1, "7"], [8328, 1, "8"], [8329, 1, "9"], [8330, 1, "+"], [8331, 1, "\u2212"], [8332, 1, "="], [8333, 1, "("], [8334, 1, ")"], [8335, 3], [8336, 1, "a"], [8337, 1, "e"], [8338, 1, "o"], [8339, 1, "x"], [8340, 1, "\u0259"], [8341, 1, "h"], [8342, 1, "k"], [8343, 1, "l"], [8344, 1, "m"], [8345, 1, "n"], [8346, 1, "p"], [8347, 1, "s"], [8348, 1, "t"], [[8349, 8351], 3], [[8352, 8359], 2], [8360, 1, "rs"], [[8361, 8362], 2], [8363, 2], [8364, 2], [[8365, 8367], 2], [[8368, 8369], 2], [[8370, 8373], 2], [[8374, 8376], 2], [8377, 2], [8378, 2], [[8379, 8381], 2], [8382, 2], [8383, 2], [8384, 2], [8385, 2], [[8386, 8399], 3], [[8400, 8417], 2], [[8418, 8419], 2], [[8420, 8426], 2], [8427, 2], [[8428, 8431], 2], [8432, 2], [[8433, 8447], 3], [8448, 1, "a/c"], [8449, 1, "a/s"], [8450, 1, "c"], [8451, 1, "\xB0c"], [8452, 2], [8453, 1, "c/o"], [8454, 1, "c/u"], [8455, 1, "\u025B"], [8456, 2], [8457, 1, "\xB0f"], [8458, 1, "g"], [[8459, 8462], 1, "h"], [8463, 1, "\u0127"], [[8464, 8465], 1, "i"], [[8466, 8467], 1, "l"], [8468, 2], [8469, 1, "n"], [8470, 1, "no"], [[8471, 8472], 2], [8473, 1, "p"], [8474, 1, "q"], [[8475, 8477], 1, "r"], [[8478, 8479], 2], [8480, 1, "sm"], [8481, 1, "tel"], [8482, 1, "tm"], [8483, 2], [8484, 1, "z"], [8485, 2], [8486, 1, "\u03C9"], [8487, 2], [8488, 1, "z"], [8489, 2], [8490, 1, "k"], [8491, 1, "\xE5"], [8492, 1, "b"], [8493, 1, "c"], [8494, 2], [[8495, 8496], 1, "e"], [8497, 1, "f"], [8498, 1, "\u214E"], [8499, 1, "m"], [8500, 1, "o"], [8501, 1, "\u05D0"], [8502, 1, "\u05D1"], [8503, 1, "\u05D2"], [8504, 1, "\u05D3"], [8505, 1, "i"], [8506, 2], [8507, 1, "fax"], [8508, 1, "\u03C0"], [[8509, 8510], 1, "\u03B3"], [8511, 1, "\u03C0"], [8512, 1, "\u2211"], [[8513, 8516], 2], [[8517, 8518], 1, "d"], [8519, 1, "e"], [8520, 1, "i"], [8521, 1, "j"], [[8522, 8523], 2], [8524, 2], [8525, 2], [8526, 2], [8527, 2], [8528, 1, "1\u20447"], [8529, 1, "1\u20449"], [8530, 1, "1\u204410"], [8531, 1, "1\u20443"], [8532, 1, "2\u20443"], [8533, 1, "1\u20445"], [8534, 1, "2\u20445"], [8535, 1, "3\u20445"], [8536, 1, "4\u20445"], [8537, 1, "1\u20446"], [8538, 1, "5\u20446"], [8539, 1, "1\u20448"], [8540, 1, "3\u20448"], [8541, 1, "5\u20448"], [8542, 1, "7\u20448"], [8543, 1, "1\u2044"], [8544, 1, "i"], [8545, 1, "ii"], [8546, 1, "iii"], [8547, 1, "iv"], [8548, 1, "v"], [8549, 1, "vi"], [8550, 1, "vii"], [8551, 1, "viii"], [8552, 1, "ix"], [8553, 1, "x"], [8554, 1, "xi"], [8555, 1, "xii"], [8556, 1, "l"], [8557, 1, "c"], [8558, 1, "d"], [8559, 1, "m"], [8560, 1, "i"], [8561, 1, "ii"], [8562, 1, "iii"], [8563, 1, "iv"], [8564, 1, "v"], [8565, 1, "vi"], [8566, 1, "vii"], [8567, 1, "viii"], [8568, 1, "ix"], [8569, 1, "x"], [8570, 1, "xi"], [8571, 1, "xii"], [8572, 1, "l"], [8573, 1, "c"], [8574, 1, "d"], [8575, 1, "m"], [[8576, 8578], 2], [8579, 1, "\u2184"], [8580, 2], [[8581, 8584], 2], [8585, 1, "0\u20443"], [[8586, 8587], 2], [[8588, 8591], 3], [[8592, 8682], 2], [[8683, 8691], 2], [[8692, 8703], 2], [[8704, 8747], 2], [8748, 1, "\u222B\u222B"], [8749, 1, "\u222B\u222B\u222B"], [8750, 2], [8751, 1, "\u222E\u222E"], [8752, 1, "\u222E\u222E\u222E"], [[8753, 8945], 2], [[8946, 8959], 2], [8960, 2], [8961, 2], [[8962, 9e3], 2], [9001, 1, "\u3008"], [9002, 1, "\u3009"], [[9003, 9082], 2], [9083, 2], [9084, 2], [[9085, 9114], 2], [[9115, 9166], 2], [[9167, 9168], 2], [[9169, 9179], 2], [[9180, 9191], 2], [9192, 2], [[9193, 9203], 2], [[9204, 9210], 2], [[9211, 9214], 2], [9215, 2], [[9216, 9252], 2], [[9253, 9254], 2], [[9255, 9257], 2], [[9258, 9279], 3], [[9280, 9290], 2], [[9291, 9311], 3], [9312, 1, "1"], [9313, 1, "2"], [9314, 1, "3"], [9315, 1, "4"], [9316, 1, "5"], [9317, 1, "6"], [9318, 1, "7"], [9319, 1, "8"], [9320, 1, "9"], [9321, 1, "10"], [9322, 1, "11"], [9323, 1, "12"], [9324, 1, "13"], [9325, 1, "14"], [9326, 1, "15"], [9327, 1, "16"], [9328, 1, "17"], [9329, 1, "18"], [9330, 1, "19"], [9331, 1, "20"], [9332, 1, "(1)"], [9333, 1, "(2)"], [9334, 1, "(3)"], [9335, 1, "(4)"], [9336, 1, "(5)"], [9337, 1, "(6)"], [9338, 1, "(7)"], [9339, 1, "(8)"], [9340, 1, "(9)"], [9341, 1, "(10)"], [9342, 1, "(11)"], [9343, 1, "(12)"], [9344, 1, "(13)"], [9345, 1, "(14)"], [9346, 1, "(15)"], [9347, 1, "(16)"], [9348, 1, "(17)"], [9349, 1, "(18)"], [9350, 1, "(19)"], [9351, 1, "(20)"], [[9352, 9371], 3], [9372, 1, "(a)"], [9373, 1, "(b)"], [9374, 1, "(c)"], [9375, 1, "(d)"], [9376, 1, "(e)"], [9377, 1, "(f)"], [9378, 1, "(g)"], [9379, 1, "(h)"], [9380, 1, "(i)"], [9381, 1, "(j)"], [9382, 1, "(k)"], [9383, 1, "(l)"], [9384, 1, "(m)"], [9385, 1, "(n)"], [9386, 1, "(o)"], [9387, 1, "(p)"], [9388, 1, "(q)"], [9389, 1, "(r)"], [9390, 1, "(s)"], [9391, 1, "(t)"], [9392, 1, "(u)"], [9393, 1, "(v)"], [9394, 1, "(w)"], [9395, 1, "(x)"], [9396, 1, "(y)"], [9397, 1, "(z)"], [9398, 1, "a"], [9399, 1, "b"], [9400, 1, "c"], [9401, 1, "d"], [9402, 1, "e"], [9403, 1, "f"], [9404, 1, "g"], [9405, 1, "h"], [9406, 1, "i"], [9407, 1, "j"], [9408, 1, "k"], [9409, 1, "l"], [9410, 1, "m"], [9411, 1, "n"], [9412, 1, "o"], [9413, 1, "p"], [9414, 1, "q"], [9415, 1, "r"], [9416, 1, "s"], [9417, 1, "t"], [9418, 1, "u"], [9419, 1, "v"], [9420, 1, "w"], [9421, 1, "x"], [9422, 1, "y"], [9423, 1, "z"], [9424, 1, "a"], [9425, 1, "b"], [9426, 1, "c"], [9427, 1, "d"], [9428, 1, "e"], [9429, 1, "f"], [9430, 1, "g"], [9431, 1, "h"], [9432, 1, "i"], [9433, 1, "j"], [9434, 1, "k"], [9435, 1, "l"], [9436, 1, "m"], [9437, 1, "n"], [9438, 1, "o"], [9439, 1, "p"], [9440, 1, "q"], [9441, 1, "r"], [9442, 1, "s"], [9443, 1, "t"], [9444, 1, "u"], [9445, 1, "v"], [9446, 1, "w"], [9447, 1, "x"], [9448, 1, "y"], [9449, 1, "z"], [9450, 1, "0"], [[9451, 9470], 2], [9471, 2], [[9472, 9621], 2], [[9622, 9631], 2], [[9632, 9711], 2], [[9712, 9719], 2], [[9720, 9727], 2], [[9728, 9747], 2], [[9748, 9749], 2], [[9750, 9751], 2], [9752, 2], [9753, 2], [[9754, 9839], 2], [[9840, 9841], 2], [[9842, 9853], 2], [[9854, 9855], 2], [[9856, 9865], 2], [[9866, 9873], 2], [[9874, 9884], 2], [9885, 2], [[9886, 9887], 2], [[9888, 9889], 2], [[9890, 9905], 2], [9906, 2], [[9907, 9916], 2], [[9917, 9919], 2], [[9920, 9923], 2], [[9924, 9933], 2], [9934, 2], [[9935, 9953], 2], [9954, 2], [9955, 2], [[9956, 9959], 2], [[9960, 9983], 2], [9984, 2], [[9985, 9988], 2], [9989, 2], [[9990, 9993], 2], [[9994, 9995], 2], [[9996, 10023], 2], [10024, 2], [[10025, 10059], 2], [10060, 2], [10061, 2], [10062, 2], [[10063, 10066], 2], [[10067, 10069], 2], [10070, 2], [10071, 2], [[10072, 10078], 2], [[10079, 10080], 2], [[10081, 10087], 2], [[10088, 10101], 2], [[10102, 10132], 2], [[10133, 10135], 2], [[10136, 10159], 2], [10160, 2], [[10161, 10174], 2], [10175, 2], [[10176, 10182], 2], [[10183, 10186], 2], [10187, 2], [10188, 2], [10189, 2], [[10190, 10191], 2], [[10192, 10219], 2], [[10220, 10223], 2], [[10224, 10239], 2], [[10240, 10495], 2], [[10496, 10763], 2], [10764, 1, "\u222B\u222B\u222B\u222B"], [[10765, 10867], 2], [10868, 1, "::="], [10869, 1, "=="], [10870, 1, "==="], [[10871, 10971], 2], [10972, 1, "\u2ADD\u0338"], [[10973, 11007], 2], [[11008, 11021], 2], [[11022, 11027], 2], [[11028, 11034], 2], [[11035, 11039], 2], [[11040, 11043], 2], [[11044, 11084], 2], [[11085, 11087], 2], [[11088, 11092], 2], [[11093, 11097], 2], [[11098, 11123], 2], [[11124, 11125], 3], [[11126, 11157], 2], [11158, 2], [11159, 2], [[11160, 11193], 2], [[11194, 11196], 2], [[11197, 11208], 2], [11209, 2], [[11210, 11217], 2], [11218, 2], [[11219, 11243], 2], [[11244, 11247], 2], [[11248, 11262], 2], [11263, 2], [11264, 1, "\u2C30"], [11265, 1, "\u2C31"], [11266, 1, "\u2C32"], [11267, 1, "\u2C33"], [11268, 1, "\u2C34"], [11269, 1, "\u2C35"], [11270, 1, "\u2C36"], [11271, 1, "\u2C37"], [11272, 1, "\u2C38"], [11273, 1, "\u2C39"], [11274, 1, "\u2C3A"], [11275, 1, "\u2C3B"], [11276, 1, "\u2C3C"], [11277, 1, "\u2C3D"], [11278, 1, "\u2C3E"], [11279, 1, "\u2C3F"], [11280, 1, "\u2C40"], [11281, 1, "\u2C41"], [11282, 1, "\u2C42"], [11283, 1, "\u2C43"], [11284, 1, "\u2C44"], [11285, 1, "\u2C45"], [11286, 1, "\u2C46"], [11287, 1, "\u2C47"], [11288, 1, "\u2C48"], [11289, 1, "\u2C49"], [11290, 1, "\u2C4A"], [11291, 1, "\u2C4B"], [11292, 1, "\u2C4C"], [11293, 1, "\u2C4D"], [11294, 1, "\u2C4E"], [11295, 1, "\u2C4F"], [11296, 1, "\u2C50"], [11297, 1, "\u2C51"], [11298, 1, "\u2C52"], [11299, 1, "\u2C53"], [11300, 1, "\u2C54"], [11301, 1, "\u2C55"], [11302, 1, "\u2C56"], [11303, 1, "\u2C57"], [11304, 1, "\u2C58"], [11305, 1, "\u2C59"], [11306, 1, "\u2C5A"], [11307, 1, "\u2C5B"], [11308, 1, "\u2C5C"], [11309, 1, "\u2C5D"], [11310, 1, "\u2C5E"], [11311, 1, "\u2C5F"], [[11312, 11358], 2], [11359, 2], [11360, 1, "\u2C61"], [11361, 2], [11362, 1, "\u026B"], [11363, 1, "\u1D7D"], [11364, 1, "\u027D"], [[11365, 11366], 2], [11367, 1, "\u2C68"], [11368, 2], [11369, 1, "\u2C6A"], [11370, 2], [11371, 1, "\u2C6C"], [11372, 2], [11373, 1, "\u0251"], [11374, 1, "\u0271"], [11375, 1, "\u0250"], [11376, 1, "\u0252"], [11377, 2], [11378, 1, "\u2C73"], [11379, 2], [11380, 2], [11381, 1, "\u2C76"], [[11382, 11383], 2], [[11384, 11387], 2], [11388, 1, "j"], [11389, 1, "v"], [11390, 1, "\u023F"], [11391, 1, "\u0240"], [11392, 1, "\u2C81"], [11393, 2], [11394, 1, "\u2C83"], [11395, 2], [11396, 1, "\u2C85"], [11397, 2], [11398, 1, "\u2C87"], [11399, 2], [11400, 1, "\u2C89"], [11401, 2], [11402, 1, "\u2C8B"], [11403, 2], [11404, 1, "\u2C8D"], [11405, 2], [11406, 1, "\u2C8F"], [11407, 2], [11408, 1, "\u2C91"], [11409, 2], [11410, 1, "\u2C93"], [11411, 2], [11412, 1, "\u2C95"], [11413, 2], [11414, 1, "\u2C97"], [11415, 2], [11416, 1, "\u2C99"], [11417, 2], [11418, 1, "\u2C9B"], [11419, 2], [11420, 1, "\u2C9D"], [11421, 2], [11422, 1, "\u2C9F"], [11423, 2], [11424, 1, "\u2CA1"], [11425, 2], [11426, 1, "\u2CA3"], [11427, 2], [11428, 1, "\u2CA5"], [11429, 2], [11430, 1, "\u2CA7"], [11431, 2], [11432, 1, "\u2CA9"], [11433, 2], [11434, 1, "\u2CAB"], [11435, 2], [11436, 1, "\u2CAD"], [11437, 2], [11438, 1, "\u2CAF"], [11439, 2], [11440, 1, "\u2CB1"], [11441, 2], [11442, 1, "\u2CB3"], [11443, 2], [11444, 1, "\u2CB5"], [11445, 2], [11446, 1, "\u2CB7"], [11447, 2], [11448, 1, "\u2CB9"], [11449, 2], [11450, 1, "\u2CBB"], [11451, 2], [11452, 1, "\u2CBD"], [11453, 2], [11454, 1, "\u2CBF"], [11455, 2], [11456, 1, "\u2CC1"], [11457, 2], [11458, 1, "\u2CC3"], [11459, 2], [11460, 1, "\u2CC5"], [11461, 2], [11462, 1, "\u2CC7"], [11463, 2], [11464, 1, "\u2CC9"], [11465, 2], [11466, 1, "\u2CCB"], [11467, 2], [11468, 1, "\u2CCD"], [11469, 2], [11470, 1, "\u2CCF"], [11471, 2], [11472, 1, "\u2CD1"], [11473, 2], [11474, 1, "\u2CD3"], [11475, 2], [11476, 1, "\u2CD5"], [11477, 2], [11478, 1, "\u2CD7"], [11479, 2], [11480, 1, "\u2CD9"], [11481, 2], [11482, 1, "\u2CDB"], [11483, 2], [11484, 1, "\u2CDD"], [11485, 2], [11486, 1, "\u2CDF"], [11487, 2], [11488, 1, "\u2CE1"], [11489, 2], [11490, 1, "\u2CE3"], [[11491, 11492], 2], [[11493, 11498], 2], [11499, 1, "\u2CEC"], [11500, 2], [11501, 1, "\u2CEE"], [[11502, 11505], 2], [11506, 1, "\u2CF3"], [11507, 2], [[11508, 11512], 3], [[11513, 11519], 2], [[11520, 11557], 2], [11558, 3], [11559, 2], [[11560, 11564], 3], [11565, 2], [[11566, 11567], 3], [[11568, 11621], 2], [[11622, 11623], 2], [[11624, 11630], 3], [11631, 1, "\u2D61"], [11632, 2], [[11633, 11646], 3], [11647, 2], [[11648, 11670], 2], [[11671, 11679], 3], [[11680, 11686], 2], [11687, 3], [[11688, 11694], 2], [11695, 3], [[11696, 11702], 2], [11703, 3], [[11704, 11710], 2], [11711, 3], [[11712, 11718], 2], [11719, 3], [[11720, 11726], 2], [11727, 3], [[11728, 11734], 2], [11735, 3], [[11736, 11742], 2], [11743, 3], [[11744, 11775], 2], [[11776, 11799], 2], [[11800, 11803], 2], [[11804, 11805], 2], [[11806, 11822], 2], [11823, 2], [11824, 2], [11825, 2], [[11826, 11835], 2], [[11836, 11842], 2], [[11843, 11844], 2], [[11845, 11849], 2], [[11850, 11854], 2], [11855, 2], [[11856, 11858], 2], [[11859, 11869], 2], [[11870, 11903], 3], [[11904, 11929], 2], [11930, 3], [[11931, 11934], 2], [11935, 1, "\u6BCD"], [[11936, 12018], 2], [12019, 1, "\u9F9F"], [[12020, 12031], 3], [12032, 1, "\u4E00"], [12033, 1, "\u4E28"], [12034, 1, "\u4E36"], [12035, 1, "\u4E3F"], [12036, 1, "\u4E59"], [12037, 1, "\u4E85"], [12038, 1, "\u4E8C"], [12039, 1, "\u4EA0"], [12040, 1, "\u4EBA"], [12041, 1, "\u513F"], [12042, 1, "\u5165"], [12043, 1, "\u516B"], [12044, 1, "\u5182"], [12045, 1, "\u5196"], [12046, 1, "\u51AB"], [12047, 1, "\u51E0"], [12048, 1, "\u51F5"], [12049, 1, "\u5200"], [12050, 1, "\u529B"], [12051, 1, "\u52F9"], [12052, 1, "\u5315"], [12053, 1, "\u531A"], [12054, 1, "\u5338"], [12055, 1, "\u5341"], [12056, 1, "\u535C"], [12057, 1, "\u5369"], [12058, 1, "\u5382"], [12059, 1, "\u53B6"], [12060, 1, "\u53C8"], [12061, 1, "\u53E3"], [12062, 1, "\u56D7"], [12063, 1, "\u571F"], [12064, 1, "\u58EB"], [12065, 1, "\u5902"], [12066, 1, "\u590A"], [12067, 1, "\u5915"], [12068, 1, "\u5927"], [12069, 1, "\u5973"], [12070, 1, "\u5B50"], [12071, 1, "\u5B80"], [12072, 1, "\u5BF8"], [12073, 1, "\u5C0F"], [12074, 1, "\u5C22"], [12075, 1, "\u5C38"], [12076, 1, "\u5C6E"], [12077, 1, "\u5C71"], [12078, 1, "\u5DDB"], [12079, 1, "\u5DE5"], [12080, 1, "\u5DF1"], [12081, 1, "\u5DFE"], [12082, 1, "\u5E72"], [12083, 1, "\u5E7A"], [12084, 1, "\u5E7F"], [12085, 1, "\u5EF4"], [12086, 1, "\u5EFE"], [12087, 1, "\u5F0B"], [12088, 1, "\u5F13"], [12089, 1, "\u5F50"], [12090, 1, "\u5F61"], [12091, 1, "\u5F73"], [12092, 1, "\u5FC3"], [12093, 1, "\u6208"], [12094, 1, "\u6236"], [12095, 1, "\u624B"], [12096, 1, "\u652F"], [12097, 1, "\u6534"], [12098, 1, "\u6587"], [12099, 1, "\u6597"], [12100, 1, "\u65A4"], [12101, 1, "\u65B9"], [12102, 1, "\u65E0"], [12103, 1, "\u65E5"], [12104, 1, "\u66F0"], [12105, 1, "\u6708"], [12106, 1, "\u6728"], [12107, 1, "\u6B20"], [12108, 1, "\u6B62"], [12109, 1, "\u6B79"], [12110, 1, "\u6BB3"], [12111, 1, "\u6BCB"], [12112, 1, "\u6BD4"], [12113, 1, "\u6BDB"], [12114, 1, "\u6C0F"], [12115, 1, "\u6C14"], [12116, 1, "\u6C34"], [12117, 1, "\u706B"], [12118, 1, "\u722A"], [12119, 1, "\u7236"], [12120, 1, "\u723B"], [12121, 1, "\u723F"], [12122, 1, "\u7247"], [12123, 1, "\u7259"], [12124, 1, "\u725B"], [12125, 1, "\u72AC"], [12126, 1, "\u7384"], [12127, 1, "\u7389"], [12128, 1, "\u74DC"], [12129, 1, "\u74E6"], [12130, 1, "\u7518"], [12131, 1, "\u751F"], [12132, 1, "\u7528"], [12133, 1, "\u7530"], [12134, 1, "\u758B"], [12135, 1, "\u7592"], [12136, 1, "\u7676"], [12137, 1, "\u767D"], [12138, 1, "\u76AE"], [12139, 1, "\u76BF"], [12140, 1, "\u76EE"], [12141, 1, "\u77DB"], [12142, 1, "\u77E2"], [12143, 1, "\u77F3"], [12144, 1, "\u793A"], [12145, 1, "\u79B8"], [12146, 1, "\u79BE"], [12147, 1, "\u7A74"], [12148, 1, "\u7ACB"], [12149, 1, "\u7AF9"], [12150, 1, "\u7C73"], [12151, 1, "\u7CF8"], [12152, 1, "\u7F36"], [12153, 1, "\u7F51"], [12154, 1, "\u7F8A"], [12155, 1, "\u7FBD"], [12156, 1, "\u8001"], [12157, 1, "\u800C"], [12158, 1, "\u8012"], [12159, 1, "\u8033"], [12160, 1, "\u807F"], [12161, 1, "\u8089"], [12162, 1, "\u81E3"], [12163, 1, "\u81EA"], [12164, 1, "\u81F3"], [12165, 1, "\u81FC"], [12166, 1, "\u820C"], [12167, 1, "\u821B"], [12168, 1, "\u821F"], [12169, 1, "\u826E"], [12170, 1, "\u8272"], [12171, 1, "\u8278"], [12172, 1, "\u864D"], [12173, 1, "\u866B"], [12174, 1, "\u8840"], [12175, 1, "\u884C"], [12176, 1, "\u8863"], [12177, 1, "\u897E"], [12178, 1, "\u898B"], [12179, 1, "\u89D2"], [12180, 1, "\u8A00"], [12181, 1, "\u8C37"], [12182, 1, "\u8C46"], [12183, 1, "\u8C55"], [12184, 1, "\u8C78"], [12185, 1, "\u8C9D"], [12186, 1, "\u8D64"], [12187, 1, "\u8D70"], [12188, 1, "\u8DB3"], [12189, 1, "\u8EAB"], [12190, 1, "\u8ECA"], [12191, 1, "\u8F9B"], [12192, 1, "\u8FB0"], [12193, 1, "\u8FB5"], [12194, 1, "\u9091"], [12195, 1, "\u9149"], [12196, 1, "\u91C6"], [12197, 1, "\u91CC"], [12198, 1, "\u91D1"], [12199, 1, "\u9577"], [12200, 1, "\u9580"], [12201, 1, "\u961C"], [12202, 1, "\u96B6"], [12203, 1, "\u96B9"], [12204, 1, "\u96E8"], [12205, 1, "\u9751"], [12206, 1, "\u975E"], [12207, 1, "\u9762"], [12208, 1, "\u9769"], [12209, 1, "\u97CB"], [12210, 1, "\u97ED"], [12211, 1, "\u97F3"], [12212, 1, "\u9801"], [12213, 1, "\u98A8"], [12214, 1, "\u98DB"], [12215, 1, "\u98DF"], [12216, 1, "\u9996"], [12217, 1, "\u9999"], [12218, 1, "\u99AC"], [12219, 1, "\u9AA8"], [12220, 1, "\u9AD8"], [12221, 1, "\u9ADF"], [12222, 1, "\u9B25"], [12223, 1, "\u9B2F"], [12224, 1, "\u9B32"], [12225, 1, "\u9B3C"], [12226, 1, "\u9B5A"], [12227, 1, "\u9CE5"], [12228, 1, "\u9E75"], [12229, 1, "\u9E7F"], [12230, 1, "\u9EA5"], [12231, 1, "\u9EBB"], [12232, 1, "\u9EC3"], [12233, 1, "\u9ECD"], [12234, 1, "\u9ED1"], [12235, 1, "\u9EF9"], [12236, 1, "\u9EFD"], [12237, 1, "\u9F0E"], [12238, 1, "\u9F13"], [12239, 1, "\u9F20"], [12240, 1, "\u9F3B"], [12241, 1, "\u9F4A"], [12242, 1, "\u9F52"], [12243, 1, "\u9F8D"], [12244, 1, "\u9F9C"], [12245, 1, "\u9FA0"], [[12246, 12271], 3], [[12272, 12283], 3], [[12284, 12287], 3], [12288, 1, " "], [12289, 2], [12290, 1, "."], [[12291, 12292], 2], [[12293, 12295], 2], [[12296, 12329], 2], [[12330, 12333], 2], [[12334, 12341], 2], [12342, 1, "\u3012"], [12343, 2], [12344, 1, "\u5341"], [12345, 1, "\u5344"], [12346, 1, "\u5345"], [12347, 2], [12348, 2], [12349, 2], [12350, 2], [12351, 2], [12352, 3], [[12353, 12436], 2], [[12437, 12438], 2], [[12439, 12440], 3], [[12441, 12442], 2], [12443, 1, " \u3099"], [12444, 1, " \u309A"], [[12445, 12446], 2], [12447, 1, "\u3088\u308A"], [12448, 2], [[12449, 12542], 2], [12543, 1, "\u30B3\u30C8"], [[12544, 12548], 3], [[12549, 12588], 2], [12589, 2], [12590, 2], [12591, 2], [12592, 3], [12593, 1, "\u1100"], [12594, 1, "\u1101"], [12595, 1, "\u11AA"], [12596, 1, "\u1102"], [12597, 1, "\u11AC"], [12598, 1, "\u11AD"], [12599, 1, "\u1103"], [12600, 1, "\u1104"], [12601, 1, "\u1105"], [12602, 1, "\u11B0"], [12603, 1, "\u11B1"], [12604, 1, "\u11B2"], [12605, 1, "\u11B3"], [12606, 1, "\u11B4"], [12607, 1, "\u11B5"], [12608, 1, "\u111A"], [12609, 1, "\u1106"], [12610, 1, "\u1107"], [12611, 1, "\u1108"], [12612, 1, "\u1121"], [12613, 1, "\u1109"], [12614, 1, "\u110A"], [12615, 1, "\u110B"], [12616, 1, "\u110C"], [12617, 1, "\u110D"], [12618, 1, "\u110E"], [12619, 1, "\u110F"], [12620, 1, "\u1110"], [12621, 1, "\u1111"], [12622, 1, "\u1112"], [12623, 1, "\u1161"], [12624, 1, "\u1162"], [12625, 1, "\u1163"], [12626, 1, "\u1164"], [12627, 1, "\u1165"], [12628, 1, "\u1166"], [12629, 1, "\u1167"], [12630, 1, "\u1168"], [12631, 1, "\u1169"], [12632, 1, "\u116A"], [12633, 1, "\u116B"], [12634, 1, "\u116C"], [12635, 1, "\u116D"], [12636, 1, "\u116E"], [12637, 1, "\u116F"], [12638, 1, "\u1170"], [12639, 1, "\u1171"], [12640, 1, "\u1172"], [12641, 1, "\u1173"], [12642, 1, "\u1174"], [12643, 1, "\u1175"], [12644, 7], [12645, 1, "\u1114"], [12646, 1, "\u1115"], [12647, 1, "\u11C7"], [12648, 1, "\u11C8"], [12649, 1, "\u11CC"], [12650, 1, "\u11CE"], [12651, 1, "\u11D3"], [12652, 1, "\u11D7"], [12653, 1, "\u11D9"], [12654, 1, "\u111C"], [12655, 1, "\u11DD"], [12656, 1, "\u11DF"], [12657, 1, "\u111D"], [12658, 1, "\u111E"], [12659, 1, "\u1120"], [12660, 1, "\u1122"], [12661, 1, "\u1123"], [12662, 1, "\u1127"], [12663, 1, "\u1129"], [12664, 1, "\u112B"], [12665, 1, "\u112C"], [12666, 1, "\u112D"], [12667, 1, "\u112E"], [12668, 1, "\u112F"], [12669, 1, "\u1132"], [12670, 1, "\u1136"], [12671, 1, "\u1140"], [12672, 1, "\u1147"], [12673, 1, "\u114C"], [12674, 1, "\u11F1"], [12675, 1, "\u11F2"], [12676, 1, "\u1157"], [12677, 1, "\u1158"], [12678, 1, "\u1159"], [12679, 1, "\u1184"], [12680, 1, "\u1185"], [12681, 1, "\u1188"], [12682, 1, "\u1191"], [12683, 1, "\u1192"], [12684, 1, "\u1194"], [12685, 1, "\u119E"], [12686, 1, "\u11A1"], [12687, 3], [[12688, 12689], 2], [12690, 1, "\u4E00"], [12691, 1, "\u4E8C"], [12692, 1, "\u4E09"], [12693, 1, "\u56DB"], [12694, 1, "\u4E0A"], [12695, 1, "\u4E2D"], [12696, 1, "\u4E0B"], [12697, 1, "\u7532"], [12698, 1, "\u4E59"], [12699, 1, "\u4E19"], [12700, 1, "\u4E01"], [12701, 1, "\u5929"], [12702, 1, "\u5730"], [12703, 1, "\u4EBA"], [[12704, 12727], 2], [[12728, 12730], 2], [[12731, 12735], 2], [[12736, 12751], 2], [[12752, 12771], 2], [[12772, 12773], 2], [[12774, 12782], 3], [12783, 3], [[12784, 12799], 2], [12800, 1, "(\u1100)"], [12801, 1, "(\u1102)"], [12802, 1, "(\u1103)"], [12803, 1, "(\u1105)"], [12804, 1, "(\u1106)"], [12805, 1, "(\u1107)"], [12806, 1, "(\u1109)"], [12807, 1, "(\u110B)"], [12808, 1, "(\u110C)"], [12809, 1, "(\u110E)"], [12810, 1, "(\u110F)"], [12811, 1, "(\u1110)"], [12812, 1, "(\u1111)"], [12813, 1, "(\u1112)"], [12814, 1, "(\uAC00)"], [12815, 1, "(\uB098)"], [12816, 1, "(\uB2E4)"], [12817, 1, "(\uB77C)"], [12818, 1, "(\uB9C8)"], [12819, 1, "(\uBC14)"], [12820, 1, "(\uC0AC)"], [12821, 1, "(\uC544)"], [12822, 1, "(\uC790)"], [12823, 1, "(\uCC28)"], [12824, 1, "(\uCE74)"], [12825, 1, "(\uD0C0)"], [12826, 1, "(\uD30C)"], [12827, 1, "(\uD558)"], [12828, 1, "(\uC8FC)"], [12829, 1, "(\uC624\uC804)"], [12830, 1, "(\uC624\uD6C4)"], [12831, 3], [12832, 1, "(\u4E00)"], [12833, 1, "(\u4E8C)"], [12834, 1, "(\u4E09)"], [12835, 1, "(\u56DB)"], [12836, 1, "(\u4E94)"], [12837, 1, "(\u516D)"], [12838, 1, "(\u4E03)"], [12839, 1, "(\u516B)"], [12840, 1, "(\u4E5D)"], [12841, 1, "(\u5341)"], [12842, 1, "(\u6708)"], [12843, 1, "(\u706B)"], [12844, 1, "(\u6C34)"], [12845, 1, "(\u6728)"], [12846, 1, "(\u91D1)"], [12847, 1, "(\u571F)"], [12848, 1, "(\u65E5)"], [12849, 1, "(\u682A)"], [12850, 1, "(\u6709)"], [12851, 1, "(\u793E)"], [12852, 1, "(\u540D)"], [12853, 1, "(\u7279)"], [12854, 1, "(\u8CA1)"], [12855, 1, "(\u795D)"], [12856, 1, "(\u52B4)"], [12857, 1, "(\u4EE3)"], [12858, 1, "(\u547C)"], [12859, 1, "(\u5B66)"], [12860, 1, "(\u76E3)"], [12861, 1, "(\u4F01)"], [12862, 1, "(\u8CC7)"], [12863, 1, "(\u5354)"], [12864, 1, "(\u796D)"], [12865, 1, "(\u4F11)"], [12866, 1, "(\u81EA)"], [12867, 1, "(\u81F3)"], [12868, 1, "\u554F"], [12869, 1, "\u5E7C"], [12870, 1, "\u6587"], [12871, 1, "\u7B8F"], [[12872, 12879], 2], [12880, 1, "pte"], [12881, 1, "21"], [12882, 1, "22"], [12883, 1, "23"], [12884, 1, "24"], [12885, 1, "25"], [12886, 1, "26"], [12887, 1, "27"], [12888, 1, "28"], [12889, 1, "29"], [12890, 1, "30"], [12891, 1, "31"], [12892, 1, "32"], [12893, 1, "33"], [12894, 1, "34"], [12895, 1, "35"], [12896, 1, "\u1100"], [12897, 1, "\u1102"], [12898, 1, "\u1103"], [12899, 1, "\u1105"], [12900, 1, "\u1106"], [12901, 1, "\u1107"], [12902, 1, "\u1109"], [12903, 1, "\u110B"], [12904, 1, "\u110C"], [12905, 1, "\u110E"], [12906, 1, "\u110F"], [12907, 1, "\u1110"], [12908, 1, "\u1111"], [12909, 1, "\u1112"], [12910, 1, "\uAC00"], [12911, 1, "\uB098"], [12912, 1, "\uB2E4"], [12913, 1, "\uB77C"], [12914, 1, "\uB9C8"], [12915, 1, "\uBC14"], [12916, 1, "\uC0AC"], [12917, 1, "\uC544"], [12918, 1, "\uC790"], [12919, 1, "\uCC28"], [12920, 1, "\uCE74"], [12921, 1, "\uD0C0"], [12922, 1, "\uD30C"], [12923, 1, "\uD558"], [12924, 1, "\uCC38\uACE0"], [12925, 1, "\uC8FC\uC758"], [12926, 1, "\uC6B0"], [12927, 2], [12928, 1, "\u4E00"], [12929, 1, "\u4E8C"], [12930, 1, "\u4E09"], [12931, 1, "\u56DB"], [12932, 1, "\u4E94"], [12933, 1, "\u516D"], [12934, 1, "\u4E03"], [12935, 1, "\u516B"], [12936, 1, "\u4E5D"], [12937, 1, "\u5341"], [12938, 1, "\u6708"], [12939, 1, "\u706B"], [12940, 1, "\u6C34"], [12941, 1, "\u6728"], [12942, 1, "\u91D1"], [12943, 1, "\u571F"], [12944, 1, "\u65E5"], [12945, 1, "\u682A"], [12946, 1, "\u6709"], [12947, 1, "\u793E"], [12948, 1, "\u540D"], [12949, 1, "\u7279"], [12950, 1, "\u8CA1"], [12951, 1, "\u795D"], [12952, 1, "\u52B4"], [12953, 1, "\u79D8"], [12954, 1, "\u7537"], [12955, 1, "\u5973"], [12956, 1, "\u9069"], [12957, 1, "\u512A"], [12958, 1, "\u5370"], [12959, 1, "\u6CE8"], [12960, 1, "\u9805"], [12961, 1, "\u4F11"], [12962, 1, "\u5199"], [12963, 1, "\u6B63"], [12964, 1, "\u4E0A"], [12965, 1, "\u4E2D"], [12966, 1, "\u4E0B"], [12967, 1, "\u5DE6"], [12968, 1, "\u53F3"], [12969, 1, "\u533B"], [12970, 1, "\u5B97"], [12971, 1, "\u5B66"], [12972, 1, "\u76E3"], [12973, 1, "\u4F01"], [12974, 1, "\u8CC7"], [12975, 1, "\u5354"], [12976, 1, "\u591C"], [12977, 1, "36"], [12978, 1, "37"], [12979, 1, "38"], [12980, 1, "39"], [12981, 1, "40"], [12982, 1, "41"], [12983, 1, "42"], [12984, 1, "43"], [12985, 1, "44"], [12986, 1, "45"], [12987, 1, "46"], [12988, 1, "47"], [12989, 1, "48"], [12990, 1, "49"], [12991, 1, "50"], [12992, 1, "1\u6708"], [12993, 1, "2\u6708"], [12994, 1, "3\u6708"], [12995, 1, "4\u6708"], [12996, 1, "5\u6708"], [12997, 1, "6\u6708"], [12998, 1, "7\u6708"], [12999, 1, "8\u6708"], [13e3, 1, "9\u6708"], [13001, 1, "10\u6708"], [13002, 1, "11\u6708"], [13003, 1, "12\u6708"], [13004, 1, "hg"], [13005, 1, "erg"], [13006, 1, "ev"], [13007, 1, "ltd"], [13008, 1, "\u30A2"], [13009, 1, "\u30A4"], [13010, 1, "\u30A6"], [13011, 1, "\u30A8"], [13012, 1, "\u30AA"], [13013, 1, "\u30AB"], [13014, 1, "\u30AD"], [13015, 1, "\u30AF"], [13016, 1, "\u30B1"], [13017, 1, "\u30B3"], [13018, 1, "\u30B5"], [13019, 1, "\u30B7"], [13020, 1, "\u30B9"], [13021, 1, "\u30BB"], [13022, 1, "\u30BD"], [13023, 1, "\u30BF"], [13024, 1, "\u30C1"], [13025, 1, "\u30C4"], [13026, 1, "\u30C6"], [13027, 1, "\u30C8"], [13028, 1, "\u30CA"], [13029, 1, "\u30CB"], [13030, 1, "\u30CC"], [13031, 1, "\u30CD"], [13032, 1, "\u30CE"], [13033, 1, "\u30CF"], [13034, 1, "\u30D2"], [13035, 1, "\u30D5"], [13036, 1, "\u30D8"], [13037, 1, "\u30DB"], [13038, 1, "\u30DE"], [13039, 1, "\u30DF"], [13040, 1, "\u30E0"], [13041, 1, "\u30E1"], [13042, 1, "\u30E2"], [13043, 1, "\u30E4"], [13044, 1, "\u30E6"], [13045, 1, "\u30E8"], [13046, 1, "\u30E9"], [13047, 1, "\u30EA"], [13048, 1, "\u30EB"], [13049, 1, "\u30EC"], [13050, 1, "\u30ED"], [13051, 1, "\u30EF"], [13052, 1, "\u30F0"], [13053, 1, "\u30F1"], [13054, 1, "\u30F2"], [13055, 1, "\u4EE4\u548C"], [13056, 1, "\u30A2\u30D1\u30FC\u30C8"], [13057, 1, "\u30A2\u30EB\u30D5\u30A1"], [13058, 1, "\u30A2\u30F3\u30DA\u30A2"], [13059, 1, "\u30A2\u30FC\u30EB"], [13060, 1, "\u30A4\u30CB\u30F3\u30B0"], [13061, 1, "\u30A4\u30F3\u30C1"], [13062, 1, "\u30A6\u30A9\u30F3"], [13063, 1, "\u30A8\u30B9\u30AF\u30FC\u30C9"], [13064, 1, "\u30A8\u30FC\u30AB\u30FC"], [13065, 1, "\u30AA\u30F3\u30B9"], [13066, 1, "\u30AA\u30FC\u30E0"], [13067, 1, "\u30AB\u30A4\u30EA"], [13068, 1, "\u30AB\u30E9\u30C3\u30C8"], [13069, 1, "\u30AB\u30ED\u30EA\u30FC"], [13070, 1, "\u30AC\u30ED\u30F3"], [13071, 1, "\u30AC\u30F3\u30DE"], [13072, 1, "\u30AE\u30AC"], [13073, 1, "\u30AE\u30CB\u30FC"], [13074, 1, "\u30AD\u30E5\u30EA\u30FC"], [13075, 1, "\u30AE\u30EB\u30C0\u30FC"], [13076, 1, "\u30AD\u30ED"], [13077, 1, "\u30AD\u30ED\u30B0\u30E9\u30E0"], [13078, 1, "\u30AD\u30ED\u30E1\u30FC\u30C8\u30EB"], [13079, 1, "\u30AD\u30ED\u30EF\u30C3\u30C8"], [13080, 1, "\u30B0\u30E9\u30E0"], [13081, 1, "\u30B0\u30E9\u30E0\u30C8\u30F3"], [13082, 1, "\u30AF\u30EB\u30BC\u30A4\u30ED"], [13083, 1, "\u30AF\u30ED\u30FC\u30CD"], [13084, 1, "\u30B1\u30FC\u30B9"], [13085, 1, "\u30B3\u30EB\u30CA"], [13086, 1, "\u30B3\u30FC\u30DD"], [13087, 1, "\u30B5\u30A4\u30AF\u30EB"], [13088, 1, "\u30B5\u30F3\u30C1\u30FC\u30E0"], [13089, 1, "\u30B7\u30EA\u30F3\u30B0"], [13090, 1, "\u30BB\u30F3\u30C1"], [13091, 1, "\u30BB\u30F3\u30C8"], [13092, 1, "\u30C0\u30FC\u30B9"], [13093, 1, "\u30C7\u30B7"], [13094, 1, "\u30C9\u30EB"], [13095, 1, "\u30C8\u30F3"], [13096, 1, "\u30CA\u30CE"], [13097, 1, "\u30CE\u30C3\u30C8"], [13098, 1, "\u30CF\u30A4\u30C4"], [13099, 1, "\u30D1\u30FC\u30BB\u30F3\u30C8"], [13100, 1, "\u30D1\u30FC\u30C4"], [13101, 1, "\u30D0\u30FC\u30EC\u30EB"], [13102, 1, "\u30D4\u30A2\u30B9\u30C8\u30EB"], [13103, 1, "\u30D4\u30AF\u30EB"], [13104, 1, "\u30D4\u30B3"], [13105, 1, "\u30D3\u30EB"], [13106, 1, "\u30D5\u30A1\u30E9\u30C3\u30C9"], [13107, 1, "\u30D5\u30A3\u30FC\u30C8"], [13108, 1, "\u30D6\u30C3\u30B7\u30A7\u30EB"], [13109, 1, "\u30D5\u30E9\u30F3"], [13110, 1, "\u30D8\u30AF\u30BF\u30FC\u30EB"], [13111, 1, "\u30DA\u30BD"], [13112, 1, "\u30DA\u30CB\u30D2"], [13113, 1, "\u30D8\u30EB\u30C4"], [13114, 1, "\u30DA\u30F3\u30B9"], [13115, 1, "\u30DA\u30FC\u30B8"], [13116, 1, "\u30D9\u30FC\u30BF"], [13117, 1, "\u30DD\u30A4\u30F3\u30C8"], [13118, 1, "\u30DC\u30EB\u30C8"], [13119, 1, "\u30DB\u30F3"], [13120, 1, "\u30DD\u30F3\u30C9"], [13121, 1, "\u30DB\u30FC\u30EB"], [13122, 1, "\u30DB\u30FC\u30F3"], [13123, 1, "\u30DE\u30A4\u30AF\u30ED"], [13124, 1, "\u30DE\u30A4\u30EB"], [13125, 1, "\u30DE\u30C3\u30CF"], [13126, 1, "\u30DE\u30EB\u30AF"], [13127, 1, "\u30DE\u30F3\u30B7\u30E7\u30F3"], [13128, 1, "\u30DF\u30AF\u30ED\u30F3"], [13129, 1, "\u30DF\u30EA"], [13130, 1, "\u30DF\u30EA\u30D0\u30FC\u30EB"], [13131, 1, "\u30E1\u30AC"], [13132, 1, "\u30E1\u30AC\u30C8\u30F3"], [13133, 1, "\u30E1\u30FC\u30C8\u30EB"], [13134, 1, "\u30E4\u30FC\u30C9"], [13135, 1, "\u30E4\u30FC\u30EB"], [13136, 1, "\u30E6\u30A2\u30F3"], [13137, 1, "\u30EA\u30C3\u30C8\u30EB"], [13138, 1, "\u30EA\u30E9"], [13139, 1, "\u30EB\u30D4\u30FC"], [13140, 1, "\u30EB\u30FC\u30D6\u30EB"], [13141, 1, "\u30EC\u30E0"], [13142, 1, "\u30EC\u30F3\u30C8\u30B2\u30F3"], [13143, 1, "\u30EF\u30C3\u30C8"], [13144, 1, "0\u70B9"], [13145, 1, "1\u70B9"], [13146, 1, "2\u70B9"], [13147, 1, "3\u70B9"], [13148, 1, "4\u70B9"], [13149, 1, "5\u70B9"], [13150, 1, "6\u70B9"], [13151, 1, "7\u70B9"], [13152, 1, "8\u70B9"], [13153, 1, "9\u70B9"], [13154, 1, "10\u70B9"], [13155, 1, "11\u70B9"], [13156, 1, "12\u70B9"], [13157, 1, "13\u70B9"], [13158, 1, "14\u70B9"], [13159, 1, "15\u70B9"], [13160, 1, "16\u70B9"], [13161, 1, "17\u70B9"], [13162, 1, "18\u70B9"], [13163, 1, "19\u70B9"], [13164, 1, "20\u70B9"], [13165, 1, "21\u70B9"], [13166, 1, "22\u70B9"], [13167, 1, "23\u70B9"], [13168, 1, "24\u70B9"], [13169, 1, "hpa"], [13170, 1, "da"], [13171, 1, "au"], [13172, 1, "bar"], [13173, 1, "ov"], [13174, 1, "pc"], [13175, 1, "dm"], [13176, 1, "dm2"], [13177, 1, "dm3"], [13178, 1, "iu"], [13179, 1, "\u5E73\u6210"], [13180, 1, "\u662D\u548C"], [13181, 1, "\u5927\u6B63"], [13182, 1, "\u660E\u6CBB"], [13183, 1, "\u682A\u5F0F\u4F1A\u793E"], [13184, 1, "pa"], [13185, 1, "na"], [13186, 1, "\u03BCa"], [13187, 1, "ma"], [13188, 1, "ka"], [13189, 1, "kb"], [13190, 1, "mb"], [13191, 1, "gb"], [13192, 1, "cal"], [13193, 1, "kcal"], [13194, 1, "pf"], [13195, 1, "nf"], [13196, 1, "\u03BCf"], [13197, 1, "\u03BCg"], [13198, 1, "mg"], [13199, 1, "kg"], [13200, 1, "hz"], [13201, 1, "khz"], [13202, 1, "mhz"], [13203, 1, "ghz"], [13204, 1, "thz"], [13205, 1, "\u03BCl"], [13206, 1, "ml"], [13207, 1, "dl"], [13208, 1, "kl"], [13209, 1, "fm"], [13210, 1, "nm"], [13211, 1, "\u03BCm"], [13212, 1, "mm"], [13213, 1, "cm"], [13214, 1, "km"], [13215, 1, "mm2"], [13216, 1, "cm2"], [13217, 1, "m2"], [13218, 1, "km2"], [13219, 1, "mm3"], [13220, 1, "cm3"], [13221, 1, "m3"], [13222, 1, "km3"], [13223, 1, "m\u2215s"], [13224, 1, "m\u2215s2"], [13225, 1, "pa"], [13226, 1, "kpa"], [13227, 1, "mpa"], [13228, 1, "gpa"], [13229, 1, "rad"], [13230, 1, "rad\u2215s"], [13231, 1, "rad\u2215s2"], [13232, 1, "ps"], [13233, 1, "ns"], [13234, 1, "\u03BCs"], [13235, 1, "ms"], [13236, 1, "pv"], [13237, 1, "nv"], [13238, 1, "\u03BCv"], [13239, 1, "mv"], [13240, 1, "kv"], [13241, 1, "mv"], [13242, 1, "pw"], [13243, 1, "nw"], [13244, 1, "\u03BCw"], [13245, 1, "mw"], [13246, 1, "kw"], [13247, 1, "mw"], [13248, 1, "k\u03C9"], [13249, 1, "m\u03C9"], [13250, 3], [13251, 1, "bq"], [13252, 1, "cc"], [13253, 1, "cd"], [13254, 1, "c\u2215kg"], [13255, 3], [13256, 1, "db"], [13257, 1, "gy"], [13258, 1, "ha"], [13259, 1, "hp"], [13260, 1, "in"], [13261, 1, "kk"], [13262, 1, "km"], [13263, 1, "kt"], [13264, 1, "lm"], [13265, 1, "ln"], [13266, 1, "log"], [13267, 1, "lx"], [13268, 1, "mb"], [13269, 1, "mil"], [13270, 1, "mol"], [13271, 1, "ph"], [13272, 3], [13273, 1, "ppm"], [13274, 1, "pr"], [13275, 1, "sr"], [13276, 1, "sv"], [13277, 1, "wb"], [13278, 1, "v\u2215m"], [13279, 1, "a\u2215m"], [13280, 1, "1\u65E5"], [13281, 1, "2\u65E5"], [13282, 1, "3\u65E5"], [13283, 1, "4\u65E5"], [13284, 1, "5\u65E5"], [13285, 1, "6\u65E5"], [13286, 1, "7\u65E5"], [13287, 1, "8\u65E5"], [13288, 1, "9\u65E5"], [13289, 1, "10\u65E5"], [13290, 1, "11\u65E5"], [13291, 1, "12\u65E5"], [13292, 1, "13\u65E5"], [13293, 1, "14\u65E5"], [13294, 1, "15\u65E5"], [13295, 1, "16\u65E5"], [13296, 1, "17\u65E5"], [13297, 1, "18\u65E5"], [13298, 1, "19\u65E5"], [13299, 1, "20\u65E5"], [13300, 1, "21\u65E5"], [13301, 1, "22\u65E5"], [13302, 1, "23\u65E5"], [13303, 1, "24\u65E5"], [13304, 1, "25\u65E5"], [13305, 1, "26\u65E5"], [13306, 1, "27\u65E5"], [13307, 1, "28\u65E5"], [13308, 1, "29\u65E5"], [13309, 1, "30\u65E5"], [13310, 1, "31\u65E5"], [13311, 1, "gal"], [[13312, 19893], 2], [[19894, 19903], 2], [[19904, 19967], 2], [[19968, 40869], 2], [[40870, 40891], 2], [[40892, 40899], 2], [[40900, 40907], 2], [40908, 2], [[40909, 40917], 2], [[40918, 40938], 2], [[40939, 40943], 2], [[40944, 40956], 2], [[40957, 40959], 2], [[40960, 42124], 2], [[42125, 42127], 3], [[42128, 42145], 2], [[42146, 42147], 2], [[42148, 42163], 2], [42164, 2], [[42165, 42176], 2], [42177, 2], [[42178, 42180], 2], [42181, 2], [42182, 2], [[42183, 42191], 3], [[42192, 42237], 2], [[42238, 42239], 2], [[42240, 42508], 2], [[42509, 42511], 2], [[42512, 42539], 2], [[42540, 42559], 3], [42560, 1, "\uA641"], [42561, 2], [42562, 1, "\uA643"], [42563, 2], [42564, 1, "\uA645"], [42565, 2], [42566, 1, "\uA647"], [42567, 2], [42568, 1, "\uA649"], [42569, 2], [42570, 1, "\uA64B"], [42571, 2], [42572, 1, "\uA64D"], [42573, 2], [42574, 1, "\uA64F"], [42575, 2], [42576, 1, "\uA651"], [42577, 2], [42578, 1, "\uA653"], [42579, 2], [42580, 1, "\uA655"], [42581, 2], [42582, 1, "\uA657"], [42583, 2], [42584, 1, "\uA659"], [42585, 2], [42586, 1, "\uA65B"], [42587, 2], [42588, 1, "\uA65D"], [42589, 2], [42590, 1, "\uA65F"], [42591, 2], [42592, 1, "\uA661"], [42593, 2], [42594, 1, "\uA663"], [42595, 2], [42596, 1, "\uA665"], [42597, 2], [42598, 1, "\uA667"], [42599, 2], [42600, 1, "\uA669"], [42601, 2], [42602, 1, "\uA66B"], [42603, 2], [42604, 1, "\uA66D"], [[42605, 42607], 2], [[42608, 42611], 2], [[42612, 42619], 2], [[42620, 42621], 2], [42622, 2], [42623, 2], [42624, 1, "\uA681"], [42625, 2], [42626, 1, "\uA683"], [42627, 2], [42628, 1, "\uA685"], [42629, 2], [42630, 1, "\uA687"], [42631, 2], [42632, 1, "\uA689"], [42633, 2], [42634, 1, "\uA68B"], [42635, 2], [42636, 1, "\uA68D"], [42637, 2], [42638, 1, "\uA68F"], [42639, 2], [42640, 1, "\uA691"], [42641, 2], [42642, 1, "\uA693"], [42643, 2], [42644, 1, "\uA695"], [42645, 2], [42646, 1, "\uA697"], [42647, 2], [42648, 1, "\uA699"], [42649, 2], [42650, 1, "\uA69B"], [42651, 2], [42652, 1, "\u044A"], [42653, 1, "\u044C"], [42654, 2], [42655, 2], [[42656, 42725], 2], [[42726, 42735], 2], [[42736, 42737], 2], [[42738, 42743], 2], [[42744, 42751], 3], [[42752, 42774], 2], [[42775, 42778], 2], [[42779, 42783], 2], [[42784, 42785], 2], [42786, 1, "\uA723"], [42787, 2], [42788, 1, "\uA725"], [42789, 2], [42790, 1, "\uA727"], [42791, 2], [42792, 1, "\uA729"], [42793, 2], [42794, 1, "\uA72B"], [42795, 2], [42796, 1, "\uA72D"], [42797, 2], [42798, 1, "\uA72F"], [[42799, 42801], 2], [42802, 1, "\uA733"], [42803, 2], [42804, 1, "\uA735"], [42805, 2], [42806, 1, "\uA737"], [42807, 2], [42808, 1, "\uA739"], [42809, 2], [42810, 1, "\uA73B"], [42811, 2], [42812, 1, "\uA73D"], [42813, 2], [42814, 1, "\uA73F"], [42815, 2], [42816, 1, "\uA741"], [42817, 2], [42818, 1, "\uA743"], [42819, 2], [42820, 1, "\uA745"], [42821, 2], [42822, 1, "\uA747"], [42823, 2], [42824, 1, "\uA749"], [42825, 2], [42826, 1, "\uA74B"], [42827, 2], [42828, 1, "\uA74D"], [42829, 2], [42830, 1, "\uA74F"], [42831, 2], [42832, 1, "\uA751"], [42833, 2], [42834, 1, "\uA753"], [42835, 2], [42836, 1, "\uA755"], [42837, 2], [42838, 1, "\uA757"], [42839, 2], [42840, 1, "\uA759"], [42841, 2], [42842, 1, "\uA75B"], [42843, 2], [42844, 1, "\uA75D"], [42845, 2], [42846, 1, "\uA75F"], [42847, 2], [42848, 1, "\uA761"], [42849, 2], [42850, 1, "\uA763"], [42851, 2], [42852, 1, "\uA765"], [42853, 2], [42854, 1, "\uA767"], [42855, 2], [42856, 1, "\uA769"], [42857, 2], [42858, 1, "\uA76B"], [42859, 2], [42860, 1, "\uA76D"], [42861, 2], [42862, 1, "\uA76F"], [42863, 2], [42864, 1, "\uA76F"], [[42865, 42872], 2], [42873, 1, "\uA77A"], [42874, 2], [42875, 1, "\uA77C"], [42876, 2], [42877, 1, "\u1D79"], [42878, 1, "\uA77F"], [42879, 2], [42880, 1, "\uA781"], [42881, 2], [42882, 1, "\uA783"], [42883, 2], [42884, 1, "\uA785"], [42885, 2], [42886, 1, "\uA787"], [[42887, 42888], 2], [[42889, 42890], 2], [42891, 1, "\uA78C"], [42892, 2], [42893, 1, "\u0265"], [42894, 2], [42895, 2], [42896, 1, "\uA791"], [42897, 2], [42898, 1, "\uA793"], [42899, 2], [[42900, 42901], 2], [42902, 1, "\uA797"], [42903, 2], [42904, 1, "\uA799"], [42905, 2], [42906, 1, "\uA79B"], [42907, 2], [42908, 1, "\uA79D"], [42909, 2], [42910, 1, "\uA79F"], [42911, 2], [42912, 1, "\uA7A1"], [42913, 2], [42914, 1, "\uA7A3"], [42915, 2], [42916, 1, "\uA7A5"], [42917, 2], [42918, 1, "\uA7A7"], [42919, 2], [42920, 1, "\uA7A9"], [42921, 2], [42922, 1, "\u0266"], [42923, 1, "\u025C"], [42924, 1, "\u0261"], [42925, 1, "\u026C"], [42926, 1, "\u026A"], [42927, 2], [42928, 1, "\u029E"], [42929, 1, "\u0287"], [42930, 1, "\u029D"], [42931, 1, "\uAB53"], [42932, 1, "\uA7B5"], [42933, 2], [42934, 1, "\uA7B7"], [42935, 2], [42936, 1, "\uA7B9"], [42937, 2], [42938, 1, "\uA7BB"], [42939, 2], [42940, 1, "\uA7BD"], [42941, 2], [42942, 1, "\uA7BF"], [42943, 2], [42944, 1, "\uA7C1"], [42945, 2], [42946, 1, "\uA7C3"], [42947, 2], [42948, 1, "\uA794"], [42949, 1, "\u0282"], [42950, 1, "\u1D8E"], [42951, 1, "\uA7C8"], [42952, 2], [42953, 1, "\uA7CA"], [42954, 2], [42955, 1, "\u0264"], [42956, 1, "\uA7CD"], [42957, 2], [42958, 1, "\uA7CF"], [42959, 2], [42960, 1, "\uA7D1"], [42961, 2], [42962, 1, "\uA7D3"], [42963, 2], [42964, 1, "\uA7D5"], [42965, 2], [42966, 1, "\uA7D7"], [42967, 2], [42968, 1, "\uA7D9"], [42969, 2], [42970, 1, "\uA7DB"], [42971, 2], [42972, 1, "\u019B"], [[42973, 42992], 3], [42993, 1, "s"], [42994, 1, "c"], [42995, 1, "f"], [42996, 1, "q"], [42997, 1, "\uA7F6"], [42998, 2], [42999, 2], [43e3, 1, "\u0127"], [43001, 1, "\u0153"], [43002, 2], [[43003, 43007], 2], [[43008, 43047], 2], [[43048, 43051], 2], [43052, 2], [[43053, 43055], 3], [[43056, 43065], 2], [[43066, 43071], 3], [[43072, 43123], 2], [[43124, 43127], 2], [[43128, 43135], 3], [[43136, 43204], 2], [43205, 2], [[43206, 43213], 3], [[43214, 43215], 2], [[43216, 43225], 2], [[43226, 43231], 3], [[43232, 43255], 2], [[43256, 43258], 2], [43259, 2], [43260, 2], [43261, 2], [[43262, 43263], 2], [[43264, 43309], 2], [[43310, 43311], 2], [[43312, 43347], 2], [[43348, 43358], 3], [43359, 2], [[43360, 43388], 2], [[43389, 43391], 3], [[43392, 43456], 2], [[43457, 43469], 2], [43470, 3], [[43471, 43481], 2], [[43482, 43485], 3], [[43486, 43487], 2], [[43488, 43518], 2], [43519, 3], [[43520, 43574], 2], [[43575, 43583], 3], [[43584, 43597], 2], [[43598, 43599], 3], [[43600, 43609], 2], [[43610, 43611], 3], [[43612, 43615], 2], [[43616, 43638], 2], [[43639, 43641], 2], [[43642, 43643], 2], [[43644, 43647], 2], [[43648, 43714], 2], [[43715, 43738], 3], [[43739, 43741], 2], [[43742, 43743], 2], [[43744, 43759], 2], [[43760, 43761], 2], [[43762, 43766], 2], [[43767, 43776], 3], [[43777, 43782], 2], [[43783, 43784], 3], [[43785, 43790], 2], [[43791, 43792], 3], [[43793, 43798], 2], [[43799, 43807], 3], [[43808, 43814], 2], [43815, 3], [[43816, 43822], 2], [43823, 3], [[43824, 43866], 2], [43867, 2], [43868, 1, "\uA727"], [43869, 1, "\uAB37"], [43870, 1, "\u026B"], [43871, 1, "\uAB52"], [[43872, 43875], 2], [[43876, 43877], 2], [[43878, 43879], 2], [43880, 2], [43881, 1, "\u028D"], [[43882, 43883], 2], [[43884, 43887], 3], [43888, 1, "\u13A0"], [43889, 1, "\u13A1"], [43890, 1, "\u13A2"], [43891, 1, "\u13A3"], [43892, 1, "\u13A4"], [43893, 1, "\u13A5"], [43894, 1, "\u13A6"], [43895, 1, "\u13A7"], [43896, 1, "\u13A8"], [43897, 1, "\u13A9"], [43898, 1, "\u13AA"], [43899, 1, "\u13AB"], [43900, 1, "\u13AC"], [43901, 1, "\u13AD"], [43902, 1, "\u13AE"], [43903, 1, "\u13AF"], [43904, 1, "\u13B0"], [43905, 1, "\u13B1"], [43906, 1, "\u13B2"], [43907, 1, "\u13B3"], [43908, 1, "\u13B4"], [43909, 1, "\u13B5"], [43910, 1, "\u13B6"], [43911, 1, "\u13B7"], [43912, 1, "\u13B8"], [43913, 1, "\u13B9"], [43914, 1, "\u13BA"], [43915, 1, "\u13BB"], [43916, 1, "\u13BC"], [43917, 1, "\u13BD"], [43918, 1, "\u13BE"], [43919, 1, "\u13BF"], [43920, 1, "\u13C0"], [43921, 1, "\u13C1"], [43922, 1, "\u13C2"], [43923, 1, "\u13C3"], [43924, 1, "\u13C4"], [43925, 1, "\u13C5"], [43926, 1, "\u13C6"], [43927, 1, "\u13C7"], [43928, 1, "\u13C8"], [43929, 1, "\u13C9"], [43930, 1, "\u13CA"], [43931, 1, "\u13CB"], [43932, 1, "\u13CC"], [43933, 1, "\u13CD"], [43934, 1, "\u13CE"], [43935, 1, "\u13CF"], [43936, 1, "\u13D0"], [43937, 1, "\u13D1"], [43938, 1, "\u13D2"], [43939, 1, "\u13D3"], [43940, 1, "\u13D4"], [43941, 1, "\u13D5"], [43942, 1, "\u13D6"], [43943, 1, "\u13D7"], [43944, 1, "\u13D8"], [43945, 1, "\u13D9"], [43946, 1, "\u13DA"], [43947, 1, "\u13DB"], [43948, 1, "\u13DC"], [43949, 1, "\u13DD"], [43950, 1, "\u13DE"], [43951, 1, "\u13DF"], [43952, 1, "\u13E0"], [43953, 1, "\u13E1"], [43954, 1, "\u13E2"], [43955, 1, "\u13E3"], [43956, 1, "\u13E4"], [43957, 1, "\u13E5"], [43958, 1, "\u13E6"], [43959, 1, "\u13E7"], [43960, 1, "\u13E8"], [43961, 1, "\u13E9"], [43962, 1, "\u13EA"], [43963, 1, "\u13EB"], [43964, 1, "\u13EC"], [43965, 1, "\u13ED"], [43966, 1, "\u13EE"], [43967, 1, "\u13EF"], [[43968, 44010], 2], [44011, 2], [[44012, 44013], 2], [[44014, 44015], 3], [[44016, 44025], 2], [[44026, 44031], 3], [[44032, 55203], 2], [[55204, 55215], 3], [[55216, 55238], 2], [[55239, 55242], 3], [[55243, 55291], 2], [[55292, 55295], 3], [[55296, 57343], 3], [[57344, 63743], 3], [63744, 1, "\u8C48"], [63745, 1, "\u66F4"], [63746, 1, "\u8ECA"], [63747, 1, "\u8CC8"], [63748, 1, "\u6ED1"], [63749, 1, "\u4E32"], [63750, 1, "\u53E5"], [[63751, 63752], 1, "\u9F9C"], [63753, 1, "\u5951"], [63754, 1, "\u91D1"], [63755, 1, "\u5587"], [63756, 1, "\u5948"], [63757, 1, "\u61F6"], [63758, 1, "\u7669"], [63759, 1, "\u7F85"], [63760, 1, "\u863F"], [63761, 1, "\u87BA"], [63762, 1, "\u88F8"], [63763, 1, "\u908F"], [63764, 1, "\u6A02"], [63765, 1, "\u6D1B"], [63766, 1, "\u70D9"], [63767, 1, "\u73DE"], [63768, 1, "\u843D"], [63769, 1, "\u916A"], [63770, 1, "\u99F1"], [63771, 1, "\u4E82"], [63772, 1, "\u5375"], [63773, 1, "\u6B04"], [63774, 1, "\u721B"], [63775, 1, "\u862D"], [63776, 1, "\u9E1E"], [63777, 1, "\u5D50"], [63778, 1, "\u6FEB"], [63779, 1, "\u85CD"], [63780, 1, "\u8964"], [63781, 1, "\u62C9"], [63782, 1, "\u81D8"], [63783, 1, "\u881F"], [63784, 1, "\u5ECA"], [63785, 1, "\u6717"], [63786, 1, "\u6D6A"], [63787, 1, "\u72FC"], [63788, 1, "\u90CE"], [63789, 1, "\u4F86"], [63790, 1, "\u51B7"], [63791, 1, "\u52DE"], [63792, 1, "\u64C4"], [63793, 1, "\u6AD3"], [63794, 1, "\u7210"], [63795, 1, "\u76E7"], [63796, 1, "\u8001"], [63797, 1, "\u8606"], [63798, 1, "\u865C"], [63799, 1, "\u8DEF"], [63800, 1, "\u9732"], [63801, 1, "\u9B6F"], [63802, 1, "\u9DFA"], [63803, 1, "\u788C"], [63804, 1, "\u797F"], [63805, 1, "\u7DA0"], [63806, 1, "\u83C9"], [63807, 1, "\u9304"], [63808, 1, "\u9E7F"], [63809, 1, "\u8AD6"], [63810, 1, "\u58DF"], [63811, 1, "\u5F04"], [63812, 1, "\u7C60"], [63813, 1, "\u807E"], [63814, 1, "\u7262"], [63815, 1, "\u78CA"], [63816, 1, "\u8CC2"], [63817, 1, "\u96F7"], [63818, 1, "\u58D8"], [63819, 1, "\u5C62"], [63820, 1, "\u6A13"], [63821, 1, "\u6DDA"], [63822, 1, "\u6F0F"], [63823, 1, "\u7D2F"], [63824, 1, "\u7E37"], [63825, 1, "\u964B"], [63826, 1, "\u52D2"], [63827, 1, "\u808B"], [63828, 1, "\u51DC"], [63829, 1, "\u51CC"], [63830, 1, "\u7A1C"], [63831, 1, "\u7DBE"], [63832, 1, "\u83F1"], [63833, 1, "\u9675"], [63834, 1, "\u8B80"], [63835, 1, "\u62CF"], [63836, 1, "\u6A02"], [63837, 1, "\u8AFE"], [63838, 1, "\u4E39"], [63839, 1, "\u5BE7"], [63840, 1, "\u6012"], [63841, 1, "\u7387"], [63842, 1, "\u7570"], [63843, 1, "\u5317"], [63844, 1, "\u78FB"], [63845, 1, "\u4FBF"], [63846, 1, "\u5FA9"], [63847, 1, "\u4E0D"], [63848, 1, "\u6CCC"], [63849, 1, "\u6578"], [63850, 1, "\u7D22"], [63851, 1, "\u53C3"], [63852, 1, "\u585E"], [63853, 1, "\u7701"], [63854, 1, "\u8449"], [63855, 1, "\u8AAA"], [63856, 1, "\u6BBA"], [63857, 1, "\u8FB0"], [63858, 1, "\u6C88"], [63859, 1, "\u62FE"], [63860, 1, "\u82E5"], [63861, 1, "\u63A0"], [63862, 1, "\u7565"], [63863, 1, "\u4EAE"], [63864, 1, "\u5169"], [63865, 1, "\u51C9"], [63866, 1, "\u6881"], [63867, 1, "\u7CE7"], [63868, 1, "\u826F"], [63869, 1, "\u8AD2"], [63870, 1, "\u91CF"], [63871, 1, "\u52F5"], [63872, 1, "\u5442"], [63873, 1, "\u5973"], [63874, 1, "\u5EEC"], [63875, 1, "\u65C5"], [63876, 1, "\u6FFE"], [63877, 1, "\u792A"], [63878, 1, "\u95AD"], [63879, 1, "\u9A6A"], [63880, 1, "\u9E97"], [63881, 1, "\u9ECE"], [63882, 1, "\u529B"], [63883, 1, "\u66C6"], [63884, 1, "\u6B77"], [63885, 1, "\u8F62"], [63886, 1, "\u5E74"], [63887, 1, "\u6190"], [63888, 1, "\u6200"], [63889, 1, "\u649A"], [63890, 1, "\u6F23"], [63891, 1, "\u7149"], [63892, 1, "\u7489"], [63893, 1, "\u79CA"], [63894, 1, "\u7DF4"], [63895, 1, "\u806F"], [63896, 1, "\u8F26"], [63897, 1, "\u84EE"], [63898, 1, "\u9023"], [63899, 1, "\u934A"], [63900, 1, "\u5217"], [63901, 1, "\u52A3"], [63902, 1, "\u54BD"], [63903, 1, "\u70C8"], [63904, 1, "\u88C2"], [63905, 1, "\u8AAA"], [63906, 1, "\u5EC9"], [63907, 1, "\u5FF5"], [63908, 1, "\u637B"], [63909, 1, "\u6BAE"], [63910, 1, "\u7C3E"], [63911, 1, "\u7375"], [63912, 1, "\u4EE4"], [63913, 1, "\u56F9"], [63914, 1, "\u5BE7"], [63915, 1, "\u5DBA"], [63916, 1, "\u601C"], [63917, 1, "\u73B2"], [63918, 1, "\u7469"], [63919, 1, "\u7F9A"], [63920, 1, "\u8046"], [63921, 1, "\u9234"], [63922, 1, "\u96F6"], [63923, 1, "\u9748"], [63924, 1, "\u9818"], [63925, 1, "\u4F8B"], [63926, 1, "\u79AE"], [63927, 1, "\u91B4"], [63928, 1, "\u96B8"], [63929, 1, "\u60E1"], [63930, 1, "\u4E86"], [63931, 1, "\u50DA"], [63932, 1, "\u5BEE"], [63933, 1, "\u5C3F"], [63934, 1, "\u6599"], [63935, 1, "\u6A02"], [63936, 1, "\u71CE"], [63937, 1, "\u7642"], [63938, 1, "\u84FC"], [63939, 1, "\u907C"], [63940, 1, "\u9F8D"], [63941, 1, "\u6688"], [63942, 1, "\u962E"], [63943, 1, "\u5289"], [63944, 1, "\u677B"], [63945, 1, "\u67F3"], [63946, 1, "\u6D41"], [63947, 1, "\u6E9C"], [63948, 1, "\u7409"], [63949, 1, "\u7559"], [63950, 1, "\u786B"], [63951, 1, "\u7D10"], [63952, 1, "\u985E"], [63953, 1, "\u516D"], [63954, 1, "\u622E"], [63955, 1, "\u9678"], [63956, 1, "\u502B"], [63957, 1, "\u5D19"], [63958, 1, "\u6DEA"], [63959, 1, "\u8F2A"], [63960, 1, "\u5F8B"], [63961, 1, "\u6144"], [63962, 1, "\u6817"], [63963, 1, "\u7387"], [63964, 1, "\u9686"], [63965, 1, "\u5229"], [63966, 1, "\u540F"], [63967, 1, "\u5C65"], [63968, 1, "\u6613"], [63969, 1, "\u674E"], [63970, 1, "\u68A8"], [63971, 1, "\u6CE5"], [63972, 1, "\u7406"], [63973, 1, "\u75E2"], [63974, 1, "\u7F79"], [63975, 1, "\u88CF"], [63976, 1, "\u88E1"], [63977, 1, "\u91CC"], [63978, 1, "\u96E2"], [63979, 1, "\u533F"], [63980, 1, "\u6EBA"], [63981, 1, "\u541D"], [63982, 1, "\u71D0"], [63983, 1, "\u7498"], [63984, 1, "\u85FA"], [63985, 1, "\u96A3"], [63986, 1, "\u9C57"], [63987, 1, "\u9E9F"], [63988, 1, "\u6797"], [63989, 1, "\u6DCB"], [63990, 1, "\u81E8"], [63991, 1, "\u7ACB"], [63992, 1, "\u7B20"], [63993, 1, "\u7C92"], [63994, 1, "\u72C0"], [63995, 1, "\u7099"], [63996, 1, "\u8B58"], [63997, 1, "\u4EC0"], [63998, 1, "\u8336"], [63999, 1, "\u523A"], [64e3, 1, "\u5207"], [64001, 1, "\u5EA6"], [64002, 1, "\u62D3"], [64003, 1, "\u7CD6"], [64004, 1, "\u5B85"], [64005, 1, "\u6D1E"], [64006, 1, "\u66B4"], [64007, 1, "\u8F3B"], [64008, 1, "\u884C"], [64009, 1, "\u964D"], [64010, 1, "\u898B"], [64011, 1, "\u5ED3"], [64012, 1, "\u5140"], [64013, 1, "\u55C0"], [[64014, 64015], 2], [64016, 1, "\u585A"], [64017, 2], [64018, 1, "\u6674"], [[64019, 64020], 2], [64021, 1, "\u51DE"], [64022, 1, "\u732A"], [64023, 1, "\u76CA"], [64024, 1, "\u793C"], [64025, 1, "\u795E"], [64026, 1, "\u7965"], [64027, 1, "\u798F"], [64028, 1, "\u9756"], [64029, 1, "\u7CBE"], [64030, 1, "\u7FBD"], [64031, 2], [64032, 1, "\u8612"], [64033, 2], [64034, 1, "\u8AF8"], [[64035, 64036], 2], [64037, 1, "\u9038"], [64038, 1, "\u90FD"], [[64039, 64041], 2], [64042, 1, "\u98EF"], [64043, 1, "\u98FC"], [64044, 1, "\u9928"], [64045, 1, "\u9DB4"], [64046, 1, "\u90DE"], [64047, 1, "\u96B7"], [64048, 1, "\u4FAE"], [64049, 1, "\u50E7"], [64050, 1, "\u514D"], [64051, 1, "\u52C9"], [64052, 1, "\u52E4"], [64053, 1, "\u5351"], [64054, 1, "\u559D"], [64055, 1, "\u5606"], [64056, 1, "\u5668"], [64057, 1, "\u5840"], [64058, 1, "\u58A8"], [64059, 1, "\u5C64"], [64060, 1, "\u5C6E"], [64061, 1, "\u6094"], [64062, 1, "\u6168"], [64063, 1, "\u618E"], [64064, 1, "\u61F2"], [64065, 1, "\u654F"], [64066, 1, "\u65E2"], [64067, 1, "\u6691"], [64068, 1, "\u6885"], [64069, 1, "\u6D77"], [64070, 1, "\u6E1A"], [64071, 1, "\u6F22"], [64072, 1, "\u716E"], [64073, 1, "\u722B"], [64074, 1, "\u7422"], [64075, 1, "\u7891"], [64076, 1, "\u793E"], [64077, 1, "\u7949"], [64078, 1, "\u7948"], [64079, 1, "\u7950"], [64080, 1, "\u7956"], [64081, 1, "\u795D"], [64082, 1, "\u798D"], [64083, 1, "\u798E"], [64084, 1, "\u7A40"], [64085, 1, "\u7A81"], [64086, 1, "\u7BC0"], [64087, 1, "\u7DF4"], [64088, 1, "\u7E09"], [64089, 1, "\u7E41"], [64090, 1, "\u7F72"], [64091, 1, "\u8005"], [64092, 1, "\u81ED"], [[64093, 64094], 1, "\u8279"], [64095, 1, "\u8457"], [64096, 1, "\u8910"], [64097, 1, "\u8996"], [64098, 1, "\u8B01"], [64099, 1, "\u8B39"], [64100, 1, "\u8CD3"], [64101, 1, "\u8D08"], [64102, 1, "\u8FB6"], [64103, 1, "\u9038"], [64104, 1, "\u96E3"], [64105, 1, "\u97FF"], [64106, 1, "\u983B"], [64107, 1, "\u6075"], [64108, 1, "\u{242EE}"], [64109, 1, "\u8218"], [[64110, 64111], 3], [64112, 1, "\u4E26"], [64113, 1, "\u51B5"], [64114, 1, "\u5168"], [64115, 1, "\u4F80"], [64116, 1, "\u5145"], [64117, 1, "\u5180"], [64118, 1, "\u52C7"], [64119, 1, "\u52FA"], [64120, 1, "\u559D"], [64121, 1, "\u5555"], [64122, 1, "\u5599"], [64123, 1, "\u55E2"], [64124, 1, "\u585A"], [64125, 1, "\u58B3"], [64126, 1, "\u5944"], [64127, 1, "\u5954"], [64128, 1, "\u5A62"], [64129, 1, "\u5B28"], [64130, 1, "\u5ED2"], [64131, 1, "\u5ED9"], [64132, 1, "\u5F69"], [64133, 1, "\u5FAD"], [64134, 1, "\u60D8"], [64135, 1, "\u614E"], [64136, 1, "\u6108"], [64137, 1, "\u618E"], [64138, 1, "\u6160"], [64139, 1, "\u61F2"], [64140, 1, "\u6234"], [64141, 1, "\u63C4"], [64142, 1, "\u641C"], [64143, 1, "\u6452"], [64144, 1, "\u6556"], [64145, 1, "\u6674"], [64146, 1, "\u6717"], [64147, 1, "\u671B"], [64148, 1, "\u6756"], [64149, 1, "\u6B79"], [64150, 1, "\u6BBA"], [64151, 1, "\u6D41"], [64152, 1, "\u6EDB"], [64153, 1, "\u6ECB"], [64154, 1, "\u6F22"], [64155, 1, "\u701E"], [64156, 1, "\u716E"], [64157, 1, "\u77A7"], [64158, 1, "\u7235"], [64159, 1, "\u72AF"], [64160, 1, "\u732A"], [64161, 1, "\u7471"], [64162, 1, "\u7506"], [64163, 1, "\u753B"], [64164, 1, "\u761D"], [64165, 1, "\u761F"], [64166, 1, "\u76CA"], [64167, 1, "\u76DB"], [64168, 1, "\u76F4"], [64169, 1, "\u774A"], [64170, 1, "\u7740"], [64171, 1, "\u78CC"], [64172, 1, "\u7AB1"], [64173, 1, "\u7BC0"], [64174, 1, "\u7C7B"], [64175, 1, "\u7D5B"], [64176, 1, "\u7DF4"], [64177, 1, "\u7F3E"], [64178, 1, "\u8005"], [64179, 1, "\u8352"], [64180, 1, "\u83EF"], [64181, 1, "\u8779"], [64182, 1, "\u8941"], [64183, 1, "\u8986"], [64184, 1, "\u8996"], [64185, 1, "\u8ABF"], [64186, 1, "\u8AF8"], [64187, 1, "\u8ACB"], [64188, 1, "\u8B01"], [64189, 1, "\u8AFE"], [64190, 1, "\u8AED"], [64191, 1, "\u8B39"], [64192, 1, "\u8B8A"], [64193, 1, "\u8D08"], [64194, 1, "\u8F38"], [64195, 1, "\u9072"], [64196, 1, "\u9199"], [64197, 1, "\u9276"], [64198, 1, "\u967C"], [64199, 1, "\u96E3"], [64200, 1, "\u9756"], [64201, 1, "\u97DB"], [64202, 1, "\u97FF"], [64203, 1, "\u980B"], [64204, 1, "\u983B"], [64205, 1, "\u9B12"], [64206, 1, "\u9F9C"], [64207, 1, "\u{2284A}"], [64208, 1, "\u{22844}"], [64209, 1, "\u{233D5}"], [64210, 1, "\u3B9D"], [64211, 1, "\u4018"], [64212, 1, "\u4039"], [64213, 1, "\u{25249}"], [64214, 1, "\u{25CD0}"], [64215, 1, "\u{27ED3}"], [64216, 1, "\u9F43"], [64217, 1, "\u9F8E"], [[64218, 64255], 3], [64256, 1, "ff"], [64257, 1, "fi"], [64258, 1, "fl"], [64259, 1, "ffi"], [64260, 1, "ffl"], [[64261, 64262], 1, "st"], [[64263, 64274], 3], [64275, 1, "\u0574\u0576"], [64276, 1, "\u0574\u0565"], [64277, 1, "\u0574\u056B"], [64278, 1, "\u057E\u0576"], [64279, 1, "\u0574\u056D"], [[64280, 64284], 3], [64285, 1, "\u05D9\u05B4"], [64286, 2], [64287, 1, "\u05F2\u05B7"], [64288, 1, "\u05E2"], [64289, 1, "\u05D0"], [64290, 1, "\u05D3"], [64291, 1, "\u05D4"], [64292, 1, "\u05DB"], [64293, 1, "\u05DC"], [64294, 1, "\u05DD"], [64295, 1, "\u05E8"], [64296, 1, "\u05EA"], [64297, 1, "+"], [64298, 1, "\u05E9\u05C1"], [64299, 1, "\u05E9\u05C2"], [64300, 1, "\u05E9\u05BC\u05C1"], [64301, 1, "\u05E9\u05BC\u05C2"], [64302, 1, "\u05D0\u05B7"], [64303, 1, "\u05D0\u05B8"], [64304, 1, "\u05D0\u05BC"], [64305, 1, "\u05D1\u05BC"], [64306, 1, "\u05D2\u05BC"], [64307, 1, "\u05D3\u05BC"], [64308, 1, "\u05D4\u05BC"], [64309, 1, "\u05D5\u05BC"], [64310, 1, "\u05D6\u05BC"], [64311, 3], [64312, 1, "\u05D8\u05BC"], [64313, 1, "\u05D9\u05BC"], [64314, 1, "\u05DA\u05BC"], [64315, 1, "\u05DB\u05BC"], [64316, 1, "\u05DC\u05BC"], [64317, 3], [64318, 1, "\u05DE\u05BC"], [64319, 3], [64320, 1, "\u05E0\u05BC"], [64321, 1, "\u05E1\u05BC"], [64322, 3], [64323, 1, "\u05E3\u05BC"], [64324, 1, "\u05E4\u05BC"], [64325, 3], [64326, 1, "\u05E6\u05BC"], [64327, 1, "\u05E7\u05BC"], [64328, 1, "\u05E8\u05BC"], [64329, 1, "\u05E9\u05BC"], [64330, 1, "\u05EA\u05BC"], [64331, 1, "\u05D5\u05B9"], [64332, 1, "\u05D1\u05BF"], [64333, 1, "\u05DB\u05BF"], [64334, 1, "\u05E4\u05BF"], [64335, 1, "\u05D0\u05DC"], [[64336, 64337], 1, "\u0671"], [[64338, 64341], 1, "\u067B"], [[64342, 64345], 1, "\u067E"], [[64346, 64349], 1, "\u0680"], [[64350, 64353], 1, "\u067A"], [[64354, 64357], 1, "\u067F"], [[64358, 64361], 1, "\u0679"], [[64362, 64365], 1, "\u06A4"], [[64366, 64369], 1, "\u06A6"], [[64370, 64373], 1, "\u0684"], [[64374, 64377], 1, "\u0683"], [[64378, 64381], 1, "\u0686"], [[64382, 64385], 1, "\u0687"], [[64386, 64387], 1, "\u068D"], [[64388, 64389], 1, "\u068C"], [[64390, 64391], 1, "\u068E"], [[64392, 64393], 1, "\u0688"], [[64394, 64395], 1, "\u0698"], [[64396, 64397], 1, "\u0691"], [[64398, 64401], 1, "\u06A9"], [[64402, 64405], 1, "\u06AF"], [[64406, 64409], 1, "\u06B3"], [[64410, 64413], 1, "\u06B1"], [[64414, 64415], 1, "\u06BA"], [[64416, 64419], 1, "\u06BB"], [[64420, 64421], 1, "\u06C0"], [[64422, 64425], 1, "\u06C1"], [[64426, 64429], 1, "\u06BE"], [[64430, 64431], 1, "\u06D2"], [[64432, 64433], 1, "\u06D3"], [[64434, 64449], 2], [64450, 2], [[64451, 64466], 2], [[64467, 64470], 1, "\u06AD"], [[64471, 64472], 1, "\u06C7"], [[64473, 64474], 1, "\u06C6"], [[64475, 64476], 1, "\u06C8"], [64477, 1, "\u06C7\u0674"], [[64478, 64479], 1, "\u06CB"], [[64480, 64481], 1, "\u06C5"], [[64482, 64483], 1, "\u06C9"], [[64484, 64487], 1, "\u06D0"], [[64488, 64489], 1, "\u0649"], [[64490, 64491], 1, "\u0626\u0627"], [[64492, 64493], 1, "\u0626\u06D5"], [[64494, 64495], 1, "\u0626\u0648"], [[64496, 64497], 1, "\u0626\u06C7"], [[64498, 64499], 1, "\u0626\u06C6"], [[64500, 64501], 1, "\u0626\u06C8"], [[64502, 64504], 1, "\u0626\u06D0"], [[64505, 64507], 1, "\u0626\u0649"], [[64508, 64511], 1, "\u06CC"], [64512, 1, "\u0626\u062C"], [64513, 1, "\u0626\u062D"], [64514, 1, "\u0626\u0645"], [64515, 1, "\u0626\u0649"], [64516, 1, "\u0626\u064A"], [64517, 1, "\u0628\u062C"], [64518, 1, "\u0628\u062D"], [64519, 1, "\u0628\u062E"], [64520, 1, "\u0628\u0645"], [64521, 1, "\u0628\u0649"], [64522, 1, "\u0628\u064A"], [64523, 1, "\u062A\u062C"], [64524, 1, "\u062A\u062D"], [64525, 1, "\u062A\u062E"], [64526, 1, "\u062A\u0645"], [64527, 1, "\u062A\u0649"], [64528, 1, "\u062A\u064A"], [64529, 1, "\u062B\u062C"], [64530, 1, "\u062B\u0645"], [64531, 1, "\u062B\u0649"], [64532, 1, "\u062B\u064A"], [64533, 1, "\u062C\u062D"], [64534, 1, "\u062C\u0645"], [64535, 1, "\u062D\u062C"], [64536, 1, "\u062D\u0645"], [64537, 1, "\u062E\u062C"], [64538, 1, "\u062E\u062D"], [64539, 1, "\u062E\u0645"], [64540, 1, "\u0633\u062C"], [64541, 1, "\u0633\u062D"], [64542, 1, "\u0633\u062E"], [64543, 1, "\u0633\u0645"], [64544, 1, "\u0635\u062D"], [64545, 1, "\u0635\u0645"], [64546, 1, "\u0636\u062C"], [64547, 1, "\u0636\u062D"], [64548, 1, "\u0636\u062E"], [64549, 1, "\u0636\u0645"], [64550, 1, "\u0637\u062D"], [64551, 1, "\u0637\u0645"], [64552, 1, "\u0638\u0645"], [64553, 1, "\u0639\u062C"], [64554, 1, "\u0639\u0645"], [64555, 1, "\u063A\u062C"], [64556, 1, "\u063A\u0645"], [64557, 1, "\u0641\u062C"], [64558, 1, "\u0641\u062D"], [64559, 1, "\u0641\u062E"], [64560, 1, "\u0641\u0645"], [64561, 1, "\u0641\u0649"], [64562, 1, "\u0641\u064A"], [64563, 1, "\u0642\u062D"], [64564, 1, "\u0642\u0645"], [64565, 1, "\u0642\u0649"], [64566, 1, "\u0642\u064A"], [64567, 1, "\u0643\u0627"], [64568, 1, "\u0643\u062C"], [64569, 1, "\u0643\u062D"], [64570, 1, "\u0643\u062E"], [64571, 1, "\u0643\u0644"], [64572, 1, "\u0643\u0645"], [64573, 1, "\u0643\u0649"], [64574, 1, "\u0643\u064A"], [64575, 1, "\u0644\u062C"], [64576, 1, "\u0644\u062D"], [64577, 1, "\u0644\u062E"], [64578, 1, "\u0644\u0645"], [64579, 1, "\u0644\u0649"], [64580, 1, "\u0644\u064A"], [64581, 1, "\u0645\u062C"], [64582, 1, "\u0645\u062D"], [64583, 1, "\u0645\u062E"], [64584, 1, "\u0645\u0645"], [64585, 1, "\u0645\u0649"], [64586, 1, "\u0645\u064A"], [64587, 1, "\u0646\u062C"], [64588, 1, "\u0646\u062D"], [64589, 1, "\u0646\u062E"], [64590, 1, "\u0646\u0645"], [64591, 1, "\u0646\u0649"], [64592, 1, "\u0646\u064A"], [64593, 1, "\u0647\u062C"], [64594, 1, "\u0647\u0645"], [64595, 1, "\u0647\u0649"], [64596, 1, "\u0647\u064A"], [64597, 1, "\u064A\u062C"], [64598, 1, "\u064A\u062D"], [64599, 1, "\u064A\u062E"], [64600, 1, "\u064A\u0645"], [64601, 1, "\u064A\u0649"], [64602, 1, "\u064A\u064A"], [64603, 1, "\u0630\u0670"], [64604, 1, "\u0631\u0670"], [64605, 1, "\u0649\u0670"], [64606, 1, " \u064C\u0651"], [64607, 1, " \u064D\u0651"], [64608, 1, " \u064E\u0651"], [64609, 1, " \u064F\u0651"], [64610, 1, " \u0650\u0651"], [64611, 1, " \u0651\u0670"], [64612, 1, "\u0626\u0631"], [64613, 1, "\u0626\u0632"], [64614, 1, "\u0626\u0645"], [64615, 1, "\u0626\u0646"], [64616, 1, "\u0626\u0649"], [64617, 1, "\u0626\u064A"], [64618, 1, "\u0628\u0631"], [64619, 1, "\u0628\u0632"], [64620, 1, "\u0628\u0645"], [64621, 1, "\u0628\u0646"], [64622, 1, "\u0628\u0649"], [64623, 1, "\u0628\u064A"], [64624, 1, "\u062A\u0631"], [64625, 1, "\u062A\u0632"], [64626, 1, "\u062A\u0645"], [64627, 1, "\u062A\u0646"], [64628, 1, "\u062A\u0649"], [64629, 1, "\u062A\u064A"], [64630, 1, "\u062B\u0631"], [64631, 1, "\u062B\u0632"], [64632, 1, "\u062B\u0645"], [64633, 1, "\u062B\u0646"], [64634, 1, "\u062B\u0649"], [64635, 1, "\u062B\u064A"], [64636, 1, "\u0641\u0649"], [64637, 1, "\u0641\u064A"], [64638, 1, "\u0642\u0649"], [64639, 1, "\u0642\u064A"], [64640, 1, "\u0643\u0627"], [64641, 1, "\u0643\u0644"], [64642, 1, "\u0643\u0645"], [64643, 1, "\u0643\u0649"], [64644, 1, "\u0643\u064A"], [64645, 1, "\u0644\u0645"], [64646, 1, "\u0644\u0649"], [64647, 1, "\u0644\u064A"], [64648, 1, "\u0645\u0627"], [64649, 1, "\u0645\u0645"], [64650, 1, "\u0646\u0631"], [64651, 1, "\u0646\u0632"], [64652, 1, "\u0646\u0645"], [64653, 1, "\u0646\u0646"], [64654, 1, "\u0646\u0649"], [64655, 1, "\u0646\u064A"], [64656, 1, "\u0649\u0670"], [64657, 1, "\u064A\u0631"], [64658, 1, "\u064A\u0632"], [64659, 1, "\u064A\u0645"], [64660, 1, "\u064A\u0646"], [64661, 1, "\u064A\u0649"], [64662, 1, "\u064A\u064A"], [64663, 1, "\u0626\u062C"], [64664, 1, "\u0626\u062D"], [64665, 1, "\u0626\u062E"], [64666, 1, "\u0626\u0645"], [64667, 1, "\u0626\u0647"], [64668, 1, "\u0628\u062C"], [64669, 1, "\u0628\u062D"], [64670, 1, "\u0628\u062E"], [64671, 1, "\u0628\u0645"], [64672, 1, "\u0628\u0647"], [64673, 1, "\u062A\u062C"], [64674, 1, "\u062A\u062D"], [64675, 1, "\u062A\u062E"], [64676, 1, "\u062A\u0645"], [64677, 1, "\u062A\u0647"], [64678, 1, "\u062B\u0645"], [64679, 1, "\u062C\u062D"], [64680, 1, "\u062C\u0645"], [64681, 1, "\u062D\u062C"], [64682, 1, "\u062D\u0645"], [64683, 1, "\u062E\u062C"], [64684, 1, "\u062E\u0645"], [64685, 1, "\u0633\u062C"], [64686, 1, "\u0633\u062D"], [64687, 1, "\u0633\u062E"], [64688, 1, "\u0633\u0645"], [64689, 1, "\u0635\u062D"], [64690, 1, "\u0635\u062E"], [64691, 1, "\u0635\u0645"], [64692, 1, "\u0636\u062C"], [64693, 1, "\u0636\u062D"], [64694, 1, "\u0636\u062E"], [64695, 1, "\u0636\u0645"], [64696, 1, "\u0637\u062D"], [64697, 1, "\u0638\u0645"], [64698, 1, "\u0639\u062C"], [64699, 1, "\u0639\u0645"], [64700, 1, "\u063A\u062C"], [64701, 1, "\u063A\u0645"], [64702, 1, "\u0641\u062C"], [64703, 1, "\u0641\u062D"], [64704, 1, "\u0641\u062E"], [64705, 1, "\u0641\u0645"], [64706, 1, "\u0642\u062D"], [64707, 1, "\u0642\u0645"], [64708, 1, "\u0643\u062C"], [64709, 1, "\u0643\u062D"], [64710, 1, "\u0643\u062E"], [64711, 1, "\u0643\u0644"], [64712, 1, "\u0643\u0645"], [64713, 1, "\u0644\u062C"], [64714, 1, "\u0644\u062D"], [64715, 1, "\u0644\u062E"], [64716, 1, "\u0644\u0645"], [64717, 1, "\u0644\u0647"], [64718, 1, "\u0645\u062C"], [64719, 1, "\u0645\u062D"], [64720, 1, "\u0645\u062E"], [64721, 1, "\u0645\u0645"], [64722, 1, "\u0646\u062C"], [64723, 1, "\u0646\u062D"], [64724, 1, "\u0646\u062E"], [64725, 1, "\u0646\u0645"], [64726, 1, "\u0646\u0647"], [64727, 1, "\u0647\u062C"], [64728, 1, "\u0647\u0645"], [64729, 1, "\u0647\u0670"], [64730, 1, "\u064A\u062C"], [64731, 1, "\u064A\u062D"], [64732, 1, "\u064A\u062E"], [64733, 1, "\u064A\u0645"], [64734, 1, "\u064A\u0647"], [64735, 1, "\u0626\u0645"], [64736, 1, "\u0626\u0647"], [64737, 1, "\u0628\u0645"], [64738, 1, "\u0628\u0647"], [64739, 1, "\u062A\u0645"], [64740, 1, "\u062A\u0647"], [64741, 1, "\u062B\u0645"], [64742, 1, "\u062B\u0647"], [64743, 1, "\u0633\u0645"], [64744, 1, "\u0633\u0647"], [64745, 1, "\u0634\u0645"], [64746, 1, "\u0634\u0647"], [64747, 1, "\u0643\u0644"], [64748, 1, "\u0643\u0645"], [64749, 1, "\u0644\u0645"], [64750, 1, "\u0646\u0645"], [64751, 1, "\u0646\u0647"], [64752, 1, "\u064A\u0645"], [64753, 1, "\u064A\u0647"], [64754, 1, "\u0640\u064E\u0651"], [64755, 1, "\u0640\u064F\u0651"], [64756, 1, "\u0640\u0650\u0651"], [64757, 1, "\u0637\u0649"], [64758, 1, "\u0637\u064A"], [64759, 1, "\u0639\u0649"], [64760, 1, "\u0639\u064A"], [64761, 1, "\u063A\u0649"], [64762, 1, "\u063A\u064A"], [64763, 1, "\u0633\u0649"], [64764, 1, "\u0633\u064A"], [64765, 1, "\u0634\u0649"], [64766, 1, "\u0634\u064A"], [64767, 1, "\u062D\u0649"], [64768, 1, "\u062D\u064A"], [64769, 1, "\u062C\u0649"], [64770, 1, "\u062C\u064A"], [64771, 1, "\u062E\u0649"], [64772, 1, "\u062E\u064A"], [64773, 1, "\u0635\u0649"], [64774, 1, "\u0635\u064A"], [64775, 1, "\u0636\u0649"], [64776, 1, "\u0636\u064A"], [64777, 1, "\u0634\u062C"], [64778, 1, "\u0634\u062D"], [64779, 1, "\u0634\u062E"], [64780, 1, "\u0634\u0645"], [64781, 1, "\u0634\u0631"], [64782, 1, "\u0633\u0631"], [64783, 1, "\u0635\u0631"], [64784, 1, "\u0636\u0631"], [64785, 1, "\u0637\u0649"], [64786, 1, "\u0637\u064A"], [64787, 1, "\u0639\u0649"], [64788, 1, "\u0639\u064A"], [64789, 1, "\u063A\u0649"], [64790, 1, "\u063A\u064A"], [64791, 1, "\u0633\u0649"], [64792, 1, "\u0633\u064A"], [64793, 1, "\u0634\u0649"], [64794, 1, "\u0634\u064A"], [64795, 1, "\u062D\u0649"], [64796, 1, "\u062D\u064A"], [64797, 1, "\u062C\u0649"], [64798, 1, "\u062C\u064A"], [64799, 1, "\u062E\u0649"], [64800, 1, "\u062E\u064A"], [64801, 1, "\u0635\u0649"], [64802, 1, "\u0635\u064A"], [64803, 1, "\u0636\u0649"], [64804, 1, "\u0636\u064A"], [64805, 1, "\u0634\u062C"], [64806, 1, "\u0634\u062D"], [64807, 1, "\u0634\u062E"], [64808, 1, "\u0634\u0645"], [64809, 1, "\u0634\u0631"], [64810, 1, "\u0633\u0631"], [64811, 1, "\u0635\u0631"], [64812, 1, "\u0636\u0631"], [64813, 1, "\u0634\u062C"], [64814, 1, "\u0634\u062D"], [64815, 1, "\u0634\u062E"], [64816, 1, "\u0634\u0645"], [64817, 1, "\u0633\u0647"], [64818, 1, "\u0634\u0647"], [64819, 1, "\u0637\u0645"], [64820, 1, "\u0633\u062C"], [64821, 1, "\u0633\u062D"], [64822, 1, "\u0633\u062E"], [64823, 1, "\u0634\u062C"], [64824, 1, "\u0634\u062D"], [64825, 1, "\u0634\u062E"], [64826, 1, "\u0637\u0645"], [64827, 1, "\u0638\u0645"], [[64828, 64829], 1, "\u0627\u064B"], [[64830, 64831], 2], [[64832, 64847], 2], [64848, 1, "\u062A\u062C\u0645"], [[64849, 64850], 1, "\u062A\u062D\u062C"], [64851, 1, "\u062A\u062D\u0645"], [64852, 1, "\u062A\u062E\u0645"], [64853, 1, "\u062A\u0645\u062C"], [64854, 1, "\u062A\u0645\u062D"], [64855, 1, "\u062A\u0645\u062E"], [[64856, 64857], 1, "\u062C\u0645\u062D"], [64858, 1, "\u062D\u0645\u064A"], [64859, 1, "\u062D\u0645\u0649"], [64860, 1, "\u0633\u062D\u062C"], [64861, 1, "\u0633\u062C\u062D"], [64862, 1, "\u0633\u062C\u0649"], [[64863, 64864], 1, "\u0633\u0645\u062D"], [64865, 1, "\u0633\u0645\u062C"], [[64866, 64867], 1, "\u0633\u0645\u0645"], [[64868, 64869], 1, "\u0635\u062D\u062D"], [64870, 1, "\u0635\u0645\u0645"], [[64871, 64872], 1, "\u0634\u062D\u0645"], [64873, 1, "\u0634\u062C\u064A"], [[64874, 64875], 1, "\u0634\u0645\u062E"], [[64876, 64877], 1, "\u0634\u0645\u0645"], [64878, 1, "\u0636\u062D\u0649"], [[64879, 64880], 1, "\u0636\u062E\u0645"], [[64881, 64882], 1, "\u0637\u0645\u062D"], [64883, 1, "\u0637\u0645\u0645"], [64884, 1, "\u0637\u0645\u064A"], [64885, 1, "\u0639\u062C\u0645"], [[64886, 64887], 1, "\u0639\u0645\u0645"], [64888, 1, "\u0639\u0645\u0649"], [64889, 1, "\u063A\u0645\u0645"], [64890, 1, "\u063A\u0645\u064A"], [64891, 1, "\u063A\u0645\u0649"], [[64892, 64893], 1, "\u0641\u062E\u0645"], [64894, 1, "\u0642\u0645\u062D"], [64895, 1, "\u0642\u0645\u0645"], [64896, 1, "\u0644\u062D\u0645"], [64897, 1, "\u0644\u062D\u064A"], [64898, 1, "\u0644\u062D\u0649"], [[64899, 64900], 1, "\u0644\u062C\u062C"], [[64901, 64902], 1, "\u0644\u062E\u0645"], [[64903, 64904], 1, "\u0644\u0645\u062D"], [64905, 1, "\u0645\u062D\u062C"], [64906, 1, "\u0645\u062D\u0645"], [64907, 1, "\u0645\u062D\u064A"], [64908, 1, "\u0645\u062C\u062D"], [64909, 1, "\u0645\u062C\u0645"], [64910, 1, "\u0645\u062E\u062C"], [64911, 1, "\u0645\u062E\u0645"], [[64912, 64913], 2], [64914, 1, "\u0645\u062C\u062E"], [64915, 1, "\u0647\u0645\u062C"], [64916, 1, "\u0647\u0645\u0645"], [64917, 1, "\u0646\u062D\u0645"], [64918, 1, "\u0646\u062D\u0649"], [[64919, 64920], 1, "\u0646\u062C\u0645"], [64921, 1, "\u0646\u062C\u0649"], [64922, 1, "\u0646\u0645\u064A"], [64923, 1, "\u0646\u0645\u0649"], [[64924, 64925], 1, "\u064A\u0645\u0645"], [64926, 1, "\u0628\u062E\u064A"], [64927, 1, "\u062A\u062C\u064A"], [64928, 1, "\u062A\u062C\u0649"], [64929, 1, "\u062A\u062E\u064A"], [64930, 1, "\u062A\u062E\u0649"], [64931, 1, "\u062A\u0645\u064A"], [64932, 1, "\u062A\u0645\u0649"], [64933, 1, "\u062C\u0645\u064A"], [64934, 1, "\u062C\u062D\u0649"], [64935, 1, "\u062C\u0645\u0649"], [64936, 1, "\u0633\u062E\u0649"], [64937, 1, "\u0635\u062D\u064A"], [64938, 1, "\u0634\u062D\u064A"], [64939, 1, "\u0636\u062D\u064A"], [64940, 1, "\u0644\u062C\u064A"], [64941, 1, "\u0644\u0645\u064A"], [64942, 1, "\u064A\u062D\u064A"], [64943, 1, "\u064A\u062C\u064A"], [64944, 1, "\u064A\u0645\u064A"], [64945, 1, "\u0645\u0645\u064A"], [64946, 1, "\u0642\u0645\u064A"], [64947, 1, "\u0646\u062D\u064A"], [64948, 1, "\u0642\u0645\u062D"], [64949, 1, "\u0644\u062D\u0645"], [64950, 1, "\u0639\u0645\u064A"], [64951, 1, "\u0643\u0645\u064A"], [64952, 1, "\u0646\u062C\u062D"], [64953, 1, "\u0645\u062E\u064A"], [64954, 1, "\u0644\u062C\u0645"], [64955, 1, "\u0643\u0645\u0645"], [64956, 1, "\u0644\u062C\u0645"], [64957, 1, "\u0646\u062C\u062D"], [64958, 1, "\u062C\u062D\u064A"], [64959, 1, "\u062D\u062C\u064A"], [64960, 1, "\u0645\u062C\u064A"], [64961, 1, "\u0641\u0645\u064A"], [64962, 1, "\u0628\u062D\u064A"], [64963, 1, "\u0643\u0645\u0645"], [64964, 1, "\u0639\u062C\u0645"], [64965, 1, "\u0635\u0645\u0645"], [64966, 1, "\u0633\u062E\u064A"], [64967, 1, "\u0646\u062C\u064A"], [[64968, 64974], 2], [64975, 2], [[64976, 65007], 3], [65008, 1, "\u0635\u0644\u06D2"], [65009, 1, "\u0642\u0644\u06D2"], [65010, 1, "\u0627\u0644\u0644\u0647"], [65011, 1, "\u0627\u0643\u0628\u0631"], [65012, 1, "\u0645\u062D\u0645\u062F"], [65013, 1, "\u0635\u0644\u0639\u0645"], [65014, 1, "\u0631\u0633\u0648\u0644"], [65015, 1, "\u0639\u0644\u064A\u0647"], [65016, 1, "\u0648\u0633\u0644\u0645"], [65017, 1, "\u0635\u0644\u0649"], [65018, 1, "\u0635\u0644\u0649 \u0627\u0644\u0644\u0647 \u0639\u0644\u064A\u0647 \u0648\u0633\u0644\u0645"], [65019, 1, "\u062C\u0644 \u062C\u0644\u0627\u0644\u0647"], [65020, 1, "\u0631\u06CC\u0627\u0644"], [65021, 2], [[65022, 65023], 2], [[65024, 65039], 7], [65040, 1, ","], [65041, 1, "\u3001"], [65042, 3], [65043, 1, ":"], [65044, 1, ";"], [65045, 1, "!"], [65046, 1, "?"], [65047, 1, "\u3016"], [65048, 1, "\u3017"], [65049, 3], [[65050, 65055], 3], [[65056, 65059], 2], [[65060, 65062], 2], [[65063, 65069], 2], [[65070, 65071], 2], [65072, 3], [65073, 1, "\u2014"], [65074, 1, "\u2013"], [[65075, 65076], 1, "_"], [65077, 1, "("], [65078, 1, ")"], [65079, 1, "{"], [65080, 1, "}"], [65081, 1, "\u3014"], [65082, 1, "\u3015"], [65083, 1, "\u3010"], [65084, 1, "\u3011"], [65085, 1, "\u300A"], [65086, 1, "\u300B"], [65087, 1, "\u3008"], [65088, 1, "\u3009"], [65089, 1, "\u300C"], [65090, 1, "\u300D"], [65091, 1, "\u300E"], [65092, 1, "\u300F"], [[65093, 65094], 2], [65095, 1, "["], [65096, 1, "]"], [[65097, 65100], 1, " \u0305"], [[65101, 65103], 1, "_"], [65104, 1, ","], [65105, 1, "\u3001"], [65106, 3], [65107, 3], [65108, 1, ";"], [65109, 1, ":"], [65110, 1, "?"], [65111, 1, "!"], [65112, 1, "\u2014"], [65113, 1, "("], [65114, 1, ")"], [65115, 1, "{"], [65116, 1, "}"], [65117, 1, "\u3014"], [65118, 1, "\u3015"], [65119, 1, "#"], [65120, 1, "&"], [65121, 1, "*"], [65122, 1, "+"], [65123, 1, "-"], [65124, 1, "<"], [65125, 1, ">"], [65126, 1, "="], [65127, 3], [65128, 1, "\\"], [65129, 1, "$"], [65130, 1, "%"], [65131, 1, "@"], [[65132, 65135], 3], [65136, 1, " \u064B"], [65137, 1, "\u0640\u064B"], [65138, 1, " \u064C"], [65139, 2], [65140, 1, " \u064D"], [65141, 3], [65142, 1, " \u064E"], [65143, 1, "\u0640\u064E"], [65144, 1, " \u064F"], [65145, 1, "\u0640\u064F"], [65146, 1, " \u0650"], [65147, 1, "\u0640\u0650"], [65148, 1, " \u0651"], [65149, 1, "\u0640\u0651"], [65150, 1, " \u0652"], [65151, 1, "\u0640\u0652"], [65152, 1, "\u0621"], [[65153, 65154], 1, "\u0622"], [[65155, 65156], 1, "\u0623"], [[65157, 65158], 1, "\u0624"], [[65159, 65160], 1, "\u0625"], [[65161, 65164], 1, "\u0626"], [[65165, 65166], 1, "\u0627"], [[65167, 65170], 1, "\u0628"], [[65171, 65172], 1, "\u0629"], [[65173, 65176], 1, "\u062A"], [[65177, 65180], 1, "\u062B"], [[65181, 65184], 1, "\u062C"], [[65185, 65188], 1, "\u062D"], [[65189, 65192], 1, "\u062E"], [[65193, 65194], 1, "\u062F"], [[65195, 65196], 1, "\u0630"], [[65197, 65198], 1, "\u0631"], [[65199, 65200], 1, "\u0632"], [[65201, 65204], 1, "\u0633"], [[65205, 65208], 1, "\u0634"], [[65209, 65212], 1, "\u0635"], [[65213, 65216], 1, "\u0636"], [[65217, 65220], 1, "\u0637"], [[65221, 65224], 1, "\u0638"], [[65225, 65228], 1, "\u0639"], [[65229, 65232], 1, "\u063A"], [[65233, 65236], 1, "\u0641"], [[65237, 65240], 1, "\u0642"], [[65241, 65244], 1, "\u0643"], [[65245, 65248], 1, "\u0644"], [[65249, 65252], 1, "\u0645"], [[65253, 65256], 1, "\u0646"], [[65257, 65260], 1, "\u0647"], [[65261, 65262], 1, "\u0648"], [[65263, 65264], 1, "\u0649"], [[65265, 65268], 1, "\u064A"], [[65269, 65270], 1, "\u0644\u0622"], [[65271, 65272], 1, "\u0644\u0623"], [[65273, 65274], 1, "\u0644\u0625"], [[65275, 65276], 1, "\u0644\u0627"], [[65277, 65278], 3], [65279, 7], [65280, 3], [65281, 1, "!"], [65282, 1, '"'], [65283, 1, "#"], [65284, 1, "$"], [65285, 1, "%"], [65286, 1, "&"], [65287, 1, "'"], [65288, 1, "("], [65289, 1, ")"], [65290, 1, "*"], [65291, 1, "+"], [65292, 1, ","], [65293, 1, "-"], [65294, 1, "."], [65295, 1, "/"], [65296, 1, "0"], [65297, 1, "1"], [65298, 1, "2"], [65299, 1, "3"], [65300, 1, "4"], [65301, 1, "5"], [65302, 1, "6"], [65303, 1, "7"], [65304, 1, "8"], [65305, 1, "9"], [65306, 1, ":"], [65307, 1, ";"], [65308, 1, "<"], [65309, 1, "="], [65310, 1, ">"], [65311, 1, "?"], [65312, 1, "@"], [65313, 1, "a"], [65314, 1, "b"], [65315, 1, "c"], [65316, 1, "d"], [65317, 1, "e"], [65318, 1, "f"], [65319, 1, "g"], [65320, 1, "h"], [65321, 1, "i"], [65322, 1, "j"], [65323, 1, "k"], [65324, 1, "l"], [65325, 1, "m"], [65326, 1, "n"], [65327, 1, "o"], [65328, 1, "p"], [65329, 1, "q"], [65330, 1, "r"], [65331, 1, "s"], [65332, 1, "t"], [65333, 1, "u"], [65334, 1, "v"], [65335, 1, "w"], [65336, 1, "x"], [65337, 1, "y"], [65338, 1, "z"], [65339, 1, "["], [65340, 1, "\\"], [65341, 1, "]"], [65342, 1, "^"], [65343, 1, "_"], [65344, 1, "`"], [65345, 1, "a"], [65346, 1, "b"], [65347, 1, "c"], [65348, 1, "d"], [65349, 1, "e"], [65350, 1, "f"], [65351, 1, "g"], [65352, 1, "h"], [65353, 1, "i"], [65354, 1, "j"], [65355, 1, "k"], [65356, 1, "l"], [65357, 1, "m"], [65358, 1, "n"], [65359, 1, "o"], [65360, 1, "p"], [65361, 1, "q"], [65362, 1, "r"], [65363, 1, "s"], [65364, 1, "t"], [65365, 1, "u"], [65366, 1, "v"], [65367, 1, "w"], [65368, 1, "x"], [65369, 1, "y"], [65370, 1, "z"], [65371, 1, "{"], [65372, 1, "|"], [65373, 1, "}"], [65374, 1, "~"], [65375, 1, "\u2985"], [65376, 1, "\u2986"], [65377, 1, "."], [65378, 1, "\u300C"], [65379, 1, "\u300D"], [65380, 1, "\u3001"], [65381, 1, "\u30FB"], [65382, 1, "\u30F2"], [65383, 1, "\u30A1"], [65384, 1, "\u30A3"], [65385, 1, "\u30A5"], [65386, 1, "\u30A7"], [65387, 1, "\u30A9"], [65388, 1, "\u30E3"], [65389, 1, "\u30E5"], [65390, 1, "\u30E7"], [65391, 1, "\u30C3"], [65392, 1, "\u30FC"], [65393, 1, "\u30A2"], [65394, 1, "\u30A4"], [65395, 1, "\u30A6"], [65396, 1, "\u30A8"], [65397, 1, "\u30AA"], [65398, 1, "\u30AB"], [65399, 1, "\u30AD"], [65400, 1, "\u30AF"], [65401, 1, "\u30B1"], [65402, 1, "\u30B3"], [65403, 1, "\u30B5"], [65404, 1, "\u30B7"], [65405, 1, "\u30B9"], [65406, 1, "\u30BB"], [65407, 1, "\u30BD"], [65408, 1, "\u30BF"], [65409, 1, "\u30C1"], [65410, 1, "\u30C4"], [65411, 1, "\u30C6"], [65412, 1, "\u30C8"], [65413, 1, "\u30CA"], [65414, 1, "\u30CB"], [65415, 1, "\u30CC"], [65416, 1, "\u30CD"], [65417, 1, "\u30CE"], [65418, 1, "\u30CF"], [65419, 1, "\u30D2"], [65420, 1, "\u30D5"], [65421, 1, "\u30D8"], [65422, 1, "\u30DB"], [65423, 1, "\u30DE"], [65424, 1, "\u30DF"], [65425, 1, "\u30E0"], [65426, 1, "\u30E1"], [65427, 1, "\u30E2"], [65428, 1, "\u30E4"], [65429, 1, "\u30E6"], [65430, 1, "\u30E8"], [65431, 1, "\u30E9"], [65432, 1, "\u30EA"], [65433, 1, "\u30EB"], [65434, 1, "\u30EC"], [65435, 1, "\u30ED"], [65436, 1, "\u30EF"], [65437, 1, "\u30F3"], [65438, 1, "\u3099"], [65439, 1, "\u309A"], [65440, 7], [65441, 1, "\u1100"], [65442, 1, "\u1101"], [65443, 1, "\u11AA"], [65444, 1, "\u1102"], [65445, 1, "\u11AC"], [65446, 1, "\u11AD"], [65447, 1, "\u1103"], [65448, 1, "\u1104"], [65449, 1, "\u1105"], [65450, 1, "\u11B0"], [65451, 1, "\u11B1"], [65452, 1, "\u11B2"], [65453, 1, "\u11B3"], [65454, 1, "\u11B4"], [65455, 1, "\u11B5"], [65456, 1, "\u111A"], [65457, 1, "\u1106"], [65458, 1, "\u1107"], [65459, 1, "\u1108"], [65460, 1, "\u1121"], [65461, 1, "\u1109"], [65462, 1, "\u110A"], [65463, 1, "\u110B"], [65464, 1, "\u110C"], [65465, 1, "\u110D"], [65466, 1, "\u110E"], [65467, 1, "\u110F"], [65468, 1, "\u1110"], [65469, 1, "\u1111"], [65470, 1, "\u1112"], [[65471, 65473], 3], [65474, 1, "\u1161"], [65475, 1, "\u1162"], [65476, 1, "\u1163"], [65477, 1, "\u1164"], [65478, 1, "\u1165"], [65479, 1, "\u1166"], [[65480, 65481], 3], [65482, 1, "\u1167"], [65483, 1, "\u1168"], [65484, 1, "\u1169"], [65485, 1, "\u116A"], [65486, 1, "\u116B"], [65487, 1, "\u116C"], [[65488, 65489], 3], [65490, 1, "\u116D"], [65491, 1, "\u116E"], [65492, 1, "\u116F"], [65493, 1, "\u1170"], [65494, 1, "\u1171"], [65495, 1, "\u1172"], [[65496, 65497], 3], [65498, 1, "\u1173"], [65499, 1, "\u1174"], [65500, 1, "\u1175"], [[65501, 65503], 3], [65504, 1, "\xA2"], [65505, 1, "\xA3"], [65506, 1, "\xAC"], [65507, 1, " \u0304"], [65508, 1, "\xA6"], [65509, 1, "\xA5"], [65510, 1, "\u20A9"], [65511, 3], [65512, 1, "\u2502"], [65513, 1, "\u2190"], [65514, 1, "\u2191"], [65515, 1, "\u2192"], [65516, 1, "\u2193"], [65517, 1, "\u25A0"], [65518, 1, "\u25CB"], [[65519, 65528], 3], [[65529, 65531], 3], [65532, 3], [65533, 3], [[65534, 65535], 3], [[65536, 65547], 2], [65548, 3], [[65549, 65574], 2], [65575, 3], [[65576, 65594], 2], [65595, 3], [[65596, 65597], 2], [65598, 3], [[65599, 65613], 2], [[65614, 65615], 3], [[65616, 65629], 2], [[65630, 65663], 3], [[65664, 65786], 2], [[65787, 65791], 3], [[65792, 65794], 2], [[65795, 65798], 3], [[65799, 65843], 2], [[65844, 65846], 3], [[65847, 65855], 2], [[65856, 65930], 2], [[65931, 65932], 2], [[65933, 65934], 2], [65935, 3], [[65936, 65947], 2], [65948, 2], [[65949, 65951], 3], [65952, 2], [[65953, 65999], 3], [[66e3, 66044], 2], [66045, 2], [[66046, 66175], 3], [[66176, 66204], 2], [[66205, 66207], 3], [[66208, 66256], 2], [[66257, 66271], 3], [66272, 2], [[66273, 66299], 2], [[66300, 66303], 3], [[66304, 66334], 2], [66335, 2], [[66336, 66339], 2], [[66340, 66348], 3], [[66349, 66351], 2], [[66352, 66368], 2], [66369, 2], [[66370, 66377], 2], [66378, 2], [[66379, 66383], 3], [[66384, 66426], 2], [[66427, 66431], 3], [[66432, 66461], 2], [66462, 3], [66463, 2], [[66464, 66499], 2], [[66500, 66503], 3], [[66504, 66511], 2], [[66512, 66517], 2], [[66518, 66559], 3], [66560, 1, "\u{10428}"], [66561, 1, "\u{10429}"], [66562, 1, "\u{1042A}"], [66563, 1, "\u{1042B}"], [66564, 1, "\u{1042C}"], [66565, 1, "\u{1042D}"], [66566, 1, "\u{1042E}"], [66567, 1, "\u{1042F}"], [66568, 1, "\u{10430}"], [66569, 1, "\u{10431}"], [66570, 1, "\u{10432}"], [66571, 1, "\u{10433}"], [66572, 1, "\u{10434}"], [66573, 1, "\u{10435}"], [66574, 1, "\u{10436}"], [66575, 1, "\u{10437}"], [66576, 1, "\u{10438}"], [66577, 1, "\u{10439}"], [66578, 1, "\u{1043A}"], [66579, 1, "\u{1043B}"], [66580, 1, "\u{1043C}"], [66581, 1, "\u{1043D}"], [66582, 1, "\u{1043E}"], [66583, 1, "\u{1043F}"], [66584, 1, "\u{10440}"], [66585, 1, "\u{10441}"], [66586, 1, "\u{10442}"], [66587, 1, "\u{10443}"], [66588, 1, "\u{10444}"], [66589, 1, "\u{10445}"], [66590, 1, "\u{10446}"], [66591, 1, "\u{10447}"], [66592, 1, "\u{10448}"], [66593, 1, "\u{10449}"], [66594, 1, "\u{1044A}"], [66595, 1, "\u{1044B}"], [66596, 1, "\u{1044C}"], [66597, 1, "\u{1044D}"], [66598, 1, "\u{1044E}"], [66599, 1, "\u{1044F}"], [[66600, 66637], 2], [[66638, 66717], 2], [[66718, 66719], 3], [[66720, 66729], 2], [[66730, 66735], 3], [66736, 1, "\u{104D8}"], [66737, 1, "\u{104D9}"], [66738, 1, "\u{104DA}"], [66739, 1, "\u{104DB}"], [66740, 1, "\u{104DC}"], [66741, 1, "\u{104DD}"], [66742, 1, "\u{104DE}"], [66743, 1, "\u{104DF}"], [66744, 1, "\u{104E0}"], [66745, 1, "\u{104E1}"], [66746, 1, "\u{104E2}"], [66747, 1, "\u{104E3}"], [66748, 1, "\u{104E4}"], [66749, 1, "\u{104E5}"], [66750, 1, "\u{104E6}"], [66751, 1, "\u{104E7}"], [66752, 1, "\u{104E8}"], [66753, 1, "\u{104E9}"], [66754, 1, "\u{104EA}"], [66755, 1, "\u{104EB}"], [66756, 1, "\u{104EC}"], [66757, 1, "\u{104ED}"], [66758, 1, "\u{104EE}"], [66759, 1, "\u{104EF}"], [66760, 1, "\u{104F0}"], [66761, 1, "\u{104F1}"], [66762, 1, "\u{104F2}"], [66763, 1, "\u{104F3}"], [66764, 1, "\u{104F4}"], [66765, 1, "\u{104F5}"], [66766, 1, "\u{104F6}"], [66767, 1, "\u{104F7}"], [66768, 1, "\u{104F8}"], [66769, 1, "\u{104F9}"], [66770, 1, "\u{104FA}"], [66771, 1, "\u{104FB}"], [[66772, 66775], 3], [[66776, 66811], 2], [[66812, 66815], 3], [[66816, 66855], 2], [[66856, 66863], 3], [[66864, 66915], 2], [[66916, 66926], 3], [66927, 2], [66928, 1, "\u{10597}"], [66929, 1, "\u{10598}"], [66930, 1, "\u{10599}"], [66931, 1, "\u{1059A}"], [66932, 1, "\u{1059B}"], [66933, 1, "\u{1059C}"], [66934, 1, "\u{1059D}"], [66935, 1, "\u{1059E}"], [66936, 1, "\u{1059F}"], [66937, 1, "\u{105A0}"], [66938, 1, "\u{105A1}"], [66939, 3], [66940, 1, "\u{105A3}"], [66941, 1, "\u{105A4}"], [66942, 1, "\u{105A5}"], [66943, 1, "\u{105A6}"], [66944, 1, "\u{105A7}"], [66945, 1, "\u{105A8}"], [66946, 1, "\u{105A9}"], [66947, 1, "\u{105AA}"], [66948, 1, "\u{105AB}"], [66949, 1, "\u{105AC}"], [66950, 1, "\u{105AD}"], [66951, 1, "\u{105AE}"], [66952, 1, "\u{105AF}"], [66953, 1, "\u{105B0}"], [66954, 1, "\u{105B1}"], [66955, 3], [66956, 1, "\u{105B3}"], [66957, 1, "\u{105B4}"], [66958, 1, "\u{105B5}"], [66959, 1, "\u{105B6}"], [66960, 1, "\u{105B7}"], [66961, 1, "\u{105B8}"], [66962, 1, "\u{105B9}"], [66963, 3], [66964, 1, "\u{105BB}"], [66965, 1, "\u{105BC}"], [66966, 3], [[66967, 66977], 2], [66978, 3], [[66979, 66993], 2], [66994, 3], [[66995, 67001], 2], [67002, 3], [[67003, 67004], 2], [[67005, 67007], 3], [[67008, 67059], 2], [[67060, 67071], 3], [[67072, 67382], 2], [[67383, 67391], 3], [[67392, 67413], 2], [[67414, 67423], 3], [[67424, 67431], 2], [[67432, 67455], 3], [67456, 2], [67457, 1, "\u02D0"], [67458, 1, "\u02D1"], [67459, 1, "\xE6"], [67460, 1, "\u0299"], [67461, 1, "\u0253"], [67462, 3], [67463, 1, "\u02A3"], [67464, 1, "\uAB66"], [67465, 1, "\u02A5"], [67466, 1, "\u02A4"], [67467, 1, "\u0256"], [67468, 1, "\u0257"], [67469, 1, "\u1D91"], [67470, 1, "\u0258"], [67471, 1, "\u025E"], [67472, 1, "\u02A9"], [67473, 1, "\u0264"], [67474, 1, "\u0262"], [67475, 1, "\u0260"], [67476, 1, "\u029B"], [67477, 1, "\u0127"], [67478, 1, "\u029C"], [67479, 1, "\u0267"], [67480, 1, "\u0284"], [67481, 1, "\u02AA"], [67482, 1, "\u02AB"], [67483, 1, "\u026C"], [67484, 1, "\u{1DF04}"], [67485, 1, "\uA78E"], [67486, 1, "\u026E"], [67487, 1, "\u{1DF05}"], [67488, 1, "\u028E"], [67489, 1, "\u{1DF06}"], [67490, 1, "\xF8"], [67491, 1, "\u0276"], [67492, 1, "\u0277"], [67493, 1, "q"], [67494, 1, "\u027A"], [67495, 1, "\u{1DF08}"], [67496, 1, "\u027D"], [67497, 1, "\u027E"], [67498, 1, "\u0280"], [67499, 1, "\u02A8"], [67500, 1, "\u02A6"], [67501, 1, "\uAB67"], [67502, 1, "\u02A7"], [67503, 1, "\u0288"], [67504, 1, "\u2C71"], [67505, 3], [67506, 1, "\u028F"], [67507, 1, "\u02A1"], [67508, 1, "\u02A2"], [67509, 1, "\u0298"], [67510, 1, "\u01C0"], [67511, 1, "\u01C1"], [67512, 1, "\u01C2"], [67513, 1, "\u{1DF0A}"], [67514, 1, "\u{1DF1E}"], [[67515, 67583], 3], [[67584, 67589], 2], [[67590, 67591], 3], [67592, 2], [67593, 3], [[67594, 67637], 2], [67638, 3], [[67639, 67640], 2], [[67641, 67643], 3], [67644, 2], [[67645, 67646], 3], [67647, 2], [[67648, 67669], 2], [67670, 3], [[67671, 67679], 2], [[67680, 67702], 2], [[67703, 67711], 2], [[67712, 67742], 2], [[67743, 67750], 3], [[67751, 67759], 2], [[67760, 67807], 3], [[67808, 67826], 2], [67827, 3], [[67828, 67829], 2], [[67830, 67834], 3], [[67835, 67839], 2], [[67840, 67861], 2], [[67862, 67865], 2], [[67866, 67867], 2], [[67868, 67870], 3], [67871, 2], [[67872, 67897], 2], [[67898, 67902], 3], [67903, 2], [[67904, 67929], 2], [[67930, 67967], 3], [[67968, 68023], 2], [[68024, 68027], 3], [[68028, 68029], 2], [[68030, 68031], 2], [[68032, 68047], 2], [[68048, 68049], 3], [[68050, 68095], 2], [[68096, 68099], 2], [68100, 3], [[68101, 68102], 2], [[68103, 68107], 3], [[68108, 68115], 2], [68116, 3], [[68117, 68119], 2], [68120, 3], [[68121, 68147], 2], [[68148, 68149], 2], [[68150, 68151], 3], [[68152, 68154], 2], [[68155, 68158], 3], [68159, 2], [[68160, 68167], 2], [68168, 2], [[68169, 68175], 3], [[68176, 68184], 2], [[68185, 68191], 3], [[68192, 68220], 2], [[68221, 68223], 2], [[68224, 68252], 2], [[68253, 68255], 2], [[68256, 68287], 3], [[68288, 68295], 2], [68296, 2], [[68297, 68326], 2], [[68327, 68330], 3], [[68331, 68342], 2], [[68343, 68351], 3], [[68352, 68405], 2], [[68406, 68408], 3], [[68409, 68415], 2], [[68416, 68437], 2], [[68438, 68439], 3], [[68440, 68447], 2], [[68448, 68466], 2], [[68467, 68471], 3], [[68472, 68479], 2], [[68480, 68497], 2], [[68498, 68504], 3], [[68505, 68508], 2], [[68509, 68520], 3], [[68521, 68527], 2], [[68528, 68607], 3], [[68608, 68680], 2], [[68681, 68735], 3], [68736, 1, "\u{10CC0}"], [68737, 1, "\u{10CC1}"], [68738, 1, "\u{10CC2}"], [68739, 1, "\u{10CC3}"], [68740, 1, "\u{10CC4}"], [68741, 1, "\u{10CC5}"], [68742, 1, "\u{10CC6}"], [68743, 1, "\u{10CC7}"], [68744, 1, "\u{10CC8}"], [68745, 1, "\u{10CC9}"], [68746, 1, "\u{10CCA}"], [68747, 1, "\u{10CCB}"], [68748, 1, "\u{10CCC}"], [68749, 1, "\u{10CCD}"], [68750, 1, "\u{10CCE}"], [68751, 1, "\u{10CCF}"], [68752, 1, "\u{10CD0}"], [68753, 1, "\u{10CD1}"], [68754, 1, "\u{10CD2}"], [68755, 1, "\u{10CD3}"], [68756, 1, "\u{10CD4}"], [68757, 1, "\u{10CD5}"], [68758, 1, "\u{10CD6}"], [68759, 1, "\u{10CD7}"], [68760, 1, "\u{10CD8}"], [68761, 1, "\u{10CD9}"], [68762, 1, "\u{10CDA}"], [68763, 1, "\u{10CDB}"], [68764, 1, "\u{10CDC}"], [68765, 1, "\u{10CDD}"], [68766, 1, "\u{10CDE}"], [68767, 1, "\u{10CDF}"], [68768, 1, "\u{10CE0}"], [68769, 1, "\u{10CE1}"], [68770, 1, "\u{10CE2}"], [68771, 1, "\u{10CE3}"], [68772, 1, "\u{10CE4}"], [68773, 1, "\u{10CE5}"], [68774, 1, "\u{10CE6}"], [68775, 1, "\u{10CE7}"], [68776, 1, "\u{10CE8}"], [68777, 1, "\u{10CE9}"], [68778, 1, "\u{10CEA}"], [68779, 1, "\u{10CEB}"], [68780, 1, "\u{10CEC}"], [68781, 1, "\u{10CED}"], [68782, 1, "\u{10CEE}"], [68783, 1, "\u{10CEF}"], [68784, 1, "\u{10CF0}"], [68785, 1, "\u{10CF1}"], [68786, 1, "\u{10CF2}"], [[68787, 68799], 3], [[68800, 68850], 2], [[68851, 68857], 3], [[68858, 68863], 2], [[68864, 68903], 2], [[68904, 68911], 3], [[68912, 68921], 2], [[68922, 68927], 3], [[68928, 68943], 2], [68944, 1, "\u{10D70}"], [68945, 1, "\u{10D71}"], [68946, 1, "\u{10D72}"], [68947, 1, "\u{10D73}"], [68948, 1, "\u{10D74}"], [68949, 1, "\u{10D75}"], [68950, 1, "\u{10D76}"], [68951, 1, "\u{10D77}"], [68952, 1, "\u{10D78}"], [68953, 1, "\u{10D79}"], [68954, 1, "\u{10D7A}"], [68955, 1, "\u{10D7B}"], [68956, 1, "\u{10D7C}"], [68957, 1, "\u{10D7D}"], [68958, 1, "\u{10D7E}"], [68959, 1, "\u{10D7F}"], [68960, 1, "\u{10D80}"], [68961, 1, "\u{10D81}"], [68962, 1, "\u{10D82}"], [68963, 1, "\u{10D83}"], [68964, 1, "\u{10D84}"], [68965, 1, "\u{10D85}"], [[68966, 68968], 3], [[68969, 68973], 2], [68974, 2], [[68975, 68997], 2], [[68998, 69005], 3], [[69006, 69007], 2], [[69008, 69215], 3], [[69216, 69246], 2], [69247, 3], [[69248, 69289], 2], [69290, 3], [[69291, 69292], 2], [69293, 2], [[69294, 69295], 3], [[69296, 69297], 2], [[69298, 69313], 3], [[69314, 69316], 2], [[69317, 69319], 2], [[69320, 69327], 3], [[69328, 69336], 2], [[69337, 69369], 3], [[69370, 69371], 2], [69372, 2], [[69373, 69375], 2], [[69376, 69404], 2], [[69405, 69414], 2], [69415, 2], [[69416, 69423], 3], [[69424, 69456], 2], [[69457, 69465], 2], [[69466, 69487], 3], [[69488, 69509], 2], [[69510, 69513], 2], [[69514, 69551], 3], [[69552, 69572], 2], [[69573, 69579], 2], [[69580, 69599], 3], [[69600, 69622], 2], [[69623, 69631], 3], [[69632, 69702], 2], [[69703, 69709], 2], [[69710, 69713], 3], [[69714, 69733], 2], [[69734, 69743], 2], [[69744, 69749], 2], [[69750, 69758], 3], [69759, 2], [[69760, 69818], 2], [[69819, 69820], 2], [69821, 3], [[69822, 69825], 2], [69826, 2], [[69827, 69836], 3], [69837, 3], [[69838, 69839], 3], [[69840, 69864], 2], [[69865, 69871], 3], [[69872, 69881], 2], [[69882, 69887], 3], [[69888, 69940], 2], [69941, 3], [[69942, 69951], 2], [[69952, 69955], 2], [[69956, 69958], 2], [69959, 2], [[69960, 69967], 3], [[69968, 70003], 2], [[70004, 70005], 2], [70006, 2], [[70007, 70015], 3], [[70016, 70084], 2], [[70085, 70088], 2], [[70089, 70092], 2], [70093, 2], [[70094, 70095], 2], [[70096, 70105], 2], [70106, 2], [70107, 2], [70108, 2], [[70109, 70111], 2], [70112, 3], [[70113, 70132], 2], [[70133, 70143], 3], [[70144, 70161], 2], [70162, 3], [[70163, 70199], 2], [[70200, 70205], 2], [70206, 2], [[70207, 70209], 2], [[70210, 70271], 3], [[70272, 70278], 2], [70279, 3], [70280, 2], [70281, 3], [[70282, 70285], 2], [70286, 3], [[70287, 70301], 2], [70302, 3], [[70303, 70312], 2], [70313, 2], [[70314, 70319], 3], [[70320, 70378], 2], [[70379, 70383], 3], [[70384, 70393], 2], [[70394, 70399], 3], [70400, 2], [[70401, 70403], 2], [70404, 3], [[70405, 70412], 2], [[70413, 70414], 3], [[70415, 70416], 2], [[70417, 70418], 3], [[70419, 70440], 2], [70441, 3], [[70442, 70448], 2], [70449, 3], [[70450, 70451], 2], [70452, 3], [[70453, 70457], 2], [70458, 3], [70459, 2], [[70460, 70468], 2], [[70469, 70470], 3], [[70471, 70472], 2], [[70473, 70474], 3], [[70475, 70477], 2], [[70478, 70479], 3], [70480, 2], [[70481, 70486], 3], [70487, 2], [[70488, 70492], 3], [[70493, 70499], 2], [[70500, 70501], 3], [[70502, 70508], 2], [[70509, 70511], 3], [[70512, 70516], 2], [[70517, 70527], 3], [[70528, 70537], 2], [70538, 3], [70539, 2], [[70540, 70541], 3], [70542, 2], [70543, 3], [[70544, 70581], 2], [70582, 3], [[70583, 70592], 2], [70593, 3], [70594, 2], [[70595, 70596], 3], [70597, 2], [70598, 3], [[70599, 70602], 2], [70603, 3], [[70604, 70611], 2], [[70612, 70613], 2], [70614, 3], [[70615, 70616], 2], [[70617, 70624], 3], [[70625, 70626], 2], [[70627, 70655], 3], [[70656, 70730], 2], [[70731, 70735], 2], [[70736, 70745], 2], [70746, 2], [70747, 2], [70748, 3], [70749, 2], [70750, 2], [70751, 2], [[70752, 70753], 2], [[70754, 70783], 3], [[70784, 70853], 2], [70854, 2], [70855, 2], [[70856, 70863], 3], [[70864, 70873], 2], [[70874, 71039], 3], [[71040, 71093], 2], [[71094, 71095], 3], [[71096, 71104], 2], [[71105, 71113], 2], [[71114, 71127], 2], [[71128, 71133], 2], [[71134, 71167], 3], [[71168, 71232], 2], [[71233, 71235], 2], [71236, 2], [[71237, 71247], 3], [[71248, 71257], 2], [[71258, 71263], 3], [[71264, 71276], 2], [[71277, 71295], 3], [[71296, 71351], 2], [71352, 2], [71353, 2], [[71354, 71359], 3], [[71360, 71369], 2], [[71370, 71375], 3], [[71376, 71395], 2], [[71396, 71423], 3], [[71424, 71449], 2], [71450, 2], [[71451, 71452], 3], [[71453, 71467], 2], [[71468, 71471], 3], [[71472, 71481], 2], [[71482, 71487], 2], [[71488, 71494], 2], [[71495, 71679], 3], [[71680, 71738], 2], [71739, 2], [[71740, 71839], 3], [71840, 1, "\u{118C0}"], [71841, 1, "\u{118C1}"], [71842, 1, "\u{118C2}"], [71843, 1, "\u{118C3}"], [71844, 1, "\u{118C4}"], [71845, 1, "\u{118C5}"], [71846, 1, "\u{118C6}"], [71847, 1, "\u{118C7}"], [71848, 1, "\u{118C8}"], [71849, 1, "\u{118C9}"], [71850, 1, "\u{118CA}"], [71851, 1, "\u{118CB}"], [71852, 1, "\u{118CC}"], [71853, 1, "\u{118CD}"], [71854, 1, "\u{118CE}"], [71855, 1, "\u{118CF}"], [71856, 1, "\u{118D0}"], [71857, 1, "\u{118D1}"], [71858, 1, "\u{118D2}"], [71859, 1, "\u{118D3}"], [71860, 1, "\u{118D4}"], [71861, 1, "\u{118D5}"], [71862, 1, "\u{118D6}"], [71863, 1, "\u{118D7}"], [71864, 1, "\u{118D8}"], [71865, 1, "\u{118D9}"], [71866, 1, "\u{118DA}"], [71867, 1, "\u{118DB}"], [71868, 1, "\u{118DC}"], [71869, 1, "\u{118DD}"], [71870, 1, "\u{118DE}"], [71871, 1, "\u{118DF}"], [[71872, 71913], 2], [[71914, 71922], 2], [[71923, 71934], 3], [71935, 2], [[71936, 71942], 2], [[71943, 71944], 3], [71945, 2], [[71946, 71947], 3], [[71948, 71955], 2], [71956, 3], [[71957, 71958], 2], [71959, 3], [[71960, 71989], 2], [71990, 3], [[71991, 71992], 2], [[71993, 71994], 3], [[71995, 72003], 2], [[72004, 72006], 2], [[72007, 72015], 3], [[72016, 72025], 2], [[72026, 72095], 3], [[72096, 72103], 2], [[72104, 72105], 3], [[72106, 72151], 2], [[72152, 72153], 3], [[72154, 72161], 2], [72162, 2], [[72163, 72164], 2], [[72165, 72191], 3], [[72192, 72254], 2], [[72255, 72262], 2], [72263, 2], [[72264, 72271], 3], [[72272, 72323], 2], [[72324, 72325], 2], [[72326, 72345], 2], [[72346, 72348], 2], [72349, 2], [[72350, 72354], 2], [[72355, 72367], 3], [[72368, 72383], 2], [[72384, 72440], 2], [[72441, 72447], 3], [[72448, 72457], 2], [[72458, 72543], 3], [[72544, 72551], 2], [[72552, 72639], 3], [[72640, 72672], 2], [72673, 2], [[72674, 72687], 3], [[72688, 72697], 2], [[72698, 72703], 3], [[72704, 72712], 2], [72713, 3], [[72714, 72758], 2], [72759, 3], [[72760, 72768], 2], [[72769, 72773], 2], [[72774, 72783], 3], [[72784, 72793], 2], [[72794, 72812], 2], [[72813, 72815], 3], [[72816, 72817], 2], [[72818, 72847], 2], [[72848, 72849], 3], [[72850, 72871], 2], [72872, 3], [[72873, 72886], 2], [[72887, 72959], 3], [[72960, 72966], 2], [72967, 3], [[72968, 72969], 2], [72970, 3], [[72971, 73014], 2], [[73015, 73017], 3], [73018, 2], [73019, 3], [[73020, 73021], 2], [73022, 3], [[73023, 73031], 2], [[73032, 73039], 3], [[73040, 73049], 2], [[73050, 73055], 3], [[73056, 73061], 2], [73062, 3], [[73063, 73064], 2], [73065, 3], [[73066, 73102], 2], [73103, 3], [[73104, 73105], 2], [73106, 3], [[73107, 73112], 2], [[73113, 73119], 3], [[73120, 73129], 2], [[73130, 73135], 3], [[73136, 73179], 2], [[73180, 73183], 3], [[73184, 73193], 2], [[73194, 73439], 3], [[73440, 73462], 2], [[73463, 73464], 2], [[73465, 73471], 3], [[73472, 73488], 2], [73489, 3], [[73490, 73530], 2], [[73531, 73533], 3], [[73534, 73538], 2], [[73539, 73551], 2], [[73552, 73561], 2], [73562, 2], [[73563, 73647], 3], [73648, 2], [[73649, 73663], 3], [[73664, 73713], 2], [[73714, 73726], 3], [73727, 2], [[73728, 74606], 2], [[74607, 74648], 2], [74649, 2], [[74650, 74751], 3], [[74752, 74850], 2], [[74851, 74862], 2], [74863, 3], [[74864, 74867], 2], [74868, 2], [[74869, 74879], 3], [[74880, 75075], 2], [[75076, 77711], 3], [[77712, 77808], 2], [[77809, 77810], 2], [[77811, 77823], 3], [[77824, 78894], 2], [78895, 2], [[78896, 78904], 3], [[78905, 78911], 3], [[78912, 78933], 2], [[78934, 78943], 3], [[78944, 82938], 2], [[82939, 82943], 3], [[82944, 83526], 2], [[83527, 90367], 3], [[90368, 90425], 2], [[90426, 92159], 3], [[92160, 92728], 2], [[92729, 92735], 3], [[92736, 92766], 2], [92767, 3], [[92768, 92777], 2], [[92778, 92781], 3], [[92782, 92783], 2], [[92784, 92862], 2], [92863, 3], [[92864, 92873], 2], [[92874, 92879], 3], [[92880, 92909], 2], [[92910, 92911], 3], [[92912, 92916], 2], [92917, 2], [[92918, 92927], 3], [[92928, 92982], 2], [[92983, 92991], 2], [[92992, 92995], 2], [[92996, 92997], 2], [[92998, 93007], 3], [[93008, 93017], 2], [93018, 3], [[93019, 93025], 2], [93026, 3], [[93027, 93047], 2], [[93048, 93052], 3], [[93053, 93071], 2], [[93072, 93503], 3], [[93504, 93548], 2], [[93549, 93551], 2], [[93552, 93561], 2], [[93562, 93759], 3], [93760, 1, "\u{16E60}"], [93761, 1, "\u{16E61}"], [93762, 1, "\u{16E62}"], [93763, 1, "\u{16E63}"], [93764, 1, "\u{16E64}"], [93765, 1, "\u{16E65}"], [93766, 1, "\u{16E66}"], [93767, 1, "\u{16E67}"], [93768, 1, "\u{16E68}"], [93769, 1, "\u{16E69}"], [93770, 1, "\u{16E6A}"], [93771, 1, "\u{16E6B}"], [93772, 1, "\u{16E6C}"], [93773, 1, "\u{16E6D}"], [93774, 1, "\u{16E6E}"], [93775, 1, "\u{16E6F}"], [93776, 1, "\u{16E70}"], [93777, 1, "\u{16E71}"], [93778, 1, "\u{16E72}"], [93779, 1, "\u{16E73}"], [93780, 1, "\u{16E74}"], [93781, 1, "\u{16E75}"], [93782, 1, "\u{16E76}"], [93783, 1, "\u{16E77}"], [93784, 1, "\u{16E78}"], [93785, 1, "\u{16E79}"], [93786, 1, "\u{16E7A}"], [93787, 1, "\u{16E7B}"], [93788, 1, "\u{16E7C}"], [93789, 1, "\u{16E7D}"], [93790, 1, "\u{16E7E}"], [93791, 1, "\u{16E7F}"], [[93792, 93823], 2], [[93824, 93850], 2], [[93851, 93855], 3], [93856, 1, "\u{16EBB}"], [93857, 1, "\u{16EBC}"], [93858, 1, "\u{16EBD}"], [93859, 1, "\u{16EBE}"], [93860, 1, "\u{16EBF}"], [93861, 1, "\u{16EC0}"], [93862, 1, "\u{16EC1}"], [93863, 1, "\u{16EC2}"], [93864, 1, "\u{16EC3}"], [93865, 1, "\u{16EC4}"], [93866, 1, "\u{16EC5}"], [93867, 1, "\u{16EC6}"], [93868, 1, "\u{16EC7}"], [93869, 1, "\u{16EC8}"], [93870, 1, "\u{16EC9}"], [93871, 1, "\u{16ECA}"], [93872, 1, "\u{16ECB}"], [93873, 1, "\u{16ECC}"], [93874, 1, "\u{16ECD}"], [93875, 1, "\u{16ECE}"], [93876, 1, "\u{16ECF}"], [93877, 1, "\u{16ED0}"], [93878, 1, "\u{16ED1}"], [93879, 1, "\u{16ED2}"], [93880, 1, "\u{16ED3}"], [[93881, 93882], 3], [[93883, 93907], 2], [[93908, 93951], 3], [[93952, 94020], 2], [[94021, 94026], 2], [[94027, 94030], 3], [94031, 2], [[94032, 94078], 2], [[94079, 94087], 2], [[94088, 94094], 3], [[94095, 94111], 2], [[94112, 94175], 3], [94176, 2], [94177, 2], [94178, 2], [94179, 2], [94180, 2], [[94181, 94191], 3], [[94192, 94193], 2], [[94194, 94195], 2], [[94196, 94198], 2], [[94199, 94207], 3], [[94208, 100332], 2], [[100333, 100337], 2], [[100338, 100343], 2], [[100344, 100351], 2], [[100352, 101106], 2], [[101107, 101589], 2], [[101590, 101630], 3], [101631, 2], [[101632, 101640], 2], [[101641, 101662], 2], [[101663, 101759], 3], [[101760, 101874], 2], [[101875, 110575], 3], [[110576, 110579], 2], [110580, 3], [[110581, 110587], 2], [110588, 3], [[110589, 110590], 2], [110591, 3], [[110592, 110593], 2], [[110594, 110878], 2], [[110879, 110882], 2], [[110883, 110897], 3], [110898, 2], [[110899, 110927], 3], [[110928, 110930], 2], [[110931, 110932], 3], [110933, 2], [[110934, 110947], 3], [[110948, 110951], 2], [[110952, 110959], 3], [[110960, 111355], 2], [[111356, 113663], 3], [[113664, 113770], 2], [[113771, 113775], 3], [[113776, 113788], 2], [[113789, 113791], 3], [[113792, 113800], 2], [[113801, 113807], 3], [[113808, 113817], 2], [[113818, 113819], 3], [113820, 2], [[113821, 113822], 2], [113823, 2], [[113824, 113827], 7], [[113828, 117759], 3], [[117760, 117973], 2], [117974, 1, "a"], [117975, 1, "b"], [117976, 1, "c"], [117977, 1, "d"], [117978, 1, "e"], [117979, 1, "f"], [117980, 1, "g"], [117981, 1, "h"], [117982, 1, "i"], [117983, 1, "j"], [117984, 1, "k"], [117985, 1, "l"], [117986, 1, "m"], [117987, 1, "n"], [117988, 1, "o"], [117989, 1, "p"], [117990, 1, "q"], [117991, 1, "r"], [117992, 1, "s"], [117993, 1, "t"], [117994, 1, "u"], [117995, 1, "v"], [117996, 1, "w"], [117997, 1, "x"], [117998, 1, "y"], [117999, 1, "z"], [118e3, 1, "0"], [118001, 1, "1"], [118002, 1, "2"], [118003, 1, "3"], [118004, 1, "4"], [118005, 1, "5"], [118006, 1, "6"], [118007, 1, "7"], [118008, 1, "8"], [118009, 1, "9"], [[118010, 118012], 2], [[118013, 118015], 3], [[118016, 118451], 2], [[118452, 118457], 3], [[118458, 118480], 2], [[118481, 118495], 3], [[118496, 118512], 2], [[118513, 118527], 3], [[118528, 118573], 2], [[118574, 118575], 3], [[118576, 118598], 2], [[118599, 118607], 3], [[118608, 118723], 2], [[118724, 118783], 3], [[118784, 119029], 2], [[119030, 119039], 3], [[119040, 119078], 2], [[119079, 119080], 3], [119081, 2], [[119082, 119133], 2], [119134, 1, "\u{1D157}\u{1D165}"], [119135, 1, "\u{1D158}\u{1D165}"], [119136, 1, "\u{1D158}\u{1D165}\u{1D16E}"], [119137, 1, "\u{1D158}\u{1D165}\u{1D16F}"], [119138, 1, "\u{1D158}\u{1D165}\u{1D170}"], [119139, 1, "\u{1D158}\u{1D165}\u{1D171}"], [119140, 1, "\u{1D158}\u{1D165}\u{1D172}"], [[119141, 119154], 2], [[119155, 119162], 7], [[119163, 119226], 2], [119227, 1, "\u{1D1B9}\u{1D165}"], [119228, 1, "\u{1D1BA}\u{1D165}"], [119229, 1, "\u{1D1B9}\u{1D165}\u{1D16E}"], [119230, 1, "\u{1D1BA}\u{1D165}\u{1D16E}"], [119231, 1, "\u{1D1B9}\u{1D165}\u{1D16F}"], [119232, 1, "\u{1D1BA}\u{1D165}\u{1D16F}"], [[119233, 119261], 2], [[119262, 119272], 2], [[119273, 119274], 2], [[119275, 119295], 3], [[119296, 119365], 2], [[119366, 119487], 3], [[119488, 119507], 2], [[119508, 119519], 3], [[119520, 119539], 2], [[119540, 119551], 3], [[119552, 119638], 2], [[119639, 119647], 3], [[119648, 119665], 2], [[119666, 119672], 2], [[119673, 119807], 3], [119808, 1, "a"], [119809, 1, "b"], [119810, 1, "c"], [119811, 1, "d"], [119812, 1, "e"], [119813, 1, "f"], [119814, 1, "g"], [119815, 1, "h"], [119816, 1, "i"], [119817, 1, "j"], [119818, 1, "k"], [119819, 1, "l"], [119820, 1, "m"], [119821, 1, "n"], [119822, 1, "o"], [119823, 1, "p"], [119824, 1, "q"], [119825, 1, "r"], [119826, 1, "s"], [119827, 1, "t"], [119828, 1, "u"], [119829, 1, "v"], [119830, 1, "w"], [119831, 1, "x"], [119832, 1, "y"], [119833, 1, "z"], [119834, 1, "a"], [119835, 1, "b"], [119836, 1, "c"], [119837, 1, "d"], [119838, 1, "e"], [119839, 1, "f"], [119840, 1, "g"], [119841, 1, "h"], [119842, 1, "i"], [119843, 1, "j"], [119844, 1, "k"], [119845, 1, "l"], [119846, 1, "m"], [119847, 1, "n"], [119848, 1, "o"], [119849, 1, "p"], [119850, 1, "q"], [119851, 1, "r"], [119852, 1, "s"], [119853, 1, "t"], [119854, 1, "u"], [119855, 1, "v"], [119856, 1, "w"], [119857, 1, "x"], [119858, 1, "y"], [119859, 1, "z"], [119860, 1, "a"], [119861, 1, "b"], [119862, 1, "c"], [119863, 1, "d"], [119864, 1, "e"], [119865, 1, "f"], [119866, 1, "g"], [119867, 1, "h"], [119868, 1, "i"], [119869, 1, "j"], [119870, 1, "k"], [119871, 1, "l"], [119872, 1, "m"], [119873, 1, "n"], [119874, 1, "o"], [119875, 1, "p"], [119876, 1, "q"], [119877, 1, "r"], [119878, 1, "s"], [119879, 1, "t"], [119880, 1, "u"], [119881, 1, "v"], [119882, 1, "w"], [119883, 1, "x"], [119884, 1, "y"], [119885, 1, "z"], [119886, 1, "a"], [119887, 1, "b"], [119888, 1, "c"], [119889, 1, "d"], [119890, 1, "e"], [119891, 1, "f"], [119892, 1, "g"], [119893, 3], [119894, 1, "i"], [119895, 1, "j"], [119896, 1, "k"], [119897, 1, "l"], [119898, 1, "m"], [119899, 1, "n"], [119900, 1, "o"], [119901, 1, "p"], [119902, 1, "q"], [119903, 1, "r"], [119904, 1, "s"], [119905, 1, "t"], [119906, 1, "u"], [119907, 1, "v"], [119908, 1, "w"], [119909, 1, "x"], [119910, 1, "y"], [119911, 1, "z"], [119912, 1, "a"], [119913, 1, "b"], [119914, 1, "c"], [119915, 1, "d"], [119916, 1, "e"], [119917, 1, "f"], [119918, 1, "g"], [119919, 1, "h"], [119920, 1, "i"], [119921, 1, "j"], [119922, 1, "k"], [119923, 1, "l"], [119924, 1, "m"], [119925, 1, "n"], [119926, 1, "o"], [119927, 1, "p"], [119928, 1, "q"], [119929, 1, "r"], [119930, 1, "s"], [119931, 1, "t"], [119932, 1, "u"], [119933, 1, "v"], [119934, 1, "w"], [119935, 1, "x"], [119936, 1, "y"], [119937, 1, "z"], [119938, 1, "a"], [119939, 1, "b"], [119940, 1, "c"], [119941, 1, "d"], [119942, 1, "e"], [119943, 1, "f"], [119944, 1, "g"], [119945, 1, "h"], [119946, 1, "i"], [119947, 1, "j"], [119948, 1, "k"], [119949, 1, "l"], [119950, 1, "m"], [119951, 1, "n"], [119952, 1, "o"], [119953, 1, "p"], [119954, 1, "q"], [119955, 1, "r"], [119956, 1, "s"], [119957, 1, "t"], [119958, 1, "u"], [119959, 1, "v"], [119960, 1, "w"], [119961, 1, "x"], [119962, 1, "y"], [119963, 1, "z"], [119964, 1, "a"], [119965, 3], [119966, 1, "c"], [119967, 1, "d"], [[119968, 119969], 3], [119970, 1, "g"], [[119971, 119972], 3], [119973, 1, "j"], [119974, 1, "k"], [[119975, 119976], 3], [119977, 1, "n"], [119978, 1, "o"], [119979, 1, "p"], [119980, 1, "q"], [119981, 3], [119982, 1, "s"], [119983, 1, "t"], [119984, 1, "u"], [119985, 1, "v"], [119986, 1, "w"], [119987, 1, "x"], [119988, 1, "y"], [119989, 1, "z"], [119990, 1, "a"], [119991, 1, "b"], [119992, 1, "c"], [119993, 1, "d"], [119994, 3], [119995, 1, "f"], [119996, 3], [119997, 1, "h"], [119998, 1, "i"], [119999, 1, "j"], [12e4, 1, "k"], [120001, 1, "l"], [120002, 1, "m"], [120003, 1, "n"], [120004, 3], [120005, 1, "p"], [120006, 1, "q"], [120007, 1, "r"], [120008, 1, "s"], [120009, 1, "t"], [120010, 1, "u"], [120011, 1, "v"], [120012, 1, "w"], [120013, 1, "x"], [120014, 1, "y"], [120015, 1, "z"], [120016, 1, "a"], [120017, 1, "b"], [120018, 1, "c"], [120019, 1, "d"], [120020, 1, "e"], [120021, 1, "f"], [120022, 1, "g"], [120023, 1, "h"], [120024, 1, "i"], [120025, 1, "j"], [120026, 1, "k"], [120027, 1, "l"], [120028, 1, "m"], [120029, 1, "n"], [120030, 1, "o"], [120031, 1, "p"], [120032, 1, "q"], [120033, 1, "r"], [120034, 1, "s"], [120035, 1, "t"], [120036, 1, "u"], [120037, 1, "v"], [120038, 1, "w"], [120039, 1, "x"], [120040, 1, "y"], [120041, 1, "z"], [120042, 1, "a"], [120043, 1, "b"], [120044, 1, "c"], [120045, 1, "d"], [120046, 1, "e"], [120047, 1, "f"], [120048, 1, "g"], [120049, 1, "h"], [120050, 1, "i"], [120051, 1, "j"], [120052, 1, "k"], [120053, 1, "l"], [120054, 1, "m"], [120055, 1, "n"], [120056, 1, "o"], [120057, 1, "p"], [120058, 1, "q"], [120059, 1, "r"], [120060, 1, "s"], [120061, 1, "t"], [120062, 1, "u"], [120063, 1, "v"], [120064, 1, "w"], [120065, 1, "x"], [120066, 1, "y"], [120067, 1, "z"], [120068, 1, "a"], [120069, 1, "b"], [120070, 3], [120071, 1, "d"], [120072, 1, "e"], [120073, 1, "f"], [120074, 1, "g"], [[120075, 120076], 3], [120077, 1, "j"], [120078, 1, "k"], [120079, 1, "l"], [120080, 1, "m"], [120081, 1, "n"], [120082, 1, "o"], [120083, 1, "p"], [120084, 1, "q"], [120085, 3], [120086, 1, "s"], [120087, 1, "t"], [120088, 1, "u"], [120089, 1, "v"], [120090, 1, "w"], [120091, 1, "x"], [120092, 1, "y"], [120093, 3], [120094, 1, "a"], [120095, 1, "b"], [120096, 1, "c"], [120097, 1, "d"], [120098, 1, "e"], [120099, 1, "f"], [120100, 1, "g"], [120101, 1, "h"], [120102, 1, "i"], [120103, 1, "j"], [120104, 1, "k"], [120105, 1, "l"], [120106, 1, "m"], [120107, 1, "n"], [120108, 1, "o"], [120109, 1, "p"], [120110, 1, "q"], [120111, 1, "r"], [120112, 1, "s"], [120113, 1, "t"], [120114, 1, "u"], [120115, 1, "v"], [120116, 1, "w"], [120117, 1, "x"], [120118, 1, "y"], [120119, 1, "z"], [120120, 1, "a"], [120121, 1, "b"], [120122, 3], [120123, 1, "d"], [120124, 1, "e"], [120125, 1, "f"], [120126, 1, "g"], [120127, 3], [120128, 1, "i"], [120129, 1, "j"], [120130, 1, "k"], [120131, 1, "l"], [120132, 1, "m"], [120133, 3], [120134, 1, "o"], [[120135, 120137], 3], [120138, 1, "s"], [120139, 1, "t"], [120140, 1, "u"], [120141, 1, "v"], [120142, 1, "w"], [120143, 1, "x"], [120144, 1, "y"], [120145, 3], [120146, 1, "a"], [120147, 1, "b"], [120148, 1, "c"], [120149, 1, "d"], [120150, 1, "e"], [120151, 1, "f"], [120152, 1, "g"], [120153, 1, "h"], [120154, 1, "i"], [120155, 1, "j"], [120156, 1, "k"], [120157, 1, "l"], [120158, 1, "m"], [120159, 1, "n"], [120160, 1, "o"], [120161, 1, "p"], [120162, 1, "q"], [120163, 1, "r"], [120164, 1, "s"], [120165, 1, "t"], [120166, 1, "u"], [120167, 1, "v"], [120168, 1, "w"], [120169, 1, "x"], [120170, 1, "y"], [120171, 1, "z"], [120172, 1, "a"], [120173, 1, "b"], [120174, 1, "c"], [120175, 1, "d"], [120176, 1, "e"], [120177, 1, "f"], [120178, 1, "g"], [120179, 1, "h"], [120180, 1, "i"], [120181, 1, "j"], [120182, 1, "k"], [120183, 1, "l"], [120184, 1, "m"], [120185, 1, "n"], [120186, 1, "o"], [120187, 1, "p"], [120188, 1, "q"], [120189, 1, "r"], [120190, 1, "s"], [120191, 1, "t"], [120192, 1, "u"], [120193, 1, "v"], [120194, 1, "w"], [120195, 1, "x"], [120196, 1, "y"], [120197, 1, "z"], [120198, 1, "a"], [120199, 1, "b"], [120200, 1, "c"], [120201, 1, "d"], [120202, 1, "e"], [120203, 1, "f"], [120204, 1, "g"], [120205, 1, "h"], [120206, 1, "i"], [120207, 1, "j"], [120208, 1, "k"], [120209, 1, "l"], [120210, 1, "m"], [120211, 1, "n"], [120212, 1, "o"], [120213, 1, "p"], [120214, 1, "q"], [120215, 1, "r"], [120216, 1, "s"], [120217, 1, "t"], [120218, 1, "u"], [120219, 1, "v"], [120220, 1, "w"], [120221, 1, "x"], [120222, 1, "y"], [120223, 1, "z"], [120224, 1, "a"], [120225, 1, "b"], [120226, 1, "c"], [120227, 1, "d"], [120228, 1, "e"], [120229, 1, "f"], [120230, 1, "g"], [120231, 1, "h"], [120232, 1, "i"], [120233, 1, "j"], [120234, 1, "k"], [120235, 1, "l"], [120236, 1, "m"], [120237, 1, "n"], [120238, 1, "o"], [120239, 1, "p"], [120240, 1, "q"], [120241, 1, "r"], [120242, 1, "s"], [120243, 1, "t"], [120244, 1, "u"], [120245, 1, "v"], [120246, 1, "w"], [120247, 1, "x"], [120248, 1, "y"], [120249, 1, "z"], [120250, 1, "a"], [120251, 1, "b"], [120252, 1, "c"], [120253, 1, "d"], [120254, 1, "e"], [120255, 1, "f"], [120256, 1, "g"], [120257, 1, "h"], [120258, 1, "i"], [120259, 1, "j"], [120260, 1, "k"], [120261, 1, "l"], [120262, 1, "m"], [120263, 1, "n"], [120264, 1, "o"], [120265, 1, "p"], [120266, 1, "q"], [120267, 1, "r"], [120268, 1, "s"], [120269, 1, "t"], [120270, 1, "u"], [120271, 1, "v"], [120272, 1, "w"], [120273, 1, "x"], [120274, 1, "y"], [120275, 1, "z"], [120276, 1, "a"], [120277, 1, "b"], [120278, 1, "c"], [120279, 1, "d"], [120280, 1, "e"], [120281, 1, "f"], [120282, 1, "g"], [120283, 1, "h"], [120284, 1, "i"], [120285, 1, "j"], [120286, 1, "k"], [120287, 1, "l"], [120288, 1, "m"], [120289, 1, "n"], [120290, 1, "o"], [120291, 1, "p"], [120292, 1, "q"], [120293, 1, "r"], [120294, 1, "s"], [120295, 1, "t"], [120296, 1, "u"], [120297, 1, "v"], [120298, 1, "w"], [120299, 1, "x"], [120300, 1, "y"], [120301, 1, "z"], [120302, 1, "a"], [120303, 1, "b"], [120304, 1, "c"], [120305, 1, "d"], [120306, 1, "e"], [120307, 1, "f"], [120308, 1, "g"], [120309, 1, "h"], [120310, 1, "i"], [120311, 1, "j"], [120312, 1, "k"], [120313, 1, "l"], [120314, 1, "m"], [120315, 1, "n"], [120316, 1, "o"], [120317, 1, "p"], [120318, 1, "q"], [120319, 1, "r"], [120320, 1, "s"], [120321, 1, "t"], [120322, 1, "u"], [120323, 1, "v"], [120324, 1, "w"], [120325, 1, "x"], [120326, 1, "y"], [120327, 1, "z"], [120328, 1, "a"], [120329, 1, "b"], [120330, 1, "c"], [120331, 1, "d"], [120332, 1, "e"], [120333, 1, "f"], [120334, 1, "g"], [120335, 1, "h"], [120336, 1, "i"], [120337, 1, "j"], [120338, 1, "k"], [120339, 1, "l"], [120340, 1, "m"], [120341, 1, "n"], [120342, 1, "o"], [120343, 1, "p"], [120344, 1, "q"], [120345, 1, "r"], [120346, 1, "s"], [120347, 1, "t"], [120348, 1, "u"], [120349, 1, "v"], [120350, 1, "w"], [120351, 1, "x"], [120352, 1, "y"], [120353, 1, "z"], [120354, 1, "a"], [120355, 1, "b"], [120356, 1, "c"], [120357, 1, "d"], [120358, 1, "e"], [120359, 1, "f"], [120360, 1, "g"], [120361, 1, "h"], [120362, 1, "i"], [120363, 1, "j"], [120364, 1, "k"], [120365, 1, "l"], [120366, 1, "m"], [120367, 1, "n"], [120368, 1, "o"], [120369, 1, "p"], [120370, 1, "q"], [120371, 1, "r"], [120372, 1, "s"], [120373, 1, "t"], [120374, 1, "u"], [120375, 1, "v"], [120376, 1, "w"], [120377, 1, "x"], [120378, 1, "y"], [120379, 1, "z"], [120380, 1, "a"], [120381, 1, "b"], [120382, 1, "c"], [120383, 1, "d"], [120384, 1, "e"], [120385, 1, "f"], [120386, 1, "g"], [120387, 1, "h"], [120388, 1, "i"], [120389, 1, "j"], [120390, 1, "k"], [120391, 1, "l"], [120392, 1, "m"], [120393, 1, "n"], [120394, 1, "o"], [120395, 1, "p"], [120396, 1, "q"], [120397, 1, "r"], [120398, 1, "s"], [120399, 1, "t"], [120400, 1, "u"], [120401, 1, "v"], [120402, 1, "w"], [120403, 1, "x"], [120404, 1, "y"], [120405, 1, "z"], [120406, 1, "a"], [120407, 1, "b"], [120408, 1, "c"], [120409, 1, "d"], [120410, 1, "e"], [120411, 1, "f"], [120412, 1, "g"], [120413, 1, "h"], [120414, 1, "i"], [120415, 1, "j"], [120416, 1, "k"], [120417, 1, "l"], [120418, 1, "m"], [120419, 1, "n"], [120420, 1, "o"], [120421, 1, "p"], [120422, 1, "q"], [120423, 1, "r"], [120424, 1, "s"], [120425, 1, "t"], [120426, 1, "u"], [120427, 1, "v"], [120428, 1, "w"], [120429, 1, "x"], [120430, 1, "y"], [120431, 1, "z"], [120432, 1, "a"], [120433, 1, "b"], [120434, 1, "c"], [120435, 1, "d"], [120436, 1, "e"], [120437, 1, "f"], [120438, 1, "g"], [120439, 1, "h"], [120440, 1, "i"], [120441, 1, "j"], [120442, 1, "k"], [120443, 1, "l"], [120444, 1, "m"], [120445, 1, "n"], [120446, 1, "o"], [120447, 1, "p"], [120448, 1, "q"], [120449, 1, "r"], [120450, 1, "s"], [120451, 1, "t"], [120452, 1, "u"], [120453, 1, "v"], [120454, 1, "w"], [120455, 1, "x"], [120456, 1, "y"], [120457, 1, "z"], [120458, 1, "a"], [120459, 1, "b"], [120460, 1, "c"], [120461, 1, "d"], [120462, 1, "e"], [120463, 1, "f"], [120464, 1, "g"], [120465, 1, "h"], [120466, 1, "i"], [120467, 1, "j"], [120468, 1, "k"], [120469, 1, "l"], [120470, 1, "m"], [120471, 1, "n"], [120472, 1, "o"], [120473, 1, "p"], [120474, 1, "q"], [120475, 1, "r"], [120476, 1, "s"], [120477, 1, "t"], [120478, 1, "u"], [120479, 1, "v"], [120480, 1, "w"], [120481, 1, "x"], [120482, 1, "y"], [120483, 1, "z"], [120484, 1, "\u0131"], [120485, 1, "\u0237"], [[120486, 120487], 3], [120488, 1, "\u03B1"], [120489, 1, "\u03B2"], [120490, 1, "\u03B3"], [120491, 1, "\u03B4"], [120492, 1, "\u03B5"], [120493, 1, "\u03B6"], [120494, 1, "\u03B7"], [120495, 1, "\u03B8"], [120496, 1, "\u03B9"], [120497, 1, "\u03BA"], [120498, 1, "\u03BB"], [120499, 1, "\u03BC"], [120500, 1, "\u03BD"], [120501, 1, "\u03BE"], [120502, 1, "\u03BF"], [120503, 1, "\u03C0"], [120504, 1, "\u03C1"], [120505, 1, "\u03B8"], [120506, 1, "\u03C3"], [120507, 1, "\u03C4"], [120508, 1, "\u03C5"], [120509, 1, "\u03C6"], [120510, 1, "\u03C7"], [120511, 1, "\u03C8"], [120512, 1, "\u03C9"], [120513, 1, "\u2207"], [120514, 1, "\u03B1"], [120515, 1, "\u03B2"], [120516, 1, "\u03B3"], [120517, 1, "\u03B4"], [120518, 1, "\u03B5"], [120519, 1, "\u03B6"], [120520, 1, "\u03B7"], [120521, 1, "\u03B8"], [120522, 1, "\u03B9"], [120523, 1, "\u03BA"], [120524, 1, "\u03BB"], [120525, 1, "\u03BC"], [120526, 1, "\u03BD"], [120527, 1, "\u03BE"], [120528, 1, "\u03BF"], [120529, 1, "\u03C0"], [120530, 1, "\u03C1"], [[120531, 120532], 1, "\u03C3"], [120533, 1, "\u03C4"], [120534, 1, "\u03C5"], [120535, 1, "\u03C6"], [120536, 1, "\u03C7"], [120537, 1, "\u03C8"], [120538, 1, "\u03C9"], [120539, 1, "\u2202"], [120540, 1, "\u03B5"], [120541, 1, "\u03B8"], [120542, 1, "\u03BA"], [120543, 1, "\u03C6"], [120544, 1, "\u03C1"], [120545, 1, "\u03C0"], [120546, 1, "\u03B1"], [120547, 1, "\u03B2"], [120548, 1, "\u03B3"], [120549, 1, "\u03B4"], [120550, 1, "\u03B5"], [120551, 1, "\u03B6"], [120552, 1, "\u03B7"], [120553, 1, "\u03B8"], [120554, 1, "\u03B9"], [120555, 1, "\u03BA"], [120556, 1, "\u03BB"], [120557, 1, "\u03BC"], [120558, 1, "\u03BD"], [120559, 1, "\u03BE"], [120560, 1, "\u03BF"], [120561, 1, "\u03C0"], [120562, 1, "\u03C1"], [120563, 1, "\u03B8"], [120564, 1, "\u03C3"], [120565, 1, "\u03C4"], [120566, 1, "\u03C5"], [120567, 1, "\u03C6"], [120568, 1, "\u03C7"], [120569, 1, "\u03C8"], [120570, 1, "\u03C9"], [120571, 1, "\u2207"], [120572, 1, "\u03B1"], [120573, 1, "\u03B2"], [120574, 1, "\u03B3"], [120575, 1, "\u03B4"], [120576, 1, "\u03B5"], [120577, 1, "\u03B6"], [120578, 1, "\u03B7"], [120579, 1, "\u03B8"], [120580, 1, "\u03B9"], [120581, 1, "\u03BA"], [120582, 1, "\u03BB"], [120583, 1, "\u03BC"], [120584, 1, "\u03BD"], [120585, 1, "\u03BE"], [120586, 1, "\u03BF"], [120587, 1, "\u03C0"], [120588, 1, "\u03C1"], [[120589, 120590], 1, "\u03C3"], [120591, 1, "\u03C4"], [120592, 1, "\u03C5"], [120593, 1, "\u03C6"], [120594, 1, "\u03C7"], [120595, 1, "\u03C8"], [120596, 1, "\u03C9"], [120597, 1, "\u2202"], [120598, 1, "\u03B5"], [120599, 1, "\u03B8"], [120600, 1, "\u03BA"], [120601, 1, "\u03C6"], [120602, 1, "\u03C1"], [120603, 1, "\u03C0"], [120604, 1, "\u03B1"], [120605, 1, "\u03B2"], [120606, 1, "\u03B3"], [120607, 1, "\u03B4"], [120608, 1, "\u03B5"], [120609, 1, "\u03B6"], [120610, 1, "\u03B7"], [120611, 1, "\u03B8"], [120612, 1, "\u03B9"], [120613, 1, "\u03BA"], [120614, 1, "\u03BB"], [120615, 1, "\u03BC"], [120616, 1, "\u03BD"], [120617, 1, "\u03BE"], [120618, 1, "\u03BF"], [120619, 1, "\u03C0"], [120620, 1, "\u03C1"], [120621, 1, "\u03B8"], [120622, 1, "\u03C3"], [120623, 1, "\u03C4"], [120624, 1, "\u03C5"], [120625, 1, "\u03C6"], [120626, 1, "\u03C7"], [120627, 1, "\u03C8"], [120628, 1, "\u03C9"], [120629, 1, "\u2207"], [120630, 1, "\u03B1"], [120631, 1, "\u03B2"], [120632, 1, "\u03B3"], [120633, 1, "\u03B4"], [120634, 1, "\u03B5"], [120635, 1, "\u03B6"], [120636, 1, "\u03B7"], [120637, 1, "\u03B8"], [120638, 1, "\u03B9"], [120639, 1, "\u03BA"], [120640, 1, "\u03BB"], [120641, 1, "\u03BC"], [120642, 1, "\u03BD"], [120643, 1, "\u03BE"], [120644, 1, "\u03BF"], [120645, 1, "\u03C0"], [120646, 1, "\u03C1"], [[120647, 120648], 1, "\u03C3"], [120649, 1, "\u03C4"], [120650, 1, "\u03C5"], [120651, 1, "\u03C6"], [120652, 1, "\u03C7"], [120653, 1, "\u03C8"], [120654, 1, "\u03C9"], [120655, 1, "\u2202"], [120656, 1, "\u03B5"], [120657, 1, "\u03B8"], [120658, 1, "\u03BA"], [120659, 1, "\u03C6"], [120660, 1, "\u03C1"], [120661, 1, "\u03C0"], [120662, 1, "\u03B1"], [120663, 1, "\u03B2"], [120664, 1, "\u03B3"], [120665, 1, "\u03B4"], [120666, 1, "\u03B5"], [120667, 1, "\u03B6"], [120668, 1, "\u03B7"], [120669, 1, "\u03B8"], [120670, 1, "\u03B9"], [120671, 1, "\u03BA"], [120672, 1, "\u03BB"], [120673, 1, "\u03BC"], [120674, 1, "\u03BD"], [120675, 1, "\u03BE"], [120676, 1, "\u03BF"], [120677, 1, "\u03C0"], [120678, 1, "\u03C1"], [120679, 1, "\u03B8"], [120680, 1, "\u03C3"], [120681, 1, "\u03C4"], [120682, 1, "\u03C5"], [120683, 1, "\u03C6"], [120684, 1, "\u03C7"], [120685, 1, "\u03C8"], [120686, 1, "\u03C9"], [120687, 1, "\u2207"], [120688, 1, "\u03B1"], [120689, 1, "\u03B2"], [120690, 1, "\u03B3"], [120691, 1, "\u03B4"], [120692, 1, "\u03B5"], [120693, 1, "\u03B6"], [120694, 1, "\u03B7"], [120695, 1, "\u03B8"], [120696, 1, "\u03B9"], [120697, 1, "\u03BA"], [120698, 1, "\u03BB"], [120699, 1, "\u03BC"], [120700, 1, "\u03BD"], [120701, 1, "\u03BE"], [120702, 1, "\u03BF"], [120703, 1, "\u03C0"], [120704, 1, "\u03C1"], [[120705, 120706], 1, "\u03C3"], [120707, 1, "\u03C4"], [120708, 1, "\u03C5"], [120709, 1, "\u03C6"], [120710, 1, "\u03C7"], [120711, 1, "\u03C8"], [120712, 1, "\u03C9"], [120713, 1, "\u2202"], [120714, 1, "\u03B5"], [120715, 1, "\u03B8"], [120716, 1, "\u03BA"], [120717, 1, "\u03C6"], [120718, 1, "\u03C1"], [120719, 1, "\u03C0"], [120720, 1, "\u03B1"], [120721, 1, "\u03B2"], [120722, 1, "\u03B3"], [120723, 1, "\u03B4"], [120724, 1, "\u03B5"], [120725, 1, "\u03B6"], [120726, 1, "\u03B7"], [120727, 1, "\u03B8"], [120728, 1, "\u03B9"], [120729, 1, "\u03BA"], [120730, 1, "\u03BB"], [120731, 1, "\u03BC"], [120732, 1, "\u03BD"], [120733, 1, "\u03BE"], [120734, 1, "\u03BF"], [120735, 1, "\u03C0"], [120736, 1, "\u03C1"], [120737, 1, "\u03B8"], [120738, 1, "\u03C3"], [120739, 1, "\u03C4"], [120740, 1, "\u03C5"], [120741, 1, "\u03C6"], [120742, 1, "\u03C7"], [120743, 1, "\u03C8"], [120744, 1, "\u03C9"], [120745, 1, "\u2207"], [120746, 1, "\u03B1"], [120747, 1, "\u03B2"], [120748, 1, "\u03B3"], [120749, 1, "\u03B4"], [120750, 1, "\u03B5"], [120751, 1, "\u03B6"], [120752, 1, "\u03B7"], [120753, 1, "\u03B8"], [120754, 1, "\u03B9"], [120755, 1, "\u03BA"], [120756, 1, "\u03BB"], [120757, 1, "\u03BC"], [120758, 1, "\u03BD"], [120759, 1, "\u03BE"], [120760, 1, "\u03BF"], [120761, 1, "\u03C0"], [120762, 1, "\u03C1"], [[120763, 120764], 1, "\u03C3"], [120765, 1, "\u03C4"], [120766, 1, "\u03C5"], [120767, 1, "\u03C6"], [120768, 1, "\u03C7"], [120769, 1, "\u03C8"], [120770, 1, "\u03C9"], [120771, 1, "\u2202"], [120772, 1, "\u03B5"], [120773, 1, "\u03B8"], [120774, 1, "\u03BA"], [120775, 1, "\u03C6"], [120776, 1, "\u03C1"], [120777, 1, "\u03C0"], [[120778, 120779], 1, "\u03DD"], [[120780, 120781], 3], [120782, 1, "0"], [120783, 1, "1"], [120784, 1, "2"], [120785, 1, "3"], [120786, 1, "4"], [120787, 1, "5"], [120788, 1, "6"], [120789, 1, "7"], [120790, 1, "8"], [120791, 1, "9"], [120792, 1, "0"], [120793, 1, "1"], [120794, 1, "2"], [120795, 1, "3"], [120796, 1, "4"], [120797, 1, "5"], [120798, 1, "6"], [120799, 1, "7"], [120800, 1, "8"], [120801, 1, "9"], [120802, 1, "0"], [120803, 1, "1"], [120804, 1, "2"], [120805, 1, "3"], [120806, 1, "4"], [120807, 1, "5"], [120808, 1, "6"], [120809, 1, "7"], [120810, 1, "8"], [120811, 1, "9"], [120812, 1, "0"], [120813, 1, "1"], [120814, 1, "2"], [120815, 1, "3"], [120816, 1, "4"], [120817, 1, "5"], [120818, 1, "6"], [120819, 1, "7"], [120820, 1, "8"], [120821, 1, "9"], [120822, 1, "0"], [120823, 1, "1"], [120824, 1, "2"], [120825, 1, "3"], [120826, 1, "4"], [120827, 1, "5"], [120828, 1, "6"], [120829, 1, "7"], [120830, 1, "8"], [120831, 1, "9"], [[120832, 121343], 2], [[121344, 121398], 2], [[121399, 121402], 2], [[121403, 121452], 2], [[121453, 121460], 2], [121461, 2], [[121462, 121475], 2], [121476, 2], [[121477, 121483], 2], [[121484, 121498], 3], [[121499, 121503], 2], [121504, 3], [[121505, 121519], 2], [[121520, 122623], 3], [[122624, 122654], 2], [[122655, 122660], 3], [[122661, 122666], 2], [[122667, 122879], 3], [[122880, 122886], 2], [122887, 3], [[122888, 122904], 2], [[122905, 122906], 3], [[122907, 122913], 2], [122914, 3], [[122915, 122916], 2], [122917, 3], [[122918, 122922], 2], [[122923, 122927], 3], [122928, 1, "\u0430"], [122929, 1, "\u0431"], [122930, 1, "\u0432"], [122931, 1, "\u0433"], [122932, 1, "\u0434"], [122933, 1, "\u0435"], [122934, 1, "\u0436"], [122935, 1, "\u0437"], [122936, 1, "\u0438"], [122937, 1, "\u043A"], [122938, 1, "\u043B"], [122939, 1, "\u043C"], [122940, 1, "\u043E"], [122941, 1, "\u043F"], [122942, 1, "\u0440"], [122943, 1, "\u0441"], [122944, 1, "\u0442"], [122945, 1, "\u0443"], [122946, 1, "\u0444"], [122947, 1, "\u0445"], [122948, 1, "\u0446"], [122949, 1, "\u0447"], [122950, 1, "\u0448"], [122951, 1, "\u044B"], [122952, 1, "\u044D"], [122953, 1, "\u044E"], [122954, 1, "\uA689"], [122955, 1, "\u04D9"], [122956, 1, "\u0456"], [122957, 1, "\u0458"], [122958, 1, "\u04E9"], [122959, 1, "\u04AF"], [122960, 1, "\u04CF"], [122961, 1, "\u0430"], [122962, 1, "\u0431"], [122963, 1, "\u0432"], [122964, 1, "\u0433"], [122965, 1, "\u0434"], [122966, 1, "\u0435"], [122967, 1, "\u0436"], [122968, 1, "\u0437"], [122969, 1, "\u0438"], [122970, 1, "\u043A"], [122971, 1, "\u043B"], [122972, 1, "\u043E"], [122973, 1, "\u043F"], [122974, 1, "\u0441"], [122975, 1, "\u0443"], [122976, 1, "\u0444"], [122977, 1, "\u0445"], [122978, 1, "\u0446"], [122979, 1, "\u0447"], [122980, 1, "\u0448"], [122981, 1, "\u044A"], [122982, 1, "\u044B"], [122983, 1, "\u0491"], [122984, 1, "\u0456"], [122985, 1, "\u0455"], [122986, 1, "\u045F"], [122987, 1, "\u04AB"], [122988, 1, "\uA651"], [122989, 1, "\u04B1"], [[122990, 123022], 3], [123023, 2], [[123024, 123135], 3], [[123136, 123180], 2], [[123181, 123183], 3], [[123184, 123197], 2], [[123198, 123199], 3], [[123200, 123209], 2], [[123210, 123213], 3], [123214, 2], [123215, 2], [[123216, 123535], 3], [[123536, 123566], 2], [[123567, 123583], 3], [[123584, 123641], 2], [[123642, 123646], 3], [123647, 2], [[123648, 124111], 3], [[124112, 124153], 2], [[124154, 124367], 3], [[124368, 124410], 2], [[124411, 124414], 3], [124415, 2], [[124416, 124607], 3], [[124608, 124638], 2], [124639, 3], [[124640, 124661], 2], [[124662, 124669], 3], [[124670, 124671], 2], [[124672, 124895], 3], [[124896, 124902], 2], [124903, 3], [[124904, 124907], 2], [124908, 3], [[124909, 124910], 2], [124911, 3], [[124912, 124926], 2], [124927, 3], [[124928, 125124], 2], [[125125, 125126], 3], [[125127, 125135], 2], [[125136, 125142], 2], [[125143, 125183], 3], [125184, 1, "\u{1E922}"], [125185, 1, "\u{1E923}"], [125186, 1, "\u{1E924}"], [125187, 1, "\u{1E925}"], [125188, 1, "\u{1E926}"], [125189, 1, "\u{1E927}"], [125190, 1, "\u{1E928}"], [125191, 1, "\u{1E929}"], [125192, 1, "\u{1E92A}"], [125193, 1, "\u{1E92B}"], [125194, 1, "\u{1E92C}"], [125195, 1, "\u{1E92D}"], [125196, 1, "\u{1E92E}"], [125197, 1, "\u{1E92F}"], [125198, 1, "\u{1E930}"], [125199, 1, "\u{1E931}"], [125200, 1, "\u{1E932}"], [125201, 1, "\u{1E933}"], [125202, 1, "\u{1E934}"], [125203, 1, "\u{1E935}"], [125204, 1, "\u{1E936}"], [125205, 1, "\u{1E937}"], [125206, 1, "\u{1E938}"], [125207, 1, "\u{1E939}"], [125208, 1, "\u{1E93A}"], [125209, 1, "\u{1E93B}"], [125210, 1, "\u{1E93C}"], [125211, 1, "\u{1E93D}"], [125212, 1, "\u{1E93E}"], [125213, 1, "\u{1E93F}"], [125214, 1, "\u{1E940}"], [125215, 1, "\u{1E941}"], [125216, 1, "\u{1E942}"], [125217, 1, "\u{1E943}"], [[125218, 125258], 2], [125259, 2], [[125260, 125263], 3], [[125264, 125273], 2], [[125274, 125277], 3], [[125278, 125279], 2], [[125280, 126064], 3], [[126065, 126132], 2], [[126133, 126208], 3], [[126209, 126269], 2], [[126270, 126463], 3], [126464, 1, "\u0627"], [126465, 1, "\u0628"], [126466, 1, "\u062C"], [126467, 1, "\u062F"], [126468, 3], [126469, 1, "\u0648"], [126470, 1, "\u0632"], [126471, 1, "\u062D"], [126472, 1, "\u0637"], [126473, 1, "\u064A"], [126474, 1, "\u0643"], [126475, 1, "\u0644"], [126476, 1, "\u0645"], [126477, 1, "\u0646"], [126478, 1, "\u0633"], [126479, 1, "\u0639"], [126480, 1, "\u0641"], [126481, 1, "\u0635"], [126482, 1, "\u0642"], [126483, 1, "\u0631"], [126484, 1, "\u0634"], [126485, 1, "\u062A"], [126486, 1, "\u062B"], [126487, 1, "\u062E"], [126488, 1, "\u0630"], [126489, 1, "\u0636"], [126490, 1, "\u0638"], [126491, 1, "\u063A"], [126492, 1, "\u066E"], [126493, 1, "\u06BA"], [126494, 1, "\u06A1"], [126495, 1, "\u066F"], [126496, 3], [126497, 1, "\u0628"], [126498, 1, "\u062C"], [126499, 3], [126500, 1, "\u0647"], [[126501, 126502], 3], [126503, 1, "\u062D"], [126504, 3], [126505, 1, "\u064A"], [126506, 1, "\u0643"], [126507, 1, "\u0644"], [126508, 1, "\u0645"], [126509, 1, "\u0646"], [126510, 1, "\u0633"], [126511, 1, "\u0639"], [126512, 1, "\u0641"], [126513, 1, "\u0635"], [126514, 1, "\u0642"], [126515, 3], [126516, 1, "\u0634"], [126517, 1, "\u062A"], [126518, 1, "\u062B"], [126519, 1, "\u062E"], [126520, 3], [126521, 1, "\u0636"], [126522, 3], [126523, 1, "\u063A"], [[126524, 126529], 3], [126530, 1, "\u062C"], [[126531, 126534], 3], [126535, 1, "\u062D"], [126536, 3], [126537, 1, "\u064A"], [126538, 3], [126539, 1, "\u0644"], [126540, 3], [126541, 1, "\u0646"], [126542, 1, "\u0633"], [126543, 1, "\u0639"], [126544, 3], [126545, 1, "\u0635"], [126546, 1, "\u0642"], [126547, 3], [126548, 1, "\u0634"], [[126549, 126550], 3], [126551, 1, "\u062E"], [126552, 3], [126553, 1, "\u0636"], [126554, 3], [126555, 1, "\u063A"], [126556, 3], [126557, 1, "\u06BA"], [126558, 3], [126559, 1, "\u066F"], [126560, 3], [126561, 1, "\u0628"], [126562, 1, "\u062C"], [126563, 3], [126564, 1, "\u0647"], [[126565, 126566], 3], [126567, 1, "\u062D"], [126568, 1, "\u0637"], [126569, 1, "\u064A"], [126570, 1, "\u0643"], [126571, 3], [126572, 1, "\u0645"], [126573, 1, "\u0646"], [126574, 1, "\u0633"], [126575, 1, "\u0639"], [126576, 1, "\u0641"], [126577, 1, "\u0635"], [126578, 1, "\u0642"], [126579, 3], [126580, 1, "\u0634"], [126581, 1, "\u062A"], [126582, 1, "\u062B"], [126583, 1, "\u062E"], [126584, 3], [126585, 1, "\u0636"], [126586, 1, "\u0638"], [126587, 1, "\u063A"], [126588, 1, "\u066E"], [126589, 3], [126590, 1, "\u06A1"], [126591, 3], [126592, 1, "\u0627"], [126593, 1, "\u0628"], [126594, 1, "\u062C"], [126595, 1, "\u062F"], [126596, 1, "\u0647"], [126597, 1, "\u0648"], [126598, 1, "\u0632"], [126599, 1, "\u062D"], [126600, 1, "\u0637"], [126601, 1, "\u064A"], [126602, 3], [126603, 1, "\u0644"], [126604, 1, "\u0645"], [126605, 1, "\u0646"], [126606, 1, "\u0633"], [126607, 1, "\u0639"], [126608, 1, "\u0641"], [126609, 1, "\u0635"], [126610, 1, "\u0642"], [126611, 1, "\u0631"], [126612, 1, "\u0634"], [126613, 1, "\u062A"], [126614, 1, "\u062B"], [126615, 1, "\u062E"], [126616, 1, "\u0630"], [126617, 1, "\u0636"], [126618, 1, "\u0638"], [126619, 1, "\u063A"], [[126620, 126624], 3], [126625, 1, "\u0628"], [126626, 1, "\u062C"], [126627, 1, "\u062F"], [126628, 3], [126629, 1, "\u0648"], [126630, 1, "\u0632"], [126631, 1, "\u062D"], [126632, 1, "\u0637"], [126633, 1, "\u064A"], [126634, 3], [126635, 1, "\u0644"], [126636, 1, "\u0645"], [126637, 1, "\u0646"], [126638, 1, "\u0633"], [126639, 1, "\u0639"], [126640, 1, "\u0641"], [126641, 1, "\u0635"], [126642, 1, "\u0642"], [126643, 1, "\u0631"], [126644, 1, "\u0634"], [126645, 1, "\u062A"], [126646, 1, "\u062B"], [126647, 1, "\u062E"], [126648, 1, "\u0630"], [126649, 1, "\u0636"], [126650, 1, "\u0638"], [126651, 1, "\u063A"], [[126652, 126703], 3], [[126704, 126705], 2], [[126706, 126975], 3], [[126976, 127019], 2], [[127020, 127023], 3], [[127024, 127123], 2], [[127124, 127135], 3], [[127136, 127150], 2], [[127151, 127152], 3], [[127153, 127166], 2], [127167, 2], [127168, 3], [[127169, 127183], 2], [127184, 3], [[127185, 127199], 2], [[127200, 127221], 2], [[127222, 127231], 3], [127232, 3], [127233, 1, "0,"], [127234, 1, "1,"], [127235, 1, "2,"], [127236, 1, "3,"], [127237, 1, "4,"], [127238, 1, "5,"], [127239, 1, "6,"], [127240, 1, "7,"], [127241, 1, "8,"], [127242, 1, "9,"], [[127243, 127244], 2], [[127245, 127247], 2], [127248, 1, "(a)"], [127249, 1, "(b)"], [127250, 1, "(c)"], [127251, 1, "(d)"], [127252, 1, "(e)"], [127253, 1, "(f)"], [127254, 1, "(g)"], [127255, 1, "(h)"], [127256, 1, "(i)"], [127257, 1, "(j)"], [127258, 1, "(k)"], [127259, 1, "(l)"], [127260, 1, "(m)"], [127261, 1, "(n)"], [127262, 1, "(o)"], [127263, 1, "(p)"], [127264, 1, "(q)"], [127265, 1, "(r)"], [127266, 1, "(s)"], [127267, 1, "(t)"], [127268, 1, "(u)"], [127269, 1, "(v)"], [127270, 1, "(w)"], [127271, 1, "(x)"], [127272, 1, "(y)"], [127273, 1, "(z)"], [127274, 1, "\u3014s\u3015"], [127275, 1, "c"], [127276, 1, "r"], [127277, 1, "cd"], [127278, 1, "wz"], [127279, 2], [127280, 1, "a"], [127281, 1, "b"], [127282, 1, "c"], [127283, 1, "d"], [127284, 1, "e"], [127285, 1, "f"], [127286, 1, "g"], [127287, 1, "h"], [127288, 1, "i"], [127289, 1, "j"], [127290, 1, "k"], [127291, 1, "l"], [127292, 1, "m"], [127293, 1, "n"], [127294, 1, "o"], [127295, 1, "p"], [127296, 1, "q"], [127297, 1, "r"], [127298, 1, "s"], [127299, 1, "t"], [127300, 1, "u"], [127301, 1, "v"], [127302, 1, "w"], [127303, 1, "x"], [127304, 1, "y"], [127305, 1, "z"], [127306, 1, "hv"], [127307, 1, "mv"], [127308, 1, "sd"], [127309, 1, "ss"], [127310, 1, "ppv"], [127311, 1, "wc"], [[127312, 127318], 2], [127319, 2], [[127320, 127326], 2], [127327, 2], [[127328, 127337], 2], [127338, 1, "mc"], [127339, 1, "md"], [127340, 1, "mr"], [[127341, 127343], 2], [[127344, 127352], 2], [127353, 2], [127354, 2], [[127355, 127356], 2], [[127357, 127358], 2], [127359, 2], [[127360, 127369], 2], [[127370, 127373], 2], [[127374, 127375], 2], [127376, 1, "dj"], [[127377, 127386], 2], [[127387, 127404], 2], [127405, 2], [[127406, 127461], 3], [[127462, 127487], 2], [127488, 1, "\u307B\u304B"], [127489, 1, "\u30B3\u30B3"], [127490, 1, "\u30B5"], [[127491, 127503], 3], [127504, 1, "\u624B"], [127505, 1, "\u5B57"], [127506, 1, "\u53CC"], [127507, 1, "\u30C7"], [127508, 1, "\u4E8C"], [127509, 1, "\u591A"], [127510, 1, "\u89E3"], [127511, 1, "\u5929"], [127512, 1, "\u4EA4"], [127513, 1, "\u6620"], [127514, 1, "\u7121"], [127515, 1, "\u6599"], [127516, 1, "\u524D"], [127517, 1, "\u5F8C"], [127518, 1, "\u518D"], [127519, 1, "\u65B0"], [127520, 1, "\u521D"], [127521, 1, "\u7D42"], [127522, 1, "\u751F"], [127523, 1, "\u8CA9"], [127524, 1, "\u58F0"], [127525, 1, "\u5439"], [127526, 1, "\u6F14"], [127527, 1, "\u6295"], [127528, 1, "\u6355"], [127529, 1, "\u4E00"], [127530, 1, "\u4E09"], [127531, 1, "\u904A"], [127532, 1, "\u5DE6"], [127533, 1, "\u4E2D"], [127534, 1, "\u53F3"], [127535, 1, "\u6307"], [127536, 1, "\u8D70"], [127537, 1, "\u6253"], [127538, 1, "\u7981"], [127539, 1, "\u7A7A"], [127540, 1, "\u5408"], [127541, 1, "\u6E80"], [127542, 1, "\u6709"], [127543, 1, "\u6708"], [127544, 1, "\u7533"], [127545, 1, "\u5272"], [127546, 1, "\u55B6"], [127547, 1, "\u914D"], [[127548, 127551], 3], [127552, 1, "\u3014\u672C\u3015"], [127553, 1, "\u3014\u4E09\u3015"], [127554, 1, "\u3014\u4E8C\u3015"], [127555, 1, "\u3014\u5B89\u3015"], [127556, 1, "\u3014\u70B9\u3015"], [127557, 1, "\u3014\u6253\u3015"], [127558, 1, "\u3014\u76D7\u3015"], [127559, 1, "\u3014\u52DD\u3015"], [127560, 1, "\u3014\u6557\u3015"], [[127561, 127567], 3], [127568, 1, "\u5F97"], [127569, 1, "\u53EF"], [[127570, 127583], 3], [[127584, 127589], 2], [[127590, 127743], 3], [[127744, 127776], 2], [[127777, 127788], 2], [[127789, 127791], 2], [[127792, 127797], 2], [127798, 2], [[127799, 127868], 2], [127869, 2], [[127870, 127871], 2], [[127872, 127891], 2], [[127892, 127903], 2], [[127904, 127940], 2], [127941, 2], [[127942, 127946], 2], [[127947, 127950], 2], [[127951, 127955], 2], [[127956, 127967], 2], [[127968, 127984], 2], [[127985, 127991], 2], [[127992, 127999], 2], [[128e3, 128062], 2], [128063, 2], [128064, 2], [128065, 2], [[128066, 128247], 2], [128248, 2], [[128249, 128252], 2], [[128253, 128254], 2], [128255, 2], [[128256, 128317], 2], [[128318, 128319], 2], [[128320, 128323], 2], [[128324, 128330], 2], [[128331, 128335], 2], [[128336, 128359], 2], [[128360, 128377], 2], [128378, 2], [[128379, 128419], 2], [128420, 2], [[128421, 128506], 2], [[128507, 128511], 2], [128512, 2], [[128513, 128528], 2], [128529, 2], [[128530, 128532], 2], [128533, 2], [128534, 2], [128535, 2], [128536, 2], [128537, 2], [128538, 2], [128539, 2], [[128540, 128542], 2], [128543, 2], [[128544, 128549], 2], [[128550, 128551], 2], [[128552, 128555], 2], [128556, 2], [128557, 2], [[128558, 128559], 2], [[128560, 128563], 2], [128564, 2], [[128565, 128576], 2], [[128577, 128578], 2], [[128579, 128580], 2], [[128581, 128591], 2], [[128592, 128639], 2], [[128640, 128709], 2], [[128710, 128719], 2], [128720, 2], [[128721, 128722], 2], [[128723, 128724], 2], [128725, 2], [[128726, 128727], 2], [128728, 2], [[128729, 128731], 3], [128732, 2], [[128733, 128735], 2], [[128736, 128748], 2], [[128749, 128751], 3], [[128752, 128755], 2], [[128756, 128758], 2], [[128759, 128760], 2], [128761, 2], [128762, 2], [[128763, 128764], 2], [[128765, 128767], 3], [[128768, 128883], 2], [[128884, 128886], 2], [[128887, 128890], 2], [[128891, 128895], 2], [[128896, 128980], 2], [[128981, 128984], 2], [128985, 2], [[128986, 128991], 3], [[128992, 129003], 2], [[129004, 129007], 3], [129008, 2], [[129009, 129023], 3], [[129024, 129035], 2], [[129036, 129039], 3], [[129040, 129095], 2], [[129096, 129103], 3], [[129104, 129113], 2], [[129114, 129119], 3], [[129120, 129159], 2], [[129160, 129167], 3], [[129168, 129197], 2], [[129198, 129199], 3], [[129200, 129201], 2], [[129202, 129211], 2], [[129212, 129215], 3], [[129216, 129217], 2], [[129218, 129231], 3], [[129232, 129240], 2], [[129241, 129279], 3], [[129280, 129291], 2], [129292, 2], [[129293, 129295], 2], [[129296, 129304], 2], [[129305, 129310], 2], [129311, 2], [[129312, 129319], 2], [[129320, 129327], 2], [129328, 2], [[129329, 129330], 2], [[129331, 129342], 2], [129343, 2], [[129344, 129355], 2], [129356, 2], [[129357, 129359], 2], [[129360, 129374], 2], [[129375, 129387], 2], [[129388, 129392], 2], [129393, 2], [129394, 2], [[129395, 129398], 2], [[129399, 129400], 2], [129401, 2], [129402, 2], [129403, 2], [[129404, 129407], 2], [[129408, 129412], 2], [[129413, 129425], 2], [[129426, 129431], 2], [[129432, 129442], 2], [[129443, 129444], 2], [[129445, 129450], 2], [[129451, 129453], 2], [[129454, 129455], 2], [[129456, 129465], 2], [[129466, 129471], 2], [129472, 2], [[129473, 129474], 2], [[129475, 129482], 2], [129483, 2], [129484, 2], [[129485, 129487], 2], [[129488, 129510], 2], [[129511, 129535], 2], [[129536, 129619], 2], [[129620, 129623], 2], [[129624, 129631], 3], [[129632, 129645], 2], [[129646, 129647], 3], [[129648, 129651], 2], [129652, 2], [[129653, 129655], 2], [[129656, 129658], 2], [[129659, 129660], 2], [[129661, 129663], 3], [[129664, 129666], 2], [[129667, 129670], 2], [[129671, 129672], 2], [129673, 2], [129674, 2], [[129675, 129677], 3], [129678, 2], [129679, 2], [[129680, 129685], 2], [[129686, 129704], 2], [[129705, 129708], 2], [[129709, 129711], 2], [[129712, 129718], 2], [[129719, 129722], 2], [[129723, 129725], 2], [129726, 2], [129727, 2], [[129728, 129730], 2], [[129731, 129733], 2], [129734, 2], [129735, 3], [129736, 2], [[129737, 129740], 3], [129741, 2], [[129742, 129743], 2], [[129744, 129750], 2], [[129751, 129753], 2], [[129754, 129755], 2], [129756, 2], [[129757, 129758], 3], [129759, 2], [[129760, 129767], 2], [129768, 2], [129769, 2], [129770, 2], [[129771, 129774], 3], [129775, 2], [[129776, 129782], 2], [[129783, 129784], 2], [[129785, 129791], 3], [[129792, 129938], 2], [129939, 3], [[129940, 129994], 2], [[129995, 130031], 2], [130032, 1, "0"], [130033, 1, "1"], [130034, 1, "2"], [130035, 1, "3"], [130036, 1, "4"], [130037, 1, "5"], [130038, 1, "6"], [130039, 1, "7"], [130040, 1, "8"], [130041, 1, "9"], [130042, 2], [[130043, 131069], 3], [[131070, 131071], 3], [[131072, 173782], 2], [[173783, 173789], 2], [[173790, 173791], 2], [[173792, 173823], 3], [[173824, 177972], 2], [[177973, 177976], 2], [177977, 2], [[177978, 177983], 2], [[177984, 178205], 2], [[178206, 178207], 3], [[178208, 183969], 2], [[183970, 183981], 2], [[183982, 183983], 3], [[183984, 191456], 2], [[191457, 191471], 3], [[191472, 192093], 2], [[192094, 194559], 3], [194560, 1, "\u4E3D"], [194561, 1, "\u4E38"], [194562, 1, "\u4E41"], [194563, 1, "\u{20122}"], [194564, 1, "\u4F60"], [194565, 1, "\u4FAE"], [194566, 1, "\u4FBB"], [194567, 1, "\u5002"], [194568, 1, "\u507A"], [194569, 1, "\u5099"], [194570, 1, "\u50E7"], [194571, 1, "\u50CF"], [194572, 1, "\u349E"], [194573, 1, "\u{2063A}"], [194574, 1, "\u514D"], [194575, 1, "\u5154"], [194576, 1, "\u5164"], [194577, 1, "\u5177"], [194578, 1, "\u{2051C}"], [194579, 1, "\u34B9"], [194580, 1, "\u5167"], [194581, 1, "\u518D"], [194582, 1, "\u{2054B}"], [194583, 1, "\u5197"], [194584, 1, "\u51A4"], [194585, 1, "\u4ECC"], [194586, 1, "\u51AC"], [194587, 1, "\u51B5"], [194588, 1, "\u{291DF}"], [194589, 1, "\u51F5"], [194590, 1, "\u5203"], [194591, 1, "\u34DF"], [194592, 1, "\u523B"], [194593, 1, "\u5246"], [194594, 1, "\u5272"], [194595, 1, "\u5277"], [194596, 1, "\u3515"], [194597, 1, "\u52C7"], [194598, 1, "\u52C9"], [194599, 1, "\u52E4"], [194600, 1, "\u52FA"], [194601, 1, "\u5305"], [194602, 1, "\u5306"], [194603, 1, "\u5317"], [194604, 1, "\u5349"], [194605, 1, "\u5351"], [194606, 1, "\u535A"], [194607, 1, "\u5373"], [194608, 1, "\u537D"], [[194609, 194611], 1, "\u537F"], [194612, 1, "\u{20A2C}"], [194613, 1, "\u7070"], [194614, 1, "\u53CA"], [194615, 1, "\u53DF"], [194616, 1, "\u{20B63}"], [194617, 1, "\u53EB"], [194618, 1, "\u53F1"], [194619, 1, "\u5406"], [194620, 1, "\u549E"], [194621, 1, "\u5438"], [194622, 1, "\u5448"], [194623, 1, "\u5468"], [194624, 1, "\u54A2"], [194625, 1, "\u54F6"], [194626, 1, "\u5510"], [194627, 1, "\u5553"], [194628, 1, "\u5563"], [[194629, 194630], 1, "\u5584"], [194631, 1, "\u5599"], [194632, 1, "\u55AB"], [194633, 1, "\u55B3"], [194634, 1, "\u55C2"], [194635, 1, "\u5716"], [194636, 1, "\u5606"], [194637, 1, "\u5717"], [194638, 1, "\u5651"], [194639, 1, "\u5674"], [194640, 1, "\u5207"], [194641, 1, "\u58EE"], [194642, 1, "\u57CE"], [194643, 1, "\u57F4"], [194644, 1, "\u580D"], [194645, 1, "\u578B"], [194646, 1, "\u5832"], [194647, 1, "\u5831"], [194648, 1, "\u58AC"], [194649, 1, "\u{214E4}"], [194650, 1, "\u58F2"], [194651, 1, "\u58F7"], [194652, 1, "\u5906"], [194653, 1, "\u591A"], [194654, 1, "\u5922"], [194655, 1, "\u5962"], [194656, 1, "\u{216A8}"], [194657, 1, "\u{216EA}"], [194658, 1, "\u59EC"], [194659, 1, "\u5A1B"], [194660, 1, "\u5A27"], [194661, 1, "\u59D8"], [194662, 1, "\u5A66"], [194663, 1, "\u36EE"], [194664, 1, "\u36FC"], [194665, 1, "\u5B08"], [[194666, 194667], 1, "\u5B3E"], [194668, 1, "\u{219C8}"], [194669, 1, "\u5BC3"], [194670, 1, "\u5BD8"], [194671, 1, "\u5BE7"], [194672, 1, "\u5BF3"], [194673, 1, "\u{21B18}"], [194674, 1, "\u5BFF"], [194675, 1, "\u5C06"], [194676, 1, "\u5F53"], [194677, 1, "\u5C22"], [194678, 1, "\u3781"], [194679, 1, "\u5C60"], [194680, 1, "\u5C6E"], [194681, 1, "\u5CC0"], [194682, 1, "\u5C8D"], [194683, 1, "\u{21DE4}"], [194684, 1, "\u5D43"], [194685, 1, "\u{21DE6}"], [194686, 1, "\u5D6E"], [194687, 1, "\u5D6B"], [194688, 1, "\u5D7C"], [194689, 1, "\u5DE1"], [194690, 1, "\u5DE2"], [194691, 1, "\u382F"], [194692, 1, "\u5DFD"], [194693, 1, "\u5E28"], [194694, 1, "\u5E3D"], [194695, 1, "\u5E69"], [194696, 1, "\u3862"], [194697, 1, "\u{22183}"], [194698, 1, "\u387C"], [194699, 1, "\u5EB0"], [194700, 1, "\u5EB3"], [194701, 1, "\u5EB6"], [194702, 1, "\u5ECA"], [194703, 1, "\u{2A392}"], [194704, 1, "\u5EFE"], [[194705, 194706], 1, "\u{22331}"], [194707, 1, "\u8201"], [[194708, 194709], 1, "\u5F22"], [194710, 1, "\u38C7"], [194711, 1, "\u{232B8}"], [194712, 1, "\u{261DA}"], [194713, 1, "\u5F62"], [194714, 1, "\u5F6B"], [194715, 1, "\u38E3"], [194716, 1, "\u5F9A"], [194717, 1, "\u5FCD"], [194718, 1, "\u5FD7"], [194719, 1, "\u5FF9"], [194720, 1, "\u6081"], [194721, 1, "\u393A"], [194722, 1, "\u391C"], [194723, 1, "\u6094"], [194724, 1, "\u{226D4}"], [194725, 1, "\u60C7"], [194726, 1, "\u6148"], [194727, 1, "\u614C"], [194728, 1, "\u614E"], [194729, 1, "\u614C"], [194730, 1, "\u617A"], [194731, 1, "\u618E"], [194732, 1, "\u61B2"], [194733, 1, "\u61A4"], [194734, 1, "\u61AF"], [194735, 1, "\u61DE"], [194736, 1, "\u61F2"], [194737, 1, "\u61F6"], [194738, 1, "\u6210"], [194739, 1, "\u621B"], [194740, 1, "\u625D"], [194741, 1, "\u62B1"], [194742, 1, "\u62D4"], [194743, 1, "\u6350"], [194744, 1, "\u{22B0C}"], [194745, 1, "\u633D"], [194746, 1, "\u62FC"], [194747, 1, "\u6368"], [194748, 1, "\u6383"], [194749, 1, "\u63E4"], [194750, 1, "\u{22BF1}"], [194751, 1, "\u6422"], [194752, 1, "\u63C5"], [194753, 1, "\u63A9"], [194754, 1, "\u3A2E"], [194755, 1, "\u6469"], [194756, 1, "\u647E"], [194757, 1, "\u649D"], [194758, 1, "\u6477"], [194759, 1, "\u3A6C"], [194760, 1, "\u654F"], [194761, 1, "\u656C"], [194762, 1, "\u{2300A}"], [194763, 1, "\u65E3"], [194764, 1, "\u66F8"], [194765, 1, "\u6649"], [194766, 1, "\u3B19"], [194767, 1, "\u6691"], [194768, 1, "\u3B08"], [194769, 1, "\u3AE4"], [194770, 1, "\u5192"], [194771, 1, "\u5195"], [194772, 1, "\u6700"], [194773, 1, "\u669C"], [194774, 1, "\u80AD"], [194775, 1, "\u43D9"], [194776, 1, "\u6717"], [194777, 1, "\u671B"], [194778, 1, "\u6721"], [194779, 1, "\u675E"], [194780, 1, "\u6753"], [194781, 1, "\u{233C3}"], [194782, 1, "\u3B49"], [194783, 1, "\u67FA"], [194784, 1, "\u6785"], [194785, 1, "\u6852"], [194786, 1, "\u6885"], [194787, 1, "\u{2346D}"], [194788, 1, "\u688E"], [194789, 1, "\u681F"], [194790, 1, "\u6914"], [194791, 1, "\u3B9D"], [194792, 1, "\u6942"], [194793, 1, "\u69A3"], [194794, 1, "\u69EA"], [194795, 1, "\u6AA8"], [194796, 1, "\u{236A3}"], [194797, 1, "\u6ADB"], [194798, 1, "\u3C18"], [194799, 1, "\u6B21"], [194800, 1, "\u{238A7}"], [194801, 1, "\u6B54"], [194802, 1, "\u3C4E"], [194803, 1, "\u6B72"], [194804, 1, "\u6B9F"], [194805, 1, "\u6BBA"], [194806, 1, "\u6BBB"], [194807, 1, "\u{23A8D}"], [194808, 1, "\u{21D0B}"], [194809, 1, "\u{23AFA}"], [194810, 1, "\u6C4E"], [194811, 1, "\u{23CBC}"], [194812, 1, "\u6CBF"], [194813, 1, "\u6CCD"], [194814, 1, "\u6C67"], [194815, 1, "\u6D16"], [194816, 1, "\u6D3E"], [194817, 1, "\u6D77"], [194818, 1, "\u6D41"], [194819, 1, "\u6D69"], [194820, 1, "\u6D78"], [194821, 1, "\u6D85"], [194822, 1, "\u{23D1E}"], [194823, 1, "\u6D34"], [194824, 1, "\u6E2F"], [194825, 1, "\u6E6E"], [194826, 1, "\u3D33"], [194827, 1, "\u6ECB"], [194828, 1, "\u6EC7"], [194829, 1, "\u{23ED1}"], [194830, 1, "\u6DF9"], [194831, 1, "\u6F6E"], [194832, 1, "\u{23F5E}"], [194833, 1, "\u{23F8E}"], [194834, 1, "\u6FC6"], [194835, 1, "\u7039"], [194836, 1, "\u701E"], [194837, 1, "\u701B"], [194838, 1, "\u3D96"], [194839, 1, "\u704A"], [194840, 1, "\u707D"], [194841, 1, "\u7077"], [194842, 1, "\u70AD"], [194843, 1, "\u{20525}"], [194844, 1, "\u7145"], [194845, 1, "\u{24263}"], [194846, 1, "\u719C"], [194847, 1, "\u{243AB}"], [194848, 1, "\u7228"], [194849, 1, "\u7235"], [194850, 1, "\u7250"], [194851, 1, "\u{24608}"], [194852, 1, "\u7280"], [194853, 1, "\u7295"], [194854, 1, "\u{24735}"], [194855, 1, "\u{24814}"], [194856, 1, "\u737A"], [194857, 1, "\u738B"], [194858, 1, "\u3EAC"], [194859, 1, "\u73A5"], [[194860, 194861], 1, "\u3EB8"], [194862, 1, "\u7447"], [194863, 1, "\u745C"], [194864, 1, "\u7471"], [194865, 1, "\u7485"], [194866, 1, "\u74CA"], [194867, 1, "\u3F1B"], [194868, 1, "\u7524"], [194869, 1, "\u{24C36}"], [194870, 1, "\u753E"], [194871, 1, "\u{24C92}"], [194872, 1, "\u7570"], [194873, 1, "\u{2219F}"], [194874, 1, "\u7610"], [194875, 1, "\u{24FA1}"], [194876, 1, "\u{24FB8}"], [194877, 1, "\u{25044}"], [194878, 1, "\u3FFC"], [194879, 1, "\u4008"], [194880, 1, "\u76F4"], [194881, 1, "\u{250F3}"], [194882, 1, "\u{250F2}"], [194883, 1, "\u{25119}"], [194884, 1, "\u{25133}"], [194885, 1, "\u771E"], [[194886, 194887], 1, "\u771F"], [194888, 1, "\u774A"], [194889, 1, "\u4039"], [194890, 1, "\u778B"], [194891, 1, "\u4046"], [194892, 1, "\u4096"], [194893, 1, "\u{2541D}"], [194894, 1, "\u784E"], [194895, 1, "\u788C"], [194896, 1, "\u78CC"], [194897, 1, "\u40E3"], [194898, 1, "\u{25626}"], [194899, 1, "\u7956"], [194900, 1, "\u{2569A}"], [194901, 1, "\u{256C5}"], [194902, 1, "\u798F"], [194903, 1, "\u79EB"], [194904, 1, "\u412F"], [194905, 1, "\u7A40"], [194906, 1, "\u7A4A"], [194907, 1, "\u7A4F"], [194908, 1, "\u{2597C}"], [[194909, 194910], 1, "\u{25AA7}"], [194911, 1, "\u7AEE"], [194912, 1, "\u4202"], [194913, 1, "\u{25BAB}"], [194914, 1, "\u7BC6"], [194915, 1, "\u7BC9"], [194916, 1, "\u4227"], [194917, 1, "\u{25C80}"], [194918, 1, "\u7CD2"], [194919, 1, "\u42A0"], [194920, 1, "\u7CE8"], [194921, 1, "\u7CE3"], [194922, 1, "\u7D00"], [194923, 1, "\u{25F86}"], [194924, 1, "\u7D63"], [194925, 1, "\u4301"], [194926, 1, "\u7DC7"], [194927, 1, "\u7E02"], [194928, 1, "\u7E45"], [194929, 1, "\u4334"], [194930, 1, "\u{26228}"], [194931, 1, "\u{26247}"], [194932, 1, "\u4359"], [194933, 1, "\u{262D9}"], [194934, 1, "\u7F7A"], [194935, 1, "\u{2633E}"], [194936, 1, "\u7F95"], [194937, 1, "\u7FFA"], [194938, 1, "\u8005"], [194939, 1, "\u{264DA}"], [194940, 1, "\u{26523}"], [194941, 1, "\u8060"], [194942, 1, "\u{265A8}"], [194943, 1, "\u8070"], [194944, 1, "\u{2335F}"], [194945, 1, "\u43D5"], [194946, 1, "\u80B2"], [194947, 1, "\u8103"], [194948, 1, "\u440B"], [194949, 1, "\u813E"], [194950, 1, "\u5AB5"], [194951, 1, "\u{267A7}"], [194952, 1, "\u{267B5}"], [194953, 1, "\u{23393}"], [194954, 1, "\u{2339C}"], [194955, 1, "\u8201"], [194956, 1, "\u8204"], [194957, 1, "\u8F9E"], [194958, 1, "\u446B"], [194959, 1, "\u8291"], [194960, 1, "\u828B"], [194961, 1, "\u829D"], [194962, 1, "\u52B3"], [194963, 1, "\u82B1"], [194964, 1, "\u82B3"], [194965, 1, "\u82BD"], [194966, 1, "\u82E6"], [194967, 1, "\u{26B3C}"], [194968, 1, "\u82E5"], [194969, 1, "\u831D"], [194970, 1, "\u8363"], [194971, 1, "\u83AD"], [194972, 1, "\u8323"], [194973, 1, "\u83BD"], [194974, 1, "\u83E7"], [194975, 1, "\u8457"], [194976, 1, "\u8353"], [194977, 1, "\u83CA"], [194978, 1, "\u83CC"], [194979, 1, "\u83DC"], [194980, 1, "\u{26C36}"], [194981, 1, "\u{26D6B}"], [194982, 1, "\u{26CD5}"], [194983, 1, "\u452B"], [194984, 1, "\u84F1"], [194985, 1, "\u84F3"], [194986, 1, "\u8516"], [194987, 1, "\u{273CA}"], [194988, 1, "\u8564"], [194989, 1, "\u{26F2C}"], [194990, 1, "\u455D"], [194991, 1, "\u4561"], [194992, 1, "\u{26FB1}"], [194993, 1, "\u{270D2}"], [194994, 1, "\u456B"], [194995, 1, "\u8650"], [194996, 1, "\u865C"], [194997, 1, "\u8667"], [194998, 1, "\u8669"], [194999, 1, "\u86A9"], [195e3, 1, "\u8688"], [195001, 1, "\u870E"], [195002, 1, "\u86E2"], [195003, 1, "\u8779"], [195004, 1, "\u8728"], [195005, 1, "\u876B"], [195006, 1, "\u8786"], [195007, 1, "\u45D7"], [195008, 1, "\u87E1"], [195009, 1, "\u8801"], [195010, 1, "\u45F9"], [195011, 1, "\u8860"], [195012, 1, "\u8863"], [195013, 1, "\u{27667}"], [195014, 1, "\u88D7"], [195015, 1, "\u88DE"], [195016, 1, "\u4635"], [195017, 1, "\u88FA"], [195018, 1, "\u34BB"], [195019, 1, "\u{278AE}"], [195020, 1, "\u{27966}"], [195021, 1, "\u46BE"], [195022, 1, "\u46C7"], [195023, 1, "\u8AA0"], [195024, 1, "\u8AED"], [195025, 1, "\u8B8A"], [195026, 1, "\u8C55"], [195027, 1, "\u{27CA8}"], [195028, 1, "\u8CAB"], [195029, 1, "\u8CC1"], [195030, 1, "\u8D1B"], [195031, 1, "\u8D77"], [195032, 1, "\u{27F2F}"], [195033, 1, "\u{20804}"], [195034, 1, "\u8DCB"], [195035, 1, "\u8DBC"], [195036, 1, "\u8DF0"], [195037, 1, "\u{208DE}"], [195038, 1, "\u8ED4"], [195039, 1, "\u8F38"], [195040, 1, "\u{285D2}"], [195041, 1, "\u{285ED}"], [195042, 1, "\u9094"], [195043, 1, "\u90F1"], [195044, 1, "\u9111"], [195045, 1, "\u{2872E}"], [195046, 1, "\u911B"], [195047, 1, "\u9238"], [195048, 1, "\u92D7"], [195049, 1, "\u92D8"], [195050, 1, "\u927C"], [195051, 1, "\u93F9"], [195052, 1, "\u9415"], [195053, 1, "\u{28BFA}"], [195054, 1, "\u958B"], [195055, 1, "\u4995"], [195056, 1, "\u95B7"], [195057, 1, "\u{28D77}"], [195058, 1, "\u49E6"], [195059, 1, "\u96C3"], [195060, 1, "\u5DB2"], [195061, 1, "\u9723"], [195062, 1, "\u{29145}"], [195063, 1, "\u{2921A}"], [195064, 1, "\u4A6E"], [195065, 1, "\u4A76"], [195066, 1, "\u97E0"], [195067, 1, "\u{2940A}"], [195068, 1, "\u4AB2"], [195069, 1, "\u{29496}"], [[195070, 195071], 1, "\u980B"], [195072, 1, "\u9829"], [195073, 1, "\u{295B6}"], [195074, 1, "\u98E2"], [195075, 1, "\u4B33"], [195076, 1, "\u9929"], [195077, 1, "\u99A7"], [195078, 1, "\u99C2"], [195079, 1, "\u99FE"], [195080, 1, "\u4BCE"], [195081, 1, "\u{29B30}"], [195082, 1, "\u9B12"], [195083, 1, "\u9C40"], [195084, 1, "\u9CFD"], [195085, 1, "\u4CCE"], [195086, 1, "\u4CED"], [195087, 1, "\u9D67"], [195088, 1, "\u{2A0CE}"], [195089, 1, "\u4CF8"], [195090, 1, "\u{2A105}"], [195091, 1, "\u{2A20E}"], [195092, 1, "\u{2A291}"], [195093, 1, "\u9EBB"], [195094, 1, "\u4D56"], [195095, 1, "\u9EF9"], [195096, 1, "\u9EFE"], [195097, 1, "\u9F05"], [195098, 1, "\u9F0F"], [195099, 1, "\u9F16"], [195100, 1, "\u9F3B"], [195101, 1, "\u{2A600}"], [[195102, 196605], 3], [[196606, 196607], 3], [[196608, 201546], 2], [[201547, 201551], 3], [[201552, 205743], 2], [[205744, 210041], 2], [[210042, 262141], 3], [[262142, 262143], 3], [[262144, 327677], 3], [[327678, 327679], 3], [[327680, 393213], 3], [[393214, 393215], 3], [[393216, 458749], 3], [[458750, 458751], 3], [[458752, 524285], 3], [[524286, 524287], 3], [[524288, 589821], 3], [[589822, 589823], 3], [[589824, 655357], 3], [[655358, 655359], 3], [[655360, 720893], 3], [[720894, 720895], 3], [[720896, 786429], 3], [[786430, 786431], 3], [[786432, 851965], 3], [[851966, 851967], 3], [[851968, 917501], 3], [[917502, 917503], 3], [917504, 3], [917505, 3], [[917506, 917535], 3], [[917536, 917631], 3], [[917632, 917759], 3], [[917760, 917999], 7], [[918e3, 983037], 3], [[983038, 983039], 3], [[983040, 1048573], 3], [[1048574, 1048575], 3], [[1048576, 1114109], 3], [[1114110, 1114111], 3]]; - } -}); - -// node_modules/tr46/lib/statusMapping.js -var require_statusMapping = __commonJS({ - "node_modules/tr46/lib/statusMapping.js"(exports, module2) { - "use strict"; - module2.exports.STATUS_MAPPING = { - mapped: 1, - valid: 2, - disallowed: 3, - deviation: 6, - ignored: 7 - }; - } -}); - -// node_modules/tr46/index.js -var require_tr46 = __commonJS({ - "node_modules/tr46/index.js"(exports, module2) { - "use strict"; - var punycode2 = (init_punycode_es6(), __toCommonJS(punycode_es6_exports)); - var regexes = require_regexes(); - var mappingTable = require_mappingTable(); - var { STATUS_MAPPING } = require_statusMapping(); - function containsNonASCII(str) { - return /[^\x00-\x7F]/u.test(str); - } - function findStatus(val) { - let start = 0; - let end = mappingTable.length - 1; - while (start <= end) { - const mid = Math.floor((start + end) / 2); - const target = mappingTable[mid]; - const min = Array.isArray(target[0]) ? target[0][0] : target[0]; - const max = Array.isArray(target[0]) ? target[0][1] : target[0]; - if (min <= val && max >= val) { - return target.slice(1); - } else if (min > val) { - end = mid - 1; - } else { - start = mid + 1; - } - } - return null; - } - function mapChars(domainName, { transitionalProcessing }) { - let processed = ""; - for (const ch of domainName) { - const [status, mapping] = findStatus(ch.codePointAt(0)); - switch (status) { - case STATUS_MAPPING.disallowed: - processed += ch; - break; - case STATUS_MAPPING.ignored: - break; - case STATUS_MAPPING.mapped: - if (transitionalProcessing && ch === "\u1E9E") { - processed += "ss"; - } else { - processed += mapping; - } - break; - case STATUS_MAPPING.deviation: - if (transitionalProcessing) { - processed += mapping; - } else { - processed += ch; - } - break; - case STATUS_MAPPING.valid: - processed += ch; - break; - } - } - return processed; - } - function validateLabel(label, { - checkHyphens, - checkBidi, - checkJoiners, - transitionalProcessing, - useSTD3ASCIIRules, - isBidi - }) { - if (label.length === 0) { - return true; - } - if (label.normalize("NFC") !== label) { - return false; - } - const codePoints = Array.from(label); - if (checkHyphens) { - if (codePoints[2] === "-" && codePoints[3] === "-" || (label.startsWith("-") || label.endsWith("-"))) { - return false; - } - } - if (!checkHyphens) { - if (label.startsWith("xn--")) { - return false; - } - } - if (label.includes(".")) { - return false; - } - if (regexes.combiningMarks.test(codePoints[0])) { - return false; - } - for (const ch of codePoints) { - const codePoint = ch.codePointAt(0); - const [status] = findStatus(codePoint); - if (transitionalProcessing) { - if (status !== STATUS_MAPPING.valid) { - return false; - } - } else if (status !== STATUS_MAPPING.valid && status !== STATUS_MAPPING.deviation) { - return false; - } - if (useSTD3ASCIIRules && codePoint <= 127) { - if (!/^(?:[a-z]|[0-9]|-)$/u.test(ch)) { - return false; - } - } - } - if (checkJoiners) { - let last = 0; - for (const [i2, ch] of codePoints.entries()) { - if (ch === "\u200C" || ch === "\u200D") { - if (i2 > 0) { - if (regexes.combiningClassVirama.test(codePoints[i2 - 1])) { - continue; - } - if (ch === "\u200C") { - const next = codePoints.indexOf("\u200C", i2 + 1); - const test = next < 0 ? codePoints.slice(last) : codePoints.slice(last, next); - if (regexes.validZWNJ.test(test.join(""))) { - last = i2 + 1; - continue; - } - } - } - return false; - } - } - } - if (checkBidi && isBidi) { - let rtl; - if (regexes.bidiS1LTR.test(codePoints[0])) { - rtl = false; - } else if (regexes.bidiS1RTL.test(codePoints[0])) { - rtl = true; - } else { - return false; - } - if (rtl) { - if (!regexes.bidiS2.test(label) || !regexes.bidiS3.test(label) || regexes.bidiS4EN.test(label) && regexes.bidiS4AN.test(label)) { - return false; - } - } else if (!regexes.bidiS5.test(label) || !regexes.bidiS6.test(label)) { - return false; - } - } - return true; - } - function isBidiDomain(labels) { - const domain2 = labels.map((label) => { - if (label.startsWith("xn--")) { - try { - return punycode2.decode(label.substring(4)); - } catch (e) { - return ""; - } - } - return label; - }).join("."); - return regexes.bidiDomain.test(domain2); - } - function processing(domainName, options) { - let string4 = mapChars(domainName, options); - string4 = string4.normalize("NFC"); - const labels = string4.split("."); - const isBidi = isBidiDomain(labels); - let error52 = false; - for (const [i2, origLabel] of labels.entries()) { - let label = origLabel; - let transitionalProcessingForThisLabel = options.transitionalProcessing; - if (label.startsWith("xn--")) { - if (containsNonASCII(label)) { - error52 = true; - continue; - } - try { - label = punycode2.decode(label.substring(4)); - } catch (e) { - if (!options.ignoreInvalidPunycode) { - error52 = true; - continue; - } - } - labels[i2] = label; - if (label === "" || !containsNonASCII(label)) { - error52 = true; - } - transitionalProcessingForThisLabel = false; - } - if (error52) { - continue; - } - const validation = validateLabel(label, __spreadProps(__spreadValues({}, options), { - transitionalProcessing: transitionalProcessingForThisLabel, - isBidi - })); - if (!validation) { - error52 = true; - } - } - return { - string: labels.join("."), - error: error52 - }; - } - function toASCII3(domainName, { - checkHyphens = false, - checkBidi = false, - checkJoiners = false, - useSTD3ASCIIRules = false, - verifyDNSLength = false, - transitionalProcessing = false, - ignoreInvalidPunycode = false - } = {}) { - const result = processing(domainName, { - checkHyphens, - checkBidi, - checkJoiners, - useSTD3ASCIIRules, - transitionalProcessing, - ignoreInvalidPunycode - }); - let labels = result.string.split("."); - labels = labels.map((l) => { - if (containsNonASCII(l)) { - try { - return `xn--${punycode2.encode(l)}`; - } catch (e) { - result.error = true; - } - } - return l; - }); - if (verifyDNSLength) { - const total = labels.join(".").length; - if (total > 253 || total === 0) { - result.error = true; - } - for (let i2 = 0; i2 < labels.length; ++i2) { - if (labels[i2].length > 63 || labels[i2].length === 0) { - result.error = true; - break; - } - } - } - if (result.error) { - return null; - } - return labels.join("."); - } - function toUnicode2(domainName, { - checkHyphens = false, - checkBidi = false, - checkJoiners = false, - useSTD3ASCIIRules = false, - transitionalProcessing = false, - ignoreInvalidPunycode = false - } = {}) { - const result = processing(domainName, { - checkHyphens, - checkBidi, - checkJoiners, - useSTD3ASCIIRules, - transitionalProcessing, - ignoreInvalidPunycode - }); - return { - domain: result.string, - error: result.error - }; - } - module2.exports = { - toASCII: toASCII3, - toUnicode: toUnicode2 - }; - } -}); - -// packages/workshop/src/pocketbase-validator.ts -var pocketbase_validator_exports = {}; -__export(pocketbase_validator_exports, { - validatePocketBaseWidget: () => validatePocketBaseWidget -}); -module.exports = __toCommonJS(pocketbase_validator_exports); - -// node_modules/zod/v4/classic/external.js -var external_exports = {}; -__export(external_exports, { - $brand: () => $brand, - $input: () => $input, - $output: () => $output, - NEVER: () => NEVER, - TimePrecision: () => TimePrecision, - ZodAny: () => ZodAny, - ZodArray: () => ZodArray, - ZodBase64: () => ZodBase64, - ZodBase64URL: () => ZodBase64URL, - ZodBigInt: () => ZodBigInt, - ZodBigIntFormat: () => ZodBigIntFormat, - ZodBoolean: () => ZodBoolean, - ZodCIDRv4: () => ZodCIDRv4, - ZodCIDRv6: () => ZodCIDRv6, - ZodCUID: () => ZodCUID, - ZodCUID2: () => ZodCUID2, - ZodCatch: () => ZodCatch, - ZodCodec: () => ZodCodec, - ZodCustom: () => ZodCustom, - ZodCustomStringFormat: () => ZodCustomStringFormat, - ZodDate: () => ZodDate, - ZodDefault: () => ZodDefault, - ZodDiscriminatedUnion: () => ZodDiscriminatedUnion, - ZodE164: () => ZodE164, - ZodEmail: () => ZodEmail, - ZodEmoji: () => ZodEmoji, - ZodEnum: () => ZodEnum, - ZodError: () => ZodError, - ZodExactOptional: () => ZodExactOptional, - ZodFile: () => ZodFile, - ZodFirstPartyTypeKind: () => ZodFirstPartyTypeKind, - ZodFunction: () => ZodFunction, - ZodGUID: () => ZodGUID, - ZodIPv4: () => ZodIPv4, - ZodIPv6: () => ZodIPv6, - ZodISODate: () => ZodISODate, - ZodISODateTime: () => ZodISODateTime, - ZodISODuration: () => ZodISODuration, - ZodISOTime: () => ZodISOTime, - ZodIntersection: () => ZodIntersection, - ZodIssueCode: () => ZodIssueCode, - ZodJWT: () => ZodJWT, - ZodKSUID: () => ZodKSUID, - ZodLazy: () => ZodLazy, - ZodLiteral: () => ZodLiteral, - ZodMAC: () => ZodMAC, - ZodMap: () => ZodMap, - ZodNaN: () => ZodNaN, - ZodNanoID: () => ZodNanoID, - ZodNever: () => ZodNever, - ZodNonOptional: () => ZodNonOptional, - ZodNull: () => ZodNull, - ZodNullable: () => ZodNullable, - ZodNumber: () => ZodNumber, - ZodNumberFormat: () => ZodNumberFormat, - ZodObject: () => ZodObject, - ZodOptional: () => ZodOptional, - ZodPipe: () => ZodPipe, - ZodPrefault: () => ZodPrefault, - ZodPreprocess: () => ZodPreprocess, - ZodPromise: () => ZodPromise, - ZodReadonly: () => ZodReadonly, - ZodRealError: () => ZodRealError, - ZodRecord: () => ZodRecord, - ZodSet: () => ZodSet, - ZodString: () => ZodString, - ZodStringFormat: () => ZodStringFormat, - ZodSuccess: () => ZodSuccess, - ZodSymbol: () => ZodSymbol, - ZodTemplateLiteral: () => ZodTemplateLiteral, - ZodTransform: () => ZodTransform, - ZodTuple: () => ZodTuple, - ZodType: () => ZodType, - ZodULID: () => ZodULID, - ZodURL: () => ZodURL, - ZodUUID: () => ZodUUID, - ZodUndefined: () => ZodUndefined, - ZodUnion: () => ZodUnion, - ZodUnknown: () => ZodUnknown, - ZodVoid: () => ZodVoid, - ZodXID: () => ZodXID, - ZodXor: () => ZodXor, - _ZodString: () => _ZodString, - _default: () => _default2, - _function: () => _function, - any: () => any, - array: () => array, - base64: () => base642, - base64url: () => base64url2, - bigint: () => bigint2, - boolean: () => boolean2, - catch: () => _catch2, - check: () => check, - cidrv4: () => cidrv42, - cidrv6: () => cidrv62, - clone: () => clone, - codec: () => codec, - coerce: () => coerce_exports, - config: () => config, - core: () => core_exports2, - cuid: () => cuid3, - cuid2: () => cuid22, - custom: () => custom, - date: () => date3, - decode: () => decode2, - decodeAsync: () => decodeAsync2, - describe: () => describe2, - discriminatedUnion: () => discriminatedUnion, - e164: () => e1642, - email: () => email2, - emoji: () => emoji2, - encode: () => encode2, - encodeAsync: () => encodeAsync2, - endsWith: () => _endsWith, - enum: () => _enum2, - exactOptional: () => exactOptional, - file: () => file, - flattenError: () => flattenError, - float32: () => float32, - float64: () => float64, - formatError: () => formatError, - fromJSONSchema: () => fromJSONSchema, - function: () => _function, - getErrorMap: () => getErrorMap, - globalRegistry: () => globalRegistry, - gt: () => _gt, - gte: () => _gte, - guid: () => guid2, - hash: () => hash, - hex: () => hex2, - hostname: () => hostname2, - httpUrl: () => httpUrl, - includes: () => _includes, - instanceof: () => _instanceof, - int: () => int, - int32: () => int32, - int64: () => int64, - intersection: () => intersection, - invertCodec: () => invertCodec, - ipv4: () => ipv42, - ipv6: () => ipv62, - iso: () => iso_exports, - json: () => json, - jwt: () => jwt, - keyof: () => keyof, - ksuid: () => ksuid2, - lazy: () => lazy, - length: () => _length, - literal: () => literal, - locales: () => locales_exports, - looseObject: () => looseObject, - looseRecord: () => looseRecord, - lowercase: () => _lowercase, - lt: () => _lt, - lte: () => _lte, - mac: () => mac2, - map: () => map, - maxLength: () => _maxLength, - maxSize: () => _maxSize, - meta: () => meta2, - mime: () => _mime, - minLength: () => _minLength, - minSize: () => _minSize, - multipleOf: () => _multipleOf, - nan: () => nan, - nanoid: () => nanoid2, - nativeEnum: () => nativeEnum, - negative: () => _negative, - never: () => never, - nonnegative: () => _nonnegative, - nonoptional: () => nonoptional, - nonpositive: () => _nonpositive, - normalize: () => _normalize, - null: () => _null3, - nullable: () => nullable, - nullish: () => nullish2, - number: () => number2, - object: () => object, - optional: () => optional, - overwrite: () => _overwrite, - parse: () => parse2, - parseAsync: () => parseAsync2, - partialRecord: () => partialRecord, - pipe: () => pipe, - positive: () => _positive, - prefault: () => prefault, - preprocess: () => preprocess, - prettifyError: () => prettifyError, - promise: () => promise, - property: () => _property, - readonly: () => readonly, - record: () => record, - refine: () => refine, - regex: () => _regex, - regexes: () => regexes_exports, - registry: () => registry, - safeDecode: () => safeDecode2, - safeDecodeAsync: () => safeDecodeAsync2, - safeEncode: () => safeEncode2, - safeEncodeAsync: () => safeEncodeAsync2, - safeParse: () => safeParse2, - safeParseAsync: () => safeParseAsync2, - set: () => set, - setErrorMap: () => setErrorMap, - size: () => _size, - slugify: () => _slugify, - startsWith: () => _startsWith, - strictObject: () => strictObject, - string: () => string2, - stringFormat: () => stringFormat, - stringbool: () => stringbool, - success: () => success, - superRefine: () => superRefine, - symbol: () => symbol, - templateLiteral: () => templateLiteral, - toJSONSchema: () => toJSONSchema, - toLowerCase: () => _toLowerCase, - toUpperCase: () => _toUpperCase, - transform: () => transform, - treeifyError: () => treeifyError, - trim: () => _trim, - tuple: () => tuple, - uint32: () => uint32, - uint64: () => uint64, - ulid: () => ulid2, - undefined: () => _undefined3, - union: () => union, - unknown: () => unknown, - uppercase: () => _uppercase, - url: () => url, - util: () => util_exports, - uuid: () => uuid2, - uuidv4: () => uuidv4, - uuidv6: () => uuidv6, - uuidv7: () => uuidv7, - void: () => _void2, - xid: () => xid2, - xor: () => xor -}); - -// node_modules/zod/v4/core/index.js -var core_exports2 = {}; -__export(core_exports2, { - $ZodAny: () => $ZodAny, - $ZodArray: () => $ZodArray, - $ZodAsyncError: () => $ZodAsyncError, - $ZodBase64: () => $ZodBase64, - $ZodBase64URL: () => $ZodBase64URL, - $ZodBigInt: () => $ZodBigInt, - $ZodBigIntFormat: () => $ZodBigIntFormat, - $ZodBoolean: () => $ZodBoolean, - $ZodCIDRv4: () => $ZodCIDRv4, - $ZodCIDRv6: () => $ZodCIDRv6, - $ZodCUID: () => $ZodCUID, - $ZodCUID2: () => $ZodCUID2, - $ZodCatch: () => $ZodCatch, - $ZodCheck: () => $ZodCheck, - $ZodCheckBigIntFormat: () => $ZodCheckBigIntFormat, - $ZodCheckEndsWith: () => $ZodCheckEndsWith, - $ZodCheckGreaterThan: () => $ZodCheckGreaterThan, - $ZodCheckIncludes: () => $ZodCheckIncludes, - $ZodCheckLengthEquals: () => $ZodCheckLengthEquals, - $ZodCheckLessThan: () => $ZodCheckLessThan, - $ZodCheckLowerCase: () => $ZodCheckLowerCase, - $ZodCheckMaxLength: () => $ZodCheckMaxLength, - $ZodCheckMaxSize: () => $ZodCheckMaxSize, - $ZodCheckMimeType: () => $ZodCheckMimeType, - $ZodCheckMinLength: () => $ZodCheckMinLength, - $ZodCheckMinSize: () => $ZodCheckMinSize, - $ZodCheckMultipleOf: () => $ZodCheckMultipleOf, - $ZodCheckNumberFormat: () => $ZodCheckNumberFormat, - $ZodCheckOverwrite: () => $ZodCheckOverwrite, - $ZodCheckProperty: () => $ZodCheckProperty, - $ZodCheckRegex: () => $ZodCheckRegex, - $ZodCheckSizeEquals: () => $ZodCheckSizeEquals, - $ZodCheckStartsWith: () => $ZodCheckStartsWith, - $ZodCheckStringFormat: () => $ZodCheckStringFormat, - $ZodCheckUpperCase: () => $ZodCheckUpperCase, - $ZodCodec: () => $ZodCodec, - $ZodCustom: () => $ZodCustom, - $ZodCustomStringFormat: () => $ZodCustomStringFormat, - $ZodDate: () => $ZodDate, - $ZodDefault: () => $ZodDefault, - $ZodDiscriminatedUnion: () => $ZodDiscriminatedUnion, - $ZodE164: () => $ZodE164, - $ZodEmail: () => $ZodEmail, - $ZodEmoji: () => $ZodEmoji, - $ZodEncodeError: () => $ZodEncodeError, - $ZodEnum: () => $ZodEnum, - $ZodError: () => $ZodError, - $ZodExactOptional: () => $ZodExactOptional, - $ZodFile: () => $ZodFile, - $ZodFunction: () => $ZodFunction, - $ZodGUID: () => $ZodGUID, - $ZodIPv4: () => $ZodIPv4, - $ZodIPv6: () => $ZodIPv6, - $ZodISODate: () => $ZodISODate, - $ZodISODateTime: () => $ZodISODateTime, - $ZodISODuration: () => $ZodISODuration, - $ZodISOTime: () => $ZodISOTime, - $ZodIntersection: () => $ZodIntersection, - $ZodJWT: () => $ZodJWT, - $ZodKSUID: () => $ZodKSUID, - $ZodLazy: () => $ZodLazy, - $ZodLiteral: () => $ZodLiteral, - $ZodMAC: () => $ZodMAC, - $ZodMap: () => $ZodMap, - $ZodNaN: () => $ZodNaN, - $ZodNanoID: () => $ZodNanoID, - $ZodNever: () => $ZodNever, - $ZodNonOptional: () => $ZodNonOptional, - $ZodNull: () => $ZodNull, - $ZodNullable: () => $ZodNullable, - $ZodNumber: () => $ZodNumber, - $ZodNumberFormat: () => $ZodNumberFormat, - $ZodObject: () => $ZodObject, - $ZodObjectJIT: () => $ZodObjectJIT, - $ZodOptional: () => $ZodOptional, - $ZodPipe: () => $ZodPipe, - $ZodPrefault: () => $ZodPrefault, - $ZodPreprocess: () => $ZodPreprocess, - $ZodPromise: () => $ZodPromise, - $ZodReadonly: () => $ZodReadonly, - $ZodRealError: () => $ZodRealError, - $ZodRecord: () => $ZodRecord, - $ZodRegistry: () => $ZodRegistry, - $ZodSet: () => $ZodSet, - $ZodString: () => $ZodString, - $ZodStringFormat: () => $ZodStringFormat, - $ZodSuccess: () => $ZodSuccess, - $ZodSymbol: () => $ZodSymbol, - $ZodTemplateLiteral: () => $ZodTemplateLiteral, - $ZodTransform: () => $ZodTransform, - $ZodTuple: () => $ZodTuple, - $ZodType: () => $ZodType, - $ZodULID: () => $ZodULID, - $ZodURL: () => $ZodURL, - $ZodUUID: () => $ZodUUID, - $ZodUndefined: () => $ZodUndefined, - $ZodUnion: () => $ZodUnion, - $ZodUnknown: () => $ZodUnknown, - $ZodVoid: () => $ZodVoid, - $ZodXID: () => $ZodXID, - $ZodXor: () => $ZodXor, - $brand: () => $brand, - $constructor: () => $constructor, - $input: () => $input, - $output: () => $output, - Doc: () => Doc, - JSONSchema: () => json_schema_exports, - JSONSchemaGenerator: () => JSONSchemaGenerator, - NEVER: () => NEVER, - TimePrecision: () => TimePrecision, - _any: () => _any, - _array: () => _array, - _base64: () => _base64, - _base64url: () => _base64url, - _bigint: () => _bigint, - _boolean: () => _boolean, - _catch: () => _catch, - _check: () => _check, - _cidrv4: () => _cidrv4, - _cidrv6: () => _cidrv6, - _coercedBigint: () => _coercedBigint, - _coercedBoolean: () => _coercedBoolean, - _coercedDate: () => _coercedDate, - _coercedNumber: () => _coercedNumber, - _coercedString: () => _coercedString, - _cuid: () => _cuid, - _cuid2: () => _cuid2, - _custom: () => _custom, - _date: () => _date, - _decode: () => _decode, - _decodeAsync: () => _decodeAsync, - _default: () => _default, - _discriminatedUnion: () => _discriminatedUnion, - _e164: () => _e164, - _email: () => _email, - _emoji: () => _emoji2, - _encode: () => _encode, - _encodeAsync: () => _encodeAsync, - _endsWith: () => _endsWith, - _enum: () => _enum, - _file: () => _file, - _float32: () => _float32, - _float64: () => _float64, - _gt: () => _gt, - _gte: () => _gte, - _guid: () => _guid, - _includes: () => _includes, - _int: () => _int, - _int32: () => _int32, - _int64: () => _int64, - _intersection: () => _intersection, - _ipv4: () => _ipv4, - _ipv6: () => _ipv6, - _isoDate: () => _isoDate, - _isoDateTime: () => _isoDateTime, - _isoDuration: () => _isoDuration, - _isoTime: () => _isoTime, - _jwt: () => _jwt, - _ksuid: () => _ksuid, - _lazy: () => _lazy, - _length: () => _length, - _literal: () => _literal, - _lowercase: () => _lowercase, - _lt: () => _lt, - _lte: () => _lte, - _mac: () => _mac, - _map: () => _map, - _max: () => _lte, - _maxLength: () => _maxLength, - _maxSize: () => _maxSize, - _mime: () => _mime, - _min: () => _gte, - _minLength: () => _minLength, - _minSize: () => _minSize, - _multipleOf: () => _multipleOf, - _nan: () => _nan, - _nanoid: () => _nanoid, - _nativeEnum: () => _nativeEnum, - _negative: () => _negative, - _never: () => _never, - _nonnegative: () => _nonnegative, - _nonoptional: () => _nonoptional, - _nonpositive: () => _nonpositive, - _normalize: () => _normalize, - _null: () => _null2, - _nullable: () => _nullable, - _number: () => _number, - _optional: () => _optional, - _overwrite: () => _overwrite, - _parse: () => _parse, - _parseAsync: () => _parseAsync, - _pipe: () => _pipe, - _positive: () => _positive, - _promise: () => _promise, - _property: () => _property, - _readonly: () => _readonly, - _record: () => _record, - _refine: () => _refine, - _regex: () => _regex, - _safeDecode: () => _safeDecode, - _safeDecodeAsync: () => _safeDecodeAsync, - _safeEncode: () => _safeEncode, - _safeEncodeAsync: () => _safeEncodeAsync, - _safeParse: () => _safeParse, - _safeParseAsync: () => _safeParseAsync, - _set: () => _set, - _size: () => _size, - _slugify: () => _slugify, - _startsWith: () => _startsWith, - _string: () => _string, - _stringFormat: () => _stringFormat, - _stringbool: () => _stringbool, - _success: () => _success, - _superRefine: () => _superRefine, - _symbol: () => _symbol, - _templateLiteral: () => _templateLiteral, - _toLowerCase: () => _toLowerCase, - _toUpperCase: () => _toUpperCase, - _transform: () => _transform, - _trim: () => _trim, - _tuple: () => _tuple, - _uint32: () => _uint32, - _uint64: () => _uint64, - _ulid: () => _ulid, - _undefined: () => _undefined2, - _union: () => _union, - _unknown: () => _unknown, - _uppercase: () => _uppercase, - _url: () => _url, - _uuid: () => _uuid, - _uuidv4: () => _uuidv4, - _uuidv6: () => _uuidv6, - _uuidv7: () => _uuidv7, - _void: () => _void, - _xid: () => _xid, - _xor: () => _xor, - clone: () => clone, - config: () => config, - createStandardJSONSchemaMethod: () => createStandardJSONSchemaMethod, - createToJSONSchemaMethod: () => createToJSONSchemaMethod, - decode: () => decode, - decodeAsync: () => decodeAsync, - describe: () => describe, - encode: () => encode, - encodeAsync: () => encodeAsync, - extractDefs: () => extractDefs, - finalize: () => finalize, - flattenError: () => flattenError, - formatError: () => formatError, - globalConfig: () => globalConfig, - globalRegistry: () => globalRegistry, - initializeContext: () => initializeContext, - isValidBase64: () => isValidBase64, - isValidBase64URL: () => isValidBase64URL, - isValidJWT: () => isValidJWT, - locales: () => locales_exports, - meta: () => meta, - parse: () => parse, - parseAsync: () => parseAsync, - prettifyError: () => prettifyError, - process: () => process, - regexes: () => regexes_exports, - registry: () => registry, - safeDecode: () => safeDecode, - safeDecodeAsync: () => safeDecodeAsync, - safeEncode: () => safeEncode, - safeEncodeAsync: () => safeEncodeAsync, - safeParse: () => safeParse, - safeParseAsync: () => safeParseAsync, - toDotPath: () => toDotPath, - toJSONSchema: () => toJSONSchema, - treeifyError: () => treeifyError, - util: () => util_exports, - version: () => version -}); - -// node_modules/zod/v4/core/core.js -var _a; -var NEVER = /* @__PURE__ */ Object.freeze({ - status: "aborted" -}); -// @__NO_SIDE_EFFECTS__ -function $constructor(name, initializer3, params) { - var _a5; - function init(inst, def) { - if (!inst._zod) { - Object.defineProperty(inst, "_zod", { - value: { - def, - constr: _, - traits: /* @__PURE__ */ new Set() - }, - enumerable: false - }); - } - if (inst._zod.traits.has(name)) { - return; - } - inst._zod.traits.add(name); - initializer3(inst, def); - const proto = _.prototype; - const keys = Object.keys(proto); - for (let i2 = 0; i2 < keys.length; i2++) { - const k = keys[i2]; - if (!(k in inst)) { - inst[k] = proto[k].bind(inst); - } - } - } - const Parent = (_a5 = params == null ? void 0 : params.Parent) != null ? _a5 : Object; - class Definition extends Parent { - } - Object.defineProperty(Definition, "name", { value: name }); - function _(def) { - var _a7; - var _a6; - const inst = (params == null ? void 0 : params.Parent) ? new Definition() : this; - init(inst, def); - (_a7 = (_a6 = inst._zod).deferred) != null ? _a7 : _a6.deferred = []; - for (const fn of inst._zod.deferred) { - fn(); - } - return inst; - } - Object.defineProperty(_, "init", { value: init }); - Object.defineProperty(_, Symbol.hasInstance, { - value: (inst) => { - var _a6, _b; - if ((params == null ? void 0 : params.Parent) && inst instanceof params.Parent) - return true; - return (_b = (_a6 = inst == null ? void 0 : inst._zod) == null ? void 0 : _a6.traits) == null ? void 0 : _b.has(name); - } - }); - Object.defineProperty(_, "name", { value: name }); - return _; -} -var $brand = /* @__PURE__ */ Symbol("zod_brand"); -var $ZodAsyncError = class extends Error { - constructor() { - super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`); - } -}; -var $ZodEncodeError = class extends Error { - constructor(name) { - super(`Encountered unidirectional transform during encode: ${name}`); - this.name = "ZodEncodeError"; - } -}; -var _a2; -(_a2 = (_a = globalThis).__zod_globalConfig) != null ? _a2 : _a.__zod_globalConfig = {}; -var globalConfig = globalThis.__zod_globalConfig; -function config(newConfig) { - if (newConfig) - Object.assign(globalConfig, newConfig); - return globalConfig; -} - -// node_modules/zod/v4/core/util.js -var util_exports = {}; -__export(util_exports, { - BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES, - Class: () => Class, - NUMBER_FORMAT_RANGES: () => NUMBER_FORMAT_RANGES, - aborted: () => aborted, - allowsEval: () => allowsEval, - assert: () => assert, - assertEqual: () => assertEqual, - assertIs: () => assertIs, - assertNever: () => assertNever, - assertNotEqual: () => assertNotEqual, - assignProp: () => assignProp, - base64ToUint8Array: () => base64ToUint8Array, - base64urlToUint8Array: () => base64urlToUint8Array, - cached: () => cached, - captureStackTrace: () => captureStackTrace, - cleanEnum: () => cleanEnum, - cleanRegex: () => cleanRegex, - clone: () => clone, - cloneDef: () => cloneDef, - createTransparentProxy: () => createTransparentProxy, - defineLazy: () => defineLazy, - esc: () => esc, - escapeRegex: () => escapeRegex, - explicitlyAborted: () => explicitlyAborted, - extend: () => extend, - finalizeIssue: () => finalizeIssue, - floatSafeRemainder: () => floatSafeRemainder, - getElementAtPath: () => getElementAtPath, - getEnumValues: () => getEnumValues, - getLengthableOrigin: () => getLengthableOrigin, - getParsedType: () => getParsedType, - getSizableOrigin: () => getSizableOrigin, - hexToUint8Array: () => hexToUint8Array, - isObject: () => isObject, - isPlainObject: () => isPlainObject, - issue: () => issue, - joinValues: () => joinValues, - jsonStringifyReplacer: () => jsonStringifyReplacer, - merge: () => merge, - mergeDefs: () => mergeDefs, - normalizeParams: () => normalizeParams, - nullish: () => nullish, - numKeys: () => numKeys, - objectClone: () => objectClone, - omit: () => omit, - optionalKeys: () => optionalKeys, - parsedType: () => parsedType, - partial: () => partial, - pick: () => pick, - prefixIssues: () => prefixIssues, - primitiveTypes: () => primitiveTypes, - promiseAllObject: () => promiseAllObject, - propertyKeyTypes: () => propertyKeyTypes, - randomString: () => randomString, - required: () => required, - safeExtend: () => safeExtend, - shallowClone: () => shallowClone, - slugify: () => slugify, - stringifyPrimitive: () => stringifyPrimitive, - uint8ArrayToBase64: () => uint8ArrayToBase64, - uint8ArrayToBase64url: () => uint8ArrayToBase64url, - uint8ArrayToHex: () => uint8ArrayToHex, - unwrapMessage: () => unwrapMessage -}); -function assertEqual(val) { - return val; -} -function assertNotEqual(val) { - return val; -} -function assertIs(_arg) { -} -function assertNever(_x) { - throw new Error("Unexpected value in exhaustive check"); -} -function assert(_) { -} -function getEnumValues(entries) { - const numericValues = Object.values(entries).filter((v) => typeof v === "number"); - const values = Object.entries(entries).filter(([k, _]) => numericValues.indexOf(+k) === -1).map(([_, v]) => v); - return values; -} -function joinValues(array2, separator = "|") { - return array2.map((val) => stringifyPrimitive(val)).join(separator); -} -function jsonStringifyReplacer(_, value) { - if (typeof value === "bigint") - return value.toString(); - return value; -} -function cached(getter) { - const set2 = false; - return { - get value() { - if (!set2) { - const value = getter(); - Object.defineProperty(this, "value", { value }); - return value; - } - throw new Error("cached value already set"); - } - }; -} -function nullish(input) { - return input === null || input === void 0; -} -function cleanRegex(source) { - const start = source.startsWith("^") ? 1 : 0; - const end = source.endsWith("$") ? source.length - 1 : source.length; - return source.slice(start, end); -} -function floatSafeRemainder(val, step) { - const ratio = val / step; - const roundedRatio = Math.round(ratio); - const tolerance = Number.EPSILON * Math.max(Math.abs(ratio), 1); - if (Math.abs(ratio - roundedRatio) < tolerance) - return 0; - return ratio - roundedRatio; -} -var EVALUATING = /* @__PURE__ */ Symbol("evaluating"); -function defineLazy(object2, key, getter) { - let value = void 0; - Object.defineProperty(object2, key, { - get() { - if (value === EVALUATING) { - return void 0; - } - if (value === void 0) { - value = EVALUATING; - value = getter(); - } - return value; - }, - set(v) { - Object.defineProperty(object2, key, { - value: v - // configurable: true, - }); - }, - configurable: true - }); -} -function objectClone(obj) { - return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj)); -} -function assignProp(target, prop, value) { - Object.defineProperty(target, prop, { - value, - writable: true, - enumerable: true, - configurable: true - }); -} -function mergeDefs(...defs) { - const mergedDescriptors = {}; - for (const def of defs) { - const descriptors = Object.getOwnPropertyDescriptors(def); - Object.assign(mergedDescriptors, descriptors); - } - return Object.defineProperties({}, mergedDescriptors); -} -function cloneDef(schema) { - return mergeDefs(schema._zod.def); -} -function getElementAtPath(obj, path) { - if (!path) - return obj; - return path.reduce((acc, key) => acc == null ? void 0 : acc[key], obj); -} -function promiseAllObject(promisesObj) { - const keys = Object.keys(promisesObj); - const promises = keys.map((key) => promisesObj[key]); - return Promise.all(promises).then((results) => { - const resolvedObj = {}; - for (let i2 = 0; i2 < keys.length; i2++) { - resolvedObj[keys[i2]] = results[i2]; - } - return resolvedObj; - }); -} -function randomString(length = 10) { - const chars = "abcdefghijklmnopqrstuvwxyz"; - let str = ""; - for (let i2 = 0; i2 < length; i2++) { - str += chars[Math.floor(Math.random() * chars.length)]; - } - return str; -} -function esc(str) { - return JSON.stringify(str); -} -function slugify(input) { - return input.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "-").replace(/^-+|-+$/g, ""); -} -var captureStackTrace = "captureStackTrace" in Error ? Error.captureStackTrace : (..._args) => { -}; -function isObject(data2) { - return typeof data2 === "object" && data2 !== null && !Array.isArray(data2); -} -var allowsEval = /* @__PURE__ */ cached(() => { - var _a5; - if (globalConfig.jitless) { - return false; - } - if (typeof navigator !== "undefined" && ((_a5 = navigator == null ? void 0 : navigator.userAgent) == null ? void 0 : _a5.includes("Cloudflare"))) { - return false; - } - try { - const F = Function; - new F(""); - return true; - } catch (_) { - return false; - } -}); -function isPlainObject(o) { - if (isObject(o) === false) - return false; - const ctor = o.constructor; - if (ctor === void 0) - return true; - if (typeof ctor !== "function") - return true; - const prot = ctor.prototype; - if (isObject(prot) === false) - return false; - if (Object.prototype.hasOwnProperty.call(prot, "isPrototypeOf") === false) { - return false; - } - return true; -} -function shallowClone(o) { - if (isPlainObject(o)) - return __spreadValues({}, o); - if (Array.isArray(o)) - return [...o]; - if (o instanceof Map) - return new Map(o); - if (o instanceof Set) - return new Set(o); - return o; -} -function numKeys(data2) { - let keyCount = 0; - for (const key in data2) { - if (Object.prototype.hasOwnProperty.call(data2, key)) { - keyCount++; - } - } - return keyCount; -} -var getParsedType = (data2) => { - const t = typeof data2; - switch (t) { - case "undefined": - return "undefined"; - case "string": - return "string"; - case "number": - return Number.isNaN(data2) ? "nan" : "number"; - case "boolean": - return "boolean"; - case "function": - return "function"; - case "bigint": - return "bigint"; - case "symbol": - return "symbol"; - case "object": - if (Array.isArray(data2)) { - return "array"; - } - if (data2 === null) { - return "null"; - } - if (data2.then && typeof data2.then === "function" && data2.catch && typeof data2.catch === "function") { - return "promise"; - } - if (typeof Map !== "undefined" && data2 instanceof Map) { - return "map"; - } - if (typeof Set !== "undefined" && data2 instanceof Set) { - return "set"; - } - if (typeof Date !== "undefined" && data2 instanceof Date) { - return "date"; - } - if (typeof File !== "undefined" && data2 instanceof File) { - return "file"; - } - return "object"; - default: - throw new Error(`Unknown data type: ${t}`); - } -}; -var propertyKeyTypes = /* @__PURE__ */ new Set(["string", "number", "symbol"]); -var primitiveTypes = /* @__PURE__ */ new Set([ - "string", - "number", - "bigint", - "boolean", - "symbol", - "undefined" -]); -function escapeRegex(str) { - return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); -} -function clone(inst, def, params) { - const cl = new inst._zod.constr(def != null ? def : inst._zod.def); - if (!def || (params == null ? void 0 : params.parent)) - cl._zod.parent = inst; - return cl; -} -function normalizeParams(_params) { - const params = _params; - if (!params) - return {}; - if (typeof params === "string") - return { error: () => params }; - if ((params == null ? void 0 : params.message) !== void 0) { - if ((params == null ? void 0 : params.error) !== void 0) - throw new Error("Cannot specify both `message` and `error` params"); - params.error = params.message; - } - delete params.message; - if (typeof params.error === "string") - return __spreadProps(__spreadValues({}, params), { error: () => params.error }); - return params; -} -function createTransparentProxy(getter) { - let target; - return new Proxy({}, { - get(_, prop, receiver) { - target != null ? target : target = getter(); - return Reflect.get(target, prop, receiver); - }, - set(_, prop, value, receiver) { - target != null ? target : target = getter(); - return Reflect.set(target, prop, value, receiver); - }, - has(_, prop) { - target != null ? target : target = getter(); - return Reflect.has(target, prop); - }, - deleteProperty(_, prop) { - target != null ? target : target = getter(); - return Reflect.deleteProperty(target, prop); - }, - ownKeys(_) { - target != null ? target : target = getter(); - return Reflect.ownKeys(target); - }, - getOwnPropertyDescriptor(_, prop) { - target != null ? target : target = getter(); - return Reflect.getOwnPropertyDescriptor(target, prop); - }, - defineProperty(_, prop, descriptor) { - target != null ? target : target = getter(); - return Reflect.defineProperty(target, prop, descriptor); - } - }); -} -function stringifyPrimitive(value) { - if (typeof value === "bigint") - return value.toString() + "n"; - if (typeof value === "string") - return `"${value}"`; - return `${value}`; -} -function optionalKeys(shape) { - return Object.keys(shape).filter((k) => { - return shape[k]._zod.optin === "optional" && shape[k]._zod.optout === "optional"; - }); -} -var NUMBER_FORMAT_RANGES = { - safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER], - int32: [-2147483648, 2147483647], - uint32: [0, 4294967295], - float32: [-34028234663852886e22, 34028234663852886e22], - float64: [-Number.MAX_VALUE, Number.MAX_VALUE] -}; -var BIGINT_FORMAT_RANGES = { - int64: [/* @__PURE__ */ BigInt("-9223372036854775808"), /* @__PURE__ */ BigInt("9223372036854775807")], - uint64: [/* @__PURE__ */ BigInt(0), /* @__PURE__ */ BigInt("18446744073709551615")] -}; -function pick(schema, mask) { - const currDef = schema._zod.def; - const checks = currDef.checks; - const hasChecks = checks && checks.length > 0; - if (hasChecks) { - throw new Error(".pick() cannot be used on object schemas containing refinements"); - } - const def = mergeDefs(schema._zod.def, { - get shape() { - const newShape = {}; - for (const key in mask) { - if (!(key in currDef.shape)) { - throw new Error(`Unrecognized key: "${key}"`); - } - if (!mask[key]) - continue; - newShape[key] = currDef.shape[key]; - } - assignProp(this, "shape", newShape); - return newShape; - }, - checks: [] - }); - return clone(schema, def); -} -function omit(schema, mask) { - const currDef = schema._zod.def; - const checks = currDef.checks; - const hasChecks = checks && checks.length > 0; - if (hasChecks) { - throw new Error(".omit() cannot be used on object schemas containing refinements"); - } - const def = mergeDefs(schema._zod.def, { - get shape() { - const newShape = __spreadValues({}, schema._zod.def.shape); - for (const key in mask) { - if (!(key in currDef.shape)) { - throw new Error(`Unrecognized key: "${key}"`); - } - if (!mask[key]) - continue; - delete newShape[key]; - } - assignProp(this, "shape", newShape); - return newShape; - }, - checks: [] - }); - return clone(schema, def); -} -function extend(schema, shape) { - if (!isPlainObject(shape)) { - throw new Error("Invalid input to extend: expected a plain object"); - } - const checks = schema._zod.def.checks; - const hasChecks = checks && checks.length > 0; - if (hasChecks) { - const existingShape = schema._zod.def.shape; - for (const key in shape) { - if (Object.getOwnPropertyDescriptor(existingShape, key) !== void 0) { - throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead."); - } - } - } - const def = mergeDefs(schema._zod.def, { - get shape() { - const _shape = __spreadValues(__spreadValues({}, schema._zod.def.shape), shape); - assignProp(this, "shape", _shape); - return _shape; - } - }); - return clone(schema, def); -} -function safeExtend(schema, shape) { - if (!isPlainObject(shape)) { - throw new Error("Invalid input to safeExtend: expected a plain object"); - } - const def = mergeDefs(schema._zod.def, { - get shape() { - const _shape = __spreadValues(__spreadValues({}, schema._zod.def.shape), shape); - assignProp(this, "shape", _shape); - return _shape; - } - }); - return clone(schema, def); -} -function merge(a, b) { - var _a5, _b; - if ((_a5 = a._zod.def.checks) == null ? void 0 : _a5.length) { - throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead."); - } - const def = mergeDefs(a._zod.def, { - get shape() { - const _shape = __spreadValues(__spreadValues({}, a._zod.def.shape), b._zod.def.shape); - assignProp(this, "shape", _shape); - return _shape; - }, - get catchall() { - return b._zod.def.catchall; - }, - checks: (_b = b._zod.def.checks) != null ? _b : [] - }); - return clone(a, def); -} -function partial(Class2, schema, mask) { - const currDef = schema._zod.def; - const checks = currDef.checks; - const hasChecks = checks && checks.length > 0; - if (hasChecks) { - throw new Error(".partial() cannot be used on object schemas containing refinements"); - } - const def = mergeDefs(schema._zod.def, { - get shape() { - const oldShape = schema._zod.def.shape; - const shape = __spreadValues({}, oldShape); - if (mask) { - for (const key in mask) { - if (!(key in oldShape)) { - throw new Error(`Unrecognized key: "${key}"`); - } - if (!mask[key]) - continue; - shape[key] = Class2 ? new Class2({ - type: "optional", - innerType: oldShape[key] - }) : oldShape[key]; - } - } else { - for (const key in oldShape) { - shape[key] = Class2 ? new Class2({ - type: "optional", - innerType: oldShape[key] - }) : oldShape[key]; - } - } - assignProp(this, "shape", shape); - return shape; - }, - checks: [] - }); - return clone(schema, def); -} -function required(Class2, schema, mask) { - const def = mergeDefs(schema._zod.def, { - get shape() { - const oldShape = schema._zod.def.shape; - const shape = __spreadValues({}, oldShape); - if (mask) { - for (const key in mask) { - if (!(key in shape)) { - throw new Error(`Unrecognized key: "${key}"`); - } - if (!mask[key]) - continue; - shape[key] = new Class2({ - type: "nonoptional", - innerType: oldShape[key] - }); - } - } else { - for (const key in oldShape) { - shape[key] = new Class2({ - type: "nonoptional", - innerType: oldShape[key] - }); - } - } - assignProp(this, "shape", shape); - return shape; - } - }); - return clone(schema, def); -} -function aborted(x, startIndex = 0) { - var _a5; - if (x.aborted === true) - return true; - for (let i2 = startIndex; i2 < x.issues.length; i2++) { - if (((_a5 = x.issues[i2]) == null ? void 0 : _a5.continue) !== true) { - return true; - } - } - return false; -} -function explicitlyAborted(x, startIndex = 0) { - var _a5; - if (x.aborted === true) - return true; - for (let i2 = startIndex; i2 < x.issues.length; i2++) { - if (((_a5 = x.issues[i2]) == null ? void 0 : _a5.continue) === false) { - return true; - } - } - return false; -} -function prefixIssues(path, issues) { - return issues.map((iss) => { - var _a6; - var _a5; - (_a6 = (_a5 = iss).path) != null ? _a6 : _a5.path = []; - iss.path.unshift(path); - return iss; - }); -} -function unwrapMessage(message) { - return typeof message === "string" ? message : message == null ? void 0 : message.message; -} -function finalizeIssue(iss, ctx, config2) { - var _a5, _b, _c, _d, _e, _f, _g, _h, _i, _j, _l; - const message = iss.message ? iss.message : (_j = (_i = (_g = (_e = unwrapMessage((_c = (_b = (_a5 = iss.inst) == null ? void 0 : _a5._zod.def) == null ? void 0 : _b.error) == null ? void 0 : _c.call(_b, iss))) != null ? _e : unwrapMessage((_d = ctx == null ? void 0 : ctx.error) == null ? void 0 : _d.call(ctx, iss))) != null ? _g : unwrapMessage((_f = config2.customError) == null ? void 0 : _f.call(config2, iss))) != null ? _i : unwrapMessage((_h = config2.localeError) == null ? void 0 : _h.call(config2, iss))) != null ? _j : "Invalid input"; - const _k = iss, { inst: _inst, continue: _continue, input: _input } = _k, rest = __objRest(_k, ["inst", "continue", "input"]); - (_l = rest.path) != null ? _l : rest.path = []; - rest.message = message; - if (ctx == null ? void 0 : ctx.reportInput) { - rest.input = _input; - } - return rest; -} -function getSizableOrigin(input) { - if (input instanceof Set) - return "set"; - if (input instanceof Map) - return "map"; - if (input instanceof File) - return "file"; - return "unknown"; -} -function getLengthableOrigin(input) { - if (Array.isArray(input)) - return "array"; - if (typeof input === "string") - return "string"; - return "unknown"; -} -function parsedType(data2) { - const t = typeof data2; - switch (t) { - case "number": { - return Number.isNaN(data2) ? "nan" : "number"; - } - case "object": { - if (data2 === null) { - return "null"; - } - if (Array.isArray(data2)) { - return "array"; - } - const obj = data2; - if (obj && Object.getPrototypeOf(obj) !== Object.prototype && "constructor" in obj && obj.constructor) { - return obj.constructor.name; - } - } - } - return t; -} -function issue(...args) { - const [iss, input, inst] = args; - if (typeof iss === "string") { - return { - message: iss, - code: "custom", - input, - inst - }; - } - return __spreadValues({}, iss); -} -function cleanEnum(obj) { - return Object.entries(obj).filter(([k, _]) => { - return Number.isNaN(Number.parseInt(k, 10)); - }).map((el) => el[1]); -} -function base64ToUint8Array(base643) { - const binaryString = atob(base643); - const bytes = new Uint8Array(binaryString.length); - for (let i2 = 0; i2 < binaryString.length; i2++) { - bytes[i2] = binaryString.charCodeAt(i2); - } - return bytes; -} -function uint8ArrayToBase64(bytes) { - let binaryString = ""; - for (let i2 = 0; i2 < bytes.length; i2++) { - binaryString += String.fromCharCode(bytes[i2]); - } - return btoa(binaryString); -} -function base64urlToUint8Array(base64url3) { - const base643 = base64url3.replace(/-/g, "+").replace(/_/g, "/"); - const padding = "=".repeat((4 - base643.length % 4) % 4); - return base64ToUint8Array(base643 + padding); -} -function uint8ArrayToBase64url(bytes) { - return uint8ArrayToBase64(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, ""); -} -function hexToUint8Array(hex3) { - const cleanHex = hex3.replace(/^0x/, ""); - if (cleanHex.length % 2 !== 0) { - throw new Error("Invalid hex string length"); - } - const bytes = new Uint8Array(cleanHex.length / 2); - for (let i2 = 0; i2 < cleanHex.length; i2 += 2) { - bytes[i2 / 2] = Number.parseInt(cleanHex.slice(i2, i2 + 2), 16); - } - return bytes; -} -function uint8ArrayToHex(bytes) { - return Array.from(bytes).map((b) => b.toString(16).padStart(2, "0")).join(""); -} -var Class = class { - constructor(..._args) { - } -}; - -// node_modules/zod/v4/core/errors.js -var initializer = (inst, def) => { - inst.name = "$ZodError"; - Object.defineProperty(inst, "_zod", { - value: inst._zod, - enumerable: false - }); - Object.defineProperty(inst, "issues", { - value: def, - enumerable: false - }); - inst.message = JSON.stringify(def, jsonStringifyReplacer, 2); - Object.defineProperty(inst, "toString", { - value: () => inst.message, - enumerable: false - }); -}; -var $ZodError = $constructor("$ZodError", initializer); -var $ZodRealError = $constructor("$ZodError", initializer, { Parent: Error }); -function flattenError(error52, mapper = (issue2) => issue2.message) { - const fieldErrors = {}; - const formErrors = []; - for (const sub of error52.issues) { - if (sub.path.length > 0) { - fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || []; - fieldErrors[sub.path[0]].push(mapper(sub)); - } else { - formErrors.push(mapper(sub)); - } - } - return { formErrors, fieldErrors }; -} -function formatError(error52, mapper = (issue2) => issue2.message) { - const fieldErrors = { _errors: [] }; - const processError = (error53, path = []) => { - for (const issue2 of error53.issues) { - if (issue2.code === "invalid_union" && issue2.errors.length) { - issue2.errors.map((issues) => processError({ issues }, [...path, ...issue2.path])); - } else if (issue2.code === "invalid_key") { - processError({ issues: issue2.issues }, [...path, ...issue2.path]); - } else if (issue2.code === "invalid_element") { - processError({ issues: issue2.issues }, [...path, ...issue2.path]); - } else { - const fullpath = [...path, ...issue2.path]; - if (fullpath.length === 0) { - fieldErrors._errors.push(mapper(issue2)); - } else { - let curr = fieldErrors; - let i2 = 0; - while (i2 < fullpath.length) { - const el = fullpath[i2]; - const terminal = i2 === fullpath.length - 1; - if (!terminal) { - curr[el] = curr[el] || { _errors: [] }; - } else { - curr[el] = curr[el] || { _errors: [] }; - curr[el]._errors.push(mapper(issue2)); - } - curr = curr[el]; - i2++; - } - } - } - } - }; - processError(error52); - return fieldErrors; -} -function treeifyError(error52, mapper = (issue2) => issue2.message) { - const result = { errors: [] }; - const processError = (error53, path = []) => { - var _a6, _b2, _c, _d; - var _a5, _b; - for (const issue2 of error53.issues) { - if (issue2.code === "invalid_union" && issue2.errors.length) { - issue2.errors.map((issues) => processError({ issues }, [...path, ...issue2.path])); - } else if (issue2.code === "invalid_key") { - processError({ issues: issue2.issues }, [...path, ...issue2.path]); - } else if (issue2.code === "invalid_element") { - processError({ issues: issue2.issues }, [...path, ...issue2.path]); - } else { - const fullpath = [...path, ...issue2.path]; - if (fullpath.length === 0) { - result.errors.push(mapper(issue2)); - continue; - } - let curr = result; - let i2 = 0; - while (i2 < fullpath.length) { - const el = fullpath[i2]; - const terminal = i2 === fullpath.length - 1; - if (typeof el === "string") { - (_a6 = curr.properties) != null ? _a6 : curr.properties = {}; - (_b2 = (_a5 = curr.properties)[el]) != null ? _b2 : _a5[el] = { errors: [] }; - curr = curr.properties[el]; - } else { - (_c = curr.items) != null ? _c : curr.items = []; - (_d = (_b = curr.items)[el]) != null ? _d : _b[el] = { errors: [] }; - curr = curr.items[el]; - } - if (terminal) { - curr.errors.push(mapper(issue2)); - } - i2++; - } - } - } - }; - processError(error52); - return result; -} -function toDotPath(_path) { - const segs = []; - const path = _path.map((seg) => typeof seg === "object" ? seg.key : seg); - for (const seg of path) { - if (typeof seg === "number") - segs.push(`[${seg}]`); - else if (typeof seg === "symbol") - segs.push(`[${JSON.stringify(String(seg))}]`); - else if (/[^\w$]/.test(seg)) - segs.push(`[${JSON.stringify(seg)}]`); - else { - if (segs.length) - segs.push("."); - segs.push(seg); - } - } - return segs.join(""); -} -function prettifyError(error52) { - var _a5; - const lines = []; - const issues = [...error52.issues].sort((a, b) => { - var _a6, _b; - return ((_a6 = a.path) != null ? _a6 : []).length - ((_b = b.path) != null ? _b : []).length; - }); - for (const issue2 of issues) { - lines.push(`\u2716 ${issue2.message}`); - if ((_a5 = issue2.path) == null ? void 0 : _a5.length) - lines.push(` \u2192 at ${toDotPath(issue2.path)}`); - } - return lines.join("\n"); -} - -// node_modules/zod/v4/core/parse.js -var _parse = (_Err) => (schema, value, _ctx, _params) => { - var _a5; - const ctx = _ctx ? __spreadProps(__spreadValues({}, _ctx), { async: false }) : { async: false }; - const result = schema._zod.run({ value, issues: [] }, ctx); - if (result instanceof Promise) { - throw new $ZodAsyncError(); - } - if (result.issues.length) { - const e = new ((_a5 = _params == null ? void 0 : _params.Err) != null ? _a5 : _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))); - captureStackTrace(e, _params == null ? void 0 : _params.callee); - throw e; - } - return result.value; -}; -var parse = /* @__PURE__ */ _parse($ZodRealError); -var _parseAsync = (_Err) => (schema, value, _ctx, params) => __async(null, null, function* () { - var _a5; - const ctx = _ctx ? __spreadProps(__spreadValues({}, _ctx), { async: true }) : { async: true }; - let result = schema._zod.run({ value, issues: [] }, ctx); - if (result instanceof Promise) - result = yield result; - if (result.issues.length) { - const e = new ((_a5 = params == null ? void 0 : params.Err) != null ? _a5 : _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))); - captureStackTrace(e, params == null ? void 0 : params.callee); - throw e; - } - return result.value; -}); -var parseAsync = /* @__PURE__ */ _parseAsync($ZodRealError); -var _safeParse = (_Err) => (schema, value, _ctx) => { - const ctx = _ctx ? __spreadProps(__spreadValues({}, _ctx), { async: false }) : { async: false }; - const result = schema._zod.run({ value, issues: [] }, ctx); - if (result instanceof Promise) { - throw new $ZodAsyncError(); - } - return result.issues.length ? { - success: false, - error: new (_Err != null ? _Err : $ZodError)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) - } : { success: true, data: result.value }; -}; -var safeParse = /* @__PURE__ */ _safeParse($ZodRealError); -var _safeParseAsync = (_Err) => (schema, value, _ctx) => __async(null, null, function* () { - const ctx = _ctx ? __spreadProps(__spreadValues({}, _ctx), { async: true }) : { async: true }; - let result = schema._zod.run({ value, issues: [] }, ctx); - if (result instanceof Promise) - result = yield result; - return result.issues.length ? { - success: false, - error: new _Err(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) - } : { success: true, data: result.value }; -}); -var safeParseAsync = /* @__PURE__ */ _safeParseAsync($ZodRealError); -var _encode = (_Err) => (schema, value, _ctx) => { - const ctx = _ctx ? __spreadProps(__spreadValues({}, _ctx), { direction: "backward" }) : { direction: "backward" }; - return _parse(_Err)(schema, value, ctx); -}; -var encode = /* @__PURE__ */ _encode($ZodRealError); -var _decode = (_Err) => (schema, value, _ctx) => { - return _parse(_Err)(schema, value, _ctx); -}; -var decode = /* @__PURE__ */ _decode($ZodRealError); -var _encodeAsync = (_Err) => (schema, value, _ctx) => __async(null, null, function* () { - const ctx = _ctx ? __spreadProps(__spreadValues({}, _ctx), { direction: "backward" }) : { direction: "backward" }; - return _parseAsync(_Err)(schema, value, ctx); -}); -var encodeAsync = /* @__PURE__ */ _encodeAsync($ZodRealError); -var _decodeAsync = (_Err) => (schema, value, _ctx) => __async(null, null, function* () { - return _parseAsync(_Err)(schema, value, _ctx); -}); -var decodeAsync = /* @__PURE__ */ _decodeAsync($ZodRealError); -var _safeEncode = (_Err) => (schema, value, _ctx) => { - const ctx = _ctx ? __spreadProps(__spreadValues({}, _ctx), { direction: "backward" }) : { direction: "backward" }; - return _safeParse(_Err)(schema, value, ctx); -}; -var safeEncode = /* @__PURE__ */ _safeEncode($ZodRealError); -var _safeDecode = (_Err) => (schema, value, _ctx) => { - return _safeParse(_Err)(schema, value, _ctx); -}; -var safeDecode = /* @__PURE__ */ _safeDecode($ZodRealError); -var _safeEncodeAsync = (_Err) => (schema, value, _ctx) => __async(null, null, function* () { - const ctx = _ctx ? __spreadProps(__spreadValues({}, _ctx), { direction: "backward" }) : { direction: "backward" }; - return _safeParseAsync(_Err)(schema, value, ctx); -}); -var safeEncodeAsync = /* @__PURE__ */ _safeEncodeAsync($ZodRealError); -var _safeDecodeAsync = (_Err) => (schema, value, _ctx) => __async(null, null, function* () { - return _safeParseAsync(_Err)(schema, value, _ctx); -}); -var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync($ZodRealError); - -// node_modules/zod/v4/core/regexes.js -var regexes_exports = {}; -__export(regexes_exports, { - base64: () => base64, - base64url: () => base64url, - bigint: () => bigint, - boolean: () => boolean, - browserEmail: () => browserEmail, - cidrv4: () => cidrv4, - cidrv6: () => cidrv6, - cuid: () => cuid, - cuid2: () => cuid2, - date: () => date, - datetime: () => datetime, - domain: () => domain, - duration: () => duration, - e164: () => e164, - email: () => email, - emoji: () => emoji, - extendedDuration: () => extendedDuration, - guid: () => guid, - hex: () => hex, - hostname: () => hostname, - html5Email: () => html5Email, - httpProtocol: () => httpProtocol, - idnEmail: () => idnEmail, - integer: () => integer, - ipv4: () => ipv4, - ipv6: () => ipv6, - ksuid: () => ksuid, - lowercase: () => lowercase, - mac: () => mac, - md5_base64: () => md5_base64, - md5_base64url: () => md5_base64url, - md5_hex: () => md5_hex, - nanoid: () => nanoid, - null: () => _null, - number: () => number, - rfc5322Email: () => rfc5322Email, - sha1_base64: () => sha1_base64, - sha1_base64url: () => sha1_base64url, - sha1_hex: () => sha1_hex, - sha256_base64: () => sha256_base64, - sha256_base64url: () => sha256_base64url, - sha256_hex: () => sha256_hex, - sha384_base64: () => sha384_base64, - sha384_base64url: () => sha384_base64url, - sha384_hex: () => sha384_hex, - sha512_base64: () => sha512_base64, - sha512_base64url: () => sha512_base64url, - sha512_hex: () => sha512_hex, - string: () => string, - time: () => time, - ulid: () => ulid, - undefined: () => _undefined, - unicodeEmail: () => unicodeEmail, - uppercase: () => uppercase, - uuid: () => uuid, - uuid4: () => uuid4, - uuid6: () => uuid6, - uuid7: () => uuid7, - xid: () => xid -}); -var cuid = /^[cC][0-9a-z]{6,}$/; -var cuid2 = /^[0-9a-z]+$/; -var ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/; -var xid = /^[0-9a-vA-V]{20}$/; -var ksuid = /^[A-Za-z0-9]{27}$/; -var nanoid = /^[a-zA-Z0-9_-]{21}$/; -var duration = /^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/; -var extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/; -var guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/; -var uuid = (version3) => { - if (!version3) - return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/; - return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version3}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`); -}; -var uuid4 = /* @__PURE__ */ uuid(4); -var uuid6 = /* @__PURE__ */ uuid(6); -var uuid7 = /* @__PURE__ */ uuid(7); -var email = /^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/; -var html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/; -var rfc5322Email = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; -var unicodeEmail = /^[^\s@"]{1,64}@[^\s@]{1,255}$/u; -var idnEmail = unicodeEmail; -var browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/; -var _emoji = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`; -function emoji() { - return new RegExp(_emoji, "u"); -} -var ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/; -var ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/; -var mac = (delimiter2) => { - const escapedDelim = escapeRegex(delimiter2 != null ? delimiter2 : ":"); - return new RegExp(`^(?:[0-9A-F]{2}${escapedDelim}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${escapedDelim}){5}[0-9a-f]{2}$`); -}; -var cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/; -var cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/; -var base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/; -var base64url = /^[A-Za-z0-9_-]*$/; -var hostname = /^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/; -var domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/; -var httpProtocol = /^https?$/; -var e164 = /^\+[1-9]\d{6,14}$/; -var dateSource = `(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`; -var date = /* @__PURE__ */ new RegExp(`^${dateSource}$`); -function timeSource(args) { - const hhmm = `(?:[01]\\d|2[0-3]):[0-5]\\d`; - const regex = typeof args.precision === "number" ? args.precision === -1 ? `${hhmm}` : args.precision === 0 ? `${hhmm}:[0-5]\\d` : `${hhmm}:[0-5]\\d\\.\\d{${args.precision}}` : `${hhmm}(?::[0-5]\\d(?:\\.\\d+)?)?`; - return regex; -} -function time(args) { - return new RegExp(`^${timeSource(args)}$`); -} -function datetime(args) { - const time3 = timeSource({ precision: args.precision }); - const opts = ["Z"]; - if (args.local) - opts.push(""); - if (args.offset) - opts.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`); - const timeRegex = `${time3}(?:${opts.join("|")})`; - return new RegExp(`^${dateSource}T(?:${timeRegex})$`); -} -var string = (params) => { - var _a5, _b; - const regex = params ? `[\\s\\S]{${(_a5 = params == null ? void 0 : params.minimum) != null ? _a5 : 0},${(_b = params == null ? void 0 : params.maximum) != null ? _b : ""}}` : `[\\s\\S]*`; - return new RegExp(`^${regex}$`); -}; -var bigint = /^-?\d+n?$/; -var integer = /^-?\d+$/; -var number = /^-?\d+(?:\.\d+)?$/; -var boolean = /^(?:true|false)$/i; -var _null = /^null$/i; -var _undefined = /^undefined$/i; -var lowercase = /^[^A-Z]*$/; -var uppercase = /^[^a-z]*$/; -var hex = /^[0-9a-fA-F]*$/; -function fixedBase64(bodyLength, padding) { - return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`); -} -function fixedBase64url(length) { - return new RegExp(`^[A-Za-z0-9_-]{${length}}$`); -} -var md5_hex = /^[0-9a-fA-F]{32}$/; -var md5_base64 = /* @__PURE__ */ fixedBase64(22, "=="); -var md5_base64url = /* @__PURE__ */ fixedBase64url(22); -var sha1_hex = /^[0-9a-fA-F]{40}$/; -var sha1_base64 = /* @__PURE__ */ fixedBase64(27, "="); -var sha1_base64url = /* @__PURE__ */ fixedBase64url(27); -var sha256_hex = /^[0-9a-fA-F]{64}$/; -var sha256_base64 = /* @__PURE__ */ fixedBase64(43, "="); -var sha256_base64url = /* @__PURE__ */ fixedBase64url(43); -var sha384_hex = /^[0-9a-fA-F]{96}$/; -var sha384_base64 = /* @__PURE__ */ fixedBase64(64, ""); -var sha384_base64url = /* @__PURE__ */ fixedBase64url(64); -var sha512_hex = /^[0-9a-fA-F]{128}$/; -var sha512_base64 = /* @__PURE__ */ fixedBase64(86, "=="); -var sha512_base64url = /* @__PURE__ */ fixedBase64url(86); - -// node_modules/zod/v4/core/checks.js -var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => { - var _a6, _b; - var _a5; - (_a6 = inst._zod) != null ? _a6 : inst._zod = {}; - inst._zod.def = def; - (_b = (_a5 = inst._zod).onattach) != null ? _b : _a5.onattach = []; -}); -var numericOriginMap = { - number: "number", - bigint: "bigint", - object: "date" -}; -var $ZodCheckLessThan = /* @__PURE__ */ $constructor("$ZodCheckLessThan", (inst, def) => { - $ZodCheck.init(inst, def); - const origin = numericOriginMap[typeof def.value]; - inst._zod.onattach.push((inst2) => { - var _a5; - const bag = inst2._zod.bag; - const curr = (_a5 = def.inclusive ? bag.maximum : bag.exclusiveMaximum) != null ? _a5 : Number.POSITIVE_INFINITY; - if (def.value < curr) { - if (def.inclusive) - bag.maximum = def.value; - else - bag.exclusiveMaximum = def.value; - } - }); - inst._zod.check = (payload) => { - if (def.inclusive ? payload.value <= def.value : payload.value < def.value) { - return; - } - payload.issues.push({ - origin, - code: "too_big", - maximum: typeof def.value === "object" ? def.value.getTime() : def.value, - input: payload.value, - inclusive: def.inclusive, - inst, - continue: !def.abort - }); - }; -}); -var $ZodCheckGreaterThan = /* @__PURE__ */ $constructor("$ZodCheckGreaterThan", (inst, def) => { - $ZodCheck.init(inst, def); - const origin = numericOriginMap[typeof def.value]; - inst._zod.onattach.push((inst2) => { - var _a5; - const bag = inst2._zod.bag; - const curr = (_a5 = def.inclusive ? bag.minimum : bag.exclusiveMinimum) != null ? _a5 : Number.NEGATIVE_INFINITY; - if (def.value > curr) { - if (def.inclusive) - bag.minimum = def.value; - else - bag.exclusiveMinimum = def.value; - } - }); - inst._zod.check = (payload) => { - if (def.inclusive ? payload.value >= def.value : payload.value > def.value) { - return; - } - payload.issues.push({ - origin, - code: "too_small", - minimum: typeof def.value === "object" ? def.value.getTime() : def.value, - input: payload.value, - inclusive: def.inclusive, - inst, - continue: !def.abort - }); - }; -}); -var $ZodCheckMultipleOf = /* @__PURE__ */ $constructor("$ZodCheckMultipleOf", (inst, def) => { - $ZodCheck.init(inst, def); - inst._zod.onattach.push((inst2) => { - var _a6; - var _a5; - (_a6 = (_a5 = inst2._zod.bag).multipleOf) != null ? _a6 : _a5.multipleOf = def.value; - }); - inst._zod.check = (payload) => { - if (typeof payload.value !== typeof def.value) - throw new Error("Cannot mix number and bigint in multiple_of check."); - const isMultiple = typeof payload.value === "bigint" ? payload.value % def.value === BigInt(0) : floatSafeRemainder(payload.value, def.value) === 0; - if (isMultiple) - return; - payload.issues.push({ - origin: typeof payload.value, - code: "not_multiple_of", - divisor: def.value, - input: payload.value, - inst, - continue: !def.abort - }); - }; -}); -var $ZodCheckNumberFormat = /* @__PURE__ */ $constructor("$ZodCheckNumberFormat", (inst, def) => { - var _a5; - $ZodCheck.init(inst, def); - def.format = def.format || "float64"; - const isInt = (_a5 = def.format) == null ? void 0 : _a5.includes("int"); - const origin = isInt ? "int" : "number"; - const [minimum, maximum] = NUMBER_FORMAT_RANGES[def.format]; - inst._zod.onattach.push((inst2) => { - const bag = inst2._zod.bag; - bag.format = def.format; - bag.minimum = minimum; - bag.maximum = maximum; - if (isInt) - bag.pattern = integer; - }); - inst._zod.check = (payload) => { - const input = payload.value; - if (isInt) { - if (!Number.isInteger(input)) { - payload.issues.push({ - expected: origin, - format: def.format, - code: "invalid_type", - continue: false, - input, - inst - }); - return; - } - if (!Number.isSafeInteger(input)) { - if (input > 0) { - payload.issues.push({ - input, - code: "too_big", - maximum: Number.MAX_SAFE_INTEGER, - note: "Integers must be within the safe integer range.", - inst, - origin, - inclusive: true, - continue: !def.abort - }); - } else { - payload.issues.push({ - input, - code: "too_small", - minimum: Number.MIN_SAFE_INTEGER, - note: "Integers must be within the safe integer range.", - inst, - origin, - inclusive: true, - continue: !def.abort - }); - } - return; - } - } - if (input < minimum) { - payload.issues.push({ - origin: "number", - input, - code: "too_small", - minimum, - inclusive: true, - inst, - continue: !def.abort - }); - } - if (input > maximum) { - payload.issues.push({ - origin: "number", - input, - code: "too_big", - maximum, - inclusive: true, - inst, - continue: !def.abort - }); - } - }; -}); -var $ZodCheckBigIntFormat = /* @__PURE__ */ $constructor("$ZodCheckBigIntFormat", (inst, def) => { - $ZodCheck.init(inst, def); - const [minimum, maximum] = BIGINT_FORMAT_RANGES[def.format]; - inst._zod.onattach.push((inst2) => { - const bag = inst2._zod.bag; - bag.format = def.format; - bag.minimum = minimum; - bag.maximum = maximum; - }); - inst._zod.check = (payload) => { - const input = payload.value; - if (input < minimum) { - payload.issues.push({ - origin: "bigint", - input, - code: "too_small", - minimum, - inclusive: true, - inst, - continue: !def.abort - }); - } - if (input > maximum) { - payload.issues.push({ - origin: "bigint", - input, - code: "too_big", - maximum, - inclusive: true, - inst, - continue: !def.abort - }); - } - }; -}); -var $ZodCheckMaxSize = /* @__PURE__ */ $constructor("$ZodCheckMaxSize", (inst, def) => { - var _a6; - var _a5; - $ZodCheck.init(inst, def); - (_a6 = (_a5 = inst._zod.def).when) != null ? _a6 : _a5.when = (payload) => { - const val = payload.value; - return !nullish(val) && val.size !== void 0; - }; - inst._zod.onattach.push((inst2) => { - var _a7; - const curr = (_a7 = inst2._zod.bag.maximum) != null ? _a7 : Number.POSITIVE_INFINITY; - if (def.maximum < curr) - inst2._zod.bag.maximum = def.maximum; - }); - inst._zod.check = (payload) => { - const input = payload.value; - const size = input.size; - if (size <= def.maximum) - return; - payload.issues.push({ - origin: getSizableOrigin(input), - code: "too_big", - maximum: def.maximum, - inclusive: true, - input, - inst, - continue: !def.abort - }); - }; -}); -var $ZodCheckMinSize = /* @__PURE__ */ $constructor("$ZodCheckMinSize", (inst, def) => { - var _a6; - var _a5; - $ZodCheck.init(inst, def); - (_a6 = (_a5 = inst._zod.def).when) != null ? _a6 : _a5.when = (payload) => { - const val = payload.value; - return !nullish(val) && val.size !== void 0; - }; - inst._zod.onattach.push((inst2) => { - var _a7; - const curr = (_a7 = inst2._zod.bag.minimum) != null ? _a7 : Number.NEGATIVE_INFINITY; - if (def.minimum > curr) - inst2._zod.bag.minimum = def.minimum; - }); - inst._zod.check = (payload) => { - const input = payload.value; - const size = input.size; - if (size >= def.minimum) - return; - payload.issues.push({ - origin: getSizableOrigin(input), - code: "too_small", - minimum: def.minimum, - inclusive: true, - input, - inst, - continue: !def.abort - }); - }; -}); -var $ZodCheckSizeEquals = /* @__PURE__ */ $constructor("$ZodCheckSizeEquals", (inst, def) => { - var _a6; - var _a5; - $ZodCheck.init(inst, def); - (_a6 = (_a5 = inst._zod.def).when) != null ? _a6 : _a5.when = (payload) => { - const val = payload.value; - return !nullish(val) && val.size !== void 0; - }; - inst._zod.onattach.push((inst2) => { - const bag = inst2._zod.bag; - bag.minimum = def.size; - bag.maximum = def.size; - bag.size = def.size; - }); - inst._zod.check = (payload) => { - const input = payload.value; - const size = input.size; - if (size === def.size) - return; - const tooBig = size > def.size; - payload.issues.push(__spreadProps(__spreadValues({ - origin: getSizableOrigin(input) - }, tooBig ? { code: "too_big", maximum: def.size } : { code: "too_small", minimum: def.size }), { - inclusive: true, - exact: true, - input: payload.value, - inst, - continue: !def.abort - })); - }; -}); -var $ZodCheckMaxLength = /* @__PURE__ */ $constructor("$ZodCheckMaxLength", (inst, def) => { - var _a6; - var _a5; - $ZodCheck.init(inst, def); - (_a6 = (_a5 = inst._zod.def).when) != null ? _a6 : _a5.when = (payload) => { - const val = payload.value; - return !nullish(val) && val.length !== void 0; - }; - inst._zod.onattach.push((inst2) => { - var _a7; - const curr = (_a7 = inst2._zod.bag.maximum) != null ? _a7 : Number.POSITIVE_INFINITY; - if (def.maximum < curr) - inst2._zod.bag.maximum = def.maximum; - }); - inst._zod.check = (payload) => { - const input = payload.value; - const length = input.length; - if (length <= def.maximum) - return; - const origin = getLengthableOrigin(input); - payload.issues.push({ - origin, - code: "too_big", - maximum: def.maximum, - inclusive: true, - input, - inst, - continue: !def.abort - }); - }; -}); -var $ZodCheckMinLength = /* @__PURE__ */ $constructor("$ZodCheckMinLength", (inst, def) => { - var _a6; - var _a5; - $ZodCheck.init(inst, def); - (_a6 = (_a5 = inst._zod.def).when) != null ? _a6 : _a5.when = (payload) => { - const val = payload.value; - return !nullish(val) && val.length !== void 0; - }; - inst._zod.onattach.push((inst2) => { - var _a7; - const curr = (_a7 = inst2._zod.bag.minimum) != null ? _a7 : Number.NEGATIVE_INFINITY; - if (def.minimum > curr) - inst2._zod.bag.minimum = def.minimum; - }); - inst._zod.check = (payload) => { - const input = payload.value; - const length = input.length; - if (length >= def.minimum) - return; - const origin = getLengthableOrigin(input); - payload.issues.push({ - origin, - code: "too_small", - minimum: def.minimum, - inclusive: true, - input, - inst, - continue: !def.abort - }); - }; -}); -var $ZodCheckLengthEquals = /* @__PURE__ */ $constructor("$ZodCheckLengthEquals", (inst, def) => { - var _a6; - var _a5; - $ZodCheck.init(inst, def); - (_a6 = (_a5 = inst._zod.def).when) != null ? _a6 : _a5.when = (payload) => { - const val = payload.value; - return !nullish(val) && val.length !== void 0; - }; - inst._zod.onattach.push((inst2) => { - const bag = inst2._zod.bag; - bag.minimum = def.length; - bag.maximum = def.length; - bag.length = def.length; - }); - inst._zod.check = (payload) => { - const input = payload.value; - const length = input.length; - if (length === def.length) - return; - const origin = getLengthableOrigin(input); - const tooBig = length > def.length; - payload.issues.push(__spreadProps(__spreadValues({ - origin - }, tooBig ? { code: "too_big", maximum: def.length } : { code: "too_small", minimum: def.length }), { - inclusive: true, - exact: true, - input: payload.value, - inst, - continue: !def.abort - })); - }; -}); -var $ZodCheckStringFormat = /* @__PURE__ */ $constructor("$ZodCheckStringFormat", (inst, def) => { - var _a6, _b2; - var _a5, _b; - $ZodCheck.init(inst, def); - inst._zod.onattach.push((inst2) => { - var _a7; - const bag = inst2._zod.bag; - bag.format = def.format; - if (def.pattern) { - (_a7 = bag.patterns) != null ? _a7 : bag.patterns = /* @__PURE__ */ new Set(); - bag.patterns.add(def.pattern); - } - }); - if (def.pattern) - (_a6 = (_a5 = inst._zod).check) != null ? _a6 : _a5.check = (payload) => { - def.pattern.lastIndex = 0; - if (def.pattern.test(payload.value)) - return; - payload.issues.push(__spreadProps(__spreadValues({ - origin: "string", - code: "invalid_format", - format: def.format, - input: payload.value - }, def.pattern ? { pattern: def.pattern.toString() } : {}), { - inst, - continue: !def.abort - })); - }; - else - (_b2 = (_b = inst._zod).check) != null ? _b2 : _b.check = () => { - }; -}); -var $ZodCheckRegex = /* @__PURE__ */ $constructor("$ZodCheckRegex", (inst, def) => { - $ZodCheckStringFormat.init(inst, def); - inst._zod.check = (payload) => { - def.pattern.lastIndex = 0; - if (def.pattern.test(payload.value)) - return; - payload.issues.push({ - origin: "string", - code: "invalid_format", - format: "regex", - input: payload.value, - pattern: def.pattern.toString(), - inst, - continue: !def.abort - }); - }; -}); -var $ZodCheckLowerCase = /* @__PURE__ */ $constructor("$ZodCheckLowerCase", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = lowercase; - $ZodCheckStringFormat.init(inst, def); -}); -var $ZodCheckUpperCase = /* @__PURE__ */ $constructor("$ZodCheckUpperCase", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = uppercase; - $ZodCheckStringFormat.init(inst, def); -}); -var $ZodCheckIncludes = /* @__PURE__ */ $constructor("$ZodCheckIncludes", (inst, def) => { - $ZodCheck.init(inst, def); - const escapedRegex = escapeRegex(def.includes); - const pattern = new RegExp(typeof def.position === "number" ? `^.{${def.position}}${escapedRegex}` : escapedRegex); - def.pattern = pattern; - inst._zod.onattach.push((inst2) => { - var _a5; - const bag = inst2._zod.bag; - (_a5 = bag.patterns) != null ? _a5 : bag.patterns = /* @__PURE__ */ new Set(); - bag.patterns.add(pattern); - }); - inst._zod.check = (payload) => { - if (payload.value.includes(def.includes, def.position)) - return; - payload.issues.push({ - origin: "string", - code: "invalid_format", - format: "includes", - includes: def.includes, - input: payload.value, - inst, - continue: !def.abort - }); - }; -}); -var $ZodCheckStartsWith = /* @__PURE__ */ $constructor("$ZodCheckStartsWith", (inst, def) => { - var _a5; - $ZodCheck.init(inst, def); - const pattern = new RegExp(`^${escapeRegex(def.prefix)}.*`); - (_a5 = def.pattern) != null ? _a5 : def.pattern = pattern; - inst._zod.onattach.push((inst2) => { - var _a6; - const bag = inst2._zod.bag; - (_a6 = bag.patterns) != null ? _a6 : bag.patterns = /* @__PURE__ */ new Set(); - bag.patterns.add(pattern); - }); - inst._zod.check = (payload) => { - if (payload.value.startsWith(def.prefix)) - return; - payload.issues.push({ - origin: "string", - code: "invalid_format", - format: "starts_with", - prefix: def.prefix, - input: payload.value, - inst, - continue: !def.abort - }); - }; -}); -var $ZodCheckEndsWith = /* @__PURE__ */ $constructor("$ZodCheckEndsWith", (inst, def) => { - var _a5; - $ZodCheck.init(inst, def); - const pattern = new RegExp(`.*${escapeRegex(def.suffix)}$`); - (_a5 = def.pattern) != null ? _a5 : def.pattern = pattern; - inst._zod.onattach.push((inst2) => { - var _a6; - const bag = inst2._zod.bag; - (_a6 = bag.patterns) != null ? _a6 : bag.patterns = /* @__PURE__ */ new Set(); - bag.patterns.add(pattern); - }); - inst._zod.check = (payload) => { - if (payload.value.endsWith(def.suffix)) - return; - payload.issues.push({ - origin: "string", - code: "invalid_format", - format: "ends_with", - suffix: def.suffix, - input: payload.value, - inst, - continue: !def.abort - }); - }; -}); -function handleCheckPropertyResult(result, payload, property) { - if (result.issues.length) { - payload.issues.push(...prefixIssues(property, result.issues)); - } -} -var $ZodCheckProperty = /* @__PURE__ */ $constructor("$ZodCheckProperty", (inst, def) => { - $ZodCheck.init(inst, def); - inst._zod.check = (payload) => { - const result = def.schema._zod.run({ - value: payload.value[def.property], - issues: [] - }, {}); - if (result instanceof Promise) { - return result.then((result2) => handleCheckPropertyResult(result2, payload, def.property)); - } - handleCheckPropertyResult(result, payload, def.property); - return; - }; -}); -var $ZodCheckMimeType = /* @__PURE__ */ $constructor("$ZodCheckMimeType", (inst, def) => { - $ZodCheck.init(inst, def); - const mimeSet = new Set(def.mime); - inst._zod.onattach.push((inst2) => { - inst2._zod.bag.mime = def.mime; - }); - inst._zod.check = (payload) => { - if (mimeSet.has(payload.value.type)) - return; - payload.issues.push({ - code: "invalid_value", - values: def.mime, - input: payload.value.type, - inst, - continue: !def.abort - }); - }; -}); -var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (inst, def) => { - $ZodCheck.init(inst, def); - inst._zod.check = (payload) => { - payload.value = def.tx(payload.value); - }; -}); - -// node_modules/zod/v4/core/doc.js -var Doc = class { - constructor(args = []) { - this.content = []; - this.indent = 0; - if (this) - this.args = args; - } - indented(fn) { - this.indent += 1; - fn(this); - this.indent -= 1; - } - write(arg) { - if (typeof arg === "function") { - arg(this, { execution: "sync" }); - arg(this, { execution: "async" }); - return; - } - const content = arg; - const lines = content.split("\n").filter((x) => x); - const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length)); - const dedented = lines.map((x) => x.slice(minIndent)).map((x) => " ".repeat(this.indent * 2) + x); - for (const line of dedented) { - this.content.push(line); - } - } - compile() { - var _a5; - const F = Function; - const args = this == null ? void 0 : this.args; - const content = (_a5 = this == null ? void 0 : this.content) != null ? _a5 : [``]; - const lines = [...content.map((x) => ` ${x}`)]; - return new F(...args, lines.join("\n")); - } -}; - -// node_modules/zod/v4/core/versions.js -var version = { - major: 4, - minor: 4, - patch: 3 -}; - -// node_modules/zod/v4/core/schemas.js -var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => { - var _a6, _b, _c; - var _a5; - inst != null ? inst : inst = {}; - inst._zod.def = def; - inst._zod.bag = inst._zod.bag || {}; - inst._zod.version = version; - const checks = [...(_a6 = inst._zod.def.checks) != null ? _a6 : []]; - if (inst._zod.traits.has("$ZodCheck")) { - checks.unshift(inst); - } - for (const ch of checks) { - for (const fn of ch._zod.onattach) { - fn(inst); - } - } - if (checks.length === 0) { - (_b = (_a5 = inst._zod).deferred) != null ? _b : _a5.deferred = []; - (_c = inst._zod.deferred) == null ? void 0 : _c.push(() => { - inst._zod.run = inst._zod.parse; - }); - } else { - const runChecks = (payload, checks2, ctx) => { - let isAborted = aborted(payload); - let asyncResult; - for (const ch of checks2) { - if (ch._zod.def.when) { - if (explicitlyAborted(payload)) - continue; - const shouldRun = ch._zod.def.when(payload); - if (!shouldRun) - continue; - } else if (isAborted) { - continue; - } - const currLen = payload.issues.length; - const _ = ch._zod.check(payload); - if (_ instanceof Promise && (ctx == null ? void 0 : ctx.async) === false) { - throw new $ZodAsyncError(); - } - if (asyncResult || _ instanceof Promise) { - asyncResult = (asyncResult != null ? asyncResult : Promise.resolve()).then(() => __async(null, null, function* () { - yield _; - const nextLen = payload.issues.length; - if (nextLen === currLen) - return; - if (!isAborted) - isAborted = aborted(payload, currLen); - })); - } else { - const nextLen = payload.issues.length; - if (nextLen === currLen) - continue; - if (!isAborted) - isAborted = aborted(payload, currLen); - } - } - if (asyncResult) { - return asyncResult.then(() => { - return payload; - }); - } - return payload; - }; - const handleCanaryResult = (canary, payload, ctx) => { - if (aborted(canary)) { - canary.aborted = true; - return canary; - } - const checkResult = runChecks(payload, checks, ctx); - if (checkResult instanceof Promise) { - if (ctx.async === false) - throw new $ZodAsyncError(); - return checkResult.then((checkResult2) => inst._zod.parse(checkResult2, ctx)); - } - return inst._zod.parse(checkResult, ctx); - }; - inst._zod.run = (payload, ctx) => { - if (ctx.skipChecks) { - return inst._zod.parse(payload, ctx); - } - if (ctx.direction === "backward") { - const canary = inst._zod.parse({ value: payload.value, issues: [] }, __spreadProps(__spreadValues({}, ctx), { skipChecks: true })); - if (canary instanceof Promise) { - return canary.then((canary2) => { - return handleCanaryResult(canary2, payload, ctx); - }); - } - return handleCanaryResult(canary, payload, ctx); - } - const result = inst._zod.parse(payload, ctx); - if (result instanceof Promise) { - if (ctx.async === false) - throw new $ZodAsyncError(); - return result.then((result2) => runChecks(result2, checks, ctx)); - } - return runChecks(result, checks, ctx); - }; - } - defineLazy(inst, "~standard", () => ({ - validate: (value) => { - var _a7; - try { - const r = safeParse(inst, value); - return r.success ? { value: r.data } : { issues: (_a7 = r.error) == null ? void 0 : _a7.issues }; - } catch (_) { - return safeParseAsync(inst, value).then((r) => { - var _a8; - return r.success ? { value: r.data } : { issues: (_a8 = r.error) == null ? void 0 : _a8.issues }; - }); - } - }, - vendor: "zod", - version: 1 - })); -}); -var $ZodString = /* @__PURE__ */ $constructor("$ZodString", (inst, def) => { - var _a5, _b, _c; - $ZodType.init(inst, def); - inst._zod.pattern = (_c = [...(_b = (_a5 = inst == null ? void 0 : inst._zod.bag) == null ? void 0 : _a5.patterns) != null ? _b : []].pop()) != null ? _c : string(inst._zod.bag); - inst._zod.parse = (payload, _) => { - if (def.coerce) - try { - payload.value = String(payload.value); - } catch (_2) { - } - if (typeof payload.value === "string") - return payload; - payload.issues.push({ - expected: "string", - code: "invalid_type", - input: payload.value, - inst - }); - return payload; - }; -}); -var $ZodStringFormat = /* @__PURE__ */ $constructor("$ZodStringFormat", (inst, def) => { - $ZodCheckStringFormat.init(inst, def); - $ZodString.init(inst, def); -}); -var $ZodGUID = /* @__PURE__ */ $constructor("$ZodGUID", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = guid; - $ZodStringFormat.init(inst, def); -}); -var $ZodUUID = /* @__PURE__ */ $constructor("$ZodUUID", (inst, def) => { - var _a5, _b; - if (def.version) { - const versionMap = { - v1: 1, - v2: 2, - v3: 3, - v4: 4, - v5: 5, - v6: 6, - v7: 7, - v8: 8 - }; - const v = versionMap[def.version]; - if (v === void 0) - throw new Error(`Invalid UUID version: "${def.version}"`); - (_a5 = def.pattern) != null ? _a5 : def.pattern = uuid(v); - } else - (_b = def.pattern) != null ? _b : def.pattern = uuid(); - $ZodStringFormat.init(inst, def); -}); -var $ZodEmail = /* @__PURE__ */ $constructor("$ZodEmail", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = email; - $ZodStringFormat.init(inst, def); -}); -var $ZodURL = /* @__PURE__ */ $constructor("$ZodURL", (inst, def) => { - $ZodStringFormat.init(inst, def); - inst._zod.check = (payload) => { - var _a5; - try { - const trimmed = payload.value.trim(); - if (!def.normalize && ((_a5 = def.protocol) == null ? void 0 : _a5.source) === httpProtocol.source) { - if (!/^https?:\/\//i.test(trimmed)) { - payload.issues.push({ - code: "invalid_format", - format: "url", - note: "Invalid URL format", - input: payload.value, - inst, - continue: !def.abort - }); - return; - } - } - const url2 = new URL(trimmed); - if (def.hostname) { - def.hostname.lastIndex = 0; - if (!def.hostname.test(url2.hostname)) { - payload.issues.push({ - code: "invalid_format", - format: "url", - note: "Invalid hostname", - pattern: def.hostname.source, - input: payload.value, - inst, - continue: !def.abort - }); - } - } - if (def.protocol) { - def.protocol.lastIndex = 0; - if (!def.protocol.test(url2.protocol.endsWith(":") ? url2.protocol.slice(0, -1) : url2.protocol)) { - payload.issues.push({ - code: "invalid_format", - format: "url", - note: "Invalid protocol", - pattern: def.protocol.source, - input: payload.value, - inst, - continue: !def.abort - }); - } - } - if (def.normalize) { - payload.value = url2.href; - } else { - payload.value = trimmed; - } - return; - } catch (_) { - payload.issues.push({ - code: "invalid_format", - format: "url", - input: payload.value, - inst, - continue: !def.abort - }); - } - }; -}); -var $ZodEmoji = /* @__PURE__ */ $constructor("$ZodEmoji", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = emoji(); - $ZodStringFormat.init(inst, def); -}); -var $ZodNanoID = /* @__PURE__ */ $constructor("$ZodNanoID", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = nanoid; - $ZodStringFormat.init(inst, def); -}); -var $ZodCUID = /* @__PURE__ */ $constructor("$ZodCUID", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = cuid; - $ZodStringFormat.init(inst, def); -}); -var $ZodCUID2 = /* @__PURE__ */ $constructor("$ZodCUID2", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = cuid2; - $ZodStringFormat.init(inst, def); -}); -var $ZodULID = /* @__PURE__ */ $constructor("$ZodULID", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = ulid; - $ZodStringFormat.init(inst, def); -}); -var $ZodXID = /* @__PURE__ */ $constructor("$ZodXID", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = xid; - $ZodStringFormat.init(inst, def); -}); -var $ZodKSUID = /* @__PURE__ */ $constructor("$ZodKSUID", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = ksuid; - $ZodStringFormat.init(inst, def); -}); -var $ZodISODateTime = /* @__PURE__ */ $constructor("$ZodISODateTime", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = datetime(def); - $ZodStringFormat.init(inst, def); -}); -var $ZodISODate = /* @__PURE__ */ $constructor("$ZodISODate", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = date; - $ZodStringFormat.init(inst, def); -}); -var $ZodISOTime = /* @__PURE__ */ $constructor("$ZodISOTime", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = time(def); - $ZodStringFormat.init(inst, def); -}); -var $ZodISODuration = /* @__PURE__ */ $constructor("$ZodISODuration", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = duration; - $ZodStringFormat.init(inst, def); -}); -var $ZodIPv4 = /* @__PURE__ */ $constructor("$ZodIPv4", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = ipv4; - $ZodStringFormat.init(inst, def); - inst._zod.bag.format = `ipv4`; -}); -var $ZodIPv6 = /* @__PURE__ */ $constructor("$ZodIPv6", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = ipv6; - $ZodStringFormat.init(inst, def); - inst._zod.bag.format = `ipv6`; - inst._zod.check = (payload) => { - try { - new URL(`http://[${payload.value}]`); - } catch (e) { - payload.issues.push({ - code: "invalid_format", - format: "ipv6", - input: payload.value, - inst, - continue: !def.abort - }); - } - }; -}); -var $ZodMAC = /* @__PURE__ */ $constructor("$ZodMAC", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = mac(def.delimiter); - $ZodStringFormat.init(inst, def); - inst._zod.bag.format = `mac`; -}); -var $ZodCIDRv4 = /* @__PURE__ */ $constructor("$ZodCIDRv4", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = cidrv4; - $ZodStringFormat.init(inst, def); -}); -var $ZodCIDRv6 = /* @__PURE__ */ $constructor("$ZodCIDRv6", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = cidrv6; - $ZodStringFormat.init(inst, def); - inst._zod.check = (payload) => { - const parts = payload.value.split("/"); - try { - if (parts.length !== 2) - throw new Error(); - const [address, prefix] = parts; - if (!prefix) - throw new Error(); - const prefixNum = Number(prefix); - if (`${prefixNum}` !== prefix) - throw new Error(); - if (prefixNum < 0 || prefixNum > 128) - throw new Error(); - new URL(`http://[${address}]`); - } catch (e) { - payload.issues.push({ - code: "invalid_format", - format: "cidrv6", - input: payload.value, - inst, - continue: !def.abort - }); - } - }; -}); -function isValidBase64(data2) { - if (data2 === "") - return true; - if (/\s/.test(data2)) - return false; - if (data2.length % 4 !== 0) - return false; - try { - atob(data2); - return true; - } catch (e) { - return false; - } -} -var $ZodBase64 = /* @__PURE__ */ $constructor("$ZodBase64", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = base64; - $ZodStringFormat.init(inst, def); - inst._zod.bag.contentEncoding = "base64"; - inst._zod.check = (payload) => { - if (isValidBase64(payload.value)) - return; - payload.issues.push({ - code: "invalid_format", - format: "base64", - input: payload.value, - inst, - continue: !def.abort - }); - }; -}); -function isValidBase64URL(data2) { - if (!base64url.test(data2)) - return false; - const base643 = data2.replace(/[-_]/g, (c) => c === "-" ? "+" : "/"); - const padded = base643.padEnd(Math.ceil(base643.length / 4) * 4, "="); - return isValidBase64(padded); -} -var $ZodBase64URL = /* @__PURE__ */ $constructor("$ZodBase64URL", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = base64url; - $ZodStringFormat.init(inst, def); - inst._zod.bag.contentEncoding = "base64url"; - inst._zod.check = (payload) => { - if (isValidBase64URL(payload.value)) - return; - payload.issues.push({ - code: "invalid_format", - format: "base64url", - input: payload.value, - inst, - continue: !def.abort - }); - }; -}); -var $ZodE164 = /* @__PURE__ */ $constructor("$ZodE164", (inst, def) => { - var _a5; - (_a5 = def.pattern) != null ? _a5 : def.pattern = e164; - $ZodStringFormat.init(inst, def); -}); -function isValidJWT(token, algorithm = null) { - try { - const tokensParts = token.split("."); - if (tokensParts.length !== 3) - return false; - const [header] = tokensParts; - if (!header) - return false; - const parsedHeader = JSON.parse(atob(header)); - if ("typ" in parsedHeader && (parsedHeader == null ? void 0 : parsedHeader.typ) !== "JWT") - return false; - if (!parsedHeader.alg) - return false; - if (algorithm && (!("alg" in parsedHeader) || parsedHeader.alg !== algorithm)) - return false; - return true; - } catch (e) { - return false; - } -} -var $ZodJWT = /* @__PURE__ */ $constructor("$ZodJWT", (inst, def) => { - $ZodStringFormat.init(inst, def); - inst._zod.check = (payload) => { - if (isValidJWT(payload.value, def.alg)) - return; - payload.issues.push({ - code: "invalid_format", - format: "jwt", - input: payload.value, - inst, - continue: !def.abort - }); - }; -}); -var $ZodCustomStringFormat = /* @__PURE__ */ $constructor("$ZodCustomStringFormat", (inst, def) => { - $ZodStringFormat.init(inst, def); - inst._zod.check = (payload) => { - if (def.fn(payload.value)) - return; - payload.issues.push({ - code: "invalid_format", - format: def.format, - input: payload.value, - inst, - continue: !def.abort - }); - }; -}); -var $ZodNumber = /* @__PURE__ */ $constructor("$ZodNumber", (inst, def) => { - var _a5; - $ZodType.init(inst, def); - inst._zod.pattern = (_a5 = inst._zod.bag.pattern) != null ? _a5 : number; - inst._zod.parse = (payload, _ctx) => { - if (def.coerce) - try { - payload.value = Number(payload.value); - } catch (_) { - } - const input = payload.value; - if (typeof input === "number" && !Number.isNaN(input) && Number.isFinite(input)) { - return payload; - } - const received = typeof input === "number" ? Number.isNaN(input) ? "NaN" : !Number.isFinite(input) ? "Infinity" : void 0 : void 0; - payload.issues.push(__spreadValues({ - expected: "number", - code: "invalid_type", - input, - inst - }, received ? { received } : {})); - return payload; - }; -}); -var $ZodNumberFormat = /* @__PURE__ */ $constructor("$ZodNumberFormat", (inst, def) => { - $ZodCheckNumberFormat.init(inst, def); - $ZodNumber.init(inst, def); -}); -var $ZodBoolean = /* @__PURE__ */ $constructor("$ZodBoolean", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.pattern = boolean; - inst._zod.parse = (payload, _ctx) => { - if (def.coerce) - try { - payload.value = Boolean(payload.value); - } catch (_) { - } - const input = payload.value; - if (typeof input === "boolean") - return payload; - payload.issues.push({ - expected: "boolean", - code: "invalid_type", - input, - inst - }); - return payload; - }; -}); -var $ZodBigInt = /* @__PURE__ */ $constructor("$ZodBigInt", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.pattern = bigint; - inst._zod.parse = (payload, _ctx) => { - if (def.coerce) - try { - payload.value = BigInt(payload.value); - } catch (_) { - } - if (typeof payload.value === "bigint") - return payload; - payload.issues.push({ - expected: "bigint", - code: "invalid_type", - input: payload.value, - inst - }); - return payload; - }; -}); -var $ZodBigIntFormat = /* @__PURE__ */ $constructor("$ZodBigIntFormat", (inst, def) => { - $ZodCheckBigIntFormat.init(inst, def); - $ZodBigInt.init(inst, def); -}); -var $ZodSymbol = /* @__PURE__ */ $constructor("$ZodSymbol", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, _ctx) => { - const input = payload.value; - if (typeof input === "symbol") - return payload; - payload.issues.push({ - expected: "symbol", - code: "invalid_type", - input, - inst - }); - return payload; - }; -}); -var $ZodUndefined = /* @__PURE__ */ $constructor("$ZodUndefined", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.pattern = _undefined; - inst._zod.values = /* @__PURE__ */ new Set([void 0]); - inst._zod.parse = (payload, _ctx) => { - const input = payload.value; - if (typeof input === "undefined") - return payload; - payload.issues.push({ - expected: "undefined", - code: "invalid_type", - input, - inst - }); - return payload; - }; -}); -var $ZodNull = /* @__PURE__ */ $constructor("$ZodNull", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.pattern = _null; - inst._zod.values = /* @__PURE__ */ new Set([null]); - inst._zod.parse = (payload, _ctx) => { - const input = payload.value; - if (input === null) - return payload; - payload.issues.push({ - expected: "null", - code: "invalid_type", - input, - inst - }); - return payload; - }; -}); -var $ZodAny = /* @__PURE__ */ $constructor("$ZodAny", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload) => payload; -}); -var $ZodUnknown = /* @__PURE__ */ $constructor("$ZodUnknown", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload) => payload; -}); -var $ZodNever = /* @__PURE__ */ $constructor("$ZodNever", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, _ctx) => { - payload.issues.push({ - expected: "never", - code: "invalid_type", - input: payload.value, - inst - }); - return payload; - }; -}); -var $ZodVoid = /* @__PURE__ */ $constructor("$ZodVoid", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, _ctx) => { - const input = payload.value; - if (typeof input === "undefined") - return payload; - payload.issues.push({ - expected: "void", - code: "invalid_type", - input, - inst - }); - return payload; - }; -}); -var $ZodDate = /* @__PURE__ */ $constructor("$ZodDate", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, _ctx) => { - if (def.coerce) { - try { - payload.value = new Date(payload.value); - } catch (_err) { - } - } - const input = payload.value; - const isDate = input instanceof Date; - const isValidDate = isDate && !Number.isNaN(input.getTime()); - if (isValidDate) - return payload; - payload.issues.push(__spreadProps(__spreadValues({ - expected: "date", - code: "invalid_type", - input - }, isDate ? { received: "Invalid Date" } : {}), { - inst - })); - return payload; - }; -}); -function handleArrayResult(result, final, index) { - if (result.issues.length) { - final.issues.push(...prefixIssues(index, result.issues)); - } - final.value[index] = result.value; -} -var $ZodArray = /* @__PURE__ */ $constructor("$ZodArray", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, ctx) => { - const input = payload.value; - if (!Array.isArray(input)) { - payload.issues.push({ - expected: "array", - code: "invalid_type", - input, - inst - }); - return payload; - } - payload.value = Array(input.length); - const proms = []; - for (let i2 = 0; i2 < input.length; i2++) { - const item = input[i2]; - const result = def.element._zod.run({ - value: item, - issues: [] - }, ctx); - if (result instanceof Promise) { - proms.push(result.then((result2) => handleArrayResult(result2, payload, i2))); - } else { - handleArrayResult(result, payload, i2); - } - } - if (proms.length) { - return Promise.all(proms).then(() => payload); - } - return payload; - }; -}); -function handlePropertyResult(result, final, key, input, isOptionalIn, isOptionalOut) { - const isPresent = key in input; - if (result.issues.length) { - if (isOptionalIn && isOptionalOut && !isPresent) { - return; - } - final.issues.push(...prefixIssues(key, result.issues)); - } - if (!isPresent && !isOptionalIn) { - if (!result.issues.length) { - final.issues.push({ - code: "invalid_type", - expected: "nonoptional", - input: void 0, - path: [key] - }); - } - return; - } - if (result.value === void 0) { - if (isPresent) { - final.value[key] = void 0; - } - } else { - final.value[key] = result.value; - } -} -function normalizeDef(def) { - var _a5, _b, _c, _d; - const keys = Object.keys(def.shape); - for (const k of keys) { - if (!((_d = (_c = (_b = (_a5 = def.shape) == null ? void 0 : _a5[k]) == null ? void 0 : _b._zod) == null ? void 0 : _c.traits) == null ? void 0 : _d.has("$ZodType"))) { - throw new Error(`Invalid element at key "${k}": expected a Zod schema`); - } - } - const okeys = optionalKeys(def.shape); - return __spreadProps(__spreadValues({}, def), { - keys, - keySet: new Set(keys), - numKeys: keys.length, - optionalKeys: new Set(okeys) - }); -} -function handleCatchall(proms, input, payload, ctx, def, inst) { - const unrecognized = []; - const keySet = def.keySet; - const _catchall = def.catchall._zod; - const t = _catchall.def.type; - const isOptionalIn = _catchall.optin === "optional"; - const isOptionalOut = _catchall.optout === "optional"; - for (const key in input) { - if (key === "__proto__") - continue; - if (keySet.has(key)) - continue; - if (t === "never") { - unrecognized.push(key); - continue; - } - const r = _catchall.run({ value: input[key], issues: [] }, ctx); - if (r instanceof Promise) { - proms.push(r.then((r2) => handlePropertyResult(r2, payload, key, input, isOptionalIn, isOptionalOut))); - } else { - handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut); - } - } - if (unrecognized.length) { - payload.issues.push({ - code: "unrecognized_keys", - keys: unrecognized, - input, - inst - }); - } - if (!proms.length) - return payload; - return Promise.all(proms).then(() => { - return payload; - }); -} -var $ZodObject = /* @__PURE__ */ $constructor("$ZodObject", (inst, def) => { - $ZodType.init(inst, def); - const desc = Object.getOwnPropertyDescriptor(def, "shape"); - if (!(desc == null ? void 0 : desc.get)) { - const sh = def.shape; - Object.defineProperty(def, "shape", { - get: () => { - const newSh = __spreadValues({}, sh); - Object.defineProperty(def, "shape", { - value: newSh - }); - return newSh; - } - }); - } - const _normalized = cached(() => normalizeDef(def)); - defineLazy(inst._zod, "propValues", () => { - var _a5; - const shape = def.shape; - const propValues = {}; - for (const key in shape) { - const field = shape[key]._zod; - if (field.values) { - (_a5 = propValues[key]) != null ? _a5 : propValues[key] = /* @__PURE__ */ new Set(); - for (const v of field.values) - propValues[key].add(v); - } - } - return propValues; - }); - const isObject2 = isObject; - const catchall = def.catchall; - let value; - inst._zod.parse = (payload, ctx) => { - value != null ? value : value = _normalized.value; - const input = payload.value; - if (!isObject2(input)) { - payload.issues.push({ - expected: "object", - code: "invalid_type", - input, - inst - }); - return payload; - } - payload.value = {}; - const proms = []; - const shape = value.shape; - for (const key of value.keys) { - const el = shape[key]; - const isOptionalIn = el._zod.optin === "optional"; - const isOptionalOut = el._zod.optout === "optional"; - const r = el._zod.run({ value: input[key], issues: [] }, ctx); - if (r instanceof Promise) { - proms.push(r.then((r2) => handlePropertyResult(r2, payload, key, input, isOptionalIn, isOptionalOut))); - } else { - handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut); - } - } - if (!catchall) { - return proms.length ? Promise.all(proms).then(() => payload) : payload; - } - return handleCatchall(proms, input, payload, ctx, _normalized.value, inst); - }; -}); -var $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def) => { - $ZodObject.init(inst, def); - const superParse = inst._zod.parse; - const _normalized = cached(() => normalizeDef(def)); - const generateFastpass = (shape) => { - var _a5, _b; - const doc = new Doc(["shape", "payload", "ctx"]); - const normalized = _normalized.value; - const parseStr = (key) => { - const k = esc(key); - return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`; - }; - doc.write(`const input = payload.value;`); - const ids = /* @__PURE__ */ Object.create(null); - let counter = 0; - for (const key of normalized.keys) { - ids[key] = `key_${counter++}`; - } - doc.write(`const newResult = {};`); - for (const key of normalized.keys) { - const id = ids[key]; - const k = esc(key); - const schema = shape[key]; - const isOptionalIn = ((_a5 = schema == null ? void 0 : schema._zod) == null ? void 0 : _a5.optin) === "optional"; - const isOptionalOut = ((_b = schema == null ? void 0 : schema._zod) == null ? void 0 : _b.optout) === "optional"; - doc.write(`const ${id} = ${parseStr(key)};`); - if (isOptionalIn && isOptionalOut) { - doc.write(` - if (${id}.issues.length) { - if (${k} in input) { - payload.issues = payload.issues.concat(${id}.issues.map(iss => ({ - ...iss, - path: iss.path ? [${k}, ...iss.path] : [${k}] - }))); - } - } - - if (${id}.value === undefined) { - if (${k} in input) { - newResult[${k}] = undefined; - } - } else { - newResult[${k}] = ${id}.value; - } - - `); - } else if (!isOptionalIn) { - doc.write(` - const ${id}_present = ${k} in input; - if (${id}.issues.length) { - payload.issues = payload.issues.concat(${id}.issues.map(iss => ({ - ...iss, - path: iss.path ? [${k}, ...iss.path] : [${k}] - }))); - } - if (!${id}_present && !${id}.issues.length) { - payload.issues.push({ - code: "invalid_type", - expected: "nonoptional", - input: undefined, - path: [${k}] - }); - } - - if (${id}_present) { - if (${id}.value === undefined) { - newResult[${k}] = undefined; - } else { - newResult[${k}] = ${id}.value; - } - } - - `); - } else { - doc.write(` - if (${id}.issues.length) { - payload.issues = payload.issues.concat(${id}.issues.map(iss => ({ - ...iss, - path: iss.path ? [${k}, ...iss.path] : [${k}] - }))); - } - - if (${id}.value === undefined) { - if (${k} in input) { - newResult[${k}] = undefined; - } - } else { - newResult[${k}] = ${id}.value; - } - - `); - } - } - doc.write(`payload.value = newResult;`); - doc.write(`return payload;`); - const fn = doc.compile(); - return (payload, ctx) => fn(shape, payload, ctx); - }; - let fastpass; - const isObject2 = isObject; - const jit = !globalConfig.jitless; - const allowsEval2 = allowsEval; - const fastEnabled = jit && allowsEval2.value; - const catchall = def.catchall; - let value; - inst._zod.parse = (payload, ctx) => { - value != null ? value : value = _normalized.value; - const input = payload.value; - if (!isObject2(input)) { - payload.issues.push({ - expected: "object", - code: "invalid_type", - input, - inst - }); - return payload; - } - if (jit && fastEnabled && (ctx == null ? void 0 : ctx.async) === false && ctx.jitless !== true) { - if (!fastpass) - fastpass = generateFastpass(def.shape); - payload = fastpass(payload, ctx); - if (!catchall) - return payload; - return handleCatchall([], input, payload, ctx, value, inst); - } - return superParse(payload, ctx); - }; -}); -function handleUnionResults(results, final, inst, ctx) { - for (const result of results) { - if (result.issues.length === 0) { - final.value = result.value; - return final; - } - } - const nonaborted = results.filter((r) => !aborted(r)); - if (nonaborted.length === 1) { - final.value = nonaborted[0].value; - return nonaborted[0]; - } - final.issues.push({ - code: "invalid_union", - input: final.value, - inst, - errors: results.map((result) => result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) - }); - return final; -} -var $ZodUnion = /* @__PURE__ */ $constructor("$ZodUnion", (inst, def) => { - $ZodType.init(inst, def); - defineLazy(inst._zod, "optin", () => def.options.some((o) => o._zod.optin === "optional") ? "optional" : void 0); - defineLazy(inst._zod, "optout", () => def.options.some((o) => o._zod.optout === "optional") ? "optional" : void 0); - defineLazy(inst._zod, "values", () => { - if (def.options.every((o) => o._zod.values)) { - return new Set(def.options.flatMap((option) => Array.from(option._zod.values))); - } - return void 0; - }); - defineLazy(inst._zod, "pattern", () => { - if (def.options.every((o) => o._zod.pattern)) { - const patterns = def.options.map((o) => o._zod.pattern); - return new RegExp(`^(${patterns.map((p) => cleanRegex(p.source)).join("|")})$`); - } - return void 0; - }); - const first = def.options.length === 1 ? def.options[0]._zod.run : null; - inst._zod.parse = (payload, ctx) => { - if (first) { - return first(payload, ctx); - } - let async = false; - const results = []; - for (const option of def.options) { - const result = option._zod.run({ - value: payload.value, - issues: [] - }, ctx); - if (result instanceof Promise) { - results.push(result); - async = true; - } else { - if (result.issues.length === 0) - return result; - results.push(result); - } - } - if (!async) - return handleUnionResults(results, payload, inst, ctx); - return Promise.all(results).then((results2) => { - return handleUnionResults(results2, payload, inst, ctx); - }); - }; -}); -function handleExclusiveUnionResults(results, final, inst, ctx) { - const successes = results.filter((r) => r.issues.length === 0); - if (successes.length === 1) { - final.value = successes[0].value; - return final; - } - if (successes.length === 0) { - final.issues.push({ - code: "invalid_union", - input: final.value, - inst, - errors: results.map((result) => result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) - }); - } else { - final.issues.push({ - code: "invalid_union", - input: final.value, - inst, - errors: [], - inclusive: false - }); - } - return final; -} -var $ZodXor = /* @__PURE__ */ $constructor("$ZodXor", (inst, def) => { - $ZodUnion.init(inst, def); - def.inclusive = false; - const first = def.options.length === 1 ? def.options[0]._zod.run : null; - inst._zod.parse = (payload, ctx) => { - if (first) { - return first(payload, ctx); - } - let async = false; - const results = []; - for (const option of def.options) { - const result = option._zod.run({ - value: payload.value, - issues: [] - }, ctx); - if (result instanceof Promise) { - results.push(result); - async = true; - } else { - results.push(result); - } - } - if (!async) - return handleExclusiveUnionResults(results, payload, inst, ctx); - return Promise.all(results).then((results2) => { - return handleExclusiveUnionResults(results2, payload, inst, ctx); - }); - }; -}); -var $ZodDiscriminatedUnion = /* @__PURE__ */ $constructor("$ZodDiscriminatedUnion", (inst, def) => { - def.inclusive = false; - $ZodUnion.init(inst, def); - const _super = inst._zod.parse; - defineLazy(inst._zod, "propValues", () => { - const propValues = {}; - for (const option of def.options) { - const pv = option._zod.propValues; - if (!pv || Object.keys(pv).length === 0) - throw new Error(`Invalid discriminated union option at index "${def.options.indexOf(option)}"`); - for (const [k, v] of Object.entries(pv)) { - if (!propValues[k]) - propValues[k] = /* @__PURE__ */ new Set(); - for (const val of v) { - propValues[k].add(val); - } - } - } - return propValues; - }); - const disc = cached(() => { - var _a5; - const opts = def.options; - const map3 = /* @__PURE__ */ new Map(); - for (const o of opts) { - const values = (_a5 = o._zod.propValues) == null ? void 0 : _a5[def.discriminator]; - if (!values || values.size === 0) - throw new Error(`Invalid discriminated union option at index "${def.options.indexOf(o)}"`); - for (const v of values) { - if (map3.has(v)) { - throw new Error(`Duplicate discriminator value "${String(v)}"`); - } - map3.set(v, o); - } - } - return map3; - }); - inst._zod.parse = (payload, ctx) => { - const input = payload.value; - if (!isObject(input)) { - payload.issues.push({ - code: "invalid_type", - expected: "object", - input, - inst - }); - return payload; - } - const opt = disc.value.get(input == null ? void 0 : input[def.discriminator]); - if (opt) { - return opt._zod.run(payload, ctx); - } - if (def.unionFallback || ctx.direction === "backward") { - return _super(payload, ctx); - } - payload.issues.push({ - code: "invalid_union", - errors: [], - note: "No matching discriminator", - discriminator: def.discriminator, - options: Array.from(disc.value.keys()), - input, - path: [def.discriminator], - inst - }); - return payload; - }; -}); -var $ZodIntersection = /* @__PURE__ */ $constructor("$ZodIntersection", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, ctx) => { - const input = payload.value; - const left = def.left._zod.run({ value: input, issues: [] }, ctx); - const right = def.right._zod.run({ value: input, issues: [] }, ctx); - const async = left instanceof Promise || right instanceof Promise; - if (async) { - return Promise.all([left, right]).then(([left2, right2]) => { - return handleIntersectionResults(payload, left2, right2); - }); - } - return handleIntersectionResults(payload, left, right); - }; -}); -function mergeValues(a, b) { - if (a === b) { - return { valid: true, data: a }; - } - if (a instanceof Date && b instanceof Date && +a === +b) { - return { valid: true, data: a }; - } - if (isPlainObject(a) && isPlainObject(b)) { - const bKeys = Object.keys(b); - const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1); - const newObj = __spreadValues(__spreadValues({}, a), b); - for (const key of sharedKeys) { - const sharedValue = mergeValues(a[key], b[key]); - if (!sharedValue.valid) { - return { - valid: false, - mergeErrorPath: [key, ...sharedValue.mergeErrorPath] - }; - } - newObj[key] = sharedValue.data; - } - return { valid: true, data: newObj }; - } - if (Array.isArray(a) && Array.isArray(b)) { - if (a.length !== b.length) { - return { valid: false, mergeErrorPath: [] }; - } - const newArray = []; - for (let index = 0; index < a.length; index++) { - const itemA = a[index]; - const itemB = b[index]; - const sharedValue = mergeValues(itemA, itemB); - if (!sharedValue.valid) { - return { - valid: false, - mergeErrorPath: [index, ...sharedValue.mergeErrorPath] - }; - } - newArray.push(sharedValue.data); - } - return { valid: true, data: newArray }; - } - return { valid: false, mergeErrorPath: [] }; -} -function handleIntersectionResults(result, left, right) { - const unrecKeys = /* @__PURE__ */ new Map(); - let unrecIssue; - for (const iss of left.issues) { - if (iss.code === "unrecognized_keys") { - unrecIssue != null ? unrecIssue : unrecIssue = iss; - for (const k of iss.keys) { - if (!unrecKeys.has(k)) - unrecKeys.set(k, {}); - unrecKeys.get(k).l = true; - } - } else { - result.issues.push(iss); - } - } - for (const iss of right.issues) { - if (iss.code === "unrecognized_keys") { - for (const k of iss.keys) { - if (!unrecKeys.has(k)) - unrecKeys.set(k, {}); - unrecKeys.get(k).r = true; - } - } else { - result.issues.push(iss); - } - } - const bothKeys = [...unrecKeys].filter(([, f]) => f.l && f.r).map(([k]) => k); - if (bothKeys.length && unrecIssue) { - result.issues.push(__spreadProps(__spreadValues({}, unrecIssue), { keys: bothKeys })); - } - if (aborted(result)) - return result; - const merged = mergeValues(left.value, right.value); - if (!merged.valid) { - throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(merged.mergeErrorPath)}`); - } - result.value = merged.data; - return result; -} -var $ZodTuple = /* @__PURE__ */ $constructor("$ZodTuple", (inst, def) => { - $ZodType.init(inst, def); - const items = def.items; - inst._zod.parse = (payload, ctx) => { - const input = payload.value; - if (!Array.isArray(input)) { - payload.issues.push({ - input, - inst, - expected: "tuple", - code: "invalid_type" - }); - return payload; - } - payload.value = []; - const proms = []; - const optinStart = getTupleOptStart(items, "optin"); - const optoutStart = getTupleOptStart(items, "optout"); - if (!def.rest) { - if (input.length < optinStart) { - payload.issues.push({ - code: "too_small", - minimum: optinStart, - inclusive: true, - input, - inst, - origin: "array" - }); - return payload; - } - if (input.length > items.length) { - payload.issues.push({ - code: "too_big", - maximum: items.length, - inclusive: true, - input, - inst, - origin: "array" - }); - } - } - const itemResults = new Array(items.length); - for (let i2 = 0; i2 < items.length; i2++) { - const r = items[i2]._zod.run({ value: input[i2], issues: [] }, ctx); - if (r instanceof Promise) { - proms.push(r.then((rr) => { - itemResults[i2] = rr; - })); - } else { - itemResults[i2] = r; - } - } - if (def.rest) { - let i2 = items.length - 1; - const rest = input.slice(items.length); - for (const el of rest) { - i2++; - const result = def.rest._zod.run({ value: el, issues: [] }, ctx); - if (result instanceof Promise) { - proms.push(result.then((r) => handleTupleResult(r, payload, i2))); - } else { - handleTupleResult(result, payload, i2); - } - } - } - if (proms.length) { - return Promise.all(proms).then(() => handleTupleResults(itemResults, payload, items, input, optoutStart)); - } - return handleTupleResults(itemResults, payload, items, input, optoutStart); - }; -}); -function getTupleOptStart(items, key) { - for (let i2 = items.length - 1; i2 >= 0; i2--) { - if (items[i2]._zod[key] !== "optional") - return i2 + 1; - } - return 0; -} -function handleTupleResult(result, final, index) { - if (result.issues.length) { - final.issues.push(...prefixIssues(index, result.issues)); - } - final.value[index] = result.value; -} -function handleTupleResults(itemResults, final, items, input, optoutStart) { - for (let i2 = 0; i2 < items.length; i2++) { - const r = itemResults[i2]; - const isPresent = i2 < input.length; - if (r.issues.length) { - if (!isPresent && i2 >= optoutStart) { - final.value.length = i2; - break; - } - final.issues.push(...prefixIssues(i2, r.issues)); - } - final.value[i2] = r.value; - } - for (let i2 = final.value.length - 1; i2 >= input.length; i2--) { - if (items[i2]._zod.optout === "optional" && final.value[i2] === void 0) { - final.value.length = i2; - } else { - break; - } - } - return final; -} -var $ZodRecord = /* @__PURE__ */ $constructor("$ZodRecord", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, ctx) => { - const input = payload.value; - if (!isPlainObject(input)) { - payload.issues.push({ - expected: "record", - code: "invalid_type", - input, - inst - }); - return payload; - } - const proms = []; - const values = def.keyType._zod.values; - if (values) { - payload.value = {}; - const recordKeys = /* @__PURE__ */ new Set(); - for (const key of values) { - if (typeof key === "string" || typeof key === "number" || typeof key === "symbol") { - recordKeys.add(typeof key === "number" ? key.toString() : key); - const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx); - if (keyResult instanceof Promise) { - throw new Error("Async schemas not supported in object keys currently"); - } - if (keyResult.issues.length) { - payload.issues.push({ - code: "invalid_key", - origin: "record", - issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config())), - input: key, - path: [key], - inst - }); - continue; - } - const outKey = keyResult.value; - const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx); - if (result instanceof Promise) { - proms.push(result.then((result2) => { - if (result2.issues.length) { - payload.issues.push(...prefixIssues(key, result2.issues)); - } - payload.value[outKey] = result2.value; - })); - } else { - if (result.issues.length) { - payload.issues.push(...prefixIssues(key, result.issues)); - } - payload.value[outKey] = result.value; - } - } - } - let unrecognized; - for (const key in input) { - if (!recordKeys.has(key)) { - unrecognized = unrecognized != null ? unrecognized : []; - unrecognized.push(key); - } - } - if (unrecognized && unrecognized.length > 0) { - payload.issues.push({ - code: "unrecognized_keys", - input, - inst, - keys: unrecognized - }); - } - } else { - payload.value = {}; - for (const key of Reflect.ownKeys(input)) { - if (key === "__proto__") - continue; - if (!Object.prototype.propertyIsEnumerable.call(input, key)) - continue; - let keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx); - if (keyResult instanceof Promise) { - throw new Error("Async schemas not supported in object keys currently"); - } - const checkNumericKey = typeof key === "string" && number.test(key) && keyResult.issues.length; - if (checkNumericKey) { - const retryResult = def.keyType._zod.run({ value: Number(key), issues: [] }, ctx); - if (retryResult instanceof Promise) { - throw new Error("Async schemas not supported in object keys currently"); - } - if (retryResult.issues.length === 0) { - keyResult = retryResult; - } - } - if (keyResult.issues.length) { - if (def.mode === "loose") { - payload.value[key] = input[key]; - } else { - payload.issues.push({ - code: "invalid_key", - origin: "record", - issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config())), - input: key, - path: [key], - inst - }); - } - continue; - } - const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx); - if (result instanceof Promise) { - proms.push(result.then((result2) => { - if (result2.issues.length) { - payload.issues.push(...prefixIssues(key, result2.issues)); - } - payload.value[keyResult.value] = result2.value; - })); - } else { - if (result.issues.length) { - payload.issues.push(...prefixIssues(key, result.issues)); - } - payload.value[keyResult.value] = result.value; - } - } - } - if (proms.length) { - return Promise.all(proms).then(() => payload); - } - return payload; - }; -}); -var $ZodMap = /* @__PURE__ */ $constructor("$ZodMap", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, ctx) => { - const input = payload.value; - if (!(input instanceof Map)) { - payload.issues.push({ - expected: "map", - code: "invalid_type", - input, - inst - }); - return payload; - } - const proms = []; - payload.value = /* @__PURE__ */ new Map(); - for (const [key, value] of input) { - const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx); - const valueResult = def.valueType._zod.run({ value, issues: [] }, ctx); - if (keyResult instanceof Promise || valueResult instanceof Promise) { - proms.push(Promise.all([keyResult, valueResult]).then(([keyResult2, valueResult2]) => { - handleMapResult(keyResult2, valueResult2, payload, key, input, inst, ctx); - })); - } else { - handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx); - } - } - if (proms.length) - return Promise.all(proms).then(() => payload); - return payload; - }; -}); -function handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) { - if (keyResult.issues.length) { - if (propertyKeyTypes.has(typeof key)) { - final.issues.push(...prefixIssues(key, keyResult.issues)); - } else { - final.issues.push({ - code: "invalid_key", - origin: "map", - input, - inst, - issues: keyResult.issues.map((iss) => finalizeIssue(iss, ctx, config())) - }); - } - } - if (valueResult.issues.length) { - if (propertyKeyTypes.has(typeof key)) { - final.issues.push(...prefixIssues(key, valueResult.issues)); - } else { - final.issues.push({ - origin: "map", - code: "invalid_element", - input, - inst, - key, - issues: valueResult.issues.map((iss) => finalizeIssue(iss, ctx, config())) - }); - } - } - final.value.set(keyResult.value, valueResult.value); -} -var $ZodSet = /* @__PURE__ */ $constructor("$ZodSet", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, ctx) => { - const input = payload.value; - if (!(input instanceof Set)) { - payload.issues.push({ - input, - inst, - expected: "set", - code: "invalid_type" - }); - return payload; - } - const proms = []; - payload.value = /* @__PURE__ */ new Set(); - for (const item of input) { - const result = def.valueType._zod.run({ value: item, issues: [] }, ctx); - if (result instanceof Promise) { - proms.push(result.then((result2) => handleSetResult(result2, payload))); - } else - handleSetResult(result, payload); - } - if (proms.length) - return Promise.all(proms).then(() => payload); - return payload; - }; -}); -function handleSetResult(result, final) { - if (result.issues.length) { - final.issues.push(...result.issues); - } - final.value.add(result.value); -} -var $ZodEnum = /* @__PURE__ */ $constructor("$ZodEnum", (inst, def) => { - $ZodType.init(inst, def); - const values = getEnumValues(def.entries); - const valuesSet = new Set(values); - inst._zod.values = valuesSet; - inst._zod.pattern = new RegExp(`^(${values.filter((k) => propertyKeyTypes.has(typeof k)).map((o) => typeof o === "string" ? escapeRegex(o) : o.toString()).join("|")})$`); - inst._zod.parse = (payload, _ctx) => { - const input = payload.value; - if (valuesSet.has(input)) { - return payload; - } - payload.issues.push({ - code: "invalid_value", - values, - input, - inst - }); - return payload; - }; -}); -var $ZodLiteral = /* @__PURE__ */ $constructor("$ZodLiteral", (inst, def) => { - $ZodType.init(inst, def); - if (def.values.length === 0) { - throw new Error("Cannot create literal schema with no valid values"); - } - const values = new Set(def.values); - inst._zod.values = values; - inst._zod.pattern = new RegExp(`^(${def.values.map((o) => typeof o === "string" ? escapeRegex(o) : o ? escapeRegex(o.toString()) : String(o)).join("|")})$`); - inst._zod.parse = (payload, _ctx) => { - const input = payload.value; - if (values.has(input)) { - return payload; - } - payload.issues.push({ - code: "invalid_value", - values: def.values, - input, - inst - }); - return payload; - }; -}); -var $ZodFile = /* @__PURE__ */ $constructor("$ZodFile", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, _ctx) => { - const input = payload.value; - if (input instanceof File) - return payload; - payload.issues.push({ - expected: "file", - code: "invalid_type", - input, - inst - }); - return payload; - }; -}); -var $ZodTransform = /* @__PURE__ */ $constructor("$ZodTransform", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.optin = "optional"; - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - throw new $ZodEncodeError(inst.constructor.name); - } - const _out = def.transform(payload.value, payload); - if (ctx.async) { - const output = _out instanceof Promise ? _out : Promise.resolve(_out); - return output.then((output2) => { - payload.value = output2; - payload.fallback = true; - return payload; - }); - } - if (_out instanceof Promise) { - throw new $ZodAsyncError(); - } - payload.value = _out; - payload.fallback = true; - return payload; - }; -}); -function handleOptionalResult(result, input) { - if (input === void 0 && (result.issues.length || result.fallback)) { - return { issues: [], value: void 0 }; - } - return result; -} -var $ZodOptional = /* @__PURE__ */ $constructor("$ZodOptional", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.optin = "optional"; - inst._zod.optout = "optional"; - defineLazy(inst._zod, "values", () => { - return def.innerType._zod.values ? /* @__PURE__ */ new Set([...def.innerType._zod.values, void 0]) : void 0; - }); - defineLazy(inst._zod, "pattern", () => { - const pattern = def.innerType._zod.pattern; - return pattern ? new RegExp(`^(${cleanRegex(pattern.source)})?$`) : void 0; - }); - inst._zod.parse = (payload, ctx) => { - if (def.innerType._zod.optin === "optional") { - const input = payload.value; - const result = def.innerType._zod.run(payload, ctx); - if (result instanceof Promise) - return result.then((r) => handleOptionalResult(r, input)); - return handleOptionalResult(result, input); - } - if (payload.value === void 0) { - return payload; - } - return def.innerType._zod.run(payload, ctx); - }; -}); -var $ZodExactOptional = /* @__PURE__ */ $constructor("$ZodExactOptional", (inst, def) => { - $ZodOptional.init(inst, def); - defineLazy(inst._zod, "values", () => def.innerType._zod.values); - defineLazy(inst._zod, "pattern", () => def.innerType._zod.pattern); - inst._zod.parse = (payload, ctx) => { - return def.innerType._zod.run(payload, ctx); - }; -}); -var $ZodNullable = /* @__PURE__ */ $constructor("$ZodNullable", (inst, def) => { - $ZodType.init(inst, def); - defineLazy(inst._zod, "optin", () => def.innerType._zod.optin); - defineLazy(inst._zod, "optout", () => def.innerType._zod.optout); - defineLazy(inst._zod, "pattern", () => { - const pattern = def.innerType._zod.pattern; - return pattern ? new RegExp(`^(${cleanRegex(pattern.source)}|null)$`) : void 0; - }); - defineLazy(inst._zod, "values", () => { - return def.innerType._zod.values ? /* @__PURE__ */ new Set([...def.innerType._zod.values, null]) : void 0; - }); - inst._zod.parse = (payload, ctx) => { - if (payload.value === null) - return payload; - return def.innerType._zod.run(payload, ctx); - }; -}); -var $ZodDefault = /* @__PURE__ */ $constructor("$ZodDefault", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.optin = "optional"; - defineLazy(inst._zod, "values", () => def.innerType._zod.values); - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - return def.innerType._zod.run(payload, ctx); - } - if (payload.value === void 0) { - payload.value = def.defaultValue; - return payload; - } - const result = def.innerType._zod.run(payload, ctx); - if (result instanceof Promise) { - return result.then((result2) => handleDefaultResult(result2, def)); - } - return handleDefaultResult(result, def); - }; -}); -function handleDefaultResult(payload, def) { - if (payload.value === void 0) { - payload.value = def.defaultValue; - } - return payload; -} -var $ZodPrefault = /* @__PURE__ */ $constructor("$ZodPrefault", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.optin = "optional"; - defineLazy(inst._zod, "values", () => def.innerType._zod.values); - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - return def.innerType._zod.run(payload, ctx); - } - if (payload.value === void 0) { - payload.value = def.defaultValue; - } - return def.innerType._zod.run(payload, ctx); - }; -}); -var $ZodNonOptional = /* @__PURE__ */ $constructor("$ZodNonOptional", (inst, def) => { - $ZodType.init(inst, def); - defineLazy(inst._zod, "values", () => { - const v = def.innerType._zod.values; - return v ? new Set([...v].filter((x) => x !== void 0)) : void 0; - }); - inst._zod.parse = (payload, ctx) => { - const result = def.innerType._zod.run(payload, ctx); - if (result instanceof Promise) { - return result.then((result2) => handleNonOptionalResult(result2, inst)); - } - return handleNonOptionalResult(result, inst); - }; -}); -function handleNonOptionalResult(payload, inst) { - if (!payload.issues.length && payload.value === void 0) { - payload.issues.push({ - code: "invalid_type", - expected: "nonoptional", - input: payload.value, - inst - }); - } - return payload; -} -var $ZodSuccess = /* @__PURE__ */ $constructor("$ZodSuccess", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - throw new $ZodEncodeError("ZodSuccess"); - } - const result = def.innerType._zod.run(payload, ctx); - if (result instanceof Promise) { - return result.then((result2) => { - payload.value = result2.issues.length === 0; - return payload; - }); - } - payload.value = result.issues.length === 0; - return payload; - }; -}); -var $ZodCatch = /* @__PURE__ */ $constructor("$ZodCatch", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.optin = "optional"; - defineLazy(inst._zod, "optout", () => def.innerType._zod.optout); - defineLazy(inst._zod, "values", () => def.innerType._zod.values); - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - return def.innerType._zod.run(payload, ctx); - } - const result = def.innerType._zod.run(payload, ctx); - if (result instanceof Promise) { - return result.then((result2) => { - payload.value = result2.value; - if (result2.issues.length) { - payload.value = def.catchValue(__spreadProps(__spreadValues({}, payload), { - error: { - issues: result2.issues.map((iss) => finalizeIssue(iss, ctx, config())) - }, - input: payload.value - })); - payload.issues = []; - payload.fallback = true; - } - return payload; - }); - } - payload.value = result.value; - if (result.issues.length) { - payload.value = def.catchValue(__spreadProps(__spreadValues({}, payload), { - error: { - issues: result.issues.map((iss) => finalizeIssue(iss, ctx, config())) - }, - input: payload.value - })); - payload.issues = []; - payload.fallback = true; - } - return payload; - }; -}); -var $ZodNaN = /* @__PURE__ */ $constructor("$ZodNaN", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, _ctx) => { - if (typeof payload.value !== "number" || !Number.isNaN(payload.value)) { - payload.issues.push({ - input: payload.value, - inst, - expected: "nan", - code: "invalid_type" - }); - return payload; - } - return payload; - }; -}); -var $ZodPipe = /* @__PURE__ */ $constructor("$ZodPipe", (inst, def) => { - $ZodType.init(inst, def); - defineLazy(inst._zod, "values", () => def.in._zod.values); - defineLazy(inst._zod, "optin", () => def.in._zod.optin); - defineLazy(inst._zod, "optout", () => def.out._zod.optout); - defineLazy(inst._zod, "propValues", () => def.in._zod.propValues); - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - const right = def.out._zod.run(payload, ctx); - if (right instanceof Promise) { - return right.then((right2) => handlePipeResult(right2, def.in, ctx)); - } - return handlePipeResult(right, def.in, ctx); - } - const left = def.in._zod.run(payload, ctx); - if (left instanceof Promise) { - return left.then((left2) => handlePipeResult(left2, def.out, ctx)); - } - return handlePipeResult(left, def.out, ctx); - }; -}); -function handlePipeResult(left, next, ctx) { - if (left.issues.length) { - left.aborted = true; - return left; - } - return next._zod.run({ value: left.value, issues: left.issues, fallback: left.fallback }, ctx); -} -var $ZodCodec = /* @__PURE__ */ $constructor("$ZodCodec", (inst, def) => { - $ZodType.init(inst, def); - defineLazy(inst._zod, "values", () => def.in._zod.values); - defineLazy(inst._zod, "optin", () => def.in._zod.optin); - defineLazy(inst._zod, "optout", () => def.out._zod.optout); - defineLazy(inst._zod, "propValues", () => def.in._zod.propValues); - inst._zod.parse = (payload, ctx) => { - const direction = ctx.direction || "forward"; - if (direction === "forward") { - const left = def.in._zod.run(payload, ctx); - if (left instanceof Promise) { - return left.then((left2) => handleCodecAResult(left2, def, ctx)); - } - return handleCodecAResult(left, def, ctx); - } else { - const right = def.out._zod.run(payload, ctx); - if (right instanceof Promise) { - return right.then((right2) => handleCodecAResult(right2, def, ctx)); - } - return handleCodecAResult(right, def, ctx); - } - }; -}); -function handleCodecAResult(result, def, ctx) { - if (result.issues.length) { - result.aborted = true; - return result; - } - const direction = ctx.direction || "forward"; - if (direction === "forward") { - const transformed = def.transform(result.value, result); - if (transformed instanceof Promise) { - return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx)); - } - return handleCodecTxResult(result, transformed, def.out, ctx); - } else { - const transformed = def.reverseTransform(result.value, result); - if (transformed instanceof Promise) { - return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx)); - } - return handleCodecTxResult(result, transformed, def.in, ctx); - } -} -function handleCodecTxResult(left, value, nextSchema, ctx) { - if (left.issues.length) { - left.aborted = true; - return left; - } - return nextSchema._zod.run({ value, issues: left.issues }, ctx); -} -var $ZodPreprocess = /* @__PURE__ */ $constructor("$ZodPreprocess", (inst, def) => { - $ZodPipe.init(inst, def); -}); -var $ZodReadonly = /* @__PURE__ */ $constructor("$ZodReadonly", (inst, def) => { - $ZodType.init(inst, def); - defineLazy(inst._zod, "propValues", () => def.innerType._zod.propValues); - defineLazy(inst._zod, "values", () => def.innerType._zod.values); - defineLazy(inst._zod, "optin", () => { - var _a5, _b; - return (_b = (_a5 = def.innerType) == null ? void 0 : _a5._zod) == null ? void 0 : _b.optin; - }); - defineLazy(inst._zod, "optout", () => { - var _a5, _b; - return (_b = (_a5 = def.innerType) == null ? void 0 : _a5._zod) == null ? void 0 : _b.optout; - }); - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - return def.innerType._zod.run(payload, ctx); - } - const result = def.innerType._zod.run(payload, ctx); - if (result instanceof Promise) { - return result.then(handleReadonlyResult); - } - return handleReadonlyResult(result); - }; -}); -function handleReadonlyResult(payload) { - payload.value = Object.freeze(payload.value); - return payload; -} -var $ZodTemplateLiteral = /* @__PURE__ */ $constructor("$ZodTemplateLiteral", (inst, def) => { - $ZodType.init(inst, def); - const regexParts = []; - for (const part of def.parts) { - if (typeof part === "object" && part !== null) { - if (!part._zod.pattern) { - throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`); - } - const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern; - if (!source) - throw new Error(`Invalid template literal part: ${part._zod.traits}`); - const start = source.startsWith("^") ? 1 : 0; - const end = source.endsWith("$") ? source.length - 1 : source.length; - regexParts.push(source.slice(start, end)); - } else if (part === null || primitiveTypes.has(typeof part)) { - regexParts.push(escapeRegex(`${part}`)); - } else { - throw new Error(`Invalid template literal part: ${part}`); - } - } - inst._zod.pattern = new RegExp(`^${regexParts.join("")}$`); - inst._zod.parse = (payload, _ctx) => { - var _a5; - if (typeof payload.value !== "string") { - payload.issues.push({ - input: payload.value, - inst, - expected: "string", - code: "invalid_type" - }); - return payload; - } - inst._zod.pattern.lastIndex = 0; - if (!inst._zod.pattern.test(payload.value)) { - payload.issues.push({ - input: payload.value, - inst, - code: "invalid_format", - format: (_a5 = def.format) != null ? _a5 : "template_literal", - pattern: inst._zod.pattern.source - }); - return payload; - } - return payload; - }; -}); -var $ZodFunction = /* @__PURE__ */ $constructor("$ZodFunction", (inst, def) => { - $ZodType.init(inst, def); - inst._def = def; - inst._zod.def = def; - inst.implement = (func) => { - if (typeof func !== "function") { - throw new Error("implement() must be called with a function"); - } - return function(...args) { - const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args; - const result = Reflect.apply(func, this, parsedArgs); - if (inst._def.output) { - return parse(inst._def.output, result); - } - return result; - }; - }; - inst.implementAsync = (func) => { - if (typeof func !== "function") { - throw new Error("implementAsync() must be called with a function"); - } - return function(...args) { - return __async(this, null, function* () { - const parsedArgs = inst._def.input ? yield parseAsync(inst._def.input, args) : args; - const result = yield Reflect.apply(func, this, parsedArgs); - if (inst._def.output) { - return yield parseAsync(inst._def.output, result); - } - return result; - }); - }; - }; - inst._zod.parse = (payload, _ctx) => { - if (typeof payload.value !== "function") { - payload.issues.push({ - code: "invalid_type", - expected: "function", - input: payload.value, - inst - }); - return payload; - } - const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === "promise"; - if (hasPromiseOutput) { - payload.value = inst.implementAsync(payload.value); - } else { - payload.value = inst.implement(payload.value); - } - return payload; - }; - inst.input = (...args) => { - const F = inst.constructor; - if (Array.isArray(args[0])) { - return new F({ - type: "function", - input: new $ZodTuple({ - type: "tuple", - items: args[0], - rest: args[1] - }), - output: inst._def.output - }); - } - return new F({ - type: "function", - input: args[0], - output: inst._def.output - }); - }; - inst.output = (output) => { - const F = inst.constructor; - return new F({ - type: "function", - input: inst._def.input, - output - }); - }; - return inst; -}); -var $ZodPromise = /* @__PURE__ */ $constructor("$ZodPromise", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.parse = (payload, ctx) => { - return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx)); - }; -}); -var $ZodLazy = /* @__PURE__ */ $constructor("$ZodLazy", (inst, def) => { - $ZodType.init(inst, def); - defineLazy(inst._zod, "innerType", () => { - const d = def; - if (!d._cachedInner) - d._cachedInner = def.getter(); - return d._cachedInner; - }); - defineLazy(inst._zod, "pattern", () => { - var _a5, _b; - return (_b = (_a5 = inst._zod.innerType) == null ? void 0 : _a5._zod) == null ? void 0 : _b.pattern; - }); - defineLazy(inst._zod, "propValues", () => { - var _a5, _b; - return (_b = (_a5 = inst._zod.innerType) == null ? void 0 : _a5._zod) == null ? void 0 : _b.propValues; - }); - defineLazy(inst._zod, "optin", () => { - var _a5, _b, _c; - return (_c = (_b = (_a5 = inst._zod.innerType) == null ? void 0 : _a5._zod) == null ? void 0 : _b.optin) != null ? _c : void 0; - }); - defineLazy(inst._zod, "optout", () => { - var _a5, _b, _c; - return (_c = (_b = (_a5 = inst._zod.innerType) == null ? void 0 : _a5._zod) == null ? void 0 : _b.optout) != null ? _c : void 0; - }); - inst._zod.parse = (payload, ctx) => { - const inner = inst._zod.innerType; - return inner._zod.run(payload, ctx); - }; -}); -var $ZodCustom = /* @__PURE__ */ $constructor("$ZodCustom", (inst, def) => { - $ZodCheck.init(inst, def); - $ZodType.init(inst, def); - inst._zod.parse = (payload, _) => { - return payload; - }; - inst._zod.check = (payload) => { - const input = payload.value; - const r = def.fn(input); - if (r instanceof Promise) { - return r.then((r2) => handleRefineResult(r2, payload, input, inst)); - } - handleRefineResult(r, payload, input, inst); - return; - }; -}); -function handleRefineResult(result, payload, input, inst) { - var _a5; - if (!result) { - const _iss = { - code: "custom", - input, - inst, - // incorporates params.error into issue reporting - path: [...(_a5 = inst._zod.def.path) != null ? _a5 : []], - // incorporates params.error into issue reporting - continue: !inst._zod.def.abort - // params: inst._zod.def.params, - }; - if (inst._zod.def.params) - _iss.params = inst._zod.def.params; - payload.issues.push(issue(_iss)); - } -} - -// node_modules/zod/v4/locales/index.js -var locales_exports = {}; -__export(locales_exports, { - ar: () => ar_default, - az: () => az_default, - be: () => be_default, - bg: () => bg_default, - ca: () => ca_default, - cs: () => cs_default, - da: () => da_default, - de: () => de_default, - el: () => el_default, - en: () => en_default, - eo: () => eo_default, - es: () => es_default, - fa: () => fa_default, - fi: () => fi_default, - fr: () => fr_default, - frCA: () => fr_CA_default, - he: () => he_default, - hr: () => hr_default, - hu: () => hu_default, - hy: () => hy_default, - id: () => id_default, - is: () => is_default, - it: () => it_default, - ja: () => ja_default, - ka: () => ka_default, - kh: () => kh_default, - km: () => km_default, - ko: () => ko_default, - lt: () => lt_default, - mk: () => mk_default, - ms: () => ms_default, - nl: () => nl_default, - no: () => no_default, - ota: () => ota_default, - pl: () => pl_default, - ps: () => ps_default, - pt: () => pt_default, - ro: () => ro_default, - ru: () => ru_default, - sl: () => sl_default, - sv: () => sv_default, - ta: () => ta_default, - th: () => th_default, - tr: () => tr_default, - ua: () => ua_default, - uk: () => uk_default, - ur: () => ur_default, - uz: () => uz_default, - vi: () => vi_default, - yo: () => yo_default, - zhCN: () => zh_CN_default, - zhTW: () => zh_TW_default -}); - -// node_modules/zod/v4/locales/ar.js -var error = () => { - const Sizable = { - string: { unit: "\u062D\u0631\u0641", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" }, - file: { unit: "\u0628\u0627\u064A\u062A", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" }, - array: { unit: "\u0639\u0646\u0635\u0631", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" }, - set: { unit: "\u0639\u0646\u0635\u0631", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u0645\u062F\u062E\u0644", - email: "\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A", - url: "\u0631\u0627\u0628\u0637", - emoji: "\u0625\u064A\u0645\u0648\u062C\u064A", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO", - date: "\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO", - time: "\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO", - duration: "\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO", - ipv4: "\u0639\u0646\u0648\u0627\u0646 IPv4", - ipv6: "\u0639\u0646\u0648\u0627\u0646 IPv6", - cidrv4: "\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4", - cidrv6: "\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6", - base64: "\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded", - base64url: "\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded", - json_string: "\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON", - e164: "\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164", - jwt: "JWT", - template_literal: "\u0645\u062F\u062E\u0644" - }; - const TypeDictionary = { - nan: "NaN" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 instanceof ${issue2.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${received}`; - } - return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${stringifyPrimitive(issue2.values[0])}`; - return `\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return ` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${(_c = issue2.origin) != null ? _c : "\u0627\u0644\u0642\u064A\u0645\u0629"} ${adj} ${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "\u0639\u0646\u0635\u0631"}`; - return `\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${(_e = issue2.origin) != null ? _e : "\u0627\u0644\u0642\u064A\u0645\u0629"} ${adj} ${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${issue2.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${adj} ${issue2.minimum.toString()} ${sizing.unit}`; - } - return `\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${issue2.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${adj} ${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${issue2.prefix}"`; - if (_issue.format === "ends_with") - return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${_issue.suffix}"`; - if (_issue.format === "includes") - return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${_issue.includes}"`; - if (_issue.format === "regex") - return `\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${_issue.pattern}`; - return `${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`; - } - case "not_multiple_of": - return `\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${issue2.divisor}`; - case "unrecognized_keys": - return `\u0645\u0639\u0631\u0641${issue2.keys.length > 1 ? "\u0627\u062A" : ""} \u063A\u0631\u064A\u0628${issue2.keys.length > 1 ? "\u0629" : ""}: ${joinValues(issue2.keys, "\u060C ")}`; - case "invalid_key": - return `\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${issue2.origin}`; - case "invalid_union": - return "\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"; - case "invalid_element": - return `\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${issue2.origin}`; - default: - return "\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"; - } - }; -}; -function ar_default() { - return { - localeError: error() - }; -} - -// node_modules/zod/v4/locales/az.js -var error2 = () => { - const Sizable = { - string: { unit: "simvol", verb: "olmal\u0131d\u0131r" }, - file: { unit: "bayt", verb: "olmal\u0131d\u0131r" }, - array: { unit: "element", verb: "olmal\u0131d\u0131r" }, - set: { unit: "element", verb: "olmal\u0131d\u0131r" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "input", - email: "email address", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO datetime", - date: "ISO date", - time: "ISO time", - duration: "ISO duration", - ipv4: "IPv4 address", - ipv6: "IPv6 address", - cidrv4: "IPv4 range", - cidrv6: "IPv6 range", - base64: "base64-encoded string", - base64url: "base64url-encoded string", - json_string: "JSON string", - e164: "E.164 number", - jwt: "JWT", - template_literal: "input" - }; - const TypeDictionary = { - nan: "NaN" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n instanceof ${issue2.expected}, daxil olan ${received}`; - } - return `Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${expected}, daxil olan ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${stringifyPrimitive(issue2.values[0])}`; - return `Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${(_c = issue2.origin) != null ? _c : "d\u0259y\u0259r"} ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "element"}`; - return `\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${(_e = issue2.origin) != null ? _e : "d\u0259y\u0259r"} ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - return `\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${issue2.origin} ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Yanl\u0131\u015F m\u0259tn: "${_issue.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`; - if (_issue.format === "ends_with") - return `Yanl\u0131\u015F m\u0259tn: "${_issue.suffix}" il\u0259 bitm\u0259lidir`; - if (_issue.format === "includes") - return `Yanl\u0131\u015F m\u0259tn: "${_issue.includes}" daxil olmal\u0131d\u0131r`; - if (_issue.format === "regex") - return `Yanl\u0131\u015F m\u0259tn: ${_issue.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`; - return `Yanl\u0131\u015F ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `Yanl\u0131\u015F \u0259d\u0259d: ${issue2.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`; - case "unrecognized_keys": - return `Tan\u0131nmayan a\xE7ar${issue2.keys.length > 1 ? "lar" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `${issue2.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`; - case "invalid_union": - return "Yanl\u0131\u015F d\u0259y\u0259r"; - case "invalid_element": - return `${issue2.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`; - default: - return `Yanl\u0131\u015F d\u0259y\u0259r`; - } - }; -}; -function az_default() { - return { - localeError: error2() - }; -} - -// node_modules/zod/v4/locales/be.js -function getBelarusianPlural(count, one, few, many) { - const absCount = Math.abs(count); - const lastDigit = absCount % 10; - const lastTwoDigits = absCount % 100; - if (lastTwoDigits >= 11 && lastTwoDigits <= 19) { - return many; - } - if (lastDigit === 1) { - return one; - } - if (lastDigit >= 2 && lastDigit <= 4) { - return few; - } - return many; -} -var error3 = () => { - const Sizable = { - string: { - unit: { - one: "\u0441\u0456\u043C\u0432\u0430\u043B", - few: "\u0441\u0456\u043C\u0432\u0430\u043B\u044B", - many: "\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E" - }, - verb: "\u043C\u0435\u0446\u044C" - }, - array: { - unit: { - one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", - few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B", - many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E" - }, - verb: "\u043C\u0435\u0446\u044C" - }, - set: { - unit: { - one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", - few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B", - many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E" - }, - verb: "\u043C\u0435\u0446\u044C" - }, - file: { - unit: { - one: "\u0431\u0430\u0439\u0442", - few: "\u0431\u0430\u0439\u0442\u044B", - many: "\u0431\u0430\u0439\u0442\u0430\u045E" - }, - verb: "\u043C\u0435\u0446\u044C" - } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u0443\u0432\u043E\u0434", - email: "email \u0430\u0434\u0440\u0430\u0441", - url: "URL", - emoji: "\u044D\u043C\u043E\u0434\u0437\u0456", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441", - date: "ISO \u0434\u0430\u0442\u0430", - time: "ISO \u0447\u0430\u0441", - duration: "ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C", - ipv4: "IPv4 \u0430\u0434\u0440\u0430\u0441", - ipv6: "IPv6 \u0430\u0434\u0440\u0430\u0441", - cidrv4: "IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D", - cidrv6: "IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D", - base64: "\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64", - base64url: "\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url", - json_string: "JSON \u0440\u0430\u0434\u043E\u043A", - e164: "\u043D\u0443\u043C\u0430\u0440 E.164", - jwt: "JWT", - template_literal: "\u0443\u0432\u043E\u0434" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u043B\u0456\u043A", - array: "\u043C\u0430\u0441\u0456\u045E" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F instanceof ${issue2.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${received}`; - } - return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${stringifyPrimitive(issue2.values[0])}`; - return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) { - const maxValue = Number(issue2.maximum); - const unit = getBelarusianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); - return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${(_c = issue2.origin) != null ? _c : "\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${sizing.verb} ${adj}${issue2.maximum.toString()} ${unit}`; - } - return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${(_d = issue2.origin) != null ? _d : "\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - const minValue = Number(issue2.minimum); - const unit = getBelarusianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); - return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue2.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${sizing.verb} ${adj}${issue2.minimum.toString()} ${unit}`; - } - return `\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${issue2.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${_issue.suffix}"`; - if (_issue.format === "includes") - return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${_issue.includes}"`; - if (_issue.format === "regex") - return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`; - return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${(_e = FormatDictionary[_issue.format]) != null ? _e : issue2.format}`; - } - case "not_multiple_of": - return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${issue2.divisor}`; - case "unrecognized_keys": - return `\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${issue2.keys.length > 1 ? "\u043A\u043B\u044E\u0447\u044B" : "\u043A\u043B\u044E\u0447"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${issue2.origin}`; - case "invalid_union": - return "\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"; - case "invalid_element": - return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${issue2.origin}`; - default: - return `\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434`; - } - }; -}; -function be_default() { - return { - localeError: error3() - }; -} - -// node_modules/zod/v4/locales/bg.js -var error4 = () => { - const Sizable = { - string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" }, - file: { unit: "\u0431\u0430\u0439\u0442\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" }, - array: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" }, - set: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u0432\u0445\u043E\u0434", - email: "\u0438\u043C\u0435\u0439\u043B \u0430\u0434\u0440\u0435\u0441", - url: "URL", - emoji: "\u0435\u043C\u043E\u0434\u0436\u0438", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO \u0432\u0440\u0435\u043C\u0435", - date: "ISO \u0434\u0430\u0442\u0430", - time: "ISO \u0432\u0440\u0435\u043C\u0435", - duration: "ISO \u043F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442", - ipv4: "IPv4 \u0430\u0434\u0440\u0435\u0441", - ipv6: "IPv6 \u0430\u0434\u0440\u0435\u0441", - cidrv4: "IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D", - cidrv6: "IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D", - base64: "base64-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437", - base64url: "base64url-\u043A\u043E\u0434\u0438\u0440\u0430\u043D \u043D\u0438\u0437", - json_string: "JSON \u043D\u0438\u0437", - e164: "E.164 \u043D\u043E\u043C\u0435\u0440", - jwt: "JWT", - template_literal: "\u0432\u0445\u043E\u0434" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u0447\u0438\u0441\u043B\u043E", - array: "\u043C\u0430\u0441\u0438\u0432" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D instanceof ${issue2.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${received}`; - } - return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434: \u043E\u0447\u0430\u043A\u0432\u0430\u043D ${stringifyPrimitive(issue2.values[0])}`; - return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u043E\u043F\u0446\u0438\u044F: \u043E\u0447\u0430\u043A\u0432\u0430\u043D\u043E \u0435\u0434\u043D\u043E \u043E\u0442 ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${(_c = issue2.origin) != null ? _c : "\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430"}`; - return `\u0422\u0432\u044A\u0440\u0434\u0435 \u0433\u043E\u043B\u044F\u043C\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${(_e = issue2.origin) != null ? _e : "\u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442"} \u0434\u0430 \u0431\u044A\u0434\u0435 ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue2.origin} \u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430 ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `\u0422\u0432\u044A\u0440\u0434\u0435 \u043C\u0430\u043B\u043A\u043E: \u043E\u0447\u0430\u043A\u0432\u0430 \u0441\u0435 ${issue2.origin} \u0434\u0430 \u0431\u044A\u0434\u0435 ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430 \u0441 "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u0432\u044A\u0440\u0448\u0432\u0430 \u0441 "${_issue.suffix}"`; - if (_issue.format === "includes") - return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0432\u043A\u043B\u044E\u0447\u0432\u0430 "${_issue.includes}"`; - if (_issue.format === "regex") - return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043D\u0438\u0437: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u044A\u0432\u043F\u0430\u0434\u0430 \u0441 ${_issue.pattern}`; - let invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D"; - if (_issue.format === "emoji") - invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"; - if (_issue.format === "datetime") - invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"; - if (_issue.format === "date") - invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"; - if (_issue.format === "time") - invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E"; - if (_issue.format === "duration") - invalid_adj = "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430"; - return `${invalid_adj} ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u043E \u0447\u0438\u0441\u043B\u043E: \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u0440\u0430\u0442\u043D\u043E \u043D\u0430 ${issue2.divisor}`; - case "unrecognized_keys": - return `\u041D\u0435\u0440\u0430\u0437\u043F\u043E\u0437\u043D\u0430\u0442${issue2.keys.length > 1 ? "\u0438" : ""} \u043A\u043B\u044E\u0447${issue2.keys.length > 1 ? "\u043E\u0432\u0435" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u043A\u043B\u044E\u0447 \u0432 ${issue2.origin}`; - case "invalid_union": - return "\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434"; - case "invalid_element": - return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0432 ${issue2.origin}`; - default: - return `\u041D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D \u0432\u0445\u043E\u0434`; - } - }; -}; -function bg_default() { - return { - localeError: error4() - }; -} - -// node_modules/zod/v4/locales/ca.js -var error5 = () => { - const Sizable = { - string: { unit: "car\xE0cters", verb: "contenir" }, - file: { unit: "bytes", verb: "contenir" }, - array: { unit: "elements", verb: "contenir" }, - set: { unit: "elements", verb: "contenir" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "entrada", - email: "adre\xE7a electr\xF2nica", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "data i hora ISO", - date: "data ISO", - time: "hora ISO", - duration: "durada ISO", - ipv4: "adre\xE7a IPv4", - ipv6: "adre\xE7a IPv6", - cidrv4: "rang IPv4", - cidrv6: "rang IPv6", - base64: "cadena codificada en base64", - base64url: "cadena codificada en base64url", - json_string: "cadena JSON", - e164: "n\xFAmero E.164", - jwt: "JWT", - template_literal: "entrada" - }; - const TypeDictionary = { - nan: "NaN" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Tipus inv\xE0lid: s'esperava instanceof ${issue2.expected}, s'ha rebut ${received}`; - } - return `Tipus inv\xE0lid: s'esperava ${expected}, s'ha rebut ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Valor inv\xE0lid: s'esperava ${stringifyPrimitive(issue2.values[0])}`; - return `Opci\xF3 inv\xE0lida: s'esperava una de ${joinValues(issue2.values, " o ")}`; - case "too_big": { - const adj = issue2.inclusive ? "com a m\xE0xim" : "menys de"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Massa gran: s'esperava que ${(_c = issue2.origin) != null ? _c : "el valor"} contingu\xE9s ${adj} ${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elements"}`; - return `Massa gran: s'esperava que ${(_e = issue2.origin) != null ? _e : "el valor"} fos ${adj} ${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? "com a m\xEDnim" : "m\xE9s de"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Massa petit: s'esperava que ${issue2.origin} contingu\xE9s ${adj} ${issue2.minimum.toString()} ${sizing.unit}`; - } - return `Massa petit: s'esperava que ${issue2.origin} fos ${adj} ${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `Format inv\xE0lid: ha de comen\xE7ar amb "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `Format inv\xE0lid: ha d'acabar amb "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Format inv\xE0lid: ha d'incloure "${_issue.includes}"`; - if (_issue.format === "regex") - return `Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${_issue.pattern}`; - return `Format inv\xE0lid per a ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${issue2.divisor}`; - case "unrecognized_keys": - return `Clau${issue2.keys.length > 1 ? "s" : ""} no reconeguda${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Clau inv\xE0lida a ${issue2.origin}`; - case "invalid_union": - return "Entrada inv\xE0lida"; - // Could also be "Tipus d'unió invàlid" but "Entrada invàlida" is more general - case "invalid_element": - return `Element inv\xE0lid a ${issue2.origin}`; - default: - return `Entrada inv\xE0lida`; - } - }; -}; -function ca_default() { - return { - localeError: error5() - }; -} - -// node_modules/zod/v4/locales/cs.js -var error6 = () => { - const Sizable = { - string: { unit: "znak\u016F", verb: "m\xEDt" }, - file: { unit: "bajt\u016F", verb: "m\xEDt" }, - array: { unit: "prvk\u016F", verb: "m\xEDt" }, - set: { unit: "prvk\u016F", verb: "m\xEDt" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "regul\xE1rn\xED v\xFDraz", - email: "e-mailov\xE1 adresa", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "datum a \u010Das ve form\xE1tu ISO", - date: "datum ve form\xE1tu ISO", - time: "\u010Das ve form\xE1tu ISO", - duration: "doba trv\xE1n\xED ISO", - ipv4: "IPv4 adresa", - ipv6: "IPv6 adresa", - cidrv4: "rozsah IPv4", - cidrv6: "rozsah IPv6", - base64: "\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64", - base64url: "\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url", - json_string: "\u0159et\u011Bzec ve form\xE1tu JSON", - e164: "\u010D\xEDslo E.164", - jwt: "JWT", - template_literal: "vstup" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u010D\xEDslo", - string: "\u0159et\u011Bzec", - function: "funkce", - array: "pole" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f, _g, _h, _i; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no instanceof ${issue2.expected}, obdr\u017Eeno ${received}`; - } - return `Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${expected}, obdr\u017Eeno ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${stringifyPrimitive(issue2.values[0])}`; - return `Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${(_c = issue2.origin) != null ? _c : "hodnota"} mus\xED m\xEDt ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "prvk\u016F"}`; - } - return `Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${(_e = issue2.origin) != null ? _e : "hodnota"} mus\xED b\xFDt ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${(_f = issue2.origin) != null ? _f : "hodnota"} mus\xED m\xEDt ${adj}${issue2.minimum.toString()} ${(_g = sizing.unit) != null ? _g : "prvk\u016F"}`; - } - return `Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${(_h = issue2.origin) != null ? _h : "hodnota"} mus\xED b\xFDt ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${_issue.includes}"`; - if (_issue.format === "regex") - return `Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${_issue.pattern}`; - return `Neplatn\xFD form\xE1t ${(_i = FormatDictionary[_issue.format]) != null ? _i : issue2.format}`; - } - case "not_multiple_of": - return `Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${issue2.divisor}`; - case "unrecognized_keys": - return `Nezn\xE1m\xE9 kl\xED\u010De: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Neplatn\xFD kl\xED\u010D v ${issue2.origin}`; - case "invalid_union": - return "Neplatn\xFD vstup"; - case "invalid_element": - return `Neplatn\xE1 hodnota v ${issue2.origin}`; - default: - return `Neplatn\xFD vstup`; - } - }; -}; -function cs_default() { - return { - localeError: error6() - }; -} - -// node_modules/zod/v4/locales/da.js -var error7 = () => { - const Sizable = { - string: { unit: "tegn", verb: "havde" }, - file: { unit: "bytes", verb: "havde" }, - array: { unit: "elementer", verb: "indeholdt" }, - set: { unit: "elementer", verb: "indeholdt" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "input", - email: "e-mailadresse", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO dato- og klokkesl\xE6t", - date: "ISO-dato", - time: "ISO-klokkesl\xE6t", - duration: "ISO-varighed", - ipv4: "IPv4-omr\xE5de", - ipv6: "IPv6-omr\xE5de", - cidrv4: "IPv4-spektrum", - cidrv6: "IPv6-spektrum", - base64: "base64-kodet streng", - base64url: "base64url-kodet streng", - json_string: "JSON-streng", - e164: "E.164-nummer", - jwt: "JWT", - template_literal: "input" - }; - const TypeDictionary = { - nan: "NaN", - string: "streng", - number: "tal", - boolean: "boolean", - array: "liste", - object: "objekt", - set: "s\xE6t", - file: "fil" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Ugyldigt input: forventede instanceof ${issue2.expected}, fik ${received}`; - } - return `Ugyldigt input: forventede ${expected}, fik ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Ugyldig v\xE6rdi: forventede ${stringifyPrimitive(issue2.values[0])}`; - return `Ugyldigt valg: forventede en af f\xF8lgende ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - const origin = (_c = TypeDictionary[issue2.origin]) != null ? _c : issue2.origin; - if (sizing) - return `For stor: forventede ${origin != null ? origin : "value"} ${sizing.verb} ${adj} ${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elementer"}`; - return `For stor: forventede ${origin != null ? origin : "value"} havde ${adj} ${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - const origin = (_e = TypeDictionary[issue2.origin]) != null ? _e : issue2.origin; - if (sizing) { - return `For lille: forventede ${origin} ${sizing.verb} ${adj} ${issue2.minimum.toString()} ${sizing.unit}`; - } - return `For lille: forventede ${origin} havde ${adj} ${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Ugyldig streng: skal starte med "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Ugyldig streng: skal ende med "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Ugyldig streng: skal indeholde "${_issue.includes}"`; - if (_issue.format === "regex") - return `Ugyldig streng: skal matche m\xF8nsteret ${_issue.pattern}`; - return `Ugyldig ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `Ugyldigt tal: skal v\xE6re deleligt med ${issue2.divisor}`; - case "unrecognized_keys": - return `${issue2.keys.length > 1 ? "Ukendte n\xF8gler" : "Ukendt n\xF8gle"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Ugyldig n\xF8gle i ${issue2.origin}`; - case "invalid_union": - return "Ugyldigt input: matcher ingen af de tilladte typer"; - case "invalid_element": - return `Ugyldig v\xE6rdi i ${issue2.origin}`; - default: - return `Ugyldigt input`; - } - }; -}; -function da_default() { - return { - localeError: error7() - }; -} - -// node_modules/zod/v4/locales/de.js -var error8 = () => { - const Sizable = { - string: { unit: "Zeichen", verb: "zu haben" }, - file: { unit: "Bytes", verb: "zu haben" }, - array: { unit: "Elemente", verb: "zu haben" }, - set: { unit: "Elemente", verb: "zu haben" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "Eingabe", - email: "E-Mail-Adresse", - url: "URL", - emoji: "Emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO-Datum und -Uhrzeit", - date: "ISO-Datum", - time: "ISO-Uhrzeit", - duration: "ISO-Dauer", - ipv4: "IPv4-Adresse", - ipv6: "IPv6-Adresse", - cidrv4: "IPv4-Bereich", - cidrv6: "IPv6-Bereich", - base64: "Base64-codierter String", - base64url: "Base64-URL-codierter String", - json_string: "JSON-String", - e164: "E.164-Nummer", - jwt: "JWT", - template_literal: "Eingabe" - }; - const TypeDictionary = { - nan: "NaN", - number: "Zahl", - array: "Array" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Ung\xFCltige Eingabe: erwartet instanceof ${issue2.expected}, erhalten ${received}`; - } - return `Ung\xFCltige Eingabe: erwartet ${expected}, erhalten ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Ung\xFCltige Eingabe: erwartet ${stringifyPrimitive(issue2.values[0])}`; - return `Ung\xFCltige Option: erwartet eine von ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Zu gro\xDF: erwartet, dass ${(_c = issue2.origin) != null ? _c : "Wert"} ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "Elemente"} hat`; - return `Zu gro\xDF: erwartet, dass ${(_e = issue2.origin) != null ? _e : "Wert"} ${adj}${issue2.maximum.toString()} ist`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Zu klein: erwartet, dass ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} hat`; - } - return `Zu klein: erwartet, dass ${issue2.origin} ${adj}${issue2.minimum.toString()} ist`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Ung\xFCltiger String: muss mit "${_issue.prefix}" beginnen`; - if (_issue.format === "ends_with") - return `Ung\xFCltiger String: muss mit "${_issue.suffix}" enden`; - if (_issue.format === "includes") - return `Ung\xFCltiger String: muss "${_issue.includes}" enthalten`; - if (_issue.format === "regex") - return `Ung\xFCltiger String: muss dem Muster ${_issue.pattern} entsprechen`; - return `Ung\xFCltig: ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `Ung\xFCltige Zahl: muss ein Vielfaches von ${issue2.divisor} sein`; - case "unrecognized_keys": - return `${issue2.keys.length > 1 ? "Unbekannte Schl\xFCssel" : "Unbekannter Schl\xFCssel"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Ung\xFCltiger Schl\xFCssel in ${issue2.origin}`; - case "invalid_union": - return "Ung\xFCltige Eingabe"; - case "invalid_element": - return `Ung\xFCltiger Wert in ${issue2.origin}`; - default: - return `Ung\xFCltige Eingabe`; - } - }; -}; -function de_default() { - return { - localeError: error8() - }; -} - -// node_modules/zod/v4/locales/el.js -var error9 = () => { - const Sizable = { - string: { unit: "\u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B5\u03C2", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" }, - file: { unit: "bytes", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" }, - array: { unit: "\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" }, - set: { unit: "\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" }, - map: { unit: "\u03BA\u03B1\u03C4\u03B1\u03C7\u03C9\u03C1\u03AE\u03C3\u03B5\u03B9\u03C2", verb: "\u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2", - email: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 email", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03BA\u03B1\u03B9 \u03CE\u03C1\u03B1", - date: "ISO \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1", - time: "ISO \u03CE\u03C1\u03B1", - duration: "ISO \u03B4\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1", - ipv4: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv4", - ipv6: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 IPv6", - mac: "\u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 MAC", - cidrv4: "\u03B5\u03CD\u03C1\u03BF\u03C2 IPv4", - cidrv6: "\u03B5\u03CD\u03C1\u03BF\u03C2 IPv6", - base64: "\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64", - base64url: "\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u03C3\u03B5 base64url", - json_string: "\u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC JSON", - e164: "\u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2 E.164", - jwt: "JWT", - template_literal: "\u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2" - }; - const TypeDictionary = { - nan: "NaN" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (typeof issue2.expected === "string" && /^[A-Z]/.test(issue2.expected)) { - return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD instanceof ${issue2.expected}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${received}`; - } - return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${expected}, \u03BB\u03AE\u03C6\u03B8\u03B7\u03BA\u03B5 ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${stringifyPrimitive(issue2.values[0])}`; - return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD \u03AD\u03BD\u03B1 \u03B1\u03C0\u03CC ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${(_c = issue2.origin) != null ? _c : "\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "\u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1"}`; - return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B5\u03B3\u03AC\u03BB\u03BF: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${(_e = issue2.origin) != null ? _e : "\u03C4\u03B9\u03BC\u03AE"} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue2.origin} \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `\u03A0\u03BF\u03BB\u03CD \u03BC\u03B9\u03BA\u03C1\u03CC: \u03B1\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03C4\u03B1\u03BD ${issue2.origin} \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03BE\u03B5\u03BA\u03B9\u03BD\u03AC \u03BC\u03B5 "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B5\u03BB\u03B5\u03B9\u03CE\u03BD\u03B5\u03B9 \u03BC\u03B5 "${_issue.suffix}"`; - if (_issue.format === "includes") - return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C0\u03B5\u03C1\u03B9\u03AD\u03C7\u03B5\u03B9 "${_issue.includes}"`; - if (_issue.format === "regex") - return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03BB\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03B1\u03B9\u03C1\u03B9\u03AC\u03B6\u03B5\u03B9 \u03BC\u03B5 \u03C4\u03BF \u03BC\u03BF\u03C4\u03AF\u03B2\u03BF ${_issue.pattern}`; - return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF: ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF\u03C2 \u03B1\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2: \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03BF\u03BB\u03BB\u03B1\u03C0\u03BB\u03AC\u03C3\u03B9\u03BF \u03C4\u03BF\u03C5 ${issue2.divisor}`; - case "unrecognized_keys": - return `\u0386\u03B3\u03BD\u03C9\u03C3\u03C4${issue2.keys.length > 1 ? "\u03B1" : "\u03BF"} \u03BA\u03BB\u03B5\u03B9\u03B4${issue2.keys.length > 1 ? "\u03B9\u03AC" : "\u03AF"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF \u03BA\u03BB\u03B5\u03B9\u03B4\u03AF \u03C3\u03C4\u03BF ${issue2.origin}`; - case "invalid_union": - return "\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2"; - case "invalid_element": - return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03C4\u03B9\u03BC\u03AE \u03C3\u03C4\u03BF ${issue2.origin}`; - default: - return `\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03AF\u03C3\u03BF\u03B4\u03BF\u03C2`; - } - }; -}; -function el_default() { - return { - localeError: error9() - }; -} - -// node_modules/zod/v4/locales/en.js -var error10 = () => { - const Sizable = { - string: { unit: "characters", verb: "to have" }, - file: { unit: "bytes", verb: "to have" }, - array: { unit: "items", verb: "to have" }, - set: { unit: "items", verb: "to have" }, - map: { unit: "entries", verb: "to have" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "input", - email: "email address", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO datetime", - date: "ISO date", - time: "ISO time", - duration: "ISO duration", - ipv4: "IPv4 address", - ipv6: "IPv6 address", - mac: "MAC address", - cidrv4: "IPv4 range", - cidrv6: "IPv6 range", - base64: "base64-encoded string", - base64url: "base64url-encoded string", - json_string: "JSON string", - e164: "E.164 number", - jwt: "JWT", - template_literal: "input" - }; - const TypeDictionary = { - // Compatibility: "nan" -> "NaN" for display - nan: "NaN" - // All other type names omitted - they fall back to raw values via ?? operator - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - return `Invalid input: expected ${expected}, received ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Invalid input: expected ${stringifyPrimitive(issue2.values[0])}`; - return `Invalid option: expected one of ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Too big: expected ${(_c = issue2.origin) != null ? _c : "value"} to have ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elements"}`; - return `Too big: expected ${(_e = issue2.origin) != null ? _e : "value"} to be ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Too small: expected ${issue2.origin} to have ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `Too small: expected ${issue2.origin} to be ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `Invalid string: must start with "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `Invalid string: must end with "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Invalid string: must include "${_issue.includes}"`; - if (_issue.format === "regex") - return `Invalid string: must match pattern ${_issue.pattern}`; - return `Invalid ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `Invalid number: must be a multiple of ${issue2.divisor}`; - case "unrecognized_keys": - return `Unrecognized key${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Invalid key in ${issue2.origin}`; - case "invalid_union": - if (issue2.options && Array.isArray(issue2.options) && issue2.options.length > 0) { - const opts = issue2.options.map((o) => `'${o}'`).join(" | "); - return `Invalid discriminator value. Expected ${opts}`; - } - return "Invalid input"; - case "invalid_element": - return `Invalid value in ${issue2.origin}`; - default: - return `Invalid input`; - } - }; -}; -function en_default() { - return { - localeError: error10() - }; -} - -// node_modules/zod/v4/locales/eo.js -var error11 = () => { - const Sizable = { - string: { unit: "karaktrojn", verb: "havi" }, - file: { unit: "bajtojn", verb: "havi" }, - array: { unit: "elementojn", verb: "havi" }, - set: { unit: "elementojn", verb: "havi" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "enigo", - email: "retadreso", - url: "URL", - emoji: "emo\u011Dio", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO-datotempo", - date: "ISO-dato", - time: "ISO-tempo", - duration: "ISO-da\u016Dro", - ipv4: "IPv4-adreso", - ipv6: "IPv6-adreso", - cidrv4: "IPv4-rango", - cidrv6: "IPv6-rango", - base64: "64-ume kodita karaktraro", - base64url: "URL-64-ume kodita karaktraro", - json_string: "JSON-karaktraro", - e164: "E.164-nombro", - jwt: "JWT", - template_literal: "enigo" - }; - const TypeDictionary = { - nan: "NaN", - number: "nombro", - array: "tabelo", - null: "senvalora" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Nevalida enigo: atendi\u011Dis instanceof ${issue2.expected}, ricevi\u011Dis ${received}`; - } - return `Nevalida enigo: atendi\u011Dis ${expected}, ricevi\u011Dis ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Nevalida enigo: atendi\u011Dis ${stringifyPrimitive(issue2.values[0])}`; - return `Nevalida opcio: atendi\u011Dis unu el ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Tro granda: atendi\u011Dis ke ${(_c = issue2.origin) != null ? _c : "valoro"} havu ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elementojn"}`; - return `Tro granda: atendi\u011Dis ke ${(_e = issue2.origin) != null ? _e : "valoro"} havu ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Tro malgranda: atendi\u011Dis ke ${issue2.origin} havu ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `Tro malgranda: atendi\u011Dis ke ${issue2.origin} estu ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Nevalida karaktraro: devas komenci\u011Di per "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Nevalida karaktraro: devas fini\u011Di per "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Nevalida karaktraro: devas inkluzivi "${_issue.includes}"`; - if (_issue.format === "regex") - return `Nevalida karaktraro: devas kongrui kun la modelo ${_issue.pattern}`; - return `Nevalida ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `Nevalida nombro: devas esti oblo de ${issue2.divisor}`; - case "unrecognized_keys": - return `Nekonata${issue2.keys.length > 1 ? "j" : ""} \u015Dlosilo${issue2.keys.length > 1 ? "j" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Nevalida \u015Dlosilo en ${issue2.origin}`; - case "invalid_union": - return "Nevalida enigo"; - case "invalid_element": - return `Nevalida valoro en ${issue2.origin}`; - default: - return `Nevalida enigo`; - } - }; -}; -function eo_default() { - return { - localeError: error11() - }; -} - -// node_modules/zod/v4/locales/es.js -var error12 = () => { - const Sizable = { - string: { unit: "caracteres", verb: "tener" }, - file: { unit: "bytes", verb: "tener" }, - array: { unit: "elementos", verb: "tener" }, - set: { unit: "elementos", verb: "tener" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "entrada", - email: "direcci\xF3n de correo electr\xF3nico", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "fecha y hora ISO", - date: "fecha ISO", - time: "hora ISO", - duration: "duraci\xF3n ISO", - ipv4: "direcci\xF3n IPv4", - ipv6: "direcci\xF3n IPv6", - cidrv4: "rango IPv4", - cidrv6: "rango IPv6", - base64: "cadena codificada en base64", - base64url: "URL codificada en base64", - json_string: "cadena JSON", - e164: "n\xFAmero E.164", - jwt: "JWT", - template_literal: "entrada" - }; - const TypeDictionary = { - nan: "NaN", - string: "texto", - number: "n\xFAmero", - boolean: "booleano", - array: "arreglo", - object: "objeto", - set: "conjunto", - file: "archivo", - date: "fecha", - bigint: "n\xFAmero grande", - symbol: "s\xEDmbolo", - undefined: "indefinido", - null: "nulo", - function: "funci\xF3n", - map: "mapa", - record: "registro", - tuple: "tupla", - enum: "enumeraci\xF3n", - union: "uni\xF3n", - literal: "literal", - promise: "promesa", - void: "vac\xEDo", - never: "nunca", - unknown: "desconocido", - any: "cualquiera" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f, _g, _h; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Entrada inv\xE1lida: se esperaba instanceof ${issue2.expected}, recibido ${received}`; - } - return `Entrada inv\xE1lida: se esperaba ${expected}, recibido ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Entrada inv\xE1lida: se esperaba ${stringifyPrimitive(issue2.values[0])}`; - return `Opci\xF3n inv\xE1lida: se esperaba una de ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - const origin = (_c = TypeDictionary[issue2.origin]) != null ? _c : issue2.origin; - if (sizing) - return `Demasiado grande: se esperaba que ${origin != null ? origin : "valor"} tuviera ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elementos"}`; - return `Demasiado grande: se esperaba que ${origin != null ? origin : "valor"} fuera ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - const origin = (_e = TypeDictionary[issue2.origin]) != null ? _e : issue2.origin; - if (sizing) { - return `Demasiado peque\xF1o: se esperaba que ${origin} tuviera ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `Demasiado peque\xF1o: se esperaba que ${origin} fuera ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Cadena inv\xE1lida: debe comenzar con "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Cadena inv\xE1lida: debe terminar en "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Cadena inv\xE1lida: debe incluir "${_issue.includes}"`; - if (_issue.format === "regex") - return `Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${_issue.pattern}`; - return `Inv\xE1lido ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${issue2.divisor}`; - case "unrecognized_keys": - return `Llave${issue2.keys.length > 1 ? "s" : ""} desconocida${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Llave inv\xE1lida en ${(_g = TypeDictionary[issue2.origin]) != null ? _g : issue2.origin}`; - case "invalid_union": - return "Entrada inv\xE1lida"; - case "invalid_element": - return `Valor inv\xE1lido en ${(_h = TypeDictionary[issue2.origin]) != null ? _h : issue2.origin}`; - default: - return `Entrada inv\xE1lida`; - } - }; -}; -function es_default() { - return { - localeError: error12() - }; -} - -// node_modules/zod/v4/locales/fa.js -var error13 = () => { - const Sizable = { - string: { unit: "\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" }, - file: { unit: "\u0628\u0627\u06CC\u062A", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" }, - array: { unit: "\u0622\u06CC\u062A\u0645", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" }, - set: { unit: "\u0622\u06CC\u062A\u0645", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u0648\u0631\u0648\u062F\u06CC", - email: "\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644", - url: "URL", - emoji: "\u0627\u06CC\u0645\u0648\u062C\u06CC", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648", - date: "\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648", - time: "\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648", - duration: "\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648", - ipv4: "IPv4 \u0622\u062F\u0631\u0633", - ipv6: "IPv6 \u0622\u062F\u0631\u0633", - cidrv4: "IPv4 \u062F\u0627\u0645\u0646\u0647", - cidrv6: "IPv6 \u062F\u0627\u0645\u0646\u0647", - base64: "base64-encoded \u0631\u0634\u062A\u0647", - base64url: "base64url-encoded \u0631\u0634\u062A\u0647", - json_string: "JSON \u0631\u0634\u062A\u0647", - e164: "E.164 \u0639\u062F\u062F", - jwt: "JWT", - template_literal: "\u0648\u0631\u0648\u062F\u06CC" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u0639\u062F\u062F", - array: "\u0622\u0631\u0627\u06CC\u0647" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A instanceof ${issue2.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${received} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`; - } - return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${received} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`; - } - case "invalid_value": - if (issue2.values.length === 1) { - return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${stringifyPrimitive(issue2.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`; - } - return `\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${joinValues(issue2.values, "|")} \u0645\u06CC\u200C\u0628\u0648\u062F`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${(_c = issue2.origin) != null ? _c : "\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`; - } - return `\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${(_e = issue2.origin) != null ? _e : "\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${adj}${issue2.maximum.toString()} \u0628\u0627\u0634\u062F`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${issue2.origin} \u0628\u0627\u06CC\u062F ${adj}${issue2.minimum.toString()} ${sizing.unit} \u0628\u0627\u0634\u062F`; - } - return `\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${issue2.origin} \u0628\u0627\u06CC\u062F ${adj}${issue2.minimum.toString()} \u0628\u0627\u0634\u062F`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${_issue.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`; - } - if (_issue.format === "ends_with") { - return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${_issue.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`; - } - if (_issue.format === "includes") { - return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${_issue.includes}" \u0628\u0627\u0634\u062F`; - } - if (_issue.format === "regex") { - return `\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${_issue.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`; - } - return `${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`; - } - case "not_multiple_of": - return `\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${issue2.divisor} \u0628\u0627\u0634\u062F`; - case "unrecognized_keys": - return `\u06A9\u0644\u06CC\u062F${issue2.keys.length > 1 ? "\u0647\u0627\u06CC" : ""} \u0646\u0627\u0634\u0646\u0627\u0633: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${issue2.origin}`; - case "invalid_union": - return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631`; - case "invalid_element": - return `\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${issue2.origin}`; - default: - return `\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631`; - } - }; -}; -function fa_default() { - return { - localeError: error13() - }; -} - -// node_modules/zod/v4/locales/fi.js -var error14 = () => { - const Sizable = { - string: { unit: "merkki\xE4", subject: "merkkijonon" }, - file: { unit: "tavua", subject: "tiedoston" }, - array: { unit: "alkiota", subject: "listan" }, - set: { unit: "alkiota", subject: "joukon" }, - number: { unit: "", subject: "luvun" }, - bigint: { unit: "", subject: "suuren kokonaisluvun" }, - int: { unit: "", subject: "kokonaisluvun" }, - date: { unit: "", subject: "p\xE4iv\xE4m\xE4\xE4r\xE4n" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "s\xE4\xE4nn\xF6llinen lauseke", - email: "s\xE4hk\xF6postiosoite", - url: "URL-osoite", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO-aikaleima", - date: "ISO-p\xE4iv\xE4m\xE4\xE4r\xE4", - time: "ISO-aika", - duration: "ISO-kesto", - ipv4: "IPv4-osoite", - ipv6: "IPv6-osoite", - cidrv4: "IPv4-alue", - cidrv6: "IPv6-alue", - base64: "base64-koodattu merkkijono", - base64url: "base64url-koodattu merkkijono", - json_string: "JSON-merkkijono", - e164: "E.164-luku", - jwt: "JWT", - template_literal: "templaattimerkkijono" - }; - const TypeDictionary = { - nan: "NaN" - }; - return (issue2) => { - var _a5, _b, _c; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Virheellinen tyyppi: odotettiin instanceof ${issue2.expected}, oli ${received}`; - } - return `Virheellinen tyyppi: odotettiin ${expected}, oli ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Virheellinen sy\xF6te: t\xE4ytyy olla ${stringifyPrimitive(issue2.values[0])}`; - return `Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Liian suuri: ${sizing.subject} t\xE4ytyy olla ${adj}${issue2.maximum.toString()} ${sizing.unit}`.trim(); - } - return `Liian suuri: arvon t\xE4ytyy olla ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Liian pieni: ${sizing.subject} t\xE4ytyy olla ${adj}${issue2.minimum.toString()} ${sizing.unit}`.trim(); - } - return `Liian pieni: arvon t\xE4ytyy olla ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Virheellinen sy\xF6te: t\xE4ytyy alkaa "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Virheellinen sy\xF6te: t\xE4ytyy loppua "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${_issue.includes}"`; - if (_issue.format === "regex") { - return `Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${_issue.pattern}`; - } - return `Virheellinen ${(_c = FormatDictionary[_issue.format]) != null ? _c : issue2.format}`; - } - case "not_multiple_of": - return `Virheellinen luku: t\xE4ytyy olla luvun ${issue2.divisor} monikerta`; - case "unrecognized_keys": - return `${issue2.keys.length > 1 ? "Tuntemattomat avaimet" : "Tuntematon avain"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return "Virheellinen avain tietueessa"; - case "invalid_union": - return "Virheellinen unioni"; - case "invalid_element": - return "Virheellinen arvo joukossa"; - default: - return `Virheellinen sy\xF6te`; - } - }; -}; -function fi_default() { - return { - localeError: error14() - }; -} - -// node_modules/zod/v4/locales/fr.js -var error15 = () => { - const Sizable = { - string: { unit: "caract\xE8res", verb: "avoir" }, - file: { unit: "octets", verb: "avoir" }, - array: { unit: "\xE9l\xE9ments", verb: "avoir" }, - set: { unit: "\xE9l\xE9ments", verb: "avoir" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "entr\xE9e", - email: "adresse e-mail", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "date et heure ISO", - date: "date ISO", - time: "heure ISO", - duration: "dur\xE9e ISO", - ipv4: "adresse IPv4", - ipv6: "adresse IPv6", - cidrv4: "plage IPv4", - cidrv6: "plage IPv6", - base64: "cha\xEEne encod\xE9e en base64", - base64url: "cha\xEEne encod\xE9e en base64url", - json_string: "cha\xEEne JSON", - e164: "num\xE9ro E.164", - jwt: "JWT", - template_literal: "entr\xE9e" - }; - const TypeDictionary = { - string: "cha\xEEne", - number: "nombre", - int: "entier", - boolean: "bool\xE9en", - bigint: "grand entier", - symbol: "symbole", - undefined: "ind\xE9fini", - null: "null", - never: "jamais", - void: "vide", - date: "date", - array: "tableau", - object: "objet", - tuple: "tuple", - record: "enregistrement", - map: "carte", - set: "ensemble", - file: "fichier", - nonoptional: "non-optionnel", - nan: "NaN", - function: "fonction" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f, _g, _h; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Entr\xE9e invalide : instanceof ${issue2.expected} attendu, ${received} re\xE7u`; - } - return `Entr\xE9e invalide : ${expected} attendu, ${received} re\xE7u`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Entr\xE9e invalide : ${stringifyPrimitive(issue2.values[0])} attendu`; - return `Option invalide : une valeur parmi ${joinValues(issue2.values, "|")} attendue`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Trop grand : ${(_c = TypeDictionary[issue2.origin]) != null ? _c : "valeur"} doit ${sizing.verb} ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "\xE9l\xE9ment(s)"}`; - return `Trop grand : ${(_e = TypeDictionary[issue2.origin]) != null ? _e : "valeur"} doit \xEAtre ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Trop petit : ${(_f = TypeDictionary[issue2.origin]) != null ? _f : "valeur"} doit ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - return `Trop petit : ${(_g = TypeDictionary[issue2.origin]) != null ? _g : "valeur"} doit \xEAtre ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Cha\xEEne invalide : doit commencer par "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Cha\xEEne invalide : doit se terminer par "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Cha\xEEne invalide : doit inclure "${_issue.includes}"`; - if (_issue.format === "regex") - return `Cha\xEEne invalide : doit correspondre au mod\xE8le ${_issue.pattern}`; - return `${(_h = FormatDictionary[_issue.format]) != null ? _h : issue2.format} invalide`; - } - case "not_multiple_of": - return `Nombre invalide : doit \xEAtre un multiple de ${issue2.divisor}`; - case "unrecognized_keys": - return `Cl\xE9${issue2.keys.length > 1 ? "s" : ""} non reconnue${issue2.keys.length > 1 ? "s" : ""} : ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Cl\xE9 invalide dans ${issue2.origin}`; - case "invalid_union": - return "Entr\xE9e invalide"; - case "invalid_element": - return `Valeur invalide dans ${issue2.origin}`; - default: - return `Entr\xE9e invalide`; - } - }; -}; -function fr_default() { - return { - localeError: error15() - }; -} - -// node_modules/zod/v4/locales/fr-CA.js -var error16 = () => { - const Sizable = { - string: { unit: "caract\xE8res", verb: "avoir" }, - file: { unit: "octets", verb: "avoir" }, - array: { unit: "\xE9l\xE9ments", verb: "avoir" }, - set: { unit: "\xE9l\xE9ments", verb: "avoir" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "entr\xE9e", - email: "adresse courriel", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "date-heure ISO", - date: "date ISO", - time: "heure ISO", - duration: "dur\xE9e ISO", - ipv4: "adresse IPv4", - ipv6: "adresse IPv6", - cidrv4: "plage IPv4", - cidrv6: "plage IPv6", - base64: "cha\xEEne encod\xE9e en base64", - base64url: "cha\xEEne encod\xE9e en base64url", - json_string: "cha\xEEne JSON", - e164: "num\xE9ro E.164", - jwt: "JWT", - template_literal: "entr\xE9e" - }; - const TypeDictionary = { - nan: "NaN" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Entr\xE9e invalide : attendu instanceof ${issue2.expected}, re\xE7u ${received}`; - } - return `Entr\xE9e invalide : attendu ${expected}, re\xE7u ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Entr\xE9e invalide : attendu ${stringifyPrimitive(issue2.values[0])}`; - return `Option invalide : attendu l'une des valeurs suivantes ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "\u2264" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Trop grand : attendu que ${(_c = issue2.origin) != null ? _c : "la valeur"} ait ${adj}${issue2.maximum.toString()} ${sizing.unit}`; - return `Trop grand : attendu que ${(_d = issue2.origin) != null ? _d : "la valeur"} soit ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? "\u2265" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Trop petit : attendu que ${issue2.origin} ait ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `Trop petit : attendu que ${issue2.origin} soit ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `Cha\xEEne invalide : doit commencer par "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `Cha\xEEne invalide : doit se terminer par "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Cha\xEEne invalide : doit inclure "${_issue.includes}"`; - if (_issue.format === "regex") - return `Cha\xEEne invalide : doit correspondre au motif ${_issue.pattern}`; - return `${(_e = FormatDictionary[_issue.format]) != null ? _e : issue2.format} invalide`; - } - case "not_multiple_of": - return `Nombre invalide : doit \xEAtre un multiple de ${issue2.divisor}`; - case "unrecognized_keys": - return `Cl\xE9${issue2.keys.length > 1 ? "s" : ""} non reconnue${issue2.keys.length > 1 ? "s" : ""} : ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Cl\xE9 invalide dans ${issue2.origin}`; - case "invalid_union": - return "Entr\xE9e invalide"; - case "invalid_element": - return `Valeur invalide dans ${issue2.origin}`; - default: - return `Entr\xE9e invalide`; - } - }; -}; -function fr_CA_default() { - return { - localeError: error16() - }; -} - -// node_modules/zod/v4/locales/he.js -var error17 = () => { - const TypeNames = { - string: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA", gender: "f" }, - number: { label: "\u05DE\u05E1\u05E4\u05E8", gender: "m" }, - boolean: { label: "\u05E2\u05E8\u05DA \u05D1\u05D5\u05DC\u05D9\u05D0\u05E0\u05D9", gender: "m" }, - bigint: { label: "BigInt", gender: "m" }, - date: { label: "\u05EA\u05D0\u05E8\u05D9\u05DA", gender: "m" }, - array: { label: "\u05DE\u05E2\u05E8\u05DA", gender: "m" }, - object: { label: "\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8", gender: "m" }, - null: { label: "\u05E2\u05E8\u05DA \u05E8\u05D9\u05E7 (null)", gender: "m" }, - undefined: { label: "\u05E2\u05E8\u05DA \u05DC\u05D0 \u05DE\u05D5\u05D2\u05D3\u05E8 (undefined)", gender: "m" }, - symbol: { label: "\u05E1\u05D9\u05DE\u05D1\u05D5\u05DC (Symbol)", gender: "m" }, - function: { label: "\u05E4\u05D5\u05E0\u05E7\u05E6\u05D9\u05D4", gender: "f" }, - map: { label: "\u05DE\u05E4\u05D4 (Map)", gender: "f" }, - set: { label: "\u05E7\u05D1\u05D5\u05E6\u05D4 (Set)", gender: "f" }, - file: { label: "\u05E7\u05D5\u05D1\u05E5", gender: "m" }, - promise: { label: "Promise", gender: "m" }, - NaN: { label: "NaN", gender: "m" }, - unknown: { label: "\u05E2\u05E8\u05DA \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2", gender: "m" }, - value: { label: "\u05E2\u05E8\u05DA", gender: "m" } - }; - const Sizable = { - string: { unit: "\u05EA\u05D5\u05D5\u05D9\u05DD", shortLabel: "\u05E7\u05E6\u05E8", longLabel: "\u05D0\u05E8\u05D5\u05DA" }, - file: { unit: "\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD", shortLabel: "\u05E7\u05D8\u05DF", longLabel: "\u05D2\u05D3\u05D5\u05DC" }, - array: { unit: "\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD", shortLabel: "\u05E7\u05D8\u05DF", longLabel: "\u05D2\u05D3\u05D5\u05DC" }, - set: { unit: "\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD", shortLabel: "\u05E7\u05D8\u05DF", longLabel: "\u05D2\u05D3\u05D5\u05DC" }, - number: { unit: "", shortLabel: "\u05E7\u05D8\u05DF", longLabel: "\u05D2\u05D3\u05D5\u05DC" } - // no unit - }; - const typeEntry = (t) => t ? TypeNames[t] : void 0; - const typeLabel = (t) => { - const e = typeEntry(t); - if (e) - return e.label; - return t != null ? t : TypeNames.unknown.label; - }; - const withDefinite = (t) => `\u05D4${typeLabel(t)}`; - const verbFor = (t) => { - var _a5; - const e = typeEntry(t); - const gender = (_a5 = e == null ? void 0 : e.gender) != null ? _a5 : "m"; - return gender === "f" ? "\u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05D9\u05D5\u05EA" : "\u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA"; - }; - const getSizing = (origin) => { - var _a5; - if (!origin) - return null; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - }; - const FormatDictionary = { - regex: { label: "\u05E7\u05DC\u05D8", gender: "m" }, - email: { label: "\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC", gender: "f" }, - url: { label: "\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA", gender: "f" }, - emoji: { label: "\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9", gender: "m" }, - uuid: { label: "UUID", gender: "m" }, - nanoid: { label: "nanoid", gender: "m" }, - guid: { label: "GUID", gender: "m" }, - cuid: { label: "cuid", gender: "m" }, - cuid2: { label: "cuid2", gender: "m" }, - ulid: { label: "ULID", gender: "m" }, - xid: { label: "XID", gender: "m" }, - ksuid: { label: "KSUID", gender: "m" }, - datetime: { label: "\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO", gender: "m" }, - date: { label: "\u05EA\u05D0\u05E8\u05D9\u05DA ISO", gender: "m" }, - time: { label: "\u05D6\u05DE\u05DF ISO", gender: "m" }, - duration: { label: "\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO", gender: "m" }, - ipv4: { label: "\u05DB\u05EA\u05D5\u05D1\u05EA IPv4", gender: "f" }, - ipv6: { label: "\u05DB\u05EA\u05D5\u05D1\u05EA IPv6", gender: "f" }, - cidrv4: { label: "\u05D8\u05D5\u05D5\u05D7 IPv4", gender: "m" }, - cidrv6: { label: "\u05D8\u05D5\u05D5\u05D7 IPv6", gender: "m" }, - base64: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64", gender: "f" }, - base64url: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA", gender: "f" }, - json_string: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON", gender: "f" }, - e164: { label: "\u05DE\u05E1\u05E4\u05E8 E.164", gender: "m" }, - jwt: { label: "JWT", gender: "m" }, - ends_with: { label: "\u05E7\u05DC\u05D8", gender: "m" }, - includes: { label: "\u05E7\u05DC\u05D8", gender: "m" }, - lowercase: { label: "\u05E7\u05DC\u05D8", gender: "m" }, - starts_with: { label: "\u05E7\u05DC\u05D8", gender: "m" }, - uppercase: { label: "\u05E7\u05DC\u05D8", gender: "m" } - }; - const TypeDictionary = { - nan: "NaN" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u; - switch (issue2.code) { - case "invalid_type": { - const expectedKey = issue2.expected; - const expected = (_a5 = TypeDictionary[expectedKey != null ? expectedKey : ""]) != null ? _a5 : typeLabel(expectedKey); - const receivedType = parsedType(issue2.input); - const received = (_d = (_c = TypeDictionary[receivedType]) != null ? _c : (_b = TypeNames[receivedType]) == null ? void 0 : _b.label) != null ? _d : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA instanceof ${issue2.expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${received}`; - } - return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${received}`; - } - case "invalid_value": { - if (issue2.values.length === 1) { - return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05E2\u05E8\u05DA \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA ${stringifyPrimitive(issue2.values[0])}`; - } - const stringified = issue2.values.map((v) => stringifyPrimitive(v)); - if (issue2.values.length === 2) { - return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${stringified[0]} \u05D0\u05D5 ${stringified[1]}`; - } - const lastValue = stringified[stringified.length - 1]; - const restValues = stringified.slice(0, -1).join(", "); - return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA \u05D4\u05DE\u05EA\u05D0\u05D9\u05DE\u05D5\u05EA \u05D4\u05DF ${restValues} \u05D0\u05D5 ${lastValue}`; - } - case "too_big": { - const sizing = getSizing(issue2.origin); - const subject = withDefinite((_e = issue2.origin) != null ? _e : "value"); - if (issue2.origin === "string") { - return `${(_f = sizing == null ? void 0 : sizing.longLabel) != null ? _f : "\u05D0\u05E8\u05D5\u05DA"} \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${issue2.maximum.toString()} ${(_g = sizing == null ? void 0 : sizing.unit) != null ? _g : ""} ${issue2.inclusive ? "\u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA" : "\u05DC\u05DB\u05DC \u05D4\u05D9\u05D5\u05EA\u05E8"}`.trim(); - } - if (issue2.origin === "number") { - const comparison = issue2.inclusive ? `\u05E7\u05D8\u05DF \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${issue2.maximum}` : `\u05E7\u05D8\u05DF \u05DE-${issue2.maximum}`; - return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${comparison}`; - } - if (issue2.origin === "array" || issue2.origin === "set") { - const verb = issue2.origin === "set" ? "\u05E6\u05E8\u05D9\u05DB\u05D4" : "\u05E6\u05E8\u05D9\u05DA"; - const comparison = issue2.inclusive ? `${issue2.maximum} ${(_h = sizing == null ? void 0 : sizing.unit) != null ? _h : ""} \u05D0\u05D5 \u05E4\u05D7\u05D5\u05EA` : `\u05E4\u05D7\u05D5\u05EA \u05DE-${issue2.maximum} ${(_i = sizing == null ? void 0 : sizing.unit) != null ? _i : ""}`; - return `\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${subject} ${verb} \u05DC\u05D4\u05DB\u05D9\u05DC ${comparison}`.trim(); - } - const adj = issue2.inclusive ? "<=" : "<"; - const be = verbFor((_j = issue2.origin) != null ? _j : "value"); - if (sizing == null ? void 0 : sizing.unit) { - return `${sizing.longLabel} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue2.maximum.toString()} ${sizing.unit}`; - } - return `${(_k = sizing == null ? void 0 : sizing.longLabel) != null ? _k : "\u05D2\u05D3\u05D5\u05DC"} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const sizing = getSizing(issue2.origin); - const subject = withDefinite((_l = issue2.origin) != null ? _l : "value"); - if (issue2.origin === "string") { - return `${(_m = sizing == null ? void 0 : sizing.shortLabel) != null ? _m : "\u05E7\u05E6\u05E8"} \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ${issue2.minimum.toString()} ${(_n = sizing == null ? void 0 : sizing.unit) != null ? _n : ""} ${issue2.inclusive ? "\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8" : "\u05DC\u05E4\u05D7\u05D5\u05EA"}`.trim(); - } - if (issue2.origin === "number") { - const comparison = issue2.inclusive ? `\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-${issue2.minimum}` : `\u05D2\u05D3\u05D5\u05DC \u05DE-${issue2.minimum}`; - return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${subject} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${comparison}`; - } - if (issue2.origin === "array" || issue2.origin === "set") { - const verb = issue2.origin === "set" ? "\u05E6\u05E8\u05D9\u05DB\u05D4" : "\u05E6\u05E8\u05D9\u05DA"; - if (issue2.minimum === 1 && issue2.inclusive) { - const singularPhrase = issue2.origin === "set" ? "\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3" : "\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3"; - return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${subject} ${verb} \u05DC\u05D4\u05DB\u05D9\u05DC ${singularPhrase}`; - } - const comparison = issue2.inclusive ? `${issue2.minimum} ${(_o = sizing == null ? void 0 : sizing.unit) != null ? _o : ""} \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8` : `\u05D9\u05D5\u05EA\u05E8 \u05DE-${issue2.minimum} ${(_p = sizing == null ? void 0 : sizing.unit) != null ? _p : ""}`; - return `\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${subject} ${verb} \u05DC\u05D4\u05DB\u05D9\u05DC ${comparison}`.trim(); - } - const adj = issue2.inclusive ? ">=" : ">"; - const be = verbFor((_q = issue2.origin) != null ? _q : "value"); - if (sizing == null ? void 0 : sizing.unit) { - return `${sizing.shortLabel} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `${(_r = sizing == null ? void 0 : sizing.shortLabel) != null ? _r : "\u05E7\u05D8\u05DF"} \u05DE\u05D3\u05D9: ${subject} ${be} ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${_issue.suffix}"`; - if (_issue.format === "includes") - return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${_issue.includes}"`; - if (_issue.format === "regex") - return `\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${_issue.pattern}`; - const nounEntry = FormatDictionary[_issue.format]; - const noun = (_s = nounEntry == null ? void 0 : nounEntry.label) != null ? _s : _issue.format; - const gender = (_t = nounEntry == null ? void 0 : nounEntry.gender) != null ? _t : "m"; - const adjective = gender === "f" ? "\u05EA\u05E7\u05D9\u05E0\u05D4" : "\u05EA\u05E7\u05D9\u05DF"; - return `${noun} \u05DC\u05D0 ${adjective}`; - } - case "not_multiple_of": - return `\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${issue2.divisor}`; - case "unrecognized_keys": - return `\u05DE\u05E4\u05EA\u05D7${issue2.keys.length > 1 ? "\u05D5\u05EA" : ""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${issue2.keys.length > 1 ? "\u05D9\u05DD" : "\u05D4"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": { - return `\u05E9\u05D3\u05D4 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1\u05D0\u05D5\u05D1\u05D9\u05D9\u05E7\u05D8`; - } - case "invalid_union": - return "\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"; - case "invalid_element": { - const place = withDefinite((_u = issue2.origin) != null ? _u : "array"); - return `\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${place}`; - } - default: - return `\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF`; - } - }; -}; -function he_default() { - return { - localeError: error17() - }; -} - -// node_modules/zod/v4/locales/hr.js -var error18 = () => { - const Sizable = { - string: { unit: "znakova", verb: "imati" }, - file: { unit: "bajtova", verb: "imati" }, - array: { unit: "stavki", verb: "imati" }, - set: { unit: "stavki", verb: "imati" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "unos", - email: "email adresa", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO datum i vrijeme", - date: "ISO datum", - time: "ISO vrijeme", - duration: "ISO trajanje", - ipv4: "IPv4 adresa", - ipv6: "IPv6 adresa", - cidrv4: "IPv4 raspon", - cidrv6: "IPv6 raspon", - base64: "base64 kodirani tekst", - base64url: "base64url kodirani tekst", - json_string: "JSON tekst", - e164: "E.164 broj", - jwt: "JWT", - template_literal: "unos" - }; - const TypeDictionary = { - nan: "NaN", - string: "tekst", - number: "broj", - boolean: "boolean", - array: "niz", - object: "objekt", - set: "skup", - file: "datoteka", - date: "datum", - bigint: "bigint", - symbol: "simbol", - undefined: "undefined", - null: "null", - function: "funkcija", - map: "mapa" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f, _g, _h; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Neispravan unos: o\u010Dekuje se instanceof ${issue2.expected}, a primljeno je ${received}`; - } - return `Neispravan unos: o\u010Dekuje se ${expected}, a primljeno je ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Neispravna vrijednost: o\u010Dekivano ${stringifyPrimitive(issue2.values[0])}`; - return `Neispravna opcija: o\u010Dekivano jedno od ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - const origin = (_c = TypeDictionary[issue2.origin]) != null ? _c : issue2.origin; - if (sizing) - return `Preveliko: o\u010Dekivano da ${origin != null ? origin : "vrijednost"} ima ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elemenata"}`; - return `Preveliko: o\u010Dekivano da ${origin != null ? origin : "vrijednost"} bude ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - const origin = (_e = TypeDictionary[issue2.origin]) != null ? _e : issue2.origin; - if (sizing) { - return `Premalo: o\u010Dekivano da ${origin} ima ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `Premalo: o\u010Dekivano da ${origin} bude ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Neispravan tekst: mora zapo\u010Dinjati s "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Neispravan tekst: mora zavr\u0161avati s "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Neispravan tekst: mora sadr\u017Eavati "${_issue.includes}"`; - if (_issue.format === "regex") - return `Neispravan tekst: mora odgovarati uzorku ${_issue.pattern}`; - return `Neispravna ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `Neispravan broj: mora biti vi\u0161ekratnik od ${issue2.divisor}`; - case "unrecognized_keys": - return `Neprepoznat${issue2.keys.length > 1 ? "i klju\u010Devi" : " klju\u010D"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Neispravan klju\u010D u ${(_g = TypeDictionary[issue2.origin]) != null ? _g : issue2.origin}`; - case "invalid_union": - return "Neispravan unos"; - case "invalid_element": - return `Neispravna vrijednost u ${(_h = TypeDictionary[issue2.origin]) != null ? _h : issue2.origin}`; - default: - return `Neispravan unos`; - } - }; -}; -function hr_default() { - return { - localeError: error18() - }; -} - -// node_modules/zod/v4/locales/hu.js -var error19 = () => { - const Sizable = { - string: { unit: "karakter", verb: "legyen" }, - file: { unit: "byte", verb: "legyen" }, - array: { unit: "elem", verb: "legyen" }, - set: { unit: "elem", verb: "legyen" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "bemenet", - email: "email c\xEDm", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO id\u0151b\xE9lyeg", - date: "ISO d\xE1tum", - time: "ISO id\u0151", - duration: "ISO id\u0151intervallum", - ipv4: "IPv4 c\xEDm", - ipv6: "IPv6 c\xEDm", - cidrv4: "IPv4 tartom\xE1ny", - cidrv6: "IPv6 tartom\xE1ny", - base64: "base64-k\xF3dolt string", - base64url: "base64url-k\xF3dolt string", - json_string: "JSON string", - e164: "E.164 sz\xE1m", - jwt: "JWT", - template_literal: "bemenet" - }; - const TypeDictionary = { - nan: "NaN", - number: "sz\xE1m", - array: "t\xF6mb" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k instanceof ${issue2.expected}, a kapott \xE9rt\xE9k ${received}`; - } - return `\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${expected}, a kapott \xE9rt\xE9k ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${stringifyPrimitive(issue2.values[0])}`; - return `\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `T\xFAl nagy: ${(_c = issue2.origin) != null ? _c : "\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elem"}`; - return `T\xFAl nagy: a bemeneti \xE9rt\xE9k ${(_e = issue2.origin) != null ? _e : "\xE9rt\xE9k"} t\xFAl nagy: ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${issue2.origin} m\xE9rete t\xFAl kicsi ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${issue2.origin} t\xFAl kicsi ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `\xC9rv\xE9nytelen string: "${_issue.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`; - if (_issue.format === "ends_with") - return `\xC9rv\xE9nytelen string: "${_issue.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`; - if (_issue.format === "includes") - return `\xC9rv\xE9nytelen string: "${_issue.includes}" \xE9rt\xE9ket kell tartalmaznia`; - if (_issue.format === "regex") - return `\xC9rv\xE9nytelen string: ${_issue.pattern} mint\xE1nak kell megfelelnie`; - return `\xC9rv\xE9nytelen ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `\xC9rv\xE9nytelen sz\xE1m: ${issue2.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`; - case "unrecognized_keys": - return `Ismeretlen kulcs${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `\xC9rv\xE9nytelen kulcs ${issue2.origin}`; - case "invalid_union": - return "\xC9rv\xE9nytelen bemenet"; - case "invalid_element": - return `\xC9rv\xE9nytelen \xE9rt\xE9k: ${issue2.origin}`; - default: - return `\xC9rv\xE9nytelen bemenet`; - } - }; -}; -function hu_default() { - return { - localeError: error19() - }; -} - -// node_modules/zod/v4/locales/hy.js -function getArmenianPlural(count, one, many) { - return Math.abs(count) === 1 ? one : many; -} -function withDefiniteArticle(word) { - if (!word) - return ""; - const vowels = ["\u0561", "\u0565", "\u0568", "\u056B", "\u0578", "\u0578\u0582", "\u0585"]; - const lastChar = word[word.length - 1]; - return word + (vowels.includes(lastChar) ? "\u0576" : "\u0568"); -} -var error20 = () => { - const Sizable = { - string: { - unit: { - one: "\u0576\u0577\u0561\u0576", - many: "\u0576\u0577\u0561\u0576\u0576\u0565\u0580" - }, - verb: "\u0578\u0582\u0576\u0565\u0576\u0561\u056C" - }, - file: { - unit: { - one: "\u0562\u0561\u0575\u0569", - many: "\u0562\u0561\u0575\u0569\u0565\u0580" - }, - verb: "\u0578\u0582\u0576\u0565\u0576\u0561\u056C" - }, - array: { - unit: { - one: "\u057F\u0561\u0580\u0580", - many: "\u057F\u0561\u0580\u0580\u0565\u0580" - }, - verb: "\u0578\u0582\u0576\u0565\u0576\u0561\u056C" - }, - set: { - unit: { - one: "\u057F\u0561\u0580\u0580", - many: "\u057F\u0561\u0580\u0580\u0565\u0580" - }, - verb: "\u0578\u0582\u0576\u0565\u0576\u0561\u056C" - } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u0574\u0578\u0582\u057F\u0584", - email: "\u0567\u056C. \u0570\u0561\u057D\u0581\u0565", - url: "URL", - emoji: "\u0567\u0574\u0578\u057B\u056B", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E \u0587 \u056A\u0561\u0574", - date: "ISO \u0561\u0574\u057D\u0561\u0569\u056B\u057E", - time: "ISO \u056A\u0561\u0574", - duration: "ISO \u057F\u0587\u0578\u0572\u0578\u0582\u0569\u0575\u0578\u0582\u0576", - ipv4: "IPv4 \u0570\u0561\u057D\u0581\u0565", - ipv6: "IPv6 \u0570\u0561\u057D\u0581\u0565", - cidrv4: "IPv4 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584", - cidrv6: "IPv6 \u0574\u056B\u057B\u0561\u056F\u0561\u0575\u0584", - base64: "base64 \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572", - base64url: "base64url \u0571\u0587\u0561\u0579\u0561\u0583\u0578\u057E \u057F\u0578\u0572", - json_string: "JSON \u057F\u0578\u0572", - e164: "E.164 \u0570\u0561\u0574\u0561\u0580", - jwt: "JWT", - template_literal: "\u0574\u0578\u0582\u057F\u0584" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u0569\u056B\u057E", - array: "\u0566\u0561\u0576\u0563\u057E\u0561\u056E" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 instanceof ${issue2.expected}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${received}`; - } - return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${expected}, \u057D\u057F\u0561\u0581\u057E\u0565\u056C \u0567 ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 ${stringifyPrimitive(issue2.values[1])}`; - return `\u054D\u056D\u0561\u056C \u057F\u0561\u0580\u0562\u0565\u0580\u0561\u056F\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567\u0580 \u0570\u0565\u057F\u0587\u0575\u0561\u056C\u0576\u0565\u0580\u056B\u0581 \u0574\u0565\u056F\u0568\u055D ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) { - const maxValue = Number(issue2.maximum); - const unit = getArmenianPlural(maxValue, sizing.unit.one, sizing.unit.many); - return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle((_c = issue2.origin) != null ? _c : "\u0561\u0580\u056A\u0565\u0584")} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${adj}${issue2.maximum.toString()} ${unit}`; - } - return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0574\u0565\u056E \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle((_d = issue2.origin) != null ? _d : "\u0561\u0580\u056A\u0565\u0584")} \u056C\u056B\u0576\u056B ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - const minValue = Number(issue2.minimum); - const unit = getArmenianPlural(minValue, sizing.unit.one, sizing.unit.many); - return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue2.origin)} \u056F\u0578\u0582\u0576\u0565\u0576\u0561 ${adj}${issue2.minimum.toString()} ${unit}`; - } - return `\u0549\u0561\u0583\u0561\u0566\u0561\u0576\u0581 \u0583\u0578\u0584\u0580 \u0561\u0580\u056A\u0565\u0584\u2024 \u057D\u057A\u0561\u057D\u057E\u0578\u0582\u0574 \u0567, \u0578\u0580 ${withDefiniteArticle(issue2.origin)} \u056C\u056B\u0576\u056B ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057D\u056F\u057D\u057E\u056B "${_issue.prefix}"-\u0578\u057E`; - if (_issue.format === "ends_with") - return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0561\u057E\u0561\u0580\u057F\u057E\u056B "${_issue.suffix}"-\u0578\u057E`; - if (_issue.format === "includes") - return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u057A\u0561\u0580\u0578\u0582\u0576\u0561\u056F\u056B "${_issue.includes}"`; - if (_issue.format === "regex") - return `\u054D\u056D\u0561\u056C \u057F\u0578\u0572\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0570\u0561\u0574\u0561\u057A\u0561\u057F\u0561\u057D\u056D\u0561\u0576\u056B ${_issue.pattern} \u0571\u0587\u0561\u0579\u0561\u0583\u056B\u0576`; - return `\u054D\u056D\u0561\u056C ${(_e = FormatDictionary[_issue.format]) != null ? _e : issue2.format}`; - } - case "not_multiple_of": - return `\u054D\u056D\u0561\u056C \u0569\u056B\u057E\u2024 \u057A\u0565\u057F\u0584 \u0567 \u0562\u0561\u0566\u0574\u0561\u057A\u0561\u057F\u056B\u056F \u056C\u056B\u0576\u056B ${issue2.divisor}-\u056B`; - case "unrecognized_keys": - return `\u0549\u0573\u0561\u0576\u0561\u0579\u057E\u0561\u056E \u0562\u0561\u0576\u0561\u056C\u056B${issue2.keys.length > 1 ? "\u0576\u0565\u0580" : ""}. ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `\u054D\u056D\u0561\u056C \u0562\u0561\u0576\u0561\u056C\u056B ${withDefiniteArticle(issue2.origin)}-\u0578\u0582\u0574`; - case "invalid_union": - return "\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574"; - case "invalid_element": - return `\u054D\u056D\u0561\u056C \u0561\u0580\u056A\u0565\u0584 ${withDefiniteArticle(issue2.origin)}-\u0578\u0582\u0574`; - default: - return `\u054D\u056D\u0561\u056C \u0574\u0578\u0582\u057F\u0584\u0561\u0563\u0580\u0578\u0582\u0574`; - } - }; -}; -function hy_default() { - return { - localeError: error20() - }; -} - -// node_modules/zod/v4/locales/id.js -var error21 = () => { - const Sizable = { - string: { unit: "karakter", verb: "memiliki" }, - file: { unit: "byte", verb: "memiliki" }, - array: { unit: "item", verb: "memiliki" }, - set: { unit: "item", verb: "memiliki" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "input", - email: "alamat email", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "tanggal dan waktu format ISO", - date: "tanggal format ISO", - time: "jam format ISO", - duration: "durasi format ISO", - ipv4: "alamat IPv4", - ipv6: "alamat IPv6", - cidrv4: "rentang alamat IPv4", - cidrv6: "rentang alamat IPv6", - base64: "string dengan enkode base64", - base64url: "string dengan enkode base64url", - json_string: "string JSON", - e164: "angka E.164", - jwt: "JWT", - template_literal: "input" - }; - const TypeDictionary = { - nan: "NaN" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Input tidak valid: diharapkan instanceof ${issue2.expected}, diterima ${received}`; - } - return `Input tidak valid: diharapkan ${expected}, diterima ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Input tidak valid: diharapkan ${stringifyPrimitive(issue2.values[0])}`; - return `Pilihan tidak valid: diharapkan salah satu dari ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Terlalu besar: diharapkan ${(_c = issue2.origin) != null ? _c : "value"} memiliki ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elemen"}`; - return `Terlalu besar: diharapkan ${(_e = issue2.origin) != null ? _e : "value"} menjadi ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Terlalu kecil: diharapkan ${issue2.origin} memiliki ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `Terlalu kecil: diharapkan ${issue2.origin} menjadi ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `String tidak valid: harus dimulai dengan "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `String tidak valid: harus berakhir dengan "${_issue.suffix}"`; - if (_issue.format === "includes") - return `String tidak valid: harus menyertakan "${_issue.includes}"`; - if (_issue.format === "regex") - return `String tidak valid: harus sesuai pola ${_issue.pattern}`; - return `${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format} tidak valid`; - } - case "not_multiple_of": - return `Angka tidak valid: harus kelipatan dari ${issue2.divisor}`; - case "unrecognized_keys": - return `Kunci tidak dikenali ${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Kunci tidak valid di ${issue2.origin}`; - case "invalid_union": - return "Input tidak valid"; - case "invalid_element": - return `Nilai tidak valid di ${issue2.origin}`; - default: - return `Input tidak valid`; - } - }; -}; -function id_default() { - return { - localeError: error21() - }; -} - -// node_modules/zod/v4/locales/is.js -var error22 = () => { - const Sizable = { - string: { unit: "stafi", verb: "a\xF0 hafa" }, - file: { unit: "b\xE6ti", verb: "a\xF0 hafa" }, - array: { unit: "hluti", verb: "a\xF0 hafa" }, - set: { unit: "hluti", verb: "a\xF0 hafa" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "gildi", - email: "netfang", - url: "vefsl\xF3\xF0", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO dagsetning og t\xEDmi", - date: "ISO dagsetning", - time: "ISO t\xEDmi", - duration: "ISO t\xEDmalengd", - ipv4: "IPv4 address", - ipv6: "IPv6 address", - cidrv4: "IPv4 range", - cidrv6: "IPv6 range", - base64: "base64-encoded strengur", - base64url: "base64url-encoded strengur", - json_string: "JSON strengur", - e164: "E.164 t\xF6lugildi", - jwt: "JWT", - template_literal: "gildi" - }; - const TypeDictionary = { - nan: "NaN", - number: "n\xFAmer", - array: "fylki" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Rangt gildi: \xDE\xFA sl\xF3st inn ${received} \xFEar sem \xE1 a\xF0 vera instanceof ${issue2.expected}`; - } - return `Rangt gildi: \xDE\xFA sl\xF3st inn ${received} \xFEar sem \xE1 a\xF0 vera ${expected}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Rangt gildi: gert r\xE1\xF0 fyrir ${stringifyPrimitive(issue2.values[0])}`; - return `\xD3gilt val: m\xE1 vera eitt af eftirfarandi ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${(_c = issue2.origin) != null ? _c : "gildi"} hafi ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "hluti"}`; - return `Of st\xF3rt: gert er r\xE1\xF0 fyrir a\xF0 ${(_e = issue2.origin) != null ? _e : "gildi"} s\xE9 ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${issue2.origin} hafi ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `Of l\xEDti\xF0: gert er r\xE1\xF0 fyrir a\xF0 ${issue2.origin} s\xE9 ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `\xD3gildur strengur: ver\xF0ur a\xF0 byrja \xE1 "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `\xD3gildur strengur: ver\xF0ur a\xF0 enda \xE1 "${_issue.suffix}"`; - if (_issue.format === "includes") - return `\xD3gildur strengur: ver\xF0ur a\xF0 innihalda "${_issue.includes}"`; - if (_issue.format === "regex") - return `\xD3gildur strengur: ver\xF0ur a\xF0 fylgja mynstri ${_issue.pattern}`; - return `Rangt ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `R\xF6ng tala: ver\xF0ur a\xF0 vera margfeldi af ${issue2.divisor}`; - case "unrecognized_keys": - return `\xD3\xFEekkt ${issue2.keys.length > 1 ? "ir lyklar" : "ur lykill"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Rangur lykill \xED ${issue2.origin}`; - case "invalid_union": - return "Rangt gildi"; - case "invalid_element": - return `Rangt gildi \xED ${issue2.origin}`; - default: - return `Rangt gildi`; - } - }; -}; -function is_default() { - return { - localeError: error22() - }; -} - -// node_modules/zod/v4/locales/it.js -var error23 = () => { - const Sizable = { - string: { unit: "caratteri", verb: "avere" }, - file: { unit: "byte", verb: "avere" }, - array: { unit: "elementi", verb: "avere" }, - set: { unit: "elementi", verb: "avere" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "input", - email: "indirizzo email", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "data e ora ISO", - date: "data ISO", - time: "ora ISO", - duration: "durata ISO", - ipv4: "indirizzo IPv4", - ipv6: "indirizzo IPv6", - cidrv4: "intervallo IPv4", - cidrv6: "intervallo IPv6", - base64: "stringa codificata in base64", - base64url: "URL codificata in base64", - json_string: "stringa JSON", - e164: "numero E.164", - jwt: "JWT", - template_literal: "input" - }; - const TypeDictionary = { - nan: "NaN", - number: "numero", - array: "vettore" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Input non valido: atteso instanceof ${issue2.expected}, ricevuto ${received}`; - } - return `Input non valido: atteso ${expected}, ricevuto ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Input non valido: atteso ${stringifyPrimitive(issue2.values[0])}`; - return `Opzione non valida: atteso uno tra ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Troppo grande: ${(_c = issue2.origin) != null ? _c : "valore"} deve avere ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elementi"}`; - return `Troppo grande: ${(_e = issue2.origin) != null ? _e : "valore"} deve essere ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Troppo piccolo: ${issue2.origin} deve avere ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `Troppo piccolo: ${issue2.origin} deve essere ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Stringa non valida: deve iniziare con "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Stringa non valida: deve terminare con "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Stringa non valida: deve includere "${_issue.includes}"`; - if (_issue.format === "regex") - return `Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`; - return `Input non valido: ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `Numero non valido: deve essere un multiplo di ${issue2.divisor}`; - case "unrecognized_keys": - return `Chiav${issue2.keys.length > 1 ? "i" : "e"} non riconosciut${issue2.keys.length > 1 ? "e" : "a"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Chiave non valida in ${issue2.origin}`; - case "invalid_union": - return "Input non valido"; - case "invalid_element": - return `Valore non valido in ${issue2.origin}`; - default: - return `Input non valido`; - } - }; -}; -function it_default() { - return { - localeError: error23() - }; -} - -// node_modules/zod/v4/locales/ja.js -var error24 = () => { - const Sizable = { - string: { unit: "\u6587\u5B57", verb: "\u3067\u3042\u308B" }, - file: { unit: "\u30D0\u30A4\u30C8", verb: "\u3067\u3042\u308B" }, - array: { unit: "\u8981\u7D20", verb: "\u3067\u3042\u308B" }, - set: { unit: "\u8981\u7D20", verb: "\u3067\u3042\u308B" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u5165\u529B\u5024", - email: "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9", - url: "URL", - emoji: "\u7D75\u6587\u5B57", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO\u65E5\u6642", - date: "ISO\u65E5\u4ED8", - time: "ISO\u6642\u523B", - duration: "ISO\u671F\u9593", - ipv4: "IPv4\u30A2\u30C9\u30EC\u30B9", - ipv6: "IPv6\u30A2\u30C9\u30EC\u30B9", - cidrv4: "IPv4\u7BC4\u56F2", - cidrv6: "IPv6\u7BC4\u56F2", - base64: "base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217", - base64url: "base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217", - json_string: "JSON\u6587\u5B57\u5217", - e164: "E.164\u756A\u53F7", - jwt: "JWT", - template_literal: "\u5165\u529B\u5024" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u6570\u5024", - array: "\u914D\u5217" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u7121\u52B9\u306A\u5165\u529B: instanceof ${issue2.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${received}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`; - } - return `\u7121\u52B9\u306A\u5165\u529B: ${expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${received}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u7121\u52B9\u306A\u5165\u529B: ${stringifyPrimitive(issue2.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`; - return `\u7121\u52B9\u306A\u9078\u629E: ${joinValues(issue2.values, "\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; - case "too_big": { - const adj = issue2.inclusive ? "\u4EE5\u4E0B\u3067\u3042\u308B" : "\u3088\u308A\u5C0F\u3055\u3044"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\u5927\u304D\u3059\u304E\u308B\u5024: ${(_c = issue2.origin) != null ? _c : "\u5024"}\u306F${issue2.maximum.toString()}${(_d = sizing.unit) != null ? _d : "\u8981\u7D20"}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; - return `\u5927\u304D\u3059\u304E\u308B\u5024: ${(_e = issue2.origin) != null ? _e : "\u5024"}\u306F${issue2.maximum.toString()}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; - } - case "too_small": { - const adj = issue2.inclusive ? "\u4EE5\u4E0A\u3067\u3042\u308B" : "\u3088\u308A\u5927\u304D\u3044"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\u5C0F\u3055\u3059\u304E\u308B\u5024: ${issue2.origin}\u306F${issue2.minimum.toString()}${sizing.unit}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; - return `\u5C0F\u3055\u3059\u304E\u308B\u5024: ${issue2.origin}\u306F${issue2.minimum.toString()}${adj}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `\u7121\u52B9\u306A\u6587\u5B57\u5217: "${_issue.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; - if (_issue.format === "ends_with") - return `\u7121\u52B9\u306A\u6587\u5B57\u5217: "${_issue.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; - if (_issue.format === "includes") - return `\u7121\u52B9\u306A\u6587\u5B57\u5217: "${_issue.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; - if (_issue.format === "regex") - return `\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${_issue.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; - return `\u7121\u52B9\u306A${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `\u7121\u52B9\u306A\u6570\u5024: ${issue2.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`; - case "unrecognized_keys": - return `\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${issue2.keys.length > 1 ? "\u7FA4" : ""}: ${joinValues(issue2.keys, "\u3001")}`; - case "invalid_key": - return `${issue2.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`; - case "invalid_union": - return "\u7121\u52B9\u306A\u5165\u529B"; - case "invalid_element": - return `${issue2.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`; - default: - return `\u7121\u52B9\u306A\u5165\u529B`; - } - }; -}; -function ja_default() { - return { - localeError: error24() - }; -} - -// node_modules/zod/v4/locales/ka.js -var error25 = () => { - const Sizable = { - string: { unit: "\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" }, - file: { unit: "\u10D1\u10D0\u10D8\u10E2\u10D8", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" }, - array: { unit: "\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" }, - set: { unit: "\u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0", - email: "\u10D4\u10DA-\u10E4\u10DD\u10E1\u10E2\u10D8\u10E1 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8", - url: "URL", - emoji: "\u10D4\u10DB\u10DD\u10EF\u10D8", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8-\u10D3\u10E0\u10DD", - date: "\u10D7\u10D0\u10E0\u10D8\u10E6\u10D8", - time: "\u10D3\u10E0\u10DD", - duration: "\u10EE\u10D0\u10DC\u10D2\u10E0\u10EB\u10DA\u10D8\u10D5\u10DD\u10D1\u10D0", - ipv4: "IPv4 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8", - ipv6: "IPv6 \u10DB\u10D8\u10E1\u10D0\u10DB\u10D0\u10E0\u10D7\u10D8", - cidrv4: "IPv4 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8", - cidrv6: "IPv6 \u10D3\u10D8\u10D0\u10DE\u10D0\u10D6\u10DD\u10DC\u10D8", - base64: "base64-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8", - base64url: "base64url-\u10D9\u10DD\u10D3\u10D8\u10E0\u10D4\u10D1\u10E3\u10DA\u10D8 \u10D5\u10D4\u10DA\u10D8", - json_string: "JSON \u10D5\u10D4\u10DA\u10D8", - e164: "E.164 \u10DC\u10DD\u10DB\u10D4\u10E0\u10D8", - jwt: "JWT", - template_literal: "\u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u10E0\u10D8\u10EA\u10EE\u10D5\u10D8", - string: "\u10D5\u10D4\u10DA\u10D8", - boolean: "\u10D1\u10E3\u10DA\u10D4\u10D0\u10DC\u10D8", - function: "\u10E4\u10E3\u10DC\u10E5\u10EA\u10D8\u10D0", - array: "\u10DB\u10D0\u10E1\u10D8\u10D5\u10D8" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 instanceof ${issue2.expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${received}`; - } - return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${expected}, \u10DB\u10D8\u10E6\u10D4\u10D1\u10E3\u10DA\u10D8 ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${stringifyPrimitive(issue2.values[0])}`; - return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D0\u10E0\u10D8\u10D0\u10DC\u10E2\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8\u10D0 \u10D4\u10E0\u10D7-\u10D4\u10E0\u10D7\u10D8 ${joinValues(issue2.values, "|")}-\u10D3\u10D0\u10DC`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${(_c = issue2.origin) != null ? _c : "\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${sizing.unit}`; - return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10D3\u10D8\u10D3\u10D8: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${(_d = issue2.origin) != null ? _d : "\u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0"} \u10D8\u10E7\u10DD\u10E1 ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `\u10D6\u10D4\u10D3\u10DB\u10D4\u10E2\u10D0\u10D3 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0: \u10DB\u10DD\u10E1\u10D0\u10DA\u10DD\u10D3\u10DC\u10D4\u10DA\u10D8 ${issue2.origin} \u10D8\u10E7\u10DD\u10E1 ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10EC\u10E7\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${_issue.prefix}"-\u10D8\u10D7`; - } - if (_issue.format === "ends_with") - return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10DB\u10D7\u10D0\u10D5\u10E0\u10D3\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 "${_issue.suffix}"-\u10D8\u10D7`; - if (_issue.format === "includes") - return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1 "${_issue.includes}"-\u10E1`; - if (_issue.format === "regex") - return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D5\u10D4\u10DA\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D4\u10E1\u10D0\u10D1\u10D0\u10DB\u10D4\u10D1\u10DD\u10D3\u10D4\u10E1 \u10E8\u10D0\u10D1\u10DA\u10DD\u10DC\u10E1 ${_issue.pattern}`; - return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 ${(_e = FormatDictionary[_issue.format]) != null ? _e : issue2.format}`; - } - case "not_multiple_of": - return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E0\u10D8\u10EA\u10EE\u10D5\u10D8: \u10E3\u10DC\u10D3\u10D0 \u10D8\u10E7\u10DD\u10E1 ${issue2.divisor}-\u10D8\u10E1 \u10EF\u10D4\u10E0\u10D0\u10D3\u10D8`; - case "unrecognized_keys": - return `\u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1${issue2.keys.length > 1 ? "\u10D4\u10D1\u10D8" : "\u10D8"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10D2\u10D0\u10E1\u10D0\u10E6\u10D4\u10D1\u10D8 ${issue2.origin}-\u10E8\u10D8`; - case "invalid_union": - return "\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0"; - case "invalid_element": - return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10DB\u10DC\u10D8\u10E8\u10D5\u10DC\u10D4\u10DA\u10DD\u10D1\u10D0 ${issue2.origin}-\u10E8\u10D8`; - default: - return `\u10D0\u10E0\u10D0\u10E1\u10EC\u10DD\u10E0\u10D8 \u10E8\u10D4\u10E7\u10D5\u10D0\u10DC\u10D0`; - } - }; -}; -function ka_default() { - return { - localeError: error25() - }; -} - -// node_modules/zod/v4/locales/km.js -var error26 = () => { - const Sizable = { - string: { unit: "\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" }, - file: { unit: "\u1794\u17C3", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" }, - array: { unit: "\u1792\u17B6\u178F\u17BB", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" }, - set: { unit: "\u1792\u17B6\u178F\u17BB", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B", - email: "\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B", - url: "URL", - emoji: "\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO", - date: "\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO", - time: "\u1798\u17C9\u17C4\u1784 ISO", - duration: "\u179A\u1799\u17C8\u1796\u17C1\u179B ISO", - ipv4: "\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4", - ipv6: "\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6", - cidrv4: "\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4", - cidrv6: "\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6", - base64: "\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64", - base64url: "\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url", - json_string: "\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON", - e164: "\u179B\u17C1\u1781 E.164", - jwt: "JWT", - template_literal: "\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u179B\u17C1\u1781", - array: "\u17A2\u17B6\u179A\u17C1 (Array)", - null: "\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A instanceof ${issue2.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${received}`; - } - return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${stringifyPrimitive(issue2.values[0])}`; - return `\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${(_c = issue2.origin) != null ? _c : "\u178F\u1798\u17D2\u179B\u17C3"} ${adj} ${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "\u1792\u17B6\u178F\u17BB"}`; - return `\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${(_e = issue2.origin) != null ? _e : "\u178F\u1798\u17D2\u179B\u17C3"} ${adj} ${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue2.origin} ${adj} ${issue2.minimum.toString()} ${sizing.unit}`; - } - return `\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${issue2.origin} ${adj} ${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${_issue.suffix}"`; - if (_issue.format === "includes") - return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${_issue.includes}"`; - if (_issue.format === "regex") - return `\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${_issue.pattern}`; - return `\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${issue2.divisor}`; - case "unrecognized_keys": - return `\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${issue2.origin}`; - case "invalid_union": - return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C`; - case "invalid_element": - return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${issue2.origin}`; - default: - return `\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C`; - } - }; -}; -function km_default() { - return { - localeError: error26() - }; -} - -// node_modules/zod/v4/locales/kh.js -function kh_default() { - return km_default(); -} - -// node_modules/zod/v4/locales/ko.js -var error27 = () => { - const Sizable = { - string: { unit: "\uBB38\uC790", verb: "to have" }, - file: { unit: "\uBC14\uC774\uD2B8", verb: "to have" }, - array: { unit: "\uAC1C", verb: "to have" }, - set: { unit: "\uAC1C", verb: "to have" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\uC785\uB825", - email: "\uC774\uBA54\uC77C \uC8FC\uC18C", - url: "URL", - emoji: "\uC774\uBAA8\uC9C0", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO \uB0A0\uC9DC\uC2DC\uAC04", - date: "ISO \uB0A0\uC9DC", - time: "ISO \uC2DC\uAC04", - duration: "ISO \uAE30\uAC04", - ipv4: "IPv4 \uC8FC\uC18C", - ipv6: "IPv6 \uC8FC\uC18C", - cidrv4: "IPv4 \uBC94\uC704", - cidrv6: "IPv6 \uBC94\uC704", - base64: "base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4", - base64url: "base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4", - json_string: "JSON \uBB38\uC790\uC5F4", - e164: "E.164 \uBC88\uD638", - jwt: "JWT", - template_literal: "\uC785\uB825" - }; - const TypeDictionary = { - nan: "NaN" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f, _g, _h, _i; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 instanceof ${issue2.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${received}\uC785\uB2C8\uB2E4`; - } - return `\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${received}\uC785\uB2C8\uB2E4`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${stringifyPrimitive(issue2.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`; - return `\uC798\uBABB\uB41C \uC635\uC158: ${joinValues(issue2.values, "\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`; - case "too_big": { - const adj = issue2.inclusive ? "\uC774\uD558" : "\uBBF8\uB9CC"; - const suffix = adj === "\uBBF8\uB9CC" ? "\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4" : "\uC5EC\uC57C \uD569\uB2C8\uB2E4"; - const sizing = getSizing(issue2.origin); - const unit = (_c = sizing == null ? void 0 : sizing.unit) != null ? _c : "\uC694\uC18C"; - if (sizing) - return `${(_d = issue2.origin) != null ? _d : "\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${issue2.maximum.toString()}${unit} ${adj}${suffix}`; - return `${(_e = issue2.origin) != null ? _e : "\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${issue2.maximum.toString()} ${adj}${suffix}`; - } - case "too_small": { - const adj = issue2.inclusive ? "\uC774\uC0C1" : "\uCD08\uACFC"; - const suffix = adj === "\uC774\uC0C1" ? "\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4" : "\uC5EC\uC57C \uD569\uB2C8\uB2E4"; - const sizing = getSizing(issue2.origin); - const unit = (_f = sizing == null ? void 0 : sizing.unit) != null ? _f : "\uC694\uC18C"; - if (sizing) { - return `${(_g = issue2.origin) != null ? _g : "\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${issue2.minimum.toString()}${unit} ${adj}${suffix}`; - } - return `${(_h = issue2.origin) != null ? _h : "\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${issue2.minimum.toString()} ${adj}${suffix}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${_issue.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`; - } - if (_issue.format === "ends_with") - return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${_issue.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`; - if (_issue.format === "includes") - return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${_issue.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`; - if (_issue.format === "regex") - return `\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${_issue.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`; - return `\uC798\uBABB\uB41C ${(_i = FormatDictionary[_issue.format]) != null ? _i : issue2.format}`; - } - case "not_multiple_of": - return `\uC798\uBABB\uB41C \uC22B\uC790: ${issue2.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`; - case "unrecognized_keys": - return `\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `\uC798\uBABB\uB41C \uD0A4: ${issue2.origin}`; - case "invalid_union": - return `\uC798\uBABB\uB41C \uC785\uB825`; - case "invalid_element": - return `\uC798\uBABB\uB41C \uAC12: ${issue2.origin}`; - default: - return `\uC798\uBABB\uB41C \uC785\uB825`; - } - }; -}; -function ko_default() { - return { - localeError: error27() - }; -} - -// node_modules/zod/v4/locales/lt.js -var capitalizeFirstCharacter = (text) => { - return text.charAt(0).toUpperCase() + text.slice(1); -}; -function getUnitTypeFromNumber(number4) { - const abs = Math.abs(number4); - const last = abs % 10; - const last2 = abs % 100; - if (last2 >= 11 && last2 <= 19 || last === 0) - return "many"; - if (last === 1) - return "one"; - return "few"; -} -var error28 = () => { - const Sizable = { - string: { - unit: { - one: "simbolis", - few: "simboliai", - many: "simboli\u0173" - }, - verb: { - smaller: { - inclusive: "turi b\u016Bti ne ilgesn\u0117 kaip", - notInclusive: "turi b\u016Bti trumpesn\u0117 kaip" - }, - bigger: { - inclusive: "turi b\u016Bti ne trumpesn\u0117 kaip", - notInclusive: "turi b\u016Bti ilgesn\u0117 kaip" - } - } - }, - file: { - unit: { - one: "baitas", - few: "baitai", - many: "bait\u0173" - }, - verb: { - smaller: { - inclusive: "turi b\u016Bti ne didesnis kaip", - notInclusive: "turi b\u016Bti ma\u017Eesnis kaip" - }, - bigger: { - inclusive: "turi b\u016Bti ne ma\u017Eesnis kaip", - notInclusive: "turi b\u016Bti didesnis kaip" - } - } - }, - array: { - unit: { - one: "element\u0105", - few: "elementus", - many: "element\u0173" - }, - verb: { - smaller: { - inclusive: "turi tur\u0117ti ne daugiau kaip", - notInclusive: "turi tur\u0117ti ma\u017Eiau kaip" - }, - bigger: { - inclusive: "turi tur\u0117ti ne ma\u017Eiau kaip", - notInclusive: "turi tur\u0117ti daugiau kaip" - } - } - }, - set: { - unit: { - one: "element\u0105", - few: "elementus", - many: "element\u0173" - }, - verb: { - smaller: { - inclusive: "turi tur\u0117ti ne daugiau kaip", - notInclusive: "turi tur\u0117ti ma\u017Eiau kaip" - }, - bigger: { - inclusive: "turi tur\u0117ti ne ma\u017Eiau kaip", - notInclusive: "turi tur\u0117ti daugiau kaip" - } - } - } - }; - function getSizing(origin, unitType, inclusive, targetShouldBe) { - var _a5; - const result = (_a5 = Sizable[origin]) != null ? _a5 : null; - if (result === null) - return result; - return { - unit: result.unit[unitType], - verb: result.verb[targetShouldBe][inclusive ? "inclusive" : "notInclusive"] - }; - } - const FormatDictionary = { - regex: "\u012Fvestis", - email: "el. pa\u0161to adresas", - url: "URL", - emoji: "jaustukas", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO data ir laikas", - date: "ISO data", - time: "ISO laikas", - duration: "ISO trukm\u0117", - ipv4: "IPv4 adresas", - ipv6: "IPv6 adresas", - cidrv4: "IPv4 tinklo prefiksas (CIDR)", - cidrv6: "IPv6 tinklo prefiksas (CIDR)", - base64: "base64 u\u017Ekoduota eilut\u0117", - base64url: "base64url u\u017Ekoduota eilut\u0117", - json_string: "JSON eilut\u0117", - e164: "E.164 numeris", - jwt: "JWT", - template_literal: "\u012Fvestis" - }; - const TypeDictionary = { - nan: "NaN", - number: "skai\u010Dius", - bigint: "sveikasis skai\u010Dius", - string: "eilut\u0117", - boolean: "login\u0117 reik\u0161m\u0117", - undefined: "neapibr\u0117\u017Eta reik\u0161m\u0117", - function: "funkcija", - symbol: "simbolis", - array: "masyvas", - object: "objektas", - null: "nulin\u0117 reik\u0161m\u0117" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Gautas tipas ${received}, o tik\u0117tasi - instanceof ${issue2.expected}`; - } - return `Gautas tipas ${received}, o tik\u0117tasi - ${expected}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Privalo b\u016Bti ${stringifyPrimitive(issue2.values[0])}`; - return `Privalo b\u016Bti vienas i\u0161 ${joinValues(issue2.values, "|")} pasirinkim\u0173`; - case "too_big": { - const origin = (_c = TypeDictionary[issue2.origin]) != null ? _c : issue2.origin; - const sizing = getSizing(issue2.origin, getUnitTypeFromNumber(Number(issue2.maximum)), (_d = issue2.inclusive) != null ? _d : false, "smaller"); - if (sizing == null ? void 0 : sizing.verb) - return `${capitalizeFirstCharacter((_e = origin != null ? origin : issue2.origin) != null ? _e : "reik\u0161m\u0117")} ${sizing.verb} ${issue2.maximum.toString()} ${(_f = sizing.unit) != null ? _f : "element\u0173"}`; - const adj = issue2.inclusive ? "ne didesnis kaip" : "ma\u017Eesnis kaip"; - return `${capitalizeFirstCharacter((_g = origin != null ? origin : issue2.origin) != null ? _g : "reik\u0161m\u0117")} turi b\u016Bti ${adj} ${issue2.maximum.toString()} ${sizing == null ? void 0 : sizing.unit}`; - } - case "too_small": { - const origin = (_h = TypeDictionary[issue2.origin]) != null ? _h : issue2.origin; - const sizing = getSizing(issue2.origin, getUnitTypeFromNumber(Number(issue2.minimum)), (_i = issue2.inclusive) != null ? _i : false, "bigger"); - if (sizing == null ? void 0 : sizing.verb) - return `${capitalizeFirstCharacter((_j = origin != null ? origin : issue2.origin) != null ? _j : "reik\u0161m\u0117")} ${sizing.verb} ${issue2.minimum.toString()} ${(_k = sizing.unit) != null ? _k : "element\u0173"}`; - const adj = issue2.inclusive ? "ne ma\u017Eesnis kaip" : "didesnis kaip"; - return `${capitalizeFirstCharacter((_l = origin != null ? origin : issue2.origin) != null ? _l : "reik\u0161m\u0117")} turi b\u016Bti ${adj} ${issue2.minimum.toString()} ${sizing == null ? void 0 : sizing.unit}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `Eilut\u0117 privalo prasid\u0117ti "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `Eilut\u0117 privalo pasibaigti "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Eilut\u0117 privalo \u012Ftraukti "${_issue.includes}"`; - if (_issue.format === "regex") - return `Eilut\u0117 privalo atitikti ${_issue.pattern}`; - return `Neteisingas ${(_m = FormatDictionary[_issue.format]) != null ? _m : issue2.format}`; - } - case "not_multiple_of": - return `Skai\u010Dius privalo b\u016Bti ${issue2.divisor} kartotinis.`; - case "unrecognized_keys": - return `Neatpa\u017Eint${issue2.keys.length > 1 ? "i" : "as"} rakt${issue2.keys.length > 1 ? "ai" : "as"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return "Rastas klaidingas raktas"; - case "invalid_union": - return "Klaidinga \u012Fvestis"; - case "invalid_element": { - const origin = (_n = TypeDictionary[issue2.origin]) != null ? _n : issue2.origin; - return `${capitalizeFirstCharacter((_o = origin != null ? origin : issue2.origin) != null ? _o : "reik\u0161m\u0117")} turi klaiding\u0105 \u012Fvest\u012F`; - } - default: - return "Klaidinga \u012Fvestis"; - } - }; -}; -function lt_default() { - return { - localeError: error28() - }; -} - -// node_modules/zod/v4/locales/mk.js -var error29 = () => { - const Sizable = { - string: { unit: "\u0437\u043D\u0430\u0446\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" }, - file: { unit: "\u0431\u0430\u0458\u0442\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" }, - array: { unit: "\u0441\u0442\u0430\u0432\u043A\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" }, - set: { unit: "\u0441\u0442\u0430\u0432\u043A\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u0432\u043D\u0435\u0441", - email: "\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430", - url: "URL", - emoji: "\u0435\u043C\u043E\u045F\u0438", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435", - date: "ISO \u0434\u0430\u0442\u0443\u043C", - time: "ISO \u0432\u0440\u0435\u043C\u0435", - duration: "ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435", - ipv4: "IPv4 \u0430\u0434\u0440\u0435\u0441\u0430", - ipv6: "IPv6 \u0430\u0434\u0440\u0435\u0441\u0430", - cidrv4: "IPv4 \u043E\u043F\u0441\u0435\u0433", - cidrv6: "IPv6 \u043E\u043F\u0441\u0435\u0433", - base64: "base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430", - base64url: "base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430", - json_string: "JSON \u043D\u0438\u0437\u0430", - e164: "E.164 \u0431\u0440\u043E\u0458", - jwt: "JWT", - template_literal: "\u0432\u043D\u0435\u0441" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u0431\u0440\u043E\u0458", - array: "\u043D\u0438\u0437\u0430" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 instanceof ${issue2.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${received}`; - } - return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Invalid input: expected ${stringifyPrimitive(issue2.values[0])}`; - return `\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${(_c = issue2.origin) != null ? _c : "\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`; - return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${(_e = issue2.origin) != null ? _e : "\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue2.origin} \u0434\u0430 \u0438\u043C\u0430 ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${issue2.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${_issue.suffix}"`; - if (_issue.format === "includes") - return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${_issue.includes}"`; - if (_issue.format === "regex") - return `\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${_issue.pattern}`; - return `Invalid ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${issue2.divisor}`; - case "unrecognized_keys": - return `${issue2.keys.length > 1 ? "\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438" : "\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${issue2.origin}`; - case "invalid_union": - return "\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"; - case "invalid_element": - return `\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${issue2.origin}`; - default: - return `\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441`; - } - }; -}; -function mk_default() { - return { - localeError: error29() - }; -} - -// node_modules/zod/v4/locales/ms.js -var error30 = () => { - const Sizable = { - string: { unit: "aksara", verb: "mempunyai" }, - file: { unit: "bait", verb: "mempunyai" }, - array: { unit: "elemen", verb: "mempunyai" }, - set: { unit: "elemen", verb: "mempunyai" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "input", - email: "alamat e-mel", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "tarikh masa ISO", - date: "tarikh ISO", - time: "masa ISO", - duration: "tempoh ISO", - ipv4: "alamat IPv4", - ipv6: "alamat IPv6", - cidrv4: "julat IPv4", - cidrv6: "julat IPv6", - base64: "string dikodkan base64", - base64url: "string dikodkan base64url", - json_string: "string JSON", - e164: "nombor E.164", - jwt: "JWT", - template_literal: "input" - }; - const TypeDictionary = { - nan: "NaN", - number: "nombor" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Input tidak sah: dijangka instanceof ${issue2.expected}, diterima ${received}`; - } - return `Input tidak sah: dijangka ${expected}, diterima ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Input tidak sah: dijangka ${stringifyPrimitive(issue2.values[0])}`; - return `Pilihan tidak sah: dijangka salah satu daripada ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Terlalu besar: dijangka ${(_c = issue2.origin) != null ? _c : "nilai"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elemen"}`; - return `Terlalu besar: dijangka ${(_e = issue2.origin) != null ? _e : "nilai"} adalah ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Terlalu kecil: dijangka ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `Terlalu kecil: dijangka ${issue2.origin} adalah ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `String tidak sah: mesti bermula dengan "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `String tidak sah: mesti berakhir dengan "${_issue.suffix}"`; - if (_issue.format === "includes") - return `String tidak sah: mesti mengandungi "${_issue.includes}"`; - if (_issue.format === "regex") - return `String tidak sah: mesti sepadan dengan corak ${_issue.pattern}`; - return `${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format} tidak sah`; - } - case "not_multiple_of": - return `Nombor tidak sah: perlu gandaan ${issue2.divisor}`; - case "unrecognized_keys": - return `Kunci tidak dikenali: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Kunci tidak sah dalam ${issue2.origin}`; - case "invalid_union": - return "Input tidak sah"; - case "invalid_element": - return `Nilai tidak sah dalam ${issue2.origin}`; - default: - return `Input tidak sah`; - } - }; -}; -function ms_default() { - return { - localeError: error30() - }; -} - -// node_modules/zod/v4/locales/nl.js -var error31 = () => { - const Sizable = { - string: { unit: "tekens", verb: "heeft" }, - file: { unit: "bytes", verb: "heeft" }, - array: { unit: "elementen", verb: "heeft" }, - set: { unit: "elementen", verb: "heeft" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "invoer", - email: "emailadres", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO datum en tijd", - date: "ISO datum", - time: "ISO tijd", - duration: "ISO duur", - ipv4: "IPv4-adres", - ipv6: "IPv6-adres", - cidrv4: "IPv4-bereik", - cidrv6: "IPv6-bereik", - base64: "base64-gecodeerde tekst", - base64url: "base64 URL-gecodeerde tekst", - json_string: "JSON string", - e164: "E.164-nummer", - jwt: "JWT", - template_literal: "invoer" - }; - const TypeDictionary = { - nan: "NaN", - number: "getal" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Ongeldige invoer: verwacht instanceof ${issue2.expected}, ontving ${received}`; - } - return `Ongeldige invoer: verwacht ${expected}, ontving ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Ongeldige invoer: verwacht ${stringifyPrimitive(issue2.values[0])}`; - return `Ongeldige optie: verwacht \xE9\xE9n van ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - const longName = issue2.origin === "date" ? "laat" : issue2.origin === "string" ? "lang" : "groot"; - if (sizing) - return `Te ${longName}: verwacht dat ${(_c = issue2.origin) != null ? _c : "waarde"} ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elementen"} ${sizing.verb}`; - return `Te ${longName}: verwacht dat ${(_e = issue2.origin) != null ? _e : "waarde"} ${adj}${issue2.maximum.toString()} is`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - const shortName = issue2.origin === "date" ? "vroeg" : issue2.origin === "string" ? "kort" : "klein"; - if (sizing) { - return `Te ${shortName}: verwacht dat ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} ${sizing.verb}`; - } - return `Te ${shortName}: verwacht dat ${issue2.origin} ${adj}${issue2.minimum.toString()} is`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `Ongeldige tekst: moet met "${_issue.prefix}" beginnen`; - } - if (_issue.format === "ends_with") - return `Ongeldige tekst: moet op "${_issue.suffix}" eindigen`; - if (_issue.format === "includes") - return `Ongeldige tekst: moet "${_issue.includes}" bevatten`; - if (_issue.format === "regex") - return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`; - return `Ongeldig: ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `Ongeldig getal: moet een veelvoud van ${issue2.divisor} zijn`; - case "unrecognized_keys": - return `Onbekende key${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Ongeldige key in ${issue2.origin}`; - case "invalid_union": - return "Ongeldige invoer"; - case "invalid_element": - return `Ongeldige waarde in ${issue2.origin}`; - default: - return `Ongeldige invoer`; - } - }; -}; -function nl_default() { - return { - localeError: error31() - }; -} - -// node_modules/zod/v4/locales/no.js -var error32 = () => { - const Sizable = { - string: { unit: "tegn", verb: "\xE5 ha" }, - file: { unit: "bytes", verb: "\xE5 ha" }, - array: { unit: "elementer", verb: "\xE5 inneholde" }, - set: { unit: "elementer", verb: "\xE5 inneholde" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "input", - email: "e-postadresse", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO dato- og klokkeslett", - date: "ISO-dato", - time: "ISO-klokkeslett", - duration: "ISO-varighet", - ipv4: "IPv4-omr\xE5de", - ipv6: "IPv6-omr\xE5de", - cidrv4: "IPv4-spekter", - cidrv6: "IPv6-spekter", - base64: "base64-enkodet streng", - base64url: "base64url-enkodet streng", - json_string: "JSON-streng", - e164: "E.164-nummer", - jwt: "JWT", - template_literal: "input" - }; - const TypeDictionary = { - nan: "NaN", - number: "tall", - array: "liste" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Ugyldig input: forventet instanceof ${issue2.expected}, fikk ${received}`; - } - return `Ugyldig input: forventet ${expected}, fikk ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Ugyldig verdi: forventet ${stringifyPrimitive(issue2.values[0])}`; - return `Ugyldig valg: forventet en av ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `For stor(t): forventet ${(_c = issue2.origin) != null ? _c : "value"} til \xE5 ha ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elementer"}`; - return `For stor(t): forventet ${(_e = issue2.origin) != null ? _e : "value"} til \xE5 ha ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `For lite(n): forventet ${issue2.origin} til \xE5 ha ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `For lite(n): forventet ${issue2.origin} til \xE5 ha ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Ugyldig streng: m\xE5 starte med "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Ugyldig streng: m\xE5 ende med "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Ugyldig streng: m\xE5 inneholde "${_issue.includes}"`; - if (_issue.format === "regex") - return `Ugyldig streng: m\xE5 matche m\xF8nsteret ${_issue.pattern}`; - return `Ugyldig ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `Ugyldig tall: m\xE5 v\xE6re et multiplum av ${issue2.divisor}`; - case "unrecognized_keys": - return `${issue2.keys.length > 1 ? "Ukjente n\xF8kler" : "Ukjent n\xF8kkel"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Ugyldig n\xF8kkel i ${issue2.origin}`; - case "invalid_union": - return "Ugyldig input"; - case "invalid_element": - return `Ugyldig verdi i ${issue2.origin}`; - default: - return `Ugyldig input`; - } - }; -}; -function no_default() { - return { - localeError: error32() - }; -} - -// node_modules/zod/v4/locales/ota.js -var error33 = () => { - const Sizable = { - string: { unit: "harf", verb: "olmal\u0131d\u0131r" }, - file: { unit: "bayt", verb: "olmal\u0131d\u0131r" }, - array: { unit: "unsur", verb: "olmal\u0131d\u0131r" }, - set: { unit: "unsur", verb: "olmal\u0131d\u0131r" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "giren", - email: "epostag\xE2h", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO heng\xE2m\u0131", - date: "ISO tarihi", - time: "ISO zaman\u0131", - duration: "ISO m\xFCddeti", - ipv4: "IPv4 ni\u015F\xE2n\u0131", - ipv6: "IPv6 ni\u015F\xE2n\u0131", - cidrv4: "IPv4 menzili", - cidrv6: "IPv6 menzili", - base64: "base64-\u015Fifreli metin", - base64url: "base64url-\u015Fifreli metin", - json_string: "JSON metin", - e164: "E.164 say\u0131s\u0131", - jwt: "JWT", - template_literal: "giren" - }; - const TypeDictionary = { - nan: "NaN", - number: "numara", - array: "saf", - null: "gayb" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `F\xE2sit giren: umulan instanceof ${issue2.expected}, al\u0131nan ${received}`; - } - return `F\xE2sit giren: umulan ${expected}, al\u0131nan ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `F\xE2sit giren: umulan ${stringifyPrimitive(issue2.values[0])}`; - return `F\xE2sit tercih: m\xFBteberler ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Fazla b\xFCy\xFCk: ${(_c = issue2.origin) != null ? _c : "value"}, ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elements"} sahip olmal\u0131yd\u0131.`; - return `Fazla b\xFCy\xFCk: ${(_e = issue2.origin) != null ? _e : "value"}, ${adj}${issue2.maximum.toString()} olmal\u0131yd\u0131.`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Fazla k\xFC\xE7\xFCk: ${issue2.origin}, ${adj}${issue2.minimum.toString()} ${sizing.unit} sahip olmal\u0131yd\u0131.`; - } - return `Fazla k\xFC\xE7\xFCk: ${issue2.origin}, ${adj}${issue2.minimum.toString()} olmal\u0131yd\u0131.`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `F\xE2sit metin: "${_issue.prefix}" ile ba\u015Flamal\u0131.`; - if (_issue.format === "ends_with") - return `F\xE2sit metin: "${_issue.suffix}" ile bitmeli.`; - if (_issue.format === "includes") - return `F\xE2sit metin: "${_issue.includes}" ihtiv\xE2 etmeli.`; - if (_issue.format === "regex") - return `F\xE2sit metin: ${_issue.pattern} nak\u015F\u0131na uymal\u0131.`; - return `F\xE2sit ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `F\xE2sit say\u0131: ${issue2.divisor} kat\u0131 olmal\u0131yd\u0131.`; - case "unrecognized_keys": - return `Tan\u0131nmayan anahtar ${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `${issue2.origin} i\xE7in tan\u0131nmayan anahtar var.`; - case "invalid_union": - return "Giren tan\u0131namad\u0131."; - case "invalid_element": - return `${issue2.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`; - default: - return `K\u0131ymet tan\u0131namad\u0131.`; - } - }; -}; -function ota_default() { - return { - localeError: error33() - }; -} - -// node_modules/zod/v4/locales/ps.js -var error34 = () => { - const Sizable = { - string: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" }, - file: { unit: "\u0628\u0627\u06CC\u067C\u0633", verb: "\u0648\u0644\u0631\u064A" }, - array: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" }, - set: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u0648\u0631\u0648\u062F\u064A", - email: "\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9", - url: "\u06CC\u0648 \u0622\u0631 \u0627\u0644", - emoji: "\u0627\u06CC\u0645\u0648\u062C\u064A", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A", - date: "\u0646\u06D0\u067C\u0647", - time: "\u0648\u062E\u062A", - duration: "\u0645\u0648\u062F\u0647", - ipv4: "\u062F IPv4 \u067E\u062A\u0647", - ipv6: "\u062F IPv6 \u067E\u062A\u0647", - cidrv4: "\u062F IPv4 \u0633\u0627\u062D\u0647", - cidrv6: "\u062F IPv6 \u0633\u0627\u062D\u0647", - base64: "base64-encoded \u0645\u062A\u0646", - base64url: "base64url-encoded \u0645\u062A\u0646", - json_string: "JSON \u0645\u062A\u0646", - e164: "\u062F E.164 \u0634\u0645\u06D0\u0631\u0647", - jwt: "JWT", - template_literal: "\u0648\u0631\u0648\u062F\u064A" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u0639\u062F\u062F", - array: "\u0627\u0631\u06D0" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F instanceof ${issue2.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${received} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`; - } - return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${received} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`; - } - case "invalid_value": - if (issue2.values.length === 1) { - return `\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${stringifyPrimitive(issue2.values[0])} \u0648\u0627\u06CC`; - } - return `\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${joinValues(issue2.values, "|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${(_c = issue2.origin) != null ? _c : "\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`; - } - return `\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${(_e = issue2.origin) != null ? _e : "\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${adj}${issue2.maximum.toString()} \u0648\u064A`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${issue2.origin} \u0628\u0627\u06CC\u062F ${adj}${issue2.minimum.toString()} ${sizing.unit} \u0648\u0644\u0631\u064A`; - } - return `\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${issue2.origin} \u0628\u0627\u06CC\u062F ${adj}${issue2.minimum.toString()} \u0648\u064A`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${_issue.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`; - } - if (_issue.format === "ends_with") { - return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${_issue.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`; - } - if (_issue.format === "includes") { - return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${_issue.includes}" \u0648\u0644\u0631\u064A`; - } - if (_issue.format === "regex") { - return `\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${_issue.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`; - } - return `${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`; - } - case "not_multiple_of": - return `\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${issue2.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`; - case "unrecognized_keys": - return `\u0646\u0627\u0633\u0645 ${issue2.keys.length > 1 ? "\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647" : "\u06A9\u0644\u06CC\u0689"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${issue2.origin} \u06A9\u06D0`; - case "invalid_union": - return `\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A`; - case "invalid_element": - return `\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${issue2.origin} \u06A9\u06D0`; - default: - return `\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A`; - } - }; -}; -function ps_default() { - return { - localeError: error34() - }; -} - -// node_modules/zod/v4/locales/pl.js -var error35 = () => { - const Sizable = { - string: { unit: "znak\xF3w", verb: "mie\u0107" }, - file: { unit: "bajt\xF3w", verb: "mie\u0107" }, - array: { unit: "element\xF3w", verb: "mie\u0107" }, - set: { unit: "element\xF3w", verb: "mie\u0107" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "wyra\u017Cenie", - email: "adres email", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "data i godzina w formacie ISO", - date: "data w formacie ISO", - time: "godzina w formacie ISO", - duration: "czas trwania ISO", - ipv4: "adres IPv4", - ipv6: "adres IPv6", - cidrv4: "zakres IPv4", - cidrv6: "zakres IPv6", - base64: "ci\u0105g znak\xF3w zakodowany w formacie base64", - base64url: "ci\u0105g znak\xF3w zakodowany w formacie base64url", - json_string: "ci\u0105g znak\xF3w w formacie JSON", - e164: "liczba E.164", - jwt: "JWT", - template_literal: "wej\u015Bcie" - }; - const TypeDictionary = { - nan: "NaN", - number: "liczba", - array: "tablica" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f, _g, _h, _i; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano instanceof ${issue2.expected}, otrzymano ${received}`; - } - return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${expected}, otrzymano ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${stringifyPrimitive(issue2.values[0])}`; - return `Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${(_c = issue2.origin) != null ? _c : "warto\u015B\u0107"} b\u0119dzie mie\u0107 ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "element\xF3w"}`; - } - return `Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${(_e = issue2.origin) != null ? _e : "warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${(_f = issue2.origin) != null ? _f : "warto\u015B\u0107"} b\u0119dzie mie\u0107 ${adj}${issue2.minimum.toString()} ${(_g = sizing.unit) != null ? _g : "element\xF3w"}`; - } - return `Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${(_h = issue2.origin) != null ? _h : "warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${_issue.includes}"`; - if (_issue.format === "regex") - return `Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${_issue.pattern}`; - return `Nieprawid\u0142ow(y/a/e) ${(_i = FormatDictionary[_issue.format]) != null ? _i : issue2.format}`; - } - case "not_multiple_of": - return `Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${issue2.divisor}`; - case "unrecognized_keys": - return `Nierozpoznane klucze${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Nieprawid\u0142owy klucz w ${issue2.origin}`; - case "invalid_union": - return "Nieprawid\u0142owe dane wej\u015Bciowe"; - case "invalid_element": - return `Nieprawid\u0142owa warto\u015B\u0107 w ${issue2.origin}`; - default: - return `Nieprawid\u0142owe dane wej\u015Bciowe`; - } - }; -}; -function pl_default() { - return { - localeError: error35() - }; -} - -// node_modules/zod/v4/locales/pt.js -var error36 = () => { - const Sizable = { - string: { unit: "caracteres", verb: "ter" }, - file: { unit: "bytes", verb: "ter" }, - array: { unit: "itens", verb: "ter" }, - set: { unit: "itens", verb: "ter" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "padr\xE3o", - email: "endere\xE7o de e-mail", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "data e hora ISO", - date: "data ISO", - time: "hora ISO", - duration: "dura\xE7\xE3o ISO", - ipv4: "endere\xE7o IPv4", - ipv6: "endere\xE7o IPv6", - cidrv4: "faixa de IPv4", - cidrv6: "faixa de IPv6", - base64: "texto codificado em base64", - base64url: "URL codificada em base64", - json_string: "texto JSON", - e164: "n\xFAmero E.164", - jwt: "JWT", - template_literal: "entrada" - }; - const TypeDictionary = { - nan: "NaN", - number: "n\xFAmero", - null: "nulo" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Tipo inv\xE1lido: esperado instanceof ${issue2.expected}, recebido ${received}`; - } - return `Tipo inv\xE1lido: esperado ${expected}, recebido ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Entrada inv\xE1lida: esperado ${stringifyPrimitive(issue2.values[0])}`; - return `Op\xE7\xE3o inv\xE1lida: esperada uma das ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Muito grande: esperado que ${(_c = issue2.origin) != null ? _c : "valor"} tivesse ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elementos"}`; - return `Muito grande: esperado que ${(_e = issue2.origin) != null ? _e : "valor"} fosse ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Muito pequeno: esperado que ${issue2.origin} tivesse ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `Muito pequeno: esperado que ${issue2.origin} fosse ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Texto inv\xE1lido: deve come\xE7ar com "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Texto inv\xE1lido: deve terminar com "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Texto inv\xE1lido: deve incluir "${_issue.includes}"`; - if (_issue.format === "regex") - return `Texto inv\xE1lido: deve corresponder ao padr\xE3o ${_issue.pattern}`; - return `${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format} inv\xE1lido`; - } - case "not_multiple_of": - return `N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${issue2.divisor}`; - case "unrecognized_keys": - return `Chave${issue2.keys.length > 1 ? "s" : ""} desconhecida${issue2.keys.length > 1 ? "s" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Chave inv\xE1lida em ${issue2.origin}`; - case "invalid_union": - return "Entrada inv\xE1lida"; - case "invalid_element": - return `Valor inv\xE1lido em ${issue2.origin}`; - default: - return `Campo inv\xE1lido`; - } - }; -}; -function pt_default() { - return { - localeError: error36() - }; -} - -// node_modules/zod/v4/locales/ro.js -var error37 = () => { - const Sizable = { - string: { unit: "caractere", verb: "s\u0103 aib\u0103" }, - file: { unit: "octe\u021Bi", verb: "s\u0103 aib\u0103" }, - array: { unit: "elemente", verb: "s\u0103 aib\u0103" }, - set: { unit: "elemente", verb: "s\u0103 aib\u0103" }, - map: { unit: "intr\u0103ri", verb: "s\u0103 aib\u0103" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "intrare", - email: "adres\u0103 de email", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "dat\u0103 \u0219i or\u0103 ISO", - date: "dat\u0103 ISO", - time: "or\u0103 ISO", - duration: "durat\u0103 ISO", - ipv4: "adres\u0103 IPv4", - ipv6: "adres\u0103 IPv6", - mac: "adres\u0103 MAC", - cidrv4: "interval IPv4", - cidrv6: "interval IPv6", - base64: "\u0219ir codat base64", - base64url: "\u0219ir codat base64url", - json_string: "\u0219ir JSON", - e164: "num\u0103r E.164", - jwt: "JWT", - template_literal: "intrare" - }; - const TypeDictionary = { - nan: "NaN", - string: "\u0219ir", - number: "num\u0103r", - boolean: "boolean", - function: "func\u021Bie", - array: "matrice", - object: "obiect", - undefined: "nedefinit", - symbol: "simbol", - bigint: "num\u0103r mare", - void: "void", - never: "never", - map: "hart\u0103", - set: "set" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - return `Intrare invalid\u0103: a\u0219teptat ${expected}, primit ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Intrare invalid\u0103: a\u0219teptat ${stringifyPrimitive(issue2.values[0])}`; - return `Op\u021Biune invalid\u0103: a\u0219teptat una dintre ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Prea mare: a\u0219teptat ca ${(_c = issue2.origin) != null ? _c : "valoarea"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elemente"}`; - return `Prea mare: a\u0219teptat ca ${(_e = issue2.origin) != null ? _e : "valoarea"} s\u0103 fie ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Prea mic: a\u0219teptat ca ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `Prea mic: a\u0219teptat ca ${issue2.origin} s\u0103 fie ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `\u0218ir invalid: trebuie s\u0103 \xEEnceap\u0103 cu "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `\u0218ir invalid: trebuie s\u0103 se termine cu "${_issue.suffix}"`; - if (_issue.format === "includes") - return `\u0218ir invalid: trebuie s\u0103 includ\u0103 "${_issue.includes}"`; - if (_issue.format === "regex") - return `\u0218ir invalid: trebuie s\u0103 se potriveasc\u0103 cu modelul ${_issue.pattern}`; - return `Format invalid: ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `Num\u0103r invalid: trebuie s\u0103 fie multiplu de ${issue2.divisor}`; - case "unrecognized_keys": - return `Chei nerecunoscute: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Cheie invalid\u0103 \xEEn ${issue2.origin}`; - case "invalid_union": - return "Intrare invalid\u0103"; - case "invalid_element": - return `Valoare invalid\u0103 \xEEn ${issue2.origin}`; - default: - return `Intrare invalid\u0103`; - } - }; -}; -function ro_default() { - return { - localeError: error37() - }; -} - -// node_modules/zod/v4/locales/ru.js -function getRussianPlural(count, one, few, many) { - const absCount = Math.abs(count); - const lastDigit = absCount % 10; - const lastTwoDigits = absCount % 100; - if (lastTwoDigits >= 11 && lastTwoDigits <= 19) { - return many; - } - if (lastDigit === 1) { - return one; - } - if (lastDigit >= 2 && lastDigit <= 4) { - return few; - } - return many; -} -var error38 = () => { - const Sizable = { - string: { - unit: { - one: "\u0441\u0438\u043C\u0432\u043E\u043B", - few: "\u0441\u0438\u043C\u0432\u043E\u043B\u0430", - many: "\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432" - }, - verb: "\u0438\u043C\u0435\u0442\u044C" - }, - file: { - unit: { - one: "\u0431\u0430\u0439\u0442", - few: "\u0431\u0430\u0439\u0442\u0430", - many: "\u0431\u0430\u0439\u0442" - }, - verb: "\u0438\u043C\u0435\u0442\u044C" - }, - array: { - unit: { - one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", - few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430", - many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432" - }, - verb: "\u0438\u043C\u0435\u0442\u044C" - }, - set: { - unit: { - one: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442", - few: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430", - many: "\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432" - }, - verb: "\u0438\u043C\u0435\u0442\u044C" - } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u0432\u0432\u043E\u0434", - email: "email \u0430\u0434\u0440\u0435\u0441", - url: "URL", - emoji: "\u044D\u043C\u043E\u0434\u0437\u0438", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F", - date: "ISO \u0434\u0430\u0442\u0430", - time: "ISO \u0432\u0440\u0435\u043C\u044F", - duration: "ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C", - ipv4: "IPv4 \u0430\u0434\u0440\u0435\u0441", - ipv6: "IPv6 \u0430\u0434\u0440\u0435\u0441", - cidrv4: "IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D", - cidrv6: "IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D", - base64: "\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64", - base64url: "\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url", - json_string: "JSON \u0441\u0442\u0440\u043E\u043A\u0430", - e164: "\u043D\u043E\u043C\u0435\u0440 E.164", - jwt: "JWT", - template_literal: "\u0432\u0432\u043E\u0434" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u0447\u0438\u0441\u043B\u043E", - array: "\u043C\u0430\u0441\u0441\u0438\u0432" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C instanceof ${issue2.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${received}`; - } - return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${stringifyPrimitive(issue2.values[0])}`; - return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) { - const maxValue = Number(issue2.maximum); - const unit = getRussianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); - return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${(_c = issue2.origin) != null ? _c : "\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${adj}${issue2.maximum.toString()} ${unit}`; - } - return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${(_d = issue2.origin) != null ? _d : "\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - const minValue = Number(issue2.minimum); - const unit = getRussianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many); - return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue2.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${adj}${issue2.minimum.toString()} ${unit}`; - } - return `\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${issue2.origin} \u0431\u0443\u0434\u0435\u0442 ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${_issue.suffix}"`; - if (_issue.format === "includes") - return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${_issue.includes}"`; - if (_issue.format === "regex") - return `\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`; - return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${(_e = FormatDictionary[_issue.format]) != null ? _e : issue2.format}`; - } - case "not_multiple_of": - return `\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${issue2.divisor}`; - case "unrecognized_keys": - return `\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${issue2.keys.length > 1 ? "\u044B\u0435" : "\u044B\u0439"} \u043A\u043B\u044E\u0447${issue2.keys.length > 1 ? "\u0438" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${issue2.origin}`; - case "invalid_union": - return "\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"; - case "invalid_element": - return `\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${issue2.origin}`; - default: - return `\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435`; - } - }; -}; -function ru_default() { - return { - localeError: error38() - }; -} - -// node_modules/zod/v4/locales/sl.js -var error39 = () => { - const Sizable = { - string: { unit: "znakov", verb: "imeti" }, - file: { unit: "bajtov", verb: "imeti" }, - array: { unit: "elementov", verb: "imeti" }, - set: { unit: "elementov", verb: "imeti" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "vnos", - email: "e-po\u0161tni naslov", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO datum in \u010Das", - date: "ISO datum", - time: "ISO \u010Das", - duration: "ISO trajanje", - ipv4: "IPv4 naslov", - ipv6: "IPv6 naslov", - cidrv4: "obseg IPv4", - cidrv6: "obseg IPv6", - base64: "base64 kodiran niz", - base64url: "base64url kodiran niz", - json_string: "JSON niz", - e164: "E.164 \u0161tevilka", - jwt: "JWT", - template_literal: "vnos" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u0161tevilo", - array: "tabela" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Neveljaven vnos: pri\u010Dakovano instanceof ${issue2.expected}, prejeto ${received}`; - } - return `Neveljaven vnos: pri\u010Dakovano ${expected}, prejeto ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Neveljaven vnos: pri\u010Dakovano ${stringifyPrimitive(issue2.values[0])}`; - return `Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Preveliko: pri\u010Dakovano, da bo ${(_c = issue2.origin) != null ? _c : "vrednost"} imelo ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "elementov"}`; - return `Preveliko: pri\u010Dakovano, da bo ${(_e = issue2.origin) != null ? _e : "vrednost"} ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Premajhno: pri\u010Dakovano, da bo ${issue2.origin} imelo ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `Premajhno: pri\u010Dakovano, da bo ${issue2.origin} ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `Neveljaven niz: mora se za\u010Deti z "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `Neveljaven niz: mora se kon\u010Dati z "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Neveljaven niz: mora vsebovati "${_issue.includes}"`; - if (_issue.format === "regex") - return `Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`; - return `Neveljaven ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${issue2.divisor}`; - case "unrecognized_keys": - return `Neprepoznan${issue2.keys.length > 1 ? "i klju\u010Di" : " klju\u010D"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Neveljaven klju\u010D v ${issue2.origin}`; - case "invalid_union": - return "Neveljaven vnos"; - case "invalid_element": - return `Neveljavna vrednost v ${issue2.origin}`; - default: - return "Neveljaven vnos"; - } - }; -}; -function sl_default() { - return { - localeError: error39() - }; -} - -// node_modules/zod/v4/locales/sv.js -var error40 = () => { - const Sizable = { - string: { unit: "tecken", verb: "att ha" }, - file: { unit: "bytes", verb: "att ha" }, - array: { unit: "objekt", verb: "att inneh\xE5lla" }, - set: { unit: "objekt", verb: "att inneh\xE5lla" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "regulj\xE4rt uttryck", - email: "e-postadress", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO-datum och tid", - date: "ISO-datum", - time: "ISO-tid", - duration: "ISO-varaktighet", - ipv4: "IPv4-intervall", - ipv6: "IPv6-intervall", - cidrv4: "IPv4-spektrum", - cidrv6: "IPv6-spektrum", - base64: "base64-kodad str\xE4ng", - base64url: "base64url-kodad str\xE4ng", - json_string: "JSON-str\xE4ng", - e164: "E.164-nummer", - jwt: "JWT", - template_literal: "mall-literal" - }; - const TypeDictionary = { - nan: "NaN", - number: "antal", - array: "lista" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f, _g, _h, _i, _j; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Ogiltig inmatning: f\xF6rv\xE4ntat instanceof ${issue2.expected}, fick ${received}`; - } - return `Ogiltig inmatning: f\xF6rv\xE4ntat ${expected}, fick ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Ogiltig inmatning: f\xF6rv\xE4ntat ${stringifyPrimitive(issue2.values[0])}`; - return `Ogiltigt val: f\xF6rv\xE4ntade en av ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `F\xF6r stor(t): f\xF6rv\xE4ntade ${(_c = issue2.origin) != null ? _c : "v\xE4rdet"} att ha ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "element"}`; - } - return `F\xF6r stor(t): f\xF6rv\xE4ntat ${(_e = issue2.origin) != null ? _e : "v\xE4rdet"} att ha ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `F\xF6r lite(t): f\xF6rv\xE4ntade ${(_f = issue2.origin) != null ? _f : "v\xE4rdet"} att ha ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `F\xF6r lite(t): f\xF6rv\xE4ntade ${(_g = issue2.origin) != null ? _g : "v\xE4rdet"} att ha ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `Ogiltig str\xE4ng: m\xE5ste sluta med "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${_issue.includes}"`; - if (_issue.format === "regex") - return `Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${_issue.pattern}"`; - return `Ogiltig(t) ${(_h = FormatDictionary[_issue.format]) != null ? _h : issue2.format}`; - } - case "not_multiple_of": - return `Ogiltigt tal: m\xE5ste vara en multipel av ${issue2.divisor}`; - case "unrecognized_keys": - return `${issue2.keys.length > 1 ? "Ok\xE4nda nycklar" : "Ok\xE4nd nyckel"}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Ogiltig nyckel i ${(_i = issue2.origin) != null ? _i : "v\xE4rdet"}`; - case "invalid_union": - return "Ogiltig input"; - case "invalid_element": - return `Ogiltigt v\xE4rde i ${(_j = issue2.origin) != null ? _j : "v\xE4rdet"}`; - default: - return `Ogiltig input`; - } - }; -}; -function sv_default() { - return { - localeError: error40() - }; -} - -// node_modules/zod/v4/locales/ta.js -var error41 = () => { - const Sizable = { - string: { unit: "\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" }, - file: { unit: "\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" }, - array: { unit: "\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" }, - set: { unit: "\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1", - email: "\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD", - date: "ISO \u0BA4\u0BC7\u0BA4\u0BBF", - time: "ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD", - duration: "ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1", - ipv4: "IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF", - ipv6: "IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF", - cidrv4: "IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1", - cidrv6: "IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1", - base64: "base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD", - base64url: "base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD", - json_string: "JSON \u0B9A\u0BB0\u0BAE\u0BCD", - e164: "E.164 \u0B8E\u0BA3\u0BCD", - jwt: "JWT", - template_literal: "input" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u0B8E\u0BA3\u0BCD", - array: "\u0B85\u0BA3\u0BBF", - null: "\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 instanceof ${issue2.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${received}`; - } - return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${stringifyPrimitive(issue2.values[0])}`; - return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${joinValues(issue2.values, "|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${(_c = issue2.origin) != null ? _c : "\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; - } - return `\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${(_e = issue2.origin) != null ? _e : "\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${adj}${issue2.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; - } - return `\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${issue2.origin} ${adj}${issue2.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${_issue.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; - if (_issue.format === "ends_with") - return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${_issue.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; - if (_issue.format === "includes") - return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${_issue.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; - if (_issue.format === "regex") - return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${_issue.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; - return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${issue2.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`; - case "unrecognized_keys": - return `\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${issue2.keys.length > 1 ? "\u0B95\u0BB3\u0BCD" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `${issue2.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`; - case "invalid_union": - return "\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"; - case "invalid_element": - return `${issue2.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`; - default: - return `\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1`; - } - }; -}; -function ta_default() { - return { - localeError: error41() - }; -} - -// node_modules/zod/v4/locales/th.js -var error42 = () => { - const Sizable = { - string: { unit: "\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" }, - file: { unit: "\u0E44\u0E1A\u0E15\u0E4C", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" }, - array: { unit: "\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" }, - set: { unit: "\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19", - email: "\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25", - url: "URL", - emoji: "\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO", - date: "\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO", - time: "\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO", - duration: "\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO", - ipv4: "\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4", - ipv6: "\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6", - cidrv4: "\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4", - cidrv6: "\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6", - base64: "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64", - base64url: "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL", - json_string: "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON", - e164: "\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)", - jwt: "\u0E42\u0E17\u0E40\u0E04\u0E19 JWT", - template_literal: "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02", - array: "\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)", - null: "\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 instanceof ${issue2.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${received}`; - } - return `\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${stringifyPrimitive(issue2.values[0])}`; - return `\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19" : "\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${(_c = issue2.origin) != null ? _c : "\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`; - return `\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${(_e = issue2.origin) != null ? _e : "\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? "\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22" : "\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue2.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue2.minimum.toString()} ${sizing.unit}`; - } - return `\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${issue2.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${adj} ${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${_issue.prefix}"`; - } - if (_issue.format === "ends_with") - return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${_issue.suffix}"`; - if (_issue.format === "includes") - return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${_issue.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`; - if (_issue.format === "regex") - return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${_issue.pattern}`; - return `\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${issue2.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`; - case "unrecognized_keys": - return `\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${issue2.origin}`; - case "invalid_union": - return "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49"; - case "invalid_element": - return `\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${issue2.origin}`; - default: - return `\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07`; - } - }; -}; -function th_default() { - return { - localeError: error42() - }; -} - -// node_modules/zod/v4/locales/tr.js -var error43 = () => { - const Sizable = { - string: { unit: "karakter", verb: "olmal\u0131" }, - file: { unit: "bayt", verb: "olmal\u0131" }, - array: { unit: "\xF6\u011Fe", verb: "olmal\u0131" }, - set: { unit: "\xF6\u011Fe", verb: "olmal\u0131" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "girdi", - email: "e-posta adresi", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO tarih ve saat", - date: "ISO tarih", - time: "ISO saat", - duration: "ISO s\xFCre", - ipv4: "IPv4 adresi", - ipv6: "IPv6 adresi", - cidrv4: "IPv4 aral\u0131\u011F\u0131", - cidrv6: "IPv6 aral\u0131\u011F\u0131", - base64: "base64 ile \u015Fifrelenmi\u015F metin", - base64url: "base64url ile \u015Fifrelenmi\u015F metin", - json_string: "JSON dizesi", - e164: "E.164 say\u0131s\u0131", - jwt: "JWT", - template_literal: "\u015Eablon dizesi" - }; - const TypeDictionary = { - nan: "NaN" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Ge\xE7ersiz de\u011Fer: beklenen instanceof ${issue2.expected}, al\u0131nan ${received}`; - } - return `Ge\xE7ersiz de\u011Fer: beklenen ${expected}, al\u0131nan ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Ge\xE7ersiz de\u011Fer: beklenen ${stringifyPrimitive(issue2.values[0])}`; - return `Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\xC7ok b\xFCy\xFCk: beklenen ${(_c = issue2.origin) != null ? _c : "de\u011Fer"} ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "\xF6\u011Fe"}`; - return `\xC7ok b\xFCy\xFCk: beklenen ${(_e = issue2.origin) != null ? _e : "de\u011Fer"} ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\xC7ok k\xFC\xE7\xFCk: beklenen ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - return `\xC7ok k\xFC\xE7\xFCk: beklenen ${issue2.origin} ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Ge\xE7ersiz metin: "${_issue.prefix}" ile ba\u015Flamal\u0131`; - if (_issue.format === "ends_with") - return `Ge\xE7ersiz metin: "${_issue.suffix}" ile bitmeli`; - if (_issue.format === "includes") - return `Ge\xE7ersiz metin: "${_issue.includes}" i\xE7ermeli`; - if (_issue.format === "regex") - return `Ge\xE7ersiz metin: ${_issue.pattern} desenine uymal\u0131`; - return `Ge\xE7ersiz ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `Ge\xE7ersiz say\u0131: ${issue2.divisor} ile tam b\xF6l\xFCnebilmeli`; - case "unrecognized_keys": - return `Tan\u0131nmayan anahtar${issue2.keys.length > 1 ? "lar" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `${issue2.origin} i\xE7inde ge\xE7ersiz anahtar`; - case "invalid_union": - return "Ge\xE7ersiz de\u011Fer"; - case "invalid_element": - return `${issue2.origin} i\xE7inde ge\xE7ersiz de\u011Fer`; - default: - return `Ge\xE7ersiz de\u011Fer`; - } - }; -}; -function tr_default() { - return { - localeError: error43() - }; -} - -// node_modules/zod/v4/locales/uk.js -var error44 = () => { - const Sizable = { - string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" }, - file: { unit: "\u0431\u0430\u0439\u0442\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" }, - array: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" }, - set: { unit: "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456", - email: "\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438", - url: "URL", - emoji: "\u0435\u043C\u043E\u0434\u0437\u0456", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO", - date: "\u0434\u0430\u0442\u0430 ISO", - time: "\u0447\u0430\u0441 ISO", - duration: "\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO", - ipv4: "\u0430\u0434\u0440\u0435\u0441\u0430 IPv4", - ipv6: "\u0430\u0434\u0440\u0435\u0441\u0430 IPv6", - cidrv4: "\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4", - cidrv6: "\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6", - base64: "\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64", - base64url: "\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url", - json_string: "\u0440\u044F\u0434\u043E\u043A JSON", - e164: "\u043D\u043E\u043C\u0435\u0440 E.164", - jwt: "JWT", - template_literal: "\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u0447\u0438\u0441\u043B\u043E", - array: "\u043C\u0430\u0441\u0438\u0432" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F instanceof ${issue2.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${received}`; - } - return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${stringifyPrimitive(issue2.values[0])}`; - return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${(_c = issue2.origin) != null ? _c : "\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`; - return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${(_e = issue2.origin) != null ? _e : "\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${issue2.origin} \u0431\u0443\u0434\u0435 ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${_issue.suffix}"`; - if (_issue.format === "includes") - return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${_issue.includes}"`; - if (_issue.format === "regex") - return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${_issue.pattern}`; - return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${issue2.divisor}`; - case "unrecognized_keys": - return `\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${issue2.keys.length > 1 ? "\u0456" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${issue2.origin}`; - case "invalid_union": - return "\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"; - case "invalid_element": - return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${issue2.origin}`; - default: - return `\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456`; - } - }; -}; -function uk_default() { - return { - localeError: error44() - }; -} - -// node_modules/zod/v4/locales/ua.js -function ua_default() { - return uk_default(); -} - -// node_modules/zod/v4/locales/ur.js -var error45 = () => { - const Sizable = { - string: { unit: "\u062D\u0631\u0648\u0641", verb: "\u06C1\u0648\u0646\u0627" }, - file: { unit: "\u0628\u0627\u0626\u0679\u0633", verb: "\u06C1\u0648\u0646\u0627" }, - array: { unit: "\u0622\u0626\u0679\u0645\u0632", verb: "\u06C1\u0648\u0646\u0627" }, - set: { unit: "\u0622\u0626\u0679\u0645\u0632", verb: "\u06C1\u0648\u0646\u0627" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u0627\u0646 \u067E\u0679", - email: "\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633", - url: "\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644", - emoji: "\u0627\u06CC\u0645\u0648\u062C\u06CC", - uuid: "\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC", - uuidv4: "\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4", - uuidv6: "\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6", - nanoid: "\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC", - guid: "\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC", - cuid: "\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC", - cuid2: "\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2", - ulid: "\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC", - xid: "\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC", - ksuid: "\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC", - datetime: "\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645", - date: "\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E", - time: "\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A", - duration: "\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A", - ipv4: "\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633", - ipv6: "\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633", - cidrv4: "\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C", - cidrv6: "\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C", - base64: "\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF", - base64url: "\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF", - json_string: "\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF", - e164: "\u0627\u06CC 164 \u0646\u0645\u0628\u0631", - jwt: "\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC", - template_literal: "\u0627\u0646 \u067E\u0679" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u0646\u0645\u0628\u0631", - array: "\u0622\u0631\u06D2", - null: "\u0646\u0644" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: instanceof ${issue2.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${received} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`; - } - return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${received} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${stringifyPrimitive(issue2.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`; - return `\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${joinValues(issue2.values, "|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\u0628\u06C1\u062A \u0628\u0691\u0627: ${(_c = issue2.origin) != null ? _c : "\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`; - return `\u0628\u06C1\u062A \u0628\u0691\u0627: ${(_e = issue2.origin) != null ? _e : "\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${adj}${issue2.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${issue2.origin} \u06A9\u06D2 ${adj}${issue2.minimum.toString()} ${sizing.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`; - } - return `\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${issue2.origin} \u06A9\u0627 ${adj}${issue2.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${_issue.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`; - } - if (_issue.format === "ends_with") - return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${_issue.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`; - if (_issue.format === "includes") - return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${_issue.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`; - if (_issue.format === "regex") - return `\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${_issue.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`; - return `\u063A\u0644\u0637 ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${issue2.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`; - case "unrecognized_keys": - return `\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${issue2.keys.length > 1 ? "\u0632" : ""}: ${joinValues(issue2.keys, "\u060C ")}`; - case "invalid_key": - return `${issue2.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`; - case "invalid_union": - return "\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"; - case "invalid_element": - return `${issue2.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`; - default: - return `\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679`; - } - }; -}; -function ur_default() { - return { - localeError: error45() - }; -} - -// node_modules/zod/v4/locales/uz.js -var error46 = () => { - const Sizable = { - string: { unit: "belgi", verb: "bo\u2018lishi kerak" }, - file: { unit: "bayt", verb: "bo\u2018lishi kerak" }, - array: { unit: "element", verb: "bo\u2018lishi kerak" }, - set: { unit: "element", verb: "bo\u2018lishi kerak" }, - map: { unit: "yozuv", verb: "bo\u2018lishi kerak" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "kirish", - email: "elektron pochta manzili", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO sana va vaqti", - date: "ISO sana", - time: "ISO vaqt", - duration: "ISO davomiylik", - ipv4: "IPv4 manzil", - ipv6: "IPv6 manzil", - mac: "MAC manzil", - cidrv4: "IPv4 diapazon", - cidrv6: "IPv6 diapazon", - base64: "base64 kodlangan satr", - base64url: "base64url kodlangan satr", - json_string: "JSON satr", - e164: "E.164 raqam", - jwt: "JWT", - template_literal: "kirish" - }; - const TypeDictionary = { - nan: "NaN", - number: "raqam", - array: "massiv" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `Noto\u2018g\u2018ri kirish: kutilgan instanceof ${issue2.expected}, qabul qilingan ${received}`; - } - return `Noto\u2018g\u2018ri kirish: kutilgan ${expected}, qabul qilingan ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `Noto\u2018g\u2018ri kirish: kutilgan ${stringifyPrimitive(issue2.values[0])}`; - return `Noto\u2018g\u2018ri variant: quyidagilardan biri kutilgan ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Juda katta: kutilgan ${(_c = issue2.origin) != null ? _c : "qiymat"} ${adj}${issue2.maximum.toString()} ${sizing.unit} ${sizing.verb}`; - return `Juda katta: kutilgan ${(_d = issue2.origin) != null ? _d : "qiymat"} ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Juda kichik: kutilgan ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit} ${sizing.verb}`; - } - return `Juda kichik: kutilgan ${issue2.origin} ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Noto\u2018g\u2018ri satr: "${_issue.prefix}" bilan boshlanishi kerak`; - if (_issue.format === "ends_with") - return `Noto\u2018g\u2018ri satr: "${_issue.suffix}" bilan tugashi kerak`; - if (_issue.format === "includes") - return `Noto\u2018g\u2018ri satr: "${_issue.includes}" ni o\u2018z ichiga olishi kerak`; - if (_issue.format === "regex") - return `Noto\u2018g\u2018ri satr: ${_issue.pattern} shabloniga mos kelishi kerak`; - return `Noto\u2018g\u2018ri ${(_e = FormatDictionary[_issue.format]) != null ? _e : issue2.format}`; - } - case "not_multiple_of": - return `Noto\u2018g\u2018ri raqam: ${issue2.divisor} ning karralisi bo\u2018lishi kerak`; - case "unrecognized_keys": - return `Noma\u2019lum kalit${issue2.keys.length > 1 ? "lar" : ""}: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `${issue2.origin} dagi kalit noto\u2018g\u2018ri`; - case "invalid_union": - return "Noto\u2018g\u2018ri kirish"; - case "invalid_element": - return `${issue2.origin} da noto\u2018g\u2018ri qiymat`; - default: - return `Noto\u2018g\u2018ri kirish`; - } - }; -}; -function uz_default() { - return { - localeError: error46() - }; -} - -// node_modules/zod/v4/locales/vi.js -var error47 = () => { - const Sizable = { - string: { unit: "k\xFD t\u1EF1", verb: "c\xF3" }, - file: { unit: "byte", verb: "c\xF3" }, - array: { unit: "ph\u1EA7n t\u1EED", verb: "c\xF3" }, - set: { unit: "ph\u1EA7n t\u1EED", verb: "c\xF3" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u0111\u1EA7u v\xE0o", - email: "\u0111\u1ECBa ch\u1EC9 email", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ng\xE0y gi\u1EDD ISO", - date: "ng\xE0y ISO", - time: "gi\u1EDD ISO", - duration: "kho\u1EA3ng th\u1EDDi gian ISO", - ipv4: "\u0111\u1ECBa ch\u1EC9 IPv4", - ipv6: "\u0111\u1ECBa ch\u1EC9 IPv6", - cidrv4: "d\u1EA3i IPv4", - cidrv6: "d\u1EA3i IPv6", - base64: "chu\u1ED7i m\xE3 h\xF3a base64", - base64url: "chu\u1ED7i m\xE3 h\xF3a base64url", - json_string: "chu\u1ED7i JSON", - e164: "s\u1ED1 E.164", - jwt: "JWT", - template_literal: "\u0111\u1EA7u v\xE0o" - }; - const TypeDictionary = { - nan: "NaN", - number: "s\u1ED1", - array: "m\u1EA3ng" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i instanceof ${issue2.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${received}`; - } - return `\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${stringifyPrimitive(issue2.values[0])}`; - return `T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${(_c = issue2.origin) != null ? _c : "gi\xE1 tr\u1ECB"} ${sizing.verb} ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "ph\u1EA7n t\u1EED"}`; - return `Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${(_e = issue2.origin) != null ? _e : "gi\xE1 tr\u1ECB"} ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${issue2.origin} ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${_issue.suffix}"`; - if (_issue.format === "includes") - return `Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${_issue.includes}"`; - if (_issue.format === "regex") - return `Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${_issue.pattern}`; - return `${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format} kh\xF4ng h\u1EE3p l\u1EC7`; - } - case "not_multiple_of": - return `S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${issue2.divisor}`; - case "unrecognized_keys": - return `Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${issue2.origin}`; - case "invalid_union": - return "\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"; - case "invalid_element": - return `Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${issue2.origin}`; - default: - return `\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7`; - } - }; -}; -function vi_default() { - return { - localeError: error47() - }; -} - -// node_modules/zod/v4/locales/zh-CN.js -var error48 = () => { - const Sizable = { - string: { unit: "\u5B57\u7B26", verb: "\u5305\u542B" }, - file: { unit: "\u5B57\u8282", verb: "\u5305\u542B" }, - array: { unit: "\u9879", verb: "\u5305\u542B" }, - set: { unit: "\u9879", verb: "\u5305\u542B" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u8F93\u5165", - email: "\u7535\u5B50\u90AE\u4EF6", - url: "URL", - emoji: "\u8868\u60C5\u7B26\u53F7", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO\u65E5\u671F\u65F6\u95F4", - date: "ISO\u65E5\u671F", - time: "ISO\u65F6\u95F4", - duration: "ISO\u65F6\u957F", - ipv4: "IPv4\u5730\u5740", - ipv6: "IPv6\u5730\u5740", - cidrv4: "IPv4\u7F51\u6BB5", - cidrv6: "IPv6\u7F51\u6BB5", - base64: "base64\u7F16\u7801\u5B57\u7B26\u4E32", - base64url: "base64url\u7F16\u7801\u5B57\u7B26\u4E32", - json_string: "JSON\u5B57\u7B26\u4E32", - e164: "E.164\u53F7\u7801", - jwt: "JWT", - template_literal: "\u8F93\u5165" - }; - const TypeDictionary = { - nan: "NaN", - number: "\u6570\u5B57", - array: "\u6570\u7EC4", - null: "\u7A7A\u503C(null)" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B instanceof ${issue2.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${received}`; - } - return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${stringifyPrimitive(issue2.values[0])}`; - return `\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${(_c = issue2.origin) != null ? _c : "\u503C"} ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "\u4E2A\u5143\u7D20"}`; - return `\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${(_e = issue2.origin) != null ? _e : "\u503C"} ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${issue2.origin} ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${issue2.origin} ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${_issue.prefix}" \u5F00\u5934`; - if (_issue.format === "ends_with") - return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${_issue.suffix}" \u7ED3\u5C3E`; - if (_issue.format === "includes") - return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${_issue.includes}"`; - if (_issue.format === "regex") - return `\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${_issue.pattern}`; - return `\u65E0\u6548${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${issue2.divisor} \u7684\u500D\u6570`; - case "unrecognized_keys": - return `\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `${issue2.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`; - case "invalid_union": - return "\u65E0\u6548\u8F93\u5165"; - case "invalid_element": - return `${issue2.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`; - default: - return `\u65E0\u6548\u8F93\u5165`; - } - }; -}; -function zh_CN_default() { - return { - localeError: error48() - }; -} - -// node_modules/zod/v4/locales/zh-TW.js -var error49 = () => { - const Sizable = { - string: { unit: "\u5B57\u5143", verb: "\u64C1\u6709" }, - file: { unit: "\u4F4D\u5143\u7D44", verb: "\u64C1\u6709" }, - array: { unit: "\u9805\u76EE", verb: "\u64C1\u6709" }, - set: { unit: "\u9805\u76EE", verb: "\u64C1\u6709" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u8F38\u5165", - email: "\u90F5\u4EF6\u5730\u5740", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "ISO \u65E5\u671F\u6642\u9593", - date: "ISO \u65E5\u671F", - time: "ISO \u6642\u9593", - duration: "ISO \u671F\u9593", - ipv4: "IPv4 \u4F4D\u5740", - ipv6: "IPv6 \u4F4D\u5740", - cidrv4: "IPv4 \u7BC4\u570D", - cidrv6: "IPv6 \u7BC4\u570D", - base64: "base64 \u7DE8\u78BC\u5B57\u4E32", - base64url: "base64url \u7DE8\u78BC\u5B57\u4E32", - json_string: "JSON \u5B57\u4E32", - e164: "E.164 \u6578\u503C", - jwt: "JWT", - template_literal: "\u8F38\u5165" - }; - const TypeDictionary = { - nan: "NaN" - }; - return (issue2) => { - var _a5, _b, _c, _d, _e, _f; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA instanceof ${issue2.expected}\uFF0C\u4F46\u6536\u5230 ${received}`; - } - return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${expected}\uFF0C\u4F46\u6536\u5230 ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${stringifyPrimitive(issue2.values[0])}`; - return `\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${(_c = issue2.origin) != null ? _c : "\u503C"} \u61C9\u70BA ${adj}${issue2.maximum.toString()} ${(_d = sizing.unit) != null ? _d : "\u500B\u5143\u7D20"}`; - return `\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${(_e = issue2.origin) != null ? _e : "\u503C"} \u61C9\u70BA ${adj}${issue2.maximum.toString()}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) { - return `\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${issue2.origin} \u61C9\u70BA ${adj}${issue2.minimum.toString()} ${sizing.unit}`; - } - return `\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${issue2.origin} \u61C9\u70BA ${adj}${issue2.minimum.toString()}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") { - return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${_issue.prefix}" \u958B\u982D`; - } - if (_issue.format === "ends_with") - return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${_issue.suffix}" \u7D50\u5C3E`; - if (_issue.format === "includes") - return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${_issue.includes}"`; - if (_issue.format === "regex") - return `\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${_issue.pattern}`; - return `\u7121\u6548\u7684 ${(_f = FormatDictionary[_issue.format]) != null ? _f : issue2.format}`; - } - case "not_multiple_of": - return `\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${issue2.divisor} \u7684\u500D\u6578`; - case "unrecognized_keys": - return `\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${issue2.keys.length > 1 ? "\u5011" : ""}\uFF1A${joinValues(issue2.keys, "\u3001")}`; - case "invalid_key": - return `${issue2.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`; - case "invalid_union": - return "\u7121\u6548\u7684\u8F38\u5165\u503C"; - case "invalid_element": - return `${issue2.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`; - default: - return `\u7121\u6548\u7684\u8F38\u5165\u503C`; - } - }; -}; -function zh_TW_default() { - return { - localeError: error49() - }; -} - -// node_modules/zod/v4/locales/yo.js -var error50 = () => { - const Sizable = { - string: { unit: "\xE0mi", verb: "n\xED" }, - file: { unit: "bytes", verb: "n\xED" }, - array: { unit: "nkan", verb: "n\xED" }, - set: { unit: "nkan", verb: "n\xED" } - }; - function getSizing(origin) { - var _a5; - return (_a5 = Sizable[origin]) != null ? _a5 : null; - } - const FormatDictionary = { - regex: "\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9", - email: "\xE0d\xEDr\u1EB9\u0301s\xEC \xECm\u1EB9\u0301l\xEC", - url: "URL", - emoji: "emoji", - uuid: "UUID", - uuidv4: "UUIDv4", - uuidv6: "UUIDv6", - nanoid: "nanoid", - guid: "GUID", - cuid: "cuid", - cuid2: "cuid2", - ulid: "ULID", - xid: "XID", - ksuid: "KSUID", - datetime: "\xE0k\xF3k\xF2 ISO", - date: "\u1ECDj\u1ECD\u0301 ISO", - time: "\xE0k\xF3k\xF2 ISO", - duration: "\xE0k\xF3k\xF2 t\xF3 p\xE9 ISO", - ipv4: "\xE0d\xEDr\u1EB9\u0301s\xEC IPv4", - ipv6: "\xE0d\xEDr\u1EB9\u0301s\xEC IPv6", - cidrv4: "\xE0gb\xE8gb\xE8 IPv4", - cidrv6: "\xE0gb\xE8gb\xE8 IPv6", - base64: "\u1ECD\u0300r\u1ECD\u0300 t\xED a k\u1ECD\u0301 n\xED base64", - base64url: "\u1ECD\u0300r\u1ECD\u0300 base64url", - json_string: "\u1ECD\u0300r\u1ECD\u0300 JSON", - e164: "n\u1ECD\u0301mb\xE0 E.164", - jwt: "JWT", - template_literal: "\u1EB9\u0300r\u1ECD \xECb\xE1w\u1ECDl\xE9" - }; - const TypeDictionary = { - nan: "NaN", - number: "n\u1ECD\u0301mb\xE0", - array: "akop\u1ECD" - }; - return (issue2) => { - var _a5, _b, _c, _d; - switch (issue2.code) { - case "invalid_type": { - const expected = (_a5 = TypeDictionary[issue2.expected]) != null ? _a5 : issue2.expected; - const receivedType = parsedType(issue2.input); - const received = (_b = TypeDictionary[receivedType]) != null ? _b : receivedType; - if (/^[A-Z]/.test(issue2.expected)) { - return `\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi instanceof ${issue2.expected}, \xE0m\u1ECD\u0300 a r\xED ${received}`; - } - return `\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${expected}, \xE0m\u1ECD\u0300 a r\xED ${received}`; - } - case "invalid_value": - if (issue2.values.length === 1) - return `\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e: a n\xED l\xE1ti fi ${stringifyPrimitive(issue2.values[0])}`; - return `\xC0\u1E63\xE0y\xE0n a\u1E63\xEC\u1E63e: yan \u1ECD\u0300kan l\xE1ra ${joinValues(issue2.values, "|")}`; - case "too_big": { - const adj = issue2.inclusive ? "<=" : "<"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${(_c = issue2.origin) != null ? _c : "iye"} ${sizing.verb} ${adj}${issue2.maximum} ${sizing.unit}`; - return `T\xF3 p\u1ECD\u0300 j\xF9: a n\xED l\xE1ti j\u1EB9\u0301 ${adj}${issue2.maximum}`; - } - case "too_small": { - const adj = issue2.inclusive ? ">=" : ">"; - const sizing = getSizing(issue2.origin); - if (sizing) - return `K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 p\xE9 ${issue2.origin} ${sizing.verb} ${adj}${issue2.minimum} ${sizing.unit}`; - return `K\xE9r\xE9 ju: a n\xED l\xE1ti j\u1EB9\u0301 ${adj}${issue2.minimum}`; - } - case "invalid_format": { - const _issue = issue2; - if (_issue.format === "starts_with") - return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\u1EB9\u0300r\u1EB9\u0300 p\u1EB9\u0300l\xFA "${_issue.prefix}"`; - if (_issue.format === "ends_with") - return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 par\xED p\u1EB9\u0300l\xFA "${_issue.suffix}"`; - if (_issue.format === "includes") - return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 n\xED "${_issue.includes}"`; - if (_issue.format === "regex") - return `\u1ECC\u0300r\u1ECD\u0300 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 b\xE1 \xE0p\u1EB9\u1EB9r\u1EB9 mu ${_issue.pattern}`; - return `A\u1E63\xEC\u1E63e: ${(_d = FormatDictionary[_issue.format]) != null ? _d : issue2.format}`; - } - case "not_multiple_of": - return `N\u1ECD\u0301mb\xE0 a\u1E63\xEC\u1E63e: gb\u1ECD\u0301d\u1ECD\u0300 j\u1EB9\u0301 \xE8y\xE0 p\xEDp\xEDn ti ${issue2.divisor}`; - case "unrecognized_keys": - return `B\u1ECDt\xECn\xEC \xE0\xECm\u1ECD\u0300: ${joinValues(issue2.keys, ", ")}`; - case "invalid_key": - return `B\u1ECDt\xECn\xEC a\u1E63\xEC\u1E63e n\xEDn\xFA ${issue2.origin}`; - case "invalid_union": - return "\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"; - case "invalid_element": - return `Iye a\u1E63\xEC\u1E63e n\xEDn\xFA ${issue2.origin}`; - default: - return "\xCCb\xE1w\u1ECDl\xE9 a\u1E63\xEC\u1E63e"; - } - }; -}; -function yo_default() { - return { - localeError: error50() - }; -} - -// node_modules/zod/v4/core/registries.js -var _a3; -var $output = /* @__PURE__ */ Symbol("ZodOutput"); -var $input = /* @__PURE__ */ Symbol("ZodInput"); -var $ZodRegistry = class { - constructor() { - this._map = /* @__PURE__ */ new WeakMap(); - this._idmap = /* @__PURE__ */ new Map(); - } - add(schema, ..._meta) { - const meta3 = _meta[0]; - this._map.set(schema, meta3); - if (meta3 && typeof meta3 === "object" && "id" in meta3) { - this._idmap.set(meta3.id, schema); - } - return this; - } - clear() { - this._map = /* @__PURE__ */ new WeakMap(); - this._idmap = /* @__PURE__ */ new Map(); - return this; - } - remove(schema) { - const meta3 = this._map.get(schema); - if (meta3 && typeof meta3 === "object" && "id" in meta3) { - this._idmap.delete(meta3.id); - } - this._map.delete(schema); - return this; - } - get(schema) { - var _a5; - const p = schema._zod.parent; - if (p) { - const pm = __spreadValues({}, (_a5 = this.get(p)) != null ? _a5 : {}); - delete pm.id; - const f = __spreadValues(__spreadValues({}, pm), this._map.get(schema)); - return Object.keys(f).length ? f : void 0; - } - return this._map.get(schema); - } - has(schema) { - return this._map.has(schema); - } -}; -function registry() { - return new $ZodRegistry(); -} -var _a4; -(_a4 = (_a3 = globalThis).__zod_globalRegistry) != null ? _a4 : _a3.__zod_globalRegistry = registry(); -var globalRegistry = globalThis.__zod_globalRegistry; - -// node_modules/zod/v4/core/api.js -// @__NO_SIDE_EFFECTS__ -function _string(Class2, params) { - return new Class2(__spreadValues({ - type: "string" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _coercedString(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - coerce: true - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _email(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "email", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _guid(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "guid", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _uuid(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "uuid", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _uuidv4(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "uuid", - check: "string_format", - abort: false, - version: "v4" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _uuidv6(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "uuid", - check: "string_format", - abort: false, - version: "v6" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _uuidv7(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "uuid", - check: "string_format", - abort: false, - version: "v7" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _url(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "url", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _emoji2(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "emoji", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _nanoid(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "nanoid", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _cuid(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "cuid", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _cuid2(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "cuid2", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _ulid(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "ulid", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _xid(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "xid", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _ksuid(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "ksuid", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _ipv4(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "ipv4", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _ipv6(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "ipv6", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _mac(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "mac", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _cidrv4(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "cidrv4", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _cidrv6(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "cidrv6", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _base64(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "base64", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _base64url(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "base64url", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _e164(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "e164", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _jwt(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "jwt", - check: "string_format", - abort: false - }, normalizeParams(params))); -} -var TimePrecision = { - Any: null, - Minute: -1, - Second: 0, - Millisecond: 3, - Microsecond: 6 -}; -// @__NO_SIDE_EFFECTS__ -function _isoDateTime(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "datetime", - check: "string_format", - offset: false, - local: false, - precision: null - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _isoDate(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "date", - check: "string_format" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _isoTime(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "time", - check: "string_format", - precision: null - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _isoDuration(Class2, params) { - return new Class2(__spreadValues({ - type: "string", - format: "duration", - check: "string_format" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _number(Class2, params) { - return new Class2(__spreadValues({ - type: "number", - checks: [] - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _coercedNumber(Class2, params) { - return new Class2(__spreadValues({ - type: "number", - coerce: true, - checks: [] - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _int(Class2, params) { - return new Class2(__spreadValues({ - type: "number", - check: "number_format", - abort: false, - format: "safeint" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _float32(Class2, params) { - return new Class2(__spreadValues({ - type: "number", - check: "number_format", - abort: false, - format: "float32" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _float64(Class2, params) { - return new Class2(__spreadValues({ - type: "number", - check: "number_format", - abort: false, - format: "float64" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _int32(Class2, params) { - return new Class2(__spreadValues({ - type: "number", - check: "number_format", - abort: false, - format: "int32" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _uint32(Class2, params) { - return new Class2(__spreadValues({ - type: "number", - check: "number_format", - abort: false, - format: "uint32" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _boolean(Class2, params) { - return new Class2(__spreadValues({ - type: "boolean" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _coercedBoolean(Class2, params) { - return new Class2(__spreadValues({ - type: "boolean", - coerce: true - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _bigint(Class2, params) { - return new Class2(__spreadValues({ - type: "bigint" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _coercedBigint(Class2, params) { - return new Class2(__spreadValues({ - type: "bigint", - coerce: true - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _int64(Class2, params) { - return new Class2(__spreadValues({ - type: "bigint", - check: "bigint_format", - abort: false, - format: "int64" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _uint64(Class2, params) { - return new Class2(__spreadValues({ - type: "bigint", - check: "bigint_format", - abort: false, - format: "uint64" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _symbol(Class2, params) { - return new Class2(__spreadValues({ - type: "symbol" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _undefined2(Class2, params) { - return new Class2(__spreadValues({ - type: "undefined" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _null2(Class2, params) { - return new Class2(__spreadValues({ - type: "null" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _any(Class2) { - return new Class2({ - type: "any" - }); -} -// @__NO_SIDE_EFFECTS__ -function _unknown(Class2) { - return new Class2({ - type: "unknown" - }); -} -// @__NO_SIDE_EFFECTS__ -function _never(Class2, params) { - return new Class2(__spreadValues({ - type: "never" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _void(Class2, params) { - return new Class2(__spreadValues({ - type: "void" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _date(Class2, params) { - return new Class2(__spreadValues({ - type: "date" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _coercedDate(Class2, params) { - return new Class2(__spreadValues({ - type: "date", - coerce: true - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _nan(Class2, params) { - return new Class2(__spreadValues({ - type: "nan" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _lt(value, params) { - return new $ZodCheckLessThan(__spreadProps(__spreadValues({ - check: "less_than" - }, normalizeParams(params)), { - value, - inclusive: false - })); -} -// @__NO_SIDE_EFFECTS__ -function _lte(value, params) { - return new $ZodCheckLessThan(__spreadProps(__spreadValues({ - check: "less_than" - }, normalizeParams(params)), { - value, - inclusive: true - })); -} -// @__NO_SIDE_EFFECTS__ -function _gt(value, params) { - return new $ZodCheckGreaterThan(__spreadProps(__spreadValues({ - check: "greater_than" - }, normalizeParams(params)), { - value, - inclusive: false - })); -} -// @__NO_SIDE_EFFECTS__ -function _gte(value, params) { - return new $ZodCheckGreaterThan(__spreadProps(__spreadValues({ - check: "greater_than" - }, normalizeParams(params)), { - value, - inclusive: true - })); -} -// @__NO_SIDE_EFFECTS__ -function _positive(params) { - return /* @__PURE__ */ _gt(0, params); -} -// @__NO_SIDE_EFFECTS__ -function _negative(params) { - return /* @__PURE__ */ _lt(0, params); -} -// @__NO_SIDE_EFFECTS__ -function _nonpositive(params) { - return /* @__PURE__ */ _lte(0, params); -} -// @__NO_SIDE_EFFECTS__ -function _nonnegative(params) { - return /* @__PURE__ */ _gte(0, params); -} -// @__NO_SIDE_EFFECTS__ -function _multipleOf(value, params) { - return new $ZodCheckMultipleOf(__spreadProps(__spreadValues({ - check: "multiple_of" - }, normalizeParams(params)), { - value - })); -} -// @__NO_SIDE_EFFECTS__ -function _maxSize(maximum, params) { - return new $ZodCheckMaxSize(__spreadProps(__spreadValues({ - check: "max_size" - }, normalizeParams(params)), { - maximum - })); -} -// @__NO_SIDE_EFFECTS__ -function _minSize(minimum, params) { - return new $ZodCheckMinSize(__spreadProps(__spreadValues({ - check: "min_size" - }, normalizeParams(params)), { - minimum - })); -} -// @__NO_SIDE_EFFECTS__ -function _size(size, params) { - return new $ZodCheckSizeEquals(__spreadProps(__spreadValues({ - check: "size_equals" - }, normalizeParams(params)), { - size - })); -} -// @__NO_SIDE_EFFECTS__ -function _maxLength(maximum, params) { - const ch = new $ZodCheckMaxLength(__spreadProps(__spreadValues({ - check: "max_length" - }, normalizeParams(params)), { - maximum - })); - return ch; -} -// @__NO_SIDE_EFFECTS__ -function _minLength(minimum, params) { - return new $ZodCheckMinLength(__spreadProps(__spreadValues({ - check: "min_length" - }, normalizeParams(params)), { - minimum - })); -} -// @__NO_SIDE_EFFECTS__ -function _length(length, params) { - return new $ZodCheckLengthEquals(__spreadProps(__spreadValues({ - check: "length_equals" - }, normalizeParams(params)), { - length - })); -} -// @__NO_SIDE_EFFECTS__ -function _regex(pattern, params) { - return new $ZodCheckRegex(__spreadProps(__spreadValues({ - check: "string_format", - format: "regex" - }, normalizeParams(params)), { - pattern - })); -} -// @__NO_SIDE_EFFECTS__ -function _lowercase(params) { - return new $ZodCheckLowerCase(__spreadValues({ - check: "string_format", - format: "lowercase" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _uppercase(params) { - return new $ZodCheckUpperCase(__spreadValues({ - check: "string_format", - format: "uppercase" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _includes(includes, params) { - return new $ZodCheckIncludes(__spreadProps(__spreadValues({ - check: "string_format", - format: "includes" - }, normalizeParams(params)), { - includes - })); -} -// @__NO_SIDE_EFFECTS__ -function _startsWith(prefix, params) { - return new $ZodCheckStartsWith(__spreadProps(__spreadValues({ - check: "string_format", - format: "starts_with" - }, normalizeParams(params)), { - prefix - })); -} -// @__NO_SIDE_EFFECTS__ -function _endsWith(suffix, params) { - return new $ZodCheckEndsWith(__spreadProps(__spreadValues({ - check: "string_format", - format: "ends_with" - }, normalizeParams(params)), { - suffix - })); -} -// @__NO_SIDE_EFFECTS__ -function _property(property, schema, params) { - return new $ZodCheckProperty(__spreadValues({ - check: "property", - property, - schema - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _mime(types2, params) { - return new $ZodCheckMimeType(__spreadValues({ - check: "mime_type", - mime: types2 - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _overwrite(tx) { - return new $ZodCheckOverwrite({ - check: "overwrite", - tx - }); -} -// @__NO_SIDE_EFFECTS__ -function _normalize(form) { - return /* @__PURE__ */ _overwrite((input) => input.normalize(form)); -} -// @__NO_SIDE_EFFECTS__ -function _trim() { - return /* @__PURE__ */ _overwrite((input) => input.trim()); -} -// @__NO_SIDE_EFFECTS__ -function _toLowerCase() { - return /* @__PURE__ */ _overwrite((input) => input.toLowerCase()); -} -// @__NO_SIDE_EFFECTS__ -function _toUpperCase() { - return /* @__PURE__ */ _overwrite((input) => input.toUpperCase()); -} -// @__NO_SIDE_EFFECTS__ -function _slugify() { - return /* @__PURE__ */ _overwrite((input) => slugify(input)); -} -// @__NO_SIDE_EFFECTS__ -function _array(Class2, element, params) { - return new Class2(__spreadValues({ - type: "array", - element - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _union(Class2, options, params) { - return new Class2(__spreadValues({ - type: "union", - options - }, normalizeParams(params))); -} -function _xor(Class2, options, params) { - return new Class2(__spreadValues({ - type: "union", - options, - inclusive: false - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _discriminatedUnion(Class2, discriminator, options, params) { - return new Class2(__spreadValues({ - type: "union", - options, - discriminator - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _intersection(Class2, left, right) { - return new Class2({ - type: "intersection", - left, - right - }); -} -// @__NO_SIDE_EFFECTS__ -function _tuple(Class2, items, _paramsOrRest, _params) { - const hasRest = _paramsOrRest instanceof $ZodType; - const params = hasRest ? _params : _paramsOrRest; - const rest = hasRest ? _paramsOrRest : null; - return new Class2(__spreadValues({ - type: "tuple", - items, - rest - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _record(Class2, keyType, valueType, params) { - return new Class2(__spreadValues({ - type: "record", - keyType, - valueType - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _map(Class2, keyType, valueType, params) { - return new Class2(__spreadValues({ - type: "map", - keyType, - valueType - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _set(Class2, valueType, params) { - return new Class2(__spreadValues({ - type: "set", - valueType - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _enum(Class2, values, params) { - const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values; - return new Class2(__spreadValues({ - type: "enum", - entries - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _nativeEnum(Class2, entries, params) { - return new Class2(__spreadValues({ - type: "enum", - entries - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _literal(Class2, value, params) { - return new Class2(__spreadValues({ - type: "literal", - values: Array.isArray(value) ? value : [value] - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _file(Class2, params) { - return new Class2(__spreadValues({ - type: "file" - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _transform(Class2, fn) { - return new Class2({ - type: "transform", - transform: fn - }); -} -// @__NO_SIDE_EFFECTS__ -function _optional(Class2, innerType) { - return new Class2({ - type: "optional", - innerType - }); -} -// @__NO_SIDE_EFFECTS__ -function _nullable(Class2, innerType) { - return new Class2({ - type: "nullable", - innerType - }); -} -// @__NO_SIDE_EFFECTS__ -function _default(Class2, innerType, defaultValue) { - return new Class2({ - type: "default", - innerType, - get defaultValue() { - return typeof defaultValue === "function" ? defaultValue() : shallowClone(defaultValue); - } - }); -} -// @__NO_SIDE_EFFECTS__ -function _nonoptional(Class2, innerType, params) { - return new Class2(__spreadValues({ - type: "nonoptional", - innerType - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _success(Class2, innerType) { - return new Class2({ - type: "success", - innerType - }); -} -// @__NO_SIDE_EFFECTS__ -function _catch(Class2, innerType, catchValue) { - return new Class2({ - type: "catch", - innerType, - catchValue: typeof catchValue === "function" ? catchValue : () => catchValue - }); -} -// @__NO_SIDE_EFFECTS__ -function _pipe(Class2, in_, out) { - return new Class2({ - type: "pipe", - in: in_, - out - }); -} -// @__NO_SIDE_EFFECTS__ -function _readonly(Class2, innerType) { - return new Class2({ - type: "readonly", - innerType - }); -} -// @__NO_SIDE_EFFECTS__ -function _templateLiteral(Class2, parts, params) { - return new Class2(__spreadValues({ - type: "template_literal", - parts - }, normalizeParams(params))); -} -// @__NO_SIDE_EFFECTS__ -function _lazy(Class2, getter) { - return new Class2({ - type: "lazy", - getter - }); -} -// @__NO_SIDE_EFFECTS__ -function _promise(Class2, innerType) { - return new Class2({ - type: "promise", - innerType - }); -} -// @__NO_SIDE_EFFECTS__ -function _custom(Class2, fn, _params) { - var _a5; - const norm = normalizeParams(_params); - (_a5 = norm.abort) != null ? _a5 : norm.abort = true; - const schema = new Class2(__spreadValues({ - type: "custom", - check: "custom", - fn - }, norm)); - return schema; -} -// @__NO_SIDE_EFFECTS__ -function _refine(Class2, fn, _params) { - const schema = new Class2(__spreadValues({ - type: "custom", - check: "custom", - fn - }, normalizeParams(_params))); - return schema; -} -// @__NO_SIDE_EFFECTS__ -function _superRefine(fn, params) { - const ch = /* @__PURE__ */ _check((payload) => { - payload.addIssue = (issue2) => { - var _a5, _b, _c, _d; - if (typeof issue2 === "string") { - payload.issues.push(issue(issue2, payload.value, ch._zod.def)); - } else { - const _issue = issue2; - if (_issue.fatal) - _issue.continue = false; - (_a5 = _issue.code) != null ? _a5 : _issue.code = "custom"; - (_b = _issue.input) != null ? _b : _issue.input = payload.value; - (_c = _issue.inst) != null ? _c : _issue.inst = ch; - (_d = _issue.continue) != null ? _d : _issue.continue = !ch._zod.def.abort; - payload.issues.push(issue(_issue)); - } - }; - return fn(payload.value, payload); - }, params); - return ch; -} -// @__NO_SIDE_EFFECTS__ -function _check(fn, params) { - const ch = new $ZodCheck(__spreadValues({ - check: "custom" - }, normalizeParams(params))); - ch._zod.check = fn; - return ch; -} -// @__NO_SIDE_EFFECTS__ -function describe(description) { - const ch = new $ZodCheck({ check: "describe" }); - ch._zod.onattach = [ - (inst) => { - var _a5; - const existing = (_a5 = globalRegistry.get(inst)) != null ? _a5 : {}; - globalRegistry.add(inst, __spreadProps(__spreadValues({}, existing), { description })); - } - ]; - ch._zod.check = () => { - }; - return ch; -} -// @__NO_SIDE_EFFECTS__ -function meta(metadata) { - const ch = new $ZodCheck({ check: "meta" }); - ch._zod.onattach = [ - (inst) => { - var _a5; - const existing = (_a5 = globalRegistry.get(inst)) != null ? _a5 : {}; - globalRegistry.add(inst, __spreadValues(__spreadValues({}, existing), metadata)); - } - ]; - ch._zod.check = () => { - }; - return ch; -} -// @__NO_SIDE_EFFECTS__ -function _stringbool(Classes, _params) { - var _a5, _b, _c, _d, _e; - const params = normalizeParams(_params); - let truthyArray = (_a5 = params.truthy) != null ? _a5 : ["true", "1", "yes", "on", "y", "enabled"]; - let falsyArray = (_b = params.falsy) != null ? _b : ["false", "0", "no", "off", "n", "disabled"]; - if (params.case !== "sensitive") { - truthyArray = truthyArray.map((v) => typeof v === "string" ? v.toLowerCase() : v); - falsyArray = falsyArray.map((v) => typeof v === "string" ? v.toLowerCase() : v); - } - const truthySet = new Set(truthyArray); - const falsySet = new Set(falsyArray); - const _Codec = (_c = Classes.Codec) != null ? _c : $ZodCodec; - const _Boolean = (_d = Classes.Boolean) != null ? _d : $ZodBoolean; - const _String = (_e = Classes.String) != null ? _e : $ZodString; - const stringSchema = new _String({ type: "string", error: params.error }); - const booleanSchema = new _Boolean({ type: "boolean", error: params.error }); - const codec2 = new _Codec({ - type: "pipe", - in: stringSchema, - out: booleanSchema, - transform: ((input, payload) => { - let data2 = input; - if (params.case !== "sensitive") - data2 = data2.toLowerCase(); - if (truthySet.has(data2)) { - return true; - } else if (falsySet.has(data2)) { - return false; - } else { - payload.issues.push({ - code: "invalid_value", - expected: "stringbool", - values: [...truthySet, ...falsySet], - input: payload.value, - inst: codec2, - continue: false - }); - return {}; - } - }), - reverseTransform: ((input, _payload) => { - if (input === true) { - return truthyArray[0] || "true"; - } else { - return falsyArray[0] || "false"; - } - }), - error: params.error - }); - return codec2; -} -// @__NO_SIDE_EFFECTS__ -function _stringFormat(Class2, format, fnOrRegex, _params = {}) { - const params = normalizeParams(_params); - const def = __spreadValues(__spreadProps(__spreadValues({}, normalizeParams(_params)), { - check: "string_format", - type: "string", - format, - fn: typeof fnOrRegex === "function" ? fnOrRegex : (val) => fnOrRegex.test(val) - }), params); - if (fnOrRegex instanceof RegExp) { - def.pattern = fnOrRegex; - } - const inst = new Class2(def); - return inst; -} - -// node_modules/zod/v4/core/to-json-schema.js -function initializeContext(params) { - var _a5, _b, _c, _d, _e, _f, _g, _h, _i; - let target = (_a5 = params == null ? void 0 : params.target) != null ? _a5 : "draft-2020-12"; - if (target === "draft-4") - target = "draft-04"; - if (target === "draft-7") - target = "draft-07"; - return { - processors: (_b = params.processors) != null ? _b : {}, - metadataRegistry: (_c = params == null ? void 0 : params.metadata) != null ? _c : globalRegistry, - target, - unrepresentable: (_d = params == null ? void 0 : params.unrepresentable) != null ? _d : "throw", - override: (_e = params == null ? void 0 : params.override) != null ? _e : (() => { - }), - io: (_f = params == null ? void 0 : params.io) != null ? _f : "output", - counter: 0, - seen: /* @__PURE__ */ new Map(), - cycles: (_g = params == null ? void 0 : params.cycles) != null ? _g : "ref", - reused: (_h = params == null ? void 0 : params.reused) != null ? _h : "inline", - external: (_i = params == null ? void 0 : params.external) != null ? _i : void 0 - }; -} -function process(schema, ctx, _params = { path: [], schemaPath: [] }) { - var _a6, _b, _c; - var _a5; - const def = schema._zod.def; - const seen = ctx.seen.get(schema); - if (seen) { - seen.count++; - const isCycle = _params.schemaPath.includes(schema); - if (isCycle) { - seen.cycle = _params.path; - } - return seen.schema; - } - const result = { schema: {}, count: 1, cycle: void 0, path: _params.path }; - ctx.seen.set(schema, result); - const overrideSchema = (_b = (_a6 = schema._zod).toJSONSchema) == null ? void 0 : _b.call(_a6); - if (overrideSchema) { - result.schema = overrideSchema; - } else { - const params = __spreadProps(__spreadValues({}, _params), { - schemaPath: [..._params.schemaPath, schema], - path: _params.path - }); - if (schema._zod.processJSONSchema) { - schema._zod.processJSONSchema(ctx, result.schema, params); - } else { - const _json = result.schema; - const processor = ctx.processors[def.type]; - if (!processor) { - throw new Error(`[toJSONSchema]: Non-representable type encountered: ${def.type}`); - } - processor(schema, ctx, _json, params); - } - const parent = schema._zod.parent; - if (parent) { - if (!result.ref) - result.ref = parent; - process(parent, ctx, params); - ctx.seen.get(parent).isParent = true; - } - } - const meta3 = ctx.metadataRegistry.get(schema); - if (meta3) - Object.assign(result.schema, meta3); - if (ctx.io === "input" && isTransforming(schema)) { - delete result.schema.examples; - delete result.schema.default; - } - if (ctx.io === "input" && "_prefault" in result.schema) - (_c = (_a5 = result.schema).default) != null ? _c : _a5.default = result.schema._prefault; - delete result.schema._prefault; - const _result = ctx.seen.get(schema); - return _result.schema; -} -function extractDefs(ctx, schema) { - var _a5, _b, _c, _d; - const root = ctx.seen.get(schema); - if (!root) - throw new Error("Unprocessed schema. This is a bug in Zod."); - const idToSchema = /* @__PURE__ */ new Map(); - for (const entry of ctx.seen.entries()) { - const id = (_a5 = ctx.metadataRegistry.get(entry[0])) == null ? void 0 : _a5.id; - if (id) { - const existing = idToSchema.get(id); - if (existing && existing !== entry[0]) { - throw new Error(`Duplicate schema id "${id}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`); - } - idToSchema.set(id, entry[0]); - } - } - const makeURI = (entry) => { - var _a6, _b2, _c2, _d2, _e; - const defsSegment = ctx.target === "draft-2020-12" ? "$defs" : "definitions"; - if (ctx.external) { - const externalId = (_a6 = ctx.external.registry.get(entry[0])) == null ? void 0 : _a6.id; - const uriGenerator = (_b2 = ctx.external.uri) != null ? _b2 : ((id2) => id2); - if (externalId) { - return { ref: uriGenerator(externalId) }; - } - const id = (_d2 = (_c2 = entry[1].defId) != null ? _c2 : entry[1].schema.id) != null ? _d2 : `schema${ctx.counter++}`; - entry[1].defId = id; - return { defId: id, ref: `${uriGenerator("__shared")}#/${defsSegment}/${id}` }; - } - if (entry[1] === root) { - return { ref: "#" }; - } - const uriPrefix = `#`; - const defUriPrefix = `${uriPrefix}/${defsSegment}/`; - const defId = (_e = entry[1].schema.id) != null ? _e : `__schema${ctx.counter++}`; - return { defId, ref: defUriPrefix + defId }; - }; - const extractToDef = (entry) => { - if (entry[1].schema.$ref) { - return; - } - const seen = entry[1]; - const { ref: ref2, defId } = makeURI(entry); - seen.def = __spreadValues({}, seen.schema); - if (defId) - seen.defId = defId; - const schema2 = seen.schema; - for (const key in schema2) { - delete schema2[key]; - } - schema2.$ref = ref2; - }; - if (ctx.cycles === "throw") { - for (const entry of ctx.seen.entries()) { - const seen = entry[1]; - if (seen.cycle) { - throw new Error(`Cycle detected: #/${(_b = seen.cycle) == null ? void 0 : _b.join("/")}/ - -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`); - } - } - } - for (const entry of ctx.seen.entries()) { - const seen = entry[1]; - if (schema === entry[0]) { - extractToDef(entry); - continue; - } - if (ctx.external) { - const ext = (_c = ctx.external.registry.get(entry[0])) == null ? void 0 : _c.id; - if (schema !== entry[0] && ext) { - extractToDef(entry); - continue; - } - } - const id = (_d = ctx.metadataRegistry.get(entry[0])) == null ? void 0 : _d.id; - if (id) { - extractToDef(entry); - continue; - } - if (seen.cycle) { - extractToDef(entry); - continue; - } - if (seen.count > 1) { - if (ctx.reused === "ref") { - extractToDef(entry); - continue; - } - } - } -} -function finalize(ctx, schema) { - var _a5, _b, _c, _d, _e, _f; - const root = ctx.seen.get(schema); - if (!root) - throw new Error("Unprocessed schema. This is a bug in Zod."); - const flattenRef = (zodSchema) => { - var _a6, _b2, _c2; - const seen = ctx.seen.get(zodSchema); - if (seen.ref === null) - return; - const schema2 = (_a6 = seen.def) != null ? _a6 : seen.schema; - const _cached = __spreadValues({}, schema2); - const ref2 = seen.ref; - seen.ref = null; - if (ref2) { - flattenRef(ref2); - const refSeen = ctx.seen.get(ref2); - const refSchema = refSeen.schema; - if (refSchema.$ref && (ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0")) { - schema2.allOf = (_b2 = schema2.allOf) != null ? _b2 : []; - schema2.allOf.push(refSchema); - } else { - Object.assign(schema2, refSchema); - } - Object.assign(schema2, _cached); - const isParentRef = zodSchema._zod.parent === ref2; - if (isParentRef) { - for (const key in schema2) { - if (key === "$ref" || key === "allOf") - continue; - if (!(key in _cached)) { - delete schema2[key]; - } - } - } - if (refSchema.$ref && refSeen.def) { - for (const key in schema2) { - if (key === "$ref" || key === "allOf") - continue; - if (key in refSeen.def && JSON.stringify(schema2[key]) === JSON.stringify(refSeen.def[key])) { - delete schema2[key]; - } - } - } - } - const parent = zodSchema._zod.parent; - if (parent && parent !== ref2) { - flattenRef(parent); - const parentSeen = ctx.seen.get(parent); - if (parentSeen == null ? void 0 : parentSeen.schema.$ref) { - schema2.$ref = parentSeen.schema.$ref; - if (parentSeen.def) { - for (const key in schema2) { - if (key === "$ref" || key === "allOf") - continue; - if (key in parentSeen.def && JSON.stringify(schema2[key]) === JSON.stringify(parentSeen.def[key])) { - delete schema2[key]; - } - } - } - } - } - ctx.override({ - zodSchema, - jsonSchema: schema2, - path: (_c2 = seen.path) != null ? _c2 : [] - }); - }; - for (const entry of [...ctx.seen.entries()].reverse()) { - flattenRef(entry[0]); - } - const result = {}; - if (ctx.target === "draft-2020-12") { - result.$schema = "https://json-schema.org/draft/2020-12/schema"; - } else if (ctx.target === "draft-07") { - result.$schema = "http://json-schema.org/draft-07/schema#"; - } else if (ctx.target === "draft-04") { - result.$schema = "http://json-schema.org/draft-04/schema#"; - } else if (ctx.target === "openapi-3.0") { - } else { - } - if ((_a5 = ctx.external) == null ? void 0 : _a5.uri) { - const id = (_b = ctx.external.registry.get(schema)) == null ? void 0 : _b.id; - if (!id) - throw new Error("Schema is missing an `id` property"); - result.$id = ctx.external.uri(id); - } - Object.assign(result, (_c = root.def) != null ? _c : root.schema); - const rootMetaId = (_d = ctx.metadataRegistry.get(schema)) == null ? void 0 : _d.id; - if (rootMetaId !== void 0 && result.id === rootMetaId) - delete result.id; - const defs = (_f = (_e = ctx.external) == null ? void 0 : _e.defs) != null ? _f : {}; - for (const entry of ctx.seen.entries()) { - const seen = entry[1]; - if (seen.def && seen.defId) { - if (seen.def.id === seen.defId) - delete seen.def.id; - defs[seen.defId] = seen.def; - } - } - if (ctx.external) { - } else { - if (Object.keys(defs).length > 0) { - if (ctx.target === "draft-2020-12") { - result.$defs = defs; - } else { - result.definitions = defs; - } - } - } - try { - const finalized = JSON.parse(JSON.stringify(result)); - Object.defineProperty(finalized, "~standard", { - value: __spreadProps(__spreadValues({}, schema["~standard"]), { - jsonSchema: { - input: createStandardJSONSchemaMethod(schema, "input", ctx.processors), - output: createStandardJSONSchemaMethod(schema, "output", ctx.processors) - } - }), - enumerable: false, - writable: false - }); - return finalized; - } catch (_err) { - throw new Error("Error converting schema to JSON."); - } -} -function isTransforming(_schema, _ctx) { - const ctx = _ctx != null ? _ctx : { seen: /* @__PURE__ */ new Set() }; - if (ctx.seen.has(_schema)) - return false; - ctx.seen.add(_schema); - const def = _schema._zod.def; - if (def.type === "transform") - return true; - if (def.type === "array") - return isTransforming(def.element, ctx); - if (def.type === "set") - return isTransforming(def.valueType, ctx); - if (def.type === "lazy") - return isTransforming(def.getter(), ctx); - if (def.type === "promise" || def.type === "optional" || def.type === "nonoptional" || def.type === "nullable" || def.type === "readonly" || def.type === "default" || def.type === "prefault") { - return isTransforming(def.innerType, ctx); - } - if (def.type === "intersection") { - return isTransforming(def.left, ctx) || isTransforming(def.right, ctx); - } - if (def.type === "record" || def.type === "map") { - return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx); - } - if (def.type === "pipe") { - if (_schema._zod.traits.has("$ZodCodec")) - return true; - return isTransforming(def.in, ctx) || isTransforming(def.out, ctx); - } - if (def.type === "object") { - for (const key in def.shape) { - if (isTransforming(def.shape[key], ctx)) - return true; - } - return false; - } - if (def.type === "union") { - for (const option of def.options) { - if (isTransforming(option, ctx)) - return true; - } - return false; - } - if (def.type === "tuple") { - for (const item of def.items) { - if (isTransforming(item, ctx)) - return true; - } - if (def.rest && isTransforming(def.rest, ctx)) - return true; - return false; - } - return false; -} -var createToJSONSchemaMethod = (schema, processors = {}) => (params) => { - const ctx = initializeContext(__spreadProps(__spreadValues({}, params), { processors })); - process(schema, ctx); - extractDefs(ctx, schema); - return finalize(ctx, schema); -}; -var createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => { - const { libraryOptions, target } = params != null ? params : {}; - const ctx = initializeContext(__spreadProps(__spreadValues({}, libraryOptions != null ? libraryOptions : {}), { target, io, processors })); - process(schema, ctx); - extractDefs(ctx, schema); - return finalize(ctx, schema); -}; - -// node_modules/zod/v4/core/json-schema-processors.js -var formatMap = { - guid: "uuid", - url: "uri", - datetime: "date-time", - json_string: "json-string", - regex: "" - // do not set -}; -var stringProcessor = (schema, ctx, _json, _params) => { - var _a5; - const json2 = _json; - json2.type = "string"; - const { minimum, maximum, format, patterns, contentEncoding } = schema._zod.bag; - if (typeof minimum === "number") - json2.minLength = minimum; - if (typeof maximum === "number") - json2.maxLength = maximum; - if (format) { - json2.format = (_a5 = formatMap[format]) != null ? _a5 : format; - if (json2.format === "") - delete json2.format; - if (format === "time") { - delete json2.format; - } - } - if (contentEncoding) - json2.contentEncoding = contentEncoding; - if (patterns && patterns.size > 0) { - const regexes = [...patterns]; - if (regexes.length === 1) - json2.pattern = regexes[0].source; - else if (regexes.length > 1) { - json2.allOf = [ - ...regexes.map((regex) => __spreadProps(__spreadValues({}, ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0" ? { type: "string" } : {}), { - pattern: regex.source - })) - ]; - } - } -}; -var numberProcessor = (schema, ctx, _json, _params) => { - const json2 = _json; - const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag; - if (typeof format === "string" && format.includes("int")) - json2.type = "integer"; - else - json2.type = "number"; - const exMin = typeof exclusiveMinimum === "number" && exclusiveMinimum >= (minimum != null ? minimum : Number.NEGATIVE_INFINITY); - const exMax = typeof exclusiveMaximum === "number" && exclusiveMaximum <= (maximum != null ? maximum : Number.POSITIVE_INFINITY); - const legacy = ctx.target === "draft-04" || ctx.target === "openapi-3.0"; - if (exMin) { - if (legacy) { - json2.minimum = exclusiveMinimum; - json2.exclusiveMinimum = true; - } else { - json2.exclusiveMinimum = exclusiveMinimum; - } - } else if (typeof minimum === "number") { - json2.minimum = minimum; - } - if (exMax) { - if (legacy) { - json2.maximum = exclusiveMaximum; - json2.exclusiveMaximum = true; - } else { - json2.exclusiveMaximum = exclusiveMaximum; - } - } else if (typeof maximum === "number") { - json2.maximum = maximum; - } - if (typeof multipleOf === "number") - json2.multipleOf = multipleOf; -}; -var booleanProcessor = (_schema, _ctx, json2, _params) => { - json2.type = "boolean"; -}; -var bigintProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("BigInt cannot be represented in JSON Schema"); - } -}; -var symbolProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Symbols cannot be represented in JSON Schema"); - } -}; -var nullProcessor = (_schema, ctx, json2, _params) => { - if (ctx.target === "openapi-3.0") { - json2.type = "string"; - json2.nullable = true; - json2.enum = [null]; - } else { - json2.type = "null"; - } -}; -var undefinedProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Undefined cannot be represented in JSON Schema"); - } -}; -var voidProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Void cannot be represented in JSON Schema"); - } -}; -var neverProcessor = (_schema, _ctx, json2, _params) => { - json2.not = {}; -}; -var anyProcessor = (_schema, _ctx, _json, _params) => { -}; -var unknownProcessor = (_schema, _ctx, _json, _params) => { -}; -var dateProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Date cannot be represented in JSON Schema"); - } -}; -var enumProcessor = (schema, _ctx, json2, _params) => { - const def = schema._zod.def; - const values = getEnumValues(def.entries); - if (values.every((v) => typeof v === "number")) - json2.type = "number"; - if (values.every((v) => typeof v === "string")) - json2.type = "string"; - json2.enum = values; -}; -var literalProcessor = (schema, ctx, json2, _params) => { - const def = schema._zod.def; - const vals = []; - for (const val of def.values) { - if (val === void 0) { - if (ctx.unrepresentable === "throw") { - throw new Error("Literal `undefined` cannot be represented in JSON Schema"); - } else { - } - } else if (typeof val === "bigint") { - if (ctx.unrepresentable === "throw") { - throw new Error("BigInt literals cannot be represented in JSON Schema"); - } else { - vals.push(Number(val)); - } - } else { - vals.push(val); - } - } - if (vals.length === 0) { - } else if (vals.length === 1) { - const val = vals[0]; - json2.type = val === null ? "null" : typeof val; - if (ctx.target === "draft-04" || ctx.target === "openapi-3.0") { - json2.enum = [val]; - } else { - json2.const = val; - } - } else { - if (vals.every((v) => typeof v === "number")) - json2.type = "number"; - if (vals.every((v) => typeof v === "string")) - json2.type = "string"; - if (vals.every((v) => typeof v === "boolean")) - json2.type = "boolean"; - if (vals.every((v) => v === null)) - json2.type = "null"; - json2.enum = vals; - } -}; -var nanProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("NaN cannot be represented in JSON Schema"); - } -}; -var templateLiteralProcessor = (schema, _ctx, json2, _params) => { - const _json = json2; - const pattern = schema._zod.pattern; - if (!pattern) - throw new Error("Pattern not found in template literal"); - _json.type = "string"; - _json.pattern = pattern.source; -}; -var fileProcessor = (schema, _ctx, json2, _params) => { - const _json = json2; - const file2 = { - type: "string", - format: "binary", - contentEncoding: "binary" - }; - const { minimum, maximum, mime } = schema._zod.bag; - if (minimum !== void 0) - file2.minLength = minimum; - if (maximum !== void 0) - file2.maxLength = maximum; - if (mime) { - if (mime.length === 1) { - file2.contentMediaType = mime[0]; - Object.assign(_json, file2); - } else { - Object.assign(_json, file2); - _json.anyOf = mime.map((m) => ({ contentMediaType: m })); - } - } else { - Object.assign(_json, file2); - } -}; -var successProcessor = (_schema, _ctx, json2, _params) => { - json2.type = "boolean"; -}; -var customProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Custom types cannot be represented in JSON Schema"); - } -}; -var functionProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Function types cannot be represented in JSON Schema"); - } -}; -var transformProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Transforms cannot be represented in JSON Schema"); - } -}; -var mapProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Map cannot be represented in JSON Schema"); - } -}; -var setProcessor = (_schema, ctx, _json, _params) => { - if (ctx.unrepresentable === "throw") { - throw new Error("Set cannot be represented in JSON Schema"); - } -}; -var arrayProcessor = (schema, ctx, _json, params) => { - const json2 = _json; - const def = schema._zod.def; - const { minimum, maximum } = schema._zod.bag; - if (typeof minimum === "number") - json2.minItems = minimum; - if (typeof maximum === "number") - json2.maxItems = maximum; - json2.type = "array"; - json2.items = process(def.element, ctx, __spreadProps(__spreadValues({}, params), { - path: [...params.path, "items"] - })); -}; -var objectProcessor = (schema, ctx, _json, params) => { - var _a5; - const json2 = _json; - const def = schema._zod.def; - json2.type = "object"; - json2.properties = {}; - const shape = def.shape; - for (const key in shape) { - json2.properties[key] = process(shape[key], ctx, __spreadProps(__spreadValues({}, params), { - path: [...params.path, "properties", key] - })); - } - const allKeys = new Set(Object.keys(shape)); - const requiredKeys = new Set([...allKeys].filter((key) => { - const v = def.shape[key]._zod; - if (ctx.io === "input") { - return v.optin === void 0; - } else { - return v.optout === void 0; - } - })); - if (requiredKeys.size > 0) { - json2.required = Array.from(requiredKeys); - } - if (((_a5 = def.catchall) == null ? void 0 : _a5._zod.def.type) === "never") { - json2.additionalProperties = false; - } else if (!def.catchall) { - if (ctx.io === "output") - json2.additionalProperties = false; - } else if (def.catchall) { - json2.additionalProperties = process(def.catchall, ctx, __spreadProps(__spreadValues({}, params), { - path: [...params.path, "additionalProperties"] - })); - } -}; -var unionProcessor = (schema, ctx, json2, params) => { - const def = schema._zod.def; - const isExclusive = def.inclusive === false; - const options = def.options.map((x, i2) => process(x, ctx, __spreadProps(__spreadValues({}, params), { - path: [...params.path, isExclusive ? "oneOf" : "anyOf", i2] - }))); - if (isExclusive) { - json2.oneOf = options; - } else { - json2.anyOf = options; - } -}; -var intersectionProcessor = (schema, ctx, json2, params) => { - const def = schema._zod.def; - const a = process(def.left, ctx, __spreadProps(__spreadValues({}, params), { - path: [...params.path, "allOf", 0] - })); - const b = process(def.right, ctx, __spreadProps(__spreadValues({}, params), { - path: [...params.path, "allOf", 1] - })); - const isSimpleIntersection = (val) => "allOf" in val && Object.keys(val).length === 1; - const allOf = [ - ...isSimpleIntersection(a) ? a.allOf : [a], - ...isSimpleIntersection(b) ? b.allOf : [b] - ]; - json2.allOf = allOf; -}; -var tupleProcessor = (schema, ctx, _json, params) => { - const json2 = _json; - const def = schema._zod.def; - json2.type = "array"; - const prefixPath = ctx.target === "draft-2020-12" ? "prefixItems" : "items"; - const restPath = ctx.target === "draft-2020-12" ? "items" : ctx.target === "openapi-3.0" ? "items" : "additionalItems"; - const prefixItems = def.items.map((x, i2) => process(x, ctx, __spreadProps(__spreadValues({}, params), { - path: [...params.path, prefixPath, i2] - }))); - const rest = def.rest ? process(def.rest, ctx, __spreadProps(__spreadValues({}, params), { - path: [...params.path, restPath, ...ctx.target === "openapi-3.0" ? [def.items.length] : []] - })) : null; - if (ctx.target === "draft-2020-12") { - json2.prefixItems = prefixItems; - if (rest) { - json2.items = rest; - } - } else if (ctx.target === "openapi-3.0") { - json2.items = { - anyOf: prefixItems - }; - if (rest) { - json2.items.anyOf.push(rest); - } - json2.minItems = prefixItems.length; - if (!rest) { - json2.maxItems = prefixItems.length; - } - } else { - json2.items = prefixItems; - if (rest) { - json2.additionalItems = rest; - } - } - const { minimum, maximum } = schema._zod.bag; - if (typeof minimum === "number") - json2.minItems = minimum; - if (typeof maximum === "number") - json2.maxItems = maximum; -}; -var recordProcessor = (schema, ctx, _json, params) => { - const json2 = _json; - const def = schema._zod.def; - json2.type = "object"; - const keyType = def.keyType; - const keyBag = keyType._zod.bag; - const patterns = keyBag == null ? void 0 : keyBag.patterns; - if (def.mode === "loose" && patterns && patterns.size > 0) { - const valueSchema = process(def.valueType, ctx, __spreadProps(__spreadValues({}, params), { - path: [...params.path, "patternProperties", "*"] - })); - json2.patternProperties = {}; - for (const pattern of patterns) { - json2.patternProperties[pattern.source] = valueSchema; - } - } else { - if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") { - json2.propertyNames = process(def.keyType, ctx, __spreadProps(__spreadValues({}, params), { - path: [...params.path, "propertyNames"] - })); - } - json2.additionalProperties = process(def.valueType, ctx, __spreadProps(__spreadValues({}, params), { - path: [...params.path, "additionalProperties"] - })); - } - const keyValues = keyType._zod.values; - if (keyValues) { - const validKeyValues = [...keyValues].filter((v) => typeof v === "string" || typeof v === "number"); - if (validKeyValues.length > 0) { - json2.required = validKeyValues; - } - } -}; -var nullableProcessor = (schema, ctx, json2, params) => { - const def = schema._zod.def; - const inner = process(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - if (ctx.target === "openapi-3.0") { - seen.ref = def.innerType; - json2.nullable = true; - } else { - json2.anyOf = [inner, { type: "null" }]; - } -}; -var nonoptionalProcessor = (schema, ctx, _json, params) => { - const def = schema._zod.def; - process(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = def.innerType; -}; -var defaultProcessor = (schema, ctx, json2, params) => { - const def = schema._zod.def; - process(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = def.innerType; - json2.default = JSON.parse(JSON.stringify(def.defaultValue)); -}; -var prefaultProcessor = (schema, ctx, json2, params) => { - const def = schema._zod.def; - process(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = def.innerType; - if (ctx.io === "input") - json2._prefault = JSON.parse(JSON.stringify(def.defaultValue)); -}; -var catchProcessor = (schema, ctx, json2, params) => { - const def = schema._zod.def; - process(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = def.innerType; - let catchValue; - try { - catchValue = def.catchValue(void 0); - } catch (e) { - throw new Error("Dynamic catch values are not supported in JSON Schema"); - } - json2.default = catchValue; -}; -var pipeProcessor = (schema, ctx, _json, params) => { - const def = schema._zod.def; - const inIsTransform = def.in._zod.traits.has("$ZodTransform"); - const innerType = ctx.io === "input" ? inIsTransform ? def.out : def.in : def.out; - process(innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = innerType; -}; -var readonlyProcessor = (schema, ctx, json2, params) => { - const def = schema._zod.def; - process(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = def.innerType; - json2.readOnly = true; -}; -var promiseProcessor = (schema, ctx, _json, params) => { - const def = schema._zod.def; - process(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = def.innerType; -}; -var optionalProcessor = (schema, ctx, _json, params) => { - const def = schema._zod.def; - process(def.innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = def.innerType; -}; -var lazyProcessor = (schema, ctx, _json, params) => { - const innerType = schema._zod.innerType; - process(innerType, ctx, params); - const seen = ctx.seen.get(schema); - seen.ref = innerType; -}; -var allProcessors = { - string: stringProcessor, - number: numberProcessor, - boolean: booleanProcessor, - bigint: bigintProcessor, - symbol: symbolProcessor, - null: nullProcessor, - undefined: undefinedProcessor, - void: voidProcessor, - never: neverProcessor, - any: anyProcessor, - unknown: unknownProcessor, - date: dateProcessor, - enum: enumProcessor, - literal: literalProcessor, - nan: nanProcessor, - template_literal: templateLiteralProcessor, - file: fileProcessor, - success: successProcessor, - custom: customProcessor, - function: functionProcessor, - transform: transformProcessor, - map: mapProcessor, - set: setProcessor, - array: arrayProcessor, - object: objectProcessor, - union: unionProcessor, - intersection: intersectionProcessor, - tuple: tupleProcessor, - record: recordProcessor, - nullable: nullableProcessor, - nonoptional: nonoptionalProcessor, - default: defaultProcessor, - prefault: prefaultProcessor, - catch: catchProcessor, - pipe: pipeProcessor, - readonly: readonlyProcessor, - promise: promiseProcessor, - optional: optionalProcessor, - lazy: lazyProcessor -}; -function toJSONSchema(input, params) { - if ("_idmap" in input) { - const registry2 = input; - const ctx2 = initializeContext(__spreadProps(__spreadValues({}, params), { processors: allProcessors })); - const defs = {}; - for (const entry of registry2._idmap.entries()) { - const [_, schema] = entry; - process(schema, ctx2); - } - const schemas = {}; - const external = { - registry: registry2, - uri: params == null ? void 0 : params.uri, - defs - }; - ctx2.external = external; - for (const entry of registry2._idmap.entries()) { - const [key, schema] = entry; - extractDefs(ctx2, schema); - schemas[key] = finalize(ctx2, schema); - } - if (Object.keys(defs).length > 0) { - const defsSegment = ctx2.target === "draft-2020-12" ? "$defs" : "definitions"; - schemas.__shared = { - [defsSegment]: defs - }; - } - return { schemas }; - } - const ctx = initializeContext(__spreadProps(__spreadValues({}, params), { processors: allProcessors })); - process(input, ctx); - extractDefs(ctx, input); - return finalize(ctx, input); -} - -// node_modules/zod/v4/core/json-schema-generator.js -var JSONSchemaGenerator = class { - /** @deprecated Access via ctx instead */ - get metadataRegistry() { - return this.ctx.metadataRegistry; - } - /** @deprecated Access via ctx instead */ - get target() { - return this.ctx.target; - } - /** @deprecated Access via ctx instead */ - get unrepresentable() { - return this.ctx.unrepresentable; - } - /** @deprecated Access via ctx instead */ - get override() { - return this.ctx.override; - } - /** @deprecated Access via ctx instead */ - get io() { - return this.ctx.io; - } - /** @deprecated Access via ctx instead */ - get counter() { - return this.ctx.counter; - } - set counter(value) { - this.ctx.counter = value; - } - /** @deprecated Access via ctx instead */ - get seen() { - return this.ctx.seen; - } - constructor(params) { - var _a5; - let normalizedTarget = (_a5 = params == null ? void 0 : params.target) != null ? _a5 : "draft-2020-12"; - if (normalizedTarget === "draft-4") - normalizedTarget = "draft-04"; - if (normalizedTarget === "draft-7") - normalizedTarget = "draft-07"; - this.ctx = initializeContext(__spreadValues(__spreadValues(__spreadValues(__spreadValues({ - processors: allProcessors, - target: normalizedTarget - }, (params == null ? void 0 : params.metadata) && { metadata: params.metadata }), (params == null ? void 0 : params.unrepresentable) && { unrepresentable: params.unrepresentable }), (params == null ? void 0 : params.override) && { override: params.override }), (params == null ? void 0 : params.io) && { io: params.io })); - } - /** - * Process a schema to prepare it for JSON Schema generation. - * This must be called before emit(). - */ - process(schema, _params = { path: [], schemaPath: [] }) { - return process(schema, this.ctx, _params); - } - /** - * Emit the final JSON Schema after processing. - * Must call process() first. - */ - emit(schema, _params) { - if (_params) { - if (_params.cycles) - this.ctx.cycles = _params.cycles; - if (_params.reused) - this.ctx.reused = _params.reused; - if (_params.external) - this.ctx.external = _params.external; - } - extractDefs(this.ctx, schema); - const result = finalize(this.ctx, schema); - const _a5 = result, { "~standard": _ } = _a5, plainResult = __objRest(_a5, ["~standard"]); - return plainResult; - } -}; - -// node_modules/zod/v4/core/json-schema.js -var json_schema_exports = {}; - -// node_modules/zod/v4/classic/schemas.js -var schemas_exports2 = {}; -__export(schemas_exports2, { - ZodAny: () => ZodAny, - ZodArray: () => ZodArray, - ZodBase64: () => ZodBase64, - ZodBase64URL: () => ZodBase64URL, - ZodBigInt: () => ZodBigInt, - ZodBigIntFormat: () => ZodBigIntFormat, - ZodBoolean: () => ZodBoolean, - ZodCIDRv4: () => ZodCIDRv4, - ZodCIDRv6: () => ZodCIDRv6, - ZodCUID: () => ZodCUID, - ZodCUID2: () => ZodCUID2, - ZodCatch: () => ZodCatch, - ZodCodec: () => ZodCodec, - ZodCustom: () => ZodCustom, - ZodCustomStringFormat: () => ZodCustomStringFormat, - ZodDate: () => ZodDate, - ZodDefault: () => ZodDefault, - ZodDiscriminatedUnion: () => ZodDiscriminatedUnion, - ZodE164: () => ZodE164, - ZodEmail: () => ZodEmail, - ZodEmoji: () => ZodEmoji, - ZodEnum: () => ZodEnum, - ZodExactOptional: () => ZodExactOptional, - ZodFile: () => ZodFile, - ZodFunction: () => ZodFunction, - ZodGUID: () => ZodGUID, - ZodIPv4: () => ZodIPv4, - ZodIPv6: () => ZodIPv6, - ZodIntersection: () => ZodIntersection, - ZodJWT: () => ZodJWT, - ZodKSUID: () => ZodKSUID, - ZodLazy: () => ZodLazy, - ZodLiteral: () => ZodLiteral, - ZodMAC: () => ZodMAC, - ZodMap: () => ZodMap, - ZodNaN: () => ZodNaN, - ZodNanoID: () => ZodNanoID, - ZodNever: () => ZodNever, - ZodNonOptional: () => ZodNonOptional, - ZodNull: () => ZodNull, - ZodNullable: () => ZodNullable, - ZodNumber: () => ZodNumber, - ZodNumberFormat: () => ZodNumberFormat, - ZodObject: () => ZodObject, - ZodOptional: () => ZodOptional, - ZodPipe: () => ZodPipe, - ZodPrefault: () => ZodPrefault, - ZodPreprocess: () => ZodPreprocess, - ZodPromise: () => ZodPromise, - ZodReadonly: () => ZodReadonly, - ZodRecord: () => ZodRecord, - ZodSet: () => ZodSet, - ZodString: () => ZodString, - ZodStringFormat: () => ZodStringFormat, - ZodSuccess: () => ZodSuccess, - ZodSymbol: () => ZodSymbol, - ZodTemplateLiteral: () => ZodTemplateLiteral, - ZodTransform: () => ZodTransform, - ZodTuple: () => ZodTuple, - ZodType: () => ZodType, - ZodULID: () => ZodULID, - ZodURL: () => ZodURL, - ZodUUID: () => ZodUUID, - ZodUndefined: () => ZodUndefined, - ZodUnion: () => ZodUnion, - ZodUnknown: () => ZodUnknown, - ZodVoid: () => ZodVoid, - ZodXID: () => ZodXID, - ZodXor: () => ZodXor, - _ZodString: () => _ZodString, - _default: () => _default2, - _function: () => _function, - any: () => any, - array: () => array, - base64: () => base642, - base64url: () => base64url2, - bigint: () => bigint2, - boolean: () => boolean2, - catch: () => _catch2, - check: () => check, - cidrv4: () => cidrv42, - cidrv6: () => cidrv62, - codec: () => codec, - cuid: () => cuid3, - cuid2: () => cuid22, - custom: () => custom, - date: () => date3, - describe: () => describe2, - discriminatedUnion: () => discriminatedUnion, - e164: () => e1642, - email: () => email2, - emoji: () => emoji2, - enum: () => _enum2, - exactOptional: () => exactOptional, - file: () => file, - float32: () => float32, - float64: () => float64, - function: () => _function, - guid: () => guid2, - hash: () => hash, - hex: () => hex2, - hostname: () => hostname2, - httpUrl: () => httpUrl, - instanceof: () => _instanceof, - int: () => int, - int32: () => int32, - int64: () => int64, - intersection: () => intersection, - invertCodec: () => invertCodec, - ipv4: () => ipv42, - ipv6: () => ipv62, - json: () => json, - jwt: () => jwt, - keyof: () => keyof, - ksuid: () => ksuid2, - lazy: () => lazy, - literal: () => literal, - looseObject: () => looseObject, - looseRecord: () => looseRecord, - mac: () => mac2, - map: () => map, - meta: () => meta2, - nan: () => nan, - nanoid: () => nanoid2, - nativeEnum: () => nativeEnum, - never: () => never, - nonoptional: () => nonoptional, - null: () => _null3, - nullable: () => nullable, - nullish: () => nullish2, - number: () => number2, - object: () => object, - optional: () => optional, - partialRecord: () => partialRecord, - pipe: () => pipe, - prefault: () => prefault, - preprocess: () => preprocess, - promise: () => promise, - readonly: () => readonly, - record: () => record, - refine: () => refine, - set: () => set, - strictObject: () => strictObject, - string: () => string2, - stringFormat: () => stringFormat, - stringbool: () => stringbool, - success: () => success, - superRefine: () => superRefine, - symbol: () => symbol, - templateLiteral: () => templateLiteral, - transform: () => transform, - tuple: () => tuple, - uint32: () => uint32, - uint64: () => uint64, - ulid: () => ulid2, - undefined: () => _undefined3, - union: () => union, - unknown: () => unknown, - url: () => url, - uuid: () => uuid2, - uuidv4: () => uuidv4, - uuidv6: () => uuidv6, - uuidv7: () => uuidv7, - void: () => _void2, - xid: () => xid2, - xor: () => xor -}); - -// node_modules/zod/v4/classic/checks.js -var checks_exports2 = {}; -__export(checks_exports2, { - endsWith: () => _endsWith, - gt: () => _gt, - gte: () => _gte, - includes: () => _includes, - length: () => _length, - lowercase: () => _lowercase, - lt: () => _lt, - lte: () => _lte, - maxLength: () => _maxLength, - maxSize: () => _maxSize, - mime: () => _mime, - minLength: () => _minLength, - minSize: () => _minSize, - multipleOf: () => _multipleOf, - negative: () => _negative, - nonnegative: () => _nonnegative, - nonpositive: () => _nonpositive, - normalize: () => _normalize, - overwrite: () => _overwrite, - positive: () => _positive, - property: () => _property, - regex: () => _regex, - size: () => _size, - slugify: () => _slugify, - startsWith: () => _startsWith, - toLowerCase: () => _toLowerCase, - toUpperCase: () => _toUpperCase, - trim: () => _trim, - uppercase: () => _uppercase -}); - -// node_modules/zod/v4/classic/iso.js -var iso_exports = {}; -__export(iso_exports, { - ZodISODate: () => ZodISODate, - ZodISODateTime: () => ZodISODateTime, - ZodISODuration: () => ZodISODuration, - ZodISOTime: () => ZodISOTime, - date: () => date2, - datetime: () => datetime2, - duration: () => duration2, - time: () => time2 -}); -var ZodISODateTime = /* @__PURE__ */ $constructor("ZodISODateTime", (inst, def) => { - $ZodISODateTime.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function datetime2(params) { - return _isoDateTime(ZodISODateTime, params); -} -var ZodISODate = /* @__PURE__ */ $constructor("ZodISODate", (inst, def) => { - $ZodISODate.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function date2(params) { - return _isoDate(ZodISODate, params); -} -var ZodISOTime = /* @__PURE__ */ $constructor("ZodISOTime", (inst, def) => { - $ZodISOTime.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function time2(params) { - return _isoTime(ZodISOTime, params); -} -var ZodISODuration = /* @__PURE__ */ $constructor("ZodISODuration", (inst, def) => { - $ZodISODuration.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function duration2(params) { - return _isoDuration(ZodISODuration, params); -} - -// node_modules/zod/v4/classic/errors.js -var initializer2 = (inst, issues) => { - $ZodError.init(inst, issues); - inst.name = "ZodError"; - Object.defineProperties(inst, { - format: { - value: (mapper) => formatError(inst, mapper) - // enumerable: false, - }, - flatten: { - value: (mapper) => flattenError(inst, mapper) - // enumerable: false, - }, - addIssue: { - value: (issue2) => { - inst.issues.push(issue2); - inst.message = JSON.stringify(inst.issues, jsonStringifyReplacer, 2); - } - // enumerable: false, - }, - addIssues: { - value: (issues2) => { - inst.issues.push(...issues2); - inst.message = JSON.stringify(inst.issues, jsonStringifyReplacer, 2); - } - // enumerable: false, - }, - isEmpty: { - get() { - return inst.issues.length === 0; - } - // enumerable: false, - } - }); -}; -var ZodError = /* @__PURE__ */ $constructor("ZodError", initializer2); -var ZodRealError = /* @__PURE__ */ $constructor("ZodError", initializer2, { - Parent: Error -}); - -// node_modules/zod/v4/classic/parse.js -var parse2 = /* @__PURE__ */ _parse(ZodRealError); -var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError); -var safeParse2 = /* @__PURE__ */ _safeParse(ZodRealError); -var safeParseAsync2 = /* @__PURE__ */ _safeParseAsync(ZodRealError); -var encode2 = /* @__PURE__ */ _encode(ZodRealError); -var decode2 = /* @__PURE__ */ _decode(ZodRealError); -var encodeAsync2 = /* @__PURE__ */ _encodeAsync(ZodRealError); -var decodeAsync2 = /* @__PURE__ */ _decodeAsync(ZodRealError); -var safeEncode2 = /* @__PURE__ */ _safeEncode(ZodRealError); -var safeDecode2 = /* @__PURE__ */ _safeDecode(ZodRealError); -var safeEncodeAsync2 = /* @__PURE__ */ _safeEncodeAsync(ZodRealError); -var safeDecodeAsync2 = /* @__PURE__ */ _safeDecodeAsync(ZodRealError); - -// node_modules/zod/v4/classic/schemas.js -var _installedGroups = /* @__PURE__ */ new WeakMap(); -function _installLazyMethods(inst, group, methods) { - const proto = Object.getPrototypeOf(inst); - let installed = _installedGroups.get(proto); - if (!installed) { - installed = /* @__PURE__ */ new Set(); - _installedGroups.set(proto, installed); - } - if (installed.has(group)) - return; - installed.add(group); - for (const key in methods) { - const fn = methods[key]; - Object.defineProperty(proto, key, { - configurable: true, - enumerable: false, - get() { - const bound = fn.bind(this); - Object.defineProperty(this, key, { - configurable: true, - writable: true, - enumerable: true, - value: bound - }); - return bound; - }, - set(v) { - Object.defineProperty(this, key, { - configurable: true, - writable: true, - enumerable: true, - value: v - }); - } - }); - } -} -var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => { - $ZodType.init(inst, def); - Object.assign(inst["~standard"], { - jsonSchema: { - input: createStandardJSONSchemaMethod(inst, "input"), - output: createStandardJSONSchemaMethod(inst, "output") - } - }); - inst.toJSONSchema = createToJSONSchemaMethod(inst, {}); - inst.def = def; - inst.type = def.type; - Object.defineProperty(inst, "_def", { value: def }); - inst.parse = (data2, params) => parse2(inst, data2, params, { callee: inst.parse }); - inst.safeParse = (data2, params) => safeParse2(inst, data2, params); - inst.parseAsync = (data2, params) => __async(null, null, function* () { - return parseAsync2(inst, data2, params, { callee: inst.parseAsync }); - }); - inst.safeParseAsync = (data2, params) => __async(null, null, function* () { - return safeParseAsync2(inst, data2, params); - }); - inst.spa = inst.safeParseAsync; - inst.encode = (data2, params) => encode2(inst, data2, params); - inst.decode = (data2, params) => decode2(inst, data2, params); - inst.encodeAsync = (data2, params) => __async(null, null, function* () { - return encodeAsync2(inst, data2, params); - }); - inst.decodeAsync = (data2, params) => __async(null, null, function* () { - return decodeAsync2(inst, data2, params); - }); - inst.safeEncode = (data2, params) => safeEncode2(inst, data2, params); - inst.safeDecode = (data2, params) => safeDecode2(inst, data2, params); - inst.safeEncodeAsync = (data2, params) => __async(null, null, function* () { - return safeEncodeAsync2(inst, data2, params); - }); - inst.safeDecodeAsync = (data2, params) => __async(null, null, function* () { - return safeDecodeAsync2(inst, data2, params); - }); - _installLazyMethods(inst, "ZodType", { - check(...chks) { - var _a5; - const def2 = this.def; - return this.clone(util_exports.mergeDefs(def2, { - checks: [ - ...(_a5 = def2.checks) != null ? _a5 : [], - ...chks.map((ch) => typeof ch === "function" ? { _zod: { check: ch, def: { check: "custom" }, onattach: [] } } : ch) - ] - }), { parent: true }); - }, - with(...chks) { - return this.check(...chks); - }, - clone(def2, params) { - return clone(this, def2, params); - }, - brand() { - return this; - }, - register(reg, meta3) { - reg.add(this, meta3); - return this; - }, - refine(check2, params) { - return this.check(refine(check2, params)); - }, - superRefine(refinement, params) { - return this.check(superRefine(refinement, params)); - }, - overwrite(fn) { - return this.check(_overwrite(fn)); - }, - optional() { - return optional(this); - }, - exactOptional() { - return exactOptional(this); - }, - nullable() { - return nullable(this); - }, - nullish() { - return optional(nullable(this)); - }, - nonoptional(params) { - return nonoptional(this, params); - }, - array() { - return array(this); - }, - or(arg) { - return union([this, arg]); - }, - and(arg) { - return intersection(this, arg); - }, - transform(tx) { - return pipe(this, transform(tx)); - }, - default(d) { - return _default2(this, d); - }, - prefault(d) { - return prefault(this, d); - }, - catch(params) { - return _catch2(this, params); - }, - pipe(target) { - return pipe(this, target); - }, - readonly() { - return readonly(this); - }, - describe(description) { - const cl = this.clone(); - globalRegistry.add(cl, { description }); - return cl; - }, - meta(...args) { - if (args.length === 0) - return globalRegistry.get(this); - const cl = this.clone(); - globalRegistry.add(cl, args[0]); - return cl; - }, - isOptional() { - return this.safeParse(void 0).success; - }, - isNullable() { - return this.safeParse(null).success; - }, - apply(fn) { - return fn(this); - } - }); - Object.defineProperty(inst, "description", { - get() { - var _a5; - return (_a5 = globalRegistry.get(inst)) == null ? void 0 : _a5.description; - }, - configurable: true - }); - return inst; -}); -var _ZodString = /* @__PURE__ */ $constructor("_ZodString", (inst, def) => { - var _a5, _b, _c; - $ZodString.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => stringProcessor(inst, ctx, json2, params); - const bag = inst._zod.bag; - inst.format = (_a5 = bag.format) != null ? _a5 : null; - inst.minLength = (_b = bag.minimum) != null ? _b : null; - inst.maxLength = (_c = bag.maximum) != null ? _c : null; - _installLazyMethods(inst, "_ZodString", { - regex(...args) { - return this.check(_regex(...args)); - }, - includes(...args) { - return this.check(_includes(...args)); - }, - startsWith(...args) { - return this.check(_startsWith(...args)); - }, - endsWith(...args) { - return this.check(_endsWith(...args)); - }, - min(...args) { - return this.check(_minLength(...args)); - }, - max(...args) { - return this.check(_maxLength(...args)); - }, - length(...args) { - return this.check(_length(...args)); - }, - nonempty(...args) { - return this.check(_minLength(1, ...args)); - }, - lowercase(params) { - return this.check(_lowercase(params)); - }, - uppercase(params) { - return this.check(_uppercase(params)); - }, - trim() { - return this.check(_trim()); - }, - normalize(...args) { - return this.check(_normalize(...args)); - }, - toLowerCase() { - return this.check(_toLowerCase()); - }, - toUpperCase() { - return this.check(_toUpperCase()); - }, - slugify() { - return this.check(_slugify()); - } - }); -}); -var ZodString = /* @__PURE__ */ $constructor("ZodString", (inst, def) => { - $ZodString.init(inst, def); - _ZodString.init(inst, def); - inst.email = (params) => inst.check(_email(ZodEmail, params)); - inst.url = (params) => inst.check(_url(ZodURL, params)); - inst.jwt = (params) => inst.check(_jwt(ZodJWT, params)); - inst.emoji = (params) => inst.check(_emoji2(ZodEmoji, params)); - inst.guid = (params) => inst.check(_guid(ZodGUID, params)); - inst.uuid = (params) => inst.check(_uuid(ZodUUID, params)); - inst.uuidv4 = (params) => inst.check(_uuidv4(ZodUUID, params)); - inst.uuidv6 = (params) => inst.check(_uuidv6(ZodUUID, params)); - inst.uuidv7 = (params) => inst.check(_uuidv7(ZodUUID, params)); - inst.nanoid = (params) => inst.check(_nanoid(ZodNanoID, params)); - inst.guid = (params) => inst.check(_guid(ZodGUID, params)); - inst.cuid = (params) => inst.check(_cuid(ZodCUID, params)); - inst.cuid2 = (params) => inst.check(_cuid2(ZodCUID2, params)); - inst.ulid = (params) => inst.check(_ulid(ZodULID, params)); - inst.base64 = (params) => inst.check(_base64(ZodBase64, params)); - inst.base64url = (params) => inst.check(_base64url(ZodBase64URL, params)); - inst.xid = (params) => inst.check(_xid(ZodXID, params)); - inst.ksuid = (params) => inst.check(_ksuid(ZodKSUID, params)); - inst.ipv4 = (params) => inst.check(_ipv4(ZodIPv4, params)); - inst.ipv6 = (params) => inst.check(_ipv6(ZodIPv6, params)); - inst.cidrv4 = (params) => inst.check(_cidrv4(ZodCIDRv4, params)); - inst.cidrv6 = (params) => inst.check(_cidrv6(ZodCIDRv6, params)); - inst.e164 = (params) => inst.check(_e164(ZodE164, params)); - inst.datetime = (params) => inst.check(datetime2(params)); - inst.date = (params) => inst.check(date2(params)); - inst.time = (params) => inst.check(time2(params)); - inst.duration = (params) => inst.check(duration2(params)); -}); -function string2(params) { - return _string(ZodString, params); -} -var ZodStringFormat = /* @__PURE__ */ $constructor("ZodStringFormat", (inst, def) => { - $ZodStringFormat.init(inst, def); - _ZodString.init(inst, def); -}); -var ZodEmail = /* @__PURE__ */ $constructor("ZodEmail", (inst, def) => { - $ZodEmail.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function email2(params) { - return _email(ZodEmail, params); -} -var ZodGUID = /* @__PURE__ */ $constructor("ZodGUID", (inst, def) => { - $ZodGUID.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function guid2(params) { - return _guid(ZodGUID, params); -} -var ZodUUID = /* @__PURE__ */ $constructor("ZodUUID", (inst, def) => { - $ZodUUID.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function uuid2(params) { - return _uuid(ZodUUID, params); -} -function uuidv4(params) { - return _uuidv4(ZodUUID, params); -} -function uuidv6(params) { - return _uuidv6(ZodUUID, params); -} -function uuidv7(params) { - return _uuidv7(ZodUUID, params); -} -var ZodURL = /* @__PURE__ */ $constructor("ZodURL", (inst, def) => { - $ZodURL.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function url(params) { - return _url(ZodURL, params); -} -function httpUrl(params) { - return _url(ZodURL, __spreadValues({ - protocol: regexes_exports.httpProtocol, - hostname: regexes_exports.domain - }, util_exports.normalizeParams(params))); -} -var ZodEmoji = /* @__PURE__ */ $constructor("ZodEmoji", (inst, def) => { - $ZodEmoji.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function emoji2(params) { - return _emoji2(ZodEmoji, params); -} -var ZodNanoID = /* @__PURE__ */ $constructor("ZodNanoID", (inst, def) => { - $ZodNanoID.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function nanoid2(params) { - return _nanoid(ZodNanoID, params); -} -var ZodCUID = /* @__PURE__ */ $constructor("ZodCUID", (inst, def) => { - $ZodCUID.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function cuid3(params) { - return _cuid(ZodCUID, params); -} -var ZodCUID2 = /* @__PURE__ */ $constructor("ZodCUID2", (inst, def) => { - $ZodCUID2.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function cuid22(params) { - return _cuid2(ZodCUID2, params); -} -var ZodULID = /* @__PURE__ */ $constructor("ZodULID", (inst, def) => { - $ZodULID.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function ulid2(params) { - return _ulid(ZodULID, params); -} -var ZodXID = /* @__PURE__ */ $constructor("ZodXID", (inst, def) => { - $ZodXID.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function xid2(params) { - return _xid(ZodXID, params); -} -var ZodKSUID = /* @__PURE__ */ $constructor("ZodKSUID", (inst, def) => { - $ZodKSUID.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function ksuid2(params) { - return _ksuid(ZodKSUID, params); -} -var ZodIPv4 = /* @__PURE__ */ $constructor("ZodIPv4", (inst, def) => { - $ZodIPv4.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function ipv42(params) { - return _ipv4(ZodIPv4, params); -} -var ZodMAC = /* @__PURE__ */ $constructor("ZodMAC", (inst, def) => { - $ZodMAC.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function mac2(params) { - return _mac(ZodMAC, params); -} -var ZodIPv6 = /* @__PURE__ */ $constructor("ZodIPv6", (inst, def) => { - $ZodIPv6.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function ipv62(params) { - return _ipv6(ZodIPv6, params); -} -var ZodCIDRv4 = /* @__PURE__ */ $constructor("ZodCIDRv4", (inst, def) => { - $ZodCIDRv4.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function cidrv42(params) { - return _cidrv4(ZodCIDRv4, params); -} -var ZodCIDRv6 = /* @__PURE__ */ $constructor("ZodCIDRv6", (inst, def) => { - $ZodCIDRv6.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function cidrv62(params) { - return _cidrv6(ZodCIDRv6, params); -} -var ZodBase64 = /* @__PURE__ */ $constructor("ZodBase64", (inst, def) => { - $ZodBase64.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function base642(params) { - return _base64(ZodBase64, params); -} -var ZodBase64URL = /* @__PURE__ */ $constructor("ZodBase64URL", (inst, def) => { - $ZodBase64URL.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function base64url2(params) { - return _base64url(ZodBase64URL, params); -} -var ZodE164 = /* @__PURE__ */ $constructor("ZodE164", (inst, def) => { - $ZodE164.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function e1642(params) { - return _e164(ZodE164, params); -} -var ZodJWT = /* @__PURE__ */ $constructor("ZodJWT", (inst, def) => { - $ZodJWT.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function jwt(params) { - return _jwt(ZodJWT, params); -} -var ZodCustomStringFormat = /* @__PURE__ */ $constructor("ZodCustomStringFormat", (inst, def) => { - $ZodCustomStringFormat.init(inst, def); - ZodStringFormat.init(inst, def); -}); -function stringFormat(format, fnOrRegex, _params = {}) { - return _stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params); -} -function hostname2(_params) { - return _stringFormat(ZodCustomStringFormat, "hostname", regexes_exports.hostname, _params); -} -function hex2(_params) { - return _stringFormat(ZodCustomStringFormat, "hex", regexes_exports.hex, _params); -} -function hash(alg, params) { - var _a5; - const enc = (_a5 = params == null ? void 0 : params.enc) != null ? _a5 : "hex"; - const format = `${alg}_${enc}`; - const regex = regexes_exports[format]; - if (!regex) - throw new Error(`Unrecognized hash format: ${format}`); - return _stringFormat(ZodCustomStringFormat, format, regex, params); -} -var ZodNumber = /* @__PURE__ */ $constructor("ZodNumber", (inst, def) => { - var _a5, _b, _c, _d, _e, _f, _g, _h, _i; - $ZodNumber.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => numberProcessor(inst, ctx, json2, params); - _installLazyMethods(inst, "ZodNumber", { - gt(value, params) { - return this.check(_gt(value, params)); - }, - gte(value, params) { - return this.check(_gte(value, params)); - }, - min(value, params) { - return this.check(_gte(value, params)); - }, - lt(value, params) { - return this.check(_lt(value, params)); - }, - lte(value, params) { - return this.check(_lte(value, params)); - }, - max(value, params) { - return this.check(_lte(value, params)); - }, - int(params) { - return this.check(int(params)); - }, - safe(params) { - return this.check(int(params)); - }, - positive(params) { - return this.check(_gt(0, params)); - }, - nonnegative(params) { - return this.check(_gte(0, params)); - }, - negative(params) { - return this.check(_lt(0, params)); - }, - nonpositive(params) { - return this.check(_lte(0, params)); - }, - multipleOf(value, params) { - return this.check(_multipleOf(value, params)); - }, - step(value, params) { - return this.check(_multipleOf(value, params)); - }, - finite() { - return this; - } - }); - const bag = inst._zod.bag; - inst.minValue = (_c = Math.max((_a5 = bag.minimum) != null ? _a5 : Number.NEGATIVE_INFINITY, (_b = bag.exclusiveMinimum) != null ? _b : Number.NEGATIVE_INFINITY)) != null ? _c : null; - inst.maxValue = (_f = Math.min((_d = bag.maximum) != null ? _d : Number.POSITIVE_INFINITY, (_e = bag.exclusiveMaximum) != null ? _e : Number.POSITIVE_INFINITY)) != null ? _f : null; - inst.isInt = ((_g = bag.format) != null ? _g : "").includes("int") || Number.isSafeInteger((_h = bag.multipleOf) != null ? _h : 0.5); - inst.isFinite = true; - inst.format = (_i = bag.format) != null ? _i : null; -}); -function number2(params) { - return _number(ZodNumber, params); -} -var ZodNumberFormat = /* @__PURE__ */ $constructor("ZodNumberFormat", (inst, def) => { - $ZodNumberFormat.init(inst, def); - ZodNumber.init(inst, def); -}); -function int(params) { - return _int(ZodNumberFormat, params); -} -function float32(params) { - return _float32(ZodNumberFormat, params); -} -function float64(params) { - return _float64(ZodNumberFormat, params); -} -function int32(params) { - return _int32(ZodNumberFormat, params); -} -function uint32(params) { - return _uint32(ZodNumberFormat, params); -} -var ZodBoolean = /* @__PURE__ */ $constructor("ZodBoolean", (inst, def) => { - $ZodBoolean.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => booleanProcessor(inst, ctx, json2, params); -}); -function boolean2(params) { - return _boolean(ZodBoolean, params); -} -var ZodBigInt = /* @__PURE__ */ $constructor("ZodBigInt", (inst, def) => { - var _a5, _b, _c; - $ZodBigInt.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => bigintProcessor(inst, ctx, json2, params); - inst.gte = (value, params) => inst.check(_gte(value, params)); - inst.min = (value, params) => inst.check(_gte(value, params)); - inst.gt = (value, params) => inst.check(_gt(value, params)); - inst.gte = (value, params) => inst.check(_gte(value, params)); - inst.min = (value, params) => inst.check(_gte(value, params)); - inst.lt = (value, params) => inst.check(_lt(value, params)); - inst.lte = (value, params) => inst.check(_lte(value, params)); - inst.max = (value, params) => inst.check(_lte(value, params)); - inst.positive = (params) => inst.check(_gt(BigInt(0), params)); - inst.negative = (params) => inst.check(_lt(BigInt(0), params)); - inst.nonpositive = (params) => inst.check(_lte(BigInt(0), params)); - inst.nonnegative = (params) => inst.check(_gte(BigInt(0), params)); - inst.multipleOf = (value, params) => inst.check(_multipleOf(value, params)); - const bag = inst._zod.bag; - inst.minValue = (_a5 = bag.minimum) != null ? _a5 : null; - inst.maxValue = (_b = bag.maximum) != null ? _b : null; - inst.format = (_c = bag.format) != null ? _c : null; -}); -function bigint2(params) { - return _bigint(ZodBigInt, params); -} -var ZodBigIntFormat = /* @__PURE__ */ $constructor("ZodBigIntFormat", (inst, def) => { - $ZodBigIntFormat.init(inst, def); - ZodBigInt.init(inst, def); -}); -function int64(params) { - return _int64(ZodBigIntFormat, params); -} -function uint64(params) { - return _uint64(ZodBigIntFormat, params); -} -var ZodSymbol = /* @__PURE__ */ $constructor("ZodSymbol", (inst, def) => { - $ZodSymbol.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => symbolProcessor(inst, ctx, json2, params); -}); -function symbol(params) { - return _symbol(ZodSymbol, params); -} -var ZodUndefined = /* @__PURE__ */ $constructor("ZodUndefined", (inst, def) => { - $ZodUndefined.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => undefinedProcessor(inst, ctx, json2, params); -}); -function _undefined3(params) { - return _undefined2(ZodUndefined, params); -} -var ZodNull = /* @__PURE__ */ $constructor("ZodNull", (inst, def) => { - $ZodNull.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => nullProcessor(inst, ctx, json2, params); -}); -function _null3(params) { - return _null2(ZodNull, params); -} -var ZodAny = /* @__PURE__ */ $constructor("ZodAny", (inst, def) => { - $ZodAny.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => anyProcessor(inst, ctx, json2, params); -}); -function any() { - return _any(ZodAny); -} -var ZodUnknown = /* @__PURE__ */ $constructor("ZodUnknown", (inst, def) => { - $ZodUnknown.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => unknownProcessor(inst, ctx, json2, params); -}); -function unknown() { - return _unknown(ZodUnknown); -} -var ZodNever = /* @__PURE__ */ $constructor("ZodNever", (inst, def) => { - $ZodNever.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => neverProcessor(inst, ctx, json2, params); -}); -function never(params) { - return _never(ZodNever, params); -} -var ZodVoid = /* @__PURE__ */ $constructor("ZodVoid", (inst, def) => { - $ZodVoid.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => voidProcessor(inst, ctx, json2, params); -}); -function _void2(params) { - return _void(ZodVoid, params); -} -var ZodDate = /* @__PURE__ */ $constructor("ZodDate", (inst, def) => { - $ZodDate.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => dateProcessor(inst, ctx, json2, params); - inst.min = (value, params) => inst.check(_gte(value, params)); - inst.max = (value, params) => inst.check(_lte(value, params)); - const c = inst._zod.bag; - inst.minDate = c.minimum ? new Date(c.minimum) : null; - inst.maxDate = c.maximum ? new Date(c.maximum) : null; -}); -function date3(params) { - return _date(ZodDate, params); -} -var ZodArray = /* @__PURE__ */ $constructor("ZodArray", (inst, def) => { - $ZodArray.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => arrayProcessor(inst, ctx, json2, params); - inst.element = def.element; - _installLazyMethods(inst, "ZodArray", { - min(n, params) { - return this.check(_minLength(n, params)); - }, - nonempty(params) { - return this.check(_minLength(1, params)); - }, - max(n, params) { - return this.check(_maxLength(n, params)); - }, - length(n, params) { - return this.check(_length(n, params)); - }, - unwrap() { - return this.element; - } - }); -}); -function array(element, params) { - return _array(ZodArray, element, params); -} -function keyof(schema) { - const shape = schema._zod.def.shape; - return _enum2(Object.keys(shape)); -} -var ZodObject = /* @__PURE__ */ $constructor("ZodObject", (inst, def) => { - $ZodObjectJIT.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => objectProcessor(inst, ctx, json2, params); - util_exports.defineLazy(inst, "shape", () => { - return def.shape; - }); - _installLazyMethods(inst, "ZodObject", { - keyof() { - return _enum2(Object.keys(this._zod.def.shape)); - }, - catchall(catchall) { - return this.clone(__spreadProps(__spreadValues({}, this._zod.def), { catchall })); - }, - passthrough() { - return this.clone(__spreadProps(__spreadValues({}, this._zod.def), { catchall: unknown() })); - }, - loose() { - return this.clone(__spreadProps(__spreadValues({}, this._zod.def), { catchall: unknown() })); - }, - strict() { - return this.clone(__spreadProps(__spreadValues({}, this._zod.def), { catchall: never() })); - }, - strip() { - return this.clone(__spreadProps(__spreadValues({}, this._zod.def), { catchall: void 0 })); - }, - extend(incoming) { - return util_exports.extend(this, incoming); - }, - safeExtend(incoming) { - return util_exports.safeExtend(this, incoming); - }, - merge(other) { - return util_exports.merge(this, other); - }, - pick(mask) { - return util_exports.pick(this, mask); - }, - omit(mask) { - return util_exports.omit(this, mask); - }, - partial(...args) { - return util_exports.partial(ZodOptional, this, args[0]); - }, - required(...args) { - return util_exports.required(ZodNonOptional, this, args[0]); - } - }); -}); -function object(shape, params) { - const def = __spreadValues({ - type: "object", - shape: shape != null ? shape : {} - }, util_exports.normalizeParams(params)); - return new ZodObject(def); -} -function strictObject(shape, params) { - return new ZodObject(__spreadValues({ - type: "object", - shape, - catchall: never() - }, util_exports.normalizeParams(params))); -} -function looseObject(shape, params) { - return new ZodObject(__spreadValues({ - type: "object", - shape, - catchall: unknown() - }, util_exports.normalizeParams(params))); -} -var ZodUnion = /* @__PURE__ */ $constructor("ZodUnion", (inst, def) => { - $ZodUnion.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => unionProcessor(inst, ctx, json2, params); - inst.options = def.options; -}); -function union(options, params) { - return new ZodUnion(__spreadValues({ - type: "union", - options - }, util_exports.normalizeParams(params))); -} -var ZodXor = /* @__PURE__ */ $constructor("ZodXor", (inst, def) => { - ZodUnion.init(inst, def); - $ZodXor.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => unionProcessor(inst, ctx, json2, params); - inst.options = def.options; -}); -function xor(options, params) { - return new ZodXor(__spreadValues({ - type: "union", - options, - inclusive: false - }, util_exports.normalizeParams(params))); -} -var ZodDiscriminatedUnion = /* @__PURE__ */ $constructor("ZodDiscriminatedUnion", (inst, def) => { - ZodUnion.init(inst, def); - $ZodDiscriminatedUnion.init(inst, def); -}); -function discriminatedUnion(discriminator, options, params) { - return new ZodDiscriminatedUnion(__spreadValues({ - type: "union", - options, - discriminator - }, util_exports.normalizeParams(params))); -} -var ZodIntersection = /* @__PURE__ */ $constructor("ZodIntersection", (inst, def) => { - $ZodIntersection.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => intersectionProcessor(inst, ctx, json2, params); -}); -function intersection(left, right) { - return new ZodIntersection({ - type: "intersection", - left, - right - }); -} -var ZodTuple = /* @__PURE__ */ $constructor("ZodTuple", (inst, def) => { - $ZodTuple.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => tupleProcessor(inst, ctx, json2, params); - inst.rest = (rest) => inst.clone(__spreadProps(__spreadValues({}, inst._zod.def), { - rest - })); -}); -function tuple(items, _paramsOrRest, _params) { - const hasRest = _paramsOrRest instanceof $ZodType; - const params = hasRest ? _params : _paramsOrRest; - const rest = hasRest ? _paramsOrRest : null; - return new ZodTuple(__spreadValues({ - type: "tuple", - items, - rest - }, util_exports.normalizeParams(params))); -} -var ZodRecord = /* @__PURE__ */ $constructor("ZodRecord", (inst, def) => { - $ZodRecord.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => recordProcessor(inst, ctx, json2, params); - inst.keyType = def.keyType; - inst.valueType = def.valueType; -}); -function record(keyType, valueType, params) { - if (!valueType || !valueType._zod) { - return new ZodRecord(__spreadValues({ - type: "record", - keyType: string2(), - valueType: keyType - }, util_exports.normalizeParams(valueType))); - } - return new ZodRecord(__spreadValues({ - type: "record", - keyType, - valueType - }, util_exports.normalizeParams(params))); -} -function partialRecord(keyType, valueType, params) { - const k = clone(keyType); - k._zod.values = void 0; - return new ZodRecord(__spreadValues({ - type: "record", - keyType: k, - valueType - }, util_exports.normalizeParams(params))); -} -function looseRecord(keyType, valueType, params) { - return new ZodRecord(__spreadValues({ - type: "record", - keyType, - valueType, - mode: "loose" - }, util_exports.normalizeParams(params))); -} -var ZodMap = /* @__PURE__ */ $constructor("ZodMap", (inst, def) => { - $ZodMap.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => mapProcessor(inst, ctx, json2, params); - inst.keyType = def.keyType; - inst.valueType = def.valueType; - inst.min = (...args) => inst.check(_minSize(...args)); - inst.nonempty = (params) => inst.check(_minSize(1, params)); - inst.max = (...args) => inst.check(_maxSize(...args)); - inst.size = (...args) => inst.check(_size(...args)); -}); -function map(keyType, valueType, params) { - return new ZodMap(__spreadValues({ - type: "map", - keyType, - valueType - }, util_exports.normalizeParams(params))); -} -var ZodSet = /* @__PURE__ */ $constructor("ZodSet", (inst, def) => { - $ZodSet.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => setProcessor(inst, ctx, json2, params); - inst.min = (...args) => inst.check(_minSize(...args)); - inst.nonempty = (params) => inst.check(_minSize(1, params)); - inst.max = (...args) => inst.check(_maxSize(...args)); - inst.size = (...args) => inst.check(_size(...args)); -}); -function set(valueType, params) { - return new ZodSet(__spreadValues({ - type: "set", - valueType - }, util_exports.normalizeParams(params))); -} -var ZodEnum = /* @__PURE__ */ $constructor("ZodEnum", (inst, def) => { - $ZodEnum.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => enumProcessor(inst, ctx, json2, params); - inst.enum = def.entries; - inst.options = Object.values(def.entries); - const keys = new Set(Object.keys(def.entries)); - inst.extract = (values, params) => { - const newEntries = {}; - for (const value of values) { - if (keys.has(value)) { - newEntries[value] = def.entries[value]; - } else - throw new Error(`Key ${value} not found in enum`); - } - return new ZodEnum(__spreadProps(__spreadValues(__spreadProps(__spreadValues({}, def), { - checks: [] - }), util_exports.normalizeParams(params)), { - entries: newEntries - })); - }; - inst.exclude = (values, params) => { - const newEntries = __spreadValues({}, def.entries); - for (const value of values) { - if (keys.has(value)) { - delete newEntries[value]; - } else - throw new Error(`Key ${value} not found in enum`); - } - return new ZodEnum(__spreadProps(__spreadValues(__spreadProps(__spreadValues({}, def), { - checks: [] - }), util_exports.normalizeParams(params)), { - entries: newEntries - })); - }; -}); -function _enum2(values, params) { - const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values; - return new ZodEnum(__spreadValues({ - type: "enum", - entries - }, util_exports.normalizeParams(params))); -} -function nativeEnum(entries, params) { - return new ZodEnum(__spreadValues({ - type: "enum", - entries - }, util_exports.normalizeParams(params))); -} -var ZodLiteral = /* @__PURE__ */ $constructor("ZodLiteral", (inst, def) => { - $ZodLiteral.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => literalProcessor(inst, ctx, json2, params); - inst.values = new Set(def.values); - Object.defineProperty(inst, "value", { - get() { - if (def.values.length > 1) { - throw new Error("This schema contains multiple valid literal values. Use `.values` instead."); - } - return def.values[0]; - } - }); -}); -function literal(value, params) { - return new ZodLiteral(__spreadValues({ - type: "literal", - values: Array.isArray(value) ? value : [value] - }, util_exports.normalizeParams(params))); -} -var ZodFile = /* @__PURE__ */ $constructor("ZodFile", (inst, def) => { - $ZodFile.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => fileProcessor(inst, ctx, json2, params); - inst.min = (size, params) => inst.check(_minSize(size, params)); - inst.max = (size, params) => inst.check(_maxSize(size, params)); - inst.mime = (types2, params) => inst.check(_mime(Array.isArray(types2) ? types2 : [types2], params)); -}); -function file(params) { - return _file(ZodFile, params); -} -var ZodTransform = /* @__PURE__ */ $constructor("ZodTransform", (inst, def) => { - $ZodTransform.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => transformProcessor(inst, ctx, json2, params); - inst._zod.parse = (payload, _ctx) => { - if (_ctx.direction === "backward") { - throw new $ZodEncodeError(inst.constructor.name); - } - payload.addIssue = (issue2) => { - var _a5, _b, _c; - if (typeof issue2 === "string") { - payload.issues.push(util_exports.issue(issue2, payload.value, def)); - } else { - const _issue = issue2; - if (_issue.fatal) - _issue.continue = false; - (_a5 = _issue.code) != null ? _a5 : _issue.code = "custom"; - (_b = _issue.input) != null ? _b : _issue.input = payload.value; - (_c = _issue.inst) != null ? _c : _issue.inst = inst; - payload.issues.push(util_exports.issue(_issue)); - } - }; - const output = def.transform(payload.value, payload); - if (output instanceof Promise) { - return output.then((output2) => { - payload.value = output2; - payload.fallback = true; - return payload; - }); - } - payload.value = output; - payload.fallback = true; - return payload; - }; -}); -function transform(fn) { - return new ZodTransform({ - type: "transform", - transform: fn - }); -} -var ZodOptional = /* @__PURE__ */ $constructor("ZodOptional", (inst, def) => { - $ZodOptional.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => optionalProcessor(inst, ctx, json2, params); - inst.unwrap = () => inst._zod.def.innerType; -}); -function optional(innerType) { - return new ZodOptional({ - type: "optional", - innerType - }); -} -var ZodExactOptional = /* @__PURE__ */ $constructor("ZodExactOptional", (inst, def) => { - $ZodExactOptional.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => optionalProcessor(inst, ctx, json2, params); - inst.unwrap = () => inst._zod.def.innerType; -}); -function exactOptional(innerType) { - return new ZodExactOptional({ - type: "optional", - innerType - }); -} -var ZodNullable = /* @__PURE__ */ $constructor("ZodNullable", (inst, def) => { - $ZodNullable.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => nullableProcessor(inst, ctx, json2, params); - inst.unwrap = () => inst._zod.def.innerType; -}); -function nullable(innerType) { - return new ZodNullable({ - type: "nullable", - innerType - }); -} -function nullish2(innerType) { - return optional(nullable(innerType)); -} -var ZodDefault = /* @__PURE__ */ $constructor("ZodDefault", (inst, def) => { - $ZodDefault.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => defaultProcessor(inst, ctx, json2, params); - inst.unwrap = () => inst._zod.def.innerType; - inst.removeDefault = inst.unwrap; -}); -function _default2(innerType, defaultValue) { - return new ZodDefault({ - type: "default", - innerType, - get defaultValue() { - return typeof defaultValue === "function" ? defaultValue() : util_exports.shallowClone(defaultValue); - } - }); -} -var ZodPrefault = /* @__PURE__ */ $constructor("ZodPrefault", (inst, def) => { - $ZodPrefault.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => prefaultProcessor(inst, ctx, json2, params); - inst.unwrap = () => inst._zod.def.innerType; -}); -function prefault(innerType, defaultValue) { - return new ZodPrefault({ - type: "prefault", - innerType, - get defaultValue() { - return typeof defaultValue === "function" ? defaultValue() : util_exports.shallowClone(defaultValue); - } - }); -} -var ZodNonOptional = /* @__PURE__ */ $constructor("ZodNonOptional", (inst, def) => { - $ZodNonOptional.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => nonoptionalProcessor(inst, ctx, json2, params); - inst.unwrap = () => inst._zod.def.innerType; -}); -function nonoptional(innerType, params) { - return new ZodNonOptional(__spreadValues({ - type: "nonoptional", - innerType - }, util_exports.normalizeParams(params))); -} -var ZodSuccess = /* @__PURE__ */ $constructor("ZodSuccess", (inst, def) => { - $ZodSuccess.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => successProcessor(inst, ctx, json2, params); - inst.unwrap = () => inst._zod.def.innerType; -}); -function success(innerType) { - return new ZodSuccess({ - type: "success", - innerType - }); -} -var ZodCatch = /* @__PURE__ */ $constructor("ZodCatch", (inst, def) => { - $ZodCatch.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => catchProcessor(inst, ctx, json2, params); - inst.unwrap = () => inst._zod.def.innerType; - inst.removeCatch = inst.unwrap; -}); -function _catch2(innerType, catchValue) { - return new ZodCatch({ - type: "catch", - innerType, - catchValue: typeof catchValue === "function" ? catchValue : () => catchValue - }); -} -var ZodNaN = /* @__PURE__ */ $constructor("ZodNaN", (inst, def) => { - $ZodNaN.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => nanProcessor(inst, ctx, json2, params); -}); -function nan(params) { - return _nan(ZodNaN, params); -} -var ZodPipe = /* @__PURE__ */ $constructor("ZodPipe", (inst, def) => { - $ZodPipe.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => pipeProcessor(inst, ctx, json2, params); - inst.in = def.in; - inst.out = def.out; -}); -function pipe(in_, out) { - return new ZodPipe({ - type: "pipe", - in: in_, - out - // ...util.normalizeParams(params), - }); -} -var ZodCodec = /* @__PURE__ */ $constructor("ZodCodec", (inst, def) => { - ZodPipe.init(inst, def); - $ZodCodec.init(inst, def); -}); -function codec(in_, out, params) { - return new ZodCodec({ - type: "pipe", - in: in_, - out, - transform: params.decode, - reverseTransform: params.encode - }); -} -function invertCodec(codec2) { - const def = codec2._zod.def; - return new ZodCodec({ - type: "pipe", - in: def.out, - out: def.in, - transform: def.reverseTransform, - reverseTransform: def.transform - }); -} -var ZodPreprocess = /* @__PURE__ */ $constructor("ZodPreprocess", (inst, def) => { - ZodPipe.init(inst, def); - $ZodPreprocess.init(inst, def); -}); -var ZodReadonly = /* @__PURE__ */ $constructor("ZodReadonly", (inst, def) => { - $ZodReadonly.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => readonlyProcessor(inst, ctx, json2, params); - inst.unwrap = () => inst._zod.def.innerType; -}); -function readonly(innerType) { - return new ZodReadonly({ - type: "readonly", - innerType - }); -} -var ZodTemplateLiteral = /* @__PURE__ */ $constructor("ZodTemplateLiteral", (inst, def) => { - $ZodTemplateLiteral.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => templateLiteralProcessor(inst, ctx, json2, params); -}); -function templateLiteral(parts, params) { - return new ZodTemplateLiteral(__spreadValues({ - type: "template_literal", - parts - }, util_exports.normalizeParams(params))); -} -var ZodLazy = /* @__PURE__ */ $constructor("ZodLazy", (inst, def) => { - $ZodLazy.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => lazyProcessor(inst, ctx, json2, params); - inst.unwrap = () => inst._zod.def.getter(); -}); -function lazy(getter) { - return new ZodLazy({ - type: "lazy", - getter - }); -} -var ZodPromise = /* @__PURE__ */ $constructor("ZodPromise", (inst, def) => { - $ZodPromise.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => promiseProcessor(inst, ctx, json2, params); - inst.unwrap = () => inst._zod.def.innerType; -}); -function promise(innerType) { - return new ZodPromise({ - type: "promise", - innerType - }); -} -var ZodFunction = /* @__PURE__ */ $constructor("ZodFunction", (inst, def) => { - $ZodFunction.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => functionProcessor(inst, ctx, json2, params); -}); -function _function(params) { - var _a5, _b; - return new ZodFunction({ - type: "function", - input: Array.isArray(params == null ? void 0 : params.input) ? tuple(params == null ? void 0 : params.input) : (_a5 = params == null ? void 0 : params.input) != null ? _a5 : array(unknown()), - output: (_b = params == null ? void 0 : params.output) != null ? _b : unknown() - }); -} -var ZodCustom = /* @__PURE__ */ $constructor("ZodCustom", (inst, def) => { - $ZodCustom.init(inst, def); - ZodType.init(inst, def); - inst._zod.processJSONSchema = (ctx, json2, params) => customProcessor(inst, ctx, json2, params); -}); -function check(fn) { - const ch = new $ZodCheck({ - check: "custom" - // ...util.normalizeParams(params), - }); - ch._zod.check = fn; - return ch; -} -function custom(fn, _params) { - return _custom(ZodCustom, fn != null ? fn : (() => true), _params); -} -function refine(fn, _params = {}) { - return _refine(ZodCustom, fn, _params); -} -function superRefine(fn, params) { - return _superRefine(fn, params); -} -var describe2 = describe; -var meta2 = meta; -function _instanceof(cls, params = {}) { - const inst = new ZodCustom(__spreadValues({ - type: "custom", - check: "custom", - fn: (data2) => data2 instanceof cls, - abort: true - }, util_exports.normalizeParams(params))); - inst._zod.bag.Class = cls; - inst._zod.check = (payload) => { - var _a5; - if (!(payload.value instanceof cls)) { - payload.issues.push({ - code: "invalid_type", - expected: cls.name, - input: payload.value, - inst, - path: [...(_a5 = inst._zod.def.path) != null ? _a5 : []] - }); - } - }; - return inst; -} -var stringbool = (...args) => _stringbool({ - Codec: ZodCodec, - Boolean: ZodBoolean, - String: ZodString -}, ...args); -function json(params) { - const jsonSchema = lazy(() => { - return union([string2(params), number2(), boolean2(), _null3(), array(jsonSchema), record(string2(), jsonSchema)]); - }); - return jsonSchema; -} -function preprocess(fn, schema) { - return new ZodPreprocess({ - type: "pipe", - in: transform(fn), - out: schema - }); -} - -// node_modules/zod/v4/classic/compat.js -var ZodIssueCode = { - invalid_type: "invalid_type", - too_big: "too_big", - too_small: "too_small", - invalid_format: "invalid_format", - not_multiple_of: "not_multiple_of", - unrecognized_keys: "unrecognized_keys", - invalid_union: "invalid_union", - invalid_key: "invalid_key", - invalid_element: "invalid_element", - invalid_value: "invalid_value", - custom: "custom" -}; -function setErrorMap(map3) { - config({ - customError: map3 - }); -} -function getErrorMap() { - return config().customError; -} -var ZodFirstPartyTypeKind; -/* @__PURE__ */ (function(ZodFirstPartyTypeKind2) { -})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {})); - -// node_modules/zod/v4/classic/from-json-schema.js -var z = __spreadProps(__spreadValues(__spreadValues({}, schemas_exports2), checks_exports2), { - iso: iso_exports -}); -var RECOGNIZED_KEYS = /* @__PURE__ */ new Set([ - // Schema identification - "$schema", - "$ref", - "$defs", - "definitions", - // Core schema keywords - "$id", - "id", - "$comment", - "$anchor", - "$vocabulary", - "$dynamicRef", - "$dynamicAnchor", - // Type - "type", - "enum", - "const", - // Composition - "anyOf", - "oneOf", - "allOf", - "not", - // Object - "properties", - "required", - "additionalProperties", - "patternProperties", - "propertyNames", - "minProperties", - "maxProperties", - // Array - "items", - "prefixItems", - "additionalItems", - "minItems", - "maxItems", - "uniqueItems", - "contains", - "minContains", - "maxContains", - // String - "minLength", - "maxLength", - "pattern", - "format", - // Number - "minimum", - "maximum", - "exclusiveMinimum", - "exclusiveMaximum", - "multipleOf", - // Already handled metadata - "description", - "default", - // Content - "contentEncoding", - "contentMediaType", - "contentSchema", - // Unsupported (error-throwing) - "unevaluatedItems", - "unevaluatedProperties", - "if", - "then", - "else", - "dependentSchemas", - "dependentRequired", - // OpenAPI - "nullable", - "readOnly" -]); -function detectVersion(schema, defaultTarget) { - const $schema = schema.$schema; - if ($schema === "https://json-schema.org/draft/2020-12/schema") { - return "draft-2020-12"; - } - if ($schema === "http://json-schema.org/draft-07/schema#") { - return "draft-7"; - } - if ($schema === "http://json-schema.org/draft-04/schema#") { - return "draft-4"; - } - return defaultTarget != null ? defaultTarget : "draft-2020-12"; -} -function resolveRef(ref2, ctx) { - if (!ref2.startsWith("#")) { - throw new Error("External $ref is not supported, only local refs (#/...) are allowed"); - } - const path = ref2.slice(1).split("/").filter(Boolean); - if (path.length === 0) { - return ctx.rootSchema; - } - const defsKey = ctx.version === "draft-2020-12" ? "$defs" : "definitions"; - if (path[0] === defsKey) { - const key = path[1]; - if (!key || !ctx.defs[key]) { - throw new Error(`Reference not found: ${ref2}`); - } - return ctx.defs[key]; - } - throw new Error(`Reference not found: ${ref2}`); -} -function convertBaseSchema(schema, ctx) { - if (schema.not !== void 0) { - if (typeof schema.not === "object" && Object.keys(schema.not).length === 0) { - return z.never(); - } - throw new Error("not is not supported in Zod (except { not: {} } for never)"); - } - if (schema.unevaluatedItems !== void 0) { - throw new Error("unevaluatedItems is not supported"); - } - if (schema.unevaluatedProperties !== void 0) { - throw new Error("unevaluatedProperties is not supported"); - } - if (schema.if !== void 0 || schema.then !== void 0 || schema.else !== void 0) { - throw new Error("Conditional schemas (if/then/else) are not supported"); - } - if (schema.dependentSchemas !== void 0 || schema.dependentRequired !== void 0) { - throw new Error("dependentSchemas and dependentRequired are not supported"); - } - if (schema.$ref) { - const refPath = schema.$ref; - if (ctx.refs.has(refPath)) { - return ctx.refs.get(refPath); - } - if (ctx.processing.has(refPath)) { - return z.lazy(() => { - if (!ctx.refs.has(refPath)) { - throw new Error(`Circular reference not resolved: ${refPath}`); - } - return ctx.refs.get(refPath); - }); - } - ctx.processing.add(refPath); - const resolved = resolveRef(refPath, ctx); - const zodSchema2 = convertSchema(resolved, ctx); - ctx.refs.set(refPath, zodSchema2); - ctx.processing.delete(refPath); - return zodSchema2; - } - if (schema.enum !== void 0) { - const enumValues = schema.enum; - if (ctx.version === "openapi-3.0" && schema.nullable === true && enumValues.length === 1 && enumValues[0] === null) { - return z.null(); - } - if (enumValues.length === 0) { - return z.never(); - } - if (enumValues.length === 1) { - return z.literal(enumValues[0]); - } - if (enumValues.every((v) => typeof v === "string")) { - return z.enum(enumValues); - } - const literalSchemas = enumValues.map((v) => z.literal(v)); - if (literalSchemas.length < 2) { - return literalSchemas[0]; - } - return z.union([literalSchemas[0], literalSchemas[1], ...literalSchemas.slice(2)]); - } - if (schema.const !== void 0) { - return z.literal(schema.const); - } - const type = schema.type; - if (Array.isArray(type)) { - const typeSchemas = type.map((t) => { - const typeSchema = __spreadProps(__spreadValues({}, schema), { type: t }); - return convertBaseSchema(typeSchema, ctx); - }); - if (typeSchemas.length === 0) { - return z.never(); - } - if (typeSchemas.length === 1) { - return typeSchemas[0]; - } - return z.union(typeSchemas); - } - if (!type) { - return z.any(); - } - let zodSchema; - switch (type) { - case "string": { - let stringSchema = z.string(); - if (schema.format) { - const format = schema.format; - if (format === "email") { - stringSchema = stringSchema.check(z.email()); - } else if (format === "uri" || format === "uri-reference") { - stringSchema = stringSchema.check(z.url()); - } else if (format === "uuid" || format === "guid") { - stringSchema = stringSchema.check(z.uuid()); - } else if (format === "date-time") { - stringSchema = stringSchema.check(z.iso.datetime()); - } else if (format === "date") { - stringSchema = stringSchema.check(z.iso.date()); - } else if (format === "time") { - stringSchema = stringSchema.check(z.iso.time()); - } else if (format === "duration") { - stringSchema = stringSchema.check(z.iso.duration()); - } else if (format === "ipv4") { - stringSchema = stringSchema.check(z.ipv4()); - } else if (format === "ipv6") { - stringSchema = stringSchema.check(z.ipv6()); - } else if (format === "mac") { - stringSchema = stringSchema.check(z.mac()); - } else if (format === "cidr") { - stringSchema = stringSchema.check(z.cidrv4()); - } else if (format === "cidr-v6") { - stringSchema = stringSchema.check(z.cidrv6()); - } else if (format === "base64") { - stringSchema = stringSchema.check(z.base64()); - } else if (format === "base64url") { - stringSchema = stringSchema.check(z.base64url()); - } else if (format === "e164") { - stringSchema = stringSchema.check(z.e164()); - } else if (format === "jwt") { - stringSchema = stringSchema.check(z.jwt()); - } else if (format === "emoji") { - stringSchema = stringSchema.check(z.emoji()); - } else if (format === "nanoid") { - stringSchema = stringSchema.check(z.nanoid()); - } else if (format === "cuid") { - stringSchema = stringSchema.check(z.cuid()); - } else if (format === "cuid2") { - stringSchema = stringSchema.check(z.cuid2()); - } else if (format === "ulid") { - stringSchema = stringSchema.check(z.ulid()); - } else if (format === "xid") { - stringSchema = stringSchema.check(z.xid()); - } else if (format === "ksuid") { - stringSchema = stringSchema.check(z.ksuid()); - } - } - if (typeof schema.minLength === "number") { - stringSchema = stringSchema.min(schema.minLength); - } - if (typeof schema.maxLength === "number") { - stringSchema = stringSchema.max(schema.maxLength); - } - if (schema.pattern) { - stringSchema = stringSchema.regex(new RegExp(schema.pattern)); - } - zodSchema = stringSchema; - break; - } - case "number": - case "integer": { - let numberSchema = type === "integer" ? z.number().int() : z.number(); - if (typeof schema.minimum === "number") { - numberSchema = numberSchema.min(schema.minimum); - } - if (typeof schema.maximum === "number") { - numberSchema = numberSchema.max(schema.maximum); - } - if (typeof schema.exclusiveMinimum === "number") { - numberSchema = numberSchema.gt(schema.exclusiveMinimum); - } else if (schema.exclusiveMinimum === true && typeof schema.minimum === "number") { - numberSchema = numberSchema.gt(schema.minimum); - } - if (typeof schema.exclusiveMaximum === "number") { - numberSchema = numberSchema.lt(schema.exclusiveMaximum); - } else if (schema.exclusiveMaximum === true && typeof schema.maximum === "number") { - numberSchema = numberSchema.lt(schema.maximum); - } - if (typeof schema.multipleOf === "number") { - numberSchema = numberSchema.multipleOf(schema.multipleOf); - } - zodSchema = numberSchema; - break; - } - case "boolean": { - zodSchema = z.boolean(); - break; - } - case "null": { - zodSchema = z.null(); - break; - } - case "object": { - const shape = {}; - const properties = schema.properties || {}; - const requiredSet = new Set(schema.required || []); - for (const [key, propSchema] of Object.entries(properties)) { - const propZodSchema = convertSchema(propSchema, ctx); - shape[key] = requiredSet.has(key) ? propZodSchema : propZodSchema.optional(); - } - if (schema.propertyNames) { - const keySchema = convertSchema(schema.propertyNames, ctx); - const valueSchema = schema.additionalProperties && typeof schema.additionalProperties === "object" ? convertSchema(schema.additionalProperties, ctx) : z.any(); - if (Object.keys(shape).length === 0) { - zodSchema = z.record(keySchema, valueSchema); - break; - } - const objectSchema2 = z.object(shape).passthrough(); - const recordSchema = z.looseRecord(keySchema, valueSchema); - zodSchema = z.intersection(objectSchema2, recordSchema); - break; - } - if (schema.patternProperties) { - const patternProps = schema.patternProperties; - const patternKeys = Object.keys(patternProps); - const looseRecords = []; - for (const pattern of patternKeys) { - const patternValue = convertSchema(patternProps[pattern], ctx); - const keySchema = z.string().regex(new RegExp(pattern)); - looseRecords.push(z.looseRecord(keySchema, patternValue)); - } - const schemasToIntersect = []; - if (Object.keys(shape).length > 0) { - schemasToIntersect.push(z.object(shape).passthrough()); - } - schemasToIntersect.push(...looseRecords); - if (schemasToIntersect.length === 0) { - zodSchema = z.object({}).passthrough(); - } else if (schemasToIntersect.length === 1) { - zodSchema = schemasToIntersect[0]; - } else { - let result = z.intersection(schemasToIntersect[0], schemasToIntersect[1]); - for (let i2 = 2; i2 < schemasToIntersect.length; i2++) { - result = z.intersection(result, schemasToIntersect[i2]); - } - zodSchema = result; - } - break; - } - const objectSchema = z.object(shape); - if (schema.additionalProperties === false) { - zodSchema = objectSchema.strict(); - } else if (typeof schema.additionalProperties === "object") { - zodSchema = objectSchema.catchall(convertSchema(schema.additionalProperties, ctx)); - } else { - zodSchema = objectSchema.passthrough(); - } - break; - } - case "array": { - const prefixItems = schema.prefixItems; - const items = schema.items; - if (prefixItems && Array.isArray(prefixItems)) { - const tupleItems = prefixItems.map((item) => convertSchema(item, ctx)); - const rest = items && typeof items === "object" && !Array.isArray(items) ? convertSchema(items, ctx) : void 0; - if (rest) { - zodSchema = z.tuple(tupleItems).rest(rest); - } else { - zodSchema = z.tuple(tupleItems); - } - if (typeof schema.minItems === "number") { - zodSchema = zodSchema.check(z.minLength(schema.minItems)); - } - if (typeof schema.maxItems === "number") { - zodSchema = zodSchema.check(z.maxLength(schema.maxItems)); - } - } else if (Array.isArray(items)) { - const tupleItems = items.map((item) => convertSchema(item, ctx)); - const rest = schema.additionalItems && typeof schema.additionalItems === "object" ? convertSchema(schema.additionalItems, ctx) : void 0; - if (rest) { - zodSchema = z.tuple(tupleItems).rest(rest); - } else { - zodSchema = z.tuple(tupleItems); - } - if (typeof schema.minItems === "number") { - zodSchema = zodSchema.check(z.minLength(schema.minItems)); - } - if (typeof schema.maxItems === "number") { - zodSchema = zodSchema.check(z.maxLength(schema.maxItems)); - } - } else if (items !== void 0) { - const element = convertSchema(items, ctx); - let arraySchema = z.array(element); - if (typeof schema.minItems === "number") { - arraySchema = arraySchema.min(schema.minItems); - } - if (typeof schema.maxItems === "number") { - arraySchema = arraySchema.max(schema.maxItems); - } - zodSchema = arraySchema; - } else { - zodSchema = z.array(z.any()); - } - break; - } - default: - throw new Error(`Unsupported type: ${type}`); - } - return zodSchema; -} -function convertSchema(schema, ctx) { - if (typeof schema === "boolean") { - return schema ? z.any() : z.never(); - } - let baseSchema = convertBaseSchema(schema, ctx); - const hasExplicitType = schema.type || schema.enum !== void 0 || schema.const !== void 0; - if (schema.anyOf && Array.isArray(schema.anyOf)) { - const options = schema.anyOf.map((s) => convertSchema(s, ctx)); - const anyOfUnion = z.union(options); - baseSchema = hasExplicitType ? z.intersection(baseSchema, anyOfUnion) : anyOfUnion; - } - if (schema.oneOf && Array.isArray(schema.oneOf)) { - const options = schema.oneOf.map((s) => convertSchema(s, ctx)); - const oneOfUnion = z.xor(options); - baseSchema = hasExplicitType ? z.intersection(baseSchema, oneOfUnion) : oneOfUnion; - } - if (schema.allOf && Array.isArray(schema.allOf)) { - if (schema.allOf.length === 0) { - baseSchema = hasExplicitType ? baseSchema : z.any(); - } else { - let result = hasExplicitType ? baseSchema : convertSchema(schema.allOf[0], ctx); - const startIdx = hasExplicitType ? 0 : 1; - for (let i2 = startIdx; i2 < schema.allOf.length; i2++) { - result = z.intersection(result, convertSchema(schema.allOf[i2], ctx)); - } - baseSchema = result; - } - } - if (schema.nullable === true && ctx.version === "openapi-3.0") { - baseSchema = z.nullable(baseSchema); - } - if (schema.readOnly === true) { - baseSchema = z.readonly(baseSchema); - } - if (schema.default !== void 0) { - baseSchema = baseSchema.default(schema.default); - } - const extraMeta = {}; - const coreMetadataKeys = ["$id", "id", "$comment", "$anchor", "$vocabulary", "$dynamicRef", "$dynamicAnchor"]; - for (const key of coreMetadataKeys) { - if (key in schema) { - extraMeta[key] = schema[key]; - } - } - const contentMetadataKeys = ["contentEncoding", "contentMediaType", "contentSchema"]; - for (const key of contentMetadataKeys) { - if (key in schema) { - extraMeta[key] = schema[key]; - } - } - for (const key of Object.keys(schema)) { - if (!RECOGNIZED_KEYS.has(key)) { - extraMeta[key] = schema[key]; - } - } - if (Object.keys(extraMeta).length > 0) { - ctx.registry.add(baseSchema, extraMeta); - } - if (schema.description) { - baseSchema = baseSchema.describe(schema.description); - } - return baseSchema; -} -function fromJSONSchema(schema, params) { - var _a5; - if (typeof schema === "boolean") { - return schema ? z.any() : z.never(); - } - let normalized; - try { - normalized = JSON.parse(JSON.stringify(schema)); - } catch (e) { - throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas"); - } - const version3 = detectVersion(normalized, params == null ? void 0 : params.defaultTarget); - const defs = normalized.$defs || normalized.definitions || {}; - const ctx = { - version: version3, - defs, - refs: /* @__PURE__ */ new Map(), - processing: /* @__PURE__ */ new Set(), - rootSchema: normalized, - registry: (_a5 = params == null ? void 0 : params.registry) != null ? _a5 : globalRegistry - }; - return convertSchema(normalized, ctx); -} - -// node_modules/zod/v4/classic/coerce.js -var coerce_exports = {}; -__export(coerce_exports, { - bigint: () => bigint3, - boolean: () => boolean3, - date: () => date4, - number: () => number3, - string: () => string3 -}); -function string3(params) { - return _coercedString(ZodString, params); -} -function number3(params) { - return _coercedNumber(ZodNumber, params); -} -function boolean3(params) { - return _coercedBoolean(ZodBoolean, params); -} -function bigint3(params) { - return _coercedBigint(ZodBigInt, params); -} -function date4(params) { - return _coercedDate(ZodDate, params); -} - -// node_modules/zod/v4/classic/external.js -config(en_default()); - -// node_modules/acorn/dist/acorn.mjs -var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; -var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489]; -var nonASCIIidentifierChars = "\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65"; -var nonASCIIidentifierStartChars = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088F\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5C\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDC-\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7DC\uA7F1-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC"; -var reservedWords = { - 3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile", - 5: "class enum extends super const export import", - 6: "enum", - strict: "implements interface let package private protected public static yield", - strictBind: "eval arguments" -}; -var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this"; -var keywords$1 = { - 5: ecma5AndLessKeywords, - "5module": ecma5AndLessKeywords + " export import", - 6: ecma5AndLessKeywords + " const class extends export import super" -}; -var keywordRelationalOperator = /^in(stanceof)?$/; -var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); -var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); -function isInAstralSet(code, set2) { - var pos = 65536; - for (var i2 = 0; i2 < set2.length; i2 += 2) { - pos += set2[i2]; - if (pos > code) { - return false; - } - pos += set2[i2 + 1]; - if (pos >= code) { - return true; - } - } - return false; -} -function isIdentifierStart(code, astral) { - if (code < 65) { - return code === 36; - } - if (code < 91) { - return true; - } - if (code < 97) { - return code === 95; - } - if (code < 123) { - return true; - } - if (code <= 65535) { - return code >= 170 && nonASCIIidentifierStart.test(String.fromCharCode(code)); - } - if (astral === false) { - return false; - } - return isInAstralSet(code, astralIdentifierStartCodes); -} -function isIdentifierChar(code, astral) { - if (code < 48) { - return code === 36; - } - if (code < 58) { - return true; - } - if (code < 65) { - return false; - } - if (code < 91) { - return true; - } - if (code < 97) { - return code === 95; - } - if (code < 123) { - return true; - } - if (code <= 65535) { - return code >= 170 && nonASCIIidentifier.test(String.fromCharCode(code)); - } - if (astral === false) { - return false; - } - return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); -} -var TokenType = function TokenType2(label, conf) { - if (conf === void 0) conf = {}; - this.label = label; - this.keyword = conf.keyword; - this.beforeExpr = !!conf.beforeExpr; - this.startsExpr = !!conf.startsExpr; - this.isLoop = !!conf.isLoop; - this.isAssign = !!conf.isAssign; - this.prefix = !!conf.prefix; - this.postfix = !!conf.postfix; - this.binop = conf.binop || null; - this.updateContext = null; -}; -function binop(name, prec) { - return new TokenType(name, { beforeExpr: true, binop: prec }); -} -var beforeExpr = { beforeExpr: true }; -var startsExpr = { startsExpr: true }; -var keywords = {}; -function kw(name, options) { - if (options === void 0) options = {}; - options.keyword = name; - return keywords[name] = new TokenType(name, options); -} -var types$1 = { - num: new TokenType("num", startsExpr), - regexp: new TokenType("regexp", startsExpr), - string: new TokenType("string", startsExpr), - name: new TokenType("name", startsExpr), - privateId: new TokenType("privateId", startsExpr), - eof: new TokenType("eof"), - // Punctuation token types. - bracketL: new TokenType("[", { beforeExpr: true, startsExpr: true }), - bracketR: new TokenType("]"), - braceL: new TokenType("{", { beforeExpr: true, startsExpr: true }), - braceR: new TokenType("}"), - parenL: new TokenType("(", { beforeExpr: true, startsExpr: true }), - parenR: new TokenType(")"), - comma: new TokenType(",", beforeExpr), - semi: new TokenType(";", beforeExpr), - colon: new TokenType(":", beforeExpr), - dot: new TokenType("."), - question: new TokenType("?", beforeExpr), - questionDot: new TokenType("?."), - arrow: new TokenType("=>", beforeExpr), - template: new TokenType("template"), - invalidTemplate: new TokenType("invalidTemplate"), - ellipsis: new TokenType("...", beforeExpr), - backQuote: new TokenType("`", startsExpr), - dollarBraceL: new TokenType("${", { beforeExpr: true, startsExpr: true }), - // Operators. These carry several kinds of properties to help the - // parser use them properly (the presence of these properties is - // what categorizes them as operators). - // - // `binop`, when present, specifies that this operator is a binary - // operator, and will refer to its precedence. - // - // `prefix` and `postfix` mark the operator as a prefix or postfix - // unary operator. - // - // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as - // binary operators with a very low precedence, that should result - // in AssignmentExpression nodes. - eq: new TokenType("=", { beforeExpr: true, isAssign: true }), - assign: new TokenType("_=", { beforeExpr: true, isAssign: true }), - incDec: new TokenType("++/--", { prefix: true, postfix: true, startsExpr: true }), - prefix: new TokenType("!/~", { beforeExpr: true, prefix: true, startsExpr: true }), - logicalOR: binop("||", 1), - logicalAND: binop("&&", 2), - bitwiseOR: binop("|", 3), - bitwiseXOR: binop("^", 4), - bitwiseAND: binop("&", 5), - equality: binop("==/!=/===/!==", 6), - relational: binop("/<=/>=", 7), - bitShift: binop("<>/>>>", 8), - plusMin: new TokenType("+/-", { beforeExpr: true, binop: 9, prefix: true, startsExpr: true }), - modulo: binop("%", 10), - star: binop("*", 10), - slash: binop("/", 10), - starstar: new TokenType("**", { beforeExpr: true }), - coalesce: binop("??", 1), - // Keyword token types. - _break: kw("break"), - _case: kw("case", beforeExpr), - _catch: kw("catch"), - _continue: kw("continue"), - _debugger: kw("debugger"), - _default: kw("default", beforeExpr), - _do: kw("do", { isLoop: true, beforeExpr: true }), - _else: kw("else", beforeExpr), - _finally: kw("finally"), - _for: kw("for", { isLoop: true }), - _function: kw("function", startsExpr), - _if: kw("if"), - _return: kw("return", beforeExpr), - _switch: kw("switch"), - _throw: kw("throw", beforeExpr), - _try: kw("try"), - _var: kw("var"), - _const: kw("const"), - _while: kw("while", { isLoop: true }), - _with: kw("with"), - _new: kw("new", { beforeExpr: true, startsExpr: true }), - _this: kw("this", startsExpr), - _super: kw("super", startsExpr), - _class: kw("class", startsExpr), - _extends: kw("extends", beforeExpr), - _export: kw("export"), - _import: kw("import", startsExpr), - _null: kw("null", startsExpr), - _true: kw("true", startsExpr), - _false: kw("false", startsExpr), - _in: kw("in", { beforeExpr: true, binop: 7 }), - _instanceof: kw("instanceof", { beforeExpr: true, binop: 7 }), - _typeof: kw("typeof", { beforeExpr: true, prefix: true, startsExpr: true }), - _void: kw("void", { beforeExpr: true, prefix: true, startsExpr: true }), - _delete: kw("delete", { beforeExpr: true, prefix: true, startsExpr: true }) -}; -var lineBreak = /\r\n?|\n|\u2028|\u2029/; -var lineBreakG = new RegExp(lineBreak.source, "g"); -function isNewLine(code) { - return code === 10 || code === 13 || code === 8232 || code === 8233; -} -function nextLineBreak(code, from, end) { - if (end === void 0) end = code.length; - for (var i2 = from; i2 < end; i2++) { - var next = code.charCodeAt(i2); - if (isNewLine(next)) { - return i2 < end - 1 && next === 13 && code.charCodeAt(i2 + 1) === 10 ? i2 + 2 : i2 + 1; - } - } - return -1; -} -var nonASCIIwhitespace = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/; -var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; -var ref = Object.prototype; -var hasOwnProperty = ref.hasOwnProperty; -var toString = ref.toString; -var hasOwn = Object.hasOwn || (function(obj, propName) { - return hasOwnProperty.call(obj, propName); -}); -var isArray = Array.isArray || (function(obj) { - return toString.call(obj) === "[object Array]"; -}); -var regexpCache = /* @__PURE__ */ Object.create(null); -function wordsRegexp(words) { - return regexpCache[words] || (regexpCache[words] = new RegExp("^(?:" + words.replace(/ /g, "|") + ")$")); -} -function codePointToString(code) { - if (code <= 65535) { - return String.fromCharCode(code); - } - code -= 65536; - return String.fromCharCode((code >> 10) + 55296, (code & 1023) + 56320); -} -var loneSurrogate = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/; -var Position = function Position2(line, col) { - this.line = line; - this.column = col; -}; -Position.prototype.offset = function offset(n) { - return new Position(this.line, this.column + n); -}; -var SourceLocation = function SourceLocation2(p, start, end) { - this.start = start; - this.end = end; - if (p.sourceFile !== null) { - this.source = p.sourceFile; - } -}; -function getLineInfo(input, offset2) { - for (var line = 1, cur = 0; ; ) { - var nextBreak = nextLineBreak(input, cur, offset2); - if (nextBreak < 0) { - return new Position(line, offset2 - cur); - } - ++line; - cur = nextBreak; - } -} -var defaultOptions = { - // `ecmaVersion` indicates the ECMAScript version to parse. Must be - // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10 - // (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `"latest"` - // (the latest version the library supports). This influences - // support for strict mode, the set of reserved words, and support - // for new syntax features. - ecmaVersion: null, - // `sourceType` indicates the mode the code should be parsed in. - // Can be either `"script"`, `"module"` or `"commonjs"`. This influences global - // strict mode and parsing of `import` and `export` declarations. - sourceType: "script", - // `onInsertedSemicolon` can be a callback that will be called when - // a semicolon is automatically inserted. It will be passed the - // position of the inserted semicolon as an offset, and if - // `locations` is enabled, it is given the location as a `{line, - // column}` object as second argument. - onInsertedSemicolon: null, - // `onTrailingComma` is similar to `onInsertedSemicolon`, but for - // trailing commas. - onTrailingComma: null, - // By default, reserved words are only enforced if ecmaVersion >= 5. - // Set `allowReserved` to a boolean value to explicitly turn this on - // an off. When this option has the value "never", reserved words - // and keywords can also not be used as property names. - allowReserved: null, - // When enabled, a return at the top level is not considered an - // error. - allowReturnOutsideFunction: false, - // When enabled, import/export statements are not constrained to - // appearing at the top of the program, and an import.meta expression - // in a script isn't considered an error. - allowImportExportEverywhere: false, - // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022. - // When enabled, await identifiers are allowed to appear at the top-level scope, - // but they are still not allowed in non-async functions. - allowAwaitOutsideFunction: null, - // When enabled, super identifiers are not constrained to - // appearing in methods and do not raise an error when they appear elsewhere. - allowSuperOutsideMethod: null, - // When enabled, hashbang directive in the beginning of file is - // allowed and treated as a line comment. Enabled by default when - // `ecmaVersion` >= 2023. - allowHashBang: false, - // By default, the parser will verify that private properties are - // only used in places where they are valid and have been declared. - // Set this to false to turn such checks off. - checkPrivateFields: true, - // When `locations` is on, `loc` properties holding objects with - // `start` and `end` properties in `{line, column}` form (with - // line being 1-based and column 0-based) will be attached to the - // nodes. - locations: false, - // A function can be passed as `onToken` option, which will - // cause Acorn to call that function with object in the same - // format as tokens returned from `tokenizer().getToken()`. Note - // that you are not allowed to call the parser from the - // callback—that will corrupt its internal state. - onToken: null, - // A function can be passed as `onComment` option, which will - // cause Acorn to call that function with `(block, text, start, - // end)` parameters whenever a comment is skipped. `block` is a - // boolean indicating whether this is a block (`/* */`) comment, - // `text` is the content of the comment, and `start` and `end` are - // character offsets that denote the start and end of the comment. - // When the `locations` option is on, two more parameters are - // passed, the full `{line, column}` locations of the start and - // end of the comments. Note that you are not allowed to call the - // parser from the callback—that will corrupt its internal state. - // When this option has an array as value, objects representing the - // comments are pushed to it. - onComment: null, - // Nodes have their start and end characters offsets recorded in - // `start` and `end` properties (directly on the node, rather than - // the `loc` object, which holds line/column data. To also add a - // [semi-standardized][range] `range` property holding a `[start, - // end]` array with the same numbers, set the `ranges` option to - // `true`. - // - // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678 - ranges: false, - // It is possible to parse multiple files into a single AST by - // passing the tree produced by parsing the first file as - // `program` option in subsequent parses. This will add the - // toplevel forms of the parsed file to the `Program` (top) node - // of an existing parse tree. - program: null, - // When `locations` is on, you can pass this to record the source - // file in every node's `loc` object. - sourceFile: null, - // This value, if given, is stored in every node, whether - // `locations` is on or off. - directSourceFile: null, - // When enabled, parenthesized expressions are represented by - // (non-standard) ParenthesizedExpression nodes - preserveParens: false -}; -var warnedAboutEcmaVersion = false; -function getOptions(opts) { - var options = {}; - for (var opt in defaultOptions) { - options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt]; - } - if (options.ecmaVersion === "latest") { - options.ecmaVersion = 1e8; - } else if (options.ecmaVersion == null) { - if (!warnedAboutEcmaVersion && typeof console === "object" && console.warn) { - warnedAboutEcmaVersion = true; - console.warn("Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future."); - } - options.ecmaVersion = 11; - } else if (options.ecmaVersion >= 2015) { - options.ecmaVersion -= 2009; - } - if (options.allowReserved == null) { - options.allowReserved = options.ecmaVersion < 5; - } - if (!opts || opts.allowHashBang == null) { - options.allowHashBang = options.ecmaVersion >= 14; - } - if (isArray(options.onToken)) { - var tokens = options.onToken; - options.onToken = function(token) { - return tokens.push(token); - }; - } - if (isArray(options.onComment)) { - options.onComment = pushComment(options, options.onComment); - } - if (options.sourceType === "commonjs" && options.allowAwaitOutsideFunction) { - throw new Error("Cannot use allowAwaitOutsideFunction with sourceType: commonjs"); - } - return options; -} -function pushComment(options, array2) { - return function(block, text, start, end, startLoc, endLoc) { - var comment = { - type: block ? "Block" : "Line", - value: text, - start, - end - }; - if (options.locations) { - comment.loc = new SourceLocation(this, startLoc, endLoc); - } - if (options.ranges) { - comment.range = [start, end]; - } - array2.push(comment); - }; -} -var SCOPE_TOP = 1; -var SCOPE_FUNCTION = 2; -var SCOPE_ASYNC = 4; -var SCOPE_GENERATOR = 8; -var SCOPE_ARROW = 16; -var SCOPE_SIMPLE_CATCH = 32; -var SCOPE_SUPER = 64; -var SCOPE_DIRECT_SUPER = 128; -var SCOPE_CLASS_STATIC_BLOCK = 256; -var SCOPE_CLASS_FIELD_INIT = 512; -var SCOPE_SWITCH = 1024; -var SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK; -function functionFlags(async, generator) { - return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0); -} -var BIND_NONE = 0; -var BIND_VAR = 1; -var BIND_LEXICAL = 2; -var BIND_FUNCTION = 3; -var BIND_SIMPLE_CATCH = 4; -var BIND_OUTSIDE = 5; -var Parser = function Parser2(options, input, startPos) { - this.options = options = getOptions(options); - this.sourceFile = options.sourceFile; - this.keywords = wordsRegexp(keywords$1[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]); - var reserved = ""; - if (options.allowReserved !== true) { - reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3]; - if (options.sourceType === "module") { - reserved += " await"; - } - } - this.reservedWords = wordsRegexp(reserved); - var reservedStrict = (reserved ? reserved + " " : "") + reservedWords.strict; - this.reservedWordsStrict = wordsRegexp(reservedStrict); - this.reservedWordsStrictBind = wordsRegexp(reservedStrict + " " + reservedWords.strictBind); - this.input = String(input); - this.containsEsc = false; - if (startPos) { - this.pos = startPos; - this.lineStart = this.input.lastIndexOf("\n", startPos - 1) + 1; - this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length; - } else { - this.pos = this.lineStart = 0; - this.curLine = 1; - } - this.type = types$1.eof; - this.value = null; - this.start = this.end = this.pos; - this.startLoc = this.endLoc = this.curPosition(); - this.lastTokEndLoc = this.lastTokStartLoc = null; - this.lastTokStart = this.lastTokEnd = this.pos; - this.context = this.initialContext(); - this.exprAllowed = true; - this.inModule = options.sourceType === "module"; - this.strict = this.inModule || this.strictDirective(this.pos); - this.potentialArrowAt = -1; - this.potentialArrowInForAwait = false; - this.yieldPos = this.awaitPos = this.awaitIdentPos = 0; - this.labels = []; - this.undefinedExports = /* @__PURE__ */ Object.create(null); - if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === "#!") { - this.skipLineComment(2); - } - this.scopeStack = []; - this.enterScope( - this.options.sourceType === "commonjs" ? SCOPE_FUNCTION : SCOPE_TOP - ); - this.regexpState = null; - this.privateNameStack = []; -}; -var prototypeAccessors = { inFunction: { configurable: true }, inGenerator: { configurable: true }, inAsync: { configurable: true }, canAwait: { configurable: true }, allowReturn: { configurable: true }, allowSuper: { configurable: true }, allowDirectSuper: { configurable: true }, treatFunctionsAsVar: { configurable: true }, allowNewDotTarget: { configurable: true }, allowUsing: { configurable: true }, inClassStaticBlock: { configurable: true } }; -Parser.prototype.parse = function parse3() { - var node = this.options.program || this.startNode(); - this.nextToken(); - return this.parseTopLevel(node); -}; -prototypeAccessors.inFunction.get = function() { - return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0; -}; -prototypeAccessors.inGenerator.get = function() { - return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0; -}; -prototypeAccessors.inAsync.get = function() { - return (this.currentVarScope().flags & SCOPE_ASYNC) > 0; -}; -prototypeAccessors.canAwait.get = function() { - for (var i2 = this.scopeStack.length - 1; i2 >= 0; i2--) { - var ref2 = this.scopeStack[i2]; - var flags = ref2.flags; - if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT)) { - return false; - } - if (flags & SCOPE_FUNCTION) { - return (flags & SCOPE_ASYNC) > 0; - } - } - return this.inModule && this.options.ecmaVersion >= 13 || this.options.allowAwaitOutsideFunction; -}; -prototypeAccessors.allowReturn.get = function() { - if (this.inFunction) { - return true; - } - if (this.options.allowReturnOutsideFunction && this.currentVarScope().flags & SCOPE_TOP) { - return true; - } - return false; -}; -prototypeAccessors.allowSuper.get = function() { - var ref2 = this.currentThisScope(); - var flags = ref2.flags; - return (flags & SCOPE_SUPER) > 0 || this.options.allowSuperOutsideMethod; -}; -prototypeAccessors.allowDirectSuper.get = function() { - return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0; -}; -prototypeAccessors.treatFunctionsAsVar.get = function() { - return this.treatFunctionsAsVarInScope(this.currentScope()); -}; -prototypeAccessors.allowNewDotTarget.get = function() { - for (var i2 = this.scopeStack.length - 1; i2 >= 0; i2--) { - var ref2 = this.scopeStack[i2]; - var flags = ref2.flags; - if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT) || flags & SCOPE_FUNCTION && !(flags & SCOPE_ARROW)) { - return true; - } - } - return false; -}; -prototypeAccessors.allowUsing.get = function() { - var ref2 = this.currentScope(); - var flags = ref2.flags; - if (flags & SCOPE_SWITCH) { - return false; - } - if (!this.inModule && flags & SCOPE_TOP) { - return false; - } - return true; -}; -prototypeAccessors.inClassStaticBlock.get = function() { - return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK) > 0; -}; -Parser.extend = function extend2() { - var plugins = [], len = arguments.length; - while (len--) plugins[len] = arguments[len]; - var cls = this; - for (var i2 = 0; i2 < plugins.length; i2++) { - cls = plugins[i2](cls); - } - return cls; -}; -Parser.parse = function parse4(input, options) { - return new this(options, input).parse(); -}; -Parser.parseExpressionAt = function parseExpressionAt(input, pos, options) { - var parser = new this(options, input, pos); - parser.nextToken(); - return parser.parseExpression(); -}; -Parser.tokenizer = function tokenizer(input, options) { - return new this(options, input); -}; -Object.defineProperties(Parser.prototype, prototypeAccessors); -var pp$9 = Parser.prototype; -var literal2 = /^(?:'((?:\\[^]|[^'\\])*?)'|"((?:\\[^]|[^"\\])*?)")/; -pp$9.strictDirective = function(start) { - if (this.options.ecmaVersion < 5) { - return false; - } - for (; ; ) { - skipWhiteSpace.lastIndex = start; - start += skipWhiteSpace.exec(this.input)[0].length; - var match = literal2.exec(this.input.slice(start)); - if (!match) { - return false; - } - if ((match[1] || match[2]) === "use strict") { - skipWhiteSpace.lastIndex = start + match[0].length; - var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length; - var next = this.input.charAt(end); - return next === ";" || next === "}" || lineBreak.test(spaceAfter[0]) && !(/[(`.[+\-/*%<>=,?^&]/.test(next) || next === "!" && this.input.charAt(end + 1) === "="); - } - start += match[0].length; - skipWhiteSpace.lastIndex = start; - start += skipWhiteSpace.exec(this.input)[0].length; - if (this.input[start] === ";") { - start++; - } - } -}; -pp$9.eat = function(type) { - if (this.type === type) { - this.next(); - return true; - } else { - return false; - } -}; -pp$9.isContextual = function(name) { - return this.type === types$1.name && this.value === name && !this.containsEsc; -}; -pp$9.eatContextual = function(name) { - if (!this.isContextual(name)) { - return false; - } - this.next(); - return true; -}; -pp$9.expectContextual = function(name) { - if (!this.eatContextual(name)) { - this.unexpected(); - } -}; -pp$9.canInsertSemicolon = function() { - return this.type === types$1.eof || this.type === types$1.braceR || lineBreak.test(this.input.slice(this.lastTokEnd, this.start)); -}; -pp$9.insertSemicolon = function() { - if (this.canInsertSemicolon()) { - if (this.options.onInsertedSemicolon) { - this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); - } - return true; - } -}; -pp$9.semicolon = function() { - if (!this.eat(types$1.semi) && !this.insertSemicolon()) { - this.unexpected(); - } -}; -pp$9.afterTrailingComma = function(tokType, notNext) { - if (this.type === tokType) { - if (this.options.onTrailingComma) { - this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); - } - if (!notNext) { - this.next(); - } - return true; - } -}; -pp$9.expect = function(type) { - this.eat(type) || this.unexpected(); -}; -pp$9.unexpected = function(pos) { - this.raise(pos != null ? pos : this.start, "Unexpected token"); -}; -var DestructuringErrors = function DestructuringErrors2() { - this.shorthandAssign = this.trailingComma = this.parenthesizedAssign = this.parenthesizedBind = this.doubleProto = -1; -}; -pp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) { - if (!refDestructuringErrors) { - return; - } - if (refDestructuringErrors.trailingComma > -1) { - this.raiseRecoverable(refDestructuringErrors.trailingComma, "Comma is not permitted after the rest element"); - } - var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind; - if (parens > -1) { - this.raiseRecoverable(parens, isAssign ? "Assigning to rvalue" : "Parenthesized pattern"); - } -}; -pp$9.checkExpressionErrors = function(refDestructuringErrors, andThrow) { - if (!refDestructuringErrors) { - return false; - } - var shorthandAssign = refDestructuringErrors.shorthandAssign; - var doubleProto = refDestructuringErrors.doubleProto; - if (!andThrow) { - return shorthandAssign >= 0 || doubleProto >= 0; - } - if (shorthandAssign >= 0) { - this.raise(shorthandAssign, "Shorthand property assignments are valid only in destructuring patterns"); - } - if (doubleProto >= 0) { - this.raiseRecoverable(doubleProto, "Redefinition of __proto__ property"); - } -}; -pp$9.checkYieldAwaitInDefaultParams = function() { - if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos)) { - this.raise(this.yieldPos, "Yield expression cannot be a default value"); - } - if (this.awaitPos) { - this.raise(this.awaitPos, "Await expression cannot be a default value"); - } -}; -pp$9.isSimpleAssignTarget = function(expr) { - if (expr.type === "ParenthesizedExpression") { - return this.isSimpleAssignTarget(expr.expression); - } - return expr.type === "Identifier" || expr.type === "MemberExpression"; -}; -var pp$8 = Parser.prototype; -pp$8.parseTopLevel = function(node) { - var exports = /* @__PURE__ */ Object.create(null); - if (!node.body) { - node.body = []; - } - while (this.type !== types$1.eof) { - var stmt = this.parseStatement(null, true, exports); - node.body.push(stmt); - } - if (this.inModule) { - for (var i2 = 0, list2 = Object.keys(this.undefinedExports); i2 < list2.length; i2 += 1) { - var name = list2[i2]; - this.raiseRecoverable(this.undefinedExports[name].start, "Export '" + name + "' is not defined"); - } - } - this.adaptDirectivePrologue(node.body); - this.next(); - node.sourceType = this.options.sourceType === "commonjs" ? "script" : this.options.sourceType; - return this.finishNode(node, "Program"); -}; -var loopLabel = { kind: "loop" }; -var switchLabel = { kind: "switch" }; -pp$8.isLet = function(context) { - if (this.options.ecmaVersion < 6 || !this.isContextual("let")) { - return false; - } - skipWhiteSpace.lastIndex = this.pos; - var skip = skipWhiteSpace.exec(this.input); - var next = this.pos + skip[0].length, nextCh = this.fullCharCodeAt(next); - if (nextCh === 91 || nextCh === 92) { - return true; - } - if (context) { - return false; - } - if (nextCh === 123) { - return true; - } - if (isIdentifierStart(nextCh)) { - var start = next; - do { - next += nextCh <= 65535 ? 1 : 2; - } while (isIdentifierChar(nextCh = this.fullCharCodeAt(next))); - if (nextCh === 92) { - return true; - } - var ident = this.input.slice(start, next); - if (!keywordRelationalOperator.test(ident)) { - return true; - } - } - return false; -}; -pp$8.isAsyncFunction = function() { - if (this.options.ecmaVersion < 8 || !this.isContextual("async")) { - return false; - } - skipWhiteSpace.lastIndex = this.pos; - var skip = skipWhiteSpace.exec(this.input); - var next = this.pos + skip[0].length, after; - return !lineBreak.test(this.input.slice(this.pos, next)) && this.input.slice(next, next + 8) === "function" && (next + 8 === this.input.length || !(isIdentifierChar(after = this.fullCharCodeAt(next + 8)) || after === 92)); -}; -pp$8.isUsingKeyword = function(isAwaitUsing, isFor) { - if (this.options.ecmaVersion < 17 || !this.isContextual(isAwaitUsing ? "await" : "using")) { - return false; - } - skipWhiteSpace.lastIndex = this.pos; - var skip = skipWhiteSpace.exec(this.input); - var next = this.pos + skip[0].length; - if (lineBreak.test(this.input.slice(this.pos, next))) { - return false; - } - if (isAwaitUsing) { - var usingEndPos = next + 5, after; - if (this.input.slice(next, usingEndPos) !== "using" || usingEndPos === this.input.length || isIdentifierChar(after = this.fullCharCodeAt(usingEndPos)) || after === 92) { - return false; - } - skipWhiteSpace.lastIndex = usingEndPos; - var skipAfterUsing = skipWhiteSpace.exec(this.input); - next = usingEndPos + skipAfterUsing[0].length; - if (skipAfterUsing && lineBreak.test(this.input.slice(usingEndPos, next))) { - return false; - } - } - var ch = this.fullCharCodeAt(next); - if (!isIdentifierStart(ch) && ch !== 92) { - return false; - } - var idStart = next; - do { - next += ch <= 65535 ? 1 : 2; - } while (isIdentifierChar(ch = this.fullCharCodeAt(next))); - if (ch === 92) { - return true; - } - var id = this.input.slice(idStart, next); - if (keywordRelationalOperator.test(id) || isFor && id === "of") { - return false; - } - return true; -}; -pp$8.isAwaitUsing = function(isFor) { - return this.isUsingKeyword(true, isFor); -}; -pp$8.isUsing = function(isFor) { - return this.isUsingKeyword(false, isFor); -}; -pp$8.parseStatement = function(context, topLevel, exports) { - var starttype = this.type, node = this.startNode(), kind; - if (this.isLet(context)) { - starttype = types$1._var; - kind = "let"; - } - switch (starttype) { - case types$1._break: - case types$1._continue: - return this.parseBreakContinueStatement(node, starttype.keyword); - case types$1._debugger: - return this.parseDebuggerStatement(node); - case types$1._do: - return this.parseDoStatement(node); - case types$1._for: - return this.parseForStatement(node); - case types$1._function: - if (context && (this.strict || context !== "if" && context !== "label") && this.options.ecmaVersion >= 6) { - this.unexpected(); - } - return this.parseFunctionStatement(node, false, !context); - case types$1._class: - if (context) { - this.unexpected(); - } - return this.parseClass(node, true); - case types$1._if: - return this.parseIfStatement(node); - case types$1._return: - return this.parseReturnStatement(node); - case types$1._switch: - return this.parseSwitchStatement(node); - case types$1._throw: - return this.parseThrowStatement(node); - case types$1._try: - return this.parseTryStatement(node); - case types$1._const: - case types$1._var: - kind = kind || this.value; - if (context && kind !== "var") { - this.unexpected(); - } - return this.parseVarStatement(node, kind); - case types$1._while: - return this.parseWhileStatement(node); - case types$1._with: - return this.parseWithStatement(node); - case types$1.braceL: - return this.parseBlock(true, node); - case types$1.semi: - return this.parseEmptyStatement(node); - case types$1._export: - case types$1._import: - if (this.options.ecmaVersion > 10 && starttype === types$1._import) { - skipWhiteSpace.lastIndex = this.pos; - var skip = skipWhiteSpace.exec(this.input); - var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next); - if (nextCh === 40 || nextCh === 46) { - return this.parseExpressionStatement(node, this.parseExpression()); - } - } - if (!this.options.allowImportExportEverywhere) { - if (!topLevel) { - this.raise(this.start, "'import' and 'export' may only appear at the top level"); - } - if (!this.inModule) { - this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'"); - } - } - return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports); - // If the statement does not start with a statement keyword or a - // brace, it's an ExpressionStatement or LabeledStatement. We - // simply start parsing an expression, and afterwards, if the - // next token is a colon and the expression was a simple - // Identifier node, we switch to interpreting it as a label. - default: - if (this.isAsyncFunction()) { - if (context) { - this.unexpected(); - } - this.next(); - return this.parseFunctionStatement(node, true, !context); - } - var usingKind = this.isAwaitUsing(false) ? "await using" : this.isUsing(false) ? "using" : null; - if (usingKind) { - if (!this.allowUsing) { - this.raise(this.start, "Using declaration cannot appear in the top level when source type is `script` or in the bare case statement"); - } - if (usingKind === "await using") { - if (!this.canAwait) { - this.raise(this.start, "Await using cannot appear outside of async function"); - } - this.next(); - } - this.next(); - this.parseVar(node, false, usingKind); - this.semicolon(); - return this.finishNode(node, "VariableDeclaration"); - } - var maybeName = this.value, expr = this.parseExpression(); - if (starttype === types$1.name && expr.type === "Identifier" && this.eat(types$1.colon)) { - return this.parseLabeledStatement(node, maybeName, expr, context); - } else { - return this.parseExpressionStatement(node, expr); - } - } -}; -pp$8.parseBreakContinueStatement = function(node, keyword) { - var isBreak = keyword === "break"; - this.next(); - if (this.eat(types$1.semi) || this.insertSemicolon()) { - node.label = null; - } else if (this.type !== types$1.name) { - this.unexpected(); - } else { - node.label = this.parseIdent(); - this.semicolon(); - } - var i2 = 0; - for (; i2 < this.labels.length; ++i2) { - var lab = this.labels[i2]; - if (node.label == null || lab.name === node.label.name) { - if (lab.kind != null && (isBreak || lab.kind === "loop")) { - break; - } - if (node.label && isBreak) { - break; - } - } - } - if (i2 === this.labels.length) { - this.raise(node.start, "Unsyntactic " + keyword); - } - return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement"); -}; -pp$8.parseDebuggerStatement = function(node) { - this.next(); - this.semicolon(); - return this.finishNode(node, "DebuggerStatement"); -}; -pp$8.parseDoStatement = function(node) { - this.next(); - this.labels.push(loopLabel); - node.body = this.parseStatement("do"); - this.labels.pop(); - this.expect(types$1._while); - node.test = this.parseParenExpression(); - if (this.options.ecmaVersion >= 6) { - this.eat(types$1.semi); - } else { - this.semicolon(); - } - return this.finishNode(node, "DoWhileStatement"); -}; -pp$8.parseForStatement = function(node) { - this.next(); - var awaitAt = this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual("await") ? this.lastTokStart : -1; - this.labels.push(loopLabel); - this.enterScope(0); - this.expect(types$1.parenL); - if (this.type === types$1.semi) { - if (awaitAt > -1) { - this.unexpected(awaitAt); - } - return this.parseFor(node, null); - } - var isLet = this.isLet(); - if (this.type === types$1._var || this.type === types$1._const || isLet) { - var init$1 = this.startNode(), kind = isLet ? "let" : this.value; - this.next(); - this.parseVar(init$1, true, kind); - this.finishNode(init$1, "VariableDeclaration"); - return this.parseForAfterInit(node, init$1, awaitAt); - } - var startsWithLet = this.isContextual("let"), isForOf = false; - var usingKind = this.isUsing(true) ? "using" : this.isAwaitUsing(true) ? "await using" : null; - if (usingKind) { - var init$2 = this.startNode(); - this.next(); - if (usingKind === "await using") { - if (!this.canAwait) { - this.raise(this.start, "Await using cannot appear outside of async function"); - } - this.next(); - } - this.parseVar(init$2, true, usingKind); - this.finishNode(init$2, "VariableDeclaration"); - return this.parseForAfterInit(node, init$2, awaitAt); - } - var containsEsc = this.containsEsc; - var refDestructuringErrors = new DestructuringErrors(); - var initPos = this.start; - var init = awaitAt > -1 ? this.parseExprSubscripts(refDestructuringErrors, "await") : this.parseExpression(true, refDestructuringErrors); - if (this.type === types$1._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual("of"))) { - if (awaitAt > -1) { - if (this.type === types$1._in) { - this.unexpected(awaitAt); - } - node.await = true; - } else if (isForOf && this.options.ecmaVersion >= 8) { - if (init.start === initPos && !containsEsc && init.type === "Identifier" && init.name === "async") { - this.unexpected(); - } else if (this.options.ecmaVersion >= 9) { - node.await = false; - } - } - if (startsWithLet && isForOf) { - this.raise(init.start, "The left-hand side of a for-of loop may not start with 'let'."); - } - this.toAssignable(init, false, refDestructuringErrors); - this.checkLValPattern(init); - return this.parseForIn(node, init); - } else { - this.checkExpressionErrors(refDestructuringErrors, true); - } - if (awaitAt > -1) { - this.unexpected(awaitAt); - } - return this.parseFor(node, init); -}; -pp$8.parseForAfterInit = function(node, init, awaitAt) { - if ((this.type === types$1._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) && init.declarations.length === 1) { - if (this.options.ecmaVersion >= 9) { - if (this.type === types$1._in) { - if (awaitAt > -1) { - this.unexpected(awaitAt); - } - } else { - node.await = awaitAt > -1; - } - } - return this.parseForIn(node, init); - } - if (awaitAt > -1) { - this.unexpected(awaitAt); - } - return this.parseFor(node, init); -}; -pp$8.parseFunctionStatement = function(node, isAsync, declarationPosition) { - this.next(); - return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync); -}; -pp$8.parseIfStatement = function(node) { - this.next(); - node.test = this.parseParenExpression(); - node.consequent = this.parseStatement("if"); - node.alternate = this.eat(types$1._else) ? this.parseStatement("if") : null; - return this.finishNode(node, "IfStatement"); -}; -pp$8.parseReturnStatement = function(node) { - if (!this.allowReturn) { - this.raise(this.start, "'return' outside of function"); - } - this.next(); - if (this.eat(types$1.semi) || this.insertSemicolon()) { - node.argument = null; - } else { - node.argument = this.parseExpression(); - this.semicolon(); - } - return this.finishNode(node, "ReturnStatement"); -}; -pp$8.parseSwitchStatement = function(node) { - this.next(); - node.discriminant = this.parseParenExpression(); - node.cases = []; - this.expect(types$1.braceL); - this.labels.push(switchLabel); - this.enterScope(SCOPE_SWITCH); - var cur; - for (var sawDefault = false; this.type !== types$1.braceR; ) { - if (this.type === types$1._case || this.type === types$1._default) { - var isCase = this.type === types$1._case; - if (cur) { - this.finishNode(cur, "SwitchCase"); - } - node.cases.push(cur = this.startNode()); - cur.consequent = []; - this.next(); - if (isCase) { - cur.test = this.parseExpression(); - } else { - if (sawDefault) { - this.raiseRecoverable(this.lastTokStart, "Multiple default clauses"); - } - sawDefault = true; - cur.test = null; - } - this.expect(types$1.colon); - } else { - if (!cur) { - this.unexpected(); - } - cur.consequent.push(this.parseStatement(null)); - } - } - this.exitScope(); - if (cur) { - this.finishNode(cur, "SwitchCase"); - } - this.next(); - this.labels.pop(); - return this.finishNode(node, "SwitchStatement"); -}; -pp$8.parseThrowStatement = function(node) { - this.next(); - if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) { - this.raise(this.lastTokEnd, "Illegal newline after throw"); - } - node.argument = this.parseExpression(); - this.semicolon(); - return this.finishNode(node, "ThrowStatement"); -}; -var empty$1 = []; -pp$8.parseCatchClauseParam = function() { - var param = this.parseBindingAtom(); - var simple = param.type === "Identifier"; - this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0); - this.checkLValPattern(param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL); - this.expect(types$1.parenR); - return param; -}; -pp$8.parseTryStatement = function(node) { - this.next(); - node.block = this.parseBlock(); - node.handler = null; - if (this.type === types$1._catch) { - var clause = this.startNode(); - this.next(); - if (this.eat(types$1.parenL)) { - clause.param = this.parseCatchClauseParam(); - } else { - if (this.options.ecmaVersion < 10) { - this.unexpected(); - } - clause.param = null; - this.enterScope(0); - } - clause.body = this.parseBlock(false); - this.exitScope(); - node.handler = this.finishNode(clause, "CatchClause"); - } - node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null; - if (!node.handler && !node.finalizer) { - this.raise(node.start, "Missing catch or finally clause"); - } - return this.finishNode(node, "TryStatement"); -}; -pp$8.parseVarStatement = function(node, kind, allowMissingInitializer) { - this.next(); - this.parseVar(node, false, kind, allowMissingInitializer); - this.semicolon(); - return this.finishNode(node, "VariableDeclaration"); -}; -pp$8.parseWhileStatement = function(node) { - this.next(); - node.test = this.parseParenExpression(); - this.labels.push(loopLabel); - node.body = this.parseStatement("while"); - this.labels.pop(); - return this.finishNode(node, "WhileStatement"); -}; -pp$8.parseWithStatement = function(node) { - if (this.strict) { - this.raise(this.start, "'with' in strict mode"); - } - this.next(); - node.object = this.parseParenExpression(); - node.body = this.parseStatement("with"); - return this.finishNode(node, "WithStatement"); -}; -pp$8.parseEmptyStatement = function(node) { - this.next(); - return this.finishNode(node, "EmptyStatement"); -}; -pp$8.parseLabeledStatement = function(node, maybeName, expr, context) { - for (var i$1 = 0, list2 = this.labels; i$1 < list2.length; i$1 += 1) { - var label = list2[i$1]; - if (label.name === maybeName) { - this.raise(expr.start, "Label '" + maybeName + "' is already declared"); - } - } - var kind = this.type.isLoop ? "loop" : this.type === types$1._switch ? "switch" : null; - for (var i2 = this.labels.length - 1; i2 >= 0; i2--) { - var label$1 = this.labels[i2]; - if (label$1.statementStart === node.start) { - label$1.statementStart = this.start; - label$1.kind = kind; - } else { - break; - } - } - this.labels.push({ name: maybeName, kind, statementStart: this.start }); - node.body = this.parseStatement(context ? context.indexOf("label") === -1 ? context + "label" : context : "label"); - this.labels.pop(); - node.label = expr; - return this.finishNode(node, "LabeledStatement"); -}; -pp$8.parseExpressionStatement = function(node, expr) { - node.expression = expr; - this.semicolon(); - return this.finishNode(node, "ExpressionStatement"); -}; -pp$8.parseBlock = function(createNewLexicalScope, node, exitStrict) { - if (createNewLexicalScope === void 0) createNewLexicalScope = true; - if (node === void 0) node = this.startNode(); - node.body = []; - this.expect(types$1.braceL); - if (createNewLexicalScope) { - this.enterScope(0); - } - while (this.type !== types$1.braceR) { - var stmt = this.parseStatement(null); - node.body.push(stmt); - } - if (exitStrict) { - this.strict = false; - } - this.next(); - if (createNewLexicalScope) { - this.exitScope(); - } - return this.finishNode(node, "BlockStatement"); -}; -pp$8.parseFor = function(node, init) { - node.init = init; - this.expect(types$1.semi); - node.test = this.type === types$1.semi ? null : this.parseExpression(); - this.expect(types$1.semi); - node.update = this.type === types$1.parenR ? null : this.parseExpression(); - this.expect(types$1.parenR); - node.body = this.parseStatement("for"); - this.exitScope(); - this.labels.pop(); - return this.finishNode(node, "ForStatement"); -}; -pp$8.parseForIn = function(node, init) { - var isForIn = this.type === types$1._in; - this.next(); - if (init.type === "VariableDeclaration" && init.declarations[0].init != null && (!isForIn || this.options.ecmaVersion < 8 || this.strict || init.kind !== "var" || init.declarations[0].id.type !== "Identifier")) { - this.raise( - init.start, - (isForIn ? "for-in" : "for-of") + " loop variable declaration may not have an initializer" - ); - } - node.left = init; - node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign(); - this.expect(types$1.parenR); - node.body = this.parseStatement("for"); - this.exitScope(); - this.labels.pop(); - return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement"); -}; -pp$8.parseVar = function(node, isFor, kind, allowMissingInitializer) { - node.declarations = []; - node.kind = kind; - for (; ; ) { - var decl = this.startNode(); - this.parseVarId(decl, kind); - if (this.eat(types$1.eq)) { - decl.init = this.parseMaybeAssign(isFor); - } else if (!allowMissingInitializer && kind === "const" && !(this.type === types$1._in || this.options.ecmaVersion >= 6 && this.isContextual("of"))) { - this.unexpected(); - } else if (!allowMissingInitializer && (kind === "using" || kind === "await using") && this.options.ecmaVersion >= 17 && this.type !== types$1._in && !this.isContextual("of")) { - this.raise(this.lastTokEnd, "Missing initializer in " + kind + " declaration"); - } else if (!allowMissingInitializer && decl.id.type !== "Identifier" && !(isFor && (this.type === types$1._in || this.isContextual("of")))) { - this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value"); - } else { - decl.init = null; - } - node.declarations.push(this.finishNode(decl, "VariableDeclarator")); - if (!this.eat(types$1.comma)) { - break; - } - } - return node; -}; -pp$8.parseVarId = function(decl, kind) { - decl.id = kind === "using" || kind === "await using" ? this.parseIdent() : this.parseBindingAtom(); - this.checkLValPattern(decl.id, kind === "var" ? BIND_VAR : BIND_LEXICAL, false); -}; -var FUNC_STATEMENT = 1; -var FUNC_HANGING_STATEMENT = 2; -var FUNC_NULLABLE_ID = 4; -pp$8.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) { - this.initFunction(node); - if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) { - if (this.type === types$1.star && statement & FUNC_HANGING_STATEMENT) { - this.unexpected(); - } - node.generator = this.eat(types$1.star); - } - if (this.options.ecmaVersion >= 8) { - node.async = !!isAsync; - } - if (statement & FUNC_STATEMENT) { - node.id = statement & FUNC_NULLABLE_ID && this.type !== types$1.name ? null : this.parseIdent(); - if (node.id && !(statement & FUNC_HANGING_STATEMENT)) { - this.checkLValSimple(node.id, this.strict || node.generator || node.async ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); - } - } - var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - this.enterScope(functionFlags(node.async, node.generator)); - if (!(statement & FUNC_STATEMENT)) { - node.id = this.type === types$1.name ? this.parseIdent() : null; - } - this.parseFunctionParams(node); - this.parseFunctionBody(node, allowExpressionBody, false, forInit); - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.finishNode(node, statement & FUNC_STATEMENT ? "FunctionDeclaration" : "FunctionExpression"); -}; -pp$8.parseFunctionParams = function(node) { - this.expect(types$1.parenL); - node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8); - this.checkYieldAwaitInDefaultParams(); -}; -pp$8.parseClass = function(node, isStatement) { - this.next(); - var oldStrict = this.strict; - this.strict = true; - this.parseClassId(node, isStatement); - this.parseClassSuper(node); - var privateNameMap = this.enterClassBody(); - var classBody = this.startNode(); - var hadConstructor = false; - classBody.body = []; - this.expect(types$1.braceL); - while (this.type !== types$1.braceR) { - var element = this.parseClassElement(node.superClass !== null); - if (element) { - classBody.body.push(element); - if (element.type === "MethodDefinition" && element.kind === "constructor") { - if (hadConstructor) { - this.raiseRecoverable(element.start, "Duplicate constructor in the same class"); - } - hadConstructor = true; - } else if (element.key && element.key.type === "PrivateIdentifier" && isPrivateNameConflicted(privateNameMap, element)) { - this.raiseRecoverable(element.key.start, "Identifier '#" + element.key.name + "' has already been declared"); - } - } - } - this.strict = oldStrict; - this.next(); - node.body = this.finishNode(classBody, "ClassBody"); - this.exitClassBody(); - return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression"); -}; -pp$8.parseClassElement = function(constructorAllowsSuper) { - if (this.eat(types$1.semi)) { - return null; - } - var ecmaVersion2 = this.options.ecmaVersion; - var node = this.startNode(); - var keyName = ""; - var isGenerator = false; - var isAsync = false; - var kind = "method"; - var isStatic = false; - if (this.eatContextual("static")) { - if (ecmaVersion2 >= 13 && this.eat(types$1.braceL)) { - this.parseClassStaticBlock(node); - return node; - } - if (this.isClassElementNameStart() || this.type === types$1.star) { - isStatic = true; - } else { - keyName = "static"; - } - } - node.static = isStatic; - if (!keyName && ecmaVersion2 >= 8 && this.eatContextual("async")) { - if ((this.isClassElementNameStart() || this.type === types$1.star) && !this.canInsertSemicolon()) { - isAsync = true; - } else { - keyName = "async"; - } - } - if (!keyName && (ecmaVersion2 >= 9 || !isAsync) && this.eat(types$1.star)) { - isGenerator = true; - } - if (!keyName && !isAsync && !isGenerator) { - var lastValue = this.value; - if (this.eatContextual("get") || this.eatContextual("set")) { - if (this.isClassElementNameStart()) { - kind = lastValue; - } else { - keyName = lastValue; - } - } - } - if (keyName) { - node.computed = false; - node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc); - node.key.name = keyName; - this.finishNode(node.key, "Identifier"); - } else { - this.parseClassElementName(node); - } - if (ecmaVersion2 < 13 || this.type === types$1.parenL || kind !== "method" || isGenerator || isAsync) { - var isConstructor = !node.static && checkKeyName(node, "constructor"); - var allowsDirectSuper = isConstructor && constructorAllowsSuper; - if (isConstructor && kind !== "method") { - this.raise(node.key.start, "Constructor can't have get/set modifier"); - } - node.kind = isConstructor ? "constructor" : kind; - this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper); - } else { - this.parseClassField(node); - } - return node; -}; -pp$8.isClassElementNameStart = function() { - return this.type === types$1.name || this.type === types$1.privateId || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword; -}; -pp$8.parseClassElementName = function(element) { - if (this.type === types$1.privateId) { - if (this.value === "constructor") { - this.raise(this.start, "Classes can't have an element named '#constructor'"); - } - element.computed = false; - element.key = this.parsePrivateIdent(); - } else { - this.parsePropertyName(element); - } -}; -pp$8.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) { - var key = method.key; - if (method.kind === "constructor") { - if (isGenerator) { - this.raise(key.start, "Constructor can't be a generator"); - } - if (isAsync) { - this.raise(key.start, "Constructor can't be an async method"); - } - } else if (method.static && checkKeyName(method, "prototype")) { - this.raise(key.start, "Classes may not have a static property named prototype"); - } - var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper); - if (method.kind === "get" && value.params.length !== 0) { - this.raiseRecoverable(value.start, "getter should have no params"); - } - if (method.kind === "set" && value.params.length !== 1) { - this.raiseRecoverable(value.start, "setter should have exactly one param"); - } - if (method.kind === "set" && value.params[0].type === "RestElement") { - this.raiseRecoverable(value.params[0].start, "Setter cannot use rest params"); - } - return this.finishNode(method, "MethodDefinition"); -}; -pp$8.parseClassField = function(field) { - if (checkKeyName(field, "constructor")) { - this.raise(field.key.start, "Classes can't have a field named 'constructor'"); - } else if (field.static && checkKeyName(field, "prototype")) { - this.raise(field.key.start, "Classes can't have a static field named 'prototype'"); - } - if (this.eat(types$1.eq)) { - this.enterScope(SCOPE_CLASS_FIELD_INIT | SCOPE_SUPER); - field.value = this.parseMaybeAssign(); - this.exitScope(); - } else { - field.value = null; - } - this.semicolon(); - return this.finishNode(field, "PropertyDefinition"); -}; -pp$8.parseClassStaticBlock = function(node) { - node.body = []; - var oldLabels = this.labels; - this.labels = []; - this.enterScope(SCOPE_CLASS_STATIC_BLOCK | SCOPE_SUPER); - while (this.type !== types$1.braceR) { - var stmt = this.parseStatement(null); - node.body.push(stmt); - } - this.next(); - this.exitScope(); - this.labels = oldLabels; - return this.finishNode(node, "StaticBlock"); -}; -pp$8.parseClassId = function(node, isStatement) { - if (this.type === types$1.name) { - node.id = this.parseIdent(); - if (isStatement) { - this.checkLValSimple(node.id, BIND_LEXICAL, false); - } - } else { - if (isStatement === true) { - this.unexpected(); - } - node.id = null; - } -}; -pp$8.parseClassSuper = function(node) { - node.superClass = this.eat(types$1._extends) ? this.parseExprSubscripts(null, false) : null; -}; -pp$8.enterClassBody = function() { - var element = { declared: /* @__PURE__ */ Object.create(null), used: [] }; - this.privateNameStack.push(element); - return element.declared; -}; -pp$8.exitClassBody = function() { - var ref2 = this.privateNameStack.pop(); - var declared = ref2.declared; - var used = ref2.used; - if (!this.options.checkPrivateFields) { - return; - } - var len = this.privateNameStack.length; - var parent = len === 0 ? null : this.privateNameStack[len - 1]; - for (var i2 = 0; i2 < used.length; ++i2) { - var id = used[i2]; - if (!hasOwn(declared, id.name)) { - if (parent) { - parent.used.push(id); - } else { - this.raiseRecoverable(id.start, "Private field '#" + id.name + "' must be declared in an enclosing class"); - } - } - } -}; -function isPrivateNameConflicted(privateNameMap, element) { - var name = element.key.name; - var curr = privateNameMap[name]; - var next = "true"; - if (element.type === "MethodDefinition" && (element.kind === "get" || element.kind === "set")) { - next = (element.static ? "s" : "i") + element.kind; - } - if (curr === "iget" && next === "iset" || curr === "iset" && next === "iget" || curr === "sget" && next === "sset" || curr === "sset" && next === "sget") { - privateNameMap[name] = "true"; - return false; - } else if (!curr) { - privateNameMap[name] = next; - return false; - } else { - return true; - } -} -function checkKeyName(node, name) { - var computed = node.computed; - var key = node.key; - return !computed && (key.type === "Identifier" && key.name === name || key.type === "Literal" && key.value === name); -} -pp$8.parseExportAllDeclaration = function(node, exports) { - if (this.options.ecmaVersion >= 11) { - if (this.eatContextual("as")) { - node.exported = this.parseModuleExportName(); - this.checkExport(exports, node.exported, this.lastTokStart); - } else { - node.exported = null; - } - } - this.expectContextual("from"); - if (this.type !== types$1.string) { - this.unexpected(); - } - node.source = this.parseExprAtom(); - if (this.options.ecmaVersion >= 16) { - node.attributes = this.parseWithClause(); - } - this.semicolon(); - return this.finishNode(node, "ExportAllDeclaration"); -}; -pp$8.parseExport = function(node, exports) { - this.next(); - if (this.eat(types$1.star)) { - return this.parseExportAllDeclaration(node, exports); - } - if (this.eat(types$1._default)) { - this.checkExport(exports, "default", this.lastTokStart); - node.declaration = this.parseExportDefaultDeclaration(); - return this.finishNode(node, "ExportDefaultDeclaration"); - } - if (this.shouldParseExportStatement()) { - node.declaration = this.parseExportDeclaration(node); - if (node.declaration.type === "VariableDeclaration") { - this.checkVariableExport(exports, node.declaration.declarations); - } else { - this.checkExport(exports, node.declaration.id, node.declaration.id.start); - } - node.specifiers = []; - node.source = null; - if (this.options.ecmaVersion >= 16) { - node.attributes = []; - } - } else { - node.declaration = null; - node.specifiers = this.parseExportSpecifiers(exports); - if (this.eatContextual("from")) { - if (this.type !== types$1.string) { - this.unexpected(); - } - node.source = this.parseExprAtom(); - if (this.options.ecmaVersion >= 16) { - node.attributes = this.parseWithClause(); - } - } else { - for (var i2 = 0, list2 = node.specifiers; i2 < list2.length; i2 += 1) { - var spec = list2[i2]; - this.checkUnreserved(spec.local); - this.checkLocalExport(spec.local); - if (spec.local.type === "Literal") { - this.raise(spec.local.start, "A string literal cannot be used as an exported binding without `from`."); - } - } - node.source = null; - if (this.options.ecmaVersion >= 16) { - node.attributes = []; - } - } - this.semicolon(); - } - return this.finishNode(node, "ExportNamedDeclaration"); -}; -pp$8.parseExportDeclaration = function(node) { - return this.parseStatement(null); -}; -pp$8.parseExportDefaultDeclaration = function() { - var isAsync; - if (this.type === types$1._function || (isAsync = this.isAsyncFunction())) { - var fNode = this.startNode(); - this.next(); - if (isAsync) { - this.next(); - } - return this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync); - } else if (this.type === types$1._class) { - var cNode = this.startNode(); - return this.parseClass(cNode, "nullableID"); - } else { - var declaration = this.parseMaybeAssign(); - this.semicolon(); - return declaration; - } -}; -pp$8.checkExport = function(exports, name, pos) { - if (!exports) { - return; - } - if (typeof name !== "string") { - name = name.type === "Identifier" ? name.name : name.value; - } - if (hasOwn(exports, name)) { - this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); - } - exports[name] = true; -}; -pp$8.checkPatternExport = function(exports, pat) { - var type = pat.type; - if (type === "Identifier") { - this.checkExport(exports, pat, pat.start); - } else if (type === "ObjectPattern") { - for (var i2 = 0, list2 = pat.properties; i2 < list2.length; i2 += 1) { - var prop = list2[i2]; - this.checkPatternExport(exports, prop); - } - } else if (type === "ArrayPattern") { - for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) { - var elt = list$1[i$1]; - if (elt) { - this.checkPatternExport(exports, elt); - } - } - } else if (type === "Property") { - this.checkPatternExport(exports, pat.value); - } else if (type === "AssignmentPattern") { - this.checkPatternExport(exports, pat.left); - } else if (type === "RestElement") { - this.checkPatternExport(exports, pat.argument); - } -}; -pp$8.checkVariableExport = function(exports, decls) { - if (!exports) { - return; - } - for (var i2 = 0, list2 = decls; i2 < list2.length; i2 += 1) { - var decl = list2[i2]; - this.checkPatternExport(exports, decl.id); - } -}; -pp$8.shouldParseExportStatement = function() { - return this.type.keyword === "var" || this.type.keyword === "const" || this.type.keyword === "class" || this.type.keyword === "function" || this.isLet() || this.isAsyncFunction(); -}; -pp$8.parseExportSpecifier = function(exports) { - var node = this.startNode(); - node.local = this.parseModuleExportName(); - node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local; - this.checkExport( - exports, - node.exported, - node.exported.start - ); - return this.finishNode(node, "ExportSpecifier"); -}; -pp$8.parseExportSpecifiers = function(exports) { - var nodes = [], first = true; - this.expect(types$1.braceL); - while (!this.eat(types$1.braceR)) { - if (!first) { - this.expect(types$1.comma); - if (this.afterTrailingComma(types$1.braceR)) { - break; - } - } else { - first = false; - } - nodes.push(this.parseExportSpecifier(exports)); - } - return nodes; -}; -pp$8.parseImport = function(node) { - this.next(); - if (this.type === types$1.string) { - node.specifiers = empty$1; - node.source = this.parseExprAtom(); - } else { - node.specifiers = this.parseImportSpecifiers(); - this.expectContextual("from"); - node.source = this.type === types$1.string ? this.parseExprAtom() : this.unexpected(); - } - if (this.options.ecmaVersion >= 16) { - node.attributes = this.parseWithClause(); - } - this.semicolon(); - return this.finishNode(node, "ImportDeclaration"); -}; -pp$8.parseImportSpecifier = function() { - var node = this.startNode(); - node.imported = this.parseModuleExportName(); - if (this.eatContextual("as")) { - node.local = this.parseIdent(); - } else { - this.checkUnreserved(node.imported); - node.local = node.imported; - } - this.checkLValSimple(node.local, BIND_LEXICAL); - return this.finishNode(node, "ImportSpecifier"); -}; -pp$8.parseImportDefaultSpecifier = function() { - var node = this.startNode(); - node.local = this.parseIdent(); - this.checkLValSimple(node.local, BIND_LEXICAL); - return this.finishNode(node, "ImportDefaultSpecifier"); -}; -pp$8.parseImportNamespaceSpecifier = function() { - var node = this.startNode(); - this.next(); - this.expectContextual("as"); - node.local = this.parseIdent(); - this.checkLValSimple(node.local, BIND_LEXICAL); - return this.finishNode(node, "ImportNamespaceSpecifier"); -}; -pp$8.parseImportSpecifiers = function() { - var nodes = [], first = true; - if (this.type === types$1.name) { - nodes.push(this.parseImportDefaultSpecifier()); - if (!this.eat(types$1.comma)) { - return nodes; - } - } - if (this.type === types$1.star) { - nodes.push(this.parseImportNamespaceSpecifier()); - return nodes; - } - this.expect(types$1.braceL); - while (!this.eat(types$1.braceR)) { - if (!first) { - this.expect(types$1.comma); - if (this.afterTrailingComma(types$1.braceR)) { - break; - } - } else { - first = false; - } - nodes.push(this.parseImportSpecifier()); - } - return nodes; -}; -pp$8.parseWithClause = function() { - var nodes = []; - if (!this.eat(types$1._with)) { - return nodes; - } - this.expect(types$1.braceL); - var attributeKeys = {}; - var first = true; - while (!this.eat(types$1.braceR)) { - if (!first) { - this.expect(types$1.comma); - if (this.afterTrailingComma(types$1.braceR)) { - break; - } - } else { - first = false; - } - var attr = this.parseImportAttribute(); - var keyName = attr.key.type === "Identifier" ? attr.key.name : attr.key.value; - if (hasOwn(attributeKeys, keyName)) { - this.raiseRecoverable(attr.key.start, "Duplicate attribute key '" + keyName + "'"); - } - attributeKeys[keyName] = true; - nodes.push(attr); - } - return nodes; -}; -pp$8.parseImportAttribute = function() { - var node = this.startNode(); - node.key = this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never"); - this.expect(types$1.colon); - if (this.type !== types$1.string) { - this.unexpected(); - } - node.value = this.parseExprAtom(); - return this.finishNode(node, "ImportAttribute"); -}; -pp$8.parseModuleExportName = function() { - if (this.options.ecmaVersion >= 13 && this.type === types$1.string) { - var stringLiteral = this.parseLiteral(this.value); - if (loneSurrogate.test(stringLiteral.value)) { - this.raise(stringLiteral.start, "An export name cannot include a lone surrogate."); - } - return stringLiteral; - } - return this.parseIdent(true); -}; -pp$8.adaptDirectivePrologue = function(statements) { - for (var i2 = 0; i2 < statements.length && this.isDirectiveCandidate(statements[i2]); ++i2) { - statements[i2].directive = statements[i2].expression.raw.slice(1, -1); - } -}; -pp$8.isDirectiveCandidate = function(statement) { - return this.options.ecmaVersion >= 5 && statement.type === "ExpressionStatement" && statement.expression.type === "Literal" && typeof statement.expression.value === "string" && // Reject parenthesized strings. - (this.input[statement.start] === '"' || this.input[statement.start] === "'"); -}; -var pp$7 = Parser.prototype; -pp$7.toAssignable = function(node, isBinding, refDestructuringErrors) { - if (this.options.ecmaVersion >= 6 && node) { - switch (node.type) { - case "Identifier": - if (this.inAsync && node.name === "await") { - this.raise(node.start, "Cannot use 'await' as identifier inside an async function"); - } - break; - case "ObjectPattern": - case "ArrayPattern": - case "AssignmentPattern": - case "RestElement": - break; - case "ObjectExpression": - node.type = "ObjectPattern"; - if (refDestructuringErrors) { - this.checkPatternErrors(refDestructuringErrors, true); - } - for (var i2 = 0, list2 = node.properties; i2 < list2.length; i2 += 1) { - var prop = list2[i2]; - this.toAssignable(prop, isBinding); - if (prop.type === "RestElement" && (prop.argument.type === "ArrayPattern" || prop.argument.type === "ObjectPattern")) { - this.raise(prop.argument.start, "Unexpected token"); - } - } - break; - case "Property": - if (node.kind !== "init") { - this.raise(node.key.start, "Object pattern can't contain getter or setter"); - } - this.toAssignable(node.value, isBinding); - break; - case "ArrayExpression": - node.type = "ArrayPattern"; - if (refDestructuringErrors) { - this.checkPatternErrors(refDestructuringErrors, true); - } - this.toAssignableList(node.elements, isBinding); - break; - case "SpreadElement": - node.type = "RestElement"; - this.toAssignable(node.argument, isBinding); - if (node.argument.type === "AssignmentPattern") { - this.raise(node.argument.start, "Rest elements cannot have a default value"); - } - break; - case "AssignmentExpression": - if (node.operator !== "=") { - this.raise(node.left.end, "Only '=' operator can be used for specifying default value."); - } - node.type = "AssignmentPattern"; - delete node.operator; - this.toAssignable(node.left, isBinding); - break; - case "ParenthesizedExpression": - this.toAssignable(node.expression, isBinding, refDestructuringErrors); - break; - case "ChainExpression": - this.raiseRecoverable(node.start, "Optional chaining cannot appear in left-hand side"); - break; - case "MemberExpression": - if (!isBinding) { - break; - } - default: - this.raise(node.start, "Assigning to rvalue"); - } - } else if (refDestructuringErrors) { - this.checkPatternErrors(refDestructuringErrors, true); - } - return node; -}; -pp$7.toAssignableList = function(exprList, isBinding) { - var end = exprList.length; - for (var i2 = 0; i2 < end; i2++) { - var elt = exprList[i2]; - if (elt) { - this.toAssignable(elt, isBinding); - } - } - if (end) { - var last = exprList[end - 1]; - if (this.options.ecmaVersion === 6 && isBinding && last && last.type === "RestElement" && last.argument.type !== "Identifier") { - this.unexpected(last.argument.start); - } - } - return exprList; -}; -pp$7.parseSpread = function(refDestructuringErrors) { - var node = this.startNode(); - this.next(); - node.argument = this.parseMaybeAssign(false, refDestructuringErrors); - return this.finishNode(node, "SpreadElement"); -}; -pp$7.parseRestBinding = function() { - var node = this.startNode(); - this.next(); - if (this.options.ecmaVersion === 6 && this.type !== types$1.name) { - this.unexpected(); - } - node.argument = this.parseBindingAtom(); - return this.finishNode(node, "RestElement"); -}; -pp$7.parseBindingAtom = function() { - if (this.options.ecmaVersion >= 6) { - switch (this.type) { - case types$1.bracketL: - var node = this.startNode(); - this.next(); - node.elements = this.parseBindingList(types$1.bracketR, true, true); - return this.finishNode(node, "ArrayPattern"); - case types$1.braceL: - return this.parseObj(true); - } - } - return this.parseIdent(); -}; -pp$7.parseBindingList = function(close, allowEmpty, allowTrailingComma, allowModifiers) { - var elts = [], first = true; - while (!this.eat(close)) { - if (first) { - first = false; - } else { - this.expect(types$1.comma); - } - if (allowEmpty && this.type === types$1.comma) { - elts.push(null); - } else if (allowTrailingComma && this.afterTrailingComma(close)) { - break; - } else if (this.type === types$1.ellipsis) { - var rest = this.parseRestBinding(); - this.parseBindingListItem(rest); - elts.push(rest); - if (this.type === types$1.comma) { - this.raiseRecoverable(this.start, "Comma is not permitted after the rest element"); - } - this.expect(close); - break; - } else { - elts.push(this.parseAssignableListItem(allowModifiers)); - } - } - return elts; -}; -pp$7.parseAssignableListItem = function(allowModifiers) { - var elem = this.parseMaybeDefault(this.start, this.startLoc); - this.parseBindingListItem(elem); - return elem; -}; -pp$7.parseBindingListItem = function(param) { - return param; -}; -pp$7.parseMaybeDefault = function(startPos, startLoc, left) { - left = left || this.parseBindingAtom(); - if (this.options.ecmaVersion < 6 || !this.eat(types$1.eq)) { - return left; - } - var node = this.startNodeAt(startPos, startLoc); - node.left = left; - node.right = this.parseMaybeAssign(); - return this.finishNode(node, "AssignmentPattern"); -}; -pp$7.checkLValSimple = function(expr, bindingType, checkClashes) { - if (bindingType === void 0) bindingType = BIND_NONE; - var isBind = bindingType !== BIND_NONE; - switch (expr.type) { - case "Identifier": - if (this.strict && this.reservedWordsStrictBind.test(expr.name)) { - this.raiseRecoverable(expr.start, (isBind ? "Binding " : "Assigning to ") + expr.name + " in strict mode"); - } - if (isBind) { - if (bindingType === BIND_LEXICAL && expr.name === "let") { - this.raiseRecoverable(expr.start, "let is disallowed as a lexically bound name"); - } - if (checkClashes) { - if (hasOwn(checkClashes, expr.name)) { - this.raiseRecoverable(expr.start, "Argument name clash"); - } - checkClashes[expr.name] = true; - } - if (bindingType !== BIND_OUTSIDE) { - this.declareName(expr.name, bindingType, expr.start); - } - } - break; - case "ChainExpression": - this.raiseRecoverable(expr.start, "Optional chaining cannot appear in left-hand side"); - break; - case "MemberExpression": - if (isBind) { - this.raiseRecoverable(expr.start, "Binding member expression"); - } - break; - case "ParenthesizedExpression": - if (isBind) { - this.raiseRecoverable(expr.start, "Binding parenthesized expression"); - } - return this.checkLValSimple(expr.expression, bindingType, checkClashes); - default: - this.raise(expr.start, (isBind ? "Binding" : "Assigning to") + " rvalue"); - } -}; -pp$7.checkLValPattern = function(expr, bindingType, checkClashes) { - if (bindingType === void 0) bindingType = BIND_NONE; - switch (expr.type) { - case "ObjectPattern": - for (var i2 = 0, list2 = expr.properties; i2 < list2.length; i2 += 1) { - var prop = list2[i2]; - this.checkLValInnerPattern(prop, bindingType, checkClashes); - } - break; - case "ArrayPattern": - for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) { - var elem = list$1[i$1]; - if (elem) { - this.checkLValInnerPattern(elem, bindingType, checkClashes); - } - } - break; - default: - this.checkLValSimple(expr, bindingType, checkClashes); - } -}; -pp$7.checkLValInnerPattern = function(expr, bindingType, checkClashes) { - if (bindingType === void 0) bindingType = BIND_NONE; - switch (expr.type) { - case "Property": - this.checkLValInnerPattern(expr.value, bindingType, checkClashes); - break; - case "AssignmentPattern": - this.checkLValPattern(expr.left, bindingType, checkClashes); - break; - case "RestElement": - this.checkLValPattern(expr.argument, bindingType, checkClashes); - break; - default: - this.checkLValPattern(expr, bindingType, checkClashes); - } -}; -var TokContext = function TokContext2(token, isExpr, preserveSpace, override, generator) { - this.token = token; - this.isExpr = !!isExpr; - this.preserveSpace = !!preserveSpace; - this.override = override; - this.generator = !!generator; -}; -var types = { - b_stat: new TokContext("{", false), - b_expr: new TokContext("{", true), - b_tmpl: new TokContext("${", false), - p_stat: new TokContext("(", false), - p_expr: new TokContext("(", true), - q_tmpl: new TokContext("`", true, true, function(p) { - return p.tryReadTemplateToken(); - }), - f_stat: new TokContext("function", false), - f_expr: new TokContext("function", true), - f_expr_gen: new TokContext("function", true, false, null, true), - f_gen: new TokContext("function", false, false, null, true) -}; -var pp$6 = Parser.prototype; -pp$6.initialContext = function() { - return [types.b_stat]; -}; -pp$6.curContext = function() { - return this.context[this.context.length - 1]; -}; -pp$6.braceIsBlock = function(prevType) { - var parent = this.curContext(); - if (parent === types.f_expr || parent === types.f_stat) { - return true; - } - if (prevType === types$1.colon && (parent === types.b_stat || parent === types.b_expr)) { - return !parent.isExpr; - } - if (prevType === types$1._return || prevType === types$1.name && this.exprAllowed) { - return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)); - } - if (prevType === types$1._else || prevType === types$1.semi || prevType === types$1.eof || prevType === types$1.parenR || prevType === types$1.arrow) { - return true; - } - if (prevType === types$1.braceL) { - return parent === types.b_stat; - } - if (prevType === types$1._var || prevType === types$1._const || prevType === types$1.name) { - return false; - } - return !this.exprAllowed; -}; -pp$6.inGeneratorContext = function() { - for (var i2 = this.context.length - 1; i2 >= 1; i2--) { - var context = this.context[i2]; - if (context.token === "function") { - return context.generator; - } - } - return false; -}; -pp$6.updateContext = function(prevType) { - var update, type = this.type; - if (type.keyword && prevType === types$1.dot) { - this.exprAllowed = false; - } else if (update = type.updateContext) { - update.call(this, prevType); - } else { - this.exprAllowed = type.beforeExpr; - } -}; -pp$6.overrideContext = function(tokenCtx) { - if (this.curContext() !== tokenCtx) { - this.context[this.context.length - 1] = tokenCtx; - } -}; -types$1.parenR.updateContext = types$1.braceR.updateContext = function() { - if (this.context.length === 1) { - this.exprAllowed = true; - return; - } - var out = this.context.pop(); - if (out === types.b_stat && this.curContext().token === "function") { - out = this.context.pop(); - } - this.exprAllowed = !out.isExpr; -}; -types$1.braceL.updateContext = function(prevType) { - this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr); - this.exprAllowed = true; -}; -types$1.dollarBraceL.updateContext = function() { - this.context.push(types.b_tmpl); - this.exprAllowed = true; -}; -types$1.parenL.updateContext = function(prevType) { - var statementParens = prevType === types$1._if || prevType === types$1._for || prevType === types$1._with || prevType === types$1._while; - this.context.push(statementParens ? types.p_stat : types.p_expr); - this.exprAllowed = true; -}; -types$1.incDec.updateContext = function() { -}; -types$1._function.updateContext = types$1._class.updateContext = function(prevType) { - if (prevType.beforeExpr && prevType !== types$1._else && !(prevType === types$1.semi && this.curContext() !== types.p_stat) && !(prevType === types$1._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) && !((prevType === types$1.colon || prevType === types$1.braceL) && this.curContext() === types.b_stat)) { - this.context.push(types.f_expr); - } else { - this.context.push(types.f_stat); - } - this.exprAllowed = false; -}; -types$1.colon.updateContext = function() { - if (this.curContext().token === "function") { - this.context.pop(); - } - this.exprAllowed = true; -}; -types$1.backQuote.updateContext = function() { - if (this.curContext() === types.q_tmpl) { - this.context.pop(); - } else { - this.context.push(types.q_tmpl); - } - this.exprAllowed = false; -}; -types$1.star.updateContext = function(prevType) { - if (prevType === types$1._function) { - var index = this.context.length - 1; - if (this.context[index] === types.f_expr) { - this.context[index] = types.f_expr_gen; - } else { - this.context[index] = types.f_gen; - } - } - this.exprAllowed = true; -}; -types$1.name.updateContext = function(prevType) { - var allowed = false; - if (this.options.ecmaVersion >= 6 && prevType !== types$1.dot) { - if (this.value === "of" && !this.exprAllowed || this.value === "yield" && this.inGeneratorContext()) { - allowed = true; - } - } - this.exprAllowed = allowed; -}; -var pp$5 = Parser.prototype; -pp$5.checkPropClash = function(prop, propHash, refDestructuringErrors) { - if (this.options.ecmaVersion >= 9 && prop.type === "SpreadElement") { - return; - } - if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand)) { - return; - } - var key = prop.key; - var name; - switch (key.type) { - case "Identifier": - name = key.name; - break; - case "Literal": - name = String(key.value); - break; - default: - return; - } - var kind = prop.kind; - if (this.options.ecmaVersion >= 6) { - if (name === "__proto__" && kind === "init") { - if (propHash.proto) { - if (refDestructuringErrors) { - if (refDestructuringErrors.doubleProto < 0) { - refDestructuringErrors.doubleProto = key.start; - } - } else { - this.raiseRecoverable(key.start, "Redefinition of __proto__ property"); - } - } - propHash.proto = true; - } - return; - } - name = "$" + name; - var other = propHash[name]; - if (other) { - var redefinition; - if (kind === "init") { - redefinition = this.strict && other.init || other.get || other.set; - } else { - redefinition = other.init || other[kind]; - } - if (redefinition) { - this.raiseRecoverable(key.start, "Redefinition of property"); - } - } else { - other = propHash[name] = { - init: false, - get: false, - set: false - }; - } - other[kind] = true; -}; -pp$5.parseExpression = function(forInit, refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseMaybeAssign(forInit, refDestructuringErrors); - if (this.type === types$1.comma) { - var node = this.startNodeAt(startPos, startLoc); - node.expressions = [expr]; - while (this.eat(types$1.comma)) { - node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); - } - return this.finishNode(node, "SequenceExpression"); - } - return expr; -}; -pp$5.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) { - if (this.isContextual("yield")) { - if (this.inGenerator) { - return this.parseYield(forInit); - } else { - this.exprAllowed = false; - } - } - var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldDoubleProto = -1; - if (refDestructuringErrors) { - oldParenAssign = refDestructuringErrors.parenthesizedAssign; - oldTrailingComma = refDestructuringErrors.trailingComma; - oldDoubleProto = refDestructuringErrors.doubleProto; - refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1; - } else { - refDestructuringErrors = new DestructuringErrors(); - ownDestructuringErrors = true; - } - var startPos = this.start, startLoc = this.startLoc; - if (this.type === types$1.parenL || this.type === types$1.name) { - this.potentialArrowAt = this.start; - this.potentialArrowInForAwait = forInit === "await"; - } - var left = this.parseMaybeConditional(forInit, refDestructuringErrors); - if (afterLeftParse) { - left = afterLeftParse.call(this, left, startPos, startLoc); - } - if (this.type.isAssign) { - var node = this.startNodeAt(startPos, startLoc); - node.operator = this.value; - if (this.type === types$1.eq) { - left = this.toAssignable(left, false, refDestructuringErrors); - } - if (!ownDestructuringErrors) { - refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1; - } - if (refDestructuringErrors.shorthandAssign >= left.start) { - refDestructuringErrors.shorthandAssign = -1; - } - if (this.type === types$1.eq) { - this.checkLValPattern(left); - } else { - this.checkLValSimple(left); - } - node.left = left; - this.next(); - node.right = this.parseMaybeAssign(forInit); - if (oldDoubleProto > -1) { - refDestructuringErrors.doubleProto = oldDoubleProto; - } - return this.finishNode(node, "AssignmentExpression"); - } else { - if (ownDestructuringErrors) { - this.checkExpressionErrors(refDestructuringErrors, true); - } - } - if (oldParenAssign > -1) { - refDestructuringErrors.parenthesizedAssign = oldParenAssign; - } - if (oldTrailingComma > -1) { - refDestructuringErrors.trailingComma = oldTrailingComma; - } - return left; -}; -pp$5.parseMaybeConditional = function(forInit, refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseExprOps(forInit, refDestructuringErrors); - if (this.checkExpressionErrors(refDestructuringErrors)) { - return expr; - } - if (this.eat(types$1.question)) { - var node = this.startNodeAt(startPos, startLoc); - node.test = expr; - node.consequent = this.parseMaybeAssign(); - this.expect(types$1.colon); - node.alternate = this.parseMaybeAssign(forInit); - return this.finishNode(node, "ConditionalExpression"); - } - return expr; -}; -pp$5.parseExprOps = function(forInit, refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit); - if (this.checkExpressionErrors(refDestructuringErrors)) { - return expr; - } - return expr.start === startPos && expr.type === "ArrowFunctionExpression" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit); -}; -pp$5.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) { - var prec = this.type.binop; - if (prec != null && (!forInit || this.type !== types$1._in)) { - if (prec > minPrec) { - var logical = this.type === types$1.logicalOR || this.type === types$1.logicalAND; - var coalesce = this.type === types$1.coalesce; - if (coalesce) { - prec = types$1.logicalAND.binop; - } - var op = this.value; - this.next(); - var startPos = this.start, startLoc = this.startLoc; - var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit); - var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce); - if (logical && this.type === types$1.coalesce || coalesce && (this.type === types$1.logicalOR || this.type === types$1.logicalAND)) { - this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"); - } - return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit); - } - } - return left; -}; -pp$5.buildBinary = function(startPos, startLoc, left, right, op, logical) { - if (right.type === "PrivateIdentifier") { - this.raise(right.start, "Private identifier can only be left side of binary expression"); - } - var node = this.startNodeAt(startPos, startLoc); - node.left = left; - node.operator = op; - node.right = right; - return this.finishNode(node, logical ? "LogicalExpression" : "BinaryExpression"); -}; -pp$5.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) { - var startPos = this.start, startLoc = this.startLoc, expr; - if (this.isContextual("await") && this.canAwait) { - expr = this.parseAwait(forInit); - sawUnary = true; - } else if (this.type.prefix) { - var node = this.startNode(), update = this.type === types$1.incDec; - node.operator = this.value; - node.prefix = true; - this.next(); - node.argument = this.parseMaybeUnary(null, true, update, forInit); - this.checkExpressionErrors(refDestructuringErrors, true); - if (update) { - this.checkLValSimple(node.argument); - } else if (this.strict && node.operator === "delete" && isLocalVariableAccess(node.argument)) { - this.raiseRecoverable(node.start, "Deleting local variable in strict mode"); - } else if (node.operator === "delete" && isPrivateFieldAccess(node.argument)) { - this.raiseRecoverable(node.start, "Private fields can not be deleted"); - } else { - sawUnary = true; - } - expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression"); - } else if (!sawUnary && this.type === types$1.privateId) { - if ((forInit || this.privateNameStack.length === 0) && this.options.checkPrivateFields) { - this.unexpected(); - } - expr = this.parsePrivateIdent(); - if (this.type !== types$1._in) { - this.unexpected(); - } - } else { - expr = this.parseExprSubscripts(refDestructuringErrors, forInit); - if (this.checkExpressionErrors(refDestructuringErrors)) { - return expr; - } - while (this.type.postfix && !this.canInsertSemicolon()) { - var node$1 = this.startNodeAt(startPos, startLoc); - node$1.operator = this.value; - node$1.prefix = false; - node$1.argument = expr; - this.checkLValSimple(expr); - this.next(); - expr = this.finishNode(node$1, "UpdateExpression"); - } - } - if (!incDec && this.eat(types$1.starstar)) { - if (sawUnary) { - this.unexpected(this.lastTokStart); - } else { - return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false, false, forInit), "**", false); - } - } else { - return expr; - } -}; -function isLocalVariableAccess(node) { - return node.type === "Identifier" || node.type === "ParenthesizedExpression" && isLocalVariableAccess(node.expression); -} -function isPrivateFieldAccess(node) { - return node.type === "MemberExpression" && node.property.type === "PrivateIdentifier" || node.type === "ChainExpression" && isPrivateFieldAccess(node.expression) || node.type === "ParenthesizedExpression" && isPrivateFieldAccess(node.expression); -} -pp$5.parseExprSubscripts = function(refDestructuringErrors, forInit) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseExprAtom(refDestructuringErrors, forInit); - if (expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")") { - return expr; - } - var result = this.parseSubscripts(expr, startPos, startLoc, false, forInit); - if (refDestructuringErrors && result.type === "MemberExpression") { - if (refDestructuringErrors.parenthesizedAssign >= result.start) { - refDestructuringErrors.parenthesizedAssign = -1; - } - if (refDestructuringErrors.parenthesizedBind >= result.start) { - refDestructuringErrors.parenthesizedBind = -1; - } - if (refDestructuringErrors.trailingComma >= result.start) { - refDestructuringErrors.trailingComma = -1; - } - } - return result; -}; -pp$5.parseSubscripts = function(base2, startPos, startLoc, noCalls, forInit) { - var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base2.type === "Identifier" && base2.name === "async" && this.lastTokEnd === base2.end && !this.canInsertSemicolon() && base2.end - base2.start === 5 && this.potentialArrowAt === base2.start; - var optionalChained = false; - while (true) { - var element = this.parseSubscript(base2, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit); - if (element.optional) { - optionalChained = true; - } - if (element === base2 || element.type === "ArrowFunctionExpression") { - if (optionalChained) { - var chainNode = this.startNodeAt(startPos, startLoc); - chainNode.expression = element; - element = this.finishNode(chainNode, "ChainExpression"); - } - return element; - } - base2 = element; - } -}; -pp$5.shouldParseAsyncArrow = function() { - return !this.canInsertSemicolon() && this.eat(types$1.arrow); -}; -pp$5.parseSubscriptAsyncArrow = function(startPos, startLoc, exprList, forInit) { - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true, forInit); -}; -pp$5.parseSubscript = function(base2, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) { - var optionalSupported = this.options.ecmaVersion >= 11; - var optional2 = optionalSupported && this.eat(types$1.questionDot); - if (noCalls && optional2) { - this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions"); - } - var computed = this.eat(types$1.bracketL); - if (computed || optional2 && this.type !== types$1.parenL && this.type !== types$1.backQuote || this.eat(types$1.dot)) { - var node = this.startNodeAt(startPos, startLoc); - node.object = base2; - if (computed) { - node.property = this.parseExpression(); - this.expect(types$1.bracketR); - } else if (this.type === types$1.privateId && base2.type !== "Super") { - node.property = this.parsePrivateIdent(); - } else { - node.property = this.parseIdent(this.options.allowReserved !== "never"); - } - node.computed = !!computed; - if (optionalSupported) { - node.optional = optional2; - } - base2 = this.finishNode(node, "MemberExpression"); - } else if (!noCalls && this.eat(types$1.parenL)) { - var refDestructuringErrors = new DestructuringErrors(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - var exprList = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors); - if (maybeAsyncArrow && !optional2 && this.shouldParseAsyncArrow()) { - this.checkPatternErrors(refDestructuringErrors, false); - this.checkYieldAwaitInDefaultParams(); - if (this.awaitIdentPos > 0) { - this.raise(this.awaitIdentPos, "Cannot use 'await' as identifier inside an async function"); - } - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.parseSubscriptAsyncArrow(startPos, startLoc, exprList, forInit); - } - this.checkExpressionErrors(refDestructuringErrors, true); - this.yieldPos = oldYieldPos || this.yieldPos; - this.awaitPos = oldAwaitPos || this.awaitPos; - this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos; - var node$1 = this.startNodeAt(startPos, startLoc); - node$1.callee = base2; - node$1.arguments = exprList; - if (optionalSupported) { - node$1.optional = optional2; - } - base2 = this.finishNode(node$1, "CallExpression"); - } else if (this.type === types$1.backQuote) { - if (optional2 || optionalChained) { - this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions"); - } - var node$2 = this.startNodeAt(startPos, startLoc); - node$2.tag = base2; - node$2.quasi = this.parseTemplate({ isTagged: true }); - base2 = this.finishNode(node$2, "TaggedTemplateExpression"); - } - return base2; -}; -pp$5.parseExprAtom = function(refDestructuringErrors, forInit, forNew) { - if (this.type === types$1.slash) { - this.readRegexp(); - } - var node, canBeArrow = this.potentialArrowAt === this.start; - switch (this.type) { - case types$1._super: - if (!this.allowSuper) { - this.raise(this.start, "'super' keyword outside a method"); - } - node = this.startNode(); - this.next(); - if (this.type === types$1.parenL && !this.allowDirectSuper) { - this.raise(node.start, "super() call outside constructor of a subclass"); - } - if (this.type !== types$1.dot && this.type !== types$1.bracketL && this.type !== types$1.parenL) { - this.unexpected(); - } - return this.finishNode(node, "Super"); - case types$1._this: - node = this.startNode(); - this.next(); - return this.finishNode(node, "ThisExpression"); - case types$1.name: - var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc; - var id = this.parseIdent(false); - if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types$1._function)) { - this.overrideContext(types.f_expr); - return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit); - } - if (canBeArrow && !this.canInsertSemicolon()) { - if (this.eat(types$1.arrow)) { - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit); - } - if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types$1.name && !containsEsc && (!this.potentialArrowInForAwait || this.value !== "of" || this.containsEsc)) { - id = this.parseIdent(false); - if (this.canInsertSemicolon() || !this.eat(types$1.arrow)) { - this.unexpected(); - } - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit); - } - } - return id; - case types$1.regexp: - var value = this.value; - node = this.parseLiteral(value.value); - node.regex = { pattern: value.pattern, flags: value.flags }; - return node; - case types$1.num: - case types$1.string: - return this.parseLiteral(this.value); - case types$1._null: - case types$1._true: - case types$1._false: - node = this.startNode(); - node.value = this.type === types$1._null ? null : this.type === types$1._true; - node.raw = this.type.keyword; - this.next(); - return this.finishNode(node, "Literal"); - case types$1.parenL: - var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit); - if (refDestructuringErrors) { - if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr)) { - refDestructuringErrors.parenthesizedAssign = start; - } - if (refDestructuringErrors.parenthesizedBind < 0) { - refDestructuringErrors.parenthesizedBind = start; - } - } - return expr; - case types$1.bracketL: - node = this.startNode(); - this.next(); - node.elements = this.parseExprList(types$1.bracketR, true, true, refDestructuringErrors); - return this.finishNode(node, "ArrayExpression"); - case types$1.braceL: - this.overrideContext(types.b_expr); - return this.parseObj(false, refDestructuringErrors); - case types$1._function: - node = this.startNode(); - this.next(); - return this.parseFunction(node, 0); - case types$1._class: - return this.parseClass(this.startNode(), false); - case types$1._new: - return this.parseNew(); - case types$1.backQuote: - return this.parseTemplate(); - case types$1._import: - if (this.options.ecmaVersion >= 11) { - return this.parseExprImport(forNew); - } else { - return this.unexpected(); - } - default: - return this.parseExprAtomDefault(); - } -}; -pp$5.parseExprAtomDefault = function() { - this.unexpected(); -}; -pp$5.parseExprImport = function(forNew) { - var node = this.startNode(); - if (this.containsEsc) { - this.raiseRecoverable(this.start, "Escape sequence in keyword import"); - } - this.next(); - if (this.type === types$1.parenL && !forNew) { - return this.parseDynamicImport(node); - } else if (this.type === types$1.dot) { - var meta3 = this.startNodeAt(node.start, node.loc && node.loc.start); - meta3.name = "import"; - node.meta = this.finishNode(meta3, "Identifier"); - return this.parseImportMeta(node); - } else { - this.unexpected(); - } -}; -pp$5.parseDynamicImport = function(node) { - this.next(); - node.source = this.parseMaybeAssign(); - if (this.options.ecmaVersion >= 16) { - if (!this.eat(types$1.parenR)) { - this.expect(types$1.comma); - if (!this.afterTrailingComma(types$1.parenR)) { - node.options = this.parseMaybeAssign(); - if (!this.eat(types$1.parenR)) { - this.expect(types$1.comma); - if (!this.afterTrailingComma(types$1.parenR)) { - this.unexpected(); - } - } - } else { - node.options = null; - } - } else { - node.options = null; - } - } else { - if (!this.eat(types$1.parenR)) { - var errorPos = this.start; - if (this.eat(types$1.comma) && this.eat(types$1.parenR)) { - this.raiseRecoverable(errorPos, "Trailing comma is not allowed in import()"); - } else { - this.unexpected(errorPos); - } - } - } - return this.finishNode(node, "ImportExpression"); -}; -pp$5.parseImportMeta = function(node) { - this.next(); - var containsEsc = this.containsEsc; - node.property = this.parseIdent(true); - if (node.property.name !== "meta") { - this.raiseRecoverable(node.property.start, "The only valid meta property for import is 'import.meta'"); - } - if (containsEsc) { - this.raiseRecoverable(node.start, "'import.meta' must not contain escaped characters"); - } - if (this.options.sourceType !== "module" && !this.options.allowImportExportEverywhere) { - this.raiseRecoverable(node.start, "Cannot use 'import.meta' outside a module"); - } - return this.finishNode(node, "MetaProperty"); -}; -pp$5.parseLiteral = function(value) { - var node = this.startNode(); - node.value = value; - node.raw = this.input.slice(this.start, this.end); - if (node.raw.charCodeAt(node.raw.length - 1) === 110) { - node.bigint = node.value != null ? node.value.toString() : node.raw.slice(0, -1).replace(/_/g, ""); - } - this.next(); - return this.finishNode(node, "Literal"); -}; -pp$5.parseParenExpression = function() { - this.expect(types$1.parenL); - var val = this.parseExpression(); - this.expect(types$1.parenR); - return val; -}; -pp$5.shouldParseArrow = function(exprList) { - return !this.canInsertSemicolon(); -}; -pp$5.parseParenAndDistinguishExpression = function(canBeArrow, forInit) { - var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8; - if (this.options.ecmaVersion >= 6) { - this.next(); - var innerStartPos = this.start, innerStartLoc = this.startLoc; - var exprList = [], first = true, lastIsComma = false; - var refDestructuringErrors = new DestructuringErrors(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart; - this.yieldPos = 0; - this.awaitPos = 0; - while (this.type !== types$1.parenR) { - first ? first = false : this.expect(types$1.comma); - if (allowTrailingComma && this.afterTrailingComma(types$1.parenR, true)) { - lastIsComma = true; - break; - } else if (this.type === types$1.ellipsis) { - spreadStart = this.start; - exprList.push(this.parseParenItem(this.parseRestBinding())); - if (this.type === types$1.comma) { - this.raiseRecoverable( - this.start, - "Comma is not permitted after the rest element" - ); - } - break; - } else { - exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem)); - } - } - var innerEndPos = this.lastTokEnd, innerEndLoc = this.lastTokEndLoc; - this.expect(types$1.parenR); - if (canBeArrow && this.shouldParseArrow(exprList) && this.eat(types$1.arrow)) { - this.checkPatternErrors(refDestructuringErrors, false); - this.checkYieldAwaitInDefaultParams(); - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - return this.parseParenArrowList(startPos, startLoc, exprList, forInit); - } - if (!exprList.length || lastIsComma) { - this.unexpected(this.lastTokStart); - } - if (spreadStart) { - this.unexpected(spreadStart); - } - this.checkExpressionErrors(refDestructuringErrors, true); - this.yieldPos = oldYieldPos || this.yieldPos; - this.awaitPos = oldAwaitPos || this.awaitPos; - if (exprList.length > 1) { - val = this.startNodeAt(innerStartPos, innerStartLoc); - val.expressions = exprList; - this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc); - } else { - val = exprList[0]; - } - } else { - val = this.parseParenExpression(); - } - if (this.options.preserveParens) { - var par = this.startNodeAt(startPos, startLoc); - par.expression = val; - return this.finishNode(par, "ParenthesizedExpression"); - } else { - return val; - } -}; -pp$5.parseParenItem = function(item) { - return item; -}; -pp$5.parseParenArrowList = function(startPos, startLoc, exprList, forInit) { - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit); -}; -var empty = []; -pp$5.parseNew = function() { - if (this.containsEsc) { - this.raiseRecoverable(this.start, "Escape sequence in keyword new"); - } - var node = this.startNode(); - this.next(); - if (this.options.ecmaVersion >= 6 && this.type === types$1.dot) { - var meta3 = this.startNodeAt(node.start, node.loc && node.loc.start); - meta3.name = "new"; - node.meta = this.finishNode(meta3, "Identifier"); - this.next(); - var containsEsc = this.containsEsc; - node.property = this.parseIdent(true); - if (node.property.name !== "target") { - this.raiseRecoverable(node.property.start, "The only valid meta property for new is 'new.target'"); - } - if (containsEsc) { - this.raiseRecoverable(node.start, "'new.target' must not contain escaped characters"); - } - if (!this.allowNewDotTarget) { - this.raiseRecoverable(node.start, "'new.target' can only be used in functions and class static block"); - } - return this.finishNode(node, "MetaProperty"); - } - var startPos = this.start, startLoc = this.startLoc; - node.callee = this.parseSubscripts(this.parseExprAtom(null, false, true), startPos, startLoc, true, false); - if (this.eat(types$1.parenL)) { - node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); - } else { - node.arguments = empty; - } - return this.finishNode(node, "NewExpression"); -}; -pp$5.parseTemplateElement = function(ref2) { - var isTagged = ref2.isTagged; - var elem = this.startNode(); - if (this.type === types$1.invalidTemplate) { - if (!isTagged) { - this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal"); - } - elem.value = { - raw: this.value.replace(/\r\n?/g, "\n"), - cooked: null - }; - } else { - elem.value = { - raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, "\n"), - cooked: this.value - }; - } - this.next(); - elem.tail = this.type === types$1.backQuote; - return this.finishNode(elem, "TemplateElement"); -}; -pp$5.parseTemplate = function(ref2) { - if (ref2 === void 0) ref2 = {}; - var isTagged = ref2.isTagged; - if (isTagged === void 0) isTagged = false; - var node = this.startNode(); - this.next(); - node.expressions = []; - var curElt = this.parseTemplateElement({ isTagged }); - node.quasis = [curElt]; - while (!curElt.tail) { - if (this.type === types$1.eof) { - this.raise(this.pos, "Unterminated template literal"); - } - this.expect(types$1.dollarBraceL); - node.expressions.push(this.parseExpression()); - this.expect(types$1.braceR); - node.quasis.push(curElt = this.parseTemplateElement({ isTagged })); - } - this.next(); - return this.finishNode(node, "TemplateLiteral"); -}; -pp$5.isAsyncProp = function(prop) { - return !prop.computed && prop.key.type === "Identifier" && prop.key.name === "async" && (this.type === types$1.name || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword || this.options.ecmaVersion >= 9 && this.type === types$1.star) && !lineBreak.test(this.input.slice(this.lastTokEnd, this.start)); -}; -pp$5.parseObj = function(isPattern, refDestructuringErrors) { - var node = this.startNode(), first = true, propHash = {}; - node.properties = []; - this.next(); - while (!this.eat(types$1.braceR)) { - if (!first) { - this.expect(types$1.comma); - if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$1.braceR)) { - break; - } - } else { - first = false; - } - var prop = this.parseProperty(isPattern, refDestructuringErrors); - if (!isPattern) { - this.checkPropClash(prop, propHash, refDestructuringErrors); - } - node.properties.push(prop); - } - return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression"); -}; -pp$5.parseProperty = function(isPattern, refDestructuringErrors) { - var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc; - if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) { - if (isPattern) { - prop.argument = this.parseIdent(false); - if (this.type === types$1.comma) { - this.raiseRecoverable(this.start, "Comma is not permitted after the rest element"); - } - return this.finishNode(prop, "RestElement"); - } - prop.argument = this.parseMaybeAssign(false, refDestructuringErrors); - if (this.type === types$1.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) { - refDestructuringErrors.trailingComma = this.start; - } - return this.finishNode(prop, "SpreadElement"); - } - if (this.options.ecmaVersion >= 6) { - prop.method = false; - prop.shorthand = false; - if (isPattern || refDestructuringErrors) { - startPos = this.start; - startLoc = this.startLoc; - } - if (!isPattern) { - isGenerator = this.eat(types$1.star); - } - } - var containsEsc = this.containsEsc; - this.parsePropertyName(prop); - if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) { - isAsync = true; - isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star); - this.parsePropertyName(prop); - } else { - isAsync = false; - } - this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc); - return this.finishNode(prop, "Property"); -}; -pp$5.parseGetterSetter = function(prop) { - var kind = prop.key.name; - this.parsePropertyName(prop); - prop.value = this.parseMethod(false); - prop.kind = kind; - var paramCount = prop.kind === "get" ? 0 : 1; - if (prop.value.params.length !== paramCount) { - var start = prop.value.start; - if (prop.kind === "get") { - this.raiseRecoverable(start, "getter should have no params"); - } else { - this.raiseRecoverable(start, "setter should have exactly one param"); - } - } else { - if (prop.kind === "set" && prop.value.params[0].type === "RestElement") { - this.raiseRecoverable(prop.value.params[0].start, "Setter cannot use rest params"); - } - } -}; -pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) { - if ((isGenerator || isAsync) && this.type === types$1.colon) { - this.unexpected(); - } - if (this.eat(types$1.colon)) { - prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors); - prop.kind = "init"; - } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) { - if (isPattern) { - this.unexpected(); - } - prop.method = true; - prop.value = this.parseMethod(isGenerator, isAsync); - prop.kind = "init"; - } else if (!isPattern && !containsEsc && this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set") && (this.type !== types$1.comma && this.type !== types$1.braceR && this.type !== types$1.eq)) { - if (isGenerator || isAsync) { - this.unexpected(); - } - this.parseGetterSetter(prop); - } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === "Identifier") { - if (isGenerator || isAsync) { - this.unexpected(); - } - this.checkUnreserved(prop.key); - if (prop.key.name === "await" && !this.awaitIdentPos) { - this.awaitIdentPos = startPos; - } - if (isPattern) { - prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); - } else if (this.type === types$1.eq && refDestructuringErrors) { - if (refDestructuringErrors.shorthandAssign < 0) { - refDestructuringErrors.shorthandAssign = this.start; - } - prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); - } else { - prop.value = this.copyNode(prop.key); - } - prop.kind = "init"; - prop.shorthand = true; - } else { - this.unexpected(); - } -}; -pp$5.parsePropertyName = function(prop) { - if (this.options.ecmaVersion >= 6) { - if (this.eat(types$1.bracketL)) { - prop.computed = true; - prop.key = this.parseMaybeAssign(); - this.expect(types$1.bracketR); - return prop.key; - } else { - prop.computed = false; - } - } - return prop.key = this.type === types$1.num || this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never"); -}; -pp$5.initFunction = function(node) { - node.id = null; - if (this.options.ecmaVersion >= 6) { - node.generator = node.expression = false; - } - if (this.options.ecmaVersion >= 8) { - node.async = false; - } -}; -pp$5.parseMethod = function(isGenerator, isAsync, allowDirectSuper) { - var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - this.initFunction(node); - if (this.options.ecmaVersion >= 6) { - node.generator = isGenerator; - } - if (this.options.ecmaVersion >= 8) { - node.async = !!isAsync; - } - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0)); - this.expect(types$1.parenL); - node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8); - this.checkYieldAwaitInDefaultParams(); - this.parseFunctionBody(node, false, true, false); - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.finishNode(node, "FunctionExpression"); -}; -pp$5.parseArrowExpression = function(node, params, isAsync, forInit) { - var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW); - this.initFunction(node); - if (this.options.ecmaVersion >= 8) { - node.async = !!isAsync; - } - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - node.params = this.toAssignableList(params, true); - this.parseFunctionBody(node, true, false, forInit); - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.finishNode(node, "ArrowFunctionExpression"); -}; -pp$5.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) { - var isExpression = isArrowFunction && this.type !== types$1.braceL; - var oldStrict = this.strict, useStrict = false; - if (isExpression) { - node.body = this.parseMaybeAssign(forInit); - node.expression = true; - this.checkParams(node, false); - } else { - var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params); - if (!oldStrict || nonSimple) { - useStrict = this.strictDirective(this.end); - if (useStrict && nonSimple) { - this.raiseRecoverable(node.start, "Illegal 'use strict' directive in function with non-simple parameter list"); - } - } - var oldLabels = this.labels; - this.labels = []; - if (useStrict) { - this.strict = true; - } - this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params)); - if (this.strict && node.id) { - this.checkLValSimple(node.id, BIND_OUTSIDE); - } - node.body = this.parseBlock(false, void 0, useStrict && !oldStrict); - node.expression = false; - this.adaptDirectivePrologue(node.body.body); - this.labels = oldLabels; - } - this.exitScope(); -}; -pp$5.isSimpleParamList = function(params) { - for (var i2 = 0, list2 = params; i2 < list2.length; i2 += 1) { - var param = list2[i2]; - if (param.type !== "Identifier") { - return false; - } - } - return true; -}; -pp$5.checkParams = function(node, allowDuplicates) { - var nameHash = /* @__PURE__ */ Object.create(null); - for (var i2 = 0, list2 = node.params; i2 < list2.length; i2 += 1) { - var param = list2[i2]; - this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash); - } -}; -pp$5.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) { - var elts = [], first = true; - while (!this.eat(close)) { - if (!first) { - this.expect(types$1.comma); - if (allowTrailingComma && this.afterTrailingComma(close)) { - break; - } - } else { - first = false; - } - var elt = void 0; - if (allowEmpty && this.type === types$1.comma) { - elt = null; - } else if (this.type === types$1.ellipsis) { - elt = this.parseSpread(refDestructuringErrors); - if (refDestructuringErrors && this.type === types$1.comma && refDestructuringErrors.trailingComma < 0) { - refDestructuringErrors.trailingComma = this.start; - } - } else { - elt = this.parseMaybeAssign(false, refDestructuringErrors); - } - elts.push(elt); - } - return elts; -}; -pp$5.checkUnreserved = function(ref2) { - var start = ref2.start; - var end = ref2.end; - var name = ref2.name; - if (this.inGenerator && name === "yield") { - this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); - } - if (this.inAsync && name === "await") { - this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function"); - } - if (!(this.currentThisScope().flags & SCOPE_VAR) && name === "arguments") { - this.raiseRecoverable(start, "Cannot use 'arguments' in class field initializer"); - } - if (this.inClassStaticBlock && (name === "arguments" || name === "await")) { - this.raise(start, "Cannot use " + name + " in class static initialization block"); - } - if (this.keywords.test(name)) { - this.raise(start, "Unexpected keyword '" + name + "'"); - } - if (this.options.ecmaVersion < 6 && this.input.slice(start, end).indexOf("\\") !== -1) { - return; - } - var re = this.strict ? this.reservedWordsStrict : this.reservedWords; - if (re.test(name)) { - if (!this.inAsync && name === "await") { - this.raiseRecoverable(start, "Cannot use keyword 'await' outside an async function"); - } - this.raiseRecoverable(start, "The keyword '" + name + "' is reserved"); - } -}; -pp$5.parseIdent = function(liberal) { - var node = this.parseIdentNode(); - this.next(!!liberal); - this.finishNode(node, "Identifier"); - if (!liberal) { - this.checkUnreserved(node); - if (node.name === "await" && !this.awaitIdentPos) { - this.awaitIdentPos = node.start; - } - } - return node; -}; -pp$5.parseIdentNode = function() { - var node = this.startNode(); - if (this.type === types$1.name) { - node.name = this.value; - } else if (this.type.keyword) { - node.name = this.type.keyword; - if ((node.name === "class" || node.name === "function") && (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) { - this.context.pop(); - } - this.type = types$1.name; - } else { - this.unexpected(); - } - return node; -}; -pp$5.parsePrivateIdent = function() { - var node = this.startNode(); - if (this.type === types$1.privateId) { - node.name = this.value; - } else { - this.unexpected(); - } - this.next(); - this.finishNode(node, "PrivateIdentifier"); - if (this.options.checkPrivateFields) { - if (this.privateNameStack.length === 0) { - this.raise(node.start, "Private field '#" + node.name + "' must be declared in an enclosing class"); - } else { - this.privateNameStack[this.privateNameStack.length - 1].used.push(node); - } - } - return node; -}; -pp$5.parseYield = function(forInit) { - if (!this.yieldPos) { - this.yieldPos = this.start; - } - var node = this.startNode(); - this.next(); - if (this.type === types$1.semi || this.canInsertSemicolon() || this.type !== types$1.star && !this.type.startsExpr) { - node.delegate = false; - node.argument = null; - } else { - node.delegate = this.eat(types$1.star); - node.argument = this.parseMaybeAssign(forInit); - } - return this.finishNode(node, "YieldExpression"); -}; -pp$5.parseAwait = function(forInit) { - if (!this.awaitPos) { - this.awaitPos = this.start; - } - var node = this.startNode(); - this.next(); - node.argument = this.parseMaybeUnary(null, true, false, forInit); - return this.finishNode(node, "AwaitExpression"); -}; -var pp$4 = Parser.prototype; -pp$4.raise = function(pos, message) { - var loc = getLineInfo(this.input, pos); - message += " (" + loc.line + ":" + loc.column + ")"; - if (this.sourceFile) { - message += " in " + this.sourceFile; - } - var err = new SyntaxError(message); - err.pos = pos; - err.loc = loc; - err.raisedAt = this.pos; - throw err; -}; -pp$4.raiseRecoverable = pp$4.raise; -pp$4.curPosition = function() { - if (this.options.locations) { - return new Position(this.curLine, this.pos - this.lineStart); - } -}; -var pp$3 = Parser.prototype; -var Scope = function Scope2(flags) { - this.flags = flags; - this.var = []; - this.lexical = []; - this.functions = []; -}; -pp$3.enterScope = function(flags) { - this.scopeStack.push(new Scope(flags)); -}; -pp$3.exitScope = function() { - this.scopeStack.pop(); -}; -pp$3.treatFunctionsAsVarInScope = function(scope) { - return scope.flags & SCOPE_FUNCTION || !this.inModule && scope.flags & SCOPE_TOP; -}; -pp$3.declareName = function(name, bindingType, pos) { - var redeclared = false; - if (bindingType === BIND_LEXICAL) { - var scope = this.currentScope(); - redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1; - scope.lexical.push(name); - if (this.inModule && scope.flags & SCOPE_TOP) { - delete this.undefinedExports[name]; - } - } else if (bindingType === BIND_SIMPLE_CATCH) { - var scope$1 = this.currentScope(); - scope$1.lexical.push(name); - } else if (bindingType === BIND_FUNCTION) { - var scope$2 = this.currentScope(); - if (this.treatFunctionsAsVar) { - redeclared = scope$2.lexical.indexOf(name) > -1; - } else { - redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; - } - scope$2.functions.push(name); - } else { - for (var i2 = this.scopeStack.length - 1; i2 >= 0; --i2) { - var scope$3 = this.scopeStack[i2]; - if (scope$3.lexical.indexOf(name) > -1 && !(scope$3.flags & SCOPE_SIMPLE_CATCH && scope$3.lexical[0] === name) || !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) { - redeclared = true; - break; - } - scope$3.var.push(name); - if (this.inModule && scope$3.flags & SCOPE_TOP) { - delete this.undefinedExports[name]; - } - if (scope$3.flags & SCOPE_VAR) { - break; - } - } - } - if (redeclared) { - this.raiseRecoverable(pos, "Identifier '" + name + "' has already been declared"); - } -}; -pp$3.checkLocalExport = function(id) { - if (this.scopeStack[0].lexical.indexOf(id.name) === -1 && this.scopeStack[0].var.indexOf(id.name) === -1) { - this.undefinedExports[id.name] = id; - } -}; -pp$3.currentScope = function() { - return this.scopeStack[this.scopeStack.length - 1]; -}; -pp$3.currentVarScope = function() { - for (var i2 = this.scopeStack.length - 1; ; i2--) { - var scope = this.scopeStack[i2]; - if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK)) { - return scope; - } - } -}; -pp$3.currentThisScope = function() { - for (var i2 = this.scopeStack.length - 1; ; i2--) { - var scope = this.scopeStack[i2]; - if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK) && !(scope.flags & SCOPE_ARROW)) { - return scope; - } - } -}; -var Node = function Node2(parser, pos, loc) { - this.type = ""; - this.start = pos; - this.end = 0; - if (parser.options.locations) { - this.loc = new SourceLocation(parser, loc); - } - if (parser.options.directSourceFile) { - this.sourceFile = parser.options.directSourceFile; - } - if (parser.options.ranges) { - this.range = [pos, 0]; - } -}; -var pp$2 = Parser.prototype; -pp$2.startNode = function() { - return new Node(this, this.start, this.startLoc); -}; -pp$2.startNodeAt = function(pos, loc) { - return new Node(this, pos, loc); -}; -function finishNodeAt(node, type, pos, loc) { - node.type = type; - node.end = pos; - if (this.options.locations) { - node.loc.end = loc; - } - if (this.options.ranges) { - node.range[1] = pos; - } - return node; -} -pp$2.finishNode = function(node, type) { - return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc); -}; -pp$2.finishNodeAt = function(node, type, pos, loc) { - return finishNodeAt.call(this, node, type, pos, loc); -}; -pp$2.copyNode = function(node) { - var newNode = new Node(this, node.start, this.startLoc); - for (var prop in node) { - newNode[prop] = node[prop]; - } - return newNode; -}; -var scriptValuesAddedInUnicode = "Berf Beria_Erfe Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sidetic Sidt Sunu Sunuwar Tai_Yo Tayo Todhri Todr Tolong_Siki Tols Tulu_Tigalari Tutg Unknown Zzzz"; -var ecma9BinaryProperties = "ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS"; -var ecma10BinaryProperties = ecma9BinaryProperties + " Extended_Pictographic"; -var ecma11BinaryProperties = ecma10BinaryProperties; -var ecma12BinaryProperties = ecma11BinaryProperties + " EBase EComp EMod EPres ExtPict"; -var ecma13BinaryProperties = ecma12BinaryProperties; -var ecma14BinaryProperties = ecma13BinaryProperties; -var unicodeBinaryProperties = { - 9: ecma9BinaryProperties, - 10: ecma10BinaryProperties, - 11: ecma11BinaryProperties, - 12: ecma12BinaryProperties, - 13: ecma13BinaryProperties, - 14: ecma14BinaryProperties -}; -var ecma14BinaryPropertiesOfStrings = "Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji"; -var unicodeBinaryPropertiesOfStrings = { - 9: "", - 10: "", - 11: "", - 12: "", - 13: "", - 14: ecma14BinaryPropertiesOfStrings -}; -var unicodeGeneralCategoryValues = "Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu"; -var ecma9ScriptValues = "Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb"; -var ecma10ScriptValues = ecma9ScriptValues + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd"; -var ecma11ScriptValues = ecma10ScriptValues + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho"; -var ecma12ScriptValues = ecma11ScriptValues + " Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi"; -var ecma13ScriptValues = ecma12ScriptValues + " Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith"; -var ecma14ScriptValues = ecma13ScriptValues + " " + scriptValuesAddedInUnicode; -var unicodeScriptValues = { - 9: ecma9ScriptValues, - 10: ecma10ScriptValues, - 11: ecma11ScriptValues, - 12: ecma12ScriptValues, - 13: ecma13ScriptValues, - 14: ecma14ScriptValues -}; -var data = {}; -function buildUnicodeData(ecmaVersion2) { - var d = data[ecmaVersion2] = { - binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion2] + " " + unicodeGeneralCategoryValues), - binaryOfStrings: wordsRegexp(unicodeBinaryPropertiesOfStrings[ecmaVersion2]), - nonBinary: { - General_Category: wordsRegexp(unicodeGeneralCategoryValues), - Script: wordsRegexp(unicodeScriptValues[ecmaVersion2]) - } - }; - d.nonBinary.Script_Extensions = d.nonBinary.Script; - d.nonBinary.gc = d.nonBinary.General_Category; - d.nonBinary.sc = d.nonBinary.Script; - d.nonBinary.scx = d.nonBinary.Script_Extensions; -} -for (i = 0, list = [9, 10, 11, 12, 13, 14]; i < list.length; i += 1) { - ecmaVersion = list[i]; - buildUnicodeData(ecmaVersion); -} -var ecmaVersion; -var i; -var list; -var pp$1 = Parser.prototype; -var BranchID = function BranchID2(parent, base2) { - this.parent = parent; - this.base = base2 || this; -}; -BranchID.prototype.separatedFrom = function separatedFrom(alt) { - for (var self2 = this; self2; self2 = self2.parent) { - for (var other = alt; other; other = other.parent) { - if (self2.base === other.base && self2 !== other) { - return true; - } - } - } - return false; -}; -BranchID.prototype.sibling = function sibling() { - return new BranchID(this.parent, this.base); -}; -var RegExpValidationState = function RegExpValidationState2(parser) { - this.parser = parser; - this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : "") + (parser.options.ecmaVersion >= 13 ? "d" : "") + (parser.options.ecmaVersion >= 15 ? "v" : ""); - this.unicodeProperties = data[parser.options.ecmaVersion >= 14 ? 14 : parser.options.ecmaVersion]; - this.source = ""; - this.flags = ""; - this.start = 0; - this.switchU = false; - this.switchV = false; - this.switchN = false; - this.pos = 0; - this.lastIntValue = 0; - this.lastStringValue = ""; - this.lastAssertionIsQuantifiable = false; - this.numCapturingParens = 0; - this.maxBackReference = 0; - this.groupNames = /* @__PURE__ */ Object.create(null); - this.backReferenceNames = []; - this.branchID = null; -}; -RegExpValidationState.prototype.reset = function reset(start, pattern, flags) { - var unicodeSets = flags.indexOf("v") !== -1; - var unicode = flags.indexOf("u") !== -1; - this.start = start | 0; - this.source = pattern + ""; - this.flags = flags; - if (unicodeSets && this.parser.options.ecmaVersion >= 15) { - this.switchU = true; - this.switchV = true; - this.switchN = true; - } else { - this.switchU = unicode && this.parser.options.ecmaVersion >= 6; - this.switchV = false; - this.switchN = unicode && this.parser.options.ecmaVersion >= 9; - } -}; -RegExpValidationState.prototype.raise = function raise(message) { - this.parser.raiseRecoverable(this.start, "Invalid regular expression: /" + this.source + "/: " + message); -}; -RegExpValidationState.prototype.at = function at(i2, forceU) { - if (forceU === void 0) forceU = false; - var s = this.source; - var l = s.length; - if (i2 >= l) { - return -1; - } - var c = s.charCodeAt(i2); - if (!(forceU || this.switchU) || c <= 55295 || c >= 57344 || i2 + 1 >= l) { - return c; - } - var next = s.charCodeAt(i2 + 1); - return next >= 56320 && next <= 57343 ? (c << 10) + next - 56613888 : c; -}; -RegExpValidationState.prototype.nextIndex = function nextIndex(i2, forceU) { - if (forceU === void 0) forceU = false; - var s = this.source; - var l = s.length; - if (i2 >= l) { - return l; - } - var c = s.charCodeAt(i2), next; - if (!(forceU || this.switchU) || c <= 55295 || c >= 57344 || i2 + 1 >= l || (next = s.charCodeAt(i2 + 1)) < 56320 || next > 57343) { - return i2 + 1; - } - return i2 + 2; -}; -RegExpValidationState.prototype.current = function current(forceU) { - if (forceU === void 0) forceU = false; - return this.at(this.pos, forceU); -}; -RegExpValidationState.prototype.lookahead = function lookahead(forceU) { - if (forceU === void 0) forceU = false; - return this.at(this.nextIndex(this.pos, forceU), forceU); -}; -RegExpValidationState.prototype.advance = function advance(forceU) { - if (forceU === void 0) forceU = false; - this.pos = this.nextIndex(this.pos, forceU); -}; -RegExpValidationState.prototype.eat = function eat(ch, forceU) { - if (forceU === void 0) forceU = false; - if (this.current(forceU) === ch) { - this.advance(forceU); - return true; - } - return false; -}; -RegExpValidationState.prototype.eatChars = function eatChars(chs, forceU) { - if (forceU === void 0) forceU = false; - var pos = this.pos; - for (var i2 = 0, list2 = chs; i2 < list2.length; i2 += 1) { - var ch = list2[i2]; - var current2 = this.at(pos, forceU); - if (current2 === -1 || current2 !== ch) { - return false; - } - pos = this.nextIndex(pos, forceU); - } - this.pos = pos; - return true; -}; -pp$1.validateRegExpFlags = function(state) { - var validFlags = state.validFlags; - var flags = state.flags; - var u = false; - var v = false; - for (var i2 = 0; i2 < flags.length; i2++) { - var flag = flags.charAt(i2); - if (validFlags.indexOf(flag) === -1) { - this.raise(state.start, "Invalid regular expression flag"); - } - if (flags.indexOf(flag, i2 + 1) > -1) { - this.raise(state.start, "Duplicate regular expression flag"); - } - if (flag === "u") { - u = true; - } - if (flag === "v") { - v = true; - } - } - if (this.options.ecmaVersion >= 15 && u && v) { - this.raise(state.start, "Invalid regular expression flag"); - } -}; -function hasProp(obj) { - for (var _ in obj) { - return true; - } - return false; -} -pp$1.validateRegExpPattern = function(state) { - this.regexp_pattern(state); - if (!state.switchN && this.options.ecmaVersion >= 9 && hasProp(state.groupNames)) { - state.switchN = true; - this.regexp_pattern(state); - } -}; -pp$1.regexp_pattern = function(state) { - state.pos = 0; - state.lastIntValue = 0; - state.lastStringValue = ""; - state.lastAssertionIsQuantifiable = false; - state.numCapturingParens = 0; - state.maxBackReference = 0; - state.groupNames = /* @__PURE__ */ Object.create(null); - state.backReferenceNames.length = 0; - state.branchID = null; - this.regexp_disjunction(state); - if (state.pos !== state.source.length) { - if (state.eat( - 41 - /* ) */ - )) { - state.raise("Unmatched ')'"); - } - if (state.eat( - 93 - /* ] */ - ) || state.eat( - 125 - /* } */ - )) { - state.raise("Lone quantifier brackets"); - } - } - if (state.maxBackReference > state.numCapturingParens) { - state.raise("Invalid escape"); - } - for (var i2 = 0, list2 = state.backReferenceNames; i2 < list2.length; i2 += 1) { - var name = list2[i2]; - if (!state.groupNames[name]) { - state.raise("Invalid named capture referenced"); - } - } -}; -pp$1.regexp_disjunction = function(state) { - var trackDisjunction = this.options.ecmaVersion >= 16; - if (trackDisjunction) { - state.branchID = new BranchID(state.branchID, null); - } - this.regexp_alternative(state); - while (state.eat( - 124 - /* | */ - )) { - if (trackDisjunction) { - state.branchID = state.branchID.sibling(); - } - this.regexp_alternative(state); - } - if (trackDisjunction) { - state.branchID = state.branchID.parent; - } - if (this.regexp_eatQuantifier(state, true)) { - state.raise("Nothing to repeat"); - } - if (state.eat( - 123 - /* { */ - )) { - state.raise("Lone quantifier brackets"); - } -}; -pp$1.regexp_alternative = function(state) { - while (state.pos < state.source.length && this.regexp_eatTerm(state)) { - } -}; -pp$1.regexp_eatTerm = function(state) { - if (this.regexp_eatAssertion(state)) { - if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) { - if (state.switchU) { - state.raise("Invalid quantifier"); - } - } - return true; - } - if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) { - this.regexp_eatQuantifier(state); - return true; - } - return false; -}; -pp$1.regexp_eatAssertion = function(state) { - var start = state.pos; - state.lastAssertionIsQuantifiable = false; - if (state.eat( - 94 - /* ^ */ - ) || state.eat( - 36 - /* $ */ - )) { - return true; - } - if (state.eat( - 92 - /* \ */ - )) { - if (state.eat( - 66 - /* B */ - ) || state.eat( - 98 - /* b */ - )) { - return true; - } - state.pos = start; - } - if (state.eat( - 40 - /* ( */ - ) && state.eat( - 63 - /* ? */ - )) { - var lookbehind = false; - if (this.options.ecmaVersion >= 9) { - lookbehind = state.eat( - 60 - /* < */ - ); - } - if (state.eat( - 61 - /* = */ - ) || state.eat( - 33 - /* ! */ - )) { - this.regexp_disjunction(state); - if (!state.eat( - 41 - /* ) */ - )) { - state.raise("Unterminated group"); - } - state.lastAssertionIsQuantifiable = !lookbehind; - return true; - } - } - state.pos = start; - return false; -}; -pp$1.regexp_eatQuantifier = function(state, noError) { - if (noError === void 0) noError = false; - if (this.regexp_eatQuantifierPrefix(state, noError)) { - state.eat( - 63 - /* ? */ - ); - return true; - } - return false; -}; -pp$1.regexp_eatQuantifierPrefix = function(state, noError) { - return state.eat( - 42 - /* * */ - ) || state.eat( - 43 - /* + */ - ) || state.eat( - 63 - /* ? */ - ) || this.regexp_eatBracedQuantifier(state, noError); -}; -pp$1.regexp_eatBracedQuantifier = function(state, noError) { - var start = state.pos; - if (state.eat( - 123 - /* { */ - )) { - var min = 0, max = -1; - if (this.regexp_eatDecimalDigits(state)) { - min = state.lastIntValue; - if (state.eat( - 44 - /* , */ - ) && this.regexp_eatDecimalDigits(state)) { - max = state.lastIntValue; - } - if (state.eat( - 125 - /* } */ - )) { - if (max !== -1 && max < min && !noError) { - state.raise("numbers out of order in {} quantifier"); - } - return true; - } - } - if (state.switchU && !noError) { - state.raise("Incomplete quantifier"); - } - state.pos = start; - } - return false; -}; -pp$1.regexp_eatAtom = function(state) { - return this.regexp_eatPatternCharacters(state) || state.eat( - 46 - /* . */ - ) || this.regexp_eatReverseSolidusAtomEscape(state) || this.regexp_eatCharacterClass(state) || this.regexp_eatUncapturingGroup(state) || this.regexp_eatCapturingGroup(state); -}; -pp$1.regexp_eatReverseSolidusAtomEscape = function(state) { - var start = state.pos; - if (state.eat( - 92 - /* \ */ - )) { - if (this.regexp_eatAtomEscape(state)) { - return true; - } - state.pos = start; - } - return false; -}; -pp$1.regexp_eatUncapturingGroup = function(state) { - var start = state.pos; - if (state.eat( - 40 - /* ( */ - )) { - if (state.eat( - 63 - /* ? */ - )) { - if (this.options.ecmaVersion >= 16) { - var addModifiers = this.regexp_eatModifiers(state); - var hasHyphen = state.eat( - 45 - /* - */ - ); - if (addModifiers || hasHyphen) { - for (var i2 = 0; i2 < addModifiers.length; i2++) { - var modifier = addModifiers.charAt(i2); - if (addModifiers.indexOf(modifier, i2 + 1) > -1) { - state.raise("Duplicate regular expression modifiers"); - } - } - if (hasHyphen) { - var removeModifiers = this.regexp_eatModifiers(state); - if (!addModifiers && !removeModifiers && state.current() === 58) { - state.raise("Invalid regular expression modifiers"); - } - for (var i$1 = 0; i$1 < removeModifiers.length; i$1++) { - var modifier$1 = removeModifiers.charAt(i$1); - if (removeModifiers.indexOf(modifier$1, i$1 + 1) > -1 || addModifiers.indexOf(modifier$1) > -1) { - state.raise("Duplicate regular expression modifiers"); - } - } - } - } - } - if (state.eat( - 58 - /* : */ - )) { - this.regexp_disjunction(state); - if (state.eat( - 41 - /* ) */ - )) { - return true; - } - state.raise("Unterminated group"); - } - } - state.pos = start; - } - return false; -}; -pp$1.regexp_eatCapturingGroup = function(state) { - if (state.eat( - 40 - /* ( */ - )) { - if (this.options.ecmaVersion >= 9) { - this.regexp_groupSpecifier(state); - } else if (state.current() === 63) { - state.raise("Invalid group"); - } - this.regexp_disjunction(state); - if (state.eat( - 41 - /* ) */ - )) { - state.numCapturingParens += 1; - return true; - } - state.raise("Unterminated group"); - } - return false; -}; -pp$1.regexp_eatModifiers = function(state) { - var modifiers = ""; - var ch = 0; - while ((ch = state.current()) !== -1 && isRegularExpressionModifier(ch)) { - modifiers += codePointToString(ch); - state.advance(); - } - return modifiers; -}; -function isRegularExpressionModifier(ch) { - return ch === 105 || ch === 109 || ch === 115; -} -pp$1.regexp_eatExtendedAtom = function(state) { - return state.eat( - 46 - /* . */ - ) || this.regexp_eatReverseSolidusAtomEscape(state) || this.regexp_eatCharacterClass(state) || this.regexp_eatUncapturingGroup(state) || this.regexp_eatCapturingGroup(state) || this.regexp_eatInvalidBracedQuantifier(state) || this.regexp_eatExtendedPatternCharacter(state); -}; -pp$1.regexp_eatInvalidBracedQuantifier = function(state) { - if (this.regexp_eatBracedQuantifier(state, true)) { - state.raise("Nothing to repeat"); - } - return false; -}; -pp$1.regexp_eatSyntaxCharacter = function(state) { - var ch = state.current(); - if (isSyntaxCharacter(ch)) { - state.lastIntValue = ch; - state.advance(); - return true; - } - return false; -}; -function isSyntaxCharacter(ch) { - return ch === 36 || ch >= 40 && ch <= 43 || ch === 46 || ch === 63 || ch >= 91 && ch <= 94 || ch >= 123 && ch <= 125; -} -pp$1.regexp_eatPatternCharacters = function(state) { - var start = state.pos; - var ch = 0; - while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) { - state.advance(); - } - return state.pos !== start; -}; -pp$1.regexp_eatExtendedPatternCharacter = function(state) { - var ch = state.current(); - if (ch !== -1 && ch !== 36 && !(ch >= 40 && ch <= 43) && ch !== 46 && ch !== 63 && ch !== 91 && ch !== 94 && ch !== 124) { - state.advance(); - return true; - } - return false; -}; -pp$1.regexp_groupSpecifier = function(state) { - if (state.eat( - 63 - /* ? */ - )) { - if (!this.regexp_eatGroupName(state)) { - state.raise("Invalid group"); - } - var trackDisjunction = this.options.ecmaVersion >= 16; - var known = state.groupNames[state.lastStringValue]; - if (known) { - if (trackDisjunction) { - for (var i2 = 0, list2 = known; i2 < list2.length; i2 += 1) { - var altID = list2[i2]; - if (!altID.separatedFrom(state.branchID)) { - state.raise("Duplicate capture group name"); - } - } - } else { - state.raise("Duplicate capture group name"); - } - } - if (trackDisjunction) { - (known || (state.groupNames[state.lastStringValue] = [])).push(state.branchID); - } else { - state.groupNames[state.lastStringValue] = true; - } - } -}; -pp$1.regexp_eatGroupName = function(state) { - state.lastStringValue = ""; - if (state.eat( - 60 - /* < */ - )) { - if (this.regexp_eatRegExpIdentifierName(state) && state.eat( - 62 - /* > */ - )) { - return true; - } - state.raise("Invalid capture group name"); - } - return false; -}; -pp$1.regexp_eatRegExpIdentifierName = function(state) { - state.lastStringValue = ""; - if (this.regexp_eatRegExpIdentifierStart(state)) { - state.lastStringValue += codePointToString(state.lastIntValue); - while (this.regexp_eatRegExpIdentifierPart(state)) { - state.lastStringValue += codePointToString(state.lastIntValue); - } - return true; - } - return false; -}; -pp$1.regexp_eatRegExpIdentifierStart = function(state) { - var start = state.pos; - var forceU = this.options.ecmaVersion >= 11; - var ch = state.current(forceU); - state.advance(forceU); - if (ch === 92 && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) { - ch = state.lastIntValue; - } - if (isRegExpIdentifierStart(ch)) { - state.lastIntValue = ch; - return true; - } - state.pos = start; - return false; -}; -function isRegExpIdentifierStart(ch) { - return isIdentifierStart(ch, true) || ch === 36 || ch === 95; -} -pp$1.regexp_eatRegExpIdentifierPart = function(state) { - var start = state.pos; - var forceU = this.options.ecmaVersion >= 11; - var ch = state.current(forceU); - state.advance(forceU); - if (ch === 92 && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) { - ch = state.lastIntValue; - } - if (isRegExpIdentifierPart(ch)) { - state.lastIntValue = ch; - return true; - } - state.pos = start; - return false; -}; -function isRegExpIdentifierPart(ch) { - return isIdentifierChar(ch, true) || ch === 36 || ch === 95 || ch === 8204 || ch === 8205; -} -pp$1.regexp_eatAtomEscape = function(state) { - if (this.regexp_eatBackReference(state) || this.regexp_eatCharacterClassEscape(state) || this.regexp_eatCharacterEscape(state) || state.switchN && this.regexp_eatKGroupName(state)) { - return true; - } - if (state.switchU) { - if (state.current() === 99) { - state.raise("Invalid unicode escape"); - } - state.raise("Invalid escape"); - } - return false; -}; -pp$1.regexp_eatBackReference = function(state) { - var start = state.pos; - if (this.regexp_eatDecimalEscape(state)) { - var n = state.lastIntValue; - if (state.switchU) { - if (n > state.maxBackReference) { - state.maxBackReference = n; - } - return true; - } - if (n <= state.numCapturingParens) { - return true; - } - state.pos = start; - } - return false; -}; -pp$1.regexp_eatKGroupName = function(state) { - if (state.eat( - 107 - /* k */ - )) { - if (this.regexp_eatGroupName(state)) { - state.backReferenceNames.push(state.lastStringValue); - return true; - } - state.raise("Invalid named reference"); - } - return false; -}; -pp$1.regexp_eatCharacterEscape = function(state) { - return this.regexp_eatControlEscape(state) || this.regexp_eatCControlLetter(state) || this.regexp_eatZero(state) || this.regexp_eatHexEscapeSequence(state) || this.regexp_eatRegExpUnicodeEscapeSequence(state, false) || !state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state) || this.regexp_eatIdentityEscape(state); -}; -pp$1.regexp_eatCControlLetter = function(state) { - var start = state.pos; - if (state.eat( - 99 - /* c */ - )) { - if (this.regexp_eatControlLetter(state)) { - return true; - } - state.pos = start; - } - return false; -}; -pp$1.regexp_eatZero = function(state) { - if (state.current() === 48 && !isDecimalDigit(state.lookahead())) { - state.lastIntValue = 0; - state.advance(); - return true; - } - return false; -}; -pp$1.regexp_eatControlEscape = function(state) { - var ch = state.current(); - if (ch === 116) { - state.lastIntValue = 9; - state.advance(); - return true; - } - if (ch === 110) { - state.lastIntValue = 10; - state.advance(); - return true; - } - if (ch === 118) { - state.lastIntValue = 11; - state.advance(); - return true; - } - if (ch === 102) { - state.lastIntValue = 12; - state.advance(); - return true; - } - if (ch === 114) { - state.lastIntValue = 13; - state.advance(); - return true; - } - return false; -}; -pp$1.regexp_eatControlLetter = function(state) { - var ch = state.current(); - if (isControlLetter(ch)) { - state.lastIntValue = ch % 32; - state.advance(); - return true; - } - return false; -}; -function isControlLetter(ch) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122; -} -pp$1.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) { - if (forceU === void 0) forceU = false; - var start = state.pos; - var switchU = forceU || state.switchU; - if (state.eat( - 117 - /* u */ - )) { - if (this.regexp_eatFixedHexDigits(state, 4)) { - var lead = state.lastIntValue; - if (switchU && lead >= 55296 && lead <= 56319) { - var leadSurrogateEnd = state.pos; - if (state.eat( - 92 - /* \ */ - ) && state.eat( - 117 - /* u */ - ) && this.regexp_eatFixedHexDigits(state, 4)) { - var trail = state.lastIntValue; - if (trail >= 56320 && trail <= 57343) { - state.lastIntValue = (lead - 55296) * 1024 + (trail - 56320) + 65536; - return true; - } - } - state.pos = leadSurrogateEnd; - state.lastIntValue = lead; - } - return true; - } - if (switchU && state.eat( - 123 - /* { */ - ) && this.regexp_eatHexDigits(state) && state.eat( - 125 - /* } */ - ) && isValidUnicode(state.lastIntValue)) { - return true; - } - if (switchU) { - state.raise("Invalid unicode escape"); - } - state.pos = start; - } - return false; -}; -function isValidUnicode(ch) { - return ch >= 0 && ch <= 1114111; -} -pp$1.regexp_eatIdentityEscape = function(state) { - if (state.switchU) { - if (this.regexp_eatSyntaxCharacter(state)) { - return true; - } - if (state.eat( - 47 - /* / */ - )) { - state.lastIntValue = 47; - return true; - } - return false; - } - var ch = state.current(); - if (ch !== 99 && (!state.switchN || ch !== 107)) { - state.lastIntValue = ch; - state.advance(); - return true; - } - return false; -}; -pp$1.regexp_eatDecimalEscape = function(state) { - state.lastIntValue = 0; - var ch = state.current(); - if (ch >= 49 && ch <= 57) { - do { - state.lastIntValue = 10 * state.lastIntValue + (ch - 48); - state.advance(); - } while ((ch = state.current()) >= 48 && ch <= 57); - return true; - } - return false; -}; -var CharSetNone = 0; -var CharSetOk = 1; -var CharSetString = 2; -pp$1.regexp_eatCharacterClassEscape = function(state) { - var ch = state.current(); - if (isCharacterClassEscape(ch)) { - state.lastIntValue = -1; - state.advance(); - return CharSetOk; - } - var negate = false; - if (state.switchU && this.options.ecmaVersion >= 9 && ((negate = ch === 80) || ch === 112)) { - state.lastIntValue = -1; - state.advance(); - var result; - if (state.eat( - 123 - /* { */ - ) && (result = this.regexp_eatUnicodePropertyValueExpression(state)) && state.eat( - 125 - /* } */ - )) { - if (negate && result === CharSetString) { - state.raise("Invalid property name"); - } - return result; - } - state.raise("Invalid property name"); - } - return CharSetNone; -}; -function isCharacterClassEscape(ch) { - return ch === 100 || ch === 68 || ch === 115 || ch === 83 || ch === 119 || ch === 87; -} -pp$1.regexp_eatUnicodePropertyValueExpression = function(state) { - var start = state.pos; - if (this.regexp_eatUnicodePropertyName(state) && state.eat( - 61 - /* = */ - )) { - var name = state.lastStringValue; - if (this.regexp_eatUnicodePropertyValue(state)) { - var value = state.lastStringValue; - this.regexp_validateUnicodePropertyNameAndValue(state, name, value); - return CharSetOk; - } - } - state.pos = start; - if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) { - var nameOrValue = state.lastStringValue; - return this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue); - } - return CharSetNone; -}; -pp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) { - if (!hasOwn(state.unicodeProperties.nonBinary, name)) { - state.raise("Invalid property name"); - } - if (!state.unicodeProperties.nonBinary[name].test(value)) { - state.raise("Invalid property value"); - } -}; -pp$1.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) { - if (state.unicodeProperties.binary.test(nameOrValue)) { - return CharSetOk; - } - if (state.switchV && state.unicodeProperties.binaryOfStrings.test(nameOrValue)) { - return CharSetString; - } - state.raise("Invalid property name"); -}; -pp$1.regexp_eatUnicodePropertyName = function(state) { - var ch = 0; - state.lastStringValue = ""; - while (isUnicodePropertyNameCharacter(ch = state.current())) { - state.lastStringValue += codePointToString(ch); - state.advance(); - } - return state.lastStringValue !== ""; -}; -function isUnicodePropertyNameCharacter(ch) { - return isControlLetter(ch) || ch === 95; -} -pp$1.regexp_eatUnicodePropertyValue = function(state) { - var ch = 0; - state.lastStringValue = ""; - while (isUnicodePropertyValueCharacter(ch = state.current())) { - state.lastStringValue += codePointToString(ch); - state.advance(); - } - return state.lastStringValue !== ""; -}; -function isUnicodePropertyValueCharacter(ch) { - return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch); -} -pp$1.regexp_eatLoneUnicodePropertyNameOrValue = function(state) { - return this.regexp_eatUnicodePropertyValue(state); -}; -pp$1.regexp_eatCharacterClass = function(state) { - if (state.eat( - 91 - /* [ */ - )) { - var negate = state.eat( - 94 - /* ^ */ - ); - var result = this.regexp_classContents(state); - if (!state.eat( - 93 - /* ] */ - )) { - state.raise("Unterminated character class"); - } - if (negate && result === CharSetString) { - state.raise("Negated character class may contain strings"); - } - return true; - } - return false; -}; -pp$1.regexp_classContents = function(state) { - if (state.current() === 93) { - return CharSetOk; - } - if (state.switchV) { - return this.regexp_classSetExpression(state); - } - this.regexp_nonEmptyClassRanges(state); - return CharSetOk; -}; -pp$1.regexp_nonEmptyClassRanges = function(state) { - while (this.regexp_eatClassAtom(state)) { - var left = state.lastIntValue; - if (state.eat( - 45 - /* - */ - ) && this.regexp_eatClassAtom(state)) { - var right = state.lastIntValue; - if (state.switchU && (left === -1 || right === -1)) { - state.raise("Invalid character class"); - } - if (left !== -1 && right !== -1 && left > right) { - state.raise("Range out of order in character class"); - } - } - } -}; -pp$1.regexp_eatClassAtom = function(state) { - var start = state.pos; - if (state.eat( - 92 - /* \ */ - )) { - if (this.regexp_eatClassEscape(state)) { - return true; - } - if (state.switchU) { - var ch$1 = state.current(); - if (ch$1 === 99 || isOctalDigit(ch$1)) { - state.raise("Invalid class escape"); - } - state.raise("Invalid escape"); - } - state.pos = start; - } - var ch = state.current(); - if (ch !== 93) { - state.lastIntValue = ch; - state.advance(); - return true; - } - return false; -}; -pp$1.regexp_eatClassEscape = function(state) { - var start = state.pos; - if (state.eat( - 98 - /* b */ - )) { - state.lastIntValue = 8; - return true; - } - if (state.switchU && state.eat( - 45 - /* - */ - )) { - state.lastIntValue = 45; - return true; - } - if (!state.switchU && state.eat( - 99 - /* c */ - )) { - if (this.regexp_eatClassControlLetter(state)) { - return true; - } - state.pos = start; - } - return this.regexp_eatCharacterClassEscape(state) || this.regexp_eatCharacterEscape(state); -}; -pp$1.regexp_classSetExpression = function(state) { - var result = CharSetOk, subResult; - if (this.regexp_eatClassSetRange(state)) ; - else if (subResult = this.regexp_eatClassSetOperand(state)) { - if (subResult === CharSetString) { - result = CharSetString; - } - var start = state.pos; - while (state.eatChars( - [38, 38] - /* && */ - )) { - if (state.current() !== 38 && (subResult = this.regexp_eatClassSetOperand(state))) { - if (subResult !== CharSetString) { - result = CharSetOk; - } - continue; - } - state.raise("Invalid character in character class"); - } - if (start !== state.pos) { - return result; - } - while (state.eatChars( - [45, 45] - /* -- */ - )) { - if (this.regexp_eatClassSetOperand(state)) { - continue; - } - state.raise("Invalid character in character class"); - } - if (start !== state.pos) { - return result; - } - } else { - state.raise("Invalid character in character class"); - } - for (; ; ) { - if (this.regexp_eatClassSetRange(state)) { - continue; - } - subResult = this.regexp_eatClassSetOperand(state); - if (!subResult) { - return result; - } - if (subResult === CharSetString) { - result = CharSetString; - } - } -}; -pp$1.regexp_eatClassSetRange = function(state) { - var start = state.pos; - if (this.regexp_eatClassSetCharacter(state)) { - var left = state.lastIntValue; - if (state.eat( - 45 - /* - */ - ) && this.regexp_eatClassSetCharacter(state)) { - var right = state.lastIntValue; - if (left !== -1 && right !== -1 && left > right) { - state.raise("Range out of order in character class"); - } - return true; - } - state.pos = start; - } - return false; -}; -pp$1.regexp_eatClassSetOperand = function(state) { - if (this.regexp_eatClassSetCharacter(state)) { - return CharSetOk; - } - return this.regexp_eatClassStringDisjunction(state) || this.regexp_eatNestedClass(state); -}; -pp$1.regexp_eatNestedClass = function(state) { - var start = state.pos; - if (state.eat( - 91 - /* [ */ - )) { - var negate = state.eat( - 94 - /* ^ */ - ); - var result = this.regexp_classContents(state); - if (state.eat( - 93 - /* ] */ - )) { - if (negate && result === CharSetString) { - state.raise("Negated character class may contain strings"); - } - return result; - } - state.pos = start; - } - if (state.eat( - 92 - /* \ */ - )) { - var result$1 = this.regexp_eatCharacterClassEscape(state); - if (result$1) { - return result$1; - } - state.pos = start; - } - return null; -}; -pp$1.regexp_eatClassStringDisjunction = function(state) { - var start = state.pos; - if (state.eatChars( - [92, 113] - /* \q */ - )) { - if (state.eat( - 123 - /* { */ - )) { - var result = this.regexp_classStringDisjunctionContents(state); - if (state.eat( - 125 - /* } */ - )) { - return result; - } - } else { - state.raise("Invalid escape"); - } - state.pos = start; - } - return null; -}; -pp$1.regexp_classStringDisjunctionContents = function(state) { - var result = this.regexp_classString(state); - while (state.eat( - 124 - /* | */ - )) { - if (this.regexp_classString(state) === CharSetString) { - result = CharSetString; - } - } - return result; -}; -pp$1.regexp_classString = function(state) { - var count = 0; - while (this.regexp_eatClassSetCharacter(state)) { - count++; - } - return count === 1 ? CharSetOk : CharSetString; -}; -pp$1.regexp_eatClassSetCharacter = function(state) { - var start = state.pos; - if (state.eat( - 92 - /* \ */ - )) { - if (this.regexp_eatCharacterEscape(state) || this.regexp_eatClassSetReservedPunctuator(state)) { - return true; - } - if (state.eat( - 98 - /* b */ - )) { - state.lastIntValue = 8; - return true; - } - state.pos = start; - return false; - } - var ch = state.current(); - if (ch < 0 || ch === state.lookahead() && isClassSetReservedDoublePunctuatorCharacter(ch)) { - return false; - } - if (isClassSetSyntaxCharacter(ch)) { - return false; - } - state.advance(); - state.lastIntValue = ch; - return true; -}; -function isClassSetReservedDoublePunctuatorCharacter(ch) { - return ch === 33 || ch >= 35 && ch <= 38 || ch >= 42 && ch <= 44 || ch === 46 || ch >= 58 && ch <= 64 || ch === 94 || ch === 96 || ch === 126; -} -function isClassSetSyntaxCharacter(ch) { - return ch === 40 || ch === 41 || ch === 45 || ch === 47 || ch >= 91 && ch <= 93 || ch >= 123 && ch <= 125; -} -pp$1.regexp_eatClassSetReservedPunctuator = function(state) { - var ch = state.current(); - if (isClassSetReservedPunctuator(ch)) { - state.lastIntValue = ch; - state.advance(); - return true; - } - return false; -}; -function isClassSetReservedPunctuator(ch) { - return ch === 33 || ch === 35 || ch === 37 || ch === 38 || ch === 44 || ch === 45 || ch >= 58 && ch <= 62 || ch === 64 || ch === 96 || ch === 126; -} -pp$1.regexp_eatClassControlLetter = function(state) { - var ch = state.current(); - if (isDecimalDigit(ch) || ch === 95) { - state.lastIntValue = ch % 32; - state.advance(); - return true; - } - return false; -}; -pp$1.regexp_eatHexEscapeSequence = function(state) { - var start = state.pos; - if (state.eat( - 120 - /* x */ - )) { - if (this.regexp_eatFixedHexDigits(state, 2)) { - return true; - } - if (state.switchU) { - state.raise("Invalid escape"); - } - state.pos = start; - } - return false; -}; -pp$1.regexp_eatDecimalDigits = function(state) { - var start = state.pos; - var ch = 0; - state.lastIntValue = 0; - while (isDecimalDigit(ch = state.current())) { - state.lastIntValue = 10 * state.lastIntValue + (ch - 48); - state.advance(); - } - return state.pos !== start; -}; -function isDecimalDigit(ch) { - return ch >= 48 && ch <= 57; -} -pp$1.regexp_eatHexDigits = function(state) { - var start = state.pos; - var ch = 0; - state.lastIntValue = 0; - while (isHexDigit(ch = state.current())) { - state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch); - state.advance(); - } - return state.pos !== start; -}; -function isHexDigit(ch) { - return ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102; -} -function hexToInt(ch) { - if (ch >= 65 && ch <= 70) { - return 10 + (ch - 65); - } - if (ch >= 97 && ch <= 102) { - return 10 + (ch - 97); - } - return ch - 48; -} -pp$1.regexp_eatLegacyOctalEscapeSequence = function(state) { - if (this.regexp_eatOctalDigit(state)) { - var n1 = state.lastIntValue; - if (this.regexp_eatOctalDigit(state)) { - var n2 = state.lastIntValue; - if (n1 <= 3 && this.regexp_eatOctalDigit(state)) { - state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue; - } else { - state.lastIntValue = n1 * 8 + n2; - } - } else { - state.lastIntValue = n1; - } - return true; - } - return false; -}; -pp$1.regexp_eatOctalDigit = function(state) { - var ch = state.current(); - if (isOctalDigit(ch)) { - state.lastIntValue = ch - 48; - state.advance(); - return true; - } - state.lastIntValue = 0; - return false; -}; -function isOctalDigit(ch) { - return ch >= 48 && ch <= 55; -} -pp$1.regexp_eatFixedHexDigits = function(state, length) { - var start = state.pos; - state.lastIntValue = 0; - for (var i2 = 0; i2 < length; ++i2) { - var ch = state.current(); - if (!isHexDigit(ch)) { - state.pos = start; - return false; - } - state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch); - state.advance(); - } - return true; -}; -var Token = function Token2(p) { - this.type = p.type; - this.value = p.value; - this.start = p.start; - this.end = p.end; - if (p.options.locations) { - this.loc = new SourceLocation(p, p.startLoc, p.endLoc); - } - if (p.options.ranges) { - this.range = [p.start, p.end]; - } -}; -var pp = Parser.prototype; -pp.next = function(ignoreEscapeSequenceInKeyword) { - if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc) { - this.raiseRecoverable(this.start, "Escape sequence in keyword " + this.type.keyword); - } - if (this.options.onToken) { - this.options.onToken(new Token(this)); - } - this.lastTokEnd = this.end; - this.lastTokStart = this.start; - this.lastTokEndLoc = this.endLoc; - this.lastTokStartLoc = this.startLoc; - this.nextToken(); -}; -pp.getToken = function() { - this.next(); - return new Token(this); -}; -if (typeof Symbol !== "undefined") { - pp[Symbol.iterator] = function() { - var this$1$1 = this; - return { - next: function() { - var token = this$1$1.getToken(); - return { - done: token.type === types$1.eof, - value: token - }; - } - }; - }; -} -pp.nextToken = function() { - var curContext = this.curContext(); - if (!curContext || !curContext.preserveSpace) { - this.skipSpace(); - } - this.start = this.pos; - if (this.options.locations) { - this.startLoc = this.curPosition(); - } - if (this.pos >= this.input.length) { - return this.finishToken(types$1.eof); - } - if (curContext.override) { - return curContext.override(this); - } else { - this.readToken(this.fullCharCodeAtPos()); - } -}; -pp.readToken = function(code) { - if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92) { - return this.readWord(); - } - return this.getTokenFromCode(code); -}; -pp.fullCharCodeAt = function(pos) { - var code = this.input.charCodeAt(pos); - if (code <= 55295 || code >= 56320) { - return code; - } - var next = this.input.charCodeAt(pos + 1); - return next <= 56319 || next >= 57344 ? code : (code << 10) + next - 56613888; -}; -pp.fullCharCodeAtPos = function() { - return this.fullCharCodeAt(this.pos); -}; -pp.skipBlockComment = function() { - var startLoc = this.options.onComment && this.curPosition(); - var start = this.pos, end = this.input.indexOf("*/", this.pos += 2); - if (end === -1) { - this.raise(this.pos - 2, "Unterminated comment"); - } - this.pos = end + 2; - if (this.options.locations) { - for (var nextBreak = void 0, pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1; ) { - ++this.curLine; - pos = this.lineStart = nextBreak; - } - } - if (this.options.onComment) { - this.options.onComment( - true, - this.input.slice(start + 2, end), - start, - this.pos, - startLoc, - this.curPosition() - ); - } -}; -pp.skipLineComment = function(startSkip) { - var start = this.pos; - var startLoc = this.options.onComment && this.curPosition(); - var ch = this.input.charCodeAt(this.pos += startSkip); - while (this.pos < this.input.length && !isNewLine(ch)) { - ch = this.input.charCodeAt(++this.pos); - } - if (this.options.onComment) { - this.options.onComment( - false, - this.input.slice(start + startSkip, this.pos), - start, - this.pos, - startLoc, - this.curPosition() - ); - } -}; -pp.skipSpace = function() { - loop: while (this.pos < this.input.length) { - var ch = this.input.charCodeAt(this.pos); - switch (ch) { - case 32: - case 160: - ++this.pos; - break; - case 13: - if (this.input.charCodeAt(this.pos + 1) === 10) { - ++this.pos; - } - case 10: - case 8232: - case 8233: - ++this.pos; - if (this.options.locations) { - ++this.curLine; - this.lineStart = this.pos; - } - break; - case 47: - switch (this.input.charCodeAt(this.pos + 1)) { - case 42: - this.skipBlockComment(); - break; - case 47: - this.skipLineComment(2); - break; - default: - break loop; - } - break; - default: - if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) { - ++this.pos; - } else { - break loop; - } - } - } -}; -pp.finishToken = function(type, val) { - this.end = this.pos; - if (this.options.locations) { - this.endLoc = this.curPosition(); - } - var prevType = this.type; - this.type = type; - this.value = val; - this.updateContext(prevType); -}; -pp.readToken_dot = function() { - var next = this.input.charCodeAt(this.pos + 1); - if (next >= 48 && next <= 57) { - return this.readNumber(true); - } - var next2 = this.input.charCodeAt(this.pos + 2); - if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { - this.pos += 3; - return this.finishToken(types$1.ellipsis); - } else { - ++this.pos; - return this.finishToken(types$1.dot); - } -}; -pp.readToken_slash = function() { - var next = this.input.charCodeAt(this.pos + 1); - if (this.exprAllowed) { - ++this.pos; - return this.readRegexp(); - } - if (next === 61) { - return this.finishOp(types$1.assign, 2); - } - return this.finishOp(types$1.slash, 1); -}; -pp.readToken_mult_modulo_exp = function(code) { - var next = this.input.charCodeAt(this.pos + 1); - var size = 1; - var tokentype = code === 42 ? types$1.star : types$1.modulo; - if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) { - ++size; - tokentype = types$1.starstar; - next = this.input.charCodeAt(this.pos + 2); - } - if (next === 61) { - return this.finishOp(types$1.assign, size + 1); - } - return this.finishOp(tokentype, size); -}; -pp.readToken_pipe_amp = function(code) { - var next = this.input.charCodeAt(this.pos + 1); - if (next === code) { - if (this.options.ecmaVersion >= 12) { - var next2 = this.input.charCodeAt(this.pos + 2); - if (next2 === 61) { - return this.finishOp(types$1.assign, 3); - } - } - return this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2); - } - if (next === 61) { - return this.finishOp(types$1.assign, 2); - } - return this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1); -}; -pp.readToken_caret = function() { - var next = this.input.charCodeAt(this.pos + 1); - if (next === 61) { - return this.finishOp(types$1.assign, 2); - } - return this.finishOp(types$1.bitwiseXOR, 1); -}; -pp.readToken_plus_min = function(code) { - var next = this.input.charCodeAt(this.pos + 1); - if (next === code) { - if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 && (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) { - this.skipLineComment(3); - this.skipSpace(); - return this.nextToken(); - } - return this.finishOp(types$1.incDec, 2); - } - if (next === 61) { - return this.finishOp(types$1.assign, 2); - } - return this.finishOp(types$1.plusMin, 1); -}; -pp.readToken_lt_gt = function(code) { - var next = this.input.charCodeAt(this.pos + 1); - var size = 1; - if (next === code) { - size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2; - if (this.input.charCodeAt(this.pos + size) === 61) { - return this.finishOp(types$1.assign, size + 1); - } - return this.finishOp(types$1.bitShift, size); - } - if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && this.input.charCodeAt(this.pos + 3) === 45) { - this.skipLineComment(4); - this.skipSpace(); - return this.nextToken(); - } - if (next === 61) { - size = 2; - } - return this.finishOp(types$1.relational, size); -}; -pp.readToken_eq_excl = function(code) { - var next = this.input.charCodeAt(this.pos + 1); - if (next === 61) { - return this.finishOp(types$1.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2); - } - if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { - this.pos += 2; - return this.finishToken(types$1.arrow); - } - return this.finishOp(code === 61 ? types$1.eq : types$1.prefix, 1); -}; -pp.readToken_question = function() { - var ecmaVersion2 = this.options.ecmaVersion; - if (ecmaVersion2 >= 11) { - var next = this.input.charCodeAt(this.pos + 1); - if (next === 46) { - var next2 = this.input.charCodeAt(this.pos + 2); - if (next2 < 48 || next2 > 57) { - return this.finishOp(types$1.questionDot, 2); - } - } - if (next === 63) { - if (ecmaVersion2 >= 12) { - var next2$1 = this.input.charCodeAt(this.pos + 2); - if (next2$1 === 61) { - return this.finishOp(types$1.assign, 3); - } - } - return this.finishOp(types$1.coalesce, 2); - } - } - return this.finishOp(types$1.question, 1); -}; -pp.readToken_numberSign = function() { - var ecmaVersion2 = this.options.ecmaVersion; - var code = 35; - if (ecmaVersion2 >= 13) { - ++this.pos; - code = this.fullCharCodeAtPos(); - if (isIdentifierStart(code, true) || code === 92) { - return this.finishToken(types$1.privateId, this.readWord1()); - } - } - this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'"); -}; -pp.getTokenFromCode = function(code) { - switch (code) { - // The interpretation of a dot depends on whether it is followed - // by a digit or another two dots. - case 46: - return this.readToken_dot(); - // Punctuation tokens. - case 40: - ++this.pos; - return this.finishToken(types$1.parenL); - case 41: - ++this.pos; - return this.finishToken(types$1.parenR); - case 59: - ++this.pos; - return this.finishToken(types$1.semi); - case 44: - ++this.pos; - return this.finishToken(types$1.comma); - case 91: - ++this.pos; - return this.finishToken(types$1.bracketL); - case 93: - ++this.pos; - return this.finishToken(types$1.bracketR); - case 123: - ++this.pos; - return this.finishToken(types$1.braceL); - case 125: - ++this.pos; - return this.finishToken(types$1.braceR); - case 58: - ++this.pos; - return this.finishToken(types$1.colon); - case 96: - if (this.options.ecmaVersion < 6) { - break; - } - ++this.pos; - return this.finishToken(types$1.backQuote); - case 48: - var next = this.input.charCodeAt(this.pos + 1); - if (next === 120 || next === 88) { - return this.readRadixNumber(16); - } - if (this.options.ecmaVersion >= 6) { - if (next === 111 || next === 79) { - return this.readRadixNumber(8); - } - if (next === 98 || next === 66) { - return this.readRadixNumber(2); - } - } - // Anything else beginning with a digit is an integer, octal - // number, or float. - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - return this.readNumber(false); - // Quotes produce strings. - case 34: - case 39: - return this.readString(code); - // Operators are parsed inline in tiny state machines. '=' (61) is - // often referred to. `finishOp` simply skips the amount of - // characters it is given as second argument, and returns a token - // of the type given by its first argument. - case 47: - return this.readToken_slash(); - case 37: - case 42: - return this.readToken_mult_modulo_exp(code); - case 124: - case 38: - return this.readToken_pipe_amp(code); - case 94: - return this.readToken_caret(); - case 43: - case 45: - return this.readToken_plus_min(code); - case 60: - case 62: - return this.readToken_lt_gt(code); - case 61: - case 33: - return this.readToken_eq_excl(code); - case 63: - return this.readToken_question(); - case 126: - return this.finishOp(types$1.prefix, 1); - case 35: - return this.readToken_numberSign(); - } - this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'"); -}; -pp.finishOp = function(type, size) { - var str = this.input.slice(this.pos, this.pos + size); - this.pos += size; - return this.finishToken(type, str); -}; -pp.readRegexp = function() { - var escaped, inClass, start = this.pos; - for (; ; ) { - if (this.pos >= this.input.length) { - this.raise(start, "Unterminated regular expression"); - } - var ch = this.input.charAt(this.pos); - if (lineBreak.test(ch)) { - this.raise(start, "Unterminated regular expression"); - } - if (!escaped) { - if (ch === "[") { - inClass = true; - } else if (ch === "]" && inClass) { - inClass = false; - } else if (ch === "/" && !inClass) { - break; - } - escaped = ch === "\\"; - } else { - escaped = false; - } - ++this.pos; - } - var pattern = this.input.slice(start, this.pos); - ++this.pos; - var flagsStart = this.pos; - var flags = this.readWord1(); - if (this.containsEsc) { - this.unexpected(flagsStart); - } - var state = this.regexpState || (this.regexpState = new RegExpValidationState(this)); - state.reset(start, pattern, flags); - this.validateRegExpFlags(state); - this.validateRegExpPattern(state); - var value = null; - try { - value = new RegExp(pattern, flags); - } catch (e) { - } - return this.finishToken(types$1.regexp, { pattern, flags, value }); -}; -pp.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) { - var allowSeparators = this.options.ecmaVersion >= 12 && len === void 0; - var isLegacyOctalNumericLiteral = maybeLegacyOctalNumericLiteral && this.input.charCodeAt(this.pos) === 48; - var start = this.pos, total = 0, lastCode = 0; - for (var i2 = 0, e = len == null ? Infinity : len; i2 < e; ++i2, ++this.pos) { - var code = this.input.charCodeAt(this.pos), val = void 0; - if (allowSeparators && code === 95) { - if (isLegacyOctalNumericLiteral) { - this.raiseRecoverable(this.pos, "Numeric separator is not allowed in legacy octal numeric literals"); - } - if (lastCode === 95) { - this.raiseRecoverable(this.pos, "Numeric separator must be exactly one underscore"); - } - if (i2 === 0) { - this.raiseRecoverable(this.pos, "Numeric separator is not allowed at the first of digits"); - } - lastCode = code; - continue; - } - if (code >= 97) { - val = code - 97 + 10; - } else if (code >= 65) { - val = code - 65 + 10; - } else if (code >= 48 && code <= 57) { - val = code - 48; - } else { - val = Infinity; - } - if (val >= radix) { - break; - } - lastCode = code; - total = total * radix + val; - } - if (allowSeparators && lastCode === 95) { - this.raiseRecoverable(this.pos - 1, "Numeric separator is not allowed at the last of digits"); - } - if (this.pos === start || len != null && this.pos - start !== len) { - return null; - } - return total; -}; -function stringToNumber(str, isLegacyOctalNumericLiteral) { - if (isLegacyOctalNumericLiteral) { - return parseInt(str, 8); - } - return parseFloat(str.replace(/_/g, "")); -} -function stringToBigInt(str) { - if (typeof BigInt !== "function") { - return null; - } - return BigInt(str.replace(/_/g, "")); -} -pp.readRadixNumber = function(radix) { - var start = this.pos; - this.pos += 2; - var val = this.readInt(radix); - if (val == null) { - this.raise(this.start + 2, "Expected number in radix " + radix); - } - if (this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110) { - val = stringToBigInt(this.input.slice(start, this.pos)); - ++this.pos; - } else if (isIdentifierStart(this.fullCharCodeAtPos())) { - this.raise(this.pos, "Identifier directly after number"); - } - return this.finishToken(types$1.num, val); -}; -pp.readNumber = function(startsWithDot) { - var start = this.pos; - if (!startsWithDot && this.readInt(10, void 0, true) === null) { - this.raise(start, "Invalid number"); - } - var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48; - if (octal && this.strict) { - this.raise(start, "Invalid number"); - } - var next = this.input.charCodeAt(this.pos); - if (!octal && !startsWithDot && this.options.ecmaVersion >= 11 && next === 110) { - var val$1 = stringToBigInt(this.input.slice(start, this.pos)); - ++this.pos; - if (isIdentifierStart(this.fullCharCodeAtPos())) { - this.raise(this.pos, "Identifier directly after number"); - } - return this.finishToken(types$1.num, val$1); - } - if (octal && /[89]/.test(this.input.slice(start, this.pos))) { - octal = false; - } - if (next === 46 && !octal) { - ++this.pos; - this.readInt(10); - next = this.input.charCodeAt(this.pos); - } - if ((next === 69 || next === 101) && !octal) { - next = this.input.charCodeAt(++this.pos); - if (next === 43 || next === 45) { - ++this.pos; - } - if (this.readInt(10) === null) { - this.raise(start, "Invalid number"); - } - } - if (isIdentifierStart(this.fullCharCodeAtPos())) { - this.raise(this.pos, "Identifier directly after number"); - } - var val = stringToNumber(this.input.slice(start, this.pos), octal); - return this.finishToken(types$1.num, val); -}; -pp.readCodePoint = function() { - var ch = this.input.charCodeAt(this.pos), code; - if (ch === 123) { - if (this.options.ecmaVersion < 6) { - this.unexpected(); - } - var codePos = ++this.pos; - code = this.readHexChar(this.input.indexOf("}", this.pos) - this.pos); - ++this.pos; - if (code > 1114111) { - this.invalidStringToken(codePos, "Code point out of bounds"); - } - } else { - code = this.readHexChar(4); - } - return code; -}; -pp.readString = function(quote) { - var out = "", chunkStart = ++this.pos; - for (; ; ) { - if (this.pos >= this.input.length) { - this.raise(this.start, "Unterminated string constant"); - } - var ch = this.input.charCodeAt(this.pos); - if (ch === quote) { - break; - } - if (ch === 92) { - out += this.input.slice(chunkStart, this.pos); - out += this.readEscapedChar(false); - chunkStart = this.pos; - } else if (ch === 8232 || ch === 8233) { - if (this.options.ecmaVersion < 10) { - this.raise(this.start, "Unterminated string constant"); - } - ++this.pos; - if (this.options.locations) { - this.curLine++; - this.lineStart = this.pos; - } - } else { - if (isNewLine(ch)) { - this.raise(this.start, "Unterminated string constant"); - } - ++this.pos; - } - } - out += this.input.slice(chunkStart, this.pos++); - return this.finishToken(types$1.string, out); -}; -var INVALID_TEMPLATE_ESCAPE_ERROR = {}; -pp.tryReadTemplateToken = function() { - this.inTemplateElement = true; - try { - this.readTmplToken(); - } catch (err) { - if (err === INVALID_TEMPLATE_ESCAPE_ERROR) { - this.readInvalidTemplateToken(); - } else { - throw err; - } - } - this.inTemplateElement = false; -}; -pp.invalidStringToken = function(position, message) { - if (this.inTemplateElement && this.options.ecmaVersion >= 9) { - throw INVALID_TEMPLATE_ESCAPE_ERROR; - } else { - this.raise(position, message); - } -}; -pp.readTmplToken = function() { - var out = "", chunkStart = this.pos; - for (; ; ) { - if (this.pos >= this.input.length) { - this.raise(this.start, "Unterminated template"); - } - var ch = this.input.charCodeAt(this.pos); - if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { - if (this.pos === this.start && (this.type === types$1.template || this.type === types$1.invalidTemplate)) { - if (ch === 36) { - this.pos += 2; - return this.finishToken(types$1.dollarBraceL); - } else { - ++this.pos; - return this.finishToken(types$1.backQuote); - } - } - out += this.input.slice(chunkStart, this.pos); - return this.finishToken(types$1.template, out); - } - if (ch === 92) { - out += this.input.slice(chunkStart, this.pos); - out += this.readEscapedChar(true); - chunkStart = this.pos; - } else if (isNewLine(ch)) { - out += this.input.slice(chunkStart, this.pos); - ++this.pos; - switch (ch) { - case 13: - if (this.input.charCodeAt(this.pos) === 10) { - ++this.pos; - } - case 10: - out += "\n"; - break; - default: - out += String.fromCharCode(ch); - break; - } - if (this.options.locations) { - ++this.curLine; - this.lineStart = this.pos; - } - chunkStart = this.pos; - } else { - ++this.pos; - } - } -}; -pp.readInvalidTemplateToken = function() { - for (; this.pos < this.input.length; this.pos++) { - switch (this.input[this.pos]) { - case "\\": - ++this.pos; - break; - case "$": - if (this.input[this.pos + 1] !== "{") { - break; - } - // fall through - case "`": - return this.finishToken(types$1.invalidTemplate, this.input.slice(this.start, this.pos)); - case "\r": - if (this.input[this.pos + 1] === "\n") { - ++this.pos; - } - // fall through - case "\n": - case "\u2028": - case "\u2029": - ++this.curLine; - this.lineStart = this.pos + 1; - break; - } - } - this.raise(this.start, "Unterminated template"); -}; -pp.readEscapedChar = function(inTemplate) { - var ch = this.input.charCodeAt(++this.pos); - ++this.pos; - switch (ch) { - case 110: - return "\n"; - // 'n' -> '\n' - case 114: - return "\r"; - // 'r' -> '\r' - case 120: - return String.fromCharCode(this.readHexChar(2)); - // 'x' - case 117: - return codePointToString(this.readCodePoint()); - // 'u' - case 116: - return " "; - // 't' -> '\t' - case 98: - return "\b"; - // 'b' -> '\b' - case 118: - return "\v"; - // 'v' -> '\u000b' - case 102: - return "\f"; - // 'f' -> '\f' - case 13: - if (this.input.charCodeAt(this.pos) === 10) { - ++this.pos; - } - // '\r\n' - case 10: - if (this.options.locations) { - this.lineStart = this.pos; - ++this.curLine; - } - return ""; - case 56: - case 57: - if (this.strict) { - this.invalidStringToken( - this.pos - 1, - "Invalid escape sequence" - ); - } - if (inTemplate) { - var codePos = this.pos - 1; - this.invalidStringToken( - codePos, - "Invalid escape sequence in template string" - ); - } - default: - if (ch >= 48 && ch <= 55) { - var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0]; - var octal = parseInt(octalStr, 8); - if (octal > 255) { - octalStr = octalStr.slice(0, -1); - octal = parseInt(octalStr, 8); - } - this.pos += octalStr.length - 1; - ch = this.input.charCodeAt(this.pos); - if ((octalStr !== "0" || ch === 56 || ch === 57) && (this.strict || inTemplate)) { - this.invalidStringToken( - this.pos - 1 - octalStr.length, - inTemplate ? "Octal literal in template string" : "Octal literal in strict mode" - ); - } - return String.fromCharCode(octal); - } - if (isNewLine(ch)) { - if (this.options.locations) { - this.lineStart = this.pos; - ++this.curLine; - } - return ""; - } - return String.fromCharCode(ch); - } -}; -pp.readHexChar = function(len) { - var codePos = this.pos; - var n = this.readInt(16, len); - if (n === null) { - this.invalidStringToken(codePos, "Bad character escape sequence"); - } - return n; -}; -pp.readWord1 = function() { - this.containsEsc = false; - var word = "", first = true, chunkStart = this.pos; - var astral = this.options.ecmaVersion >= 6; - while (this.pos < this.input.length) { - var ch = this.fullCharCodeAtPos(); - if (isIdentifierChar(ch, astral)) { - this.pos += ch <= 65535 ? 1 : 2; - } else if (ch === 92) { - this.containsEsc = true; - word += this.input.slice(chunkStart, this.pos); - var escStart = this.pos; - if (this.input.charCodeAt(++this.pos) !== 117) { - this.invalidStringToken(this.pos, "Expecting Unicode escape sequence \\uXXXX"); - } - ++this.pos; - var esc2 = this.readCodePoint(); - if (!(first ? isIdentifierStart : isIdentifierChar)(esc2, astral)) { - this.invalidStringToken(escStart, "Invalid Unicode escape"); - } - word += codePointToString(esc2); - chunkStart = this.pos; - } else { - break; - } - first = false; - } - return word + this.input.slice(chunkStart, this.pos); -}; -pp.readWord = function() { - var word = this.readWord1(); - var type = types$1.name; - if (this.keywords.test(word)) { - type = keywords[word]; - } - return this.finishToken(type, word); -}; -var version2 = "8.16.0"; -Parser.acorn = { - Parser, - version: version2, - defaultOptions, - Position, - SourceLocation, - getLineInfo, - Node, - TokenType, - tokTypes: types$1, - keywordTypes: keywords, - TokContext, - tokContexts: types, - isIdentifierChar, - isIdentifierStart, - Token, - isNewLine, - lineBreak, - lineBreakG, - nonASCIIwhitespace -}; - -// packages/custom-widgets/src/jsx/analyzer.ts -var import_acorn_jsx = __toESM(require_acorn_jsx(), 1); - -// packages/custom-widgets/src/jsx/policy.ts -var CUSTOM_JSX_LIMITS = Object.freeze({ - templateLength: 5e4, - astDepth: 64, - operations: 25e3, - collectionItems: 4e3, - renderedNodes: 1e4, - stringLength: 2e5 -}); -var CUSTOM_JSX_BINDING_IDENTIFIER_PATTERN = /^[A-Za-z][A-Za-z0-9_-]*$/u; -var CUSTOM_JSX_BLOCKED_PROPERTIES = /* @__PURE__ */ new Set([ - "__proto__", - "apply", - "arguments", - "bind", - "call", - "callee", - "caller", - "constructor", - "prototype" -]); -var CUSTOM_JSX_BLOCKED_PROPS = /* @__PURE__ */ new Set([ - "autoFocus", - "children", - "className", - "classNames", - "classes", - "component", - "contentEditable", - "dangerouslySetInnerHTML", - "form", - "formAction", - "formEncType", - "formMethod", - "formNoValidate", - "formTarget", - "innerRef", - "ping", - "popover", - "popoverTarget", - "popoverTargetAction", - "portalProps", - "ref", - "renderRoot", - "srcDoc", - "suppressContentEditableWarning", - "suppressHydrationWarning", - "withinPortal" -]); -var CUSTOM_JSX_URL_PROPS = /* @__PURE__ */ new Set([ - "backgroundImage", - "fallbackSrc", - "href", - "image", - "poster", - "src" -]); -var CUSTOM_JSX_BLOCKED_POSITION_PROPS = /* @__PURE__ */ new Set([ - "bottom", - "inset", - "left", - "pos", - "right", - "top", - "zIndex" -]); -function normalizeCustomJsxProperty(value) { - return String(value != null ? value : "").normalize("NFKC").toLowerCase(); -} -function isBlockedCustomJsxLexicalBinding(name) { - return CUSTOM_JSX_BLOCKED_PROPERTIES.has(normalizeCustomJsxProperty(name)); -} -function isBlockedCustomJsxProp(name) { - return /^on/iu.test(name) || name.startsWith("__") || /(?:Ref|^ref[A-Z])/u.test(name) || CUSTOM_JSX_BLOCKED_PROPS.has(name) || CUSTOM_JSX_BLOCKED_POSITION_PROPS.has(name) || name !== "bind" && CUSTOM_JSX_BLOCKED_PROPERTIES.has(normalizeCustomJsxProperty(name)); -} - -// packages/custom-widgets/src/jsx/analyzer-ast.ts -var nodeOf = (value) => value !== null && typeof value === "object" && typeof value.type === "string" ? value : null; -var nodesOf = (value) => Array.isArray(value) ? value.map(nodeOf).filter((node) => node !== null) : []; -var staticPropertyName = (node) => { - var _a5; - if (!node) return void 0; - if (node.type === "Literal" && (typeof node.value === "string" || typeof node.value === "number")) { - return String(node.value); - } - if (node.type === "BinaryExpression" && node.operator === "+") { - const left = staticPropertyName(nodeOf(node.left)); - const right = staticPropertyName(nodeOf(node.right)); - return left === void 0 || right === void 0 ? void 0 : left + right; - } - if (node.type === "TemplateLiteral" && Array.isArray(node.expressions) && node.expressions.length === 0) { - return (_a5 = node.quasis) == null ? void 0 : _a5.map((quasi) => { - var _a6, _b; - return String((_b = (_a6 = quasi.value) == null ? void 0 : _a6.cooked) != null ? _b : ""); - }).join(""); - } - return void 0; -}; -var callbackCollectionMethods = /* @__PURE__ */ new Set(["every", "filter", "find", "findIndex", "map", "reduce", "some", "sort"]); -function containsEscapingCallback(node) { - if (node.type === "ArrowFunctionExpression") return true; - if (node.type === "CallExpression") { - const callee = nodeOf(node.callee); - const arguments_ = nodesOf(node.arguments); - if ((callee == null ? void 0 : callee.type) === "ArrowFunctionExpression") { - if (arguments_.length > 0) return true; - const body = nodeOf(callee.body); - return body ? containsEscapingCallbackChildren(body) : false; - } - if (callee && containsEscapingCallback(callee)) return true; - const property = (callee == null ? void 0 : callee.type) === "MemberExpression" ? nodeOf(callee.property) : null; - const method = (property == null ? void 0 : property.type) === "Identifier" ? String(property.name) : staticPropertyName(property); - return arguments_.some((argument) => { - if (argument.type !== "ArrowFunctionExpression" || !method || !callbackCollectionMethods.has(method)) { - return containsEscapingCallback(argument); - } - const body = nodeOf(argument.body); - return body ? containsEscapingCallback(body) : false; - }); - } - return containsEscapingCallbackChildren(node); -} -function containsEscapingCallbackChildren(node) { - return Object.entries(node).some(([key, value]) => { - if (["loc", "start", "end", "type"].includes(key)) return false; - if (Array.isArray(value)) { - return value.some((entry) => { - const child2 = nodeOf(entry); - return child2 ? containsEscapingCallback(child2) : false; - }); - } - const child = nodeOf(value); - return child ? containsEscapingCallback(child) : false; - }); -} - -// packages/custom-widgets/src/jsx/analyzer-diagnostics.ts -function createCustomJsxParseDiagnostic(_template, error52) { - var _a5, _b, _c, _d, _e, _f, _g; - const parseError = error52; - const parseIndex = Math.max(0, ((_a5 = parseError.pos) != null ? _a5 : 2) - 2); - const duplicateArgument = /Argument name clash/iu.test(parseError.message); - const message = duplicateArgument ? "DUPLICATE_LOCAL_BINDING: Callback parameter names must be unique" : parseError.message; - return { - severity: "error", - message, - index: parseIndex, - line: (_c = (_b = parseError.loc) == null ? void 0 : _b.line) != null ? _c : 1, - column: Math.max( - 1, - ((_e = (_d = parseError.loc) == null ? void 0 : _d.column) != null ? _e : 0) + (((_f = parseError.loc) == null ? void 0 : _f.line) === 1 || ((_g = parseError.loc) == null ? void 0 : _g.line) === void 0 ? -1 : 1) - ) - }; -} - -// packages/custom-widgets/src/core/component-catalog.generated.json -var component_catalog_generated_default = { schemaVersion: 1, mantineVersion: "9.4.1", customWidgetVersion: "2.0.0", types: ['"" | "anonymous" | "use-credentials"', '"-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "auto" | "fixed"', '"-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "none" | "auto" | "all" | "fill" | "stroke" | "painted" | "visible" | "visibleFill" | "visiblePainted" | "visibleStroke"', '"-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "none" | "block" | "inline" | "both" | "horizontal" | "vertical"', '"-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "none" | "contain" | "cover" | "fill" | "scale-down"', '"-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "wrap" | "nowrap" | "wrap-reverse"', '"12h" | "24h"', '"activity" | "display-none"', '"all" | "parent" | "child"', '"all" | "segment"', '"always" | "hover" | "not-hover" | "never"', '"area" | "radial" | "scatter"', '"auto" | "scroll" | "always" | "hover" | "never"', '"auto-fit" | "auto-fill"', '"block" | "grid"', '"both" | "rightSection" | "clear"', '"bottom" | "top"', '"bottom" | "top" | "baseline" | "middle"', '"bottom" | "top" | "middle"', '"bottom-end" | "bottom-start" | "top-end" | "top-start" | "bottom-center" | "top-center" | "middle-center" | "middle-end" | "middle-start"', '"button" | "submit" | "reset"', '"center" | "bottom"', '"center" | "left" | "right"', '"center" | "left" | "right" | "justify" | "char"', '"center" | "side" | "merge"', '"checkbox" | "radio"', '"dashed" | "dotted" | "solid"', '"default" | "gradient"', '"default" | "responsive"', '"default" | "stacked" | "percent" | "split"', '"default" | "stacked" | "percent" | "waterfall"', '"div" | "label"', '"end" | "start"', '"filled" | "light"', '"fixed" | "absolute"', '"hex" | "hexa" | "rgba" | "rgb" | "hsl" | "hsla"', '"horizontal" | "vertical"', '"hover" | "click" | "click-hover"', '"inherit" | "auto" | "baseline" | "before-edge" | "text-before-edge" | "middle" | "central" | "after-edge" | "text-after-edge" | "ideographic" | "alphabetic" | "hanging" | "mathematical"', '"inherit" | "auto" | "sRGB" | "linearRGB"', '"inherit" | "auto" | "text-before-edge" | "middle" | "central" | "text-after-edge" | "ideographic" | "alphabetic" | "hanging" | "mathematical" | "use-script" | "no-change" | "reset-size"', '"inherit" | "end" | "start" | "middle"', '"inherit" | "nonzero" | "evenodd"', '"inherit" | "round" | "butt" | "square"', '"inherit" | "round" | "miter" | "bevel"', '"initial" | "medial" | "terminal" | "isolated"', '"inside" | "outside"', '"left" | "right"', '"left" | "right" | "bottom" | "top" | "left-end" | "left-start" | "right-end" | "right-start" | "bottom-end" | "bottom-start" | "top-end" | "top-start"', '"left" | "right" | "inside"', '"link" | "none" | "copy" | "execute" | "move" | "popup"', '"media" | "container"', '"month" | "year" | "decade"', '"native" | "scrollarea"', '"none" | "all" | "rows" | "groups" | "columns"', '"none" | "all" | "with-indicators"', '"none" | "ascending" | "descending" | "other"', '"none" | "inline" | "list" | "both"', '"none" | "strict" | "blur"', '"none" | "sum"', '"none" | "thousand" | "lakh" | "wan"', '"none" | "x" | "y" | "xy"', '"number" | RegExp | "alphanumeric"', '"off" | "assertive" | "polite"', '"off" | "on"', '"ordered" | "unordered"', '"right-to-left" | "left-to-right"', '"search" | "enter" | "done" | "go" | "next" | "previous" | "send"', '"search" | "text" | "none" | "tel" | "url" | "email" | "numeric" | "decimal"', '"step" | "bump" | "linear" | "natural" | "monotone" | "stepBefore" | "stepAfter"', '"stepInactive" | "stepProgress" | "stepCompleted"', '"sum" | "replace"', '"td" | "th"', '"text" | "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals"', '"text" | "tel" | "password"', '"time" | "duration"', '"up" | "down"', '"value" | "name" | "percent"', '"viewport"', '"wrap" | "nowrap" | "balance" | "pretty" | "stable"', '"x" | "y"', '"xs" | "sm" | "md" | "lg" | "xl"', '"xs" | "sm" | "md" | "lg" | "xl" | (string & {})', '"yes" | "no"', "'Text' | 'Title' | 'Badge' | 'Code' | 'Image'", "'auto' | 'manual'", "'json' | 'text'", "'xs' | 'sm' | 'md' | 'lg' | 'xl'", '("input" | "label" | "description" | "error")[]', '("next" | "previous" | "level")[]', "(ActionIconProps & React.ClassAttributes & React.ButtonHTMLAttributes)", "(CartesianChartProps & { ref?: React.Ref; })", '(CloseButtonProps & ElementProps<"button"> & DataAttributes)', "(CloseButtonProps & React.ClassAttributes & React.ButtonHTMLAttributes)", '(ElementProps<"button"> & DataAttributes)', "(InputDescriptionProps & DataAttributes)", "(InputErrorProps & DataAttributes)", "(InputLabelProps & DataAttributes)", "(InputSuccessProps & DataAttributes)", "(Multiple extends true ? Value[] : Value | null)", '(OverlayProps & ElementProps<"div">)', "(PolarChartProps & { ref?: React.Ref; })", "(React.ClassAttributes & React.ButtonHTMLAttributes & DataAttributes)", "(React.ClassAttributes & React.HTMLAttributes & DataAttributes)", "(React.ClassAttributes & React.InputHTMLAttributes & DataAttributes)", "(React.ClassAttributes & React.SelectHTMLAttributes & DataAttributes)", '(Type extends "default" ? boolean : never)', '(Type extends "range" ? boolean : never)', "(Value | SegmentedControlItem)[]", "(number | null)[]", '(string & {}) | "bars" | "dots" | "oval"', '(string & {}) | "none" | "off" | "on" | "sentences" | "words" | "characters"', "(string & {}) | AccordionVariant", "(string & {}) | ActionIconVariant", "(string & {}) | AlertVariant", "(string & {}) | AvatarVariant", "(string & {}) | BadgeVariant", "(string & {}) | ButtonVariant", "(string & {}) | CheckboxIndicatorVariant", "(string & {}) | CheckboxVariant", "(string & {}) | ChipVariant", "(string & {}) | CloseButtonVariant", "(string & {}) | DividerVariant", "(string & {}) | FieldsetVariant", "(string & {}) | InputVariant", "(string & {}) | NavLinkVariant", "(string & {}) | PillVariant", "(string & {}) | RadioIndicatorVariant", "(string & {}) | RadioVariant", "(string & {}) | TableVariant", "(string & {}) | TabsVariant", "(string & {}) | TextVariant", "(string & {}) | ThemeIconVariant", "0 | -1", "0 | 2 | 3 | 4 | 5 | 6 | 1", "1 | 2 | 3 | 4 | 5 | 6", "2 | 3 | 4 | 5 | 6", "2 | 3 | 4 | 5 | 6 | 1", "AccordionValue", "AreaChartSeries[]", "AriaRole", "BarChartSeries[]", "BarsListBarData[]", "BoxMod", "BubbleChartDataKey", "ButtonSize", "CSSProperties", "CalendarAriaLabels", "ChartData", "ChartReferenceLineProps[]", "ChartSeries[]", "ComboboxData", "ComboboxGenericData", "ComboboxProps", "ComboboxStringGroupData", "CompositeChartSeries[]", 'DatePickerPreset<"default">[]', "DatePickerPreset[]", "DatePickerType | Type", "DatePickerValue", "DateValue", "DayOfWeek[]", "DefaultMantineColor", 'DefaultMantineColor | "initials"', "DefaultMantineColor[]", "DonutChartCell[]", "FlatTreeLineState[]", "FunnelChartCell[]", "GridBreakpoints", "HTMLElement | null", "HTMLInputAutoCompleteAttribute", "HTMLInputTypeAttribute", "InputClearButtonProps", "Key | null", "LineChartGradientStop[]", "LineChartSeries[]", "LoaderProps", "MantineBreakpoint", "MantineChartDotProps", "MantineGradient", "MantineRadius", "MantineShadow", "MantineSize | (string & {})", "MantineSpacing", "Mode", "MonthPickerPreset[]", "Multiple", "NumberInputValue", 'Omit, "data" | "ref" | "dataKey">', 'Omit', 'Omit', 'Omit', 'Omit', 'Omit', 'Omit', 'Omit, HTMLInputElement>, "value">', 'Omit', 'Omit, "ref">', 'Omit', 'Omit', 'Omit, "ref">', "OverlayProps", 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial, "data" | "ref" | "dataKey">>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', 'Partial>', "Partial>", "Partial>", "Partial>", "Partial>", "Partial>", "Partial>", "Partial>", "Partial>", "Partial>", "Partial>", "Partial>", "Partial>", "Partial", "PieChartCell[]", "PopoverMiddlewares", "PopoverProps", "PopoverWidth", "Property.AlignItems", "Property.BackgroundColor", "Property.BorderRadius", "Property.Height", "Property.JustifyContent", "Property.ListStyleType", "Property.MaxHeight", "Property.MinWidth", "Property.Overflow", "Property.OverscrollBehavior", "Property.Width", "RadarChartSeries[]", "RangeSliderValue", "React.CSSProperties", "React.DetailedHTMLProps, HTMLButtonElement>", "React.DetailedHTMLProps, HTMLDivElement>", "React.DetailedHTMLProps, HTMLImageElement>", "React.DetailedHTMLProps, HTMLInputElement>", "React.HTMLInputTypeAttribute", "React.ReactNode", "ReactNode", "Record", "Record", "Record[]", "Record[] | readonly Record[]", "Record", "Record", "RingProgressSection[]", "SankeyChartData", "ScatterChartSeries[]", "ScrollAreaProps", "SimpleGridProps", "SliderMark[]", "SparklineTrendColors", "SplitterPaneSize", "SplitterPaneSize[]", "SplitterStep", 'StyleProp<"text" | (string & {}) | "monospace" | "heading">', "StyleProp", "StyleProp", "StyleProp", "StyleProp", "StyleProp", "StyleProp", "StyleProp>", "StyleProp", "StyleProp>", "StyleProp>", "StyleProp", "StyleProp>", "StyleProp", "StyleProp", "StyleProp", "StyleProp", "StyleProp>", "StyleProp", "StyleProp>", "StyleProp>", "StyleProp>", "StyleProp>", "StyleProp>", "StyleProp", "StyleProp", "StyleProp>", "StyleProp", "StyleProp>", 'StyleProp', 'StyleProp', "StyleProp", "T", "T[]", "TableData", "TimePickerAmPmLabels", "TimePickerPresets", "TitleSize", "TooltipMiddlewares", "TreeNodeData", "TreeNodeData[]", "TreeSelectChevronAriaLabels", "TreeSelectValue", "TreemapData[]", "Type", "Type | DatePickerType", "UseTreeReturnType", "Value", "Value | null", "Value[]", "WrapperProps", "YearPickerPreset[]", "[DefaultMantineColor, DefaultMantineColor]", "[number, number]", "[string, string]", "boolean", "boolean | SafePolygonOptions", "boolean | string", "boolean[]", 'false | "x" | "y" | "xy"', "false | true", 'false | true | "auto" | "true" | "false"', 'false | true | "dialog" | "menu" | "grid" | "true" | "false" | "listbox" | "tree"', 'false | true | "end" | "start"', 'false | true | "odd" | "even"', 'false | true | "time" | "true" | "false" | "page" | "step" | "location" | "date"', 'false | true | "true" | "false"', 'false | true | "true" | "false" | "grammar" | "spelling"', 'false | true | "true" | "false" | "mixed"', 'false | true | "user" | "environment"', 'false | true | "x" | "y" | "present"', "null | string", "number", "number | FloatingAxesOffsets", "number | MantineSize | (string & {})", 'number | MantineSize | (string & {}) | "input-xs" | "input-sm" | "input-md" | "input-lg" | "input-xl"', "number | { x: number; y: number; }", "readonly Record[]", "string", "string | (string & {})", "string | (string | RegExp)[]", "string | Date", "string | Date | null", "string | false | true", "string | number", "string | number | readonly string[]", "string | string[] | HighlightTerm[]", "string[]", "undefined", "unknown", "{ area?: Record; legend?: Record; grid?: Record; root?: Record; ... 14 more ...; tooltipBody?: Record<...>; }", "{ area?: Record; legend?: Record; line?: Record; grid?: Record; ... 16 more ...; tooltipBody?: Record<...>; }", "{ body?: Record; input?: Record; label?: Record; root?: Record; ... 4 more ...; labelWrapper?: Record<...>; }", "{ body?: Record; input?: Record; label?: Record; section?: Record; ... 19 more ...; swatch?: Record<...>; }", "{ body?: Record; input?: Record; label?: Record; track?: Record; ... 5 more ...; trackLabel?: Record<...>; }", "{ body?: Record; label?: Record; root?: Record; icon?: Record; ... 4 more ...; labelWrapper?: Record<...>; }", "{ body?: Record; label?: Record; section?: Record; children?: Record; root?: Record<...>; chevron?: Record<...>; description?: Record<...>; collapse?: Record<...>; } | u...", "{ body?: Record; label?: Record; title?: Record; root?: Record; icon?: Record<...>; wrapper?: Record<...>; message?: Record<...>; closeButton?: Record<...>; }", "{ body?: Record; slider?: Record; wrapper?: Record; sliderOverlay?: Record; ... 6 more ...; swatch?: Record<...>; }", "{ body?: Record; title?: Record; root?: Record; description?: Record; indicator?: Record<...>; actions?: Record<...>; }", "{ body?: Record; title?: Record; root?: Record; icon?: Record; loader?: Record<...>; closeButton?: Record<...>; description?: Record<...>; }", "{ calendarHeader?: Record; calendarHeaderControl?: Record; calendarHeaderLevel?: Record; ... 12 more ...; monthPickerRoot?: Record<...>; }", "{ calendarHeader?: Record; calendarHeaderControl?: Record; calendarHeaderLevel?: Record; ... 4 more ...; monthsListControl?: Record<...>; }", "{ calendarHeader?: Record; calendarHeaderControl?: Record; calendarHeaderLevel?: Record; ... 4 more ...; yearsListRow?: Record<...>; }", "{ calendarHeader?: Record; calendarHeaderControl?: Record; calendarHeaderLevel?: Record; ... 5 more ...; monthsListControl?: Record<...>; }", "{ calendarHeader?: Record; calendarHeaderControl?: Record; calendarHeaderLevel?: Record; ... 5 more ...; yearsListRow?: Record<...>; }", "{ calendarHeader?: Record; calendarHeaderControl?: Record; calendarHeaderLevel?: Record; ... 8 more ...; yearPickerRoot?: Record<...>; }", "{ calendarHeader?: Record; calendarHeaderControl?: Record; calendarHeaderLevel?: Record; calendarHeaderControlIcon?: Record<...>; }", "{ caption?: Record; table?: Record; tbody?: Record; td?: Record; tfoot?: Record<...>; th?: Record<...>; thead?: Record<...>; tr?: Record<...>; }", "{ card?: Record; }", "{ cite?: Record; root?: Record; icon?: Record; }", "{ col?: Record; root?: Record; inner?: Record; container?: Record; }", "{ content?: Record; root?: Record; chevron?: Record; control?: Record; container?: Record<...>; }", "{ content?: Record; root?: Record; control?: Record; }", "{ content?: Record; root?: Record; group?: Record; }", "{ content?: Record; root?: Record; scrollbar?: Record; thumb?: Record; viewport?: Record<...>; corner?: Record<...>; }", "{ content?: Record; root?: Record; separator?: Record; step?: Record; ... 9 more ...; stepDescription?: Record<...>; }", "{ day?: Record; }", "{ dropdown?: Record; overlay?: Record; arrow?: Record; }", "{ group?: Record; }", "{ groupSection?: Record; }", "{ hover: boolean; focus: boolean; touch: boolean; }", "{ icon?: Record; indicator?: Record; }", "{ image?: Record; root?: Record; placeholder?: Record; }", "{ input?: Record; label?: Record; option?: Record; section?: Record; ... 11 more ...; groupLabel?: Record<...>; }", "{ input?: Record; label?: Record; option?: Record; section?: Record; ... 14 more ...; inputField?: Record<...>; }", "{ input?: Record; label?: Record; root?: Record; control?: Record; indicator?: Record<...>; innerLabel?: Record<...>; }", "{ input?: Record; label?: Record; root?: Record; iconWrapper?: Record; checkIcon?: Record<...>; }", "{ input?: Record; label?: Record; root?: Record; starSymbol?: Record; symbolBody?: Record<...>; symbolGroup?: Record<...>; }", "{ input?: Record; label?: Record; section?: Record; root?: Record; ... 17 more ...; presetControl?: Record<...>; }", "{ input?: Record; label?: Record; section?: Record; root?: Record; ... 18 more ...; yearPickerRoot?: Record<...>; }", "{ input?: Record; label?: Record; section?: Record; root?: Record; ... 22 more ...; monthPickerRoot?: Record<...>; }", "{ input?: Record; label?: Record; section?: Record; root?: Record; ... 30 more ...; presetButton?: Record<...>; }", "{ input?: Record; label?: Record; section?: Record; root?: Record; ... 31 more ...; datePickerRoot?: Record<...>; }", "{ input?: Record; label?: Record; section?: Record; root?: Record; ... 37 more ...; rangeInfo?: Record<...>; }", "{ input?: Record; label?: Record; section?: Record; root?: Record; ... 5 more ...; bottomSection?: Record<...>; }", "{ input?: Record; label?: Record; section?: Record; root?: Record; ... 7 more ...; controls?: Record<...>; }", "{ input?: Record; label?: Record; section?: Record; root?: Record; ... 7 more ...; innerInput?: Record<...>; }", "{ input?: Record; root?: Record; pinInput?: Record; }", "{ input?: Record; section?: Record; wrapper?: Record; bottomSection?: Record; }", "{ label?: Record; content?: Record; root?: Record; item?: Record; ... 4 more ...; control?: Record<...>; }", "{ label?: Record; legend?: Record; root?: Record; tooltip?: Record; ... 9 more ...; tooltipBody?: Record<...>; }", "{ label?: Record; mark?: Record; root?: Record; thumb?: Record; marks?: Record<...>; }", "{ label?: Record; mark?: Record; track?: Record; root?: Record; ... 4 more ...; markLabel?: Record<...>; }", "{ label?: Record; root?: Record; control?: Record; dots?: Record; items?: Record<...>; }", "{ label?: Record; root?: Record; description?: Record; error?: Record; success?: Record<...>; required?: Record<...>; }", "{ label?: Record; root?: Record; node?: Record; subtree?: Record; }", "{ label?: Record; root?: Record; remove?: Record; }", "{ label?: Record; root?: Record; }", "{ label?: Record; search?: Record; item?: Record; chevron?: Record; ... 6 more ...; divider?: Record<...>; }", "{ label?: Record; section?: Record; root?: Record; loader?: Record; inner?: Record<...>; }", "{ label?: Record; section?: Record; root?: Record; }", "{ label?: Record; svg?: Record; root?: Record; curve?: Record; }", "{ label?: Record; svg?: Record; root?: Record; emptySegment?: Record; filledSegment?: Record<...>; }", "{ legend?: Record; grid?: Record; root?: Record; tooltip?: Record; ... 14 more ...; scatter?: Record<...>; }", "{ legend?: Record; grid?: Record; root?: Record; tooltip?: Record; ... 14 more ...; tooltipBody?: Record<...>; }", "{ legend?: Record; legendItem?: Record; legendItemColor?: Record; legendItemName?: Record<...>; }", "{ legend?: Record; line?: Record; grid?: Record; root?: Record; ... 14 more ...; tooltipBody?: Record<...>; }", "{ legend?: Record; rect?: Record; root?: Record; weekdayLabel?: Record; monthLabel?: Record<...>; legendLabel?: Record<...>; legendRect?: Record<...>; }", "{ legend?: Record; root?: Record; tooltip?: Record; container?: Record; ... 9 more ...; tooltipBody?: Record<...>; }", "{ legend?: Record; root?: Record; tooltip?: Record; legendItem?: Record; ... 8 more ...; tooltipBody?: Record<...>; }", "{ legend?: Record; root?: Record; tooltip?: Record; legendItem?: Record; legendItemColor?: Record<...>; legendItemName?: Record<...>; }", "{ legend?: Record; root?: Record; }", "{ levelsGroup?: Record; }", "{ month?: Record; weekday?: Record; weekdaysRow?: Record; monthRow?: Record; ... 17 more ...; yearsListRow?: Record<...>; }", "{ month?: Record; weekday?: Record; weekdaysRow?: Record; monthRow?: Record; ... 20 more ...; datePickerRoot?: Record<...>; }", "{ month?: Record; weekday?: Record; weekdaysRow?: Record; monthRow?: Record; ... 4 more ...; day?: Record<...>; }", "{ month?: Record; weekday?: Record; weekdaysRow?: Record; monthRow?: Record; ... 8 more ...; calendarHeaderControlIcon?: Record<...>; }", "{ month?: Record; weekday?: Record; weekdaysRow?: Record; monthRow?: Record; ... 9 more ...; levelsGroup?: Record<...>; }", "{ monthsList?: Record; monthsListCell?: Record; monthsListRow?: Record; monthsListControl?: Record<...>; }", "{ pickerControl?: Record; }", "{ root?: Record; alphaOverlay?: Record; shadowOverlay?: Record; colorOverlay?: Record<...>; childrenOverlay?: Record<...>; }", "{ root?: Record; bar?: Record; barLabel?: Record; barValue?: Record; labelsRow?: Record<...>; }", "{ root?: Record; burger?: Record; }", "{ root?: Record; container?: Record; }", "{ root?: Record; control?: Record; day?: Record; days?: Record; dayMonth?: Record<...>; dayNumber?: Record<...>; }", "{ root?: Record; control?: Record; simpleGrid?: Record; }", "{ root?: Record; digit?: Record; digitColumn?: Record; char?: Record; }", "{ root?: Record; icon?: Record; loader?: Record; }", "{ root?: Record; indicator?: Record; }", "{ root?: Record; item?: Record; itemLabel?: Record; itemValue?: Record; }", "{ root?: Record; item?: Record; itemLabel?: Record; itemWrapper?: Record; itemIcon?: Record<...>; }", "{ root?: Record; item?: Record; itemTitle?: Record; itemBody?: Record; itemContent?: Record<...>; itemBullet?: Record<...>; }", "{ root?: Record; loader?: Record; overlay?: Record; }", "{ root?: Record; month?: Record; weekday?: Record; weekdaysRow?: Record; ... 27 more ...; rangeInfo?: Record<...>; }", "{ root?: Record; panel?: Record; list?: Record; tab?: Record; tabSection?: Record<...>; tabLabel?: Record<...>; }", "{ root?: Record; separator?: Record; breadcrumb?: Record; }", "{ root?: Record; thumb?: Record; handle?: Record; pane?: Record; }", "{ root?: Record; tooltip?: Record; axis?: Record; }", "{ root?: Record; tooltip?: Record; tooltipItem?: Record; tooltipItemBody?: Record<...>; ... 4 more ...; tooltipBody?: Record<...>; }", "{ root?: Record; }", "{ scrollContainer?: Record; scrollContainerInner?: Record; }", "{ section?: Record; root?: Record; }", "{ slider?: Record; sliderOverlay?: Record; thumb?: Record; }", "{ tooltip?: Record; arrow?: Record; }", "{ tooltip?: Record; tooltipItem?: Record; tooltipItemBody?: Record; tooltipItemColor?: Record<...>; tooltipItemName?: Record<...>; tooltipItemData?: Record<...>; tooltipLabel?: Record<...>; tool...", "{ value: number; label?: string; }[]", "{ weekday?: Record; weekdaysRow?: Record; }", "{ x: string; y: string; }", "{ x?: number; y?: number; }", "{ x?: string; y?: string; }", "{ yearsListControl?: Record; yearsList?: Record; yearsListCell?: Record; yearsListRow?: Record<...>; }"], globalProps: [{ name: "abbr", required: false, source: "global", typeRef: 359 }, { name: "about", required: false, source: "global", typeRef: 359 }, { name: "accentHeight", required: false, source: "global", typeRef: 365 }, { name: "accept", required: false, source: "global", typeRef: 359 }, { name: "accessKey", required: false, source: "global", typeRef: 359 }, { name: "accumulate", required: false, source: "global", literalValues: ["none", "sum"], typeRef: 59 }, { name: "additive", required: false, source: "global", literalValues: ["replace", "sum"], typeRef: 71 }, { name: "align", required: false, source: "global", literalValues: ["center", "char", "justify", "left", "right"], typeRef: 22 }, { name: "alignmentBaseline", required: false, source: "global", literalValues: ["after-edge", "alphabetic", "auto", "baseline", "before-edge", "central", "hanging", "ideographic", "inherit", "mathematical", "middle", "text-after-edge", "text-before-edge"], typeRef: 38 }, { name: "allowReorder", required: false, source: "global", literalValues: ["no", "yes"], typeRef: 83 }, { name: "alphabetic", required: false, source: "global", typeRef: 365 }, { name: "alt", required: false, source: "global", typeRef: 359 }, { name: "amplitude", required: false, source: "global", typeRef: 365 }, { name: "arabicForm", required: false, source: "global", literalValues: ["initial", "isolated", "medial", "terminal"], typeRef: 45 }, { name: "aria-activedescendant", required: false, source: "global", description: "Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application.", typeRef: 359 }, { name: "aria-atomic", required: false, source: "global", literalValues: [false, "false", true, "true"], description: "Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute.", typeRef: 347 }, { name: "aria-autocomplete", required: false, source: "global", literalValues: ["both", "inline", "list", "none"], description: "Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be presented if they are made.", typeRef: 57 }, { name: "aria-braillelabel", required: false, source: "global", description: "Defines a string value that labels the current element, which is intended to be converted into Braille.", typeRef: 359 }, { name: "aria-brailleroledescription", required: false, source: "global", description: "Defines a human-readable, author-localized abbreviated description for the role of an element, which is intended to be converted into Braille.", typeRef: 359 }, { name: "aria-busy", required: false, source: "global", literalValues: [false, "false", true, "true"], typeRef: 347 }, { name: "aria-checked", required: false, source: "global", literalValues: [false, "false", "mixed", true, "true"], description: 'Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.', typeRef: 349 }, { name: "aria-colcount", required: false, source: "global", description: "Defines the total number of columns in a table, grid, or treegrid.", typeRef: 353 }, { name: "aria-colindex", required: false, source: "global", description: "Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.", typeRef: 353 }, { name: "aria-colindextext", required: false, source: "global", description: "Defines a human readable text alternative of aria-colindex.", typeRef: 359 }, { name: "aria-colspan", required: false, source: "global", description: "Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.", typeRef: 353 }, { name: "aria-controls", required: false, source: "global", description: "Identifies the element (or elements) whose contents or presence are controlled by the current element.", typeRef: 359 }, { name: "aria-current", required: false, source: "global", literalValues: ["date", false, "false", "location", "page", "step", "time", true, "true"], description: "Indicates the element that represents the current item within a container or set of related elements.", typeRef: 346 }, { name: "aria-describedby", required: false, source: "global", description: "Identifies the element (or elements) that describes the object.", typeRef: 359 }, { name: "aria-description", required: false, source: "global", description: "Defines a string value that describes or annotates the current element.", typeRef: 359 }, { name: "aria-details", required: false, source: "global", description: "Identifies the element that provides a detailed, extended description for the object.", typeRef: 359 }, { name: "aria-disabled", required: false, source: "global", literalValues: [false, "false", true, "true"], description: "Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.", typeRef: 347 }, { name: "aria-dropeffect", required: false, source: "global", literalValues: ["copy", "execute", "link", "move", "none", "popup"], description: "Indicates what functions can be performed when a dragged object is released on the drop target.", typeRef: 50 }, { name: "aria-errormessage", required: false, source: "global", description: "Identifies the element that provides an error message for the object.", typeRef: 359 }, { name: "aria-expanded", required: false, source: "global", literalValues: [false, "false", true, "true"], description: "Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed.", typeRef: 347 }, { name: "aria-flowto", required: false, source: "global", description: "Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order.", typeRef: 359 }, { name: "aria-grabbed", required: false, source: "global", literalValues: [false, "false", true, "true"], description: `Indicates an element's "grabbed" state in a drag-and-drop operation.`, typeRef: 347 }, { name: "aria-haspopup", required: false, source: "global", literalValues: ["dialog", false, "false", "grid", "listbox", "menu", "tree", true, "true"], description: "Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element.", typeRef: 343 }, { name: "aria-hidden", required: false, source: "global", literalValues: [false, "false", true, "true"], description: "Indicates whether the element is exposed to an accessibility API.", typeRef: 347 }, { name: "aria-invalid", required: false, source: "global", literalValues: [false, "false", "grammar", "spelling", true, "true"], description: "Indicates the entered value does not conform to the format expected by the application.", typeRef: 348 }, { name: "aria-keyshortcuts", required: false, source: "global", description: "Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.", typeRef: 359 }, { name: "aria-label", required: false, source: "global", description: "Defines a string value that labels the current element.", typeRef: 359 }, { name: "aria-labelledby", required: false, source: "global", description: "Identifies the element (or elements) that labels the current element.", typeRef: 359 }, { name: "aria-level", required: false, source: "global", description: "Defines the hierarchical level of an element within a structure.", typeRef: 353 }, { name: "aria-live", required: false, source: "global", literalValues: ["assertive", "off", "polite"], description: "Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region.", typeRef: 63 }, { name: "aria-modal", required: false, source: "global", literalValues: [false, "false", true, "true"], description: "Indicates whether an element is modal when displayed.", typeRef: 347 }, { name: "aria-multiline", required: false, source: "global", literalValues: [false, "false", true, "true"], description: "Indicates whether a text box accepts multiple lines of input or only a single line.", typeRef: 347 }, { name: "aria-multiselectable", required: false, source: "global", literalValues: [false, "false", true, "true"], description: "Indicates that the user may select more than one item from the current selectable descendants.", typeRef: 347 }, { name: "aria-orientation", required: false, source: "global", literalValues: ["horizontal", "vertical"], description: "Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous.", typeRef: 36 }, { name: "aria-owns", required: false, source: "global", description: "Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship between DOM elements where the DOM hierarchy cannot be used to represent the relationship.", typeRef: 359 }, { name: "aria-placeholder", required: false, source: "global", description: "Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. A hint could be a sample value or a brief description of the expected format.", typeRef: 359 }, { name: "aria-posinset", required: false, source: "global", description: "Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.", typeRef: 353 }, { name: "aria-pressed", required: false, source: "global", literalValues: [false, "false", "mixed", true, "true"], description: 'Indicates the current "pressed" state of toggle buttons.', typeRef: 349 }, { name: "aria-readonly", required: false, source: "global", literalValues: [false, "false", true, "true"], description: "Indicates that the element is not editable, but is otherwise operable.", typeRef: 347 }, { name: "aria-relevant", required: false, source: "global", literalValues: ["additions", "additions removals", "additions text", "all", "removals", "removals additions", "removals text", "text", "text additions", "text removals"], description: "Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.", typeRef: 73 }, { name: "aria-required", required: false, source: "global", literalValues: [false, "false", true, "true"], description: "Indicates that user input is required on the element before a form may be submitted.", typeRef: 347 }, { name: "aria-roledescription", required: false, source: "global", description: "Defines a human-readable, author-localized description for the role of an element.", typeRef: 359 }, { name: "aria-rowcount", required: false, source: "global", description: "Defines the total number of rows in a table, grid, or treegrid.", typeRef: 353 }, { name: "aria-rowindex", required: false, source: "global", description: "Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.", typeRef: 353 }, { name: "aria-rowindextext", required: false, source: "global", description: "Defines a human readable text alternative of aria-rowindex.", typeRef: 359 }, { name: "aria-rowspan", required: false, source: "global", description: "Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.", typeRef: 353 }, { name: "aria-selected", required: false, source: "global", literalValues: [false, "false", true, "true"], description: 'Indicates the current "selected" state of various widgets.', typeRef: 347 }, { name: "aria-setsize", required: false, source: "global", description: "Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.", typeRef: 353 }, { name: "aria-sort", required: false, source: "global", literalValues: ["ascending", "descending", "none", "other"], description: "Indicates if items in a table or grid are sorted in ascending or descending order.", typeRef: 56 }, { name: "aria-valuemax", required: false, source: "global", description: "Defines the maximum allowed value for a range widget.", typeRef: 353 }, { name: "aria-valuemin", required: false, source: "global", description: "Defines the minimum allowed value for a range widget.", typeRef: 353 }, { name: "aria-valuenow", required: false, source: "global", description: "Defines the current value for a range widget.", typeRef: 353 }, { name: "aria-valuetext", required: false, source: "global", description: "Defines the human readable text alternative of aria-valuenow for a range widget.", typeRef: 359 }, { name: "ascent", required: false, source: "global", typeRef: 365 }, { name: "attributeName", required: false, source: "global", typeRef: 359 }, { name: "attributeType", required: false, source: "global", typeRef: 359 }, { name: "autoCapitalize", required: false, source: "global", literalValues: ["characters", "none", "off", "on", "sentences", "words"], typeRef: 111 }, { name: "autoComplete", required: false, source: "global", typeRef: 170 }, { name: "autoCorrect", required: false, source: "global", typeRef: 359 }, { name: "autoReverse", required: false, source: "global", literalValues: [false, "false", true, "true"], typeRef: 347 }, { name: "autoSave", required: false, source: "global", typeRef: 359 }, { name: "azimuth", required: false, source: "global", typeRef: 365 }, { name: "baseFrequency", required: false, source: "global", typeRef: 365 }, { name: "baseProfile", required: false, source: "global", typeRef: 365 }, { name: "baselineShift", required: false, source: "global", typeRef: 365 }, { name: "bbox", required: false, source: "global", typeRef: 365 }, { name: "bd", required: false, source: "global", description: "Border", typeRef: 291 }, { name: "bdrs", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "BorderRadius, theme key: theme.radius", typeRef: 284 }, { name: "begin", required: false, source: "global", typeRef: 365 }, { name: "bg", required: false, source: "global", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Background, theme key: theme.colors", typeRef: 283 }, { name: "bga", required: false, source: "global", literalValues: ["-moz-initial", "fixed", "inherit", "initial", "local", "revert", "revert-layer", "scroll", "unset"], description: "BackgroundAttachment", typeRef: 287 }, { name: "bgcolor", required: false, source: "global", typeRef: 359 }, { name: "bgp", required: false, source: "global", description: "BackgroundPosition", typeRef: 288 }, { name: "bgr", required: false, source: "global", literalValues: ["-moz-initial", "inherit", "initial", "no-repeat", "repeat", "repeat-x", "repeat-y", "revert", "revert-layer", "round", "space", "unset"], description: "BackgroundRepeat", typeRef: 289 }, { name: "bgsz", required: false, source: "global", description: "BackgroundSize", typeRef: 290 }, { name: "bias", required: false, source: "global", typeRef: 365 }, { name: "border", required: false, source: "global", typeRef: 353 }, { name: "by", required: false, source: "global", typeRef: 365 }, { name: "c", required: false, source: "global", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color", typeRef: 283 }, { name: "calcMode", required: false, source: "global", typeRef: 365 }, { name: "capHeight", required: false, source: "global", typeRef: 365 }, { name: "capture", required: false, source: "global", literalValues: ["environment", false, true, "user"], typeRef: 350 }, { name: "cellPadding", required: false, source: "global", typeRef: 365 }, { name: "cellSpacing", required: false, source: "global", typeRef: 365 }, { name: "checked", required: false, source: "global", literalValues: [false, true], typeRef: 341 }, { name: "clip", required: false, source: "global", typeRef: 365 }, { name: "clipPath", required: false, source: "global", typeRef: 359 }, { name: "clipPathUnits", required: false, source: "global", typeRef: 365 }, { name: "clipRule", required: false, source: "global", typeRef: 365 }, { name: "colSpan", required: false, source: "global", typeRef: 353 }, { name: "color", required: false, source: "global", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "initials", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 359 }, { name: "colorInterpolation", required: false, source: "global", typeRef: 365 }, { name: "colorInterpolationFilters", required: false, source: "global", literalValues: ["auto", "inherit", "linearRGB", "sRGB"], typeRef: 39 }, { name: "colorProfile", required: false, source: "global", typeRef: 365 }, { name: "colorRendering", required: false, source: "global", typeRef: 365 }, { name: "cols", required: false, source: "global", typeRef: 353 }, { name: "content", required: false, source: "global", typeRef: 359 }, { name: "contentScriptType", required: false, source: "global", typeRef: 365 }, { name: "contentStyleType", required: false, source: "global", typeRef: 365 }, { name: "contextMenu", required: false, source: "global", typeRef: 359 }, { name: "crossOrigin", required: false, source: "global", literalValues: ["", "anonymous", "use-credentials"], typeRef: 0 }, { name: "cursor", required: false, source: "global", typeRef: 365 }, { name: "cx", required: false, source: "global", typeRef: 365 }, { name: "cy", required: false, source: "global", typeRef: 365 }, { name: "d", required: false, source: "global", typeRef: 359 }, { name: "darkHidden", required: false, source: "global", literalValues: [false, true], description: "Determines whether component should be hidden in dark color scheme with `display: none`", typeRef: 341 }, { name: "datatype", required: false, source: "global", typeRef: 359 }, { name: "decelerate", required: false, source: "global", typeRef: 365 }, { name: "defaultChecked", required: false, source: "global", literalValues: [false, true], typeRef: 341 }, { name: "defaultValue", required: false, source: "global", typeRef: 366 }, { name: "descent", required: false, source: "global", typeRef: 365 }, { name: "diffuseConstant", required: false, source: "global", typeRef: 365 }, { name: "dir", required: false, source: "global", typeRef: 359 }, { name: "dirName", required: false, source: "global", typeRef: 359 }, { name: "direction", required: false, source: "global", typeRef: 365 }, { name: "disabled", required: false, source: "global", literalValues: [false, true], typeRef: 341 }, { name: "display", required: false, source: "global", literalValues: ["-moz-initial", "-ms-flexbox", "-ms-grid", "-ms-inline-flexbox", "-ms-inline-grid", "-webkit-flex", "-webkit-inline-flex", "block", "contents", "flex", "flow", "flow-root", "grid", "inherit", "initial", "inline", "inline-block", "inline-flex", "inline-grid", "inline-list-item", "inline-table", "list-item", "none", "revert", "revert-layer", "ruby", "ruby-base", "ruby-base-container", "ruby-text", "ruby-text-container", "run-in", "table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row", "table-row-group", "unset"], typeRef: 292 }, { name: "divisor", required: false, source: "global", typeRef: 365 }, { name: "dominantBaseline", required: false, source: "global", literalValues: ["alphabetic", "auto", "central", "hanging", "ideographic", "inherit", "mathematical", "middle", "no-change", "reset-size", "text-after-edge", "text-before-edge", "use-script"], typeRef: 40 }, { name: "draggable", required: false, source: "global", literalValues: [false, "false", true, "true"], typeRef: 347 }, { name: "dur", required: false, source: "global", typeRef: 365 }, { name: "dx", required: false, source: "global", typeRef: 365 }, { name: "dy", required: false, source: "global", typeRef: 365 }, { name: "edgeMode", required: false, source: "global", typeRef: 365 }, { name: "elevation", required: false, source: "global", typeRef: 365 }, { name: "enableBackground", required: false, source: "global", typeRef: 365 }, { name: "end", required: false, source: "global", typeRef: 365 }, { name: "enterKeyHint", required: false, source: "global", literalValues: ["done", "enter", "go", "next", "previous", "search", "send"], typeRef: 67 }, { name: "exponent", required: false, source: "global", typeRef: 365 }, { name: "exportparts", required: false, source: "global", typeRef: 359 }, { name: "externalResourcesRequired", required: false, source: "global", literalValues: [false, "false", true, "true"], typeRef: 347 }, { name: "ff", required: false, source: "global", literalValues: ["heading", "monospace", "text"], description: "FontFamily", typeRef: 281 }, { name: "fill", required: false, source: "global", typeRef: 359 }, { name: "fillOpacity", required: false, source: "global", typeRef: 365 }, { name: "fillRule", required: false, source: "global", literalValues: ["evenodd", "inherit", "nonzero"], typeRef: 42 }, { name: "filter", required: false, source: "global", typeRef: 359 }, { name: "filterRes", required: false, source: "global", typeRef: 365 }, { name: "filterUnits", required: false, source: "global", typeRef: 365 }, { name: "flex", required: false, source: "global", typeRef: 293 }, { name: "floodColor", required: false, source: "global", typeRef: 365 }, { name: "floodOpacity", required: false, source: "global", typeRef: 365 }, { name: "focusable", required: false, source: "global", literalValues: ["auto", false, "false", true, "true"], typeRef: 342 }, { name: "fontFamily", required: false, source: "global", typeRef: 359 }, { name: "fontSize", required: false, source: "global", typeRef: 365 }, { name: "fontSizeAdjust", required: false, source: "global", typeRef: 365 }, { name: "fontStretch", required: false, source: "global", typeRef: 365 }, { name: "fontStyle", required: false, source: "global", typeRef: 365 }, { name: "fontVariant", required: false, source: "global", typeRef: 365 }, { name: "fontWeight", required: false, source: "global", typeRef: 365 }, { name: "format", required: false, source: "global", typeRef: 365 }, { name: "fr", required: false, source: "global", typeRef: 365 }, { name: "frame", required: false, source: "global", literalValues: [false, true], typeRef: 341 }, { name: "from", required: false, source: "global", typeRef: 365 }, { name: "fs", required: false, source: "global", literalValues: ["-moz-initial", "inherit", "initial", "italic", "normal", "oblique", "revert", "revert-layer", "unset"], description: "FontStyle", typeRef: 296 }, { name: "fw", required: false, source: "global", literalValues: ["-moz-initial", "bold", "bolder", "inherit", "initial", "lighter", "normal", "revert", "revert-layer", "unset"], description: "FontWeight", typeRef: 297 }, { name: "fx", required: false, source: "global", typeRef: 365 }, { name: "fy", required: false, source: "global", typeRef: 365 }, { name: "fz", required: false, source: "global", literalValues: ["h1", "h2", "h3", "h4", "h5", "h6", "lg", "md", "sm", "xl", "xs"], description: "FontSize, theme key: theme.fontSizes", typeRef: 310 }, { name: "g1", required: false, source: "global", typeRef: 365 }, { name: "g2", required: false, source: "global", typeRef: 365 }, { name: "glyphName", required: false, source: "global", typeRef: 365 }, { name: "glyphOrientationHorizontal", required: false, source: "global", typeRef: 365 }, { name: "glyphOrientationVertical", required: false, source: "global", typeRef: 365 }, { name: "gradientTransform", required: false, source: "global", typeRef: 359 }, { name: "gradientUnits", required: false, source: "global", typeRef: 359 }, { name: "h", required: false, source: "global", description: "Height, theme key: theme.spacing", typeRef: 298 }, { name: "hanging", required: false, source: "global", typeRef: 365 }, { name: "headers", required: false, source: "global", typeRef: 359 }, { name: "height", required: false, source: "global", typeRef: 365 }, { name: "hidden", required: false, source: "global", literalValues: [false, true], typeRef: 341 }, { name: "hiddenFrom", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Breakpoint above which the component is hidden with `display: none`", typeRef: 177 }, { name: "horizAdvX", required: false, source: "global", typeRef: 365 }, { name: "horizOriginX", required: false, source: "global", typeRef: 365 }, { name: "href", required: false, source: "global", typeRef: 359 }, { name: "id", required: false, source: "global", description: "Static id used as base to generate `aria-` attributes, by default generates random id", typeRef: 359 }, { name: "ideographic", required: false, source: "global", typeRef: 365 }, { name: "imageRendering", required: false, source: "global", typeRef: 365 }, { name: "in", required: false, source: "global", typeRef: 359 }, { name: "in2", required: false, source: "global", typeRef: 365 }, { name: "inert", required: false, source: "global", literalValues: [false, true], typeRef: 341 }, { name: "inlist", required: false, source: "global", typeRef: 370 }, { name: "inputMode", required: false, source: "global", literalValues: ["decimal", "email", "none", "numeric", "search", "tel", "text", "url"], description: "Hints at the type of data that might be entered by the user while editing the element or its contents", typeRef: 68 }, { name: "intercept", required: false, source: "global", typeRef: 365 }, { name: "is", required: false, source: "global", description: "Specify that a standard HTML element should behave like a defined custom built-in element", typeRef: 359 }, { name: "itemID", required: false, source: "global", typeRef: 359 }, { name: "itemProp", required: false, source: "global", typeRef: 359 }, { name: "itemScope", required: false, source: "global", literalValues: [false, true], typeRef: 341 }, { name: "itemType", required: false, source: "global", typeRef: 359 }, { name: "k", required: false, source: "global", typeRef: 365 }, { name: "k1", required: false, source: "global", typeRef: 365 }, { name: "k2", required: false, source: "global", typeRef: 365 }, { name: "k3", required: false, source: "global", typeRef: 365 }, { name: "k4", required: false, source: "global", typeRef: 365 }, { name: "kernelMatrix", required: false, source: "global", typeRef: 365 }, { name: "kernelUnitLength", required: false, source: "global", typeRef: 365 }, { name: "kerning", required: false, source: "global", typeRef: 365 }, { name: "key", required: false, source: "global", description: "Stable identity used by React when rendering collections.", typeRef: 173 }, { name: "keyPoints", required: false, source: "global", typeRef: 365 }, { name: "keySplines", required: false, source: "global", typeRef: 365 }, { name: "keyTimes", required: false, source: "global", typeRef: 365 }, { name: "lang", required: false, source: "global", typeRef: 359 }, { name: "lengthAdjust", required: false, source: "global", typeRef: 365 }, { name: "letterSpacing", required: false, source: "global", typeRef: 365 }, { name: "lh", required: false, source: "global", literalValues: ["h1", "h2", "h3", "h4", "h5", "h6", "lg", "md", "sm", "xl", "xs"], description: "LineHeight, theme key: lineHeights", typeRef: 311 }, { name: "lightHidden", required: false, source: "global", literalValues: [false, true], description: "Determines whether component should be hidden in light color scheme with `display: none`", typeRef: 341 }, { name: "lightingColor", required: false, source: "global", typeRef: 365 }, { name: "limitingConeAngle", required: false, source: "global", typeRef: 365 }, { name: "list", required: false, source: "global", typeRef: 359 }, { name: "local", required: false, source: "global", typeRef: 365 }, { name: "lts", required: false, source: "global", description: "LetterSpacing", typeRef: 300 }, { name: "m", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Margin, theme key: theme.spacing", typeRef: 284 }, { name: "mah", required: false, source: "global", description: "MaxHeight, theme key: theme.spacing", typeRef: 301 }, { name: "markerEnd", required: false, source: "global", typeRef: 359 }, { name: "markerHeight", required: false, source: "global", typeRef: 365 }, { name: "markerMid", required: false, source: "global", typeRef: 359 }, { name: "markerStart", required: false, source: "global", typeRef: 359 }, { name: "markerUnits", required: false, source: "global", typeRef: 365 }, { name: "markerWidth", required: false, source: "global", typeRef: 365 }, { name: "mask", required: false, source: "global", typeRef: 359 }, { name: "maskContentUnits", required: false, source: "global", typeRef: 365 }, { name: "maskUnits", required: false, source: "global", typeRef: 365 }, { name: "mathematical", required: false, source: "global", typeRef: 365 }, { name: "maw", required: false, source: "global", description: "MaxWidth, theme key: theme.spacing", typeRef: 302 }, { name: "max", required: false, source: "global", typeRef: 365 }, { name: "maxLength", required: false, source: "global", typeRef: 353 }, { name: "mb", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "MarginBottom, theme key: theme.spacing", typeRef: 284 }, { name: "me", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "MarginInlineEnd, theme key: theme.spacing", typeRef: 284 }, { name: "media", required: false, source: "global", typeRef: 359 }, { name: "method", required: false, source: "global", typeRef: 359 }, { name: "mie", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "MarginInlineEnd, theme key: theme.spacing", typeRef: 284 }, { name: "mih", required: false, source: "global", description: "MinHeight, theme key: theme.spacing", typeRef: 303 }, { name: "min", required: false, source: "global", typeRef: 365 }, { name: "minLength", required: false, source: "global", typeRef: 353 }, { name: "mis", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "MarginInlineStart, theme key: theme.spacing", typeRef: 284 }, { name: "miw", required: false, source: "global", description: "MinWidth, theme key: theme.spacing", typeRef: 304 }, { name: "ml", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "MarginLeft, theme key: theme.spacing", typeRef: 284 }, { name: "mod", required: false, source: "global", description: "Element modifiers transformed into `data-` attributes, for example, `{ 'data-size': 'xl' }`, falsy values are removed", typeRef: 143 }, { name: "mode", required: false, source: "global", typeRef: 365 }, { name: "mr", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "MarginRight, theme key: theme.spacing", typeRef: 284 }, { name: "ms", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "MarginInlineStart, theme key: theme.spacing", typeRef: 284 }, { name: "mt", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "MarginTop, theme key: theme.spacing", typeRef: 284 }, { name: "multiple", required: false, source: "global", literalValues: [false, true], typeRef: 341 }, { name: "mx", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "MarginInline, theme key: theme.spacing", typeRef: 284 }, { name: "my", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "MarginBlock, theme key: theme.spacing", typeRef: 284 }, { name: "name", required: false, source: "global", typeRef: 359 }, { name: "nonce", required: false, source: "global", typeRef: 359 }, { name: "numOctaves", required: false, source: "global", typeRef: 365 }, { name: "offset", required: false, source: "global", typeRef: 365 }, { name: "opacity", required: false, source: "global", literalValues: ["-moz-initial", "inherit", "initial", "revert", "revert-layer", "unset"], typeRef: 305 }, { name: "operator", required: false, source: "global", typeRef: 365 }, { name: "order", required: false, source: "global", typeRef: 365 }, { name: "orient", required: false, source: "global", typeRef: 365 }, { name: "orientation", required: false, source: "global", typeRef: 365 }, { name: "origin", required: false, source: "global", typeRef: 365 }, { name: "overflow", required: false, source: "global", typeRef: 365 }, { name: "overlinePosition", required: false, source: "global", typeRef: 365 }, { name: "overlineThickness", required: false, source: "global", typeRef: 365 }, { name: "p", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Padding, theme key: theme.spacing", typeRef: 284 }, { name: "paintOrder", required: false, source: "global", typeRef: 365 }, { name: "panose1", required: false, source: "global", typeRef: 365 }, { name: "part", required: false, source: "global", typeRef: 359 }, { name: "path", required: false, source: "global", typeRef: 359 }, { name: "pathLength", required: false, source: "global", typeRef: 365 }, { name: "pattern", required: false, source: "global", typeRef: 359 }, { name: "patternContentUnits", required: false, source: "global", typeRef: 359 }, { name: "patternTransform", required: false, source: "global", typeRef: 365 }, { name: "patternUnits", required: false, source: "global", typeRef: 359 }, { name: "pb", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "PaddingBottom, theme key: theme.spacing", typeRef: 284 }, { name: "pe", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "PaddingInlineEnd, theme key: theme.spacing", typeRef: 284 }, { name: "pie", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "PaddingInlineEnd, theme key: theme.spacing", typeRef: 284 }, { name: "pis", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "PaddingInlineStart, theme key: theme.spacing", typeRef: 284 }, { name: "pl", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "PaddingLeft, theme key: theme.spacing", typeRef: 284 }, { name: "placeholder", required: false, source: "global", typeRef: 359 }, { name: "pointerEvents", required: false, source: "global", typeRef: 365 }, { name: "points", required: false, source: "global", typeRef: 359 }, { name: "pointsAtX", required: false, source: "global", typeRef: 365 }, { name: "pointsAtY", required: false, source: "global", typeRef: 365 }, { name: "pointsAtZ", required: false, source: "global", typeRef: 365 }, { name: "pr", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "PaddingRight, theme key: theme.spacing", typeRef: 284 }, { name: "prefix", required: false, source: "global", typeRef: 359 }, { name: "preserveAlpha", required: false, source: "global", literalValues: [false, "false", true, "true"], typeRef: 347 }, { name: "preserveAspectRatio", required: false, source: "global", typeRef: 359 }, { name: "primitiveUnits", required: false, source: "global", typeRef: 365 }, { name: "property", required: false, source: "global", typeRef: 359 }, { name: "ps", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "PaddingInlineStart, theme key: theme.spacing", typeRef: 284 }, { name: "pt", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "PaddingTop, theme key: theme.spacing", typeRef: 284 }, { name: "px", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "PaddingInline, theme key: theme.spacing", typeRef: 284 }, { name: "py", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "PaddingBlock, theme key: theme.spacing", typeRef: 284 }, { name: "r", required: false, source: "global", typeRef: 365 }, { name: "radioGroup", required: false, source: "global", typeRef: 359 }, { name: "radius", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem", typeRef: 180 }, { name: "readOnly", required: false, source: "global", literalValues: [false, true], typeRef: 341 }, { name: "rel", required: false, source: "global", typeRef: 359 }, { name: "renderingIntent", required: false, source: "global", typeRef: 365 }, { name: "repeatCount", required: false, source: "global", typeRef: 365 }, { name: "repeatDur", required: false, source: "global", typeRef: 365 }, { name: "required", required: false, source: "global", literalValues: [false, true], typeRef: 341 }, { name: "requiredExtensions", required: false, source: "global", typeRef: 365 }, { name: "requiredFeatures", required: false, source: "global", typeRef: 365 }, { name: "resource", required: false, source: "global", typeRef: 359 }, { name: "restart", required: false, source: "global", typeRef: 365 }, { name: "result", required: false, source: "global", typeRef: 359 }, { name: "results", required: false, source: "global", typeRef: 353 }, { name: "rev", required: false, source: "global", typeRef: 359 }, { name: "role", required: false, source: "global", typeRef: 140 }, { name: "rotate", required: false, source: "global", typeRef: 365 }, { name: "rowSpan", required: false, source: "global", typeRef: 353 }, { name: "rows", required: false, source: "global", typeRef: 353 }, { name: "rules", required: false, source: "global", literalValues: ["all", "columns", "groups", "none", "rows"], typeRef: 54 }, { name: "rx", required: false, source: "global", typeRef: 365 }, { name: "ry", required: false, source: "global", typeRef: 365 }, { name: "scale", required: false, source: "global", typeRef: 365 }, { name: "scope", required: false, source: "global", typeRef: 359 }, { name: "security", required: false, source: "global", typeRef: 359 }, { name: "seed", required: false, source: "global", typeRef: 365 }, { name: "shadow", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Key of `theme.shadows` or any other valid CSS `box-shadow` value", typeRef: 181 }, { name: "shapeRendering", required: false, source: "global", typeRef: 365 }, { name: "size", required: false, source: "global", literalValues: ["compact-lg", "compact-md", "compact-sm", "compact-xl", "compact-xs", "input-lg", "input-md", "input-sm", "input-xl", "input-xs", "lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "slope", required: false, source: "global", typeRef: 365 }, { name: "slot", required: false, source: "global", typeRef: 359 }, { name: "spacing", required: false, source: "global", typeRef: 365 }, { name: "specularConstant", required: false, source: "global", typeRef: 365 }, { name: "specularExponent", required: false, source: "global", typeRef: 365 }, { name: "speed", required: false, source: "global", typeRef: 365 }, { name: "spellCheck", required: false, source: "global", literalValues: [false, "false", true, "true"], typeRef: 347 }, { name: "spreadMethod", required: false, source: "global", typeRef: 359 }, { name: "src", required: false, source: "global", typeRef: 359 }, { name: "startOffset", required: false, source: "global", typeRef: 365 }, { name: "stdDeviation", required: false, source: "global", typeRef: 365 }, { name: "stemh", required: false, source: "global", typeRef: 365 }, { name: "stemv", required: false, source: "global", typeRef: 365 }, { name: "step", required: false, source: "global", typeRef: 365 }, { name: "stitchTiles", required: false, source: "global", typeRef: 365 }, { name: "stopColor", required: false, source: "global", typeRef: 359 }, { name: "stopOpacity", required: false, source: "global", typeRef: 365 }, { name: "strikethroughPosition", required: false, source: "global", typeRef: 365 }, { name: "strikethroughThickness", required: false, source: "global", typeRef: 365 }, { name: "string", required: false, source: "global", typeRef: 365 }, { name: "stroke", required: false, source: "global", typeRef: 359 }, { name: "strokeDasharray", required: false, source: "global", typeRef: 365 }, { name: "strokeDashoffset", required: false, source: "global", typeRef: 365 }, { name: "strokeLinecap", required: false, source: "global", literalValues: ["butt", "inherit", "round", "square"], typeRef: 43 }, { name: "strokeLinejoin", required: false, source: "global", literalValues: ["bevel", "inherit", "miter", "round"], typeRef: 44 }, { name: "strokeMiterlimit", required: false, source: "global", typeRef: 365 }, { name: "strokeOpacity", required: false, source: "global", typeRef: 365 }, { name: "strokeWidth", required: false, source: "global", typeRef: 365 }, { name: "style", required: false, source: "global", description: "Style to apply to the root element, used for virtualizer positioning", typeRef: 146 }, { name: "styles", required: false, source: "global", typeRef: 220 }, { name: "summary", required: false, source: "global", typeRef: 359 }, { name: "surfaceScale", required: false, source: "global", typeRef: 365 }, { name: "systemLanguage", required: false, source: "global", typeRef: 365 }, { name: "ta", required: false, source: "global", literalValues: ["-khtml-center", "-khtml-left", "-khtml-right", "-moz-center", "-moz-initial", "-moz-left", "-moz-right", "-webkit-center", "-webkit-left", "-webkit-match-parent", "-webkit-right", "center", "end", "inherit", "initial", "justify", "left", "match-parent", "revert", "revert-layer", "right", "start", "unset"], description: "TextAlign", typeRef: 306 }, { name: "tabIndex", required: false, source: "global", description: "Tab index for the node", typeRef: 353 }, { name: "tableValues", required: false, source: "global", typeRef: 365 }, { name: "target", required: false, source: "global", typeRef: 359 }, { name: "targetX", required: false, source: "global", typeRef: 365 }, { name: "targetY", required: false, source: "global", typeRef: 365 }, { name: "td", required: false, source: "global", description: "TextDecoration", typeRef: 307 }, { name: "textAnchor", required: false, source: "global", literalValues: ["end", "inherit", "middle", "start"], typeRef: 41 }, { name: "textDecoration", required: false, source: "global", typeRef: 365 }, { name: "textLength", required: false, source: "global", typeRef: 365 }, { name: "textRendering", required: false, source: "global", typeRef: 365 }, { name: "title", required: false, source: "global", description: "Item title, displayed next to the bullet", typeRef: 359 }, { name: "to", required: false, source: "global", typeRef: 365 }, { name: "transform", required: false, source: "global", typeRef: 359 }, { name: "translate", required: false, source: "global", literalValues: ["no", "yes"], typeRef: 83 }, { name: "tt", required: false, source: "global", literalValues: ["-moz-initial", "capitalize", "full-size-kana", "full-width", "inherit", "initial", "lowercase", "math-auto", "none", "revert", "revert-layer", "unset", "uppercase"], description: "TextTransform", typeRef: 308 }, { name: "type", required: false, source: "global", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 20 }, { name: "typeof", required: false, source: "global", typeRef: 359 }, { name: "u1", required: false, source: "global", typeRef: 365 }, { name: "u2", required: false, source: "global", typeRef: 365 }, { name: "underlinePosition", required: false, source: "global", typeRef: 365 }, { name: "underlineThickness", required: false, source: "global", typeRef: 365 }, { name: "unicode", required: false, source: "global", typeRef: 365 }, { name: "unicodeBidi", required: false, source: "global", typeRef: 365 }, { name: "unicodeRange", required: false, source: "global", typeRef: 365 }, { name: "unitsPerEm", required: false, source: "global", typeRef: 365 }, { name: "unselectable", required: false, source: "global", literalValues: ["off", "on"], typeRef: 64 }, { name: "vAlphabetic", required: false, source: "global", typeRef: 365 }, { name: "vHanging", required: false, source: "global", typeRef: 365 }, { name: "vIdeographic", required: false, source: "global", typeRef: 365 }, { name: "vMathematical", required: false, source: "global", typeRef: 365 }, { name: "valign", required: false, source: "global", literalValues: ["baseline", "bottom", "middle", "top"], typeRef: 17 }, { name: "value", required: false, source: "global", typeRef: 366 }, { name: "values", required: false, source: "global", typeRef: 359 }, { name: "variant", required: false, source: "global", literalValues: ["contained", "contrast", "dashed", "default", "dot", "dotted", "filled", "gradient", "light", "outline", "pills", "separated", "solid", "subtle", "text", "transparent", "unstyled", "vertical", "white"], description: "Variant passed from parent component, sets `data-variant`", typeRef: 359 }, { name: "vectorEffect", required: false, source: "global", typeRef: 365 }, { name: "version", required: false, source: "global", typeRef: 359 }, { name: "vertAdvY", required: false, source: "global", typeRef: 365 }, { name: "vertOriginX", required: false, source: "global", typeRef: 365 }, { name: "vertOriginY", required: false, source: "global", typeRef: 365 }, { name: "viewBox", required: false, source: "global", typeRef: 359 }, { name: "viewTarget", required: false, source: "global", typeRef: 365 }, { name: "visibility", required: false, source: "global", typeRef: 365 }, { name: "visibleFrom", required: false, source: "global", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Breakpoint below which the component is hidden with `display: none`", typeRef: 177 }, { name: "vocab", required: false, source: "global", typeRef: 359 }, { name: "w", required: false, source: "global", description: "Width, theme key: theme.spacing", typeRef: 309 }, { name: "width", required: false, source: "global", typeRef: 365 }, { name: "widths", required: false, source: "global", typeRef: 365 }, { name: "withBorder", required: false, source: "global", literalValues: [false, true], description: "Adds border to the root element", typeRef: 341 }, { name: "wordSpacing", required: false, source: "global", typeRef: 365 }, { name: "wrap", required: false, source: "global", typeRef: 359 }, { name: "writingMode", required: false, source: "global", typeRef: 365 }, { name: "x", required: false, source: "global", typeRef: 365 }, { name: "x1", required: false, source: "global", typeRef: 365 }, { name: "x2", required: false, source: "global", typeRef: 365 }, { name: "xChannelSelector", required: false, source: "global", typeRef: 359 }, { name: "xHeight", required: false, source: "global", typeRef: 365 }, { name: "xlinkActuate", required: false, source: "global", typeRef: 359 }, { name: "xlinkArcrole", required: false, source: "global", typeRef: 359 }, { name: "xlinkHref", required: false, source: "global", typeRef: 359 }, { name: "xlinkRole", required: false, source: "global", typeRef: 359 }, { name: "xlinkShow", required: false, source: "global", typeRef: 359 }, { name: "xlinkTitle", required: false, source: "global", typeRef: 359 }, { name: "xlinkType", required: false, source: "global", typeRef: 359 }, { name: "xmlBase", required: false, source: "global", typeRef: 359 }, { name: "xmlLang", required: false, source: "global", typeRef: 359 }, { name: "xmlSpace", required: false, source: "global", typeRef: 359 }, { name: "xmlns", required: false, source: "global", typeRef: 359 }, { name: "xmlnsXlink", required: false, source: "global", typeRef: 359 }, { name: "y", required: false, source: "global", typeRef: 365 }, { name: "y1", required: false, source: "global", typeRef: 365 }, { name: "y2", required: false, source: "global", typeRef: 365 }, { name: "yChannelSelector", required: false, source: "global", typeRef: 359 }, { name: "z", required: false, source: "global", typeRef: 365 }, { name: "zoomAndPan", required: false, source: "global", typeRef: 359 }], blockedCapabilities: [{ kind: "prop", name: "__proto__", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "apply", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "arguments", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "autoFocus", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "backdropFilter", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "behavior", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "bottom", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "call", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "callee", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "caller", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "children", reason: "Children must be expressed as interpreted JSX, not passed as a raw prop." }, { kind: "prop", name: "className", reason: "Unscoped class injection can escape widget CSS isolation." }, { kind: "prop", name: "classNames", reason: "Unscoped class injection can escape widget CSS isolation." }, { kind: "prop", name: "classes", reason: "Unscoped class injection can escape widget CSS isolation." }, { kind: "prop", name: "clipPath", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "component", reason: "Polymorphic roots can replace the Homarr-owned element boundary." }, { kind: "prop", name: "constructor", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "content", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "contentEditable", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "dangerouslySetInnerHTML", reason: "Raw HTML injection is not available to authored widgets." }, { kind: "prop", name: "filter", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "form", reason: "External form submission is outside the named-request security boundary." }, { kind: "prop", name: "formAction", reason: "External form submission is outside the named-request security boundary." }, { kind: "prop", name: "formEncType", reason: "External form submission is outside the named-request security boundary." }, { kind: "prop", name: "formMethod", reason: "External form submission is outside the named-request security boundary." }, { kind: "prop", name: "formNoValidate", reason: "External form submission is outside the named-request security boundary." }, { kind: "prop", name: "formTarget", reason: "External form submission is outside the named-request security boundary." }, { kind: "prop", name: "innerRef", reason: "Refs expose underlying React components and DOM nodes." }, { kind: "prop", name: "inset", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "left", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "mask", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "ping", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "pointerEvents", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "popover", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "popoverTarget", reason: "Portal targeting can render or interact outside the widget root." }, { kind: "prop", name: "popoverTargetAction", reason: "Portal targeting can render or interact outside the widget root." }, { kind: "prop", name: "portalProps", reason: "Portal targeting can render or interact outside the widget root." }, { kind: "prop", name: "pos", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "position", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "prototype", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "ref", reason: "Refs expose underlying React components and DOM nodes." }, { kind: "prop", name: "renderRoot", reason: "Polymorphic roots can replace the Homarr-owned element boundary." }, { kind: "prop", name: "right", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "srcDoc", reason: "Raw HTML injection is not available to authored widgets." }, { kind: "prop", name: "suppressContentEditableWarning", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "suppressHydrationWarning", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "top", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop", name: "withinPortal", reason: "Portal targeting can render or interact outside the widget root." }, { kind: "prop", name: "zIndex", reason: "This capability is blocked by the Custom JSX safety boundary." }, { kind: "prop-pattern", name: "on*", reason: "Authored event callbacks can execute code outside the declarative runtime." }, { kind: "prop-pattern", name: "*Ref", reason: "Refs expose underlying React components and DOM nodes." }, { kind: "prop-pattern", name: "__*", reason: "Private and prototype-related properties are outside the supported authoring surface." }], components: [{ name: "Accordion", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/accordion/", props: [{ name: "attributes", required: false, source: "component", typeRef: 421 }, { name: "chevron", required: false, source: "component", description: "Custom chevron icon", typeRef: 263 }, { name: "chevronIconSize", required: false, source: "component", description: "Size of the default chevron icon. Ignored when `chevron` prop is set. Use `chevronSize` instead when using custom chevron.", typeRef: 365 }, { name: "chevronPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the chevron relative to the item label", typeRef: 47 }, { name: "chevronSize", required: false, source: "component", description: "Size of the chevron icon container", typeRef: 365 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 138 }, { name: "disableChevronRotation", required: false, source: "component", literalValues: [false, true], description: "If set, chevron rotation is disabled", typeRef: 341 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set to `false`, panels are unmounted when collapsed. By default, panels stay mounted when collapsed.", typeRef: 341 }, { name: "loop", required: false, source: "component", literalValues: [false, true], description: "If set, arrow keys loop through items (first to last and last to first)", typeRef: 341 }, { name: "multiple", required: false, source: "component", description: "If set, multiple items can be opened at the same time", typeRef: 186 }, { name: "order", required: false, source: "component", literalValues: [2, 3, 4, 5, 6], description: "Sets heading level (h2-h6) for `Accordion.Control` elements. Wraps each control in the corresponding heading tag, recommended to meet WAI-ARIA accessibility requirements. Has no visual effect.", typeRef: 136 }, { name: "transitionDuration", required: false, source: "component", description: "Transition duration in ms", typeRef: 353 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 138 }, { name: "variant", required: false, source: "component", literalValues: ["contained", "default", "filled", "separated"], typeRef: 112 }], blockedProps: [], subcomponents: ["Accordion.Chevron", "Accordion.Control", "Accordion.Item", "Accordion.Panel"], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Accordion.Chevron", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/accordion/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "display", required: false, source: "component", typeRef: 365 }, { name: "opacity", required: false, source: "component", typeRef: 365 }, { name: "radius", required: false, source: "component", typeRef: 365 }, { name: "size", required: false, source: "component", description: "Controls `width` and `height` of the icon, `16` by default", typeRef: 365 }, { name: "type", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Accordion.Control", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/accordion/", props: [{ name: "chevron", required: false, source: "component", description: "Custom chevron icon", typeRef: 263 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "icon", required: false, source: "component", description: "Icon displayed next to the label", typeRef: 263 }, { name: "styles", required: false, source: "component", typeRef: 227 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Accordion.Item", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/accordion/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 217 }, { name: "value", required: true, source: "component", description: "Value that is used to manage the accordion state", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Accordion.Panel", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/accordion/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set, overrides the Accordion-level `keepMounted` value. When undefined (default), uses Accordion's `keepMounted` setting.", typeRef: 341 }, { name: "styles", required: false, source: "component", typeRef: 228 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "AccordionChevron", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/accordion-chevron/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "display", required: false, source: "component", typeRef: 365 }, { name: "opacity", required: false, source: "component", typeRef: 365 }, { name: "radius", required: false, source: "component", typeRef: 365 }, { name: "size", required: false, source: "component", description: "Controls `width` and `height` of the icon, `16` by default", typeRef: 365 }, { name: "type", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "AccordionControl", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/accordion-control/", props: [{ name: "chevron", required: false, source: "component", description: "Custom chevron icon", typeRef: 263 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "icon", required: false, source: "component", description: "Icon displayed next to the label", typeRef: 263 }, { name: "styles", required: false, source: "component", typeRef: 227 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "AccordionItem", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/accordion-item/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 217 }, { name: "value", required: true, source: "component", description: "Value that is used to manage the accordion state", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "AccordionPanel", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/accordion-panel/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set, overrides the Accordion-level `keepMounted` value. When undefined (default), uses Accordion's `keepMounted` setting.", typeRef: 341 }, { name: "styles", required: false, source: "component", typeRef: 228 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "ActionButton", package: "@homarr/widgets", category: "network", safety: "wrapped", description: "Runs a named user-triggered action.", documentationUrl: "https://homarr.dev/docs/management/custom-widgets/", props: [{ name: "color", source: "component", required: false, typeRef: 359 }, { name: "confirmMessage", source: "component", required: false, typeRef: 359 }, { name: "disabled", source: "component", required: false, typeRef: 338 }, { name: "errorMessage", source: "component", required: false, typeRef: 359 }, { name: "fullWidth", source: "component", required: false, typeRef: 338 }, { name: "icon", source: "component", required: false, typeRef: 359 }, { name: "label", source: "component", required: false, typeRef: 359 }, { name: "params", source: "component", required: false, typeRef: 270 }, { name: "requestId", source: "component", required: false, description: "Identifier of the named Custom Widget action.", typeRef: 359 }, { name: "size", source: "component", required: false, typeRef: 359 }, { name: "successMessage", source: "component", required: false, typeRef: 359 }, { name: "variant", source: "component", required: false, typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Action labels must describe their effect; destructive actions require confirmation."] }, { name: "ActionIcon", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/action-icon/", props: [{ name: "attributes", required: false, source: "component", typeRef: 459 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color.", typeRef: 162 }, { name: "data-disabled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "gradient", required: false, source: "component", description: 'Gradient values used with `variant="gradient"`.', typeRef: 179 }, { name: "loaderProps", required: false, source: "component", description: "Props passed down to the `Loader` component. Ignored when `loading` prop is not set.", typeRef: 176 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "If set, `Loader` component is displayed instead of the `children`", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["input-lg", "input-md", "input-sm", "input-xl", "input-xs", "lg", "md", "sm", "xl", "xs"], description: "Controls width and height of the button. Numbers are converted to rem.", typeRef: 356 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "gradient", "light", "outline", "subtle", "transparent", "white"], typeRef: 113 }], blockedProps: [], subcomponents: ["ActionIcon.Group", "ActionIcon.GroupSection"], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "ActionIcon.Group", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/action-icon/", props: [{ name: "attributes", required: false, source: "component", typeRef: 400 }, { name: "borderWidth", required: false, source: "component", description: "`border-width` of the child components.", typeRef: 365 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Group orientation", typeRef: 36 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "ActionIcon.GroupSection", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/action-icon/", props: [{ name: "attributes", required: false, source: "component", typeRef: 401 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "gradient", required: false, source: "component", description: 'Gradient values used with `variant="gradient"`.', typeRef: 179 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls section `height`, `font-size` and horizontal `padding`", typeRef: 355 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "gradient", "light", "outline", "subtle", "transparent", "white"], typeRef: 113 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "ActionIconGroup", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/action-icon-group/", props: [{ name: "attributes", required: false, source: "component", typeRef: 400 }, { name: "borderWidth", required: false, source: "component", description: "`border-width` of the child components.", typeRef: 365 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Group orientation", typeRef: 36 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "ActionIconGroupSection", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/action-icon-group-section/", props: [{ name: "attributes", required: false, source: "component", typeRef: 401 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "gradient", required: false, source: "component", description: 'Gradient values used with `variant="gradient"`.', typeRef: 179 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls section `height`, `font-size` and horizontal `padding`", typeRef: 355 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "gradient", "light", "outline", "subtle", "transparent", "white"], typeRef: 113 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Affix", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/affix/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes the widget layout boundary" }, { name: "Alert", package: "@mantine/core", category: "feedback", safety: "wrapped", documentationUrl: "https://mantine.dev/core/alert/", props: [{ name: "attributes", required: false, source: "component", typeRef: 378 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "closeButtonLabel", required: false, source: "component", description: "Close button `aria-label`", typeRef: 359 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "icon", required: false, source: "component", description: "Icon displayed next to the title", typeRef: 263 }, { name: "title", required: false, source: "component", description: "Alert title", typeRef: 263 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "light", "outline", "transparent", "white"], typeRef: 114 }, { name: "withCloseButton", required: false, source: "component", literalValues: [false, true], description: "Determines whether close button should be displayed", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Do not rely on color alone to communicate status."] }, { name: "AlphaSlider", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/alpha-slider/", props: [{ name: "attributes", required: false, source: "component", typeRef: 474 }, { name: "color", required: true, source: "component", typeRef: 359 }, { name: "focusable", required: false, source: "component", literalValues: [false, true], description: "If set, slider thumb can be focused", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Slider size", typeRef: 182 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: true, source: "component", description: "Controlled component value", typeRef: 353 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Anchor", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/anchor/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "gradient", required: false, source: "component", description: "Gradient configuration, ignored when `variant` is not `gradient`", typeRef: 179 }, { name: "inherit", required: false, source: "component", literalValues: [false, true], description: "Determines whether font properties should be inherited from the parent", typeRef: 341 }, { name: "inline", required: false, source: "component", literalValues: [false, true], description: "Sets `line-height` to 1 for centering", typeRef: 341 }, { name: "lineClamp", required: false, source: "component", description: "Number of lines after which Text will be truncated", typeRef: 353 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls `font-size` and `line-height`", typeRef: 82 }, { name: "textWrap", required: false, source: "component", literalValues: ["balance", "nowrap", "pretty", "stable", "wrap"], description: "Controls `text-wrap` CSS property", typeRef: 79 }, { name: "truncate", required: false, source: "component", literalValues: ["end", false, "start", true], description: "Side on which Text must be truncated, if `true`, text is truncated from the start", typeRef: 344 }, { name: "underline", required: false, source: "component", literalValues: ["always", "hover", "never", "not-hover"], description: "Defines when `text-decoration: underline` styles are applied.", typeRef: 10 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["gradient", "text"], typeRef: 131 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "AngleSlider", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/angle-slider/", props: [{ name: "attributes", required: false, source: "component", typeRef: 423 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 353 }, { name: "hiddenInputProps", required: false, source: "component", description: "Props passed down to the hidden input", typeRef: 261 }, { name: "marks", required: false, source: "component", description: "Array of marks displayed on the slider", typeRef: 477 }, { name: "restrictToMarks", required: false, source: "component", literalValues: [false, true], description: "If set, the selection is allowed only from the given marks array", typeRef: 341 }, { name: "size", required: false, source: "component", description: "Slider size in px", typeRef: 353 }, { name: "step", required: false, source: "component", description: "Step between values", typeRef: 353 }, { name: "thumbSize", required: false, source: "component", description: "Size of the thumb in px. Calculated based on the `size` value by default.", typeRef: 353 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 353 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withLabel", required: false, source: "component", literalValues: [false, true], description: "If set, the label is displayed inside the slider", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "AppShell", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/app-shell/", props: [], blockedProps: [], subcomponents: ["AppShell.Aside", "AppShell.Footer", "AppShell.Header", "AppShell.Main", "AppShell.Navbar", "AppShell.Section"], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "AppShell.Aside", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/app-shell/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "AppShell.Footer", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/app-shell/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "AppShell.Header", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/app-shell/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "AppShell.Main", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/app-shell/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "AppShell.Navbar", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/app-shell/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "AppShell.Section", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/app-shell/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "AppShellAside", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/app-shell-aside/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "AppShellFooter", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/app-shell-footer/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "AppShellHeader", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/app-shell-header/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "AppShellMain", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/app-shell-main/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "AppShellNavbar", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/app-shell-navbar/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "AppShellSection", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/app-shell-section/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "AreaChart", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/area-chart/", props: [{ name: "activeDotProps", required: false, source: "component", description: "Props passed down to all active dots. Ignored if `withDots={false}` is set.", typeRef: 178 }, { name: "areaChartProps", required: false, source: "component", description: "Props passed down to recharts `AreaChart` component", typeRef: 91 }, { name: "attributes", required: false, source: "component", typeRef: 371 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "connectNulls", required: false, source: "component", literalValues: [false, true], description: "If set, points with `null` values are connected", typeRef: 341 }, { name: "curveType", required: false, source: "component", literalValues: ["bump", "linear", "monotone", "natural", "step", "stepAfter", "stepBefore"], description: "Type of the curve", typeRef: 69 }, { name: "data", required: true, source: "component", description: "Data used to display chart", typeRef: 148 }, { name: "dataKey", required: true, source: "component", description: "Key of the `data` object for x-axis values", typeRef: 359 }, { name: "dotProps", required: false, source: "component", description: "Props passed down to all dots. Ignored if `withDots={false}` is set.", typeRef: 178 }, { name: "fillOpacity", required: false, source: "component", description: "Controls fill opacity of all areas", typeRef: 353 }, { name: "gridAxis", required: false, source: "component", literalValues: ["none", "x", "xy", "y"], description: "Specifies which lines should be displayed in the grid, `'x'` by default", typeRef: 61 }, { name: "gridColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color of the grid and cursor lines, by default depends on color scheme", typeRef: 162 }, { name: "gridProps", required: false, source: "component", description: "Props passed down to the `CartesianGrid` component", typeRef: 189 }, { name: "legendProps", required: false, source: "component", description: "Props passed down to the `Legend` component", typeRef: 190 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Chart orientation, `'horizontal'` by default", typeRef: 36 }, { name: "referenceLines", required: false, source: "component", description: "Reference lines that should be displayed on the chart", typeRef: 149 }, { name: "rightYAxisLabel", required: false, source: "component", description: "A label to display next to the right y-axis", typeRef: 359 }, { name: "rightYAxisProps", required: false, source: "component", description: "Props passed down to the `YAxis` recharts component rendered on the right side", typeRef: 199 }, { name: "series", required: true, source: "component", description: "An array of objects with `name` and `color` keys. Determines which data should be consumed from the `data` array.", typeRef: 139 }, { name: "splitColors", required: false, source: "component", description: 'A tuple of colors used when `type="split"` is set, ignored in all other cases. A tuple may include theme colors reference or any valid CSS colors', typeRef: 333 }, { name: "splitOffset", required: false, source: "component", description: "Offset for the split gradient. By default, value is inferred from `data` and `series` if possible. Must be generated from the data array with `getSplitOffset` function.", typeRef: 353 }, { name: "strokeWidth", required: false, source: "component", description: "Stroke width for the chart areas", typeRef: 353 }, { name: "textColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color of the text displayed inside the chart, `'dimmed'` by default", typeRef: 162 }, { name: "tickLine", required: false, source: "component", literalValues: ["none", "x", "xy", "y"], description: "Specifies which axis should have tick line, `'y'` by default", typeRef: 61 }, { name: "tooltipAnimationDuration", required: false, source: "component", description: "Tooltip position animation duration in ms, `0` by default", typeRef: 353 }, { name: "tooltipProps", required: false, source: "component", description: "Props passed down to the `Tooltip` component", typeRef: 197 }, { name: "type", required: false, source: "component", literalValues: ["default", "percent", "split", "stacked"], description: "Controls how chart areas are positioned relative to each other", typeRef: 29 }, { name: "unit", required: false, source: "component", description: "Unit displayed next to each tick in y-axis", typeRef: 359 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withDots", required: false, source: "component", literalValues: [false, true], description: "Determines whether dots should be displayed", typeRef: 341 }, { name: "withGradient", required: false, source: "component", literalValues: [false, true], description: "Determines whether the chart area should be represented with a gradient instead of the solid color", typeRef: 341 }, { name: "withLegend", required: false, source: "component", literalValues: [false, true], description: "Determines whether chart legend should be displayed, `false` by default", typeRef: 341 }, { name: "withPointLabels", required: false, source: "component", literalValues: [false, true], description: "If set, each point has an associated label", typeRef: 341 }, { name: "withRightYAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether additional y-axis should be displayed on the right side of the chart, `false` by default", typeRef: 341 }, { name: "withTooltip", required: false, source: "component", literalValues: [false, true], description: "Determines whether chart tooltip should be displayed, `true` by default", typeRef: 341 }, { name: "withXAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether x-axis should be displayed, `true` by default", typeRef: 341 }, { name: "withYAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether y-axis should be displayed, `true` by default", typeRef: 341 }, { name: "xAxisLabel", required: false, source: "component", description: "A label to display below the x-axis", typeRef: 359 }, { name: "xAxisProps", required: false, source: "component", description: "Props passed down to the `XAxis` recharts component", typeRef: 198 }, { name: "yAxisLabel", required: false, source: "component", description: "A label to display next to the y-axis", typeRef: 359 }, { name: "yAxisProps", required: false, source: "component", description: "Props passed down to the `YAxis` recharts component", typeRef: 199 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "AreaGradient", package: "@mantine/charts", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/charts/area-gradient/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level chart implementation helper" }, { name: "AspectRatio", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/aspect-ratio/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "ratio", required: false, source: "component", description: "Aspect ratio, for example, `16 / 9`, `4 / 3`, `1920 / 1080`", typeRef: 353 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "Autocomplete", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/autocomplete/", props: [{ name: "attributes", required: false, source: "component", typeRef: 405 }, { name: "autoSelectOnBlur", required: false, source: "component", literalValues: [false, true], description: "If set, the highlighted option is selected when the input loses focus", typeRef: 341 }, { name: "clearButtonProps", required: false, source: "component", description: "Props passed down to the clear button", typeRef: 172 }, { name: "clearSectionMode", required: false, source: "component", literalValues: ["both", "clear", "rightSection"], description: "Determines how the clear button and rightSection are rendered", typeRef: 15 }, { name: "clearable", required: false, source: "component", literalValues: [false, true], description: "If set, the clear button is displayed when the component has a value", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "comboboxProps", required: false, source: "component", description: "Props passed down to `Combobox` component", typeRef: 153 }, { name: "data", required: false, source: "component", description: "Data used to display options. Values must be unique.", typeRef: 152 }, { name: "defaultDropdownOpened", required: false, source: "component", literalValues: [false, true], description: "Uncontrolled dropdown initial opened state", typeRef: 341 }, { name: "defaultValue", required: false, source: "component", description: "Default value for uncontrolled component", typeRef: 359 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "dropdownOpened", required: false, source: "component", literalValues: [false, true], description: "Controlled dropdown opened state", typeRef: 341 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "floatingHeight", required: false, source: "component", literalValues: ["viewport"], description: "If set to `'viewport'`, the dropdown grows to fill the available vertical space in the viewport. Disables the `flip` middleware.", typeRef: 78 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "limit", required: false, source: "component", description: "Maximum number of options displayed at a time, `Infinity` by default", typeRef: 353 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "maxDropdownHeight", required: false, source: "component", description: "`max-height` of the dropdown, only applicable when `withScrollArea` prop is `true`, `250` by default", typeRef: 365 }, { name: "openOnFocus", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown opens when the input receives focus", typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "scrollAreaProps", required: false, source: "component", description: "Props passed to the underlying `ScrollArea` component in the dropdown", typeRef: 274 }, { name: "selectFirstOptionOnChange", required: false, source: "component", literalValues: [false, true], description: "If set, the first option is selected when value changes, `false` by default", typeRef: 341 }, { name: "selectFirstOptionOnDropdownOpen", required: false, source: "component", literalValues: [false, true], description: "If set, the first option is selected when dropdown opens, `false` by default", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withScrollArea", required: false, source: "component", literalValues: [false, true], description: "Determines whether the options should be wrapped with `ScrollArea.AutoSize`, `true` by default", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Avatar", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/avatar/", props: [{ name: "allowedInitialsColors", required: false, source: "component", description: "A list of colors that is used for autogenerated initials. By default, all default Mantine colors can be used except gray and dark.", typeRef: 164 }, { name: "attributes", required: false, source: "component", typeRef: 404 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "initials", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 163 }, { name: "gradient", required: false, source: "component", description: 'Gradient configuration for `variant="gradient"`', typeRef: 179 }, { name: "imageProps", required: false, source: "component", description: "Attributes passed down to `img` element", typeRef: 260 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Width and height of the avatar, numbers are converted to rem", typeRef: 355 }, { name: "src", required: false, source: "component", description: "Image url, if the image cannot be loaded or `src={null}`, then placeholder is displayed instead", typeRef: 352 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "gradient", "light", "outline", "transparent", "white"], typeRef: 115 }], blockedProps: [], subcomponents: ["Avatar.Group"], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Avatar.Group", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/avatar/", props: [{ name: "attributes", required: false, source: "component", typeRef: 400 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "spacing", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Negative space between Avatar components", typeRef: 183 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "AvatarGroup", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/avatar-group/", props: [{ name: "attributes", required: false, source: "component", typeRef: 400 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "spacing", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Negative space between Avatar components", typeRef: 183 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "BackgroundImage", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/background-image/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "src", required: true, source: "component", description: "Image url", typeRef: 359 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Badge", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/badge/", props: [{ name: "attributes", required: false, source: "component", typeRef: 432 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "circle", required: false, source: "component", literalValues: [false, true], description: "If set, badge `min-width` becomes equal to its `height` and horizontal padding is removed", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether Badge should take 100% of its parent width", typeRef: 341 }, { name: "gradient", required: false, source: "component", description: 'Gradient configuration used when `variant=\\"gradient\\"`', typeRef: 179 }, { name: "leftSection", required: false, source: "component", description: "Content displayed on the left side of the badge label", typeRef: 263 }, { name: "rightSection", required: false, source: "component", description: "Content displayed on the right side of the badge label", typeRef: 263 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls `font-size`, `height` and horizontal `padding`", typeRef: 182 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "dot", "filled", "gradient", "light", "outline", "transparent", "white"], typeRef: 116 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "BarChart", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/bar-chart/", props: [{ name: "attributes", required: false, source: "component", typeRef: 436 }, { name: "barChartProps", required: false, source: "component", description: "Props passed down to recharts `BarChart` component", typeRef: 91 }, { name: "barLabelColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls color of the bar label, by default the value is determined by the chart orientation", typeRef: 162 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "cursorFill", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Fill of hovered bar section, by default value is based on color scheme", typeRef: 162 }, { name: "data", required: true, source: "component", description: "Data used to display chart.", typeRef: 267 }, { name: "dataKey", required: true, source: "component", description: "Key of the `data` object for x-axis values", typeRef: 359 }, { name: "fillOpacity", required: false, source: "component", description: "Controls fill opacity of all bars", typeRef: 353 }, { name: "gridAxis", required: false, source: "component", literalValues: ["none", "x", "xy", "y"], description: "Specifies which lines should be displayed in the grid, `'x'` by default", typeRef: 61 }, { name: "gridColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color of the grid and cursor lines, by default depends on color scheme", typeRef: 162 }, { name: "gridProps", required: false, source: "component", description: "Props passed down to the `CartesianGrid` component", typeRef: 189 }, { name: "legendProps", required: false, source: "component", description: "Props passed down to the `Legend` component", typeRef: 190 }, { name: "maxBarWidth", required: false, source: "component", description: "Maximum bar width in px", typeRef: 353 }, { name: "minBarSize", required: false, source: "component", description: "Sets minimum height of the bar in px", typeRef: 353 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Chart orientation, `'horizontal'` by default", typeRef: 36 }, { name: "referenceLines", required: false, source: "component", description: "Reference lines that should be displayed on the chart", typeRef: 149 }, { name: "rightYAxisLabel", required: false, source: "component", description: "A label to display next to the right y-axis", typeRef: 359 }, { name: "rightYAxisProps", required: false, source: "component", description: "Props passed down to the `YAxis` recharts component rendered on the right side", typeRef: 199 }, { name: "series", required: true, source: "component", description: "An array of objects with `name` and `color` keys. Determines which data should be consumed from the `data` array.", typeRef: 141 }, { name: "textColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color of the text displayed inside the chart, `'dimmed'` by default", typeRef: 162 }, { name: "tickLine", required: false, source: "component", literalValues: ["none", "x", "xy", "y"], description: "Specifies which axis should have tick line, `'y'` by default", typeRef: 61 }, { name: "tooltipAnimationDuration", required: false, source: "component", description: "Tooltip position animation duration in ms, `0` by default", typeRef: 353 }, { name: "tooltipProps", required: false, source: "component", description: "Props passed down to the `Tooltip` component", typeRef: 197 }, { name: "type", required: false, source: "component", literalValues: ["default", "percent", "stacked", "waterfall"], description: "Controls how bars are positioned relative to each other", typeRef: 30 }, { name: "unit", required: false, source: "component", description: "Unit displayed next to each tick in y-axis", typeRef: 359 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withBarValueLabel", required: false, source: "component", literalValues: [false, true], description: 'Determines whether a label with bar value should be displayed on top of each bar, incompatible with `type="stacked"` and `type="percent"`', typeRef: 341 }, { name: "withLegend", required: false, source: "component", literalValues: [false, true], description: "Determines whether chart legend should be displayed, `false` by default", typeRef: 341 }, { name: "withRightYAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether additional y-axis should be displayed on the right side of the chart, `false` by default", typeRef: 341 }, { name: "withTooltip", required: false, source: "component", literalValues: [false, true], description: "Determines whether chart tooltip should be displayed, `true` by default", typeRef: 341 }, { name: "withXAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether x-axis should be displayed, `true` by default", typeRef: 341 }, { name: "withYAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether y-axis should be displayed, `true` by default", typeRef: 341 }, { name: "xAxisLabel", required: false, source: "component", description: "A label to display below the x-axis", typeRef: 359 }, { name: "xAxisProps", required: false, source: "component", description: "Props passed down to the `XAxis` recharts component", typeRef: 198 }, { name: "yAxisLabel", required: false, source: "component", description: "A label to display next to the y-axis", typeRef: 359 }, { name: "yAxisProps", required: false, source: "component", description: "Props passed down to the `YAxis` recharts component", typeRef: 199 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "BarsList", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/bars-list/", props: [{ name: "attributes", required: false, source: "component", typeRef: 453 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color", typeRef: 341 }, { name: "barColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Default bar background color, used when item does not have color specified", typeRef: 162 }, { name: "barGap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls gap between bars", typeRef: 183 }, { name: "barHeight", required: false, source: "component", description: "Bar height", typeRef: 365 }, { name: "barTextColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Bar text color, overrides autoContrast", typeRef: 162 }, { name: "barsLabel", required: false, source: "component", description: "Label displayed above the bars column", typeRef: 359 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "data", required: true, source: "component", description: "Data for bars", typeRef: 142 }, { name: "minBarSize", required: false, source: "component", description: "Minimum bar width", typeRef: 365 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "valueLabel", required: false, source: "component", description: "Label displayed above the values column", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "Blockquote", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/blockquote/", props: [{ name: "attributes", required: false, source: "component", typeRef: 391 }, { name: "cite", required: false, source: "component", description: "Reference to a cited quote", typeRef: 263 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "icon", required: false, source: "component", description: "Blockquote icon, displayed at the top left side", typeRef: 263 }, { name: "iconSize", required: false, source: "component", description: "Controls icon `width` and `height`, numbers are converted to rem", typeRef: 365 }, { name: "textWrap", required: false, source: "component", literalValues: ["balance", "nowrap", "pretty", "stable", "wrap"], description: "Controls `text-wrap` CSS property", typeRef: 79 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Box", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/box/", props: [{ name: "size", required: false, source: "component", description: "Size passed from parent component, sets `data-size` if value is not number like", typeRef: 365 }, { name: "variant", required: false, source: "component", description: "Variant passed from parent component, sets `data-variant`", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "Breadcrumbs", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/breadcrumbs/", props: [{ name: "attributes", required: false, source: "component", typeRef: 467 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "separator", required: false, source: "component", description: "Separator between children", typeRef: 263 }, { name: "separatorMargin", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls spacing between separator and breadcrumb", typeRef: 183 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "BubbleChart", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/bubble-chart/", props: [{ name: "attributes", required: false, source: "component", typeRef: 469 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color of the chart items. Key of `theme.colors` or any valid CSS color.", typeRef: 162 }, { name: "data", required: true, source: "component", description: "Chart data", typeRef: 267 }, { name: "dataKey", required: true, source: "component", description: "Data keys for x, y and z axis", typeRef: 144 }, { name: "gridColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color of the grid and cursor lines, by default depends on color scheme", typeRef: 162 }, { name: "label", required: false, source: "component", description: "Chart label displayed next to the x axis", typeRef: 359 }, { name: "range", required: true, source: "component", description: "Z axis range", typeRef: 334 }, { name: "scatterProps", required: false, source: "component", description: "Props passed down to the `Scatter` component", typeRef: 207 }, { name: "textColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color of the text displayed inside the chart", typeRef: 162 }, { name: "tooltipProps", required: false, source: "component", description: "Props passed down to the `Tooltip` component", typeRef: 197 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withTooltip", required: false, source: "component", literalValues: [false, true], description: "Determines whether the tooltip should be displayed", typeRef: 341 }, { name: "xAxisProps", required: false, source: "component", description: "Props passed down to the `XAxis` recharts component", typeRef: 198 }, { name: "yAxisProps", required: false, source: "component", description: "Props passed down to the `YAxis` recharts component", typeRef: 199 }, { name: "zAxisProps", required: false, source: "component", description: "Props passed down to the `ZAxis` recharts component", typeRef: 200 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "Burger", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/burger/", props: [{ name: "attributes", required: false, source: "component", typeRef: 454 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` of any valid CSS value, by default `theme.white` in dark color scheme and `theme.black` in light", typeRef: 162 }, { name: "lineSize", required: false, source: "component", description: "Controls height of lines, by default calculated based on `size` prop", typeRef: 365 }, { name: "opened", required: false, source: "component", literalValues: [false, true], description: "State of the burger, when `true` burger is transformed into X", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls burger `width` and `height`, numbers are converted to rem", typeRef: 355 }, { name: "transitionDuration", required: false, source: "component", description: "`transition-duration` property value in ms", typeRef: 353 }, { name: "transitionTimingFunction", required: false, source: "component", description: "`transition-timing-function` property value", typeRef: 359 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Button", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/button/", props: [{ name: "attributes", required: false, source: "component", typeRef: 431 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "data-disabled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Sets `width: 100%`", typeRef: 341 }, { name: "gradient", required: false, source: "component", description: 'Gradient configuration used for `variant="gradient"`', typeRef: 179 }, { name: "justify", required: false, source: "component", literalValues: ["-moz-initial", "center", "end", "flex-end", "flex-start", "inherit", "initial", "left", "normal", "revert", "revert-layer", "right", "space-around", "space-between", "space-evenly", "start", "stretch", "unset"], description: "Sets `justify-content` of `inner` element, can be used to change distribution of sections and label", typeRef: 248 }, { name: "leftSection", required: false, source: "component", description: "Content on the left side of the button label", typeRef: 263 }, { name: "loaderProps", required: false, source: "component", description: "Props added to the `Loader` component (only visible when `loading` prop is set)", typeRef: 176 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "If set, the `Loader` component is displayed over the button", typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Content on the right side of the button label", typeRef: 263 }, { name: "size", required: false, source: "component", literalValues: ["compact-lg", "compact-md", "compact-sm", "compact-xl", "compact-xs", "lg", "md", "sm", "xl", "xs"], description: "Controls button `height`, `font-size` and horizontal `padding`", typeRef: 145 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "gradient", "light", "outline", "subtle", "transparent", "white"], typeRef: 117 }], blockedProps: [], subcomponents: ["Button.Group", "Button.GroupSection"], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Button.Group", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/button/", props: [{ name: "attributes", required: false, source: "component", typeRef: 400 }, { name: "borderWidth", required: false, source: "component", description: "`border-width` of the child `Button` components. Numbers are converted to rem.", typeRef: 365 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Orientation of the group", typeRef: 36 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Button.GroupSection", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/button/", props: [{ name: "attributes", required: false, source: "component", typeRef: 401 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "gradient", required: false, source: "component", description: 'Gradient configuration used when `variant="gradient"`', typeRef: 179 }, { name: "size", required: false, source: "component", literalValues: ["compact-lg", "compact-md", "compact-sm", "compact-xl", "compact-xs", "lg", "md", "sm", "xl", "xs"], description: "Controls section `height`, `font-size` and horizontal `padding`", typeRef: 145 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "gradient", "light", "outline", "subtle", "transparent", "white"], typeRef: 117 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "ButtonGroup", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/button-group/", props: [{ name: "attributes", required: false, source: "component", typeRef: 400 }, { name: "borderWidth", required: false, source: "component", description: "`border-width` of the child `Button` components. Numbers are converted to rem.", typeRef: 365 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Orientation of the group", typeRef: 36 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "ButtonGroupSection", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/button-group-section/", props: [{ name: "attributes", required: false, source: "component", typeRef: 401 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "gradient", required: false, source: "component", description: 'Gradient configuration used when `variant="gradient"`', typeRef: 179 }, { name: "size", required: false, source: "component", literalValues: ["compact-lg", "compact-md", "compact-sm", "compact-xl", "compact-xs", "lg", "md", "sm", "xl", "xs"], description: "Controls section `height`, `font-size` and horizontal `padding`", typeRef: 145 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "gradient", "light", "outline", "subtle", "transparent", "white"], typeRef: 117 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Calendar", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/calendar/", props: [{ name: "ariaLabels", required: false, source: "component", description: "`aria-label` attributes for controls on different levels", typeRef: 147 }, { name: "attributes", required: false, source: "component", typeRef: 445 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "columnsToScroll", required: false, source: "component", description: "Number of columns to scroll with next/prev buttons, same as `numberOfColumns` if not set explicitly", typeRef: 353 }, { name: "date", required: false, source: "component", description: "Displayed date in controlled mode", typeRef: 362 }, { name: "defaultDate", required: false, source: "component", description: "Initial displayed date in uncontrolled mode", typeRef: 362 }, { name: "defaultLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Initial displayed level in uncontrolled mode", typeRef: 52 }, { name: "enableKeyboardNavigation", required: false, source: "component", literalValues: [false, true], description: "Enable enhanced keyboard navigation (Ctrl/Cmd + Arrow keys for year navigation, Ctrl/Cmd + Shift + Arrow keys for decade navigation, Y key to open year view)", typeRef: 341 }, { name: "firstDayOfWeek", required: false, source: "component", literalValues: [0, 1, 2, 3, 4, 5, 6], description: "Number 0-6, where 0 \u2013 Sunday and 6 \u2013 Saturday.", typeRef: 134 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the list should take the full width of its container", typeRef: 341 }, { name: "headerControlsOrder", required: false, source: "component", description: "Controls order", typeRef: 89 }, { name: "hideOutsideDates", required: false, source: "component", literalValues: [false, true], description: "Determines whether outside dates should be hidden", typeRef: 341 }, { name: "hideWeekdays", required: false, source: "component", literalValues: [false, true], description: "Determines whether weekdays row should be hidden", typeRef: 341 }, { name: "highlightToday", required: false, source: "component", literalValues: [false, true], description: "Determines whether today should be highlighted with a border", typeRef: 341 }, { name: "level", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Current displayed level displayed in controlled mode", typeRef: 52 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "maxLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Max level that user can go up to (decade, year, month)", typeRef: 52 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "minLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Min level that user can go down to (decade, year, month)", typeRef: 52 }, { name: "monthsListFormat", required: false, source: "component", description: "`dayjs` format for months list", typeRef: 359 }, { name: "nextIcon", required: false, source: "component", description: "Change next icon", typeRef: 263 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "numberOfColumns", required: false, source: "component", description: "Number of columns displayed next to each other", typeRef: 353 }, { name: "previousIcon", required: false, source: "component", description: "Change previous icon", typeRef: 263 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "static", required: false, source: "component", literalValues: [false, true], description: "Determines whether days should be static, static days can be used to display month if it is not expected that user will interact with the component in any way", typeRef: 341 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "weekendDays", required: false, source: "component", description: "Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider`.", typeRef: 161 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "withWeekNumbers", required: false, source: "component", literalValues: [false, true], description: "Determines whether week numbers should be displayed", typeRef: 341 }, { name: "yearsListFormat", required: false, source: "component", description: "dayjs format for years list", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "CalendarHeader", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/calendar-header/", props: [{ name: "attributes", required: false, source: "component", typeRef: 388 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the header should take the full width of its container", typeRef: 341 }, { name: "hasNextLevel", required: false, source: "component", literalValues: [false, true], description: "Determines whether next level button should be enabled", typeRef: 341 }, { name: "headerControlsOrder", required: false, source: "component", description: "Controls order", typeRef: 89 }, { name: "label", required: false, source: "component", description: "Label displayed between next and previous buttons", typeRef: 263 }, { name: "levelControlAriaLabel", required: false, source: "component", description: "Level control `aria-label`", typeRef: 359 }, { name: "nextDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables next control", typeRef: 341 }, { name: "nextIcon", required: false, source: "component", description: "Change next icon", typeRef: 263 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "previousDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables previous control", typeRef: 341 }, { name: "previousIcon", required: false, source: "component", description: "Change previous icon", typeRef: 263 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withNext", required: false, source: "component", literalValues: [false, true], description: "Determines whether next control should be rendered", typeRef: 341 }, { name: "withPrevious", required: false, source: "component", literalValues: [false, true], description: "Determines whether previous control should be rendered", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "Card", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/card/", props: [{ name: "attributes", required: false, source: "component", typeRef: 473 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Card orientation", typeRef: 36 }, { name: "padding", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Key of `theme.spacing` or any valid CSS value to set padding", typeRef: 183 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: ["Card.Section"], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "Card.Section", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/card/", props: [{ name: "inheritPadding", required: false, source: "component", literalValues: [false, true], description: "If set, the section inherits padding from the parent `Card`", typeRef: 341 }, { name: "styles", required: false, source: "component", typeRef: 224 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "CardSection", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/card-section/", props: [{ name: "inheritPadding", required: false, source: "component", literalValues: [false, true], description: "If set, the section inherits padding from the parent `Card`", typeRef: 341 }, { name: "styles", required: false, source: "component", typeRef: 224 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "Center", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/center/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "inline", required: false, source: "component", literalValues: [false, true], description: "If set, `inline-flex` is used instead of `flex`", typeRef: 341 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "ChartLegend", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/chart-legend/", props: [{ name: "attributes", required: false, source: "component", typeRef: 437 }, { name: "centered", required: false, source: "component", literalValues: [false, true], description: "Determines whether the legend should be centered", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "legendPosition", required: true, source: "component", literalValues: ["bottom", "middle", "top"], description: "Position of the legend relative to the chart, used to apply margin on the corresponding side", typeRef: 18 }, { name: "payload", required: false, source: "component", description: "Chart data provided by recharts", typeRef: 358 }, { name: "series", required: false, source: "component", description: "Data used for labels, only applicable for area charts: AreaChart, LineChart, BarChart", typeRef: 150 }, { name: "showColor", required: false, source: "component", literalValues: [false, true], description: "Determines whether color swatch should be shown next to the label", typeRef: 341 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "ChartTooltip", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/chart-tooltip/", props: [{ name: "attributes", required: false, source: "component", typeRef: 476 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "label", required: false, source: "component", description: "Main tooltip label", typeRef: 263 }, { name: "payload", required: false, source: "component", description: "Chart data provided by recharts", typeRef: 268 }, { name: "segmentId", required: false, source: "component", description: 'Segment to display data for, identified by its index in the data array (preferred, isolates duplicate names) or by its name. Only applicable when `type="radial"`. If not set, all data is rendered.', typeRef: 365 }, { name: "series", required: false, source: "component", description: "Chart series data, applicable only for `area` type", typeRef: 150 }, { name: "showColor", required: false, source: "component", literalValues: [false, true], description: "Determines whether the color swatch should be visible", typeRef: 341 }, { name: "type", required: false, source: "component", literalValues: ["area", "radial", "scatter"], description: "Tooltip type that determines the content and styles, `area` for LineChart, AreaChart and BarChart, `radial` for DonutChart and PieChart", typeRef: 11 }, { name: "unit", required: false, source: "component", description: "Data units, provided by parent component", typeRef: 359 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "CheckIcon", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/check-icon/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "display", required: false, source: "component", typeRef: 365 }, { name: "opacity", required: false, source: "component", typeRef: 365 }, { name: "radius", required: false, source: "component", typeRef: 365 }, { name: "size", required: false, source: "component", typeRef: 365 }, { name: "type", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Checkbox", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/checkbox/", props: [{ name: "attributes", required: false, source: "component", typeRef: 373 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts icon color based on background color for `filled` variant", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color to set input background color in checked state", typeRef: 162 }, { name: "description", required: false, source: "component", description: "Description below the label", typeRef: 263 }, { name: "error", required: false, source: "component", description: "Error message below the label", typeRef: 263 }, { name: "iconColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color to set icon color. By default, depends on `theme.autoContrast`.", typeRef: 162 }, { name: "indeterminate", required: false, source: "component", literalValues: [false, true], description: "Indeterminate state of the checkbox. If set, `checked` prop is dismissed.", typeRef: 341 }, { name: "label", required: false, source: "component", description: "`label` associated with the checkbox", typeRef: 263 }, { name: "labelPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the label relative to the input", typeRef: 47 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the component", typeRef: 182 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["filled", "outline"], typeRef: 119 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "If set, applies error styles to the checkbox when `error` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 103 }], blockedProps: [], subcomponents: ["Checkbox.Card", "Checkbox.Group", "Checkbox.Indicator"], bind: { type: "boolean", initialProp: "defaultChecked" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Checkbox.Card", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/checkbox/", props: [{ name: "attributes", required: false, source: "component", typeRef: 390 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Value of the checkbox, used with `Checkbox.Group`", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Checkbox.Group", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/checkbox/", props: [{ name: "attributes", required: false, source: "component", typeRef: 426 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Default value for uncontrolled component", typeRef: 330 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "hiddenInputProps", required: false, source: "component", description: "Props passed down to the hidden input for uncontrolled forms", typeRef: 104 }, { name: "hiddenInputValuesSeparator", required: false, source: "component", description: "Separator for values in the hidden input for uncontrolled forms", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelElement", required: false, source: "component", literalValues: ["div", "label"], description: "Root element for the label. Use `'div'` when wrapper contains multiple input elements and you need to handle `htmlFor` manually.", typeRef: 31 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "maxSelectedValues", required: false, source: "component", description: "Maximum number of checkboxes that can be selected. When the limit is reached, unselected checkboxes will be disabled", typeRef: 353 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the `Input.Wrapper`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 330 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element (`Input.Wrapper` component)", typeRef: 103 }], blockedProps: [], subcomponents: [], bind: { type: "string[]", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Checkbox.Indicator", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/checkbox/", props: [{ name: "attributes", required: false, source: "component", typeRef: 403 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts icon color based on background color for `filled` variant", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color to set input background color in checked state", typeRef: 162 }, { name: "iconColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color to set icon color, by default value depends on `theme.autoContrast`", typeRef: 162 }, { name: "indeterminate", required: false, source: "component", literalValues: [false, true], description: "Indeterminate state of the checkbox. If set, `checked` prop is ignored.", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the component", typeRef: 355 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["filled", "outline"], typeRef: 118 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "CheckboxCard", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/checkbox-card/", props: [{ name: "attributes", required: false, source: "component", typeRef: 390 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Value of the checkbox, used with `Checkbox.Group`", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "CheckboxGroup", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/checkbox-group/", props: [{ name: "attributes", required: false, source: "component", typeRef: 426 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Default value for uncontrolled component", typeRef: 330 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "hiddenInputProps", required: false, source: "component", description: "Props passed down to the hidden input for uncontrolled forms", typeRef: 104 }, { name: "hiddenInputValuesSeparator", required: false, source: "component", description: "Separator for values in the hidden input for uncontrolled forms", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelElement", required: false, source: "component", literalValues: ["div", "label"], description: "Root element for the label. Use `'div'` when wrapper contains multiple input elements and you need to handle `htmlFor` manually.", typeRef: 31 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "maxSelectedValues", required: false, source: "component", description: "Maximum number of checkboxes that can be selected. When the limit is reached, unselected checkboxes will be disabled", typeRef: 353 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the `Input.Wrapper`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 330 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element (`Input.Wrapper` component)", typeRef: 103 }], blockedProps: [], subcomponents: [], bind: { type: "string[]", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "CheckboxIndicator", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/checkbox-indicator/", props: [{ name: "attributes", required: false, source: "component", typeRef: 403 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts icon color based on background color for `filled` variant", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color to set input background color in checked state", typeRef: 162 }, { name: "iconColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color to set icon color, by default value depends on `theme.autoContrast`", typeRef: 162 }, { name: "indeterminate", required: false, source: "component", literalValues: [false, true], description: "Indeterminate state of the checkbox. If set, `checked` prop is ignored.", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the component", typeRef: 355 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["filled", "outline"], typeRef: 118 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Chip", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/chip/", props: [{ name: "attributes", required: false, source: "component", typeRef: 408 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on the chip background color for `filled` variant", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color.", typeRef: 162 }, { name: "icon", required: false, source: "component", description: "Any element or component to replace the default icon", typeRef: 263 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls various properties related to the component size", typeRef: 81 }, { name: "type", required: false, source: "component", literalValues: ["checkbox", "radio"], description: "Chip input type", typeRef: 25 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["filled", "light", "outline"], typeRef: 120 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 103 }], blockedProps: [], subcomponents: ["Chip.Group"], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Chip.Group", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/chip/", props: [{ name: "defaultValue", required: false, source: "component", description: "Uncontrolled component initial value", typeRef: 99 }, { name: "multiple", required: false, source: "component", description: "If set, multiple values can be selected", typeRef: 186 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 99 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "ChipGroup", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/chip-group/", props: [{ name: "defaultValue", required: false, source: "component", description: "Uncontrolled component initial value", typeRef: 99 }, { name: "multiple", required: false, source: "component", description: "If set, multiple values can be selected", typeRef: 186 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 99 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "CloseButton", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/close-button/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "data-disabled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "icon", required: false, source: "component", description: "React node to replace the default close icon. If set, `iconSize` prop is ignored.", typeRef: 263 }, { name: "iconSize", required: false, source: "component", description: "`X` icon `width` and `height`", typeRef: 365 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls width and height of the button. Numbers are converted to rem.", typeRef: 355 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["subtle", "transparent"], typeRef: 121 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "CloseIcon", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/close-icon/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "display", required: false, source: "component", typeRef: 365 }, { name: "opacity", required: false, source: "component", typeRef: 365 }, { name: "radius", required: false, source: "component", typeRef: 365 }, { name: "size", required: false, source: "component", description: "Icon width and height, `var(--icon-size)` by default", typeRef: 359 }, { name: "type", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Code", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/code/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "block", required: false, source: "component", literalValues: [false, true], description: "If set, code is rendered in `pre`", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color, controls `background-color` of the code. By default, calculated based on the color scheme.", typeRef: 162 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Collapse", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/collapse/", props: [{ name: "animateOpacity", required: false, source: "component", literalValues: [false, true], description: "Determines whether the opacity is animated", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "expanded", required: true, source: "component", literalValues: [false, true], description: "Expanded state", typeRef: 341 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set, the element is kept in the DOM when collapsed. When `true`, React 19 `Activity` is used to preserve state while collapsed. When `false`, the element is unmounted after the exit animation.", typeRef: 341 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Collapse orientation", typeRef: 36 }, { name: "transitionDuration", required: false, source: "component", description: "Transition duration in ms", typeRef: 353 }, { name: "transitionTimingFunction", required: false, source: "component", description: "Transition timing function", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Collapsible", package: "@homarr/widgets", category: "interaction", safety: "allowed", description: "Shows and hides a bounded content section.", documentationUrl: "https://homarr.dev/docs/management/custom-widgets/", props: [{ name: "defaultOpen", source: "component", required: false, typeRef: 336 }, { name: "title", source: "component", required: true, typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "ColorInput", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/color-input/", props: [{ name: "attributes", required: false, source: "component", typeRef: 374 }, { name: "closeOnColorSwatchClick", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown is closed when one of the color swatches is clicked", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 359 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "disallowInput", required: false, source: "component", literalValues: [false, true], description: "If input is not allowed, the user can only pick value with color picker and swatches", typeRef: 341 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "eyeDropperButtonProps", required: false, source: "component", description: "Props passed down to the eye dropper button", typeRef: 266 }, { name: "eyeDropperIcon", required: false, source: "component", description: "An icon to replace the default eye dropper icon", typeRef: 263 }, { name: "fixOnBlur", required: false, source: "component", literalValues: [false, true], description: "If set, the input value resets to the last known valid value when the input loses focus", typeRef: 341 }, { name: "format", required: false, source: "component", literalValues: ["hex", "hexa", "hsl", "hsla", "rgb", "rgba"], description: "Color format. `hexa`, `rgba`, `hsla` values render alpha channel slider", typeRef: 35 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "popoverProps", required: false, source: "component", description: "Props passed down to the `Popover` component", typeRef: 242 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "swatches", required: false, source: "component", description: "A list of colors used to display swatches list below the color picker", typeRef: 368 }, { name: "swatchesPerRow", required: false, source: "component", description: "Number of swatches per row", typeRef: 353 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withEyeDropper", required: false, source: "component", literalValues: [false, true], description: "If set, the eye dropper button is displayed in the right section", typeRef: 341 }, { name: "withPicker", required: false, source: "component", literalValues: [false, true], description: "If `false`, the component displays only swatches", typeRef: 341 }, { name: "withPreview", required: false, source: "component", literalValues: [false, true], description: "If set, the preview color swatch is displayed in the left section of the input", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "ColorPicker", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/color-picker/", props: [{ name: "alphaLabel", required: false, source: "component", description: "Alpha slider `aria-label`", typeRef: 359 }, { name: "attributes", required: false, source: "component", typeRef: 379 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 359 }, { name: "focusable", required: false, source: "component", literalValues: [false, true], description: "If set, interactive elements (sliders thumbs and swatches) are focusable with keyboard", typeRef: 341 }, { name: "format", required: false, source: "component", literalValues: ["hex", "hexa", "hsl", "hsla", "rgb", "rgba"], description: "Color format. `hexa`, `rgba`, `hsla` values render alpha channel slider", typeRef: 35 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "If set, the component takes 100% width of its container", typeRef: 341 }, { name: "hiddenInputProps", required: false, source: "component", description: "Props spread to the hidden input", typeRef: 104 }, { name: "hueLabel", required: false, source: "component", description: "Hue slider `aria-label`", typeRef: 359 }, { name: "saturationLabel", required: false, source: "component", description: "Saturation slider `aria-label`", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 182 }, { name: "swatches", required: false, source: "component", description: "A list of colors used to display swatches list below the color picker", typeRef: 368 }, { name: "swatchesPerRow", required: false, source: "component", description: "Number of swatches per row", typeRef: 353 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withPicker", required: false, source: "component", literalValues: [false, true], description: "If `false`, the component displays only swatches", typeRef: 341 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "ColorSchemeScript", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/color-scheme-script/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Writes global document state" }, { name: "ColorSwatch", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/color-swatch/", props: [{ name: "attributes", required: false, source: "component", typeRef: 452 }, { name: "color", required: true, source: "component", description: "Valid CSS color to display", typeRef: 359 }, { name: "size", required: false, source: "component", description: "Swatch `width` and `height`, any valid CSS value, numbers are converted to rem.", typeRef: 254 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withShadow", required: false, source: "component", literalValues: [false, true], description: "If set, the swatch has inner `box-shadow`", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Combobox", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox/", props: [], blockedProps: [], subcomponents: ["Combobox.Chevron", "Combobox.ClearButton", "Combobox.Dropdown", "Combobox.DropdownTarget", "Combobox.Empty", "Combobox.EventsTarget", "Combobox.Footer", "Combobox.Group", "Combobox.Header", "Combobox.HiddenInput", "Combobox.Option", "Combobox.Options", "Combobox.Search", "Combobox.Target"], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Combobox.Chevron", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Combobox.ClearButton", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Combobox.Dropdown", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Combobox.DropdownTarget", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Combobox.Empty", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Combobox.EventsTarget", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Combobox.Footer", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Combobox.Group", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Combobox.Header", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Combobox.HiddenInput", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Combobox.Option", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Combobox.Options", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Combobox.Search", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Combobox.Target", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxChevron", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-chevron/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxClearButton", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-clear-button/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxDropdown", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-dropdown/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxDropdownTarget", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-dropdown-target/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxEmpty", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-empty/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxEventsTarget", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-events-target/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxFooter", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-footer/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxGroup", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-group/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxHeader", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-header/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxHiddenInput", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-hidden-input/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxOption", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-option/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxOptions", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-options/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxPopover", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-popover/", props: [], blockedProps: [], subcomponents: ["ComboboxPopover.Target"], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxPopover.Target", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-popover/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxPopoverTarget", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-popover-target/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxSearch", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-search/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "ComboboxTarget", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/combobox-target/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "CompositeChart", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/composite-chart/", props: [{ name: "activeDotProps", required: false, source: "component", description: "Props passed down to all active dots. Ignored if `withDots={false}` is set.", typeRef: 178 }, { name: "attributes", required: false, source: "component", typeRef: 372 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "composedChartProps", required: false, source: "component", description: "Props passed down to recharts `AreaChart` component", typeRef: 91 }, { name: "connectNulls", required: false, source: "component", literalValues: [false, true], description: "Determines whether points with `null` values should be connected", typeRef: 341 }, { name: "curveType", required: false, source: "component", literalValues: ["bump", "linear", "monotone", "natural", "step", "stepAfter", "stepBefore"], description: "Type of the curve", typeRef: 69 }, { name: "data", required: true, source: "component", description: "Data used to display chart", typeRef: 267 }, { name: "dataKey", required: true, source: "component", description: "Key of the `data` object for x-axis values", typeRef: 359 }, { name: "dotProps", required: false, source: "component", description: "Props passed down to all dots. Ignored if `withDots={false}` is set.", typeRef: 178 }, { name: "gridAxis", required: false, source: "component", literalValues: ["none", "x", "xy", "y"], description: "Specifies which lines should be displayed in the grid, `'x'` by default", typeRef: 61 }, { name: "gridColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color of the grid and cursor lines, by default depends on color scheme", typeRef: 162 }, { name: "gridProps", required: false, source: "component", description: "Props passed down to the `CartesianGrid` component", typeRef: 189 }, { name: "legendProps", required: false, source: "component", description: "Props passed down to the `Legend` component", typeRef: 190 }, { name: "maxBarWidth", required: false, source: "component", description: "Maximum bar width in px", typeRef: 353 }, { name: "minBarSize", required: false, source: "component", description: "Sets minimum height of the bar in px", typeRef: 353 }, { name: "referenceLines", required: false, source: "component", description: "Reference lines that should be displayed on the chart", typeRef: 149 }, { name: "rightYAxisLabel", required: false, source: "component", description: "A label to display next to the right y-axis", typeRef: 359 }, { name: "rightYAxisProps", required: false, source: "component", description: "Props passed down to the `YAxis` recharts component rendered on the right side", typeRef: 199 }, { name: "series", required: true, source: "component", description: "An array of objects with `name` and `color` keys. Determines which data should be consumed from the `data` array.", typeRef: 155 }, { name: "strokeWidth", required: false, source: "component", description: "Stroke width for the chart lines", typeRef: 353 }, { name: "textColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color of the text displayed inside the chart, `'dimmed'` by default", typeRef: 162 }, { name: "tickLine", required: false, source: "component", literalValues: ["none", "x", "xy", "y"], description: "Specifies which axis should have tick line, `'y'` by default", typeRef: 61 }, { name: "tooltipAnimationDuration", required: false, source: "component", description: "Tooltip position animation duration in ms, `0` by default", typeRef: 353 }, { name: "tooltipProps", required: false, source: "component", description: "Props passed down to the `Tooltip` component", typeRef: 197 }, { name: "unit", required: false, source: "component", description: "Unit displayed next to each tick in y-axis", typeRef: 359 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withBarValueLabel", required: false, source: "component", literalValues: [false, true], description: "Determines whether a label with bar value should be displayed on top of each bar", typeRef: 341 }, { name: "withDots", required: false, source: "component", literalValues: [false, true], description: "Determines whether dots should be displayed", typeRef: 341 }, { name: "withLegend", required: false, source: "component", literalValues: [false, true], description: "Determines whether chart legend should be displayed, `false` by default", typeRef: 341 }, { name: "withPointLabels", required: false, source: "component", literalValues: [false, true], description: "Determines whether each point should have associated label", typeRef: 341 }, { name: "withRightYAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether additional y-axis should be displayed on the right side of the chart, `false` by default", typeRef: 341 }, { name: "withTooltip", required: false, source: "component", literalValues: [false, true], description: "Determines whether chart tooltip should be displayed, `true` by default", typeRef: 341 }, { name: "withXAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether x-axis should be displayed, `true` by default", typeRef: 341 }, { name: "withYAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether y-axis should be displayed, `true` by default", typeRef: 341 }, { name: "xAxisLabel", required: false, source: "component", description: "A label to display below the x-axis", typeRef: 359 }, { name: "xAxisProps", required: false, source: "component", description: "Props passed down to the `XAxis` recharts component", typeRef: 198 }, { name: "yAxisLabel", required: false, source: "component", description: "A label to display next to the y-axis", typeRef: 359 }, { name: "yAxisProps", required: false, source: "component", description: "Props passed down to the `YAxis` recharts component", typeRef: 199 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "Container", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/container/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "fluid", required: false, source: "component", literalValues: [false, true], description: "If set, the container takes 100% width of its parent and `size` prop is ignored.", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "`max-width` of the container, value is not responsive \u2013 it is the same for all screen sizes. Numbers are converted to rem. Ignored when `fluid` prop is set.", typeRef: 355 }, { name: "strategy", required: false, source: "component", literalValues: ["block", "grid"], description: "Centering strategy", typeRef: 14 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "CopyButton", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/copy-button/", props: [{ name: "timeout", required: false, source: "component", description: "Copied status timeout in ms", typeRef: 353 }, { name: "value", required: true, source: "component", description: "Value that is copied to the clipboard when the button is clicked", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "DataList", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/data-list/", props: [{ name: "attributes", required: false, source: "component", typeRef: 461 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "gap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Key of `theme.spacing` or any valid CSS value to set gap between items", typeRef: 183 }, { name: "labelWidth", required: false, source: "component", description: "Controls min-width of the label (dt) element, any valid CSS value", typeRef: 251 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Controls arrangement of label and value within each item. `horizontal` renders label and value side by side, `vertical` stacks label on top of value", typeRef: 36 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls `font-size` and `line-height`", typeRef: 81 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withDivider", required: false, source: "component", literalValues: [false, true], description: "Adds border between items", typeRef: 341 }], blockedProps: [], subcomponents: ["DataList.Item", "DataList.ItemLabel", "DataList.ItemValue"], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "DataList.Item", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/data-list/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 217 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "DataList.ItemLabel", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/data-list/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 218 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "DataList.ItemValue", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/data-list/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 219 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "DataListItem", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/data-list-item/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 217 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "DataListItemLabel", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/data-list-item-label/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 218 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "DataListItemValue", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/data-list-item-value/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 219 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "DateInput", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/date-input/", props: [{ name: "allowDeselect", required: false, source: "component", literalValues: [false, true], description: "If set, the value can be deselected by deleting everything from the input or by clicking the selected date in the dropdown. By default, `true` if `clearable` prop is set, `false` otherwise.", typeRef: 341 }, { name: "ariaLabels", required: false, source: "component", description: "`aria-label` attributes for controls on different levels", typeRef: 147 }, { name: "attributes", required: false, source: "component", typeRef: 413 }, { name: "clearButtonProps", required: false, source: "component", description: "Props passed down to the clear button", typeRef: 258 }, { name: "clearSectionMode", required: false, source: "component", literalValues: ["both", "clear", "rightSection"], description: "Determines how the clear button and rightSection are rendered", typeRef: 15 }, { name: "clearable", required: false, source: "component", literalValues: [false, true], description: "If set, clear button is displayed in the `rightSection` when the component has value. Ignored if `rightSection` prop is set.", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "columnsToScroll", required: false, source: "component", description: "Number of columns to scroll with next/prev buttons, same as `numberOfColumns` if not set explicitly", typeRef: 353 }, { name: "date", required: false, source: "component", description: "Displayed date in controlled mode", typeRef: 362 }, { name: "defaultDate", required: false, source: "component", description: "Initial displayed date in uncontrolled mode", typeRef: 362 }, { name: "defaultLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Initial displayed level (uncontrolled)", typeRef: 52 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 160 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "firstDayOfWeek", required: false, source: "component", literalValues: [0, 1, 2, 3, 4, 5, 6], description: "Number 0-6, where 0 \u2013 Sunday and 6 \u2013 Saturday.", typeRef: 134 }, { name: "fixOnBlur", required: false, source: "component", literalValues: [false, true], description: "If set to `false`, invalid user input is preserved and is not corrected on blur", typeRef: 341 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the calendar should take the full width of its container", typeRef: 341 }, { name: "hasNextLevel", required: false, source: "component", literalValues: [false, true], description: "Determines whether next level button should be enabled", typeRef: 341 }, { name: "headerControlsOrder", required: false, source: "component", description: "Controls order", typeRef: 89 }, { name: "hideOutsideDates", required: false, source: "component", literalValues: [false, true], description: "Determines whether outside dates should be hidden", typeRef: 341 }, { name: "hideWeekdays", required: false, source: "component", literalValues: [false, true], description: "Determines whether weekdays row should be hidden", typeRef: 341 }, { name: "highlightToday", required: false, source: "component", literalValues: [false, true], description: "Determines whether today should be highlighted with a border", typeRef: 341 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "level", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Current displayed level (controlled)", typeRef: 52 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "maxLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Max level that user can go up to", typeRef: 52 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "monthsListFormat", required: false, source: "component", description: "`dayjs` format for months list", typeRef: 359 }, { name: "nextDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables next control", typeRef: 341 }, { name: "nextIcon", required: false, source: "component", description: "Change next icon", typeRef: 263 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "numberOfColumns", required: false, source: "component", description: "Number of columns displayed next to each other", typeRef: 353 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "popoverProps", required: false, source: "component", description: "Props passed down to the `Popover` component", typeRef: 204 }, { name: "presets", required: false, source: "component", description: "Predefined values to pick from", typeRef: 156 }, { name: "previousDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables previous control", typeRef: 341 }, { name: "previousIcon", required: false, source: "component", description: "Change previous icon", typeRef: 263 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 160 }, { name: "valueFormat", required: false, source: "component", description: '`dayjs` format to display input value, `"MMMM D, YYYY"` by default', typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "weekendDays", required: false, source: "component", description: "Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider`.", typeRef: 161 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withNext", required: false, source: "component", literalValues: [false, true], description: "Determines whether next control should be rendered", typeRef: 341 }, { name: "withPrevious", required: false, source: "component", literalValues: [false, true], description: "Determines whether previous control should be rendered", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "withTime", required: false, source: "component", literalValues: [false, true], description: 'If set to `true`, the time part of the value is preserved. Set this to `true` when `valueFormat` includes time (e.g. `"YYYY-MM-DD HH:mm"`).', typeRef: 341 }, { name: "withWeekNumbers", required: false, source: "component", literalValues: [false, true], description: "Determines whether week numbers should be displayed", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }, { name: "yearsListFormat", required: false, source: "component", description: "dayjs format for years list", typeRef: 359 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "DatePicker", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/date-picker/", props: [{ name: "allowDeselect", required: false, source: "component", description: 'Determines whether user can deselect the date by clicking on selected item, applicable only when type="default"', typeRef: 106 }, { name: "allowSingleDateInRange", required: false, source: "component", description: 'Determines whether a single day can be selected as range, applicable only when type="range"', typeRef: 107 }, { name: "ariaLabels", required: false, source: "component", description: "`aria-label` attributes for controls on different levels", typeRef: 147 }, { name: "attributes", required: false, source: "component", typeRef: 446 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "columnsToScroll", required: false, source: "component", description: "Number of columns to scroll with next/prev buttons, same as `numberOfColumns` if not set explicitly", typeRef: 353 }, { name: "date", required: false, source: "component", description: "Displayed date in controlled mode", typeRef: 362 }, { name: "defaultDate", required: false, source: "component", description: "Initial displayed date in uncontrolled mode", typeRef: 362 }, { name: "defaultLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Initial displayed level (uncontrolled)", typeRef: 52 }, { name: "defaultValue", required: false, source: "component", description: "Default value for uncontrolled component", typeRef: 159 }, { name: "enableKeyboardNavigation", required: false, source: "component", literalValues: [false, true], description: "Enable enhanced keyboard navigation (Ctrl/Cmd + Arrow keys for year navigation, Ctrl/Cmd + Shift + Arrow keys for decade navigation, Y key to open year view)", typeRef: 341 }, { name: "firstDayOfWeek", required: false, source: "component", literalValues: [0, 1, 2, 3, 4, 5, 6], description: "Number 0-6, where 0 \u2013 Sunday and 6 \u2013 Saturday.", typeRef: 134 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the list should take the full width of its container", typeRef: 341 }, { name: "headerControlsOrder", required: false, source: "component", description: "Controls order", typeRef: 89 }, { name: "hideOutsideDates", required: false, source: "component", literalValues: [false, true], description: "Determines whether outside dates should be hidden", typeRef: 341 }, { name: "hideWeekdays", required: false, source: "component", literalValues: [false, true], description: "Determines whether weekdays row should be hidden", typeRef: 341 }, { name: "highlightToday", required: false, source: "component", literalValues: [false, true], description: "Determines whether today should be highlighted with a border", typeRef: 341 }, { name: "level", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Current displayed level (controlled)", typeRef: 52 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "maxLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], typeRef: 52 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "monthsListFormat", required: false, source: "component", description: "`dayjs` format for months list", typeRef: 359 }, { name: "nextIcon", required: false, source: "component", description: "Change next icon", typeRef: 263 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "numberOfColumns", required: false, source: "component", description: "Number of columns displayed next to each other", typeRef: 353 }, { name: "presets", required: false, source: "component", description: "Predefined values to pick from", typeRef: 157 }, { name: "previousIcon", required: false, source: "component", description: "Change previous icon", typeRef: 263 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "type", required: false, source: "component", literalValues: ["default", "multiple", "range"], description: "Picker type: range, multiple or default", typeRef: 326 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Value for controlled component", typeRef: 159 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "weekendDays", required: false, source: "component", description: "Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider`.", typeRef: 161 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "withWeekNumbers", required: false, source: "component", literalValues: [false, true], description: "Determines whether week numbers should be displayed", typeRef: 341 }, { name: "yearsListFormat", required: false, source: "component", description: "dayjs format for years list", typeRef: 359 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "DatePickerInput", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/date-picker-input/", props: [{ name: "allowDeselect", required: false, source: "component", description: 'Determines whether user can deselect the date by clicking on selected item, applicable only when type="default"', typeRef: 106 }, { name: "allowSingleDateInRange", required: false, source: "component", description: 'Determines whether a single day can be selected as range, applicable only when type="range"', typeRef: 107 }, { name: "ariaLabels", required: false, source: "component", description: "`aria-label` attributes for controls on different levels", typeRef: 147 }, { name: "attributes", required: false, source: "component", typeRef: 414 }, { name: "clearButtonProps", required: false, source: "component", description: "Props passed down to the clear button", typeRef: 258 }, { name: "clearSectionMode", required: false, source: "component", literalValues: ["both", "clear", "rightSection"], description: "Determines how the clear button and rightSection are rendered", typeRef: 15 }, { name: "clearable", required: false, source: "component", literalValues: [false, true], description: "If set, clear button is displayed in the `rightSection` when the component has value. Ignored if `rightSection` prop is set.", typeRef: 341 }, { name: "closeOnChange", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the dropdown is closed when date is selected, not applicable with `type="multiple"`', typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "columnsToScroll", required: false, source: "component", description: "Number of columns to scroll with next/prev buttons, same as `numberOfColumns` if not set explicitly", typeRef: 353 }, { name: "date", required: false, source: "component", description: "Displayed date in controlled mode", typeRef: 362 }, { name: "defaultDate", required: false, source: "component", description: "Initial displayed date in uncontrolled mode", typeRef: 362 }, { name: "defaultLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Initial displayed level (uncontrolled)", typeRef: 52 }, { name: "defaultValue", required: false, source: "component", description: "Default value for uncontrolled component", typeRef: 159 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "enableKeyboardNavigation", required: false, source: "component", literalValues: [false, true], description: "Enable enhanced keyboard navigation (Ctrl/Cmd + Arrow keys for year navigation, Ctrl/Cmd + Shift + Arrow keys for decade navigation, Y key to open year view)", typeRef: 341 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "firstDayOfWeek", required: false, source: "component", literalValues: [0, 1, 2, 3, 4, 5, 6], description: "Number 0-6, where 0 \u2013 Sunday and 6 \u2013 Saturday.", typeRef: 134 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the list should take the full width of its container", typeRef: 341 }, { name: "headerControlsOrder", required: false, source: "component", description: "Controls order", typeRef: 89 }, { name: "hideOutsideDates", required: false, source: "component", literalValues: [false, true], description: "Determines whether outside dates should be hidden", typeRef: 341 }, { name: "hideWeekdays", required: false, source: "component", literalValues: [false, true], description: "Determines whether weekdays row should be hidden", typeRef: 341 }, { name: "highlightToday", required: false, source: "component", literalValues: [false, true], description: "Determines whether today should be highlighted with a border", typeRef: 341 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "labelSeparator", required: false, source: "component", description: "Separator between range value", typeRef: 359 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "level", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Current displayed level (controlled)", typeRef: 52 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "maxLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], typeRef: 52 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "monthsListFormat", required: false, source: "component", description: "`dayjs` format for months list", typeRef: 359 }, { name: "nextIcon", required: false, source: "component", description: "Change next icon", typeRef: 263 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "numberOfColumns", required: false, source: "component", description: "Number of columns displayed next to each other", typeRef: 353 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "popoverProps", required: false, source: "component", description: "Props passed down to `Popover` component", typeRef: 204 }, { name: "presets", required: false, source: "component", description: "Predefined values to pick from", typeRef: 157 }, { name: "previousIcon", required: false, source: "component", description: "Change previous icon", typeRef: 263 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "sortDates", required: false, source: "component", literalValues: [false, true], description: 'Determines whether dates values should be sorted before `onChange` call, only applicable with type="multiple"', typeRef: 341 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "type", required: false, source: "component", literalValues: ["default", "multiple", "range"], description: "Picker type: range, multiple or default", typeRef: 158 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Value for controlled component", typeRef: 159 }, { name: "valueFormat", required: false, source: "component", description: "`dayjs` format for input value", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "weekendDays", required: false, source: "component", description: "Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider`.", typeRef: 161 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "withWeekNumbers", required: false, source: "component", literalValues: [false, true], description: "Determines whether week numbers should be displayed", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }, { name: "yearsListFormat", required: false, source: "component", description: "dayjs format for years list", typeRef: 359 }], blockedProps: [{ name: "dropdownType", reason: "Modal picker mode escapes the widget overlay boundary" }, { name: "modalProps", reason: "Modal picker configuration escapes the widget overlay boundary" }], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "DateTimePicker", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/date-time-picker/", props: [{ name: "allowSingleDateInRange", required: false, source: "component", description: 'Determines whether a single day can be selected as range, applicable only when type="range"', typeRef: 107 }, { name: "ariaLabels", required: false, source: "component", description: "`aria-label` attributes for controls on different levels", typeRef: 147 }, { name: "attributes", required: false, source: "component", typeRef: 415 }, { name: "clearButtonProps", required: false, source: "component", description: "Props passed down to the clear button", typeRef: 258 }, { name: "clearSectionMode", required: false, source: "component", literalValues: ["both", "clear", "rightSection"], description: "Determines how the clear button and rightSection are rendered", typeRef: 15 }, { name: "clearable", required: false, source: "component", literalValues: [false, true], description: "If set, clear button is displayed in the `rightSection` when the component has value. Ignored if `rightSection` prop is set.", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "columnsToScroll", required: false, source: "component", description: "Number of columns to scroll with next/prev buttons, same as `numberOfColumns` if not set explicitly", typeRef: 353 }, { name: "date", required: false, source: "component", description: "Displayed date in controlled mode", typeRef: 362 }, { name: "defaultDate", required: false, source: "component", description: "Initial displayed date in uncontrolled mode", typeRef: 362 }, { name: "defaultLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Initial displayed level in uncontrolled mode", typeRef: 52 }, { name: "defaultTimeValue", required: false, source: "component", description: "Default time value in HH:mm` or `HH:mm:ss` format. Assigned to time when date is selected.", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 159 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "endTimePickerProps", required: false, source: "component", description: "Props passed down to the end time `TimePicker` component in range mode", typeRef: 196 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "firstDayOfWeek", required: false, source: "component", literalValues: [0, 1, 2, 3, 4, 5, 6], description: "Number 0-6, where 0 \u2013 Sunday and 6 \u2013 Saturday.", typeRef: 134 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the calendar should take the full width of its container", typeRef: 341 }, { name: "headerControlsOrder", required: false, source: "component", description: "Controls order", typeRef: 89 }, { name: "hideOutsideDates", required: false, source: "component", literalValues: [false, true], description: "Determines whether outside dates should be hidden", typeRef: 341 }, { name: "hideWeekdays", required: false, source: "component", literalValues: [false, true], description: "Determines whether weekdays row should be hidden", typeRef: 341 }, { name: "highlightToday", required: false, source: "component", literalValues: [false, true], description: "Determines whether today should be highlighted with a border", typeRef: 341 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "labelSeparator", required: false, source: "component", description: "Separator between range values", typeRef: 359 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "level", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Current displayed level displayed in controlled mode", typeRef: 52 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "maxLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Max level that user can go up to", typeRef: 52 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "monthsListFormat", required: false, source: "component", description: "`dayjs` format for months list", typeRef: 359 }, { name: "nextIcon", required: false, source: "component", description: "Change next icon", typeRef: 263 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "numberOfColumns", required: false, source: "component", description: "Number of columns displayed next to each other", typeRef: 353 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "popoverProps", required: false, source: "component", description: "Props passed down to `Popover` component", typeRef: 204 }, { name: "presets", required: false, source: "component", description: "Presets values", typeRef: 157 }, { name: "previousIcon", required: false, source: "component", description: "Change previous icon", typeRef: 263 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "sortDates", required: false, source: "component", literalValues: [false, true], description: 'Determines whether dates values should be sorted before `onChange` call, only applicable with type="multiple"', typeRef: 341 }, { name: "submitButtonProps", required: false, source: "component", description: "Props passed down to the submit button", typeRef: 90 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "timePickerProps", required: false, source: "component", description: "Props passed down to `TimePicker` component", typeRef: 196 }, { name: "type", required: false, source: "component", description: "Picker type: range or default", typeRef: 325 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 159 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "weekendDays", required: false, source: "component", description: "Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider`.", typeRef: 161 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withSeconds", required: false, source: "component", literalValues: [false, true], description: "Determines whether the seconds input should be displayed", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "withWeekNumbers", required: false, source: "component", literalValues: [false, true], description: "Determines whether week numbers should be displayed", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }, { name: "yearsListFormat", required: false, source: "component", description: "dayjs format for years list", typeRef: 359 }], blockedProps: [{ name: "dropdownType", reason: "Modal picker mode escapes the widget overlay boundary" }, { name: "modalProps", reason: "Modal picker configuration escapes the widget overlay boundary" }], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "DatesProvider", package: "@mantine/dates", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/dates/dates-provider/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Replaces a Homarr-owned provider boundary" }, { name: "Day", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/day/", props: [{ name: "attributes", required: false, source: "component", typeRef: 398 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "date", required: true, source: "component", description: "Date that is displayed in `YYYY-MM-DD` format", typeRef: 359 }, { name: "firstInRange", required: false, source: "component", literalValues: [false, true], description: "Determines whether the day is first in range selection", typeRef: 341 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the day should take the full width of its cell", typeRef: 341 }, { name: "highlightToday", required: false, source: "component", literalValues: [false, true], description: "Determines whether today should be highlighted with a border", typeRef: 341 }, { name: "inRange", required: false, source: "component", literalValues: [false, true], description: "Determines whether the day is selected in range", typeRef: 341 }, { name: "lastInRange", required: false, source: "component", literalValues: [false, true], description: "Determines whether the day is last in range selection", typeRef: 341 }, { name: "outside", required: false, source: "component", literalValues: [false, true], description: "Determines whether the day is outside of the current month", typeRef: 341 }, { name: "selected", required: false, source: "component", literalValues: [false, true], description: "Determines whether the day is selected", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Control width and height of the day", typeRef: 81 }, { name: "static", required: false, source: "component", literalValues: [false, true], description: "Determines which element is used as root, `'button'` by default, `'div'` if static prop is set", typeRef: 341 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "weekend", required: false, source: "component", literalValues: [false, true], description: "Determines whether the day is considered to be a weekend", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "DecadeLevel", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/decade-level/", props: [{ name: "attributes", required: false, source: "component", typeRef: 384 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "decade", required: true, source: "component", description: "Displayed decade", typeRef: 359 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the calendar should take the full width of its container", typeRef: 341 }, { name: "headerControlsOrder", required: false, source: "component", description: "Controls order", typeRef: 89 }, { name: "levelControlAriaLabel", required: false, source: "component", description: "Level control `aria-label`", typeRef: 359 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "nextDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables next control", typeRef: 341 }, { name: "nextIcon", required: false, source: "component", description: "Change next icon", typeRef: 263 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "previousDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables previous control", typeRef: 341 }, { name: "previousIcon", required: false, source: "component", description: "Change previous icon", typeRef: 263 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "styles", required: false, source: "component", typeRef: 238 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "withNext", required: false, source: "component", literalValues: [false, true], description: "Determines whether next control should be rendered", typeRef: 341 }, { name: "withPrevious", required: false, source: "component", literalValues: [false, true], description: "Determines whether previous control should be rendered", typeRef: 341 }, { name: "yearsListFormat", required: false, source: "component", description: "dayjs format for years list", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "DecadeLevelGroup", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/decade-level-group/", props: [{ name: "attributes", required: false, source: "component", typeRef: 386 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "decade", required: true, source: "component", description: "Displayed decade", typeRef: 359 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the calendar should take the full width of its container", typeRef: 341 }, { name: "headerControlsOrder", required: false, source: "component", description: "Controls order", typeRef: 89 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "nextDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables next control", typeRef: 341 }, { name: "nextIcon", required: false, source: "component", description: "Change next icon", typeRef: 263 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "numberOfColumns", required: false, source: "component", description: "Number of columns to display next to each other", typeRef: 353 }, { name: "previousDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables previous control", typeRef: 341 }, { name: "previousIcon", required: false, source: "component", description: "Change previous icon", typeRef: 263 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "styles", required: false, source: "component", typeRef: 238 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "yearsListFormat", required: false, source: "component", description: "dayjs format for years list", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "Dialog", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/dialog/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes the widget layout and focus boundary" }, { name: "DirectionProvider", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/direction-provider/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Replaces a Homarr-owned provider boundary" }, { name: "Divider", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/divider/", props: [{ name: "attributes", required: false, source: "component", typeRef: 429 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color value", typeRef: 162 }, { name: "label", required: false, source: "component", description: 'Divider label, visible only with `orientation="horizontal"`', typeRef: 263 }, { name: "labelPosition", required: false, source: "component", literalValues: ["center", "left", "right"], description: "Label position", typeRef: 22 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Divider orientation", typeRef: 36 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls width/height (depends on orientation)", typeRef: 355 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["dashed", "dotted", "solid"], typeRef: 122 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "DonutChart", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/donut-chart/", props: [{ name: "attributes", required: false, source: "component", typeRef: 422 }, { name: "chartLabel", required: false, source: "component", description: "Chart label, displayed in the center of the chart", typeRef: 365 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "data", required: true, source: "component", description: "Data used to render chart", typeRef: 165 }, { name: "endAngle", required: false, source: "component", description: "Controls angle at which charts ends. Set to `0` to render the chart as semicircle.", typeRef: 353 }, { name: "labelColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls text color of all labels, by default depends on color scheme", typeRef: 162 }, { name: "labelsType", required: false, source: "component", literalValues: ["name", "percent", "value"], description: "Type of labels to display, `'value'` by default", typeRef: 77 }, { name: "legendProps", required: false, source: "component", description: "Props passed down to recharts `Legend` component", typeRef: 190 }, { name: "paddingAngle", required: false, source: "component", description: "Controls padding between segments", typeRef: 353 }, { name: "pieChartProps", required: false, source: "component", description: "Props passed down to recharts `PieChart` component", typeRef: 101 }, { name: "pieProps", required: false, source: "component", description: "Props passed down to recharts `Pie` component", typeRef: 203 }, { name: "size", required: false, source: "component", description: "Controls chart width and height, height is increased by 40 if `withLabels` prop is set. Cannot be less than `thickness`.", typeRef: 353 }, { name: "startAngle", required: false, source: "component", description: "Controls angle at which chart starts. Set to `180` to render the chart as semicircle.", typeRef: 353 }, { name: "strokeColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls color of the segments stroke, by default depends on color scheme", typeRef: 162 }, { name: "strokeWidth", required: false, source: "component", description: "Controls width of segments stroke", typeRef: 353 }, { name: "thickness", required: false, source: "component", description: "Controls thickness of the chart segments", typeRef: 353 }, { name: "tooltipAnimationDuration", required: false, source: "component", description: "Tooltip animation duration in ms", typeRef: 353 }, { name: "tooltipDataSource", required: false, source: "component", literalValues: ["all", "segment"], description: "Determines which data is displayed in the tooltip. `'all'` \u2013 display all values, `'segment'` \u2013 display only hovered segment.", typeRef: 9 }, { name: "tooltipProps", required: false, source: "component", description: "Props passed down to `Tooltip` recharts component", typeRef: 197 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withLabels", required: false, source: "component", literalValues: [false, true], description: "Determines whether each segment should have associated label", typeRef: 341 }, { name: "withLabelsLine", required: false, source: "component", literalValues: [false, true], description: "Determines whether segments labels should have lines that connect the segment with the label", typeRef: 341 }, { name: "withLegend", required: false, source: "component", literalValues: [false, true], description: "Determines whether the legend should be displayed", typeRef: 341 }, { name: "withTooltip", required: false, source: "component", literalValues: [false, true], description: "Determines whether the tooltip should be displayed when one of the section is hovered", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "Drawer", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer/", props: [], blockedProps: [], subcomponents: ["Drawer.Body", "Drawer.CloseButton", "Drawer.Content", "Drawer.Header", "Drawer.Overlay", "Drawer.Root", "Drawer.Stack", "Drawer.Title"], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Drawer.Body", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Drawer.CloseButton", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Drawer.Content", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Drawer.Header", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Drawer.Overlay", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Drawer.Root", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Drawer.Stack", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Drawer.Title", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "DrawerBody", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer-body/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "DrawerCloseButton", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer-close-button/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "DrawerContent", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer-content/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "DrawerHeader", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer-header/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "DrawerOverlay", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer-overlay/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "DrawerRoot", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer-root/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "DrawerStack", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer-stack/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "DrawerTitle", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/drawer-title/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "EmptyState", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/empty-state/", props: [{ name: "align", required: false, source: "component", literalValues: ["center", "left", "right"], description: "Content alignment. `center` stacks the content in a centered column, `left`/`right` place the indicator on the side with the content next to it", typeRef: 22 }, { name: "attributes", required: false, source: "component", typeRef: 380 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color, used by `filled` and `light` variants", typeRef: 162 }, { name: "description", required: false, source: "component", description: "Description content, rendered inside `EmptyState.Description`", typeRef: 263 }, { name: "icon", required: false, source: "component", description: "Icon or illustration, rendered inside `EmptyState.Indicator`", typeRef: 263 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls indicator size, gap between elements and font sizes of title and description", typeRef: 81 }, { name: "title", required: false, source: "component", description: "Title content, rendered inside `EmptyState.Title`", typeRef: 263 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["filled", "light"], description: "Controls the indicator appearance. `filled` and `light` display a colored circular background behind the icon. If not set, the icon is displayed with dimmed color", typeRef: 33 }, { name: "withIndicatorBackground", required: false, source: "component", literalValues: [false, true], description: "If set, a neutral circular background is displayed behind the indicator. Setting `variant` always displays a colored background regardless of this prop", typeRef: 341 }], blockedProps: [], subcomponents: ["EmptyState.Actions", "EmptyState.Description", "EmptyState.Indicator", "EmptyState.Title"], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "EmptyState.Actions", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/empty-state/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 209 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "EmptyState.Description", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/empty-state/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 212 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "EmptyState.Indicator", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/empty-state/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 216 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "EmptyState.Title", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/empty-state/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "order", required: false, source: "component", literalValues: [1, 2, 3, 4, 5, 6], description: "Heading order, renders the title as `h1`\u2013`h6` element. By default, the title is rendered as a `div` without semantic heading level", typeRef: 137 }, { name: "styles", required: false, source: "component", typeRef: 225 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "EmptyStateActions", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/empty-state-actions/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 209 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "EmptyStateDescription", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/empty-state-description/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 212 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "EmptyStateIndicator", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/empty-state-indicator/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 216 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "EmptyStateTitle", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/empty-state-title/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "order", required: false, source: "component", literalValues: [1, 2, 3, 4, 5, 6], description: "Heading order, renders the title as `h1`\u2013`h6` element. By default, the title is rendered as a `div` without semantic heading level", typeRef: 137 }, { name: "styles", required: false, source: "component", typeRef: 225 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Fieldset", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/fieldset/", props: [{ name: "attributes", required: false, source: "component", typeRef: 443 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "legend", required: false, source: "component", description: "Fieldset legend", typeRef: 263 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 123 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "FileButton", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/file-button/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Requests local file-system access" }, { name: "FileInput", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/file-input/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Requests local file-system access" }, { name: "FlatTreeNode", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/flat-tree-node/", props: [{ name: "checkOnSpace", required: false, source: "component", literalValues: [false, true], description: "If set, tree node is checked on space key press", typeRef: 341 }, { name: "expandOnClick", required: false, source: "component", literalValues: [false, true], description: "If set, tree node with children is expanded on click", typeRef: 341 }, { name: "expandOnSpace", required: false, source: "component", literalValues: [false, true], description: "If set, tree node with children is expanded on space key press", typeRef: 341 }, { name: "expanded", required: true, source: "component", literalValues: [false, true], description: "Whether the node is expanded", typeRef: 341 }, { name: "hasChildren", required: true, source: "component", literalValues: [false, true], description: "Whether the node has children", typeRef: 341 }, { name: "level", required: true, source: "component", description: "Nesting level of the node, starts at 1", typeRef: 353 }, { name: "linesPath", required: false, source: "component", description: "Line state per ancestor + own level, computed by `flattenTreeData`. When provided and the tree root has `data-with-lines`, connector lines are rendered.", typeRef: 166 }, { name: "node", required: true, source: "component", description: "Node data from tree data", typeRef: 320 }, { name: "parent", required: true, source: "component", description: "Value of the parent node, `null` for root nodes", typeRef: 352 }, { name: "selectOnClick", required: false, source: "component", literalValues: [false, true], description: "If set, tree node is selected on click", typeRef: 341 }, { name: "style", required: false, source: "component", description: "Style to apply to the root element, used for virtualizer positioning", typeRef: 257 }, { name: "tree", required: true, source: "component", description: "Tree controller instance, return value of `useTree` hook", typeRef: 327 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Flex", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/flex/", props: [{ name: "align", required: false, source: "component", literalValues: ["-moz-initial", "anchor-center", "baseline", "center", "end", "flex-end", "flex-start", "inherit", "initial", "normal", "revert", "revert-layer", "self-end", "self-start", "start", "stretch", "unset"], description: "`align-items` CSS property", typeRef: 285 }, { name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "columnGap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "`column-gap` CSS property", typeRef: 284 }, { name: "direction", required: false, source: "component", literalValues: ["-moz-initial", "column", "column-reverse", "inherit", "initial", "revert", "revert-layer", "row", "row-reverse", "unset"], description: "`flex-direction` CSS property", typeRef: 294 }, { name: "gap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "`gap` CSS property", typeRef: 284 }, { name: "justify", required: false, source: "component", literalValues: ["-moz-initial", "center", "end", "flex-end", "flex-start", "inherit", "initial", "left", "normal", "revert", "revert-layer", "right", "space-around", "space-between", "space-evenly", "start", "stretch", "unset"], description: "`justify-content` CSS property", typeRef: 299 }, { name: "rowGap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "`row-gap` CSS property", typeRef: 284 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "wrap", required: false, source: "component", literalValues: ["-moz-initial", "inherit", "initial", "nowrap", "revert", "revert-layer", "unset", "wrap", "wrap-reverse"], description: "`flex-wrap` CSS property", typeRef: 295 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "FloatingArrow", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/floating-arrow/", props: [{ name: "arrowOffset", required: true, source: "component", typeRef: 353 }, { name: "arrowPosition", required: true, source: "component", literalValues: ["center", "merge", "side"], typeRef: 24 }, { name: "arrowRadius", required: true, source: "component", typeRef: 353 }, { name: "arrowSize", required: true, source: "component", typeRef: 353 }, { name: "arrowX", required: false, source: "component", typeRef: 353 }, { name: "arrowY", required: false, source: "component", typeRef: 353 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "position", required: true, source: "component", literalValues: ["bottom", "bottom-end", "bottom-start", "left", "left-end", "left-start", "right", "right-end", "right-start", "top", "top-end", "top-start"], typeRef: 48 }, { name: "visible", required: false, source: "component", literalValues: [false, true], typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "FloatingIndicator", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/floating-indicator/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "displayAfterTransitionEnd", required: false, source: "component", literalValues: [false, true], description: "Controls whether the indicator should be hidden initially and displayed after the parent's transition ends. Set to `true` when the parent container has CSS transitions (e.g., `transform: scale()`) to prevent the indicator from appearing at the wrong position during the parent's animation.", typeRef: 341 }, { name: "parent", required: false, source: "component", description: "Parent container element that must have `position: relative`. The indicator's position is calculated relative to this element.", typeRef: 169 }, { name: "target", required: false, source: "component", description: "Target element over which the indicator is displayed. The indicator will be positioned to match the target's size and position.", typeRef: 169 }, { name: "transitionDuration", required: false, source: "component", description: "Transition duration in ms", typeRef: 365 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "FloatingWindow", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/floating-window/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Creates a separate browser window" }, { name: "FocusTrap", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/focus-trap/", props: [], blockedProps: [], subcomponents: ["FocusTrap.InitialFocus"], accessibilityRequirements: [], deniedReason: "Can capture focus outside the widget interaction flow" }, { name: "FocusTrap.InitialFocus", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/focus-trap/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Can capture focus outside the widget interaction flow" }, { name: "FocusTrapInitialFocus", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/focus-trap-initial-focus/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Can capture focus outside the widget interaction flow" }, { name: "FunnelChart", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/funnel-chart/", props: [{ name: "attributes", required: false, source: "component", typeRef: 441 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "data", required: true, source: "component", description: "Data used to render chart", typeRef: 167 }, { name: "funnelChartProps", required: false, source: "component", description: "Props passed down to recharts `FunnelChart` component", typeRef: 91 }, { name: "funnelProps", required: false, source: "component", description: "Props passed down to recharts `Pie` component", typeRef: 202 }, { name: "labelColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls text color of all labels", typeRef: 162 }, { name: "labelsPosition", required: false, source: "component", literalValues: ["inside", "left", "right"], description: "Controls labels position relative to the segment", typeRef: 49 }, { name: "legendProps", required: false, source: "component", description: "Props passed down to recharts `Legend` component", typeRef: 190 }, { name: "size", required: false, source: "component", description: "Controls chart width and height", typeRef: 353 }, { name: "strokeColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls color of the segments stroke, by default depends on color scheme", typeRef: 162 }, { name: "strokeWidth", required: false, source: "component", description: "Controls width of segments stroke", typeRef: 353 }, { name: "tooltipAnimationDuration", required: false, source: "component", description: "Tooltip animation duration in ms", typeRef: 353 }, { name: "tooltipDataSource", required: false, source: "component", literalValues: ["all", "segment"], description: "Determines which data is displayed in the tooltip. `'all'` \u2013 display all values, `'segment'` \u2013 display only hovered segment.", typeRef: 9 }, { name: "tooltipProps", required: false, source: "component", description: "Props passed down to `Tooltip` recharts component", typeRef: 197 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withLabels", required: false, source: "component", literalValues: [false, true], description: "Determines whether each segment should have associated label", typeRef: 341 }, { name: "withLegend", required: false, source: "component", literalValues: [false, true], description: "Determines whether the legend should be displayed", typeRef: 341 }, { name: "withTooltip", required: false, source: "component", literalValues: [false, true], description: "Determines whether the tooltip should be displayed when a section is hovered", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "Grid", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/grid/", props: [{ name: "align", required: false, source: "component", literalValues: ["-moz-initial", "anchor-center", "baseline", "center", "end", "flex-end", "flex-start", "inherit", "initial", "normal", "revert", "revert-layer", "self-end", "self-start", "start", "stretch", "unset"], description: "Sets `align-items`", typeRef: 244 }, { name: "attributes", required: false, source: "component", typeRef: 392 }, { name: "breakpoints", required: false, source: "component", description: 'Breakpoints values, only used with `type="container"`', typeRef: 168 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "columnGap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Column gap, overrides `gap` for horizontal spacing", typeRef: 284 }, { name: "columns", required: false, source: "component", description: "Number of columns in each row", typeRef: 353 }, { name: "gap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Gap between columns and rows, key of `theme.spacing` or any valid CSS value", typeRef: 284 }, { name: "grow", required: false, source: "component", literalValues: [false, true], description: "If set, columns in the last row expand to fill all available space", typeRef: 341 }, { name: "justify", required: false, source: "component", literalValues: ["-moz-initial", "center", "end", "flex-end", "flex-start", "inherit", "initial", "left", "normal", "revert", "revert-layer", "right", "space-around", "space-between", "space-evenly", "start", "stretch", "unset"], description: "Sets `justify-content`", typeRef: 248 }, { name: "overflow", required: false, source: "component", literalValues: ["-moz-hidden-unscrollable", "-moz-initial", "auto", "clip", "hidden", "inherit", "initial", "overlay", "revert", "revert-layer", "scroll", "unset", "visible"], description: "Sets `overflow` CSS property on the root element", typeRef: 252 }, { name: "rowGap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Row gap, overrides `gap` for vertical spacing", typeRef: 284 }, { name: "type", required: false, source: "component", literalValues: ["container", "media"], description: "Type of queries used for responsive styles", typeRef: 51 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: ["Grid.Col"], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "Grid.Col", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/grid/", props: [{ name: "align", required: false, source: "component", literalValues: ["-moz-initial", "anchor-center", "auto", "baseline", "center", "end", "flex-end", "flex-start", "inherit", "initial", "normal", "revert", "revert-layer", "self-end", "self-start", "start", "stretch", "unset"], description: "Vertical alignment of the column, controls `align-self` CSS property", typeRef: 286 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "offset", required: false, source: "component", description: "Column start offset \u2013 number of empty columns before this column", typeRef: 312 }, { name: "order", required: false, source: "component", description: "Column order, use to reorder columns at different viewport sizes", typeRef: 312 }, { name: "span", required: false, source: "component", literalValues: ["auto", "content"], description: "Column span", typeRef: 282 }, { name: "styles", required: false, source: "component", typeRef: 210 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "GridCol", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/grid-col/", props: [{ name: "align", required: false, source: "component", literalValues: ["-moz-initial", "anchor-center", "auto", "baseline", "center", "end", "flex-end", "flex-start", "inherit", "initial", "normal", "revert", "revert-layer", "self-end", "self-start", "start", "stretch", "unset"], description: "Vertical alignment of the column, controls `align-self` CSS property", typeRef: 286 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "offset", required: false, source: "component", description: "Column start offset \u2013 number of empty columns before this column", typeRef: 312 }, { name: "order", required: false, source: "component", description: "Column order, use to reorder columns at different viewport sizes", typeRef: 312 }, { name: "span", required: false, source: "component", literalValues: ["auto", "content"], description: "Column span", typeRef: 282 }, { name: "styles", required: false, source: "component", typeRef: 210 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "Group", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/group/", props: [{ name: "align", required: false, source: "component", literalValues: ["-moz-initial", "anchor-center", "baseline", "center", "end", "flex-end", "flex-start", "inherit", "initial", "normal", "revert", "revert-layer", "self-end", "self-start", "start", "stretch", "unset"], description: "Controls `align-items` CSS property", typeRef: 244 }, { name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "gap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Key of `theme.spacing` or any valid CSS value for `gap`, numbers are converted to rem", typeRef: 183 }, { name: "grow", required: false, source: "component", literalValues: [false, true], description: "Determines whether each child element should have `flex-grow: 1` style", typeRef: 341 }, { name: "justify", required: false, source: "component", literalValues: ["-moz-initial", "center", "end", "flex-end", "flex-start", "inherit", "initial", "left", "normal", "revert", "revert-layer", "right", "space-around", "space-between", "space-evenly", "start", "stretch", "unset"], description: "Controls `justify-content` CSS property", typeRef: 248 }, { name: "preventGrowOverflow", required: false, source: "component", literalValues: [false, true], description: "Determines whether children should take only dedicated amount of space (`max-width` style is set based on the number of children)", typeRef: 341 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "wrap", required: false, source: "component", literalValues: ["-moz-initial", "inherit", "initial", "nowrap", "revert", "revert-layer", "unset", "wrap", "wrap-reverse"], description: "Controls `flex-wrap` CSS property", typeRef: 5 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "HeadlessMantineProvider", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/headless-mantine-provider/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Replaces a Homarr-owned provider boundary" }, { name: "Heatmap", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/heatmap/", props: [{ name: "attributes", required: false, source: "component", typeRef: 439 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "colors", required: false, source: "component", description: "Colors array, used to calculate color for each value, by default 4 shades of green colors are used", typeRef: 368 }, { name: "data", required: true, source: "component", description: "Heatmap data, key is date in `YYYY-MM-DD` format (interpreted as a UTC calendar day)", typeRef: 269 }, { name: "domain", required: false, source: "component", description: "Heatmap domain, array of 2 numbers, min and max values, calculated from data by default", typeRef: 334 }, { name: "endDate", required: false, source: "component", description: "Heatmap end date. Current date by default. Date is normalized to UTC midnight of the intended calendar day.", typeRef: 362 }, { name: "firstDayOfWeek", required: false, source: "component", literalValues: [0, 1, 2, 3, 4, 5, 6], description: "First day of week, 0 \u2013 Sunday, 1 \u2013 Monday.", typeRef: 134 }, { name: "fontSize", required: false, source: "component", description: "Font size of month and weekday labels", typeRef: 353 }, { name: "gap", required: false, source: "component", description: "Gap between rects in px", typeRef: 353 }, { name: "legendLabels", required: false, source: "component", description: "Legend labels, array of 2 elements: [min label, max label]", typeRef: 335 }, { name: "monthLabels", required: false, source: "component", description: "Month labels, array of 12 elements, can be used for localization", typeRef: 368 }, { name: "monthsLabelsHeight", required: false, source: "component", description: "Height of month labels row", typeRef: 353 }, { name: "radius", required: false, source: "component", typeRef: 365 }, { name: "rectRadius", required: false, source: "component", description: "Rect radius in px", typeRef: 353 }, { name: "rectSize", required: false, source: "component", description: "Size of day rect in px", typeRef: 353 }, { name: "splitMonths", required: false, source: "component", literalValues: [false, true], description: "If set, inserts a spacer column between months", typeRef: 341 }, { name: "startDate", required: false, source: "component", description: "Heatmap start date. Current date - 1 year by default. Date is normalized to UTC midnight of the intended calendar day.", typeRef: 362 }, { name: "tooltipProps", required: false, source: "component", description: "Props passed down to the `Tooltip.Floating` component", typeRef: 239 }, { name: "type", required: false, source: "component", typeRef: 359 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "weekdayLabels", required: false, source: "component", description: "Weekday labels, array of 7 elements, can be used for localization", typeRef: 368 }, { name: "weekdaysLabelsWidth", required: false, source: "component", description: "Width of weekday labels column", typeRef: 353 }, { name: "withLegend", required: false, source: "component", literalValues: [false, true], description: "If set, legend with color levels is displayed below the heatmap", typeRef: 341 }, { name: "withMonthLabels", required: false, source: "component", literalValues: [false, true], description: "If set, month labels are displayed", typeRef: 341 }, { name: "withOutsideDates", required: false, source: "component", literalValues: [false, true], description: "If set, trailing dates that do not fall into the given `startDate` \u2013 `endDate` range are displayed to fill empty space.", typeRef: 341 }, { name: "withTooltip", required: false, source: "component", literalValues: [false, true], description: "If set, tooltip is displayed on rect hover", typeRef: 341 }, { name: "withWeekdayLabels", required: false, source: "component", literalValues: [false, true], description: "If set, weekday labels are displayed", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "HiddenDatesInput", package: "@mantine/dates", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/dates/hidden-dates-input/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Internal date-input primitive" }, { name: "Highlight", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/highlight/", props: [{ name: "accentInsensitive", required: false, source: "component", literalValues: [false, true], description: "Perform accent-insensitive matching. When enabled cafe will match cafe, caf\xE9, caf\xE8, etc.", typeRef: 341 }, { name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "caseInsensitive", required: false, source: "component", literalValues: [false, true], description: "Perform case-insensitive matching.", typeRef: 341 }, { name: "color", required: false, source: "component", description: "Default background color for all highlighted text. Key of `theme.colors` or any valid CSS color, passed to `Mark` component. Can be overridden per term when using HighlightTerm objects.", typeRef: 360 }, { name: "gradient", required: false, source: "component", description: "Gradient configuration, ignored when `variant` is not `gradient`", typeRef: 179 }, { name: "highlight", required: true, source: "component", description: "Substring(s) to highlight in `children`. Can be: - string: single term - string[]: multiple terms with same color - HighlightTerm[]: multiple terms with custom colors per term - Matching is case-insensitive and accent-insensitive by default, use `caseInsensitive` and `accentInsensitive` props to control this behavior - Regex special characters are automatically escaped - When multiple substrings are provided, longer matches take precedence - Empty strings and whitespace-only strings are ignored", typeRef: 367 }, { name: "inherit", required: false, source: "component", literalValues: [false, true], description: "Determines whether font properties should be inherited from the parent", typeRef: 341 }, { name: "inline", required: false, source: "component", literalValues: [false, true], description: "Sets `line-height` to 1 for centering", typeRef: 341 }, { name: "lineClamp", required: false, source: "component", description: "Number of lines after which Text will be truncated", typeRef: 353 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls `font-size` and `line-height`", typeRef: 82 }, { name: "span", required: false, source: "component", literalValues: [false, true], description: 'Shorthand for `component="span"`', typeRef: 341 }, { name: "textWrap", required: false, source: "component", literalValues: ["balance", "nowrap", "pretty", "stable", "wrap"], description: "Controls `text-wrap` CSS property", typeRef: 79 }, { name: "truncate", required: false, source: "component", literalValues: ["end", false, "start", true], description: "Side on which Text must be truncated, if `true`, text is truncated from the start", typeRef: 344 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["gradient", "text"], typeRef: 131 }, { name: "wholeWord", required: false, source: "component", literalValues: [false, true], description: "Only match whole words (adds word boundaries to regex). When enabled, 'the' will not match 'there'.", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "HoverCard", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/hover-card/", props: [{ name: "arrowOffset", required: false, source: "component", description: "Arrow offset in px", typeRef: 353 }, { name: "arrowPosition", required: false, source: "component", literalValues: ["center", "merge", "side"], description: "Arrow position", typeRef: 24 }, { name: "arrowRadius", required: false, source: "component", description: "Arrow `border-radius` in px", typeRef: 353 }, { name: "arrowSize", required: false, source: "component", description: "Arrow size in px", typeRef: 353 }, { name: "attributes", required: false, source: "component", typeRef: 399 }, { name: "clickOutsideEvents", required: false, source: "component", description: "Events that trigger outside clicks", typeRef: 368 }, { name: "closeDelay", required: false, source: "component", description: "Delay in ms before the dropdown closes after mouse leaves the target or dropdown. Overridden by HoverCard.Group delay if used within a group.", typeRef: 353 }, { name: "closeOnClickOutside", required: false, source: "component", literalValues: [false, true], description: "Determines whether dropdown should be closed on outside clicks", typeRef: 341 }, { name: "closeOnEscape", required: false, source: "component", literalValues: [false, true], description: "Determines whether dropdown should be closed when `Escape` key is pressed", typeRef: 341 }, { name: "defaultOpened", required: false, source: "component", literalValues: [false, true], description: "Initial opened state for uncontrolled component", typeRef: 341 }, { name: "floatingStrategy", required: false, source: "component", literalValues: ["absolute", "fixed"], description: "Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy)", typeRef: 34 }, { name: "hideDetached", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown is hidden when the element is hidden with styles or not visible on the screen", typeRef: 341 }, { name: "initiallyOpened", required: false, source: "component", literalValues: [false, true], description: "Initial opened state", typeRef: 341 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown is not unmounted from the DOM when hidden. `display: none` styles are added instead.", typeRef: 341 }, { name: "keepMountedMode", required: false, source: "component", literalValues: ["activity", "display-none"], description: "Controls how the dropdown is hidden when `keepMounted` is set: `'activity'` \u2013 hidden with React 19 `Activity` component, `'display-none'` \u2013 hidden with `display: none` styles", typeRef: 7 }, { name: "middlewares", required: false, source: "component", description: "Floating ui middlewares to configure position handling", typeRef: 241 }, { name: "offset", required: false, source: "component", description: "Offset of the dropdown element", typeRef: 354 }, { name: "openDelay", required: false, source: "component", description: "Delay in ms before the dropdown opens after mouse enters the target. Overridden by HoverCard.Group delay if used within a group.", typeRef: 353 }, { name: "overlayProps", required: false, source: "component", description: "Props passed down to `Overlay` component", typeRef: 100 }, { name: "position", required: false, source: "component", literalValues: ["bottom", "bottom-end", "bottom-start", "left", "left-end", "left-start", "right", "right-end", "right-start", "top", "top-end", "top-start"], description: "Dropdown position relative to the target element", typeRef: 48 }, { name: "preventPositionChangeWhenVisible", required: false, source: "component", literalValues: [false, true], description: "If `true`, the dropdown picks its side on open (flip runs once, preferring the `position` prop) and then never changes side \u2014 scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the `shift` middleware. Set to `false` to keep flip active and allow the dropdown to re-flip on every change.", typeRef: 341 }, { name: "returnFocus", required: false, source: "component", literalValues: [false, true], description: "Determines whether focus should be automatically returned to control when dropdown closes", typeRef: 341 }, { name: "transitionProps", required: false, source: "component", description: "Props passed down to the `Transition` component. Use to configure duration and animation type.", typeRef: 208 }, { name: "trapFocus", required: false, source: "component", literalValues: [false, true], description: "Determines whether focus should be trapped within dropdown", typeRef: 341 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "width", required: false, source: "component", description: "Dropdown width, or `'target'` to make dropdown width the same as target element", typeRef: 243 }, { name: "withArrow", required: false, source: "component", literalValues: [false, true], description: "Determines whether component should have an arrow", typeRef: 341 }, { name: "withOverlay", required: false, source: "component", literalValues: [false, true], description: "Determines whether the overlay should be displayed when the dropdown is opened", typeRef: 341 }, { name: "withRoles", required: false, source: "component", literalValues: [false, true], description: "Determines whether dropdown and target elements should have accessible roles", typeRef: 341 }], blockedProps: [], subcomponents: ["HoverCard.Dropdown", "HoverCard.Group", "HoverCard.Target"], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "HoverCard.Dropdown", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/hover-card/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 234 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "HoverCard.Group", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/hover-card/", props: [{ name: "closeDelay", required: false, source: "component", description: "Close delay in ms", typeRef: 353 }, { name: "openDelay", required: false, source: "component", description: "Open delay in ms", typeRef: 353 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "HoverCard.Target", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/hover-card/", props: [{ name: "eventPropsWrapperName", required: false, source: "component", description: "Name of the prop to wrap event listeners in. Use when the target component expects event listeners in a nested object. For example, some components expect `componentProps={{ onMouseEnter, onMouseLeave }}`.", typeRef: 359 }, { name: "popupType", required: false, source: "component", description: "Popup accessible type", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "HoverCardDropdown", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/hover-card-dropdown/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 234 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "HoverCardGroup", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/hover-card-group/", props: [{ name: "closeDelay", required: false, source: "component", description: "Close delay in ms", typeRef: 353 }, { name: "openDelay", required: false, source: "component", description: "Open delay in ms", typeRef: 353 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "HoverCardTarget", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/hover-card-target/", props: [{ name: "eventPropsWrapperName", required: false, source: "component", description: "Name of the prop to wrap event listeners in. Use when the target component expects event listeners in a nested object. For example, some components expect `componentProps={{ onMouseEnter, onMouseLeave }}`.", typeRef: 359 }, { name: "popupType", required: false, source: "component", description: "Popup accessible type", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "HueSlider", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/hue-slider/", props: [{ name: "attributes", required: false, source: "component", typeRef: 474 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "focusable", required: false, source: "component", literalValues: [false, true], description: "If set, slider thumb can be focused", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Slider size", typeRef: 182 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: true, source: "component", description: "Controlled component value", typeRef: 353 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Image", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/image/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "fallbackSrc", required: false, source: "component", description: "Image url used as a fallback if the image cannot be loaded", typeRef: 359 }, { name: "fit", required: false, source: "component", literalValues: ["-moz-initial", "contain", "cover", "fill", "inherit", "initial", "none", "revert", "revert-layer", "scale-down", "unset"], description: "Controls `object-fit` style", typeRef: 4 }, { name: "src", required: false, source: "component", description: "Image url", typeRef: 370 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Indicator", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/indicator/", props: [{ name: "attributes", required: false, source: "component", typeRef: 460 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color value", typeRef: 162 }, { name: "inline", required: false, source: "component", literalValues: [false, true], description: "Changes container display from block to inline-block, use when wrapping elements with fixed width", typeRef: 341 }, { name: "label", required: false, source: "component", description: "Label displayed inside the indicator, for example, notification count", typeRef: 263 }, { name: "maxValue", required: false, source: "component", description: "Maximum value to display. If label is a number greater than this value, it will be displayed as `{maxValue}+`", typeRef: 353 }, { name: "offset", required: false, source: "component", description: "Distance in pixels to offset the indicator from its default position, useful for elements with border-radius. Can be a number for uniform offset or an object with `x` and `y` properties for separate horizontal and vertical offsets", typeRef: 357 }, { name: "position", required: false, source: "component", literalValues: ["bottom-center", "bottom-end", "bottom-start", "middle-center", "middle-end", "middle-start", "top-center", "top-end", "top-start"], description: "Indicator position relative to the target element", typeRef: 19 }, { name: "processing", required: false, source: "component", literalValues: [false, true], description: "If set, the indicator has processing animation", typeRef: 341 }, { name: "showZero", required: false, source: "component", literalValues: [false, true], description: "Determines whether indicator with label `0` should be displayed", typeRef: 341 }, { name: "size", required: false, source: "component", description: "Indicator width and height", typeRef: 365 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "InlineDateTimePicker", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/inline-date-time-picker/", props: [{ name: "allowDeselect", required: false, source: "component", description: 'Determines whether user can deselect the date by clicking on selected item, applicable only when type="default"', typeRef: 106 }, { name: "allowSingleDateInRange", required: false, source: "component", description: 'Determines whether a single day can be selected as range, applicable only when type="range"', typeRef: 107 }, { name: "ariaLabels", required: false, source: "component", description: "`aria-label` attributes for controls on different levels", typeRef: 147 }, { name: "attributes", required: false, source: "component", typeRef: 465 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "columnsToScroll", required: false, source: "component", description: "Number of columns to scroll with next/prev buttons, same as `numberOfColumns` if not set explicitly", typeRef: 353 }, { name: "date", required: false, source: "component", description: "Displayed date in controlled mode", typeRef: 362 }, { name: "defaultDate", required: false, source: "component", description: "Initial displayed date in uncontrolled mode", typeRef: 362 }, { name: "defaultLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Initial displayed level (uncontrolled)", typeRef: 52 }, { name: "defaultTimeValue", required: false, source: "component", description: "Default time value in `HH:mm` or `HH:mm:ss` format. Assigned to time when date is selected.", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Default value for uncontrolled component", typeRef: 159 }, { name: "enableKeyboardNavigation", required: false, source: "component", literalValues: [false, true], description: "Enable enhanced keyboard navigation (Ctrl/Cmd + Arrow keys for year navigation, Ctrl/Cmd + Shift + Arrow keys for decade navigation, Y key to open year view)", typeRef: 341 }, { name: "endTimePickerProps", required: false, source: "component", description: "Props passed down to the end time `TimePicker` component in range mode", typeRef: 196 }, { name: "firstDayOfWeek", required: false, source: "component", literalValues: [0, 1, 2, 3, 4, 5, 6], description: "Number 0-6, where 0 \u2013 Sunday and 6 \u2013 Saturday.", typeRef: 134 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the list should take the full width of its container", typeRef: 341 }, { name: "headerControlsOrder", required: false, source: "component", description: "Controls order", typeRef: 89 }, { name: "hideOutsideDates", required: false, source: "component", literalValues: [false, true], description: "Determines whether outside dates should be hidden", typeRef: 341 }, { name: "hideWeekdays", required: false, source: "component", literalValues: [false, true], description: "Determines whether weekdays row should be hidden", typeRef: 341 }, { name: "highlightToday", required: false, source: "component", literalValues: [false, true], description: "Determines whether today should be highlighted with a border", typeRef: 341 }, { name: "labelSeparator", required: false, source: "component", description: "Separator between range values", typeRef: 359 }, { name: "level", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Current displayed level (controlled)", typeRef: 52 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Max date", typeRef: 362 }, { name: "maxLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], typeRef: 52 }, { name: "minDate", required: false, source: "component", description: "Min date", typeRef: 362 }, { name: "monthsListFormat", required: false, source: "component", description: "`dayjs` format for months list", typeRef: 359 }, { name: "nextIcon", required: false, source: "component", description: "Change next icon", typeRef: 263 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "numberOfColumns", required: false, source: "component", description: "Number of columns displayed next to each other", typeRef: 353 }, { name: "presets", required: false, source: "component", description: "Predefined values to pick from", typeRef: 157 }, { name: "previousIcon", required: false, source: "component", description: "Change previous icon", typeRef: 263 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "submitButtonProps", required: false, source: "component", description: "Props passed down to the submit button", typeRef: 90 }, { name: "timePickerProps", required: false, source: "component", description: "Props passed down to `TimePicker` component", typeRef: 196 }, { name: "type", required: false, source: "component", literalValues: ["default", "multiple", "range"], description: "Picker type: range, multiple or default", typeRef: 158 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Value for controlled component", typeRef: 159 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "weekendDays", required: false, source: "component", description: "Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider`.", typeRef: 161 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "withSeconds", required: false, source: "component", literalValues: [false, true], description: "Determines whether the seconds input should be displayed", typeRef: 341 }, { name: "withWeekNumbers", required: false, source: "component", literalValues: [false, true], description: "Determines whether week numbers should be displayed", typeRef: 341 }, { name: "yearsListFormat", required: false, source: "component", description: "dayjs format for years list", typeRef: 359 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "InlineStyles", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/inline-styles/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Writes unscoped style rules" }, { name: "Input", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input/", props: [], blockedProps: [], subcomponents: ["Input.ClearButton", "Input.Description", "Input.Error", "Input.Label", "Input.Placeholder", "Input.Success", "Input.Wrapper"], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Input.ClearButton", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Input.Description", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Input.Error", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Input.Label", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Input.Placeholder", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Input.Success", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Input.Wrapper", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "InputBase", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input-base/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "InputClearButton", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input-clear-button/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "InputClearSection", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input-clear-section/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "InputDescription", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input-description/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "InputError", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input-error/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "InputLabel", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input-label/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "InputPlaceholder", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input-placeholder/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "InputSuccess", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input-success/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "InputWrapper", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/input-wrapper/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "JsonInput", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/json-input/", props: [{ name: "attributes", required: false, source: "component", typeRef: 416 }, { name: "autoComplete", required: false, source: "component", typeRef: 359 }, { name: "autosize", required: false, source: "component", literalValues: [false, true], description: "If set, enables textarea height growing with its content", typeRef: 341 }, { name: "bottomSection", required: false, source: "component", description: "Content rendered at the bottom of the input, inside the border", typeRef: 263 }, { name: "bottomSectionProps", required: false, source: "component", description: "Props passed down to the `bottomSection` element", typeRef: 259 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 359 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "formatOnBlur", required: false, source: "component", literalValues: [false, true], description: "Determines whether the value should be formatted on blur", typeRef: 341 }, { name: "indentSpaces", required: false, source: "component", description: "Number of spaces to use as white space for formatting. Passed as the third argument to `serialize` function.", typeRef: 353 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "maxRows", required: false, source: "component", description: "Maximum rows for autosize textarea to grow, ignored if `autosize` prop is not set", typeRef: 353 }, { name: "minRows", required: false, source: "component", description: "Minimum rows of autosize textarea, ignored if `autosize` prop is not set", typeRef: 353 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "resize", required: false, source: "component", literalValues: ["-moz-initial", "block", "both", "horizontal", "inherit", "initial", "inline", "none", "revert", "revert-layer", "unset", "vertical"], description: "Controls `resize` CSS property", typeRef: 3 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "validationError", required: false, source: "component", description: "Error message shown when the input value is invalid JSON (checked on blur). If not provided, a generic error state is shown. Takes precedence over the `error` prop when validation fails.", typeRef: 263 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Kbd", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/kbd/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls `font-size` and `padding`", typeRef: 355 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "LevelsGroup", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/levels-group/", props: [{ name: "attributes", required: false, source: "component", typeRef: 444 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the group should take the full width of its container", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], typeRef: 81 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "LineChart", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/line-chart/", props: [{ name: "activeDotProps", required: false, source: "component", description: "Props passed down to all active dots. Ignored if `withDots={false}` is set.", typeRef: 178 }, { name: "attributes", required: false, source: "component", typeRef: 438 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "connectNulls", required: false, source: "component", literalValues: [false, true], description: "Determines whether points with `null` values should be connected", typeRef: 341 }, { name: "curveType", required: false, source: "component", literalValues: ["bump", "linear", "monotone", "natural", "step", "stepAfter", "stepBefore"], description: "Type of the curve", typeRef: 69 }, { name: "data", required: true, source: "component", description: "Data used to display chart", typeRef: 267 }, { name: "dataKey", required: true, source: "component", description: "Key of the `data` object for x-axis values", typeRef: 359 }, { name: "dotProps", required: false, source: "component", description: "Props passed down to all dots. Ignored if `withDots={false}` is set.", typeRef: 178 }, { name: "fillOpacity", required: false, source: "component", description: "Controls fill opacity of all lines", typeRef: 353 }, { name: "gradientStops", required: false, source: "component", description: "Data used to generate gradient stops", typeRef: 174 }, { name: "gridAxis", required: false, source: "component", literalValues: ["none", "x", "xy", "y"], description: "Specifies which lines should be displayed in the grid, `'x'` by default", typeRef: 61 }, { name: "gridColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color of the grid and cursor lines, by default depends on color scheme", typeRef: 162 }, { name: "gridProps", required: false, source: "component", description: "Props passed down to the `CartesianGrid` component", typeRef: 189 }, { name: "legendProps", required: false, source: "component", description: "Props passed down to the `Legend` component", typeRef: 190 }, { name: "lineChartProps", required: false, source: "component", description: "Props passed down to recharts `LineChart` component", typeRef: 91 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Chart orientation, `'horizontal'` by default", typeRef: 36 }, { name: "referenceLines", required: false, source: "component", description: "Reference lines that should be displayed on the chart", typeRef: 149 }, { name: "rightYAxisLabel", required: false, source: "component", description: "A label to display next to the right y-axis", typeRef: 359 }, { name: "rightYAxisProps", required: false, source: "component", description: "Props passed down to the `YAxis` recharts component rendered on the right side", typeRef: 199 }, { name: "series", required: true, source: "component", description: "An array of objects with `name` and `color` keys. Determines which data should be consumed from the `data` array.", typeRef: 175 }, { name: "strokeWidth", required: false, source: "component", description: "Stroke width for the chart lines", typeRef: 353 }, { name: "textColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color of the text displayed inside the chart, `'dimmed'` by default", typeRef: 162 }, { name: "tickLine", required: false, source: "component", literalValues: ["none", "x", "xy", "y"], description: "Specifies which axis should have tick line, `'y'` by default", typeRef: 61 }, { name: "tooltipAnimationDuration", required: false, source: "component", description: "Tooltip position animation duration in ms, `0` by default", typeRef: 353 }, { name: "tooltipProps", required: false, source: "component", description: "Props passed down to the `Tooltip` component", typeRef: 197 }, { name: "type", required: false, source: "component", literalValues: ["default", "gradient"], description: "Controls styles of the line", typeRef: 27 }, { name: "unit", required: false, source: "component", description: "Unit displayed next to each tick in y-axis", typeRef: 359 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withDots", required: false, source: "component", literalValues: [false, true], description: "Determines whether dots should be displayed", typeRef: 341 }, { name: "withLegend", required: false, source: "component", literalValues: [false, true], description: "Determines whether chart legend should be displayed, `false` by default", typeRef: 341 }, { name: "withPointLabels", required: false, source: "component", literalValues: [false, true], description: "Determines whether each point should have associated label", typeRef: 341 }, { name: "withRightYAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether additional y-axis should be displayed on the right side of the chart, `false` by default", typeRef: 341 }, { name: "withTooltip", required: false, source: "component", literalValues: [false, true], description: "Determines whether chart tooltip should be displayed, `true` by default", typeRef: 341 }, { name: "withXAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether x-axis should be displayed, `true` by default", typeRef: 341 }, { name: "withYAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether y-axis should be displayed, `true` by default", typeRef: 341 }, { name: "xAxisLabel", required: false, source: "component", description: "A label to display below the x-axis", typeRef: 359 }, { name: "xAxisProps", required: false, source: "component", description: "Props passed down to the `XAxis` recharts component", typeRef: 198 }, { name: "yAxisLabel", required: false, source: "component", description: "A label to display next to the y-axis", typeRef: 359 }, { name: "yAxisProps", required: false, source: "component", description: "Props passed down to the `YAxis` recharts component", typeRef: 199 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "List", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/list/", props: [{ name: "attributes", required: false, source: "component", typeRef: 462 }, { name: "center", required: false, source: "component", literalValues: [false, true], description: "Vertically centers list items with their icons", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "icon", required: false, source: "component", description: "Icon to replace default list markers. Applied to all items unless overridden on individual List.Item components", typeRef: 263 }, { name: "listStyleType", required: false, source: "component", literalValues: ["-moz-initial", "inherit", "initial", "none", "revert", "revert-layer", "unset"], description: "Controls CSS `list-style-type` property. Overrides the default list marker style based on list type", typeRef: 249 }, { name: "reversed", required: false, source: "component", literalValues: [false, true], description: 'Reverses the order of list items (only works with type="ordered")', typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls `font-size` and `line-height`", typeRef: 81 }, { name: "spacing", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Key of `theme.spacing` or any valid CSS value to set spacing between items", typeRef: 183 }, { name: "start", required: false, source: "component", description: 'Starting value for ordered list numbering (only works with type="ordered")', typeRef: 353 }, { name: "type", required: false, source: "component", literalValues: ["ordered", "unordered"], description: "List type", typeRef: 65 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withPadding", required: false, source: "component", literalValues: [false, true], description: "Adds extra horizontal padding to the list, useful for nested lists", typeRef: 341 }], blockedProps: [], subcomponents: ["List.Item"], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "List.Item", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/list/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "icon", required: false, source: "component", description: "Icon to replace item bullet", typeRef: 263 }, { name: "styles", required: false, source: "component", typeRef: 229 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "ListItem", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/list-item/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "icon", required: false, source: "component", description: "Icon to replace item bullet", typeRef: 263 }, { name: "styles", required: false, source: "component", typeRef: 229 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Loader", package: "@mantine/core", category: "feedback", safety: "wrapped", documentationUrl: "https://mantine.dev/core/loader/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "loaders", required: false, source: "component", description: "Object of loaders components, can be customized via default props or inline.", typeRef: 226 }, { name: "radius", required: false, source: "component", typeRef: 365 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls `width` and `height` of the loader. `Loader` has predefined `xs`-`xl` values. Numbers are converted to rem.", typeRef: 355 }, { name: "type", required: false, source: "component", literalValues: ["bars", "dots", "oval"], description: "Loader type, key of `loaders` prop", typeRef: 110 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Do not rely on color alone to communicate status."] }, { name: "LoadingOverlay", package: "@mantine/core", category: "feedback", safety: "wrapped", documentationUrl: "https://mantine.dev/core/loading-overlay/", props: [{ name: "attributes", required: false, source: "component", typeRef: 464 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "loaderProps", required: false, source: "component", description: "Props passed down to `Loader` component", typeRef: 176 }, { name: "overlayProps", required: false, source: "component", description: "Props passed down to `Overlay` component. Use to customizing blur, opacity, color and other properties.", typeRef: 201 }, { name: "transitionProps", required: false, source: "component", description: "Props passed down to `Transition` component. Set `duration` to create custom transition or override default transition.", typeRef: 208 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "visible", required: false, source: "component", literalValues: [false, true], description: "Controls overlay visibility. Typically used with state (useState, useDisclosure).", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Do not rely on color alone to communicate status."] }, { name: "MantineProvider", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/mantine-provider/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Replaces a Homarr-owned provider boundary" }, { name: "MantineThemeProvider", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/mantine-theme-provider/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Replaces a Homarr-owned provider boundary" }, { name: "Mark", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/mark/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Marquee", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/marquee/", props: [{ name: "attributes", required: false, source: "component", typeRef: 395 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "duration", required: false, source: "component", description: "Animation duration in ms", typeRef: 353 }, { name: "fadeEdgeColor", required: false, source: "component", description: "Color of the fade gradient,", typeRef: 359 }, { name: "fadeEdgeSize", required: false, source: "component", description: "Size of the fade gradient,", typeRef: 359 }, { name: "fadeEdges", required: false, source: "component", literalValues: [false, true], description: "Whether to show gradient fade on edges,", typeRef: 341 }, { name: "gap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Gap between repeated children, key of `theme.spacing` or any valid CSS value", typeRef: 183 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Scroll orientation", typeRef: 36 }, { name: "pauseOnHover", required: false, source: "component", literalValues: [false, true], description: "Pauses animation on hover", typeRef: 341 }, { name: "repeat", required: false, source: "component", description: "Number of times children are repeated inline for seamless scrolling", typeRef: 353 }, { name: "reverse", required: false, source: "component", literalValues: [false, true], description: "Reverses animation direction", typeRef: 341 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "MaskInput", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/mask-input/", props: [{ name: "alwaysShowMask", required: false, source: "component", literalValues: [false, true], description: "Show mask pattern even when field is empty and unfocused", typeRef: 341 }, { name: "attributes", required: false, source: "component", typeRef: 416 }, { name: "autoClear", required: false, source: "component", literalValues: [false, true], description: "Clear value on blur when mask is incomplete, `false` by default", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "mask", required: true, source: "component", description: "Mask pattern string or array of string literals and RegExp objects", typeRef: 361 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "separate", required: false, source: "component", literalValues: [false, true], description: "When true, raw and display values are decoupled", typeRef: 341 }, { name: "showMaskOnFocus", required: false, source: "component", literalValues: [false, true], description: "Show mask placeholder on focus, `true` by default", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "slotChar", required: false, source: "component", description: 'Character displayed in unfilled slots, `"_"` by default', typeRef: 352 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "tokens", required: false, source: "component", description: "Override or extend the default token map", typeRef: 265 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Menu", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu/", props: [{ name: "alignItemsLabels", required: false, source: "component", literalValues: ["all", "none", "with-indicators"], description: "Controls how indicator slot space is reserved on menu items for label alignment. `'all'` reserves space on every `Menu.Item`, `'with-indicators'` reserves space only on `Menu.CheckboxItem` and `Menu.RadioItem`, `'none'` reserves space only on items that currently display an indicator.", typeRef: 55 }, { name: "arrowOffset", required: false, source: "component", description: "Arrow offset in px", typeRef: 353 }, { name: "arrowPosition", required: false, source: "component", literalValues: ["center", "merge", "side"], description: "Arrow position", typeRef: 24 }, { name: "arrowRadius", required: false, source: "component", description: "Arrow `border-radius` in px", typeRef: 353 }, { name: "arrowSize", required: false, source: "component", description: "Arrow size in px", typeRef: 353 }, { name: "attributes", required: false, source: "component", typeRef: 430 }, { name: "checkIcon", required: false, source: "component", description: "Custom icon rendered as the indicator of checked `Menu.CheckboxItem` and selected `Menu.RadioItem`. Can be overridden per item with the `checkIcon` prop.", typeRef: 263 }, { name: "clickOutsideEvents", required: false, source: "component", description: "Events that trigger outside click detection. Includes mousedown for desktop clicks, touchstart for mobile, and keydown for Escape key handling", typeRef: 368 }, { name: "closeDelay", required: false, source: "component", description: 'Close delay in ms, applicable only to `trigger="hover"` variant', typeRef: 353 }, { name: "closeOnClickOutside", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown is closed on outside clicks", typeRef: 341 }, { name: "closeOnEscape", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown is closed when the `Escape` key is pressed", typeRef: 341 }, { name: "closeOnItemClick", required: false, source: "component", literalValues: [false, true], description: "If set, the Menu is closed when one of the items is clicked. Can be overridden per item with `closeMenuOnClick` prop", typeRef: 341 }, { name: "defaultOpened", required: false, source: "component", literalValues: [false, true], description: "Uncontrolled menu initial opened state", typeRef: 341 }, { name: "floatingStrategy", required: false, source: "component", literalValues: ["absolute", "fixed"], description: "Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy)", typeRef: 34 }, { name: "hideDetached", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown is hidden when the element is hidden with styles or not visible on the screen", typeRef: 341 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown is not unmounted from the DOM when hidden. `display: none` styles are added instead.", typeRef: 341 }, { name: "keepMountedMode", required: false, source: "component", literalValues: ["activity", "display-none"], description: "Controls how the dropdown is hidden when `keepMounted` is set: `'activity'` \u2013 hidden with React 19 `Activity` component, `'display-none'` \u2013 hidden with `display: none` styles", typeRef: 7 }, { name: "loop", required: false, source: "component", literalValues: [false, true], description: "If set, arrow key presses wrap around from last item to first and vice versa", typeRef: 341 }, { name: "menuItemTabIndex", required: false, source: "component", literalValues: [-1, 0], description: "Set the `tabindex` on all menu items. Use `0` to allow Tab key navigation through menu items (required for navigation menus following WAI-ARIA disclosure pattern).", typeRef: 133 }, { name: "middlewares", required: false, source: "component", description: "Floating ui middlewares to configure position handling", typeRef: 241 }, { name: "offset", required: false, source: "component", description: "Offset of the dropdown element", typeRef: 354 }, { name: "openDelay", required: false, source: "component", description: 'Open delay in ms, applicable only to `trigger="hover"` variant', typeRef: 353 }, { name: "opened", required: false, source: "component", literalValues: [false, true], description: "Controlled menu opened state", typeRef: 341 }, { name: "overlayProps", required: false, source: "component", description: "Props passed down to `Overlay` component", typeRef: 100 }, { name: "position", required: false, source: "component", literalValues: ["bottom", "bottom-end", "bottom-start", "left", "left-end", "left-start", "right", "right-end", "right-start", "top", "top-end", "top-start"], description: "Dropdown position relative to the target element", typeRef: 48 }, { name: "preventPositionChangeWhenVisible", required: false, source: "component", literalValues: [false, true], description: "If `true`, the dropdown picks its side on open (flip runs once, preferring the `position` prop) and then never changes side \u2014 scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the `shift` middleware. Set to `false` to keep flip active and allow the dropdown to re-flip on every change.", typeRef: 341 }, { name: "returnFocus", required: false, source: "component", literalValues: [false, true], description: "Determines whether focus should be automatically returned to control when dropdown closes", typeRef: 341 }, { name: "transitionProps", required: false, source: "component", description: "Props passed down to the `Transition` component. Use to configure duration and animation type.", typeRef: 208 }, { name: "trapFocus", required: false, source: "component", literalValues: [false, true], description: "If set, focus is trapped within the menu dropdown when it is opened", typeRef: 341 }, { name: "trigger", required: false, source: "component", literalValues: ["click", "click-hover", "hover"], description: "Event trigger to open menu. Note: 'hover' is not keyboard accessible; prefer 'click-hover' for accessible hover menus", typeRef: 37 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "width", required: false, source: "component", description: "Dropdown width, or `'target'` to make dropdown width the same as target element", typeRef: 243 }, { name: "withArrow", required: false, source: "component", literalValues: [false, true], description: "Determines whether component should have an arrow", typeRef: 341 }, { name: "withInitialFocusPlaceholder", required: false, source: "component", literalValues: [false, true], description: "Adds a hidden focusable element at the start of the dropdown to prevent unexpected focus jumps when opening with keyboard. Set to false if you need custom focus management.", typeRef: 341 }, { name: "withOverlay", required: false, source: "component", literalValues: [false, true], description: "Determines whether the overlay should be displayed when the dropdown is opened", typeRef: 341 }], blockedProps: [], subcomponents: ["Menu.CheckboxGroup", "Menu.CheckboxItem", "Menu.ContextMenu", "Menu.Divider", "Menu.Dropdown", "Menu.Item", "Menu.Label", "Menu.RadioGroup", "Menu.RadioItem", "Menu.Search", "Menu.Sub", "Menu.Target"], bind: { type: "boolean", initialProp: "defaultChecked" }, accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Menu.CheckboxGroup", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu/", props: [{ name: "defaultValue", required: false, source: "component", description: "Uncontrolled default selected values", typeRef: 368 }, { name: "value", required: false, source: "component", description: "Controlled selected values", typeRef: 368 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Menu.CheckboxItem", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu/", props: [{ name: "checkIcon", required: false, source: "component", description: "Replaces the default check icon rendered in the indicator slot when the item is checked. Overrides `checkIcon` set on `Menu`.", typeRef: 263 }, { name: "closeMenuOnClick", required: false, source: "component", literalValues: [false, true], description: "If set, closes the menu when this item is clicked. By default, checkbox items do not close the menu.", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "data-disabled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Section displayed at the end of the label", typeRef: 263 }, { name: "styles", required: false, source: "component", typeRef: 230 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "value", required: false, source: "component", description: "Value of the checkbox item. When used inside `Menu.CheckboxGroup`, determines whether the item is checked and what value is added/removed on toggle.", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Menu.ContextMenu", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu/", props: [{ name: "longPressDelay", required: false, source: "component", description: "Delay in ms before a touch long-press opens the dropdown on touch devices, `500` by default", typeRef: 353 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Menu.Divider", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 213 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Menu.Dropdown", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 215 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Menu.Item", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu/", props: [{ name: "closeMenuOnClick", required: false, source: "component", literalValues: [false, true], description: "Controls whether the menu closes when this item is clicked. When undefined, inherits from Menu's `closeOnItemClick` prop. When true or false, overrides the Menu-level setting", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "data-disabled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "leftSection", required: false, source: "component", description: "Section displayed at the start of the label", typeRef: 263 }, { name: "rightSection", required: false, source: "component", description: "Section displayed at the end of the label", typeRef: 263 }, { name: "styles", required: false, source: "component", typeRef: 231 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Menu.Label", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Menu.RadioGroup", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu/", props: [{ name: "defaultValue", required: false, source: "component", description: "Uncontrolled default selected value", typeRef: 352 }, { name: "value", required: false, source: "component", description: "Controlled selected value", typeRef: 352 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Menu.RadioItem", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu/", props: [{ name: "checkIcon", required: false, source: "component", description: "Replaces the default radio indicator rendered when the item is selected. Overrides `checkIcon` set on `Menu`.", typeRef: 263 }, { name: "closeMenuOnClick", required: false, source: "component", literalValues: [false, true], description: "If set, closes the menu when this item is clicked. By default, radio items do not close the menu.", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "data-disabled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Section displayed at the end of the label", typeRef: 263 }, { name: "styles", required: false, source: "component", typeRef: 232 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "value", required: true, source: "component", description: "Value of the radio item. Used by the parent `Menu.RadioGroup` to determine which item is selected.", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Menu.Search", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu/", props: [{ name: "attributes", required: false, source: "component", typeRef: 420 }, { name: "clearSearchOnClose", required: false, source: "component", literalValues: [false, true], description: "If set, clears the search value after the menu close transition completes. Requires a controlled `value`/`onChange` pair.", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "error", required: false, source: "component", description: "Determines whether the input should have error styles and `aria-invalid` attribute", typeRef: 263 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "multiline", required: false, source: "component", literalValues: [false, true], description: 'Adjusts padding and sizing calculations for multiline inputs (use with `component="textarea"`). Does not make the input multiline by itself.', typeRef: 341 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Determines whether the input should have success styles", typeRef: 263 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "withAria", required: false, source: "component", literalValues: [false, true], description: "Determines whether `aria-` and other accessibility attributes should be added to the input. Only disable when implementing custom accessibility handling.", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element of the `Input` component", typeRef: 331 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Menu.Sub", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu/", props: [{ name: "arrowOffset", required: false, source: "component", description: "Arrow offset in px", typeRef: 353 }, { name: "arrowPosition", required: false, source: "component", literalValues: ["center", "merge", "side"], description: "Arrow position", typeRef: 24 }, { name: "arrowRadius", required: false, source: "component", description: "Arrow `border-radius` in px", typeRef: 353 }, { name: "arrowSize", required: false, source: "component", description: "Arrow size in px", typeRef: 353 }, { name: "closeDelay", required: false, source: "component", description: "Close delay in ms, applicable when hover trigger is used", typeRef: 353 }, { name: "floatingStrategy", required: false, source: "component", literalValues: ["absolute", "fixed"], description: "Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy)", typeRef: 34 }, { name: "hideDetached", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown is hidden when the element is hidden with styles or not visible on the screen", typeRef: 341 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown is not unmounted from the DOM when hidden. `display: none` styles are added instead.", typeRef: 341 }, { name: "keepMountedMode", required: false, source: "component", literalValues: ["activity", "display-none"], description: "Controls how the dropdown is hidden when `keepMounted` is set: `'activity'` \u2013 hidden with React 19 `Activity` component, `'display-none'` \u2013 hidden with `display: none` styles", typeRef: 7 }, { name: "middlewares", required: false, source: "component", description: "Floating ui middlewares to configure position handling", typeRef: 241 }, { name: "offset", required: false, source: "component", description: "Offset of the dropdown element", typeRef: 354 }, { name: "openDelay", required: false, source: "component", description: "Open delay in ms, applicable when hover trigger is used", typeRef: 353 }, { name: "opened", required: false, source: "component", literalValues: [false, true], description: "Controlled opened state", typeRef: 341 }, { name: "overlayProps", required: false, source: "component", description: "Props passed down to `Overlay` component", typeRef: 100 }, { name: "position", required: false, source: "component", literalValues: ["bottom", "bottom-end", "bottom-start", "left", "left-end", "left-start", "right", "right-end", "right-start", "top", "top-end", "top-start"], description: "Dropdown position relative to the target element", typeRef: 48 }, { name: "preventPositionChangeWhenVisible", required: false, source: "component", literalValues: [false, true], description: "If `true`, the dropdown picks its side on open (flip runs once, preferring the `position` prop) and then never changes side \u2014 scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the `shift` middleware. Set to `false` to keep flip active and allow the dropdown to re-flip on every change.", typeRef: 341 }, { name: "returnFocus", required: false, source: "component", literalValues: [false, true], description: "Determines whether focus should be automatically returned to control when dropdown closes", typeRef: 341 }, { name: "safeAreaPolygon", required: false, source: "component", description: "Determines whether submenu stays open while the cursor moves toward its dropdown. Pass an object to configure safe polygon behavior.", typeRef: 337 }, { name: "transitionProps", required: false, source: "component", description: "Props passed down to the `Transition` component that used to animate dropdown presence, use to configure duration and animation type", typeRef: 208 }, { name: "width", required: false, source: "component", description: "Dropdown width, or `'target'` to make dropdown width the same as target element", typeRef: 243 }, { name: "withArrow", required: false, source: "component", literalValues: [false, true], description: "Determines whether component should have an arrow", typeRef: 341 }, { name: "withOverlay", required: false, source: "component", literalValues: [false, true], description: "Determines whether the overlay should be displayed when the dropdown is opened", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Menu.Target", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuCheckboxGroup", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-checkbox-group/", props: [{ name: "defaultValue", required: false, source: "component", description: "Uncontrolled default selected values", typeRef: 368 }, { name: "value", required: false, source: "component", description: "Controlled selected values", typeRef: 368 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuCheckboxItem", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-checkbox-item/", props: [{ name: "checkIcon", required: false, source: "component", description: "Replaces the default check icon rendered in the indicator slot when the item is checked. Overrides `checkIcon` set on `Menu`.", typeRef: 263 }, { name: "closeMenuOnClick", required: false, source: "component", literalValues: [false, true], description: "If set, closes the menu when this item is clicked. By default, checkbox items do not close the menu.", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "data-disabled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Section displayed at the end of the label", typeRef: 263 }, { name: "styles", required: false, source: "component", typeRef: 230 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "value", required: false, source: "component", description: "Value of the checkbox item. When used inside `Menu.CheckboxGroup`, determines whether the item is checked and what value is added/removed on toggle.", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuContextMenu", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-context-menu/", props: [{ name: "longPressDelay", required: false, source: "component", description: "Delay in ms before a touch long-press opens the dropdown on touch devices, `500` by default", typeRef: 353 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuDivider", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-divider/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 213 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuDropdown", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-dropdown/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 215 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuItem", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-item/", props: [{ name: "closeMenuOnClick", required: false, source: "component", literalValues: [false, true], description: "Controls whether the menu closes when this item is clicked. When undefined, inherits from Menu's `closeOnItemClick` prop. When true or false, overrides the Menu-level setting", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "data-disabled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "leftSection", required: false, source: "component", description: "Section displayed at the start of the label", typeRef: 263 }, { name: "rightSection", required: false, source: "component", description: "Section displayed at the end of the label", typeRef: 263 }, { name: "styles", required: false, source: "component", typeRef: 231 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuLabel", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-label/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuRadioGroup", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-radio-group/", props: [{ name: "defaultValue", required: false, source: "component", description: "Uncontrolled default selected value", typeRef: 352 }, { name: "value", required: false, source: "component", description: "Controlled selected value", typeRef: 352 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuRadioItem", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-radio-item/", props: [{ name: "checkIcon", required: false, source: "component", description: "Replaces the default radio indicator rendered when the item is selected. Overrides `checkIcon` set on `Menu`.", typeRef: 263 }, { name: "closeMenuOnClick", required: false, source: "component", literalValues: [false, true], description: "If set, closes the menu when this item is clicked. By default, radio items do not close the menu.", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "data-disabled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Section displayed at the end of the label", typeRef: 263 }, { name: "styles", required: false, source: "component", typeRef: 232 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "value", required: true, source: "component", description: "Value of the radio item. Used by the parent `Menu.RadioGroup` to determine which item is selected.", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuSearch", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-search/", props: [{ name: "attributes", required: false, source: "component", typeRef: 420 }, { name: "clearSearchOnClose", required: false, source: "component", literalValues: [false, true], description: "If set, clears the search value after the menu close transition completes. Requires a controlled `value`/`onChange` pair.", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "error", required: false, source: "component", description: "Determines whether the input should have error styles and `aria-invalid` attribute", typeRef: 263 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "multiline", required: false, source: "component", literalValues: [false, true], description: 'Adjusts padding and sizing calculations for multiline inputs (use with `component="textarea"`). Does not make the input multiline by itself.', typeRef: 341 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Determines whether the input should have success styles", typeRef: 263 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "withAria", required: false, source: "component", literalValues: [false, true], description: "Determines whether `aria-` and other accessibility attributes should be added to the input. Only disable when implementing custom accessibility handling.", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element of the `Input` component", typeRef: 331 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuSub", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-sub/", props: [{ name: "arrowOffset", required: false, source: "component", description: "Arrow offset in px", typeRef: 353 }, { name: "arrowPosition", required: false, source: "component", literalValues: ["center", "merge", "side"], description: "Arrow position", typeRef: 24 }, { name: "arrowRadius", required: false, source: "component", description: "Arrow `border-radius` in px", typeRef: 353 }, { name: "arrowSize", required: false, source: "component", description: "Arrow size in px", typeRef: 353 }, { name: "closeDelay", required: false, source: "component", description: "Close delay in ms, applicable when hover trigger is used", typeRef: 353 }, { name: "floatingStrategy", required: false, source: "component", literalValues: ["absolute", "fixed"], description: "Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy)", typeRef: 34 }, { name: "hideDetached", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown is hidden when the element is hidden with styles or not visible on the screen", typeRef: 341 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown is not unmounted from the DOM when hidden. `display: none` styles are added instead.", typeRef: 341 }, { name: "keepMountedMode", required: false, source: "component", literalValues: ["activity", "display-none"], description: "Controls how the dropdown is hidden when `keepMounted` is set: `'activity'` \u2013 hidden with React 19 `Activity` component, `'display-none'` \u2013 hidden with `display: none` styles", typeRef: 7 }, { name: "middlewares", required: false, source: "component", description: "Floating ui middlewares to configure position handling", typeRef: 241 }, { name: "offset", required: false, source: "component", description: "Offset of the dropdown element", typeRef: 354 }, { name: "openDelay", required: false, source: "component", description: "Open delay in ms, applicable when hover trigger is used", typeRef: 353 }, { name: "opened", required: false, source: "component", literalValues: [false, true], description: "Controlled opened state", typeRef: 341 }, { name: "overlayProps", required: false, source: "component", description: "Props passed down to `Overlay` component", typeRef: 100 }, { name: "position", required: false, source: "component", literalValues: ["bottom", "bottom-end", "bottom-start", "left", "left-end", "left-start", "right", "right-end", "right-start", "top", "top-end", "top-start"], description: "Dropdown position relative to the target element", typeRef: 48 }, { name: "preventPositionChangeWhenVisible", required: false, source: "component", literalValues: [false, true], description: "If `true`, the dropdown picks its side on open (flip runs once, preferring the `position` prop) and then never changes side \u2014 scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the `shift` middleware. Set to `false` to keep flip active and allow the dropdown to re-flip on every change.", typeRef: 341 }, { name: "returnFocus", required: false, source: "component", literalValues: [false, true], description: "Determines whether focus should be automatically returned to control when dropdown closes", typeRef: 341 }, { name: "safeAreaPolygon", required: false, source: "component", description: "Determines whether submenu stays open while the cursor moves toward its dropdown. Pass an object to configure safe polygon behavior.", typeRef: 337 }, { name: "transitionProps", required: false, source: "component", description: "Props passed down to the `Transition` component that used to animate dropdown presence, use to configure duration and animation type", typeRef: 208 }, { name: "width", required: false, source: "component", description: "Dropdown width, or `'target'` to make dropdown width the same as target element", typeRef: 243 }, { name: "withArrow", required: false, source: "component", literalValues: [false, true], description: "Determines whether component should have an arrow", typeRef: 341 }, { name: "withOverlay", required: false, source: "component", literalValues: [false, true], description: "Determines whether the overlay should be displayed when the dropdown is opened", typeRef: 341 }], blockedProps: [], subcomponents: ["MenuSub.Dropdown", "MenuSub.Item", "MenuSub.Target"], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuSub.Dropdown", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-sub/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 215 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuSub.Item", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-sub/", props: [{ name: "closeMenuOnClick", required: false, source: "component", literalValues: [false, true], description: "If set, the menu is closed when the item is clicked. Overrides `closeOnItemClick` prop on the `Menu` component.", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "data-disabled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "leftSection", required: false, source: "component", description: "Section displayed at the start of the label", typeRef: 263 }, { name: "rightSection", required: false, source: "component", description: "Section displayed at the end of the label", typeRef: 263 }, { name: "styles", required: false, source: "component", typeRef: 233 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuSub.Target", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-sub/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuSubDropdown", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-sub-dropdown/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 215 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuSubItem", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-sub-item/", props: [{ name: "closeMenuOnClick", required: false, source: "component", literalValues: [false, true], description: "If set, the menu is closed when the item is clicked. Overrides `closeOnItemClick` prop on the `Menu` component.", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "data-disabled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "leftSection", required: false, source: "component", description: "Section displayed at the start of the label", typeRef: 263 }, { name: "rightSection", required: false, source: "component", description: "Section displayed at the end of the label", typeRef: 263 }, { name: "styles", required: false, source: "component", typeRef: 233 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuSubTarget", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-sub-target/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "MenuTarget", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/menu-target/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Menubar", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/menubar/", props: [], blockedProps: [], subcomponents: ["Menubar.Dropdown", "Menubar.Menu", "Menubar.Target"], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Menubar.Dropdown", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/menubar/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Menubar.Menu", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/menubar/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "Menubar.Target", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/menubar/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "MenubarDropdown", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/menubar-dropdown/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "MenubarMenu", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/menubar-menu/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "MenubarTarget", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/menubar-target/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "MiniCalendar", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/mini-calendar/", props: [{ name: "attributes", required: false, source: "component", typeRef: 456 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "date", required: false, source: "component", description: "Controlled component date value, start date of the interval", typeRef: 362 }, { name: "defaultDate", required: false, source: "component", description: "Uncontrolled component default value, start date of the interval", typeRef: 362 }, { name: "locale", required: false, source: "component", description: "dayjs locale used for formatting", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum date that can be selected, date object or date string in `YYYY-MM-DD` format", typeRef: 362 }, { name: "minDate", required: false, source: "component", description: "Minimum date that can be selected, date object or date string in `YYYY-MM-DD` format", typeRef: 362 }, { name: "monthLabelFormat", required: false, source: "component", description: "Dayjs format string for month label", typeRef: 359 }, { name: "nextControlProps", required: false, source: "component", description: "Props passed to next control button", typeRef: 102 }, { name: "numberOfDays", required: false, source: "component", description: "Number of days to display in the calendar", typeRef: 353 }, { name: "previousControlProps", required: false, source: "component", description: "Props passed to previous control button", typeRef: 102 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Selected date, controlled value", typeRef: 363 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "Modal", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal/", props: [], blockedProps: [], subcomponents: ["Modal.Body", "Modal.CloseButton", "Modal.Content", "Modal.Header", "Modal.Overlay", "Modal.Root", "Modal.Stack", "Modal.Title"], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Modal.Body", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Modal.CloseButton", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Modal.Content", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Modal.Header", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Modal.Overlay", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Modal.Root", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Modal.Stack", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Modal.Title", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "ModalBase", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal-base/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "ModalBaseBody", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal-base-body/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "ModalBaseCloseButton", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal-base-close-button/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "ModalBaseContent", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal-base-content/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "ModalBaseHeader", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal-base-header/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "ModalBaseOverlay", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal-base-overlay/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "ModalBaseTitle", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal-base-title/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "ModalBody", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal-body/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "ModalCloseButton", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal-close-button/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "ModalContent", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal-content/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "ModalHeader", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal-header/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "ModalOverlay", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal-overlay/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "ModalRoot", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal-root/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "ModalStack", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal-stack/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "ModalTitle", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/modal-title/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Escapes or replaces the widget layout, focus, scrolling, or overlay boundary" }, { name: "Month", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/month/", props: [{ name: "align", required: false, source: "component", literalValues: ["center", "left", "right"], typeRef: 22 }, { name: "attributes", required: false, source: "component", typeRef: 447 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "firstDayOfWeek", required: false, source: "component", literalValues: [0, 1, 2, 3, 4, 5, 6], description: "Number 0-6, where 0 \u2013 Sunday and 6 \u2013 Saturday.", typeRef: 134 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the month should take the full width of its container", typeRef: 341 }, { name: "hideOutsideDates", required: false, source: "component", literalValues: [false, true], description: "Determines whether outside dates should be hidden", typeRef: 341 }, { name: "hideWeekdays", required: false, source: "component", literalValues: [false, true], description: "Determines whether weekdays row should be hidden", typeRef: 341 }, { name: "highlightToday", required: false, source: "component", literalValues: [false, true], description: "Determines whether today should be highlighted with a border", typeRef: 341 }, { name: "locale", required: false, source: "component", description: "`dayjs` locale, the default value is defined by `DatesProvider`", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date, in `YYYY-MM-DD` format", typeRef: 362 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date, in `YYYY-MM-DD` format", typeRef: 362 }, { name: "month", required: true, source: "component", description: "Month to display, value `YYYY-MM-DD`", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size", typeRef: 81 }, { name: "static", required: false, source: "component", literalValues: [false, true], description: "Determines whether days should be static, static days can be used to display month if it is not expected that user will interact with the component in any way", typeRef: 341 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "weekendDays", required: false, source: "component", description: "Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider`.", typeRef: 161 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated by space", typeRef: 341 }, { name: "withWeekNumbers", required: false, source: "component", literalValues: [false, true], description: "Determines whether week numbers should be displayed", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "MonthLevel", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/month-level/", props: [{ name: "attributes", required: false, source: "component", typeRef: 448 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "firstDayOfWeek", required: false, source: "component", literalValues: [0, 1, 2, 3, 4, 5, 6], description: "Number 0-6, where 0 \u2013 Sunday and 6 \u2013 Saturday.", typeRef: 134 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the calendar should take the full width of its container", typeRef: 341 }, { name: "hasNextLevel", required: false, source: "component", literalValues: [false, true], description: "Determines whether next level button should be enabled", typeRef: 341 }, { name: "headerControlsOrder", required: false, source: "component", description: "Controls order", typeRef: 89 }, { name: "hideOutsideDates", required: false, source: "component", literalValues: [false, true], description: "Determines whether outside dates should be hidden", typeRef: 341 }, { name: "hideWeekdays", required: false, source: "component", literalValues: [false, true], description: "Determines whether weekdays row should be hidden", typeRef: 341 }, { name: "highlightToday", required: false, source: "component", literalValues: [false, true], description: "Determines whether today should be highlighted with a border", typeRef: 341 }, { name: "levelControlAriaLabel", required: false, source: "component", description: "Aria-label for change level control", typeRef: 359 }, { name: "locale", required: false, source: "component", description: "`dayjs` locale, the default value is defined by `DatesProvider`", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date, in `YYYY-MM-DD` format", typeRef: 362 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date, in `YYYY-MM-DD` format", typeRef: 362 }, { name: "month", required: true, source: "component", description: "Month that is currently displayed", typeRef: 359 }, { name: "nextDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables next control", typeRef: 341 }, { name: "nextIcon", required: false, source: "component", description: "Change next icon", typeRef: 263 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "previousDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables previous control", typeRef: 341 }, { name: "previousIcon", required: false, source: "component", description: "Change previous icon", typeRef: 263 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size", typeRef: 81 }, { name: "static", required: false, source: "component", literalValues: [false, true], description: "Determines whether days should be static, static days can be used to display month if it is not expected that user will interact with the component in any way", typeRef: 341 }, { name: "styles", required: false, source: "component", typeRef: 238 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "weekendDays", required: false, source: "component", description: "Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider`.", typeRef: 161 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated by space", typeRef: 341 }, { name: "withNext", required: false, source: "component", literalValues: [false, true], description: "Determines whether next control should be rendered", typeRef: 341 }, { name: "withPrevious", required: false, source: "component", literalValues: [false, true], description: "Determines whether previous control should be rendered", typeRef: 341 }, { name: "withWeekNumbers", required: false, source: "component", literalValues: [false, true], description: "Determines whether week numbers should be displayed", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "MonthLevelGroup", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/month-level-group/", props: [{ name: "attributes", required: false, source: "component", typeRef: 449 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "firstDayOfWeek", required: false, source: "component", literalValues: [0, 1, 2, 3, 4, 5, 6], description: "Number 0-6, where 0 \u2013 Sunday and 6 \u2013 Saturday.", typeRef: 134 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the calendar should take the full width of its container", typeRef: 341 }, { name: "hasNextLevel", required: false, source: "component", literalValues: [false, true], description: "Determines whether next level button should be enabled", typeRef: 341 }, { name: "headerControlsOrder", required: false, source: "component", description: "Controls order", typeRef: 89 }, { name: "hideOutsideDates", required: false, source: "component", literalValues: [false, true], description: "Determines whether outside dates should be hidden", typeRef: 341 }, { name: "hideWeekdays", required: false, source: "component", literalValues: [false, true], description: "Determines whether weekdays row should be hidden", typeRef: 341 }, { name: "highlightToday", required: false, source: "component", literalValues: [false, true], description: "Determines whether today should be highlighted with a border", typeRef: 341 }, { name: "locale", required: false, source: "component", description: "`dayjs` locale, the default value is defined by `DatesProvider`", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date, in `YYYY-MM-DD` format", typeRef: 362 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date, in `YYYY-MM-DD` format", typeRef: 362 }, { name: "month", required: true, source: "component", description: "Month to display", typeRef: 359 }, { name: "nextDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables next control", typeRef: 341 }, { name: "nextIcon", required: false, source: "component", description: "Change next icon", typeRef: 263 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "numberOfColumns", required: false, source: "component", description: "Number of columns to display next to each other", typeRef: 353 }, { name: "previousDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables previous control", typeRef: 341 }, { name: "previousIcon", required: false, source: "component", description: "Change previous icon", typeRef: 263 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size", typeRef: 81 }, { name: "static", required: false, source: "component", literalValues: [false, true], description: "Passed as `isStatic` prop to `Month` component", typeRef: 341 }, { name: "styles", required: false, source: "component", typeRef: 238 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "weekendDays", required: false, source: "component", description: "Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider`.", typeRef: 161 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated by space", typeRef: 341 }, { name: "withWeekNumbers", required: false, source: "component", literalValues: [false, true], description: "Determines whether week numbers should be displayed", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "MonthPicker", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/month-picker/", props: [{ name: "allowDeselect", required: false, source: "component", description: 'Determines whether user can deselect the date by clicking on selected item, applicable only when type="default"', typeRef: 106 }, { name: "allowSingleDateInRange", required: false, source: "component", description: 'Determines whether a single day can be selected as range, applicable only when type="range"', typeRef: 107 }, { name: "ariaLabels", required: false, source: "component", description: "`aria-label` attributes for controls on different levels", typeRef: 147 }, { name: "attributes", required: false, source: "component", typeRef: 382 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "columnsToScroll", required: false, source: "component", description: "Number of columns to scroll with next/prev buttons, same as `numberOfColumns` if not set explicitly", typeRef: 353 }, { name: "date", required: false, source: "component", description: "Displayed date in controlled mode", typeRef: 362 }, { name: "defaultDate", required: false, source: "component", description: "Initial displayed date in uncontrolled mode", typeRef: 362 }, { name: "defaultLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Initial displayed level (uncontrolled)", typeRef: 52 }, { name: "defaultValue", required: false, source: "component", description: "Default value for uncontrolled component", typeRef: 159 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the list should take the full width of its container", typeRef: 341 }, { name: "level", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Current displayed level (controlled)", typeRef: 52 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "maxLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Max level that user can go up to", typeRef: 52 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "monthsListFormat", required: false, source: "component", description: "`dayjs` format for months list", typeRef: 359 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "numberOfColumns", required: false, source: "component", description: "Number of columns displayed next to each other", typeRef: 353 }, { name: "presets", required: false, source: "component", description: "Predefined values to pick from", typeRef: 185 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "type", required: false, source: "component", literalValues: ["default", "multiple", "range"], description: "Picker type: range, multiple or default", typeRef: 158 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Value for controlled component", typeRef: 159 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "yearsListFormat", required: false, source: "component", description: "dayjs format for years list", typeRef: 359 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "MonthPickerInput", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/month-picker-input/", props: [{ name: "allowDeselect", required: false, source: "component", description: 'Determines whether user can deselect the date by clicking on selected item, applicable only when type="default"', typeRef: 106 }, { name: "allowSingleDateInRange", required: false, source: "component", description: 'Determines whether a single day can be selected as range, applicable only when type="range"', typeRef: 107 }, { name: "ariaLabels", required: false, source: "component", description: "`aria-label` attributes for controls on different levels", typeRef: 147 }, { name: "attributes", required: false, source: "component", typeRef: 412 }, { name: "clearButtonProps", required: false, source: "component", description: "Props passed down to the clear button", typeRef: 258 }, { name: "clearSectionMode", required: false, source: "component", literalValues: ["both", "clear", "rightSection"], description: "Determines how the clear button and rightSection are rendered", typeRef: 15 }, { name: "clearable", required: false, source: "component", literalValues: [false, true], description: "If set, clear button is displayed in the `rightSection` when the component has value. Ignored if `rightSection` prop is set.", typeRef: 341 }, { name: "closeOnChange", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the dropdown is closed when date is selected, not applicable with `type="multiple"`', typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "columnsToScroll", required: false, source: "component", description: "Number of columns to scroll with next/prev buttons, same as `numberOfColumns` if not set explicitly", typeRef: 353 }, { name: "date", required: false, source: "component", description: "Displayed date in controlled mode", typeRef: 362 }, { name: "defaultDate", required: false, source: "component", description: "Initial displayed date in uncontrolled mode", typeRef: 362 }, { name: "defaultLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Initial displayed level (uncontrolled)", typeRef: 52 }, { name: "defaultValue", required: false, source: "component", description: "Default value for uncontrolled component", typeRef: 159 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the list should take the full width of its container", typeRef: 341 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "labelSeparator", required: false, source: "component", description: "Separator between range value", typeRef: 359 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "level", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Current displayed level (controlled)", typeRef: 52 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "maxLevel", required: false, source: "component", literalValues: ["decade", "month", "year"], description: "Max level that user can go up to", typeRef: 52 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "monthsListFormat", required: false, source: "component", description: "`dayjs` format for months list", typeRef: 359 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "numberOfColumns", required: false, source: "component", description: "Number of columns displayed next to each other", typeRef: 353 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "popoverProps", required: false, source: "component", description: "Props passed down to `Popover` component", typeRef: 204 }, { name: "presets", required: false, source: "component", description: "Predefined values to pick from", typeRef: 185 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "sortDates", required: false, source: "component", literalValues: [false, true], description: 'Determines whether dates values should be sorted before `onChange` call, only applicable with type="multiple"', typeRef: 341 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "type", required: false, source: "component", literalValues: ["default", "multiple", "range"], description: "Picker type: range, multiple or default", typeRef: 158 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Value for controlled component", typeRef: 159 }, { name: "valueFormat", required: false, source: "component", description: "`dayjs` format for input value", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }, { name: "yearsListFormat", required: false, source: "component", description: "dayjs format for years list", typeRef: 359 }], blockedProps: [{ name: "dropdownType", reason: "Modal picker mode escapes the widget overlay boundary" }, { name: "modalProps", reason: "Modal picker configuration escapes the widget overlay boundary" }], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "MonthsList", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/months-list/", props: [{ name: "align", required: false, source: "component", literalValues: ["center", "left", "right"], typeRef: 22 }, { name: "attributes", required: false, source: "component", typeRef: 450 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the list should take the full width of its container", typeRef: 341 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "monthsListFormat", required: false, source: "component", description: "`dayjs` format for months list", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "year", required: true, source: "component", description: "Year for which months list should be displayed", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "MultiSelect", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/multi-select/", props: [{ name: "attributes", required: false, source: "component", typeRef: 406 }, { name: "checkIconPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the checkmark icon shown next to selected options in the dropdown", typeRef: 47 }, { name: "chevronColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls color of the default chevron", typeRef: 162 }, { name: "clearButtonProps", required: false, source: "component", description: "Props passed down to the clear button", typeRef: 172 }, { name: "clearSearchOnChange", required: false, source: "component", literalValues: [false, true], description: "Clear search value when item is selected", typeRef: 341 }, { name: "clearSectionMode", required: false, source: "component", literalValues: ["both", "clear", "rightSection"], description: "Determines how the clear button and rightSection are rendered", typeRef: 15 }, { name: "clearable", required: false, source: "component", literalValues: [false, true], description: "When enabled, displays a clear button to remove all selected values (hidden when component is empty, disabled, or read-only)", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "comboboxProps", required: false, source: "component", description: "Props passed down to `Combobox` component", typeRef: 153 }, { name: "data", required: false, source: "component", description: "Data used to generate options. Values must be unique, otherwise an error will be thrown and component will not render.", typeRef: 151 }, { name: "defaultDropdownOpened", required: false, source: "component", literalValues: [false, true], description: "Uncontrolled dropdown initial opened state", typeRef: 341 }, { name: "defaultSearchValue", required: false, source: "component", description: "Default search value", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 330 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "dropdownOpened", required: false, source: "component", literalValues: [false, true], description: "Controlled dropdown opened state", typeRef: 341 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "floatingHeight", required: false, source: "component", literalValues: ["viewport"], description: "If set to `'viewport'`, the dropdown grows to fill the available vertical space in the viewport. Disables the `flip` middleware.", typeRef: 78 }, { name: "hiddenInputProps", required: false, source: "component", description: "Props passed down to the hidden input", typeRef: 195 }, { name: "hiddenInputValuesDivider", required: false, source: "component", description: "Divider used to separate values in the hidden input `value` attribute", typeRef: 359 }, { name: "hidePickedOptions", required: false, source: "component", literalValues: [false, true], description: "When enabled, selected options are hidden from the dropdown list", typeRef: 341 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "limit", required: false, source: "component", description: "Maximum number of options displayed at a time, `Infinity` by default", typeRef: 353 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "maxDropdownHeight", required: false, source: "component", description: "`max-height` of the dropdown, only applicable when `withScrollArea` prop is `true`, `250` by default", typeRef: 365 }, { name: "maxValues", required: false, source: "component", description: "Maximum number of values, no limit if not set", typeRef: 353 }, { name: "nothingFoundMessage", required: false, source: "component", description: "Message displayed when no options match the search query (when searchable is enabled) or when the data array is empty. If not set, the dropdown will be hidden instead.", typeRef: 263 }, { name: "openOnFocus", required: false, source: "component", literalValues: [false, true], description: "Controls whether dropdown opens when the input receives focus", typeRef: 341 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "scrollAreaProps", required: false, source: "component", description: "Props passed down to the underlying `ScrollArea` component in the dropdown", typeRef: 274 }, { name: "searchValue", required: false, source: "component", description: "Controlled search value", typeRef: 359 }, { name: "searchable", required: false, source: "component", literalValues: [false, true], description: "Allows searching through options by user input", typeRef: 341 }, { name: "selectFirstOptionOnChange", required: false, source: "component", literalValues: [false, true], description: "If set, the first option is selected when value changes, `false` by default", typeRef: 341 }, { name: "selectFirstOptionOnDropdownOpen", required: false, source: "component", literalValues: [false, true], description: "If set, the first option is selected when dropdown opens, `false` by default", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 330 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withAlignedLabels", required: false, source: "component", literalValues: [false, true], description: "If set, unchecked labels are aligned with checked ones", typeRef: 341 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withCheckIcon", required: false, source: "component", literalValues: [false, true], description: "If set, the check icon is displayed near the selected option label", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withPillsReorder", required: false, source: "component", literalValues: [false, true], description: "If set, selected values can be reordered by dragging pills. Disabled when `disabled` or `readOnly` is set.", typeRef: 341 }, { name: "withScrollArea", required: false, source: "component", literalValues: [false, true], description: "Determines whether the options should be wrapped with `ScrollArea.AutoSize`, `true` by default", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }], blockedProps: [], subcomponents: [], bind: { type: "string[]", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "NativeScrollArea", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/native-scroll-area/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "NativeSelect", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/native-select/", props: [{ name: "attributes", required: false, source: "component", typeRef: 416 }, { name: "autoComplete", required: false, source: "component", typeRef: 359 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "data", required: false, source: "component", description: "Data used to render options. Accepts strings, objects with label/value, or grouped options. If `children` prop is provided, `data` will be ignored.", typeRef: 154 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "NavLink", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/nav-link/", props: [{ name: "active", required: false, source: "component", literalValues: [false, true], description: "Determines whether the link should have active styles", typeRef: 341 }, { name: "attributes", required: false, source: "component", typeRef: 377 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "childrenOffset", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls indentation of nested NavLink components, key of `theme.spacing` or any valid CSS value", typeRef: 183 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color to control active styles", typeRef: 162 }, { name: "defaultOpened", required: false, source: "component", literalValues: [false, true], description: "Uncontrolled nested items collapse initial state", typeRef: 341 }, { name: "description", required: false, source: "component", description: "Link description, displayed below the label", typeRef: 263 }, { name: "disableRightSectionRotation", required: false, source: "component", literalValues: [false, true], description: "If set, right section will not be rotated when collapse is opened", typeRef: 341 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set to `false`, child `NavLinks` are unmounted when collapsed", typeRef: 341 }, { name: "label", required: false, source: "component", description: "Main link label", typeRef: 263 }, { name: "leftSection", required: false, source: "component", description: "Section displayed on the left side of the label", typeRef: 263 }, { name: "noWrap", required: false, source: "component", literalValues: [false, true], description: "If set, label and description are truncated with ellipsis instead of wrapping", typeRef: 341 }, { name: "opened", required: false, source: "component", literalValues: [false, true], description: "Controlled nested items collapse state", typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Section displayed on the right side of the label", typeRef: 263 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["filled", "light", "subtle"], typeRef: 125 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Notification", package: "@mantine/core", category: "feedback", safety: "wrapped", documentationUrl: "https://mantine.dev/core/notification/", props: [{ name: "attributes", required: false, source: "component", typeRef: 381 }, { name: "closeButtonProps", required: false, source: "component", description: "Props passed down to the close button", typeRef: 94 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls icon background color or notification accent line color, key of `theme.colors` or any valid CSS color. When `icon` is provided, sets the icon background color. When no icon is provided, sets the colored accent line on the left.", typeRef: 162 }, { name: "icon", required: false, source: "component", description: "Notification icon, replaces color line", typeRef: 263 }, { name: "loaderProps", required: false, source: "component", description: "Props passed down to the `Loader` component", typeRef: 176 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "If set, displays a `Loader` component instead of the icon. Takes precedence over the `icon` prop if both are provided.", typeRef: 341 }, { name: "title", required: false, source: "component", description: "Notification title, displayed above the message body", typeRef: 263 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withCloseButton", required: false, source: "component", literalValues: [false, true], description: "If set, the close button is visible", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Do not rely on color alone to communicate status."] }, { name: "NumberFormatter", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/number-formatter/", props: [{ name: "allowNegative", required: false, source: "component", literalValues: [false, true], description: "If set, negative values are allowed", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "decimalScale", required: false, source: "component", description: "Limits the number of digits that are displayed after the decimal point", typeRef: 353 }, { name: "decimalSeparator", required: false, source: "component", description: "Character used as a decimal separator, `'.'` by default", typeRef: 359 }, { name: "fixedDecimalScale", required: false, source: "component", literalValues: [false, true], description: "If set, zeros are added after `decimalSeparator` to match given `decimalScale`.", typeRef: 341 }, { name: "suffix", required: false, source: "component", description: "Suffix added after the value", typeRef: 359 }, { name: "thousandSeparator", required: false, source: "component", description: "A character used to separate thousands", typeRef: 364 }, { name: "thousandsGroupStyle", required: false, source: "component", literalValues: ["lakh", "none", "thousand", "wan"], description: "Defines the thousand grouping style", typeRef: 60 }, { name: "value", required: false, source: "component", description: "Value to format", typeRef: 365 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "NumberInput", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/number-input/", props: [{ name: "allowDecimal", required: false, source: "component", literalValues: [false, true], description: "If set, decimal values are allowed", typeRef: 341 }, { name: "allowLeadingZeros", required: false, source: "component", literalValues: [false, true], description: "Determines whether leading zeros are allowed during input. If `false`, leading zeros are removed as you type (e.g., typing `007` results in `7`). Works in conjunction with `trimLeadingZeroesOnBlur`.", typeRef: 341 }, { name: "allowNegative", required: false, source: "component", literalValues: [false, true], description: "Determines whether negative numbers are allowed. If `false`, the input will not accept negative values, and the decrement button will stop at `0` (when `min` is not set).", typeRef: 341 }, { name: "allowedDecimalSeparators", required: false, source: "component", description: "Characters which when pressed result in a decimal separator. These characters will be replaced by the `decimalSeparator` in the input value.", typeRef: 368 }, { name: "attributes", required: false, source: "component", typeRef: 417 }, { name: "clampBehavior", required: false, source: "component", literalValues: ["blur", "none", "strict"], description: "Controls how values are clamped to the `min`/`max` range: - `'blur'` (default): User can type any value, but it's clamped when the input loses focus - `'strict'`: User cannot type values outside the range - `'none'`: No clamping; `min`/`max` only apply to increment/decrement controls and arrow keys", typeRef: 58 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "decimalScale", required: false, source: "component", description: "Limits the number of digits that can be entered after the decimal point", typeRef: 353 }, { name: "decimalSeparator", required: false, source: "component", description: "Character used as a decimal separator. Generally used with `allowedDecimalSeparators` prop.", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 187 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "fixedDecimalScale", required: false, source: "component", literalValues: [false, true], description: "If `true`, automatically pads the decimal part with zeros to match `decimalScale` (e.g., with `decimalScale={2}`, typing `5.1` displays as `5.10`). Requires `decimalScale` to be set.", typeRef: 341 }, { name: "hideControls", required: false, source: "component", literalValues: [false, true], description: "If set, the up/down controls are hidden", typeRef: 341 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "max", required: false, source: "component", description: "Maximum possible value", typeRef: 313 }, { name: "min", required: false, source: "component", description: "Minimum possible value", typeRef: 313 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "selectAllOnFocus", required: false, source: "component", literalValues: [false, true], description: "If set, all text is selected when the input receives focus", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "startValue", required: false, source: "component", description: "Value used when incrementing/decrementing an empty input. If `min` is set and `startValue < min`, `min` is used instead.", typeRef: 313 }, { name: "step", required: false, source: "component", description: "Number by which value will be incremented/decremented with up/down controls and keyboard arrows", typeRef: 313 }, { name: "stepHoldDelay", required: false, source: "component", description: "Initial delay in milliseconds before stepping the value.", typeRef: 353 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "suffix", required: false, source: "component", description: "Suffix added after the input value", typeRef: 359 }, { name: "thousandSeparator", required: false, source: "component", description: "A character used to separate thousands", typeRef: 364 }, { name: "thousandsGroupStyle", required: false, source: "component", literalValues: ["lakh", "none", "thousand", "wan"], description: "Defines the thousand grouping style. 'thousand' (1,000), 'lakh' (1,00,000), 'wan' (1,0000), 'none'.", typeRef: 60 }, { name: "trimLeadingZeroesOnBlur", required: false, source: "component", literalValues: [false, true], description: "If set, leading zeros are removed on blur. For example, `00100` -> `100`", typeRef: 341 }, { name: "type", required: false, source: "component", literalValues: ["password", "tel", "text"], description: "Controls input `type` attribute", typeRef: 74 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 187 }, { name: "valueIsNumericString", required: false, source: "component", literalValues: [false, true], description: "Advanced: Set to `true` if you're passing numeric strings (e.g., `\"12345\"`) and using formatting props like `prefix` or `suffix`. In most cases, you don't need this prop. See [react-number-format docs](https://www.npmjs.com/package/react-number-format) for details.", typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withKeyboardEvents", required: false, source: "component", literalValues: [false, true], description: "If set, up/down keyboard events increment/decrement value", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }], blockedProps: [], subcomponents: [], bind: { type: "number", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "OptionalPortal", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/optional-portal/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Can render outside the widget root" }, { name: "OptionsDropdown", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/options-dropdown/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "OverflowList", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/overflow-list/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "collapseFrom", required: false, source: "component", literalValues: ["end", "start"], description: "Direction from which items are collapsed when they overflow, `'end'` collapses last items, `'start'` collapses first items", typeRef: 32 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "data", required: true, source: "component", description: "Array of items to display", typeRef: 314 }, { name: "gap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Key of `theme.spacing` or any valid CSS value for `gap`, numbers are converted to rem", typeRef: 183 }, { name: "maxRows", required: false, source: "component", description: "Number of rows to display", typeRef: 353 }, { name: "maxVisibleItems", required: false, source: "component", description: "Maximum number of visible items", typeRef: 353 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Overlay", package: "@mantine/core", category: "feedback", safety: "wrapped", documentationUrl: "https://mantine.dev/core/overlay/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "backgroundOpacity", required: false, source: "component", description: "Overlay `background-color` opacity 0\u20131, ignored when `gradient` prop is set", typeRef: 353 }, { name: "blur", required: false, source: "component", description: "Overlay background blur in px (converted to rem). Applies `backdrop-filter: blur()`. Note: backdrop-filter is not supported in all browsers.", typeRef: 365 }, { name: "center", required: false, source: "component", literalValues: [false, true], description: "Centers content inside the overlay using flexbox (sets display: flex, align-items: center, justify-content: center)", typeRef: 341 }, { name: "color", required: false, source: "component", description: "Overlay `background-color`", typeRef: 245 }, { name: "fixed", required: false, source: "component", literalValues: [false, true], description: "Changes position from `absolute` to `fixed` (viewport-relative instead of parent-relative)", typeRef: 341 }, { name: "gradient", required: false, source: "component", description: "Changes overlay to gradient. If set, both `color` and `backgroundOpacity` props are ignored.", typeRef: 359 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Do not rely on color alone to communicate status."] }, { name: "PaginatedList", package: "@homarr/widgets", category: "interaction", safety: "allowed", description: "Renders a bounded page of collection items.", documentationUrl: "https://homarr.dev/docs/management/custom-widgets/", props: [{ name: "pageSize", source: "component", required: false, typeRef: 353 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Pagination", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination/", props: [{ name: "attributes", required: false, source: "component", typeRef: 425 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on the active page background color to ensure sufficient contrast", typeRef: 341 }, { name: "boundaries", required: false, source: "component", description: "Number of elements visible on the left/right edges", typeRef: 353 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors`, active item color", typeRef: 162 }, { name: "defaultValue", required: false, source: "component", description: "Active page for uncontrolled component, must be an integer in [1, total] interval", typeRef: 353 }, { name: "gap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Key of `theme.spacing`, gap between controls", typeRef: 183 }, { name: "hideWithOnePage", required: false, source: "component", literalValues: [false, true], description: "If set, the pagination is hidden when only one page is available (`total={1}`)", typeRef: 341 }, { name: "layout", required: false, source: "component", literalValues: ["default", "responsive"], description: "Determines how the pagination is displayed, `'responsive'` uses CSS container queries to switch between pages and a compact label", typeRef: 28 }, { name: "siblings", required: false, source: "component", description: "Number of siblings displayed on the left/right side of the selected page", typeRef: 353 }, { name: "size", required: false, source: "component", literalValues: ["input-lg", "input-md", "input-sm", "input-xl", "input-xs", "lg", "md", "sm", "xl", "xs"], description: "`height` and `min-width` of controls", typeRef: 356 }, { name: "startValue", required: false, source: "component", description: "Starting page number, defaults to 1", typeRef: 353 }, { name: "total", required: true, source: "component", description: "Total number of pages, must be an integer", typeRef: 353 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Active page for controlled component, must be an integer in [1, total] interval", typeRef: 353 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withControls", required: false, source: "component", literalValues: [false, true], description: "If set, next/previous controls are displayed", typeRef: 341 }, { name: "withEdges", required: false, source: "component", literalValues: [false, true], description: "If set, first/last controls are displayed", typeRef: 341 }, { name: "withPages", required: false, source: "component", literalValues: [false, true], description: "If set to `false`, page number buttons are hidden, only next/previous controls remain", typeRef: 341 }], blockedProps: [], subcomponents: ["Pagination.Control", "Pagination.Dots", "Pagination.First", "Pagination.Items", "Pagination.Label", "Pagination.Last", "Pagination.Next", "Pagination.Previous", "Pagination.Root"], bind: { type: "number", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Pagination.Control", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination/", props: [{ name: "active", required: false, source: "component", literalValues: [false, true], description: "Applies active styles, adds `data-active` attribute", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 211 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withPadding", required: false, source: "component", literalValues: [false, true], description: "Applies padding", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Pagination.Dots", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 214 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Pagination.First", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Pagination.Items", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Pagination.Label", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Pagination.Last", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Pagination.Next", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Pagination.Previous", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Pagination.Root", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination/", props: [{ name: "attributes", required: false, source: "component", typeRef: 425 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on the active page background color to ensure sufficient contrast", typeRef: 341 }, { name: "boundaries", required: false, source: "component", description: "Number of elements visible on the left/right edges", typeRef: 353 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors`, active item color", typeRef: 162 }, { name: "defaultValue", required: false, source: "component", description: "Active page for uncontrolled component, must be an integer in [1, total] interval", typeRef: 353 }, { name: "layout", required: false, source: "component", literalValues: ["default", "responsive"], description: "Determines how the pagination is displayed, `'responsive'` uses CSS container queries to switch between pages and a compact label", typeRef: 28 }, { name: "siblings", required: false, source: "component", description: "Number of siblings displayed on the left/right side of the selected page", typeRef: 353 }, { name: "size", required: false, source: "component", literalValues: ["input-lg", "input-md", "input-sm", "input-xl", "input-xs", "lg", "md", "sm", "xl", "xs"], description: "`height` and `min-width` of controls", typeRef: 356 }, { name: "startValue", required: false, source: "component", description: "Starting page number, defaults to 1", typeRef: 353 }, { name: "total", required: true, source: "component", description: "Total number of pages, must be an integer", typeRef: 353 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Active page for controlled component, must be an integer in [1, total] interval", typeRef: 353 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "PaginationControl", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination-control/", props: [{ name: "active", required: false, source: "component", literalValues: [false, true], description: "Applies active styles, adds `data-active` attribute", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 211 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withPadding", required: false, source: "component", literalValues: [false, true], description: "Applies padding", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "PaginationDots", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination-dots/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 214 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "PaginationFirst", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination-first/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "PaginationItems", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination-items/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "PaginationLabel", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination-label/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "PaginationLast", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination-last/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "PaginationNext", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination-next/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "PaginationPrevious", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination-previous/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "PaginationRoot", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pagination-root/", props: [{ name: "attributes", required: false, source: "component", typeRef: 425 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on the active page background color to ensure sufficient contrast", typeRef: 341 }, { name: "boundaries", required: false, source: "component", description: "Number of elements visible on the left/right edges", typeRef: 353 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors`, active item color", typeRef: 162 }, { name: "defaultValue", required: false, source: "component", description: "Active page for uncontrolled component, must be an integer in [1, total] interval", typeRef: 353 }, { name: "layout", required: false, source: "component", literalValues: ["default", "responsive"], description: "Determines how the pagination is displayed, `'responsive'` uses CSS container queries to switch between pages and a compact label", typeRef: 28 }, { name: "siblings", required: false, source: "component", description: "Number of siblings displayed on the left/right side of the selected page", typeRef: 353 }, { name: "size", required: false, source: "component", literalValues: ["input-lg", "input-md", "input-sm", "input-xl", "input-xs", "lg", "md", "sm", "xl", "xs"], description: "`height` and `min-width` of controls", typeRef: 356 }, { name: "startValue", required: false, source: "component", description: "Starting page number, defaults to 1", typeRef: 353 }, { name: "total", required: true, source: "component", description: "Total number of pages, must be an integer", typeRef: 353 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Active page for controlled component, must be an integer in [1, total] interval", typeRef: 353 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Paper", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/paper/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "PasswordInput", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/password-input/", props: [{ name: "attributes", required: false, source: "component", typeRef: 418 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultVisible", required: false, source: "component", literalValues: [false, true], description: "If set, the input value is visible by default", typeRef: 341 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "visibilityToggleButtonProps", required: false, source: "component", description: "Props passed down to the visibility toggle button", typeRef: 266 }, { name: "visible", required: false, source: "component", literalValues: [false, true], description: "If set, the input value is visible", typeRef: 341 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "PickerControl", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/picker-control/", props: [{ name: "attributes", required: false, source: "component", typeRef: 451 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "firstInRange", required: false, source: "component", literalValues: [false, true], description: "Assigns first in range styles", typeRef: 341 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the control should take the full width of its cell", typeRef: 341 }, { name: "inRange", required: false, source: "component", literalValues: [false, true], description: "Assigns in range styles", typeRef: 341 }, { name: "lastInRange", required: false, source: "component", literalValues: [false, true], description: "Assigns last in range styles", typeRef: 341 }, { name: "selected", required: false, source: "component", literalValues: [false, true], description: "Assigns selected styles", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "PickerInputBase", package: "@mantine/dates", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/dates/picker-input-base/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Internal date-input primitive" }, { name: "PieChart", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/pie-chart/", props: [{ name: "attributes", required: false, source: "component", typeRef: 441 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "data", required: true, source: "component", description: "Data used to render chart", typeRef: 240 }, { name: "endAngle", required: false, source: "component", description: "Controls angle at which charts ends. Set to `0` to render the chart as semicircle.", typeRef: 353 }, { name: "labelColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls text color of all labels, white by default", typeRef: 162 }, { name: "labelsPosition", required: false, source: "component", literalValues: ["inside", "outside"], description: "Controls labels position relative to the segment", typeRef: 46 }, { name: "labelsType", required: false, source: "component", literalValues: ["name", "percent", "value"], description: "Type of labels to display", typeRef: 77 }, { name: "legendProps", required: false, source: "component", description: "Props passed down to recharts `Legend` component", typeRef: 190 }, { name: "paddingAngle", required: false, source: "component", description: "Controls padding between segments", typeRef: 353 }, { name: "pieChartProps", required: false, source: "component", description: "Props passed down to recharts `PieChart` component", typeRef: 101 }, { name: "pieProps", required: false, source: "component", description: "Props passed down to recharts `Pie` component", typeRef: 203 }, { name: "size", required: false, source: "component", description: "Controls chart width and height, height is increased by 40 if `withLabels` prop is set. Cannot be less than `thickness`.", typeRef: 353 }, { name: "startAngle", required: false, source: "component", description: "Controls angle at which chart starts. Set to `180` to render the chart as semicircle.", typeRef: 353 }, { name: "strokeColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls color of the segments stroke, by default depends on color scheme", typeRef: 162 }, { name: "strokeWidth", required: false, source: "component", description: "Controls width of segments stroke", typeRef: 353 }, { name: "tooltipAnimationDuration", required: false, source: "component", description: "Tooltip animation duration in ms", typeRef: 353 }, { name: "tooltipDataSource", required: false, source: "component", literalValues: ["all", "segment"], description: "Determines which data is displayed in the tooltip. `'all'` \u2013 display all values, `'segment'` \u2013 display only hovered segment.", typeRef: 9 }, { name: "tooltipProps", required: false, source: "component", description: "Props passed down to `Tooltip` recharts component", typeRef: 197 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withLabels", required: false, source: "component", literalValues: [false, true], description: "Determines whether each segment should have associated label", typeRef: 341 }, { name: "withLabelsLine", required: false, source: "component", literalValues: [false, true], description: "Determines whether segments labels should have lines that connect the segment with the label", typeRef: 341 }, { name: "withLegend", required: false, source: "component", literalValues: [false, true], description: "Determines whether the legend should be displayed", typeRef: 341 }, { name: "withTooltip", required: false, source: "component", literalValues: [false, true], description: "Determines whether the tooltip should be displayed when one of the section is hovered", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "Pill", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pill/", props: [{ name: "attributes", required: false, source: "component", typeRef: 428 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "removeButtonProps", required: false, source: "component", description: "Props passed down to the remove button", typeRef: 93 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls pill `font-size` and `padding`", typeRef: 81 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["contrast", "default"], typeRef: 126 }, { name: "withRemoveButton", required: false, source: "component", literalValues: [false, true], description: "Controls visibility of the remove button", typeRef: 341 }], blockedProps: [], subcomponents: ["Pill.Group"], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Pill.Group", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pill/", props: [{ name: "attributes", required: false, source: "component", typeRef: 400 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "gap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls spacing between pills, by default controlled by `size`", typeRef: 355 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the child `Pill` components and gap between them", typeRef: 182 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "PillGroup", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pill-group/", props: [{ name: "attributes", required: false, source: "component", typeRef: 400 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "gap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls spacing between pills, by default controlled by `size`", typeRef: 355 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the child `Pill` components and gap between them", typeRef: 182 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "PillsInput", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/pills-input/", props: [], blockedProps: [], subcomponents: ["PillsInput.Field"], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "PillsInput.Field", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/pills-input/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "PillsInputField", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/pills-input-field/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Low-level composition primitive that requires authored callbacks" }, { name: "PinInput", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/pin-input/", props: [{ name: "ariaLabel", required: false, source: "component", description: "`aria-label` attribute", typeRef: 359 }, { name: "attributes", required: false, source: "component", typeRef: 419 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 359 }, { name: "error", required: false, source: "component", literalValues: [false, true], description: "Sets `aria-invalid` attribute and applies error styles to all inputs", typeRef: 341 }, { name: "gap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Key of `theme.spacing` or any valid CSS value to set `gap` between inputs, numbers are converted to rem", typeRef: 183 }, { name: "hiddenInputProps", required: false, source: "component", description: "Props passed down to the hidden input", typeRef: 261 }, { name: "inputType", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], description: "Inputs `type` attribute, inferred from the `type` prop if not specified", typeRef: 262 }, { name: "length", required: false, source: "component", description: "Number of inputs", typeRef: 353 }, { name: "manageFocus", required: false, source: "component", literalValues: [false, true], description: "Determines whether focus should be moved automatically to the next input once filled", typeRef: 341 }, { name: "mask", required: false, source: "component", literalValues: [false, true], description: 'Changes input type to `"password"`', typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls inputs `width` and `height`", typeRef: 81 }, { name: "success", required: false, source: "component", literalValues: [false, true], description: "Applies success styles to all inputs", typeRef: 341 }, { name: "type", required: false, source: "component", literalValues: ["alphanumeric", "number"], description: "Determines which values can be entered", typeRef: 62 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Popover", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/popover/", props: [{ name: "arrowOffset", required: false, source: "component", description: "Arrow offset in px", typeRef: 353 }, { name: "arrowPosition", required: false, source: "component", literalValues: ["center", "merge", "side"], description: "Arrow position", typeRef: 24 }, { name: "arrowRadius", required: false, source: "component", description: "Arrow `border-radius` in px", typeRef: 353 }, { name: "arrowSize", required: false, source: "component", description: "Arrow size in px", typeRef: 353 }, { name: "attributes", required: false, source: "component", typeRef: 399 }, { name: "clickOutsideEvents", required: false, source: "component", description: "Events that trigger outside clicks", typeRef: 368 }, { name: "closeOnClickOutside", required: false, source: "component", literalValues: [false, true], description: "Determines whether dropdown should be closed on outside clicks", typeRef: 341 }, { name: "closeOnEscape", required: false, source: "component", literalValues: [false, true], description: "Determines whether dropdown should be closed when `Escape` key is pressed", typeRef: 341 }, { name: "defaultOpened", required: false, source: "component", literalValues: [false, true], description: "Initial opened state for uncontrolled component", typeRef: 341 }, { name: "floatingStrategy", required: false, source: "component", literalValues: ["absolute", "fixed"], description: "Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy)", typeRef: 34 }, { name: "hideDetached", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown is hidden when the element is hidden with styles or not visible on the screen", typeRef: 341 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown is not unmounted from the DOM when hidden. `display: none` styles are added instead.", typeRef: 341 }, { name: "keepMountedMode", required: false, source: "component", literalValues: ["activity", "display-none"], description: "Controls how the dropdown is hidden when `keepMounted` is set: `'activity'` \u2013 hidden with React 19 `Activity` component, `'display-none'` \u2013 hidden with `display: none` styles", typeRef: 7 }, { name: "middlewares", required: false, source: "component", description: "Floating ui middlewares to configure position handling", typeRef: 241 }, { name: "offset", required: false, source: "component", description: "Offset of the dropdown element", typeRef: 354 }, { name: "opened", required: false, source: "component", literalValues: [false, true], description: "Controlled dropdown opened state", typeRef: 341 }, { name: "overlayProps", required: false, source: "component", description: "Props passed down to `Overlay` component", typeRef: 100 }, { name: "position", required: false, source: "component", literalValues: ["bottom", "bottom-end", "bottom-start", "left", "left-end", "left-start", "right", "right-end", "right-start", "top", "top-end", "top-start"], description: "Dropdown position relative to the target element", typeRef: 48 }, { name: "preventPositionChangeWhenVisible", required: false, source: "component", literalValues: [false, true], description: "If `true`, the dropdown picks its side on open (flip runs once, preferring the `position` prop) and then never changes side \u2014 scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the `shift` middleware. Set to `false` to keep flip active and allow the dropdown to re-flip on every change.", typeRef: 341 }, { name: "returnFocus", required: false, source: "component", literalValues: [false, true], description: "Determines whether focus should be automatically returned to control when dropdown closes", typeRef: 341 }, { name: "transitionProps", required: false, source: "component", description: "Props passed down to the `Transition` component. Use to configure duration and animation type.", typeRef: 208 }, { name: "trapFocus", required: false, source: "component", literalValues: [false, true], description: "Determines whether focus should be trapped within dropdown", typeRef: 341 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "width", required: false, source: "component", description: "Dropdown width, or `'target'` to make dropdown width the same as target element", typeRef: 243 }, { name: "withArrow", required: false, source: "component", literalValues: [false, true], description: "Determines whether component should have an arrow", typeRef: 341 }, { name: "withOverlay", required: false, source: "component", literalValues: [false, true], description: "Determines whether the overlay should be displayed when the dropdown is opened", typeRef: 341 }, { name: "withRoles", required: false, source: "component", literalValues: [false, true], description: "Determines whether dropdown and target elements should have accessible roles", typeRef: 341 }], blockedProps: [], subcomponents: ["Popover.ContextMenu", "Popover.Dropdown", "Popover.Target"], bind: { type: "boolean", initialProp: "defaultChecked" }, accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Popover.ContextMenu", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/popover/", props: [{ name: "longPressDelay", required: false, source: "component", description: "Delay in ms before a touch long-press opens the dropdown on touch devices, `500` by default", typeRef: 353 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Popover.Dropdown", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/popover/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 234 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Popover.Target", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/popover/", props: [{ name: "popupType", required: false, source: "component", description: "Popup accessible type", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "PopoverContextMenu", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/popover-context-menu/", props: [{ name: "longPressDelay", required: false, source: "component", description: "Delay in ms before a touch long-press opens the dropdown on touch devices, `500` by default", typeRef: 353 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "PopoverDropdown", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/popover-dropdown/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 234 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "PopoverTarget", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/popover-target/", props: [{ name: "popupType", required: false, source: "component", description: "Popup accessible type", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Portal", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/portal/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Can render outside the widget root" }, { name: "Progress", package: "@mantine/core", category: "feedback", safety: "wrapped", documentationUrl: "https://mantine.dev/core/progress/", props: [{ name: "animated", required: false, source: "component", literalValues: [false, true], description: "If set, the sections stripes are animated (automatically enables striped)", typeRef: 341 }, { name: "attributes", required: false, source: "component", typeRef: 432 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts label text color based on section background color for readability", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS value", typeRef: 162 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Controls orientation", typeRef: 36 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls track height", typeRef: 355 }, { name: "striped", required: false, source: "component", literalValues: [false, true], description: "If set, the section has stripes", typeRef: 341 }, { name: "transitionDuration", required: false, source: "component", description: "Controls sections width transition duration, value is specified in ms", typeRef: 353 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: true, source: "component", description: "Value of the progress", typeRef: 353 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: ["Progress.Label", "Progress.Root", "Progress.Section"], accessibilityRequirements: ["Do not rely on color alone to communicate status."] }, { name: "Progress.Label", package: "@mantine/core", category: "feedback", safety: "wrapped", documentationUrl: "https://mantine.dev/core/progress/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Do not rely on color alone to communicate status."] }, { name: "Progress.Root", package: "@mantine/core", category: "feedback", safety: "wrapped", documentationUrl: "https://mantine.dev/core/progress/", props: [{ name: "attributes", required: false, source: "component", typeRef: 432 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts label text color based on section background color for readability", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Controls orientation", typeRef: 36 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls track height", typeRef: 355 }, { name: "transitionDuration", required: false, source: "component", description: "Controls sections width transition duration, value is specified in ms", typeRef: 353 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Do not rely on color alone to communicate status."] }, { name: "Progress.Section", package: "@mantine/core", category: "feedback", safety: "wrapped", documentationUrl: "https://mantine.dev/core/progress/", props: [{ name: "animated", required: false, source: "component", literalValues: [false, true], description: "If set, the sections stripes are animated, `striped` prop is ignored", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS value", typeRef: 162 }, { name: "striped", required: false, source: "component", literalValues: [false, true], description: "If set, the section has stripes", typeRef: 341 }, { name: "styles", required: false, source: "component", typeRef: 224 }, { name: "value", required: true, source: "component", description: "Value of the section in 0\u2013100 range", typeRef: 353 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withAria", required: false, source: "component", literalValues: [false, true], description: "Determines whether `aria-*` props should be added to the root element", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Do not rely on color alone to communicate status."] }, { name: "ProgressLabel", package: "@mantine/core", category: "feedback", safety: "wrapped", documentationUrl: "https://mantine.dev/core/progress-label/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Do not rely on color alone to communicate status."] }, { name: "ProgressRoot", package: "@mantine/core", category: "feedback", safety: "wrapped", documentationUrl: "https://mantine.dev/core/progress-root/", props: [{ name: "attributes", required: false, source: "component", typeRef: 432 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts label text color based on section background color for readability", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Controls orientation", typeRef: 36 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls track height", typeRef: 355 }, { name: "transitionDuration", required: false, source: "component", description: "Controls sections width transition duration, value is specified in ms", typeRef: 353 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Do not rely on color alone to communicate status."] }, { name: "ProgressSection", package: "@mantine/core", category: "feedback", safety: "wrapped", documentationUrl: "https://mantine.dev/core/progress-section/", props: [{ name: "animated", required: false, source: "component", literalValues: [false, true], description: "If set, the sections stripes are animated, `striped` prop is ignored", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS value", typeRef: 162 }, { name: "striped", required: false, source: "component", literalValues: [false, true], description: "If set, the section has stripes", typeRef: 341 }, { name: "styles", required: false, source: "component", typeRef: 224 }, { name: "value", required: true, source: "component", description: "Value of the section in 0\u2013100 range", typeRef: 353 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withAria", required: false, source: "component", literalValues: [false, true], description: "Determines whether `aria-*` props should be added to the root element", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Do not rely on color alone to communicate status."] }, { name: "RadarChart", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/radar-chart/", props: [{ name: "activeDotProps", required: false, source: "component", description: "Props passed down to all active dots. Ignored if `withDots={false}` is set.", typeRef: 178 }, { name: "attributes", required: false, source: "component", typeRef: 440 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "data", required: true, source: "component", description: "Data used in the chart", typeRef: 267 }, { name: "dataKey", required: true, source: "component", description: "Key of the `data` object for axis values", typeRef: 359 }, { name: "dotProps", required: false, source: "component", description: "Props passed down to all dots. Ignored if `withDots={false}` is set.", typeRef: 178 }, { name: "gridColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls color of the grid lines. By default, color depends on the color scheme.", typeRef: 162 }, { name: "legendProps", required: false, source: "component", description: "Props passed down to recharts Legend component", typeRef: 190 }, { name: "polarAngleAxisProps", required: false, source: "component", description: "Props passed down to recharts PolarAngleAxis component", typeRef: 191 }, { name: "polarGridProps", required: false, source: "component", description: "Props passed down to recharts PolarGrid component", typeRef: 192 }, { name: "polarRadiusAxisProps", required: false, source: "component", description: "Props passed down to recharts PolarRadiusAxis component", typeRef: 193 }, { name: "radarChartProps", required: false, source: "component", description: "Props passed down to recharts RadarChart component", typeRef: 101 }, { name: "series", required: true, source: "component", description: "Determines which data should be consumed from the `data` array.", typeRef: 255 }, { name: "textColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls color of all text elements. By default, color depends on the color scheme.", typeRef: 162 }, { name: "tooltipAnimationDuration", required: false, source: "component", description: "Tooltip position animation duration in ms", typeRef: 353 }, { name: "tooltipProps", required: false, source: "component", description: "Props passed down to recharts Tooltip component", typeRef: 197 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withDots", required: false, source: "component", literalValues: [false, true], description: "Determines whether dots should be displayed", typeRef: 341 }, { name: "withLegend", required: false, source: "component", literalValues: [false, true], description: "Determines whether the legend should be displayed", typeRef: 341 }, { name: "withPolarAngleAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether PolarAngleAxis component should be displayed", typeRef: 341 }, { name: "withPolarGrid", required: false, source: "component", literalValues: [false, true], description: "Determines whether PolarGrid component should be displayed", typeRef: 341 }, { name: "withPolarRadiusAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether PolarRadiusAxisProps component should be displayed", typeRef: 341 }, { name: "withTooltip", required: false, source: "component", literalValues: [false, true], description: "Determines whether Tooltip component should be displayed", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "RadialBarChart", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/radial-bar-chart/", props: [{ name: "attributes", required: false, source: "component", typeRef: 442 }, { name: "barSize", required: false, source: "component", description: "Size of bars in px, `20` by default", typeRef: 353 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "data", required: true, source: "component", description: "Chart data", typeRef: 267 }, { name: "dataKey", required: true, source: "component", description: "Key from data object to use as data key", typeRef: 359 }, { name: "emptyBackgroundColor", required: false, source: "component", description: "Color of the empty background, by default depends on the color scheme", typeRef: 359 }, { name: "endAngle", required: false, source: "component", description: "Angle at which chart ends", typeRef: 353 }, { name: "legendProps", required: false, source: "component", description: "Props passed down to recharts Legend component", typeRef: 190 }, { name: "radialBarChartProps", required: false, source: "component", description: "Props passed down to recharts RadarChartChart component", typeRef: 101 }, { name: "radialBarProps", required: false, source: "component", description: "Props passed down to recharts RadialBar component", typeRef: 194 }, { name: "startAngle", required: false, source: "component", description: "Angle at which chart starts", typeRef: 353 }, { name: "tooltipProps", required: false, source: "component", description: "Props passed down to `Tooltip` recharts component", typeRef: 197 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withBackground", required: false, source: "component", literalValues: [false, true], description: "Determines whether empty bars area should be visible", typeRef: 341 }, { name: "withLabels", required: false, source: "component", literalValues: [false, true], description: "Determines whether labels should be displayed", typeRef: 341 }, { name: "withLegend", required: false, source: "component", literalValues: [false, true], description: "Determines whether the legend should be displayed", typeRef: 341 }, { name: "withTooltip", required: false, source: "component", literalValues: [false, true], description: "Determines whether the tooltip should be displayed when one of the bars is hovered", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "Radio", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/radio/", props: [{ name: "attributes", required: false, source: "component", typeRef: 376 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of theme.colors or any valid CSS color to set radio background color in checked state", typeRef: 162 }, { name: "description", required: false, source: "component", description: "Description displayed below the label", typeRef: 263 }, { name: "error", required: false, source: "component", description: "Error displayed below the label", typeRef: 263 }, { name: "iconColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of theme.colors or any valid CSS color to set icon color. When not set, icon color is determined automatically based on theme.autoContrast setting", typeRef: 162 }, { name: "label", required: false, source: "component", description: "Content of the `label` associated with the radio", typeRef: 263 }, { name: "labelPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the label relative to the input", typeRef: 47 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the component", typeRef: 182 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["filled", "outline"], typeRef: 128 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "If set, applies error styles to the radio when `error` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 103 }], blockedProps: [], subcomponents: ["Radio.Card", "Radio.Group", "Radio.Indicator"], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Radio.Card", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/radio/", props: [{ name: "attributes", required: false, source: "component", typeRef: 390 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Value of the radio, used with Radio.Group", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Radio.Group", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/radio/", props: [{ name: "attributes", required: false, source: "component", typeRef: 426 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 329 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelElement", required: false, source: "component", literalValues: ["div", "label"], description: "Root element for the label. Use `'div'` when wrapper contains multiple input elements and you need to handle `htmlFor` manually.", typeRef: 31 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the `Input.Wrapper`", typeRef: 81 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 329 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the `Input.Wrapper`", typeRef: 103 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Radio.Indicator", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/radio/", props: [{ name: "attributes", required: false, source: "component", typeRef: 403 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of theme.colors or any valid CSS color to set indicator background color in checked state", typeRef: 162 }, { name: "iconColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of theme.colors or any valid CSS color to set icon color. When not set, icon color is determined automatically based on theme.autoContrast setting", typeRef: 162 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the component", typeRef: 355 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["filled", "outline"], typeRef: 127 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "RadioCard", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/radio-card/", props: [{ name: "attributes", required: false, source: "component", typeRef: 390 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Value of the radio, used with Radio.Group", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "RadioGroup", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/radio-group/", props: [{ name: "attributes", required: false, source: "component", typeRef: 426 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 329 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelElement", required: false, source: "component", literalValues: ["div", "label"], description: "Root element for the label. Use `'div'` when wrapper contains multiple input elements and you need to handle `htmlFor` manually.", typeRef: 31 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the `Input.Wrapper`", typeRef: 81 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 329 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the `Input.Wrapper`", typeRef: 103 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "RadioIcon", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/radio-icon/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "display", required: false, source: "component", typeRef: 365 }, { name: "opacity", required: false, source: "component", typeRef: 365 }, { name: "radius", required: false, source: "component", typeRef: 365 }, { name: "size", required: false, source: "component", typeRef: 365 }, { name: "type", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "RadioIndicator", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/radio-indicator/", props: [{ name: "attributes", required: false, source: "component", typeRef: 403 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of theme.colors or any valid CSS color to set indicator background color in checked state", typeRef: 162 }, { name: "iconColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of theme.colors or any valid CSS color to set icon color. When not set, icon color is determined automatically based on theme.autoContrast setting", typeRef: 162 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the component", typeRef: 355 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["filled", "outline"], typeRef: 127 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "RangeSlider", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/range-slider/", props: [{ name: "attributes", required: false, source: "component", typeRef: 424 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color, controls color of track and thumb", typeRef: 162 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 256 }, { name: "domain", required: false, source: "component", description: "Domain of the slider, defines the selectable value range independently of min/max. Useful when you want to display a wider track range (min/max) but restrict actual selection to a subset (domain).", typeRef: 334 }, { name: "hiddenInputProps", required: false, source: "component", description: "Props passed down to the hidden input", typeRef: 261 }, { name: "inverted", required: false, source: "component", literalValues: [false, true], description: "Determines whether track values representation should be inverted", typeRef: 341 }, { name: "labelAlwaysOn", required: false, source: "component", literalValues: [false, true], description: "Determines whether the label should be visible when the slider is not being dragged or hovered", typeRef: 341 }, { name: "labelTransitionProps", required: false, source: "component", description: "Props passed down to the `Transition` component", typeRef: 208 }, { name: "marks", required: false, source: "component", description: "Marks displayed on the track", typeRef: 276 }, { name: "max", required: false, source: "component", description: "Maximum possible value", typeRef: 353 }, { name: "maxRange", required: false, source: "component", description: "Maximum range interval", typeRef: 353 }, { name: "min", required: false, source: "component", description: "Minimal possible value", typeRef: 353 }, { name: "minRange", required: false, source: "component", description: "Minimal range interval between the two thumbs. Consider this value relative to the total range (max - min).", typeRef: 353 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Slider orientation", typeRef: 36 }, { name: "precision", required: false, source: "component", description: "Number of significant digits after the decimal point", typeRef: 353 }, { name: "pushOnOverlap", required: false, source: "component", literalValues: [false, true], description: "Determines whether the other thumb should be pushed by the current thumb dragging when `minRange`/`maxRange` is reached", typeRef: 341 }, { name: "restrictToMarks", required: false, source: "component", literalValues: [false, true], description: "Determines whether the selection should be only allowed from the given marks array", typeRef: 341 }, { name: "showLabelOnHover", required: false, source: "component", literalValues: [false, true], description: "Determines whether the label should be displayed when the slider is hovered", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the track", typeRef: 355 }, { name: "step", required: false, source: "component", description: "Number by which value will be incremented/decremented with thumb drag and arrows", typeRef: 353 }, { name: "thumbChildren", required: false, source: "component", description: "Content rendered inside thumb", typeRef: 263 }, { name: "thumbFromLabel", required: false, source: "component", description: "First thumb `aria-label`", typeRef: 359 }, { name: "thumbLabel", required: false, source: "component", description: "`aria-label` for both thumbs (overridden by thumbFromLabel/thumbToLabel if provided)", typeRef: 359 }, { name: "thumbSize", required: false, source: "component", description: "Thumb `width` and `height`, by default value is computed based on `size` prop", typeRef: 365 }, { name: "thumbToLabel", required: false, source: "component", description: "Second thumb `aria-label`", typeRef: 359 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 256 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], bind: { type: "number[]", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Rating", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/rating/", props: [{ name: "allowClear", required: false, source: "component", literalValues: [false, true], description: "When true, clicking the same rating value clears the rating to 0, default is false", typeRef: 341 }, { name: "attributes", required: false, source: "component", typeRef: 409 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of theme.colors or any CSS color value, default is 'yellow'", typeRef: 162 }, { name: "count", required: false, source: "component", description: "Number of rating items (stars), default is 5", typeRef: 353 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 353 }, { name: "fractions", required: false, source: "component", description: "Number of fractions each item can be divided into, default is 1", typeRef: 353 }, { name: "highlightSelectedOnly", required: false, source: "component", literalValues: [false, true], description: "When true, only the clicked rating item is highlighted, not all items up to the selected value, default is false", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls component size", typeRef: 355 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 353 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], bind: { type: "number", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "RefreshButton", package: "@homarr/widgets", category: "network", safety: "wrapped", description: "Refreshes load-triggered widget queries.", documentationUrl: "https://homarr.dev/docs/management/custom-widgets/", props: [{ name: "color", source: "component", required: false, typeRef: 359 }, { name: "label", source: "component", required: false, typeRef: 359 }, { name: "size", source: "component", required: false, typeRef: 359 }, { name: "variant", source: "component", required: false, typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Action labels must describe their effect; destructive actions require confirmation."] }, { name: "RemoveScroll", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/remove-scroll/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Changes global page scrolling" }, { name: "RingProgress", package: "@mantine/core", category: "feedback", safety: "wrapped", documentationUrl: "https://mantine.dev/core/ring-progress/", props: [{ name: "attributes", required: false, source: "component", typeRef: 433 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "label", required: false, source: "component", description: "Label displayed in the center of the ring", typeRef: 263 }, { name: "rootColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color of the unfilled portion of the ring (background). Defaults to gray-2 in light mode, dark-4 in dark mode", typeRef: 162 }, { name: "roundCaps", required: false, source: "component", literalValues: [false, true], description: "Applies rounded line caps to the start and end of visible sections", typeRef: 341 }, { name: "sectionGap", required: false, source: "component", description: "Gap between sections in degrees. Reduces the visual size of each section", typeRef: 353 }, { name: "sections", required: true, source: "component", description: "Array of sections to display in the ring. Each section should have a `value` (0-100), `color`, and optional `tooltip`. Sections can also receive any valid SVG circle element props.", typeRef: 271 }, { name: "size", required: false, source: "component", description: "Width and height of the progress ring", typeRef: 353 }, { name: "startAngle", required: false, source: "component", description: "Starting angle in degrees. 0 = right, 90 = bottom, 180 = left, 270 = top", typeRef: 353 }, { name: "thickness", required: false, source: "component", description: "Ring thickness in pixels. Cannot exceed size / 4 and will be automatically clamped if necessary", typeRef: 353 }, { name: "transitionDuration", required: false, source: "component", description: "Transition duration in milliseconds for section value and color changes", typeRef: 353 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Do not rely on color alone to communicate status."] }, { name: "RollingNumber", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/rolling-number/", props: [{ name: "animationDuration", required: false, source: "component", description: "Animation duration in milliseconds", typeRef: 353 }, { name: "attributes", required: false, source: "component", typeRef: 458 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "decimalScale", required: false, source: "component", description: "Number of decimal places to display", typeRef: 353 }, { name: "decimalSeparator", required: false, source: "component", description: "Character used as a decimal separator", typeRef: 359 }, { name: "fixedDecimalScale", required: false, source: "component", literalValues: [false, true], description: "If set, trailing zeros are added to match `decimalScale`", typeRef: 341 }, { name: "suffix", required: false, source: "component", description: "Suffix added after the value", typeRef: 359 }, { name: "tabularNumbers", required: false, source: "component", literalValues: [false, true], description: "If set, use tabular (monospace) numbers", typeRef: 341 }, { name: "thousandSeparator", required: false, source: "component", description: "Character used to separate thousands, set to `true` for `,`", typeRef: 364 }, { name: "timingFunction", required: false, source: "component", description: "CSS timing function for animation", typeRef: 359 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: true, source: "component", description: "Number value to display", typeRef: 353 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withLiveRegion", required: false, source: "component", literalValues: [false, true], description: 'If set, the root element acts as an `aria-live="polite"` region (`role="status"`) and screen readers announce every value change. When `false`, the root uses `role="img"` so the current value is still accessible but updates are not announced.', typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "SankeyChart", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/sankey-chart/", props: [{ name: "attributes", required: false, source: "component", typeRef: 470 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "colors", required: false, source: "component", description: "An array of colors used for nodes when no `color` is set on individual nodes", typeRef: 164 }, { name: "data", required: true, source: "component", description: "Data used to render chart, must include `nodes` and `links` arrays", typeRef: 272 }, { name: "height", required: false, source: "component", description: "Controls chart height", typeRef: 353 }, { name: "iterations", required: false, source: "component", description: "The number of relaxation iterations", typeRef: 353 }, { name: "linkColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Default color for links, by default depends on color scheme", typeRef: 162 }, { name: "linkCurvature", required: false, source: "component", description: "The curvature of links between nodes", typeRef: 353 }, { name: "linkOpacity", required: false, source: "component", description: "Opacity of the link fill", typeRef: 353 }, { name: "nodeColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Default color for nodes, by default depends on color scheme", typeRef: 162 }, { name: "nodePadding", required: false, source: "component", description: "The padding between nodes", typeRef: 353 }, { name: "nodeWidth", required: false, source: "component", description: "The width of each node", typeRef: 353 }, { name: "sankeyProps", required: false, source: "component", description: "Props passed down to recharts `Sankey` component", typeRef: 205 }, { name: "textColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls text color of labels", typeRef: 162 }, { name: "tooltipAnimationDuration", required: false, source: "component", description: "Tooltip animation duration in ms", typeRef: 353 }, { name: "tooltipProps", required: false, source: "component", description: "Props passed down to `Tooltip` recharts component", typeRef: 197 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withTooltip", required: false, source: "component", literalValues: [false, true], description: "Determines whether the tooltip should be displayed when hovered", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "ScatterChart", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/scatter-chart/", props: [{ name: "attributes", required: false, source: "component", typeRef: 435 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "data", required: true, source: "component", description: "Data that is used to build the chart", typeRef: 273 }, { name: "dataKey", required: true, source: "component", description: "Keys that should be used to retrieve data from the data array on x and y axis", typeRef: 479 }, { name: "gridAxis", required: false, source: "component", literalValues: ["none", "x", "xy", "y"], description: "Specifies which lines should be displayed in the grid, `'x'` by default", typeRef: 61 }, { name: "gridColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color of the grid and cursor lines, by default depends on color scheme", typeRef: 162 }, { name: "gridProps", required: false, source: "component", description: "Props passed down to the `CartesianGrid` component", typeRef: 189 }, { name: "labels", required: false, source: "component", description: "Labels that should be used instead of keys names in the tooltip", typeRef: 481 }, { name: "legendProps", required: false, source: "component", description: "Props passed down to the `Legend` component", typeRef: 190 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Chart orientation, `'horizontal'` by default", typeRef: 36 }, { name: "pointLabels", required: false, source: "component", literalValues: ["x", "y"], description: "If set, displays labels next to points for the given axis", typeRef: 80 }, { name: "referenceLines", required: false, source: "component", description: "Reference lines that should be displayed on the chart", typeRef: 149 }, { name: "rightYAxisLabel", required: false, source: "component", description: "A label to display next to the right y-axis", typeRef: 359 }, { name: "rightYAxisProps", required: false, source: "component", description: "Props passed down to the `YAxis` recharts component rendered on the right side", typeRef: 199 }, { name: "scatterChartProps", required: false, source: "component", description: "Props passed down to recharts `ScatterChart` component", typeRef: 91 }, { name: "scatterProps", required: false, source: "component", description: "Props passed down to recharts `Scatter` component", typeRef: 207 }, { name: "textColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color of the text displayed inside the chart, `'dimmed'` by default", typeRef: 162 }, { name: "tickLine", required: false, source: "component", literalValues: ["none", "x", "xy", "y"], description: "Specifies which axis should have tick line, `'y'` by default", typeRef: 61 }, { name: "tooltipAnimationDuration", required: false, source: "component", description: "Tooltip position animation duration in ms, `0` by default", typeRef: 353 }, { name: "tooltipProps", required: false, source: "component", description: "Props passed down to the `Tooltip` component", typeRef: 197 }, { name: "unit", required: false, source: "component", description: "Units displayed after value on axis and inside the tooltip", typeRef: 481 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withLegend", required: false, source: "component", literalValues: [false, true], description: "Determines whether chart legend should be displayed, `false` by default", typeRef: 341 }, { name: "withRightYAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether additional y-axis should be displayed on the right side of the chart, `false` by default", typeRef: 341 }, { name: "withTooltip", required: false, source: "component", literalValues: [false, true], description: "Determines whether chart tooltip should be displayed, `true` by default", typeRef: 341 }, { name: "withXAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether x-axis should be displayed, `true` by default", typeRef: 341 }, { name: "withYAxis", required: false, source: "component", literalValues: [false, true], description: "Determines whether y-axis should be displayed, `true` by default", typeRef: 341 }, { name: "xAxisLabel", required: false, source: "component", description: "A label to display below the x-axis", typeRef: 359 }, { name: "xAxisProps", required: false, source: "component", description: "Props passed down to the `XAxis` recharts component", typeRef: 198 }, { name: "yAxisLabel", required: false, source: "component", description: "A label to display next to the y-axis", typeRef: 359 }, { name: "yAxisProps", required: false, source: "component", description: "Props passed down to the `YAxis` recharts component", typeRef: 199 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "ScrollArea", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/scroll-area/", props: [{ name: "attributes", required: false, source: "component", typeRef: 396 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "offsetScrollbars", required: false, source: "component", literalValues: [false, "present", true, "x", "y"], description: "Determines whether scrollbars should be offset with padding on given axis - `true` - adds padding to offset both scrollbars (always) - `'x'` - adds padding to offset horizontal scrollbar (always) - `'y'` - adds padding to offset vertical scrollbar (always) - `'present'` - adds padding only when scrollbars are visible (dynamic)", typeRef: 351 }, { name: "overscrollBehavior", required: false, source: "component", literalValues: ["-moz-initial", "auto", "contain", "inherit", "initial", "none", "revert", "revert-layer", "unset"], description: "Defines `overscroll-behavior` of the viewport", typeRef: 253 }, { name: "scrollHideDelay", required: false, source: "component", description: "Scroll hide delay in ms, applicable only when type is set to `hover` or `scroll`", typeRef: 353 }, { name: "scrollbarSize", required: false, source: "component", description: "Scrollbar size, any valid CSS value for width/height, numbers are converted to rem, default value is 12px (0.75rem)", typeRef: 365 }, { name: "scrollbars", required: false, source: "component", literalValues: [false, "x", "xy", "y"], description: "Axis at which scrollbars must be rendered - `'x'` - horizontal scrollbar only - `'y'` - vertical scrollbar only - `'xy'` - both scrollbars - `false` - no scrollbars rendered (content remains scrollable via mouse/touch)", typeRef: 340 }, { name: "startScrollPosition", required: false, source: "component", description: "Initial scroll position set on mount", typeRef: 480 }, { name: "type", required: false, source: "component", literalValues: ["always", "auto", "hover", "never", "scroll"], description: "Defines scrollbars behavior - `'hover'` \u2013 scrollbars visible on hover (default) - `'scroll'` \u2013 scrollbars visible during scrolling - `'auto'` \u2013 scrollbars visible only when content overflows (like CSS overflow: auto) - `'always'` \u2013 scrollbars always visible, even when content doesn't overflow - `'never'` \u2013 scrollbars always hidden", typeRef: 12 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "viewportProps", required: false, source: "component", description: "Props passed down to the viewport element", typeRef: 259 }], blockedProps: [], subcomponents: ["ScrollArea.Autosize"], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "ScrollArea.Autosize", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/scroll-area/", props: [{ name: "attributes", required: false, source: "component", typeRef: 396 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "offsetScrollbars", required: false, source: "component", literalValues: [false, "present", true, "x", "y"], description: "Determines whether scrollbars should be offset with padding on given axis - `true` - adds padding to offset both scrollbars (always) - `'x'` - adds padding to offset horizontal scrollbar (always) - `'y'` - adds padding to offset vertical scrollbar (always) - `'present'` - adds padding only when scrollbars are visible (dynamic)", typeRef: 351 }, { name: "overscrollBehavior", required: false, source: "component", literalValues: ["-moz-initial", "auto", "contain", "inherit", "initial", "none", "revert", "revert-layer", "unset"], description: "Defines `overscroll-behavior` of the viewport", typeRef: 253 }, { name: "scrollHideDelay", required: false, source: "component", description: "Scroll hide delay in ms, applicable only when type is set to `hover` or `scroll`", typeRef: 353 }, { name: "scrollbarSize", required: false, source: "component", description: "Scrollbar size, any valid CSS value for width/height, numbers are converted to rem, default value is 12px (0.75rem)", typeRef: 365 }, { name: "scrollbars", required: false, source: "component", literalValues: [false, "x", "xy", "y"], description: "Axis at which scrollbars must be rendered - `'x'` - horizontal scrollbar only - `'y'` - vertical scrollbar only - `'xy'` - both scrollbars - `false` - no scrollbars rendered (content remains scrollable via mouse/touch)", typeRef: 340 }, { name: "startScrollPosition", required: false, source: "component", description: "Initial scroll position set on mount", typeRef: 480 }, { name: "type", required: false, source: "component", literalValues: ["always", "auto", "hover", "never", "scroll"], description: "Defines scrollbars behavior - `'hover'` \u2013 scrollbars visible on hover (default) - `'scroll'` \u2013 scrollbars visible during scrolling - `'auto'` \u2013 scrollbars visible only when content overflows (like CSS overflow: auto) - `'always'` \u2013 scrollbars always visible, even when content doesn't overflow - `'never'` \u2013 scrollbars always hidden", typeRef: 12 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "viewportProps", required: false, source: "component", description: "Props passed down to the viewport element", typeRef: 259 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "ScrollAreaAutosize", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/scroll-area-autosize/", props: [{ name: "attributes", required: false, source: "component", typeRef: 396 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "offsetScrollbars", required: false, source: "component", literalValues: [false, "present", true, "x", "y"], description: "Determines whether scrollbars should be offset with padding on given axis - `true` - adds padding to offset both scrollbars (always) - `'x'` - adds padding to offset horizontal scrollbar (always) - `'y'` - adds padding to offset vertical scrollbar (always) - `'present'` - adds padding only when scrollbars are visible (dynamic)", typeRef: 351 }, { name: "overscrollBehavior", required: false, source: "component", literalValues: ["-moz-initial", "auto", "contain", "inherit", "initial", "none", "revert", "revert-layer", "unset"], description: "Defines `overscroll-behavior` of the viewport", typeRef: 253 }, { name: "scrollHideDelay", required: false, source: "component", description: "Scroll hide delay in ms, applicable only when type is set to `hover` or `scroll`", typeRef: 353 }, { name: "scrollbarSize", required: false, source: "component", description: "Scrollbar size, any valid CSS value for width/height, numbers are converted to rem, default value is 12px (0.75rem)", typeRef: 365 }, { name: "scrollbars", required: false, source: "component", literalValues: [false, "x", "xy", "y"], description: "Axis at which scrollbars must be rendered - `'x'` - horizontal scrollbar only - `'y'` - vertical scrollbar only - `'xy'` - both scrollbars - `false` - no scrollbars rendered (content remains scrollable via mouse/touch)", typeRef: 340 }, { name: "startScrollPosition", required: false, source: "component", description: "Initial scroll position set on mount", typeRef: 480 }, { name: "type", required: false, source: "component", literalValues: ["always", "auto", "hover", "never", "scroll"], description: "Defines scrollbars behavior - `'hover'` \u2013 scrollbars visible on hover (default) - `'scroll'` \u2013 scrollbars visible during scrolling - `'auto'` \u2013 scrollbars visible only when content overflows (like CSS overflow: auto) - `'always'` \u2013 scrollbars always visible, even when content doesn't overflow - `'never'` \u2013 scrollbars always hidden", typeRef: 12 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "viewportProps", required: false, source: "component", description: "Props passed down to the viewport element", typeRef: 259 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "Scroller", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/scroller/", props: [{ name: "attributes", required: false, source: "component", typeRef: 393 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "controlSize", required: false, source: "component", description: "Size of the control buttons,", typeRef: 365 }, { name: "draggable", required: false, source: "component", literalValues: [false, true], description: "Determines whether content can be scrolled by dragging with mouse, `true` by default", typeRef: 341 }, { name: "edgeGradientColor", required: false, source: "component", description: "Background color for the gradient fade on controls, `'var(--mantine-color-body)'` by default", typeRef: 359 }, { name: "endControlIcon", required: false, source: "component", description: "Icon component for the end control, AccordionChevron by default", typeRef: 263 }, { name: "endControlProps", required: false, source: "component", description: "Props passed to the end control button", typeRef: 258 }, { name: "scrollAmount", required: false, source: "component", description: "Amount of pixels to scroll when clicking the control buttons, `200` by default", typeRef: 353 }, { name: "showEndControl", required: false, source: "component", literalValues: [false, true], description: "Determines whether end control should always be visible regardless of scroll position, `false` by default", typeRef: 341 }, { name: "showStartControl", required: false, source: "component", literalValues: [false, true], description: "Determines whether start control should always be visible regardless of scroll position, `false` by default", typeRef: 341 }, { name: "startControlIcon", required: false, source: "component", description: "Icon component for the start control, AccordionChevron by default", typeRef: 263 }, { name: "startControlProps", required: false, source: "component", description: "Props passed to the start control button", typeRef: 258 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "SegmentedControl", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/segmented-control/", props: [{ name: "attributes", required: false, source: "component", typeRef: 407 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, automatically adjusts label text color for optimal contrast against the indicator background color", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color, changes indicator background color. By default, uses white in light mode and dark.5 in dark mode", typeRef: 162 }, { name: "data", required: true, source: "component", description: "Data based on which controls are rendered", typeRef: 108 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 328 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the component should take 100% width of its parent", typeRef: 341 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Component orientation", typeRef: 36 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls `font-size`, `padding` and `height` properties", typeRef: 182 }, { name: "transitionDuration", required: false, source: "component", description: "Indicator `transition-duration` in ms, set `0` to turn off transitions", typeRef: 353 }, { name: "transitionTimingFunction", required: false, source: "component", description: "Indicator `transition-timing-function` property", typeRef: 359 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 328 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withItemsBorders", required: false, source: "component", literalValues: [false, true], description: "Determines whether there should be borders between items", typeRef: 341 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Select", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/select/", props: [{ name: "allowDeselect", required: false, source: "component", literalValues: [false, true], description: "Allows deselecting the selected option by clicking it", typeRef: 341 }, { name: "attributes", required: false, source: "component", typeRef: 405 }, { name: "autoSelectOnBlur", required: false, source: "component", literalValues: [false, true], description: "Automatically selects the highlighted option when input loses focus", typeRef: 341 }, { name: "checkIconPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the check icon relative to the option label", typeRef: 47 }, { name: "chevronColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls color of the default chevron, by default depends on the color scheme", typeRef: 162 }, { name: "clearButtonProps", required: false, source: "component", description: "Props passed down to the clear button", typeRef: 172 }, { name: "clearSectionMode", required: false, source: "component", literalValues: ["both", "clear", "rightSection"], description: "Determines how the clear button and rightSection are rendered", typeRef: 15 }, { name: "clearable", required: false, source: "component", literalValues: [false, true], description: "Displays clear button in the right section when component has value", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "comboboxProps", required: false, source: "component", description: "Props passed down to `Combobox` component", typeRef: 153 }, { name: "data", required: false, source: "component", description: "Data used to generate options. Values must be unique, otherwise an error will be thrown and component will not render.", typeRef: 151 }, { name: "defaultDropdownOpened", required: false, source: "component", literalValues: [false, true], description: "Uncontrolled dropdown initial opened state", typeRef: 341 }, { name: "defaultSearchValue", required: false, source: "component", description: "Default search value", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 329 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "dropdownOpened", required: false, source: "component", literalValues: [false, true], description: "Controlled dropdown opened state", typeRef: 341 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "floatingHeight", required: false, source: "component", literalValues: ["viewport"], description: "If set to `'viewport'`, the dropdown grows to fill the available vertical space in the viewport. Disables the `flip` middleware.", typeRef: 78 }, { name: "hiddenInputProps", required: false, source: "component", description: "Props passed down to the hidden input", typeRef: 195 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "limit", required: false, source: "component", description: "Maximum number of options displayed at a time, `Infinity` by default", typeRef: 353 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "maxDropdownHeight", required: false, source: "component", description: "`max-height` of the dropdown, only applicable when `withScrollArea` prop is `true`, `250` by default", typeRef: 365 }, { name: "nothingFoundMessage", required: false, source: "component", description: "Message displayed when no options match the search query or when there is no data", typeRef: 263 }, { name: "openOnFocus", required: false, source: "component", literalValues: [false, true], description: "Opens dropdown when input receives focus (requires searchable={true})", typeRef: 341 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "scrollAreaProps", required: false, source: "component", description: "Props passed down to the underlying `ScrollArea` component in the dropdown", typeRef: 274 }, { name: "searchValue", required: false, source: "component", description: "Controlled search value", typeRef: 359 }, { name: "searchable", required: false, source: "component", literalValues: [false, true], description: "Determines whether the select should be searchable", typeRef: 341 }, { name: "selectFirstOptionOnChange", required: false, source: "component", literalValues: [false, true], description: "If set, the first option is selected when value changes, `false` by default", typeRef: 341 }, { name: "selectFirstOptionOnDropdownOpen", required: false, source: "component", literalValues: [false, true], description: "If set, the first option is selected when dropdown opens, `false` by default", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 329 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "withAlignedLabels", required: false, source: "component", literalValues: [false, true], description: "Aligns unchecked labels with the checked one", typeRef: 341 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withCheckIcon", required: false, source: "component", literalValues: [false, true], description: "Displays check icon near the selected option label", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withScrollArea", required: false, source: "component", literalValues: [false, true], description: "Determines whether the options should be wrapped with `ScrollArea.AutoSize`, `true` by default", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "SemiCircleProgress", package: "@mantine/core", category: "feedback", safety: "wrapped", documentationUrl: "https://mantine.dev/core/semi-circle-progress/", props: [{ name: "attributes", required: false, source: "component", typeRef: 434 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "emptySegmentColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color value", typeRef: 162 }, { name: "fillDirection", required: false, source: "component", literalValues: ["left-to-right", "right-to-left"], description: "Direction from which the circle is filled", typeRef: 66 }, { name: "filledSegmentColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color value", typeRef: 162 }, { name: "label", required: false, source: "component", description: "Label rendered inside the circle", typeRef: 263 }, { name: "labelPosition", required: false, source: "component", literalValues: ["bottom", "center"], description: "Label position relative to the circle center", typeRef: 21 }, { name: "orientation", required: false, source: "component", literalValues: ["down", "up"], description: "Orientation of the circle", typeRef: 76 }, { name: "size", required: false, source: "component", description: "Width of the component and diameter of the full circle in px. The visible SVG height will be size/2", typeRef: 353 }, { name: "thickness", required: false, source: "component", description: "Stroke width of the circle segments in px", typeRef: 353 }, { name: "transitionDuration", required: false, source: "component", description: "Transition duration for the filled segment progress changes in ms. Does not affect color transitions", typeRef: 353 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: true, source: "component", description: "Progress value from `0` to `100`", typeRef: 353 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Do not rely on color alone to communicate status."] }, { name: "SimpleGrid", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/simple-grid/", props: [{ name: "attributes", required: false, source: "component", typeRef: 455 }, { name: "autoFlow", required: false, source: "component", literalValues: ["auto-fill", "auto-fit"], description: "Grid repeat type when minColWidth is set", typeRef: 13 }, { name: "autoRows", required: false, source: "component", description: "Sets the size of implicitly created grid rows", typeRef: 359 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "cols", required: false, source: "component", description: "Number of columns", typeRef: 312 }, { name: "minColWidth", required: false, source: "component", description: "Minimum column width when using auto-fit/auto-fill. When set, cols prop is ignored", typeRef: 365 }, { name: "spacing", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Spacing between columns", typeRef: 284 }, { name: "type", required: false, source: "component", literalValues: ["container", "media"], description: "Determines type of queries that are used for responsive styles", typeRef: 51 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "verticalSpacing", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Spacing between rows. When not set, falls back to spacing value", typeRef: 284 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "Skeleton", package: "@mantine/core", category: "feedback", safety: "wrapped", documentationUrl: "https://mantine.dev/core/skeleton/", props: [{ name: "animate", required: false, source: "component", literalValues: [false, true], description: "Enables animation", typeRef: 341 }, { name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "circle", required: false, source: "component", literalValues: [false, true], description: "If set, Skeleton `width` and `border-radius` are equal to its `height`", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "height", required: false, source: "component", description: "Skeleton `height`, numbers are converted to rem", typeRef: 247 }, { name: "radius", required: false, source: "component", description: "Key of `theme.radius` or any valid CSS value to set border-radius. Numbers are converted to rem.", typeRef: 246 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "visible", required: false, source: "component", literalValues: [false, true], description: "Determines whether Skeleton overlay should be displayed", typeRef: 341 }, { name: "width", required: false, source: "component", description: "Skeleton `width`, numbers are converted to rem, ignored when `circle` prop is set.", typeRef: 254 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Do not rely on color alone to communicate status."] }, { name: "Slider", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/slider/", props: [{ name: "attributes", required: false, source: "component", typeRef: 424 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color, controls color of track and thumb", typeRef: 162 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 353 }, { name: "domain", required: false, source: "component", description: "Domain of the slider, defines the selectable value range independently of min/max. Useful when you want to display a wider track range (min/max) but restrict actual selection to a subset (domain).", typeRef: 334 }, { name: "hiddenInputProps", required: false, source: "component", description: "Props passed down to the hidden input", typeRef: 261 }, { name: "inverted", required: false, source: "component", literalValues: [false, true], description: "Determines whether track value representation should be inverted", typeRef: 341 }, { name: "labelAlwaysOn", required: false, source: "component", literalValues: [false, true], description: "Determines whether the label should be visible when the slider is not being dragged or hovered", typeRef: 341 }, { name: "labelTransitionProps", required: false, source: "component", description: "Props passed down to the `Transition` component", typeRef: 208 }, { name: "marks", required: false, source: "component", description: "Marks displayed on the track", typeRef: 276 }, { name: "max", required: false, source: "component", description: "Maximum possible value", typeRef: 353 }, { name: "min", required: false, source: "component", description: "Minimal possible value", typeRef: 353 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Slider orientation", typeRef: 36 }, { name: "precision", required: false, source: "component", description: "Number of significant digits after the decimal point", typeRef: 353 }, { name: "restrictToMarks", required: false, source: "component", literalValues: [false, true], description: "Determines whether the selection should be only allowed from the given marks array", typeRef: 341 }, { name: "showLabelOnHover", required: false, source: "component", literalValues: [false, true], description: "Determines whether the label should be displayed when the slider is hovered", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the track", typeRef: 355 }, { name: "startPointValue", required: false, source: "component", description: "Value at which the filled bar starts. When set, the bar extends from this point toward the current value. Ignored when `inverted` is set.", typeRef: 353 }, { name: "step", required: false, source: "component", description: "Number by which value will be incremented/decremented with thumb drag and arrows", typeRef: 353 }, { name: "thumbChildren", required: false, source: "component", description: "Content rendered inside thumb", typeRef: 263 }, { name: "thumbLabel", required: false, source: "component", description: "Thumb `aria-label`", typeRef: 359 }, { name: "thumbProps", required: false, source: "component", description: "Props passed down to thumb element", typeRef: 259 }, { name: "thumbSize", required: false, source: "component", description: "Thumb `width` and `height`, by default value is computed based on `size` prop", typeRef: 365 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 353 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], bind: { type: "number", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Space", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/space/", props: [{ name: "attributes", required: false, source: "component", typeRef: 369 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "styles", required: false, source: "component", typeRef: 369 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "Sparkline", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/sparkline/", props: [{ name: "areaProps", required: false, source: "component", description: "Props passed down to the underlying recharts `Area` component", typeRef: 188 }, { name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "connectNulls", required: false, source: "component", literalValues: [false, true], description: "Determines whether null values should be connected with other values", typeRef: 341 }, { name: "curveType", required: false, source: "component", literalValues: ["bump", "linear", "monotone", "natural", "step", "stepAfter", "stepBefore"], description: "Type of the curve", typeRef: 69 }, { name: "data", required: true, source: "component", description: "Data used to render the chart", typeRef: 109 }, { name: "fillOpacity", required: false, source: "component", description: "Controls fill opacity of the area", typeRef: 353 }, { name: "strokeWidth", required: false, source: "component", description: "Area stroke width", typeRef: 353 }, { name: "trendColors", required: false, source: "component", description: "If set, `color` prop is ignored and chart color is determined by the difference between first and last value.", typeRef: 277 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withGradient", required: false, source: "component", literalValues: [false, true], description: "Determines whether the chart fill should be a gradient", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "Splitter", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/splitter/", props: [{ name: "attributes", required: false, source: "component", typeRef: 468 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "handleColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color for the separator line", typeRef: 162 }, { name: "handleIcon", required: false, source: "component", description: "Custom icon displayed in the handle thumb, by default uses grip icon based on orientation", typeRef: 263 }, { name: "lineSize", required: false, source: "component", description: "CSS value for separator line thickness between panes", typeRef: 365 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Layout direction", typeRef: 36 }, { name: "resetOnDoubleClick", required: false, source: "component", literalValues: [false, true], description: "Restore the two panes adjacent to a handle to their default ratio (preserving their combined size) when the handle is double-clicked", typeRef: 341 }, { name: "shiftStep", required: false, source: "component", description: "Shift+arrow step size, a `number`/`%` is a percentage, `px`/`rem` is resolved to pixels", typeRef: 280 }, { name: "sizes", required: false, source: "component", description: "Controlled sizes, each value keeps the unit it was declared in (number/`%` flexible, `px`/`rem` fixed)", typeRef: 279 }, { name: "step", required: false, source: "component", description: "Keyboard step size, a `number`/`%` is a percentage, `px`/`rem` is resolved to pixels", typeRef: 280 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withHandle", required: false, source: "component", literalValues: [false, true], description: "Determines whether the thumb with grip icon is displayed on the handle", typeRef: 341 }], blockedProps: [], subcomponents: ["Splitter.Pane"], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "Splitter.Pane", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/splitter/", props: [{ name: "collapseThreshold", required: false, source: "component", description: "Size below which the pane snaps to collapsed, defaults to `min`", typeRef: 278 }, { name: "collapsible", required: false, source: "component", literalValues: [false, true], description: "Whether this pane can be collapsed", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultSize", required: true, source: "component", description: "Initial size, a `number`/`%` is a flexible size (shares leftover space), `px`/`rem` is a fixed size. A bare number is treated as a percentage.", typeRef: 278 }, { name: "max", required: false, source: "component", description: "Maximum size in the same units as `defaultSize`, no limit by default", typeRef: 278 }, { name: "min", required: false, source: "component", description: "Minimum size in the same units as `defaultSize`", typeRef: 278 }, { name: "styles", required: false, source: "component", typeRef: 222 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "SplitterPane", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/splitter-pane/", props: [{ name: "collapseThreshold", required: false, source: "component", description: "Size below which the pane snaps to collapsed, defaults to `min`", typeRef: 278 }, { name: "collapsible", required: false, source: "component", literalValues: [false, true], description: "Whether this pane can be collapsed", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultSize", required: true, source: "component", description: "Initial size, a `number`/`%` is a flexible size (shares leftover space), `px`/`rem` is a fixed size. A bare number is treated as a percentage.", typeRef: 278 }, { name: "max", required: false, source: "component", description: "Maximum size in the same units as `defaultSize`, no limit by default", typeRef: 278 }, { name: "min", required: false, source: "component", description: "Minimum size in the same units as `defaultSize`", typeRef: 278 }, { name: "styles", required: false, source: "component", typeRef: 222 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "Spoiler", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/spoiler/", props: [{ name: "attributes", required: false, source: "component", typeRef: 394 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultExpanded", required: false, source: "component", literalValues: [false, true], description: "Initial expanded state in uncontrolled mode. If `true`, content starts expanded. If `false`, content starts collapsed", typeRef: 341 }, { name: "expanded", required: false, source: "component", literalValues: [false, true], description: "Controlled expanded state value", typeRef: 341 }, { name: "hideAriaLabel", required: false, source: "component", description: "Accessible label for the toggle button when expanded. If not set, `hideLabel` is used", typeRef: 359 }, { name: "hideLabel", required: false, source: "component", description: "Content displayed in the toggle button when content is expanded (to collapse)", typeRef: 263 }, { name: "maxHeight", required: false, source: "component", description: "Maximum height of visible content in px. When content exceeds this height, the toggle control appears", typeRef: 353 }, { name: "showAriaLabel", required: false, source: "component", description: "Accessible label for the toggle button when collapsed. If not set, `showLabel` is used", typeRef: 359 }, { name: "showLabel", required: false, source: "component", description: "Content displayed in the toggle button when content is collapsed (to expand)", typeRef: 263 }, { name: "transitionDuration", required: false, source: "component", description: "Spoiler reveal transition duration in ms. Set to 0 to disable animation", typeRef: 353 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Stack", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/stack/", props: [{ name: "align", required: false, source: "component", literalValues: ["-moz-initial", "anchor-center", "baseline", "center", "end", "flex-end", "flex-start", "inherit", "initial", "normal", "revert", "revert-layer", "self-end", "self-start", "start", "stretch", "unset"], description: "Controls `align-items` CSS property", typeRef: 244 }, { name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "gap", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Key of `theme.spacing` or any valid CSS value to set `gap` property, numbers are converted to rem", typeRef: 183 }, { name: "justify", required: false, source: "component", literalValues: ["-moz-initial", "center", "end", "flex-end", "flex-start", "inherit", "initial", "left", "normal", "revert", "revert-layer", "right", "space-around", "space-between", "space-evenly", "start", "stretch", "unset"], description: "Controls `justify-content` CSS property", typeRef: 248 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "StatBar", package: "@homarr/widgets", category: "interaction", safety: "allowed", description: "Displays a compact labeled statistic and progress value.", documentationUrl: "https://homarr.dev/docs/management/custom-widgets/", props: [{ name: "color", source: "component", required: false, typeRef: 359 }, { name: "label", source: "component", required: false, typeRef: 359 }, { name: "max", source: "component", required: false, typeRef: 353 }, { name: "value", source: "component", required: true, typeRef: 353 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Stepper", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/stepper/", props: [{ name: "active", required: true, source: "component", description: "Index of the active step", typeRef: 353 }, { name: "allowNextStepsSelect", required: false, source: "component", literalValues: [false, true], description: "When true, users can click and jump to any step. When false, users can only navigate to completed steps", typeRef: 341 }, { name: "attributes", required: false, source: "component", typeRef: 397 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "When true, automatically adjusts the icon color in completed steps to ensure sufficient contrast against the step background color", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color, controls colors of active and progress steps", typeRef: 162 }, { name: "contentPadding", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Key of `theme.spacing` or any valid CSS value to set `padding-top` of the content", typeRef: 183 }, { name: "iconPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Icon position relative to the step body", typeRef: 47 }, { name: "iconSize", required: false, source: "component", description: "Controls size of the step icon, by default icon size is inferred from `size` prop", typeRef: 365 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set, all step content is kept mounted. React 19 `Activity` is used to preserve state while content is hidden.", typeRef: 341 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Stepper orientation", typeRef: 36 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of various Stepper elements", typeRef: 81 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "wrap", required: false, source: "component", literalValues: [false, true], description: "Determines whether steps should wrap to the next line if no space is available", typeRef: 341 }], blockedProps: [], subcomponents: ["Stepper.Completed", "Stepper.Step"], bind: { type: "number", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Stepper.Completed", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/stepper/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Stepper.Step", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/stepper/", props: [{ name: "allowStepClick", required: false, source: "component", literalValues: [false, true], description: "Set to false to disable clicks on step", typeRef: 341 }, { name: "allowStepSelect", required: false, source: "component", literalValues: [false, true], description: "Should step selection be allowed", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors`, by default controlled by Stepper component", typeRef: 162 }, { name: "iconPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Icon position relative to step body, controlled by Stepper component", typeRef: 47 }, { name: "iconSize", required: false, source: "component", description: "Icon wrapper size", typeRef: 365 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Indicates loading state of the step", typeRef: 341 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Component orientation", typeRef: 36 }, { name: "state", required: false, source: "component", literalValues: ["stepCompleted", "stepInactive", "stepProgress"], description: "Step state, automatically set by Stepper component based on active prop. stepInactive: not reached, stepProgress: current, stepCompleted: passed", typeRef: 70 }, { name: "step", required: false, source: "component", description: "0-based step index, automatically set by Stepper component", typeRef: 353 }, { name: "styles", required: false, source: "component", typeRef: 235 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withIcon", required: false, source: "component", literalValues: [false, true], description: "When false, hides the step icon. Useful for creating compact steppers with only labels", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "StepperCompleted", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/stepper-completed/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "StepperStep", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/stepper-step/", props: [{ name: "allowStepClick", required: false, source: "component", literalValues: [false, true], description: "Set to false to disable clicks on step", typeRef: 341 }, { name: "allowStepSelect", required: false, source: "component", literalValues: [false, true], description: "Should step selection be allowed", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors`, by default controlled by Stepper component", typeRef: 162 }, { name: "iconPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Icon position relative to step body, controlled by Stepper component", typeRef: 47 }, { name: "iconSize", required: false, source: "component", description: "Icon wrapper size", typeRef: 365 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Indicates loading state of the step", typeRef: 341 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Component orientation", typeRef: 36 }, { name: "state", required: false, source: "component", literalValues: ["stepCompleted", "stepInactive", "stepProgress"], description: "Step state, automatically set by Stepper component based on active prop. stepInactive: not reached, stepProgress: current, stepCompleted: passed", typeRef: 70 }, { name: "step", required: false, source: "component", description: "0-based step index, automatically set by Stepper component", typeRef: 353 }, { name: "styles", required: false, source: "component", typeRef: 235 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withIcon", required: false, source: "component", literalValues: [false, true], description: "When false, hides the step icon. Useful for creating compact steppers with only labels", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "SubData", package: "@homarr/widgets", category: "network", safety: "wrapped", description: "Reads a nested value from a named manual-query result.", documentationUrl: "https://homarr.dev/docs/management/custom-widgets/", props: [{ name: "as", source: "component", required: false, literalValues: ["Text", "Title", "Badge", "Code", "Image"], typeRef: 84 }, { name: "c", source: "component", required: false, typeRef: 359 }, { name: "color", source: "component", required: false, typeRef: 359 }, { name: "fit", source: "component", required: false, typeRef: 359 }, { name: "fw", source: "component", required: false, typeRef: 353 }, { name: "h", source: "component", required: false, typeRef: 365 }, { name: "order", source: "component", required: false, literalValues: [1, 2, 3, 4, 5, 6], typeRef: 135 }, { name: "radius", source: "component", required: false, typeRef: 365 }, { name: "size", source: "component", required: false, typeRef: 359 }, { name: "variant", source: "component", required: false, typeRef: 359 }, { name: "w", source: "component", required: false, typeRef: 365 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Action labels must describe their effect; destructive actions require confirmation."] }, { name: "SubFetch", package: "@homarr/widgets", category: "network", safety: "wrapped", description: "Runs a named manual query with invocation-time parameters.", documentationUrl: "https://homarr.dev/docs/management/custom-widgets/", props: [{ name: "as", source: "component", required: false, literalValues: ["json", "text"], typeRef: 86 }, { name: "errorMessage", source: "component", required: false, typeRef: 359 }, { name: "fallback", source: "component", required: false, typeRef: 264 }, { name: "loadingLabel", source: "component", required: false, typeRef: 359 }, { name: "params", source: "component", required: false, typeRef: 270 }, { name: "refreshInterval", source: "component", required: false, typeRef: 353 }, { name: "requestId", source: "component", required: false, description: "Identifier of the named Custom Widget query.", typeRef: 359 }, { name: "trigger", source: "component", required: false, literalValues: ["auto", "manual"], typeRef: 85 }, { name: "triggerAriaLabel", source: "component", required: false, description: "Accessible label for a custom manual-query trigger.", typeRef: 359 }, { name: "triggerContent", source: "component", required: false, description: "Custom accessible trigger shown before a manual query runs.", typeRef: 264 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Action labels must describe their effect; destructive actions require confirmation."] }, { name: "Switch", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/switch/", props: [{ name: "attributes", required: false, source: "component", typeRef: 375 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color to set input color in checked state", typeRef: 162 }, { name: "description", required: false, source: "component", description: "Description displayed below the label", typeRef: 263 }, { name: "error", required: false, source: "component", description: "Error displayed below the label", typeRef: 263 }, { name: "label", required: false, source: "component", description: "Content of the label associated with the switch", typeRef: 263 }, { name: "labelPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the label relative to the input", typeRef: 47 }, { name: "offLabel", required: false, source: "component", description: "Inner label when the `Switch` is in unchecked state", typeRef: 263 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of all elements", typeRef: 182 }, { name: "thumbIcon", required: false, source: "component", description: "Icon inside the thumb of the switch", typeRef: 263 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withThumbIndicator", required: false, source: "component", literalValues: [false, true], description: "If set, displays a colored dot inside the thumb that matches the track background color", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 103 }], blockedProps: [], subcomponents: ["Switch.Group"], bind: { type: "boolean", initialProp: "defaultChecked" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Switch.Group", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/switch/", props: [{ name: "attributes", required: false, source: "component", typeRef: 426 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Default value for uncontrolled component", typeRef: 330 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "hiddenInputProps", required: false, source: "component", description: "Props passed down to the hidden input for uncontrolled forms", typeRef: 104 }, { name: "hiddenInputValuesSeparator", required: false, source: "component", description: "Separator for values in the hidden input for uncontrolled forms", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelElement", required: false, source: "component", literalValues: ["div", "label"], description: "Root element for the label. Use `'div'` when wrapper contains multiple input elements and you need to handle `htmlFor` manually.", typeRef: 31 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "maxSelectedValues", required: false, source: "component", description: "Maximum number of switches that can be selected. When the limit is reached, unselected switches will be disabled", typeRef: 353 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the `Input.Wrapper`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 330 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the `Input.Wrapper`", typeRef: 103 }], blockedProps: [], subcomponents: [], bind: { type: "string[]", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "SwitchGroup", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/switch-group/", props: [{ name: "attributes", required: false, source: "component", typeRef: 426 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Default value for uncontrolled component", typeRef: 330 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "hiddenInputProps", required: false, source: "component", description: "Props passed down to the hidden input for uncontrolled forms", typeRef: 104 }, { name: "hiddenInputValuesSeparator", required: false, source: "component", description: "Separator for values in the hidden input for uncontrolled forms", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelElement", required: false, source: "component", literalValues: ["div", "label"], description: "Root element for the label. Use `'div'` when wrapper contains multiple input elements and you need to handle `htmlFor` manually.", typeRef: 31 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "maxSelectedValues", required: false, source: "component", description: "Maximum number of switches that can be selected. When the limit is reached, unselected switches will be disabled", typeRef: 353 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size of the `Input.Wrapper`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 330 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the `Input.Wrapper`", typeRef: 103 }], blockedProps: [], subcomponents: [], bind: { type: "string[]", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "TabPanel", package: "@homarr/widgets", category: "interaction", safety: "allowed", description: "Renders content for one declarative tab.", documentationUrl: "https://homarr.dev/docs/management/custom-widgets/", props: [{ name: "label", source: "component", required: false, typeRef: 359 }, { name: "value", source: "component", required: true, typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Table", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table/", props: [{ name: "align", required: false, source: "component", literalValues: ["center", "left", "right"], typeRef: 22 }, { name: "attributes", required: false, source: "component", typeRef: 389 }, { name: "borderColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Color of table borders, key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "captionSide", required: false, source: "component", literalValues: ["bottom", "top"], description: "Side of the `Table.Caption`", typeRef: 16 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "data", required: false, source: "component", description: "Data used to generate table, ignored if `children` prop is set", typeRef: 315 }, { name: "highlightOnHover", required: false, source: "component", literalValues: [false, true], description: "If set, table rows background changes to `highlightOnHoverColor` when hovered", typeRef: 341 }, { name: "highlightOnHoverColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Background color of table rows when hovered, key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "horizontalSpacing", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Horizontal cells spacing, key of `theme.spacing` or any valid CSS value for padding, numbers are converted to rem", typeRef: 183 }, { name: "layout", required: false, source: "component", literalValues: ["-moz-initial", "auto", "fixed", "inherit", "initial", "revert", "revert-layer", "unset"], description: "Value of `table-layout` style", typeRef: 1 }, { name: "stickyHeader", required: false, source: "component", literalValues: [false, true], description: "If set, `Table.Thead` is sticky", typeRef: 341 }, { name: "stickyHeaderOffset", required: false, source: "component", description: "Offset from top at which `Table.Thead` should become sticky", typeRef: 365 }, { name: "striped", required: false, source: "component", literalValues: ["even", false, "odd", true], description: "If set, every odd/even row background changes to `stripedColor`, if set to `true`, then `odd` value will be used", typeRef: 345 }, { name: "stripedColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Background color of striped rows, key of `theme.colors` or any valid CSS color", typeRef: 162 }, { name: "tabularNums", required: false, source: "component", literalValues: [false, true], description: "If set, `font-variant-numeric: tabular-nums` style is applied", typeRef: 341 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "vertical"], typeRef: 129 }, { name: "verticalSpacing", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Vertical cells spacing, key of `theme.spacing` or any valid CSS value for padding, numbers are converted to rem", typeRef: 183 }, { name: "withColumnBorders", required: false, source: "component", literalValues: [false, true], description: "If set, the table has borders between columns", typeRef: 341 }, { name: "withRowBorders", required: false, source: "component", literalValues: [false, true], description: "If set, the table has borders between rows", typeRef: 341 }, { name: "withTableBorder", required: false, source: "component", literalValues: [false, true], description: "If set, the table has the outer border", typeRef: 341 }], blockedProps: [], subcomponents: ["Table.Caption", "Table.DataRenderer", "Table.ScrollContainer", "Table.Tbody", "Table.Td", "Table.Tfoot", "Table.Th", "Table.Thead", "Table.Tr"], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Table.Caption", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "vertical"], typeRef: 129 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Table.DataRenderer", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table/", props: [{ name: "data", required: true, source: "component", typeRef: 315 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Table.ScrollContainer", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table/", props: [{ name: "attributes", required: false, source: "component", typeRef: 472 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "maxHeight", required: false, source: "component", description: "`max-height` of the `Table` at which it should become scrollable", typeRef: 250 }, { name: "minWidth", required: false, source: "component", description: "`min-width` of the `Table` at which it should become scrollable", typeRef: 251 }, { name: "scrollAreaProps", required: false, source: "component", description: 'Props passed down to `ScrollArea` component, not applicable with `type="native"`', typeRef: 274 }, { name: "type", required: false, source: "component", literalValues: ["native", "scrollarea"], description: "Type of the scroll container, `native` to use native scrollbars, `scrollarea` to use `ScrollArea` component", typeRef: 53 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Table.Tbody", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "vertical"], typeRef: 129 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Table.Td", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table/", props: [{ name: "align", required: false, source: "component", literalValues: ["center", "char", "justify", "left", "right"], typeRef: 23 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "vertical"], typeRef: 129 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Table.Tfoot", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "vertical"], typeRef: 129 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Table.Th", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table/", props: [{ name: "align", required: false, source: "component", literalValues: ["center", "char", "justify", "left", "right"], typeRef: 23 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "vertical"], typeRef: 129 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Table.Thead", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "vertical"], typeRef: 129 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Table.Tr", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "vertical"], typeRef: 129 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "TableCaption", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table-caption/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "vertical"], typeRef: 129 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "TableOfContents", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/table-of-contents/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Observes headings and scrolling outside the widget root" }, { name: "TableScrollContainer", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table-scroll-container/", props: [{ name: "attributes", required: false, source: "component", typeRef: 472 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "maxHeight", required: false, source: "component", description: "`max-height` of the `Table` at which it should become scrollable", typeRef: 250 }, { name: "minWidth", required: false, source: "component", description: "`min-width` of the `Table` at which it should become scrollable", typeRef: 251 }, { name: "scrollAreaProps", required: false, source: "component", description: 'Props passed down to `ScrollArea` component, not applicable with `type="native"`', typeRef: 274 }, { name: "type", required: false, source: "component", literalValues: ["native", "scrollarea"], description: "Type of the scroll container, `native` to use native scrollbars, `scrollarea` to use `ScrollArea` component", typeRef: 53 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "TableTbody", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table-tbody/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "vertical"], typeRef: 129 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "TableTd", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table-td/", props: [{ name: "align", required: false, source: "component", literalValues: ["center", "char", "justify", "left", "right"], typeRef: 23 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "vertical"], typeRef: 129 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "TableTfoot", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table-tfoot/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "vertical"], typeRef: 129 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "TableTh", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table-th/", props: [{ name: "align", required: false, source: "component", literalValues: ["center", "char", "justify", "left", "right"], typeRef: 23 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "vertical"], typeRef: 129 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "TableThead", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table-thead/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "vertical"], typeRef: 129 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "TableTr", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/table-tr/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "vertical"], typeRef: 129 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "TablerIcon", package: "@homarr/widgets", category: "content", safety: "wrapped", description: "Resolves an installed Tabler icon by its safe name.", documentationUrl: "https://homarr.dev/docs/management/custom-widgets/", props: [{ name: "color", source: "component", required: false, typeRef: 359 }, { name: "name", source: "component", required: true, typeRef: 359 }, { name: "size", source: "component", required: false, typeRef: 365 }, { name: "stroke", source: "component", required: false, typeRef: 365 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Tabs", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tabs/", props: [{ name: "activateTabWithKeyboard", required: false, source: "component", literalValues: [false, true], description: "If set, tab is activated with arrow key press", typeRef: 341 }, { name: "allowTabDeactivation", required: false, source: "component", literalValues: [false, true], description: "If set, tab can be deactivated", typeRef: 341 }, { name: "attributes", required: false, source: "component", typeRef: 466 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `pills` variant", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Changes colors of `Tabs.Tab` components when variant is `pills` or `default`, does nothing for other variants", typeRef: 162 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 352 }, { name: "inverted", required: false, source: "component", literalValues: [false, true], description: "Determines whether tabs should have inverted styles", typeRef: 341 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set to `false`, `Tabs.Panel` content will be unmounted when the associated tab is not active", typeRef: 341 }, { name: "keepMountedMode", required: false, source: "component", literalValues: ["activity", "display-none"], description: "Controls how inactive tabs content is hidden when `keepMounted` is `true`, `'activity'` \u2013 hidden with `Activity` component, `'display-none'` \u2013 hidden with `display: none` styles", typeRef: 7 }, { name: "loop", required: false, source: "component", literalValues: [false, true], description: "If set, arrow key presses loop though items (first to last and last to first)", typeRef: 341 }, { name: "orientation", required: false, source: "component", literalValues: ["horizontal", "vertical"], description: "Tabs orientation", typeRef: 36 }, { name: "placement", required: false, source: "component", literalValues: ["left", "right"], description: '`Tabs.List` placement relative to `Tabs.Panel`, applicable only when `orientation="vertical"`', typeRef: 47 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 352 }, { name: "variant", required: false, source: "component", literalValues: ["default", "outline", "pills"], typeRef: 130 }], blockedProps: [], subcomponents: ["Tabs.List", "Tabs.Panel", "Tabs.Tab"], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Tabs.List", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tabs/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "grow", required: false, source: "component", literalValues: [false, true], description: "Determines whether tabs should take all available space", typeRef: 341 }, { name: "justify", required: false, source: "component", literalValues: ["-moz-initial", "center", "end", "flex-end", "flex-start", "inherit", "initial", "left", "normal", "revert", "revert-layer", "right", "space-around", "space-between", "space-evenly", "start", "stretch", "unset"], description: "Tabs alignment", typeRef: 248 }, { name: "styles", required: false, source: "component", typeRef: 221 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Tabs.Panel", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tabs/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set, the content is kept mounted, even if `keepMounted` is set `false` in the parent `Tabs` component", typeRef: 341 }, { name: "styles", required: false, source: "component", typeRef: 223 }, { name: "value", required: true, source: "component", description: "Value of associated control", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Tabs.Tab", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tabs/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color, controls tab color based on `variant`", typeRef: 162 }, { name: "leftSection", required: false, source: "component", description: "Content displayed on the left side of the label", typeRef: 263 }, { name: "rightSection", required: false, source: "component", description: "Content displayed on the right side of the label", typeRef: 263 }, { name: "size", required: false, source: "component", description: "Size passed from parent component, sets `data-size` if value is not number like", typeRef: 365 }, { name: "styles", required: false, source: "component", typeRef: 236 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: true, source: "component", description: "Value of associated panel", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "TabsContainer", package: "@homarr/widgets", category: "interaction", safety: "allowed", description: "Renders a declarative tab container.", documentationUrl: "https://homarr.dev/docs/management/custom-widgets/", props: [{ name: "defaultTab", source: "component", required: false, typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "TabsList", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tabs-list/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "grow", required: false, source: "component", literalValues: [false, true], description: "Determines whether tabs should take all available space", typeRef: 341 }, { name: "justify", required: false, source: "component", literalValues: ["-moz-initial", "center", "end", "flex-end", "flex-start", "inherit", "initial", "left", "normal", "revert", "revert-layer", "right", "space-around", "space-between", "space-evenly", "start", "stretch", "unset"], description: "Tabs alignment", typeRef: 248 }, { name: "styles", required: false, source: "component", typeRef: 221 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "TabsPanel", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tabs-panel/", props: [{ name: "color", required: false, source: "component", typeRef: 359 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set, the content is kept mounted, even if `keepMounted` is set `false` in the parent `Tabs` component", typeRef: 341 }, { name: "styles", required: false, source: "component", typeRef: 223 }, { name: "value", required: true, source: "component", description: "Value of associated control", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "TabsTab", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tabs-tab/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color, controls tab color based on `variant`", typeRef: 162 }, { name: "leftSection", required: false, source: "component", description: "Content displayed on the left side of the label", typeRef: 263 }, { name: "rightSection", required: false, source: "component", description: "Content displayed on the right side of the label", typeRef: 263 }, { name: "size", required: false, source: "component", description: "Size passed from parent component, sets `data-size` if value is not number like", typeRef: 365 }, { name: "styles", required: false, source: "component", typeRef: 236 }, { name: "type", required: false, source: "component", literalValues: ["button", "reset", "submit"], typeRef: 20 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: true, source: "component", description: "Value of associated panel", typeRef: 359 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "TagsInput", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tags-input/", props: [{ name: "acceptValueOnBlur", required: false, source: "component", literalValues: [false, true], description: "If set, the value typed in by the user but not submitted is accepted when the input is blurred", typeRef: 341 }, { name: "allowDuplicates", required: false, source: "component", literalValues: [false, true], description: "If set, duplicate tags are allowed", typeRef: 341 }, { name: "attributes", required: false, source: "component", typeRef: 406 }, { name: "clearButtonProps", required: false, source: "component", description: "Props passed down to the clear button", typeRef: 172 }, { name: "clearSectionMode", required: false, source: "component", literalValues: ["both", "clear", "rightSection"], description: "Determines how the clear button and rightSection are rendered", typeRef: 15 }, { name: "clearable", required: false, source: "component", literalValues: [false, true], description: "If set, the clear button is displayed in the right section when the component has value", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "comboboxProps", required: false, source: "component", description: "Props passed down to `Combobox` component", typeRef: 153 }, { name: "data", required: false, source: "component", description: "Data displayed in the dropdown. Values must be unique.", typeRef: 152 }, { name: "defaultDropdownOpened", required: false, source: "component", literalValues: [false, true], description: "Uncontrolled dropdown initial opened state", typeRef: 341 }, { name: "defaultSearchValue", required: false, source: "component", description: "Default search value", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 368 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "dropdownOpened", required: false, source: "component", literalValues: [false, true], description: "Controlled dropdown opened state", typeRef: 341 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "floatingHeight", required: false, source: "component", literalValues: ["viewport"], description: "If set to `'viewport'`, the dropdown grows to fill the available vertical space in the viewport. Disables the `flip` middleware.", typeRef: 78 }, { name: "hiddenInputProps", required: false, source: "component", description: "Props passed down to the hidden input", typeRef: 195 }, { name: "hiddenInputValuesDivider", required: false, source: "component", description: "Divider used to separate values in the hidden input `value` attribute", typeRef: 359 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "limit", required: false, source: "component", description: "Maximum number of options displayed at a time, `Infinity` by default", typeRef: 353 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "maxDropdownHeight", required: false, source: "component", description: "`max-height` of the dropdown, only applicable when `withScrollArea` prop is `true`, `250` by default", typeRef: 365 }, { name: "maxTags", required: false, source: "component", description: "Maximum number of tags", typeRef: 353 }, { name: "openOnFocus", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown opens when the input receives focus", typeRef: 341 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "scrollAreaProps", required: false, source: "component", description: "Props passed down to the underlying `ScrollArea` component in the dropdown", typeRef: 274 }, { name: "searchValue", required: false, source: "component", description: "Controlled search value", typeRef: 359 }, { name: "selectFirstOptionOnChange", required: false, source: "component", literalValues: [false, true], description: "If set, the first option is selected when value changes, `false` by default", typeRef: 341 }, { name: "selectFirstOptionOnDropdownOpen", required: false, source: "component", literalValues: [false, true], description: "If set, the first option is selected when dropdown opens, `false` by default", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "splitChars", required: false, source: "component", description: "Characters that should trigger tags split, `[',']` by default", typeRef: 368 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 368 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withPillsReorder", required: false, source: "component", literalValues: [false, true], description: "If set, tags can be reordered by dragging pills. Disabled when `disabled` or `readOnly` is set.", typeRef: 341 }, { name: "withScrollArea", required: false, source: "component", literalValues: [false, true], description: "Determines whether the options should be wrapped with `ScrollArea.AutoSize`, `true` by default", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }], blockedProps: [], subcomponents: [], bind: { type: "string[]", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Text", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/text/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "gradient", required: false, source: "component", description: "Gradient configuration, ignored when `variant` is not `gradient`", typeRef: 179 }, { name: "inherit", required: false, source: "component", literalValues: [false, true], description: "Determines whether font properties should be inherited from the parent", typeRef: 341 }, { name: "inline", required: false, source: "component", literalValues: [false, true], description: "Sets `line-height` to 1 for centering", typeRef: 341 }, { name: "lineClamp", required: false, source: "component", description: "Number of lines after which Text will be truncated", typeRef: 353 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls `font-size` and `line-height`", typeRef: 82 }, { name: "span", required: false, source: "component", literalValues: [false, true], description: 'Shorthand for `component="span"`', typeRef: 341 }, { name: "textWrap", required: false, source: "component", literalValues: ["balance", "nowrap", "pretty", "stable", "wrap"], description: "Controls `text-wrap` CSS property", typeRef: 79 }, { name: "truncate", required: false, source: "component", literalValues: ["end", false, "start", true], description: "Side on which Text must be truncated, if `true`, text is truncated from the start", typeRef: 344 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["gradient", "text"], typeRef: 131 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "TextInput", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/text-input/", props: [{ name: "attributes", required: false, source: "component", typeRef: 416 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Textarea", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/textarea/", props: [{ name: "attributes", required: false, source: "component", typeRef: 416 }, { name: "autoComplete", required: false, source: "component", typeRef: 359 }, { name: "autosize", required: false, source: "component", literalValues: [false, true], description: "If set, enables textarea height growing with its content", typeRef: 341 }, { name: "bottomSection", required: false, source: "component", description: "Content rendered at the bottom of the input, inside the border", typeRef: 263 }, { name: "bottomSectionProps", required: false, source: "component", description: "Props passed down to the `bottomSection` element", typeRef: 259 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "maxRows", required: false, source: "component", description: "Maximum rows for autosize textarea to grow, ignored if `autosize` prop is not set", typeRef: 353 }, { name: "minRows", required: false, source: "component", description: "Minimum rows of autosize textarea, ignored if `autosize` prop is not set", typeRef: 353 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "resize", required: false, source: "component", literalValues: ["-moz-initial", "block", "both", "horizontal", "inherit", "initial", "inline", "none", "revert", "revert-layer", "unset", "vertical"], description: "Controls `resize` CSS property", typeRef: 3 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "ThemeIcon", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/theme-icon/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color.", typeRef: 162 }, { name: "gradient", required: false, source: "component", description: 'Gradient data used when `variant="gradient"`', typeRef: 179 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls width and height of the button. Numbers are converted to rem.", typeRef: 355 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "gradient", "light", "outline", "transparent", "white"], typeRef: 132 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "TimeGrid", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/time-grid/", props: [{ name: "allowDeselect", required: false, source: "component", literalValues: [false, true], description: "Determines whether the value can be deselected when the current active option is clicked or activated with keyboard", typeRef: 341 }, { name: "amPmLabels", required: false, source: "component", description: "Labels used for am/pm values", typeRef: 316 }, { name: "attributes", required: false, source: "component", typeRef: 457 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "data", required: true, source: "component", description: "Time data in 24h format to be displayed in the grid, for example `['10:00', '18:30', '22:00']`. Time values must be unique.", typeRef: 368 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 352 }, { name: "format", required: false, source: "component", literalValues: ["12h", "24h"], description: "Time format displayed in the grid", typeRef: 6 }, { name: "maxTime", required: false, source: "component", description: "All controls after this time are disabled", typeRef: 359 }, { name: "minTime", required: false, source: "component", description: "All controls before this time are disabled", typeRef: 359 }, { name: "simpleGridProps", required: false, source: "component", description: "Props passed down to the underlying `SimpleGrid` component", typeRef: 275 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Control `font-size` of controls, key of `theme.fontSizes` or any valid CSS value", typeRef: 81 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 352 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withSeconds", required: false, source: "component", literalValues: [false, true], description: "Determines whether the seconds part should be displayed", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "TimeInput", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/time-input/", props: [{ name: "attributes", required: false, source: "component", typeRef: 416 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "maxTime", required: false, source: "component", description: "Maximum possible string time, if `withSeconds` is true, time should be in format HH:mm:ss, otherwise HH:mm", typeRef: 359 }, { name: "minTime", required: false, source: "component", description: "Minimum possible string time, if `withSeconds` is true, time should be in format HH:mm:ss, otherwise HH:mm", typeRef: 359 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withSeconds", required: false, source: "component", literalValues: [false, true], description: "Determines whether seconds input should be displayed", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "TimePicker", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/time-picker/", props: [{ name: "amPmInputLabel", required: false, source: "component", description: "`aria-label` of am/pm input", typeRef: 359 }, { name: "amPmLabels", required: false, source: "component", description: "Labels used for am/pm values", typeRef: 316 }, { name: "amPmSelectProps", required: false, source: "component", description: "Props passed down to am/pm select", typeRef: 105 }, { name: "attributes", required: false, source: "component", typeRef: 410 }, { name: "clearButtonProps", required: false, source: "component", description: "Props passed down to clear button", typeRef: 92 }, { name: "clearSectionMode", required: false, source: "component", literalValues: ["both", "clear", "rightSection"], description: "Determines how the clear button and rightSection are rendered", typeRef: 15 }, { name: "clearable", required: false, source: "component", literalValues: [false, true], description: "Determines whether the clear button should be displayed", typeRef: 341 }, { name: "closeDropdownOnPresetSelect", required: false, source: "component", literalValues: [false, true], description: "If set, the dropdown is closed when a value is selected from the presets list", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Uncontrolled component default value", typeRef: 359 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "format", required: false, source: "component", literalValues: ["12h", "24h"], description: "Time format, `'24h'` by default", typeRef: 6 }, { name: "hiddenInputProps", required: false, source: "component", description: "Props passed down to the hidden input", typeRef: 104 }, { name: "hoursInputLabel", required: false, source: "component", description: "`aria-label` of hours input", typeRef: 359 }, { name: "hoursInputProps", required: false, source: "component", description: "Props passed down to hours input", typeRef: 104 }, { name: "hoursPlaceholder", required: false, source: "component", description: "Hours input placeholder,", typeRef: 359 }, { name: "hoursStep", required: false, source: "component", description: "Number by which hours are incremented/decremented", typeRef: 353 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "max", required: false, source: "component", description: "Max possible time value in `hh:mm:ss` format", typeRef: 359 }, { name: "maxDropdownContentHeight", required: false, source: "component", description: "Maximum height of the content displayed in the dropdown in px", typeRef: 353 }, { name: "min", required: false, source: "component", description: "Min possible time value in `hh:mm:ss` format", typeRef: 359 }, { name: "minHoursDigits", required: false, source: "component", description: 'Minimum number of digits displayed in the hours input, applicable only when `type="duration"` is set', typeRef: 353 }, { name: "minutesInputLabel", required: false, source: "component", description: "`aria-label` of minutes input", typeRef: 359 }, { name: "minutesInputProps", required: false, source: "component", description: "Props passed down to minutes input", typeRef: 104 }, { name: "minutesPlaceholder", required: false, source: "component", description: "Minutes input placeholder,", typeRef: 359 }, { name: "minutesStep", required: false, source: "component", description: "Number by which minutes are incremented/decremented", typeRef: 353 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "popoverProps", required: false, source: "component", description: "Props passed down to `Popover` component", typeRef: 242 }, { name: "presets", required: false, source: "component", description: "Time presets to display in the dropdown", typeRef: 317 }, { name: "reverseTimeControlsList", required: false, source: "component", literalValues: [false, true], description: "If set, the time controls list are reversed,", typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "scrollAreaProps", required: false, source: "component", description: "Props passed down to all underlying `ScrollArea` components", typeRef: 274 }, { name: "secondsInputLabel", required: false, source: "component", description: "`aria-label` of seconds input", typeRef: 359 }, { name: "secondsInputProps", required: false, source: "component", description: "Props passed down to seconds input", typeRef: 104 }, { name: "secondsPlaceholder", required: false, source: "component", description: "Seconds input placeholder,", typeRef: 359 }, { name: "secondsStep", required: false, source: "component", description: "Number by which seconds are incremented/decremented", typeRef: 353 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "type", required: false, source: "component", literalValues: ["duration", "time"], description: "TimePicker type, `'time'` for regular time input, `'duration'` for duration input that allows values greater than 24 hours", typeRef: 75 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled component value", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withDropdown", required: false, source: "component", literalValues: [false, true], description: "Determines whether the dropdown with time controls list should be visible when the input has focus", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withSeconds", required: false, source: "component", literalValues: [false, true], description: "Determines whether the seconds input should be displayed", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "TimeValue", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/time-value/", props: [{ name: "amPmLabels", required: false, source: "component", description: "AM/PM labels", typeRef: 316 }, { name: "format", required: false, source: "component", literalValues: ["12h", "24h"], description: "Time format", typeRef: 6 }, { name: "value", required: true, source: "component", description: "Time to format", typeRef: 362 }, { name: "withSeconds", required: false, source: "component", literalValues: [false, true], description: "Determines whether seconds should be displayed", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "Timeline", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/timeline/", props: [{ name: "active", required: false, source: "component", description: "Index of the active element", typeRef: 353 }, { name: "align", required: false, source: "component", literalValues: ["left", "right"], description: "Position of content relative to the bullet", typeRef: 47 }, { name: "attributes", required: false, source: "component", typeRef: 463 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "bulletSize", required: false, source: "component", description: "Size of the bullet", typeRef: 365 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color to control active item colors", typeRef: 162 }, { name: "lineWidth", required: false, source: "component", description: "Control width of the line", typeRef: 365 }, { name: "reverseActive", required: false, source: "component", literalValues: [false, true], description: "If set, the active items direction is reversed without reversing items order", typeRef: 341 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: ["Timeline.Item"], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Timeline.Item", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/timeline/", props: [{ name: "bullet", required: false, source: "component", description: "React node that should be rendered inside the bullet \u2013 icon, image, avatar, etc. By default, large white dot is displayed.", typeRef: 263 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color to control active item colors", typeRef: 162 }, { name: "lineVariant", required: false, source: "component", literalValues: ["dashed", "dotted", "solid"], description: "Controls line border style", typeRef: 26 }, { name: "styles", required: false, source: "component", typeRef: 237 }, { name: "title", required: false, source: "component", description: "Item title, displayed next to the bullet", typeRef: 263 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "TimelineItem", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/timeline-item/", props: [{ name: "bullet", required: false, source: "component", description: "React node that should be rendered inside the bullet \u2013 icon, image, avatar, etc. By default, large white dot is displayed.", typeRef: 263 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color to control active item colors", typeRef: 162 }, { name: "lineVariant", required: false, source: "component", literalValues: ["dashed", "dotted", "solid"], description: "Controls line border style", typeRef: 26 }, { name: "styles", required: false, source: "component", typeRef: 237 }, { name: "title", required: false, source: "component", description: "Item title, displayed next to the bullet", typeRef: 263 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "Title", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/title/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "lineClamp", required: false, source: "component", description: "Number of lines after which heading will be truncated", typeRef: 353 }, { name: "order", required: false, source: "component", literalValues: [1, 2, 3, 4, 5, 6], description: "Heading order (1-6), controls `font-size` style if `size` prop is not set", typeRef: 137 }, { name: "size", required: false, source: "component", description: "Changes title size, if not set, then size is controlled by `order` prop", typeRef: 318 }, { name: "textWrap", required: false, source: "component", literalValues: ["balance", "nowrap", "pretty", "stable", "wrap"], description: "Heading `text-wrap` CSS property", typeRef: 79 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "ToggleSwitch", package: "@homarr/widgets", category: "network", safety: "wrapped", description: "Runs named actions for the enabled and disabled states.", documentationUrl: "https://homarr.dev/docs/management/custom-widgets/", props: [{ name: "color", source: "component", required: false, typeRef: 359 }, { name: "disabled", source: "component", required: false, typeRef: 338 }, { name: "disabledParams", source: "component", required: false, typeRef: 270 }, { name: "enabledParams", source: "component", required: false, typeRef: 270 }, { name: "errorMessage", source: "component", required: false, typeRef: 359 }, { name: "initialValue", source: "component", required: false, typeRef: 338 }, { name: "label", source: "component", required: false, typeRef: 359 }, { name: "requestId", source: "component", required: false, description: "Identifier of the named Custom Widget action.", typeRef: 359 }, { name: "size", source: "component", required: false, typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Action labels must describe their effect; destructive actions require confirmation."] }, { name: "Tooltip", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tooltip/", props: [{ name: "arrowOffset", required: false, source: "component", description: "Arrow offset in px", typeRef: 353 }, { name: "arrowPosition", required: false, source: "component", literalValues: ["center", "merge", "side"], description: "Arrow position relative to the tooltip", typeRef: 24 }, { name: "arrowRadius", required: false, source: "component", description: "Arrow `border-radius` in px", typeRef: 353 }, { name: "arrowSize", required: false, source: "component", description: "Arrow size in px", typeRef: 353 }, { name: "attributes", required: false, source: "component", typeRef: 475 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "If set, adjusts text color based on background color for `filled` variant", typeRef: 341 }, { name: "closeDelay", required: false, source: "component", description: "Close delay in ms", typeRef: 353 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color, controls tooltip background, by default set based on current color scheme", typeRef: 162 }, { name: "defaultOpened", required: false, source: "component", literalValues: [false, true], description: "Uncontrolled tooltip initial opened state", typeRef: 341 }, { name: "events", required: false, source: "component", description: "Determines which events will be used to show tooltip", typeRef: 402 }, { name: "floatingStrategy", required: false, source: "component", literalValues: ["absolute", "fixed"], description: "Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy)", typeRef: 34 }, { name: "inline", required: false, source: "component", literalValues: [false, true], description: "Must be set if the tooltip target is an inline element", typeRef: 341 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set, the tooltip is not unmounted from the DOM when hidden, `display: none` styles are applied instead", typeRef: 341 }, { name: "label", required: false, source: "component", description: "Tooltip content", typeRef: 263 }, { name: "middlewares", required: false, source: "component", description: "Floating ui middlewares to configure position handling, `{ flip: true, shift: true, inline: false }` by default", typeRef: 319 }, { name: "multiline", required: false, source: "component", literalValues: [false, true], description: "Determines whether content should be wrapped on to the next line, `false` by default", typeRef: 341 }, { name: "offset", required: false, source: "component", description: "Space between target element and tooltip in px", typeRef: 354 }, { name: "openDelay", required: false, source: "component", description: "Open delay in ms", typeRef: 353 }, { name: "opened", required: false, source: "component", literalValues: [false, true], description: "Controlled opened state", typeRef: 341 }, { name: "position", required: false, source: "component", literalValues: ["bottom", "bottom-end", "bottom-start", "left", "left-end", "left-start", "right", "right-end", "right-start", "top", "top-end", "top-start"], description: "Tooltip position relative to target element (`Tooltip` component) or mouse (`Tooltip.Floating` component)", typeRef: 48 }, { name: "transitionProps", required: false, source: "component", description: "Props passed down to the `Transition` component that used to animate tooltip presence, use to configure duration and animation type", typeRef: 208 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withArrow", required: false, source: "component", literalValues: [false, true], description: "If set, the tooltip has an arrow", typeRef: 341 }], blockedProps: [{ name: "target", reason: "String targets can select elements outside the widget root" }], subcomponents: ["Tooltip.Floating", "Tooltip.Group"], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Tooltip.Floating", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tooltip/", props: [{ name: "attributes", required: false, source: "component", typeRef: 475 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color, controls tooltip background, by default set based on current color scheme", typeRef: 162 }, { name: "defaultOpened", required: false, source: "component", literalValues: [false, true], description: "Uncontrolled tooltip initial opened state", typeRef: 341 }, { name: "label", required: false, source: "component", description: "Tooltip content", typeRef: 263 }, { name: "middlewares", required: false, source: "component", description: "Floating ui middlewares to configure position handling, `{ flip: true, shift: true, inline: false }` by default", typeRef: 319 }, { name: "multiline", required: false, source: "component", literalValues: [false, true], description: "Determines whether content should be wrapped on to the next line, `false` by default", typeRef: 341 }, { name: "offset", required: false, source: "component", description: "Offset from mouse in px", typeRef: 353 }, { name: "position", required: false, source: "component", literalValues: ["bottom", "bottom-end", "bottom-start", "left", "left-end", "left-start", "right", "right-end", "right-start", "top", "top-end", "top-start"], description: "Tooltip position relative to target element (`Tooltip` component) or mouse (`Tooltip.Floating` component)", typeRef: 48 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Tooltip.Group", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tooltip/", props: [{ name: "closeDelay", required: false, source: "component", description: "Close delay in ms", typeRef: 353 }, { name: "openDelay", required: false, source: "component", description: "Open delay in ms", typeRef: 353 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "TooltipFloating", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tooltip-floating/", props: [{ name: "attributes", required: false, source: "component", typeRef: 475 }, { name: "color", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Key of `theme.colors` or any valid CSS color, controls tooltip background, by default set based on current color scheme", typeRef: 162 }, { name: "defaultOpened", required: false, source: "component", literalValues: [false, true], description: "Uncontrolled tooltip initial opened state", typeRef: 341 }, { name: "label", required: false, source: "component", description: "Tooltip content", typeRef: 263 }, { name: "middlewares", required: false, source: "component", description: "Floating ui middlewares to configure position handling, `{ flip: true, shift: true, inline: false }` by default", typeRef: 319 }, { name: "multiline", required: false, source: "component", literalValues: [false, true], description: "Determines whether content should be wrapped on to the next line, `false` by default", typeRef: 341 }, { name: "offset", required: false, source: "component", description: "Offset from mouse in px", typeRef: 353 }, { name: "position", required: false, source: "component", literalValues: ["bottom", "bottom-end", "bottom-start", "left", "left-end", "left-start", "right", "right-end", "right-start", "top", "top-end", "top-start"], description: "Tooltip position relative to target element (`Tooltip` component) or mouse (`Tooltip.Floating` component)", typeRef: 48 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "TooltipGroup", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tooltip-group/", props: [{ name: "closeDelay", required: false, source: "component", description: "Close delay in ms", typeRef: 353 }, { name: "openDelay", required: false, source: "component", description: "Open delay in ms", typeRef: 353 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Transition", package: "@mantine/core", category: "blocked", safety: "denied", documentationUrl: "https://mantine.dev/core/transition/", props: [], blockedProps: [], subcomponents: [], accessibilityRequirements: [], deniedReason: "Requires an authored render callback" }, { name: "Tree", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tree/", props: [{ name: "allowRangeSelection", required: false, source: "component", literalValues: [false, true], description: "If set, tree nodes range can be selected with click when `Shift` key is pressed", typeRef: 341 }, { name: "attributes", required: false, source: "component", typeRef: 427 }, { name: "checkOnSpace", required: false, source: "component", literalValues: [false, true], description: "If set, tree node is checked on space key press", typeRef: 341 }, { name: "clearSelectionOnOutsideClick", required: false, source: "component", literalValues: [false, true], description: "If set, selection is cleared when user clicks outside of the tree", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "data", required: true, source: "component", description: "Data used to render nodes", typeRef: 321 }, { name: "expandOnClick", required: false, source: "component", literalValues: [false, true], description: "If set, tree node with children is expanded on click", typeRef: 341 }, { name: "expandOnSpace", required: false, source: "component", literalValues: [false, true], description: "If set, tree node with children is expanded on space key press", typeRef: 341 }, { name: "keepMounted", required: false, source: "component", literalValues: [false, true], description: "If set, subtree content is kept mounted when collapsed. React 19 `Activity` is used to preserve state.", typeRef: 341 }, { name: "levelOffset", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Horizontal padding of each subtree level, key of `theme.spacing` or any valid CSS value", typeRef: 183 }, { name: "selectOnClick", required: false, source: "component", literalValues: [false, true], description: "If set, tree node is selected on click", typeRef: 341 }, { name: "tree", required: false, source: "component", description: "Use-tree hook instance that can be used to manipulate component state", typeRef: 327 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withDragHandle", required: false, source: "component", literalValues: [false, true], description: "If set, drag-and-drop must be initiated from an element that spreads `dragHandleProps` from the `renderNode` payload, rather than anywhere on the node.", typeRef: 341 }, { name: "withLines", required: false, source: "component", literalValues: [false, true], description: "If set, connecting lines are rendered showing parent-child relationships", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "TreeSelect", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tree-select/", props: [{ name: "allowDeselect", required: false, source: "component", literalValues: [false, true], description: "Allows deselecting in single mode", typeRef: 341 }, { name: "attributes", required: false, source: "component", typeRef: 406 }, { name: "checkStrictly", required: false, source: "component", literalValues: [false, true], description: "Disables parent-child cascade in checkbox mode", typeRef: 341 }, { name: "checkedStrategy", required: false, source: "component", literalValues: ["all", "child", "parent"], description: "Controls which checked nodes appear in value/pills in checkbox mode", typeRef: 8 }, { name: "chevronAriaLabels", required: false, source: "component", description: "aria-label values for the expand/collapse chevron button", typeRef: 322 }, { name: "chevronColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls the default chevron color", typeRef: 162 }, { name: "clearButtonProps", required: false, source: "component", description: "Props for the clear button", typeRef: 172 }, { name: "clearSearchOnChange", required: false, source: "component", literalValues: [false, true], description: "Clear search on selection change", typeRef: 341 }, { name: "clearSectionMode", required: false, source: "component", literalValues: ["both", "clear", "rightSection"], description: "Determines how the clear button and rightSection are rendered", typeRef: 15 }, { name: "clearable", required: false, source: "component", literalValues: [false, true], description: "Shows clear button", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "comboboxProps", required: false, source: "component", description: "Props passed to the underlying Combobox", typeRef: 266 }, { name: "data", required: true, source: "component", description: "Tree data", typeRef: 321 }, { name: "defaultDropdownOpened", required: false, source: "component", literalValues: [false, true], description: "Default dropdown state", typeRef: 341 }, { name: "defaultExpandAll", required: false, source: "component", literalValues: [false, true], description: "Expand all nodes by default", typeRef: 341 }, { name: "defaultExpandedValues", required: false, source: "component", description: "Default expanded node values", typeRef: 368 }, { name: "defaultSearchValue", required: false, source: "component", description: "Default search value", typeRef: 359 }, { name: "defaultValue", required: false, source: "component", description: "Default value", typeRef: 323 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "dropdownOpened", required: false, source: "component", literalValues: [false, true], description: "Controlled dropdown state", typeRef: 341 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "expandOnClick", required: false, source: "component", literalValues: [false, true], description: "Also toggle expand when clicking a parent node (not just the chevron). In `single` and `multiple` modes, parent clicks only expand; only leaves can be selected. In `checkbox` mode, parent clicks both check and expand.", typeRef: 341 }, { name: "expandedValues", required: false, source: "component", description: "Controlled expanded state", typeRef: 368 }, { name: "hiddenInputProps", required: false, source: "component", description: "Props for the hidden input", typeRef: 195 }, { name: "hiddenInputValuesDivider", required: false, source: "component", description: "Divider for hidden input values", typeRef: 359 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "maxDisplayedValues", required: false, source: "component", description: 'Maximum displayed pills before "+N more"', typeRef: 353 }, { name: "maxDropdownHeight", required: false, source: "component", description: "Max dropdown height", typeRef: 365 }, { name: "maxValues", required: false, source: "component", description: "Maximum selectable values (multiple/checkbox mode)", typeRef: 353 }, { name: "mode", required: false, source: "component", description: "Selection mode: 'single', 'multiple', or 'checkbox' (with cascade)", typeRef: 184 }, { name: "nothingFoundMessage", required: false, source: "component", description: "Message when no nodes match search", typeRef: 263 }, { name: "openOnFocus", required: false, source: "component", literalValues: [false, true], description: "Opens dropdown on focus (searchable mode)", typeRef: 341 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "scrollAreaProps", required: false, source: "component", description: "Props for the ScrollArea in the dropdown", typeRef: 274 }, { name: "searchValue", required: false, source: "component", description: "Controlled search value", typeRef: 359 }, { name: "searchable", required: false, source: "component", literalValues: [false, true], description: "Enables search filtering", typeRef: 341 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls input `height`, horizontal `padding`, and `font-size`", typeRef: 182 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "type", required: false, source: "component", literalValues: ["button", "checkbox", "color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "radio", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week"], typeRef: 171 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Controlled value", typeRef: 323 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withLines", required: false, source: "component", literalValues: [false, true], description: "Show tree connection lines between parent and child nodes", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "TreeSelectOption", package: "@mantine/core", category: "navigation", safety: "wrapped", documentationUrl: "https://mantine.dev/core/tree-select-option/", props: [{ name: "checked", required: true, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "chevronAriaLabels", required: false, source: "component", typeRef: 322 }, { name: "expanded", required: true, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "hasChildren", required: true, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "indeterminate", required: true, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "isLastChild", required: true, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "level", required: true, source: "component", typeRef: 353 }, { name: "lineGuides", required: true, source: "component", typeRef: 339 }, { name: "node", required: true, source: "component", typeRef: 320 }, { name: "selected", required: true, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "showCheckbox", required: true, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "withLines", required: true, source: "component", literalValues: [false, true], typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide an accessible label for controls without visible text."] }, { name: "Treemap", package: "@mantine/charts", category: "charts", safety: "wrapped", documentationUrl: "https://mantine.dev/charts/treemap/", props: [{ name: "aspectRatio", required: false, source: "component", description: "The treemap will try to keep every single rectangle's aspect ratio near the aspectRatio given", typeRef: 353 }, { name: "attributes", required: false, source: "component", typeRef: 470 }, { name: "autoContrast", required: false, source: "component", literalValues: [false, true], description: "Determines whether text color should be adjusted based on background color to improve contrast", typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "data", required: true, source: "component", description: "Data used to render chart", typeRef: 324 }, { name: "dataKey", required: false, source: "component", description: "Key in data object for the value", typeRef: 359 }, { name: "height", required: false, source: "component", description: "Controls chart height", typeRef: 353 }, { name: "strokeColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls color of the node stroke, by default depends on color scheme", typeRef: 162 }, { name: "strokeWidth", required: false, source: "component", description: "Controls width of node stroke", typeRef: 353 }, { name: "textColor", required: false, source: "component", literalValues: ["blue", "cyan", "dark", "grape", "gray", "green", "indigo", "lime", "orange", "pink", "red", "teal", "violet", "yellow"], description: "Controls text color of labels", typeRef: 162 }, { name: "tooltipAnimationDuration", required: false, source: "component", description: "Tooltip animation duration in ms", typeRef: 353 }, { name: "tooltipProps", required: false, source: "component", description: "Props passed down to `Tooltip` recharts component", typeRef: 197 }, { name: "treemapProps", required: false, source: "component", description: "Props passed down to recharts `Treemap` component", typeRef: 206 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withTooltip", required: false, source: "component", literalValues: [false, true], description: "Determines whether the tooltip should be displayed when a node is hovered", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a nearby text summary of the chart data."] }, { name: "TypeBadge", package: "@homarr/widgets", category: "interaction", safety: "allowed", description: "Displays a compact semantic type badge.", documentationUrl: "https://homarr.dev/docs/management/custom-widgets/", props: [{ name: "size", source: "component", required: false, literalValues: ["xs", "sm", "md", "lg", "xl"], typeRef: 87 }, { name: "type", source: "component", required: true, typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "Typography", package: "@mantine/core", category: "layout", safety: "wrapped", documentationUrl: "https://mantine.dev/core/typography/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Keep visual order consistent with reading order."] }, { name: "UnstyledButton", package: "@mantine/core", category: "interaction", safety: "wrapped", documentationUrl: "https://mantine.dev/core/unstyled-button/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "size", required: false, source: "component", description: "Size passed from parent component, sets `data-size` if value is not number like", typeRef: 365 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide a visible label or aria-label."] }, { name: "VisuallyHidden", package: "@mantine/core", category: "content", safety: "wrapped", documentationUrl: "https://mantine.dev/core/visually-hidden/", props: [{ name: "attributes", required: false, source: "component", typeRef: 471 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Provide meaningful text alternatives for non-text content."] }, { name: "WeekdaysRow", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/weekdays-row/", props: [{ name: "attributes", required: false, source: "component", typeRef: 478 }, { name: "cellComponent", required: false, source: "component", literalValues: ["td", "th"], description: "Sets cell type that is used for weekdays", typeRef: 72 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "firstDayOfWeek", required: false, source: "component", literalValues: [0, 1, 2, 3, 4, 5, 6], description: "Number 0-6, 0 \u2013 Sunday, 6 \u2013 Saturday", typeRef: 134 }, { name: "locale", required: false, source: "component", description: "dayjs locale", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Controls size", typeRef: 81 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withWeekNumbers", required: false, source: "component", literalValues: [false, true], description: "If set, heading for week numbers is displayed", typeRef: 341 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "YearLevel", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/year-level/", props: [{ name: "attributes", required: false, source: "component", typeRef: 383 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the calendar should take the full width of its container", typeRef: 341 }, { name: "hasNextLevel", required: false, source: "component", literalValues: [false, true], description: "Determines whether next level button should be enabled", typeRef: 341 }, { name: "headerControlsOrder", required: false, source: "component", description: "Controls order", typeRef: 89 }, { name: "levelControlAriaLabel", required: false, source: "component", description: "`aria-label` for change level control", typeRef: 359 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "monthsListFormat", required: false, source: "component", description: "`dayjs` format for months list", typeRef: 359 }, { name: "nextDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables next control", typeRef: 341 }, { name: "nextIcon", required: false, source: "component", description: "Change next icon", typeRef: 263 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "previousDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables previous control", typeRef: 341 }, { name: "previousIcon", required: false, source: "component", description: "Change previous icon", typeRef: 263 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "styles", required: false, source: "component", typeRef: 238 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "withNext", required: false, source: "component", literalValues: [false, true], description: "Determines whether next control should be rendered", typeRef: 341 }, { name: "withPrevious", required: false, source: "component", literalValues: [false, true], description: "Determines whether previous control should be rendered", typeRef: 341 }, { name: "year", required: true, source: "component", description: "Displayed year value in `YYYY-MM-DD` format", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "YearLevelGroup", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/year-level-group/", props: [{ name: "attributes", required: false, source: "component", typeRef: 385 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the calendar should take the full width of its container", typeRef: 341 }, { name: "hasNextLevel", required: false, source: "component", literalValues: [false, true], description: "Determines whether next level button should be enabled", typeRef: 341 }, { name: "headerControlsOrder", required: false, source: "component", description: "Controls order", typeRef: 89 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "monthsListFormat", required: false, source: "component", description: "`dayjs` format for months list", typeRef: 359 }, { name: "nextDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables next control", typeRef: 341 }, { name: "nextIcon", required: false, source: "component", description: "Change next icon", typeRef: 263 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "numberOfColumns", required: false, source: "component", description: "Number of columns displayed next to each other", typeRef: 353 }, { name: "previousDisabled", required: false, source: "component", literalValues: [false, true], description: "Disables previous control", typeRef: 341 }, { name: "previousIcon", required: false, source: "component", description: "Change previous icon", typeRef: 263 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "styles", required: false, source: "component", typeRef: 238 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "year", required: true, source: "component", description: "Displayed year", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "YearPicker", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/year-picker/", props: [{ name: "allowDeselect", required: false, source: "component", description: 'Determines whether user can deselect the date by clicking on selected item, applicable only when type="default"', typeRef: 106 }, { name: "allowSingleDateInRange", required: false, source: "component", description: 'Determines whether a single day can be selected as range, applicable only when type="range"', typeRef: 107 }, { name: "ariaLabels", required: false, source: "component", description: "`aria-label` attributes for controls on different levels", typeRef: 147 }, { name: "attributes", required: false, source: "component", typeRef: 387 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "columnsToScroll", required: false, source: "component", description: "Number of columns to scroll with next/prev buttons, same as `numberOfColumns` if not set explicitly", typeRef: 353 }, { name: "date", required: false, source: "component", description: "Displayed date in controlled mode", typeRef: 362 }, { name: "defaultDate", required: false, source: "component", description: "Initial displayed date in uncontrolled mode", typeRef: 362 }, { name: "defaultValue", required: false, source: "component", description: "Default value for uncontrolled component", typeRef: 159 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the list should take the full width of its container", typeRef: 341 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "numberOfColumns", required: false, source: "component", description: "Number of columns displayed next to each other", typeRef: 353 }, { name: "presets", required: false, source: "component", description: "Predefined values to pick from", typeRef: 332 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "type", required: false, source: "component", literalValues: ["default", "multiple", "range"], description: "Picker type: range, multiple or default", typeRef: 158 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Value for controlled component", typeRef: 159 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "yearsListFormat", required: false, source: "component", description: "dayjs format for years list", typeRef: 359 }], blockedProps: [], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "YearPickerInput", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/year-picker-input/", props: [{ name: "allowDeselect", required: false, source: "component", description: 'Determines whether user can deselect the date by clicking on selected item, applicable only when type="default"', typeRef: 106 }, { name: "allowSingleDateInRange", required: false, source: "component", description: 'Determines whether a single day can be selected as range, applicable only when type="range"', typeRef: 107 }, { name: "ariaLabels", required: false, source: "component", description: "`aria-label` attributes for controls on different levels", typeRef: 147 }, { name: "attributes", required: false, source: "component", typeRef: 411 }, { name: "clearButtonProps", required: false, source: "component", description: "Props passed down to the clear button", typeRef: 258 }, { name: "clearSectionMode", required: false, source: "component", literalValues: ["both", "clear", "rightSection"], description: "Determines how the clear button and rightSection are rendered", typeRef: 15 }, { name: "clearable", required: false, source: "component", literalValues: [false, true], description: "If set, clear button is displayed in the `rightSection` when the component has value. Ignored if `rightSection` prop is set.", typeRef: 341 }, { name: "closeOnChange", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the dropdown is closed when date is selected, not applicable with `type="multiple"`', typeRef: 341 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "columnsToScroll", required: false, source: "component", description: "Number of columns to scroll with next/prev buttons, same as `numberOfColumns` if not set explicitly", typeRef: 353 }, { name: "date", required: false, source: "component", description: "Displayed date in controlled mode", typeRef: 362 }, { name: "defaultDate", required: false, source: "component", description: "Initial displayed date in uncontrolled mode", typeRef: 362 }, { name: "defaultValue", required: false, source: "component", description: "Default value for uncontrolled component", typeRef: 159 }, { name: "description", required: false, source: "component", description: "Contents of `Input.Description` component. If not set, description is not displayed.", typeRef: 263 }, { name: "descriptionProps", required: false, source: "component", description: "Props passed down to the `Input.Description` component", typeRef: 95 }, { name: "error", required: false, source: "component", description: "Contents of `Input.Error` component. If not set, error is not displayed.", typeRef: 263 }, { name: "errorProps", required: false, source: "component", description: "Props passed down to the `Input.Error` component", typeRef: 96 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the list should take the full width of its container", typeRef: 341 }, { name: "inputSize", required: false, source: "component", description: "HTML `size` attribute for the input element (number of visible characters)", typeRef: 359 }, { name: "inputWrapperOrder", required: false, source: "component", description: "Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.", typeRef: 88 }, { name: "label", required: false, source: "component", description: "Contents of `Input.Label` component. If not set, label is not displayed.", typeRef: 263 }, { name: "labelProps", required: false, source: "component", description: "Props passed down to the `Input.Label` component", typeRef: 97 }, { name: "labelSeparator", required: false, source: "component", description: "Separator between range value", typeRef: 359 }, { name: "leftSection", required: false, source: "component", description: "Content section displayed on the left side of the input", typeRef: 263 }, { name: "leftSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "leftSectionProps", required: false, source: "component", description: "Props passed down to the `leftSection` element", typeRef: 259 }, { name: "leftSectionWidth", required: false, source: "component", description: "Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height", typeRef: 254 }, { name: "loading", required: false, source: "component", literalValues: [false, true], description: "Displays loading indicator in the left or right section", typeRef: 341 }, { name: "loadingPosition", required: false, source: "component", literalValues: ["left", "right"], description: "Position of the loading indicator", typeRef: 47 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "nextLabel", required: false, source: "component", description: "Next button `aria-label`", typeRef: 359 }, { name: "numberOfColumns", required: false, source: "component", description: "Number of columns displayed next to each other", typeRef: 353 }, { name: "pointer", required: false, source: "component", literalValues: [false, true], description: 'Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).', typeRef: 341 }, { name: "popoverProps", required: false, source: "component", description: "Props passed down to `Popover` component", typeRef: 204 }, { name: "presets", required: false, source: "component", description: "Predefined values to pick from", typeRef: 332 }, { name: "previousLabel", required: false, source: "component", description: "Previous button `aria-label`", typeRef: 359 }, { name: "rightSection", required: false, source: "component", description: "Content section displayed on the right side of the input", typeRef: 263 }, { name: "rightSectionPointerEvents", required: false, source: "component", literalValues: ["-moz-initial", "all", "auto", "fill", "inherit", "initial", "none", "painted", "revert", "revert-layer", "stroke", "unset", "visible", "visibleFill", "visiblePainted", "visibleStroke"], description: "Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).", typeRef: 2 }, { name: "rightSectionProps", required: false, source: "component", description: "Props passed down to the `rightSection` element", typeRef: 259 }, { name: "rightSectionWidth", required: false, source: "component", description: "Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height", typeRef: 254 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "sortDates", required: false, source: "component", literalValues: [false, true], description: 'Determines whether dates values should be sorted before `onChange` call, only applicable with type="multiple"', typeRef: 341 }, { name: "success", required: false, source: "component", description: "Contents of `Input.Success` component. If not set, success is not displayed.", typeRef: 263 }, { name: "successProps", required: false, source: "component", description: "Props passed down to the `Input.Success` component", typeRef: 98 }, { name: "type", required: false, source: "component", literalValues: ["default", "multiple", "range"], description: "Picker type: range, multiple or default", typeRef: 158 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "value", required: false, source: "component", description: "Value for controlled component", typeRef: 159 }, { name: "valueFormat", required: false, source: "component", description: "`dayjs` format to display input value", typeRef: 359 }, { name: "variant", required: false, source: "component", literalValues: ["default", "filled", "unstyled"], typeRef: 124 }, { name: "withAsterisk", required: false, source: "component", literalValues: [false, true], description: "If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.", typeRef: 341 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "withErrorStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have red border and red text color when the `error` prop is set", typeRef: 341 }, { name: "withSuccessStyles", required: false, source: "component", literalValues: [false, true], description: "Determines whether the input should have green border when the `success` prop is set", typeRef: 341 }, { name: "wrapperProps", required: false, source: "component", description: "Props passed down to the root element", typeRef: 331 }, { name: "yearsListFormat", required: false, source: "component", description: "dayjs format for years list", typeRef: 359 }], blockedProps: [{ name: "dropdownType", reason: "Modal picker mode escapes the widget overlay boundary" }, { name: "modalProps", reason: "Modal picker configuration escapes the widget overlay boundary" }], subcomponents: [], bind: { type: "string", initialProp: "defaultValue" }, accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }, { name: "YearsList", package: "@mantine/dates", category: "dates", safety: "wrapped", documentationUrl: "https://mantine.dev/dates/years-list/", props: [{ name: "align", required: false, source: "component", literalValues: ["center", "left", "right"], typeRef: 22 }, { name: "attributes", required: false, source: "component", typeRef: 482 }, { name: "color", required: false, source: "component", typeRef: 359 }, { name: "decade", required: true, source: "component", description: "Decade value to display", typeRef: 359 }, { name: "fullWidth", required: false, source: "component", literalValues: [false, true], description: "Determines whether the list should take the full width of its container", typeRef: 341 }, { name: "locale", required: false, source: "component", description: "Dayjs locale, defaults to value defined in DatesProvider", typeRef: 359 }, { name: "maxDate", required: false, source: "component", description: "Maximum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "minDate", required: false, source: "component", description: "Minimum possible date in `YYYY-MM-DD` format or Date object", typeRef: 362 }, { name: "size", required: false, source: "component", literalValues: ["lg", "md", "sm", "xl", "xs"], description: "Component size", typeRef: 81 }, { name: "unstyled", required: false, source: "component", literalValues: [false, true], typeRef: 341 }, { name: "variant", required: false, source: "component", typeRef: 359 }, { name: "withCellSpacing", required: false, source: "component", literalValues: [false, true], description: "Determines whether controls should be separated", typeRef: 341 }, { name: "yearsListFormat", required: false, source: "component", description: "dayjs format for years list", typeRef: 359 }], blockedProps: [], subcomponents: [], accessibilityRequirements: ["Include a textual date when the visual calendar carries meaning."] }] }; - -// packages/custom-widgets/src/core/component-catalog.ts -var customJsxAuthoringCatalog = component_catalog_generated_default; -var customJsxCatalogComponentByName = new Map( - customJsxAuthoringCatalog.components.map((component) => [component.name, component]) -); -var customJsxCatalogGlobalPropByName = new Map( - customJsxAuthoringCatalog.globalProps.map((prop) => [prop.name, prop]) -); - -// packages/custom-widgets/src/core/component-registry.ts -var globalPropNames = customJsxAuthoringCatalog.globalProps.map(({ name }) => name); -var customJsxComponentRegistry = customJsxAuthoringCatalog.components.map((component) => __spreadValues({ - name: component.name, - package: component.package, - safety: component.safety, - supportedProps: component.safety === "denied" ? [] : [ - .../* @__PURE__ */ new Set([ - ...globalPropNames.filter( - (propName) => !component.blockedProps.some((blockedProp) => blockedProp.name === propName) - ), - ...component.props.map(({ name }) => name), - ...component.bind ? ["bind"] : [] - ]) - ], - blockedProps: component.blockedProps -}, component.deniedReason ? { reason: component.deniedReason } : {})); -var enabledCustomJsxComponents = customJsxComponentRegistry.filter( - (component) => component.safety !== "denied" -); -var customJsxComponentByName = new Map(customJsxComponentRegistry.map((entry) => [entry.name, entry])); -var customJsxSupportedPropsByName = new Map( - customJsxComponentRegistry.map((entry) => [entry.name, new Set(entry.supportedProps)]) -); -function resolveCustomJsxComponentName(name) { - if (name === "Icon") return "TablerIcon"; - if (customJsxComponentByName.has(name)) return name; - const flat = name.replaceAll(".", ""); - return customJsxComponentByName.has(flat) ? flat : name; -} -var catalogComponentsByName = new Map( - customJsxAuthoringCatalog.components.map((component) => [component.name, component]) -); -var customJsxBindableComponentNames = new Set( - customJsxAuthoringCatalog.components.flatMap((component) => component.bind ? [component.name] : []) -); - -// packages/custom-widgets/src/jsx/analyzer-language.ts -var ROOT_BINDINGS = /* @__PURE__ */ new Set([ - "Array", - "Boolean", - "Date", - "Infinity", - "JSON", - "Math", - "NaN", - "Number", - "Object", - "String", - "data", - "options", - "inputs", - "status", - "decodeURIComponent", - "encodeURIComponent", - "isFinite", - "isNaN", - "parseFloat", - "parseInt", - "undefined" -]); -var RESERVED_LOCAL_BINDINGS = /* @__PURE__ */ new Set(["data", "status", "options", "inputs"]); -var callableRootBindings = /* @__PURE__ */ new Set([ - "Boolean", - "Number", - "String", - "decodeURIComponent", - "encodeURIComponent", - "isFinite", - "isNaN", - "parseFloat", - "parseInt" -]); -var callableRootMembers = { - Array: /* @__PURE__ */ new Set(["from", "isArray"]), - Date: /* @__PURE__ */ new Set([ - "create", - "getDay", - "getMonth", - "getTime", - "getYear", - "now", - "toISOString", - "toLocaleDateString", - "toLocaleTimeString" - ]), - JSON: /* @__PURE__ */ new Set(["stringify"]), - Math: /* @__PURE__ */ new Set(["abs", "ceil", "floor", "max", "min", "pow", "round", "sqrt"]), - Object: /* @__PURE__ */ new Set(["entries", "keys", "values"]) -}; -var enabledComponentNames = enabledCustomJsxComponents.map((component) => component.name); -function closestCustomJsxComponentName(value) { - let closest; - for (const name of enabledComponentNames) { - const distance = editDistance(value.toLowerCase(), name.toLowerCase()); - if (!closest || distance < closest.distance) closest = { name, distance }; - } - return closest && closest.distance <= Math.max(2, Math.floor(value.length / 3)) ? closest.name : void 0; -} -function customJsxTagName(node) { - var _a5; - if (node.type === "JSXIdentifier") return String((_a5 = node.name) != null ? _a5 : ""); - if (node.type !== "JSXMemberExpression") return null; - const object2 = nodeOf(node.object); - const property = nodeOf(node.property); - const left = object2 ? customJsxTagName(object2) : null; - const right = property ? customJsxTagName(property) : null; - return left && right ? `${left}.${right}` : null; -} -function isSafeLiteralCustomJsxUrl(value) { - if (value.startsWith("#") || value.startsWith("/") && !value.startsWith("//")) return true; - try { - const url2 = new URL(value); - return (url2.protocol === "http:" || url2.protocol === "https:") && !url2.username && !url2.password; - } catch (e) { - return false; - } -} -function isStaticallyCallableBinding(node) { - var _a5, _b; - if (node.type === "Identifier") return callableRootBindings.has(String(node.name)); - if (node.type !== "MemberExpression") return false; - const object2 = nodeOf(node.object); - const property = nodeOf(node.property); - if ((object2 == null ? void 0 : object2.type) !== "Identifier") return false; - const propertyName = node.computed ? staticPropertyName(property) : String((_a5 = property == null ? void 0 : property.name) != null ? _a5 : ""); - return Boolean(propertyName && ((_b = callableRootMembers[String(object2.name)]) == null ? void 0 : _b.has(propertyName))); -} -function canStaticallyProduceCallable(node) { - if (isStaticallyCallableBinding(node) || ["ArrowFunctionExpression", "FunctionExpression"].includes(node.type)) { - return true; - } - if (node.type === "ConditionalExpression") { - const consequent = nodeOf(node.consequent); - const alternate = nodeOf(node.alternate); - return Boolean( - consequent && canStaticallyProduceCallable(consequent) || alternate && canStaticallyProduceCallable(alternate) - ); - } - if (node.type === "LogicalExpression") { - const left = nodeOf(node.left); - const right = nodeOf(node.right); - return Boolean(left && canStaticallyProduceCallable(left) || right && canStaticallyProduceCallable(right)); - } - if (node.type === "ChainExpression") { - const expression = nodeOf(node.expression); - return Boolean(expression && canStaticallyProduceCallable(expression)); - } - return false; -} -function editDistance(left, right) { - var _a5, _b, _c, _d; - const previous = Array.from({ length: right.length + 1 }, (_, index) => index); - for (let leftIndex = 1; leftIndex <= left.length; leftIndex += 1) { - const current2 = [leftIndex]; - for (let rightIndex = 1; rightIndex <= right.length; rightIndex += 1) { - current2[rightIndex] = Math.min( - ((_a5 = current2[rightIndex - 1]) != null ? _a5 : 0) + 1, - ((_b = previous[rightIndex]) != null ? _b : 0) + 1, - ((_c = previous[rightIndex - 1]) != null ? _c : 0) + (left[leftIndex - 1] === right[rightIndex - 1] ? 0 : 1) - ); - } - previous.splice(0, previous.length, ...current2); - } - return (_d = previous[right.length]) != null ? _d : Math.max(left.length, right.length); -} - -// packages/custom-widgets/src/jsx/runtime-component-policy.ts -function getInvalidCustomJsxPropValueReason(componentName, propName, value) { - if (["DateTimePicker", "InlineDateTimePicker"].includes(componentName) && propName === "type" && ![void 0, "default", "range"].includes(value)) { - return `${componentName}.type supports only 'default' or 'range'`; - } - return null; -} - -// packages/custom-widgets/src/jsx/analyzer-jsx.ts -function analyzeCustomJsxElement(node, depth, bindings, context) { - var _a5; - const opening = nodeOf(node.openingElement); - if (!opening) { - context.add(node, "Invalid JSX element"); - return; - } - const nameNode = nodeOf(opening.name); - const name = nameNode ? customJsxTagName(nameNode) : null; - const resolvedName = name ? resolveCustomJsxComponentName(name) : null; - const descriptor = resolvedName ? customJsxComponentByName.get(resolvedName) : void 0; - if ((descriptor == null ? void 0 : descriptor.safety) === "denied") { - context.add( - opening, - `BLOCKED_CAPABILITY: '${name}' is not available${descriptor.reason ? ` because it ${descriptor.reason.toLowerCase()}` : ""}` - ); - } else if (!descriptor) { - const suggestion = name ? closestCustomJsxComponentName(name) : void 0; - context.add( - opening, - name ? `UNKNOWN_COMPONENT: '${name}' is not available${suggestion ? `. Did you mean '${suggestion}'?` : ""}` : "UNKNOWN_COMPONENT: Invalid JSX component name" - ); - } - for (const attribute of nodesOf(opening.attributes)) { - if (attribute.type === "JSXSpreadAttribute") { - const argument = nodeOf(attribute.argument); - if (argument) context.visit(argument, depth + 1, bindings); - continue; - } - if (attribute.type !== "JSXAttribute") { - context.add(attribute, `Unsupported JSX attribute '${attribute.type}'`); - continue; - } - const attributeNameNode = nodeOf(attribute.name); - const attributeName = (attributeNameNode == null ? void 0 : attributeNameNode.type) === "JSXIdentifier" ? String(attributeNameNode.name) : ""; - const componentBlockedProp = descriptor == null ? void 0 : descriptor.blockedProps.find(({ name: propName }) => propName === attributeName); - if (componentBlockedProp) { - context.add( - attribute, - `BLOCKED_CAPABILITY: Prop '${attributeName}' on '${name}' is not allowed because ${componentBlockedProp.reason.toLowerCase()}` - ); - } else if (isBlockedCustomJsxProp(attributeName)) { - context.add(attribute, `BLOCKED_CAPABILITY: Prop '${attributeName}' is not allowed`); - } else if (resolvedName && attributeName !== "bind" && !((_a5 = customJsxSupportedPropsByName.get(resolvedName)) == null ? void 0 : _a5.has(attributeName))) { - context.add(attribute, `UNKNOWN_MANTINE_PROP: '${attributeName}' on ${name} will be passed through`, "warning"); - } else if (resolvedName && attributeName === "bind" && !customJsxBindableComponentNames.has(resolvedName)) { - context.add(attribute, `BINDING_UNAVAILABLE: '${name}' does not have a declarative binding adapter`, "warning"); - } - if (attributeName === "bind") analyzeBindAttribute(attribute, context); - analyzeAttributeValue(resolvedName, attributeName, attribute, depth, bindings, context); - } - nodesOf(node.children).forEach((child) => { - const expression = child.type === "JSXExpressionContainer" ? nodeOf(child.expression) : null; - if (resolvedName === "SubFetch" && (expression == null ? void 0 : expression.type) === "ArrowFunctionExpression") { - context.visitArrow(expression, depth + 1, bindings); - return; - } - context.visit(child, depth + 1, bindings); - }); -} -function analyzeBindAttribute(attribute, context) { - const value = nodeOf(attribute.value); - if ((value == null ? void 0 : value.type) !== "Literal" || typeof value.value !== "string") { - context.add(attribute, "bind must use a literal input name"); - } else if (!CUSTOM_JSX_BINDING_IDENTIFIER_PATTERN.test(value.value)) { - context.add(attribute, `Invalid bind input name '${value.value}'`); - } -} -function analyzeAttributeValue(componentName, attributeName, attribute, depth, bindings, context) { - var _a5; - const value = nodeOf(attribute.value); - const literalValue = (value == null ? void 0 : value.type) === "Literal" ? value : (value == null ? void 0 : value.type) === "JSXExpressionContainer" && ((_a5 = nodeOf(value.expression)) == null ? void 0 : _a5.type) === "Literal" ? nodeOf(value.expression) : null; - if (componentName && (literalValue == null ? void 0 : literalValue.type) === "Literal") { - const reason = getInvalidCustomJsxPropValueReason(componentName, attributeName, literalValue.value); - if (reason) context.add(attribute, `INVALID_PROP_VALUE: ${reason}`); - } - if (CUSTOM_JSX_URL_PROPS.has(attributeName) && (value == null ? void 0 : value.type) === "Literal" && typeof value.value === "string" && !isSafeLiteralCustomJsxUrl(value.value)) { - context.add(attribute, `INVALID_PROP_VALUE: '${attributeName}' contains an unsafe URL`); - } - if ((value == null ? void 0 : value.type) !== "JSXExpressionContainer") return; - const expression = nodeOf(value.expression); - if (expression && containsEscapingCallback(expression)) { - context.add(attribute, `BLOCKED_CAPABILITY: Callback prop '${attributeName}' is not allowed`); - } else if (expression && expression.type !== "JSXEmptyExpression") { - context.visit(expression, depth + 1, bindings); - } -} - -// packages/custom-widgets/src/jsx/safe-language-policy.ts -var CUSTOM_JSX_BINARY_OPERATORS = /* @__PURE__ */ new Set([ - "+", - "-", - "*", - "/", - "%", - "**", - "<", - "<=", - ">", - ">=", - "==", - "!=", - "===", - "!==" -]); -var CUSTOM_JSX_CALLBACK_METHODS = /* @__PURE__ */ new Set([ - "every", - "filter", - "find", - "findIndex", - "flatMap", - "map", - "reduce", - "some", - "sort" -]); -var CUSTOM_JSX_SAFE_VALUE_METHODS = /* @__PURE__ */ new Set([ - ...CUSTOM_JSX_CALLBACK_METHODS, - "at", - "charAt", - "concat", - "endsWith", - "flat", - "flatMap", - "includes", - "indexOf", - "join", - "lastIndexOf", - "localeCompare", - "match", - "padEnd", - "padStart", - "pop", - "repeat", - "replace", - "replaceAll", - "reverse", - "slice", - "search", - "split", - "startsWith", - "substring", - "toFixed", - "toLocaleString", - "toLowerCase", - "toPrecision", - "toString", - "toUpperCase", - "trim", - "trimEnd", - "trimStart", - "test" -]); - -// packages/custom-widgets/src/jsx/regex-policy.ts -var MAX_REGEX_PATTERN_LENGTH = 128; -var MAX_EXACT_REPETITION = 1e3; -function isSafeRegexLiteral(regex) { - if (!regex || typeof regex !== "object") return false; - const { pattern, flags } = regex; - if (typeof pattern !== "string" || pattern.length > MAX_REGEX_PATTERN_LENGTH || typeof flags !== "string" || /[^gimsu]/u.test(flags)) { - return false; - } - return isSafeRegexPattern(pattern); -} -function isSafeRegexPattern(pattern) { - const groups = [createGroupState()]; - let variableQuantifiers = 0; - let index = 0; - const consumeAtom = (nested) => { - const parent = groups.at(-1); - if (!parent) return false; - parent.atomCount += 1; - if (nested) { - parent.containsAlternation || (parent.containsAlternation = nested.containsAlternation); - parent.containsQuantifier || (parent.containsQuantifier = nested.containsQuantifier); - } - const quantifier = readQuantifier(pattern, index); - if (!quantifier) return true; - if (quantifier.nextIndex > pattern.length) return false; - if (nested && (nested.atomCount === 0 || nested.containsAlternation || nested.containsQuantifier)) return false; - parent.containsQuantifier = true; - if (quantifier.variable && ++variableQuantifiers > 1) return false; - index = quantifier.nextIndex; - return true; - }; - while (index < pattern.length) { - const character = pattern[index]; - if (character === "\\") { - const escaped = pattern[index + 1]; - if (escaped === void 0 || /[1-9k]/u.test(escaped)) return false; - index += 2; - if (!consumeAtom()) return false; - continue; - } - if (character === "[") { - index += 1; - let closed = false; - while (index < pattern.length) { - if (pattern[index] === "\\") index += 2; - else { - const classCharacter = pattern[index++]; - if (classCharacter === "]") { - closed = true; - break; - } - } - } - if (!closed || !consumeAtom()) return false; - continue; - } - if (character === "(") { - if (pattern[index + 1] === "?") return false; - groups.push(createGroupState()); - index += 1; - continue; - } - if (character === ")") { - if (groups.length === 1) return false; - const nested = groups.pop(); - index += 1; - if (!nested || !consumeAtom(nested)) return false; - continue; - } - if (character === "|") { - const current2 = groups.at(-1); - if (!current2) return false; - current2.containsAlternation = true; - index += 1; - continue; - } - if (character === "^" || character === "$") { - index += 1; - continue; - } - if (character === "*" || character === "+" || character === "?" || character === "{") { - return false; - } - index += 1; - if (!consumeAtom()) return false; - } - return groups.length === 1; -} -function createGroupState() { - return { atomCount: 0, containsAlternation: false, containsQuantifier: false }; -} -function readQuantifier(pattern, index) { - const character = pattern[index]; - if (character === "*" || character === "+" || character === "?") { - const nextIndex3 = pattern[index + 1] === "?" ? index + 2 : index + 1; - return { nextIndex: nextIndex3, variable: true }; - } - if (character !== "{") return null; - const match = /^\{(\d+)(?:,(\d*))?\}/u.exec(pattern.slice(index)); - if (!match) return null; - const minimum = Number(match[1]); - const maximum = match[2] === void 0 || match[2] === "" ? void 0 : Number(match[2]); - if (!Number.isSafeInteger(minimum) || minimum > MAX_EXACT_REPETITION || maximum !== void 0 && (!Number.isSafeInteger(maximum) || maximum > MAX_EXACT_REPETITION)) { - return { nextIndex: pattern.length + 1, variable: true }; - } - let nextIndex2 = index + match[0].length; - if (pattern[nextIndex2] === "?") nextIndex2 += 1; - return { nextIndex: nextIndex2, variable: match[2] !== void 0 && maximum !== minimum }; -} - -// packages/custom-widgets/src/jsx/analyzer.ts -var JsxParser = Parser.extend((0, import_acorn_jsx.default)()); -var requestStatusLabels = /* @__PURE__ */ new Set(["loading", "success", "error"]); -function directRequestStatusId(node) { - var _a5, _b, _c; - if ((node == null ? void 0 : node.type) !== "MemberExpression") return null; - const object2 = nodeOf(node.object); - if ((object2 == null ? void 0 : object2.type) !== "Identifier" || object2.name !== "status") return null; - const property = nodeOf(node.property); - return node.computed ? (_a5 = staticPropertyName(property)) != null ? _a5 : null : String((_c = (_b = property == null ? void 0 : property.name) != null ? _b : property == null ? void 0 : property.value) != null ? _c : "") || null; -} -function invalidRequestStatusComparison(node) { - if (!["===", "==", "!==", "!="].includes(String(node.operator))) return null; - const left = nodeOf(node.left); - const right = nodeOf(node.right); - const leftStatus = directRequestStatusId(left); - const rightStatus = directRequestStatusId(right); - const leftLabel = (left == null ? void 0 : left.type) === "Literal" && typeof left.value === "string" ? left.value : null; - const rightLabel = (right == null ? void 0 : right.type) === "Literal" && typeof right.value === "string" ? right.value : null; - const requestId = leftStatus && rightLabel && requestStatusLabels.has(rightLabel) ? leftStatus : rightStatus && leftLabel && requestStatusLabels.has(leftLabel) ? rightStatus : null; - return requestId ? `INVALID_STATUS_COMPARISON: status.${requestId} is an object. Use status.${requestId}?.loading, status.${requestId}?.ok === true, or status.${requestId}?.ok === false` : null; -} -function validateCustomJsxTemplate(template) { - const diagnostics = []; - let operations = 0; - const add = (node, message, severity = "error") => { - var _a5, _b, _c, _d, _e, _f, _g; - const line = (_c = (_b = (_a5 = node.loc) == null ? void 0 : _a5.start) == null ? void 0 : _b.line) != null ? _c : 1; - diagnostics.push({ - severity, - message, - index: Math.max(0, ((_d = node.start) != null ? _d : 2) - 2), - line, - column: Math.max(1, ((_g = (_f = (_e = node.loc) == null ? void 0 : _e.start) == null ? void 0 : _f.column) != null ? _g : 0) + 1 - (line === 1 ? 2 : 0)) - }); - }; - const checkBudget = (node, depth) => { - operations += 1; - if (depth > CUSTOM_JSX_LIMITS.astDepth) - add(node, `Template exceeds the AST depth limit (${CUSTOM_JSX_LIMITS.astDepth})`); - if (operations === CUSTOM_JSX_LIMITS.operations + 1) { - add(node, `Template exceeds the operation limit (${CUSTOM_JSX_LIMITS.operations})`); - } - return depth <= CUSTOM_JSX_LIMITS.astDepth && operations <= CUSTOM_JSX_LIMITS.operations; - }; - let visit; - const visitArrow = (node, depth, bindings) => { - if (node.async || node.generator) { - add(node, "CALLBACK_VALUE_NOT_ALLOWED: Async and generator callbacks are not supported"); - return; - } - const callbackBindings = new Set(bindings); - const parameterNames = /* @__PURE__ */ new Set(); - for (const parameter of nodesOf(node.params)) { - if (parameter.type !== "Identifier") { - add(parameter, "INVALID_LOCAL_DECLARATION: Callback parameters must be identifiers"); - continue; - } - const name = String(parameter.name); - if (isBlockedCustomJsxLexicalBinding(name)) { - add(parameter, `INVALID_LOCAL_DECLARATION: '${name}' is not a safe callback parameter name`); - continue; - } - if (RESERVED_LOCAL_BINDINGS.has(name)) { - add(parameter, `RESERVED_LOCAL_BINDING: '${name}' cannot be shadowed`); - continue; - } - if (parameterNames.has(name)) { - add(parameter, `DUPLICATE_LOCAL_BINDING: '${name}' is already declared`); - continue; - } - parameterNames.add(name); - callbackBindings.add(name); - } - const body = nodeOf(node.body); - if (!body) return; - if (body.type === "BlockStatement") - add(body, "UNSUPPORTED_BLOCK_STATEMENT: Use one expression in authored callbacks"); - else if (canStaticallyProduceCallable(body)) { - add(body, "CALLBACK_VALUE_NOT_ALLOWED: Authored callbacks cannot return callable values"); - } else visit(body, depth + 1, callbackBindings); - }; - visit = (node, depth, bindings) => { - var _a5, _b, _c; - if (!checkBudget(node, depth)) return; - switch (node.type) { - case "Program": - nodesOf(node.body).forEach((child) => visit(child, depth + 1, bindings)); - return; - case "ExpressionStatement": { - const expression = nodeOf(node.expression); - if (expression) visit(expression, depth + 1, bindings); - return; - } - case "JSXFragment": - nodesOf(node.children).forEach((child) => visit(child, depth + 1, bindings)); - return; - case "JSXElement": { - analyzeCustomJsxElement(node, depth, bindings, { add, visit, visitArrow }); - return; - } - case "JSXText": - case "JSXEmptyExpression": - case "TemplateElement": - return; - case "JSXExpressionContainer": { - const expression = nodeOf(node.expression); - if (expression && expression.type !== "JSXEmptyExpression") visit(expression, depth + 1, bindings); - return; - } - case "Literal": - if (typeof node.value === "bigint") add(node, "BIGINT_NOT_SUPPORTED: Use Number for widget values"); - if (node.regex !== void 0 && !isSafeRegexLiteral(node.regex)) - add(node, "UNSAFE_REGEX: Use a conservative regex without repeated alternatives or variable quantifiers"); - return; - case "Identifier": { - const name = String((_a5 = node.name) != null ? _a5 : ""); - if (!bindings.has(name)) add(node, `Unknown binding '${name}'`); - return; - } - case "ArrayExpression": - nodesOf(node.elements).forEach((child) => { - const argument = child.type === "SpreadElement" ? nodeOf(child.argument) : child; - if (argument) visit(argument, depth + 1, bindings); - }); - return; - case "ObjectExpression": - nodesOf(node.properties).forEach((property) => { - var _a6; - if (property.type === "SpreadElement") { - const argument = nodeOf(property.argument); - if (argument) visit(argument, depth + 1, bindings); - return; - } - if (property.type !== "Property" || property.kind !== "init" || property.method || property.shorthand) { - add(property, "Only explicit object properties are supported"); - return; - } - const key = nodeOf(property.key); - if (property.computed && key) visit(key, depth + 1, bindings); - if (!property.computed && key && CUSTOM_JSX_BLOCKED_PROPERTIES.has(normalizeCustomJsxProperty((_a6 = key.name) != null ? _a6 : key.value))) { - add(key, "Reflective object properties are not allowed"); - } - const value = nodeOf(property.value); - if (value) visit(value, depth + 1, bindings); - }); - return; - case "UnaryExpression": - if (!["!", "+", "-", "typeof"].includes(String(node.operator))) { - add(node, `Unary operator '${String(node.operator)}' is not supported`); - } - if (nodeOf(node.argument)) visit(node.argument, depth + 1, bindings); - return; - case "BinaryExpression": - case "LogicalExpression": { - if (node.type === "BinaryExpression" && !CUSTOM_JSX_BINARY_OPERATORS.has(String(node.operator))) { - add(node, `Binary operator '${String(node.operator)}' is not supported`); - } - if (node.type === "BinaryExpression") { - const statusDiagnostic = invalidRequestStatusComparison(node); - if (statusDiagnostic) add(node, statusDiagnostic); - } - const left = nodeOf(node.left); - const right = nodeOf(node.right); - if (left) visit(left, depth + 1, bindings); - if (right) visit(right, depth + 1, bindings); - return; - } - case "ConditionalExpression": { - [node.test, node.consequent, node.alternate].map(nodeOf).forEach((child) => { - if (child) visit(child, depth + 1, bindings); - }); - return; - } - case "MemberExpression": { - const object2 = nodeOf(node.object); - const property = nodeOf(node.property); - if (object2) visit(object2, depth + 1, bindings); - if (node.computed && property) visit(property, depth + 1, bindings); - const propertyName = node.computed ? staticPropertyName(property) : String((_c = (_b = property == null ? void 0 : property.name) != null ? _b : property == null ? void 0 : property.value) != null ? _c : ""); - if (propertyName && CUSTOM_JSX_BLOCKED_PROPERTIES.has(normalizeCustomJsxProperty(propertyName))) { - add(property != null ? property : node, "Reflective property access is not allowed"); - } - return; - } - case "CallExpression": { - const callee = nodeOf(node.callee); - const callArguments = nodesOf(node.arguments); - if (node.optional) { - add(node, "CALL_TARGET_NOT_ALLOWED: Optional calls are not supported"); - } - if ((callee == null ? void 0 : callee.type) === "ArrowFunctionExpression") { - add(callee, "CALL_TARGET_NOT_ALLOWED: Inline IIFEs are not supported"); - return; - } - if (callee) visit(callee, depth + 1, bindings); - const property = (callee == null ? void 0 : callee.type) === "MemberExpression" ? nodeOf(callee.property) : null; - const method = (property == null ? void 0 : property.type) === "Identifier" ? String(property.name) : staticPropertyName(property); - if (callee && !isStaticallyCallableBinding(callee) && (callee.type !== "MemberExpression" || !method || !CUSTOM_JSX_SAFE_VALUE_METHODS.has(method))) { - add(callee, "CALL_TARGET_NOT_ALLOWED: Only documented safe helpers and value methods can be called"); - } - if (method && CUSTOM_JSX_CALLBACK_METHODS.has(method)) { - const callback = callArguments[0]; - if (!callback) { - add(node, `CALLBACK_VALUE_NOT_ALLOWED: '${method}' requires a callback`); - } else if (["reduce", "sort"].includes(method) && callback.type !== "ArrowFunctionExpression") { - add(callback, `CALLBACK_VALUE_NOT_ALLOWED: '${method}' requires an inline arrow callback`); - } else if (callback.type !== "ArrowFunctionExpression" && !isStaticallyCallableBinding(callback)) { - add(callback, `CALLBACK_VALUE_NOT_ALLOWED: '${method}' requires an inline arrow or safe helper callback`); - } - } - callArguments.forEach((argument, argumentIndex) => { - if (argument.type === "SpreadElement") add(argument, "Spread call arguments are not supported"); - else if (argument.type === "ArrowFunctionExpression" && argumentIndex === 0 && method && CUSTOM_JSX_CALLBACK_METHODS.has(method)) { - visitArrow(argument, depth + 1, bindings); - } else if (argument.type === "ArrowFunctionExpression") { - add(argument, "CALLBACK_VALUE_NOT_ALLOWED: Callback arguments are only allowed in the first callback slot"); - } else visit(argument, depth + 1, bindings); - }); - return; - } - case "ArrowFunctionExpression": { - add( - node, - "CALLBACK_VALUE_NOT_ALLOWED: Callbacks are only allowed in safe collection methods and trusted slots" - ); - return; - } - case "BlockStatement": - add(node, "UNSUPPORTED_BLOCK_STATEMENT: Authored callbacks must use one expression"); - return; - case "AssignmentExpression": - case "UpdateExpression": - case "NewExpression": - case "AwaitExpression": - case "YieldExpression": - add(node, `UNSUPPORTED_BLOCK_STATEMENT: '${node.type}' is not allowed in safe expressions`); - return; - case "TemplateLiteral": - nodesOf(node.expressions).forEach((expression) => visit(expression, depth + 1, bindings)); - return; - case "ChainExpression": { - const expression = nodeOf(node.expression); - if (expression) visit(expression, depth + 1, bindings); - return; - } - default: - add(node, `Unsupported expression '${node.type}'`); - } - }; - try { - const program = JsxParser.parse(`<>${template}`, { - ecmaVersion: "latest", - sourceType: "module", - locations: true - }); - visit(program, 0, ROOT_BINDINGS); - } catch (error52) { - diagnostics.push(createCustomJsxParseDiagnostic(template, error52)); - } - return diagnostics; -} - -// packages/custom-widgets/src/core/definition-security.ts -var harmlessCredentialSettings = /* @__PURE__ */ new Set([ - "anonymous", - "authentication", - "basic", - "bearer", - "configured", - "default", - "disabled", - "enabled", - "example", - "false", - "inherit", - "missing", - "none", - "optional", - "placeholder", - "public", - "redacted", - "required", - "separate", - "separately", - "source", - "true", - "unset" -]); -var commonCredentialLiteralPattern = /\b(?:sk|pk|rk)-(?:[A-Za-z0-9][A-Za-z0-9._-]{7,})\b|\b(?:sk_(?:live|test)|github_pat|glpat|gh[pousr]|hf_|xox[baprs])-?[A-Za-z0-9._-]{8,}\b|\b(?:AKIA|ASIA)[A-Z0-9]{16}\b|\bAIza[0-9A-Za-z_-]{20,}\b|\beyJ[A-Za-z0-9_-]{8,}\.eyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\b/giu; -var authorizationSchemePattern = /\b(bearer|basic)([\s:_-]+)(["']?)([A-Za-z0-9._~+/%=-]{8,})/giu; -var credentialAssignmentPattern = /\b(authorization|auth(?:entication)?(?:[ _-]?(?:tokens?|keys?|credentials?))?|credentials?|api[ _-]?keys?|passwords?|passwds?|secrets?|tokens?|access[ _-]?(?:tokens?|keys?)|refresh[ _-]?tokens?|client[ _-]?secrets?|private[ _-]?keys?|signing[ _-]?keys?)((?:["']?\s*[:=]\s*["']?))([^\s,;"'}<>]+)/giu; -function validateCredentialFreeExport(definition, ctx) { - const _a5 = definition, { secrets: _secrets } = _a5, exportedDefinition = __objRest(_a5, ["secrets"]); - inspect(exportedDefinition, [], ctx); - inspectRequestPathQueries(definition.requests, ctx); - inspectUrlQuery(definition.iconUrl, ["iconUrl"], "Widget icon URLs", ctx); -} -function inspect(value, path, ctx) { - if (Array.isArray(value)) return value.forEach((entry, index) => inspect(entry, [...path, index], ctx)); - if (typeof value === "string") { - if (containsCustomWidgetCredentialLiteral(value)) { - ctx.addIssue({ code: "custom", path, message: "Credentials must use source authentication" }); - } - return; - } - if (!value || typeof value !== "object") return; - for (const [key, child] of Object.entries(value)) { - const childPath = [...path, key]; - const keyRisk = getCustomWidgetCredentialKeyRisk(key); - if (keyRisk === "strong" && !isSchemaAuthenticationControl(childPath) && hasCredentialFieldValue(child) && !isHarmlessCustomWidgetCredentialSetting(child)) { - ctx.addIssue({ code: "custom", path: childPath, message: "Credentials must use source authentication" }); - continue; - } - if (keyRisk === "ambiguous" && typeof child === "string" && containsCustomWidgetCredentialLiteral(child)) { - ctx.addIssue({ code: "custom", path: childPath, message: "Credentials must use source authentication" }); - continue; - } - inspect(child, childPath, ctx); - } -} -function inspectRequestPathQueries(value, ctx) { - if (!value || typeof value !== "object" || Array.isArray(value)) return; - for (const [requestId, candidate] of Object.entries(value)) { - if (!candidate || typeof candidate !== "object" || Array.isArray(candidate)) continue; - const path = candidate.path; - if (typeof path !== "string") continue; - const queryStart = path.indexOf("?"); - if (queryStart < 0) continue; - const query = path.slice(queryStart + 1); - for (const [key, queryValue] of parseQueryEntries(query)) { - const keyRisk = getCustomWidgetCredentialKeyRisk(key); - if (keyRisk === "strong" && queryValue.length > 0 && !isHarmlessCustomWidgetCredentialSetting(queryValue) || containsCustomWidgetCredentialLiteral(queryValue)) { - ctx.addIssue({ - code: "custom", - path: ["requests", requestId, "path"], - message: "Request query credentials must use source authentication" - }); - break; - } - } - } -} -function inspectUrlQuery(value, path, label, ctx) { - if (typeof value !== "string" || !URL.canParse(value)) return; - const url2 = new URL(value); - if (parseQueryEntries(url2.search).some( - ([key, queryValue]) => getCustomWidgetCredentialKeyRisk(key) === "strong" && queryValue.length > 0 || containsCustomWidgetCredentialLiteral(queryValue) - )) { - ctx.addIssue({ code: "custom", path, message: `${label} cannot contain credentials` }); - } -} -function parseQueryEntries(search) { - const query = search.startsWith("?") ? search.slice(1) : search; - if (!query) return []; - return query.split("&").map((entry) => { - const separatorIndex = entry.indexOf("="); - const key = separatorIndex < 0 ? entry : entry.slice(0, separatorIndex); - const value = separatorIndex < 0 ? "" : entry.slice(separatorIndex + 1); - return [decodeQueryPart(key), decodeQueryPart(value)]; - }); -} -function decodeQueryPart(value) { - try { - return decodeURIComponent(value.replaceAll("+", " ")); - } catch (e) { - return value; - } -} -function getCustomWidgetCredentialKeyRisk(key) { - const normalized = key.replace(/([a-z0-9])([A-Z])/gu, "$1 $2").replace(/[^A-Za-z0-9]+/gu, " ").trim().toLowerCase(); - if (!normalized) return null; - const phrases = [ - "authorization", - "authentication", - "auth", - "credential", - "credentials", - "api key", - "api keys", - "password", - "passwords", - "passwd", - "passwds", - "secret", - "secrets", - "token", - "tokens", - "access token", - "access tokens", - "access key", - "access keys", - "refresh token", - "refresh tokens", - "client secret", - "client secrets", - "private key", - "private keys", - "signing key", - "signing keys" - ]; - if (phrases.some((phrase) => normalized === phrase || normalized.endsWith(` ${phrase}`))) return "strong"; - return normalized === "key" || normalized.endsWith(" key") || normalized === "keys" || normalized.endsWith(" keys") ? "ambiguous" : null; -} -function isHarmlessCustomWidgetCredentialSetting(value) { - if (value === null || value === void 0 || value === "" || typeof value === "boolean") return true; - return typeof value === "string" && harmlessCredentialSettings.has(value.trim().toLowerCase()); -} -function containsCustomWidgetCredentialLiteral(value) { - return redactCustomWidgetCredentialLiterals(value) !== value; -} -function redactCustomWidgetCredentialLiterals(value) { - return value.replace(commonCredentialLiteralPattern, "[REDACTED]").replace( - authorizationSchemePattern, - (match, scheme, separator, quote, candidate) => isHarmlessCustomWidgetCredentialSetting(candidate) ? match : `${scheme}${separator}${quote}[REDACTED]` - ).replace( - credentialAssignmentPattern, - (match, key, separator, candidate) => isHarmlessCustomWidgetCredentialSetting(candidate) ? match : `${key}${separator}[REDACTED]` - ); -} -function isSchemaAuthenticationControl(path) { - return path.length === 3 && path[2] === "auth" && (path[0] === "sources" || path[0] === "requests") && typeof path[1] === "string"; -} -function hasCredentialFieldValue(value) { - if (value === null || value === void 0 || value === "") return false; - return true; -} -function validatePrototypeKeys(value, ctx) { - walk(value, [], ctx); -} -function walk(value, path, ctx) { - if (Array.isArray(value)) return value.forEach((entry, index) => walk(entry, [...path, index], ctx)); - if (!value || typeof value !== "object") return; - for (const [key, child] of Object.entries(value)) { - if (["__proto__", "prototype", "constructor"].includes(key)) - ctx.addIssue({ code: "custom", path: [...path, key], message: "Unsafe object key" }); - walk(child, [...path, key], ctx); - } -} - -// packages/custom-widgets/src/core/schema-types.ts -var customWidgetMethods = ["GET", "POST", "PUT", "DELETE", "PATCH"]; -var customWidgetSecretKinds = ["apiKey", "username", "password"]; - -// packages/custom-widgets/src/core/url-policy.ts -var forbiddenUnicodeCodePointRanges = [ - [0, 32], - [127, 160], - [5760, 5760], - [8192, 8207], - [8232, 8239], - [8287, 8303], - [12288, 12288], - [65279, 65279] -]; -function getCustomWidgetHttpUrlIssue(value) { - if (hasForbiddenUrlCharacter(value) || value.includes("\\")) return "invalid"; - if (!URL.canParse(value)) return "invalid"; - let url2; - try { - url2 = new URL(value); - } catch (e) { - return "invalid"; - } - if (url2.protocol !== "http:" && url2.protocol !== "https:") return "protocol"; - const authority = getRawAuthority(value); - if (authority === null) return "invalid"; - if (authority.includes("@") || url2.username || url2.password) return "credentials"; - if (authority.includes("%") || /[。.。]/u.test(authority)) return "invalid"; - const hostAndPort = splitHostAndPort(authority); - if (!hostAndPort || !hasCanonicalPort(hostAndPort.port)) return "invalid"; - const rawHostname = withoutTrailingRootDot(hostAndPort.hostname); - const parsedHostname = withoutTrailingRootDot(url2.hostname); - if (!rawHostname || !hasCanonicalParsedHostname(parsedHostname)) return "invalid"; - if (rawHostname.startsWith("[") && parsedHostname.startsWith("[") && !rawHostname.includes(".") && rawHostname.toLowerCase() !== parsedHostname) { - return "invalid"; - } - if (looksNumeric(rawHostname) && !isStrictIpv4(rawHostname)) return "invalid"; - if (isStrictIpv4(parsedHostname) && rawHostname !== parsedHostname) return "invalid"; - return null; -} -function getRawAuthority(value) { - var _a5; - const match = value.match(/^[A-Za-z][A-Za-z0-9+.-]*:\/\/([^/?#]*)/u); - return (_a5 = match == null ? void 0 : match[1]) != null ? _a5 : null; -} -function splitHostAndPort(authority) { - if (authority.startsWith("[")) { - const closingBracket = authority.indexOf("]"); - if (closingBracket < 0) return null; - const hostname3 = authority.slice(0, closingBracket + 1); - const suffix = authority.slice(closingBracket + 1); - if (suffix && !suffix.startsWith(":")) return null; - return { hostname: hostname3, port: suffix ? suffix.slice(1) : "" }; - } - const firstColon = authority.indexOf(":"); - if (firstColon !== authority.lastIndexOf(":")) return null; - return { - hostname: firstColon < 0 ? authority : authority.slice(0, firstColon), - port: firstColon < 0 ? "" : authority.slice(firstColon + 1) - }; -} -function hasCanonicalPort(value) { - if (!value) return true; - if (!/^(?:0|[1-9]\d{0,4})$/u.test(value)) return false; - return Number(value) <= 65535; -} -function hasCanonicalParsedHostname(value) { - if (value.startsWith("[") && value.endsWith("]")) return true; - if (!value || value.length > 253 || !/^[A-Za-z0-9._-]+$/u.test(value)) return false; - return value.split(".").every((label) => Boolean(label) && label.length <= 63 && !label.startsWith("-") && !label.endsWith("-")); -} -function looksNumeric(value) { - const parts = value.split("."); - return parts.every((part) => /^(?:\d+|0[xX][0-9A-Fa-f]+)$/u.test(part)); -} -function isStrictIpv4(value) { - const parts = value.split("."); - return parts.length === 4 && parts.every((part) => /^(?:0|[1-9]\d{0,2})$/u.test(part) && Number(part) <= 255); -} -function withoutTrailingRootDot(value) { - return value.endsWith(".") ? value.slice(0, -1) : value; -} -function hasForbiddenUrlCharacter(value) { - return [...value].some((character) => { - var _a5; - const codePoint = (_a5 = character.codePointAt(0)) != null ? _a5 : 0; - return forbiddenUnicodeCodePointRanges.some(([minimum, maximum]) => codePoint >= minimum && codePoint <= maximum); - }); -} - -// packages/custom-widgets/src/core/request-schema.ts -var customJsxNetworkScopes = ["public", "private", "loopback"]; -var customWidgetIdentifierSchema = external_exports.string().min(1).max(64).regex(/^[A-Za-z][A-Za-z0-9_-]*$/u, "IDs must start with a letter and contain letters, numbers, - or _"); -var headerNameSchema = external_exports.string().min(1).max(256).regex(/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/u, "Header names must be valid HTTP tokens"); -var authSchema = external_exports.union([ - external_exports.enum(["none", "bearer", "basic"]), - external_exports.strictObject({ type: external_exports.literal("apiKeyHeader"), name: headerNameSchema }), - external_exports.strictObject({ type: external_exports.literal("apiKeyQuery"), name: external_exports.string().trim().min(1).max(256) }) -]); -function getCustomWidgetSourceUrlIssue(value) { - const issue2 = getCustomWidgetHttpUrlIssue(value); - if (issue2) return issue2; - const url2 = new URL(value); - if (url2.search || url2.hash) return "queryOrFragment"; - return null; -} -var sourceUrlIssueMessages = { - invalid: "Must be a valid URL", - protocol: "API sources must use HTTP or HTTPS", - credentials: "Credentials must not be embedded in an API source URL", - queryOrFragment: "API source URLs cannot contain a query string or fragment" -}; -var customWidgetSourceSchema = external_exports.strictObject({ - name: external_exports.string().trim().min(1).max(128).optional(), - baseUrl: external_exports.string().superRefine((value, ctx) => { - const issue2 = getCustomWidgetSourceUrlIssue(value); - if (issue2) ctx.addIssue({ code: "custom", message: sourceUrlIssueMessages[issue2] }); - }).url().max(2048), - networkScope: external_exports.enum(customJsxNetworkScopes), - auth: authSchema.default("none") -}); -var customWidgetSourcesSchema = external_exports.record(customWidgetIdentifierSchema, customWidgetSourceSchema).refine((sources) => Object.keys(sources).length <= 8, "A widget can use at most 8 API sources").refine((sources) => Object.hasOwn(sources, "default"), "A widget must define a default API source"); -var optionReferenceSchema = external_exports.strictObject({ $option: customWidgetIdentifierSchema }); -var parameterReferenceSchema = external_exports.strictObject({ $param: customWidgetIdentifierSchema }); -var boundValueSchema = external_exports.lazy( - () => external_exports.union([ - external_exports.null(), - external_exports.string(), - external_exports.number().finite(), - external_exports.boolean(), - optionReferenceSchema, - parameterReferenceSchema, - external_exports.array(boundValueSchema), - external_exports.record(external_exports.string(), boundValueSchema) - ]) -); -var reservedRequestHeaders = /* @__PURE__ */ new Set([ - "authorization", - "connection", - "content-length", - "cookie", - "expect", - "forwarded", - "host", - "keep-alive", - "proxy-authenticate", - "proxy-authorization", - "te", - "trailer", - "transfer-encoding", - "upgrade", - "via" -]); -var headersSchema = external_exports.record(headerNameSchema, external_exports.string().max(8192)).refine((headers) => Object.keys(headers).length <= 32, "A request can declare at most 32 headers").refine( - (headers) => Object.keys(headers).every((name) => { - const normalized = name.toLowerCase(); - return !reservedRequestHeaders.has(normalized) && !normalized.startsWith("proxy-") && !normalized.startsWith("sec-") && !normalized.startsWith("x-forwarded-"); - }), - "Headers cannot override authentication, cookies, routing, forwarding, proxy, or hop-by-hop headers" -).refine( - (headers) => Object.keys(headers).every((name) => !/(?:api[-_]?key|authorization|password|secret|token)/iu.test(name)), - "Credential headers must be configured through source authentication" -); -var confirmationSchema = external_exports.union([ - external_exports.string().trim().min(1).max(512), - external_exports.strictObject({ - title: external_exports.string().trim().min(1).max(128), - message: external_exports.string().trim().min(1).max(512), - confirmLabel: external_exports.string().trim().min(1).max(64).optional(), - destructive: external_exports.boolean().optional() - }) -]); -var customJsxRequestSchema = external_exports.strictObject({ - source: customWidgetIdentifierSchema.default("default"), - kind: external_exports.enum(["query", "action"]).default("query"), - method: external_exports.enum(customWidgetMethods).default("GET"), - path: external_exports.string().min(1).max(2048).startsWith("/").refine((path) => !path.startsWith("//"), "Request paths must be same-origin").refine((path) => !path.includes("\\"), "Request paths cannot contain backslashes").refine((path) => !path.includes("#"), "Request paths cannot contain URL fragments").refine( - (path) => !/[{}]/u.test(path.replaceAll(/\{(?:option|param):[A-Za-z][A-Za-z0-9_-]*\}/gu, "")), - "Request paths contain an invalid placeholder; use {option:name} or {param:name}" - ), - trigger: external_exports.enum(["load", "manual"]).optional(), - query: external_exports.record(external_exports.string().min(1).max(256), boundValueSchema).optional(), - body: boundValueSchema.optional(), - headers: headersSchema.optional(), - auth: external_exports.enum(["inherit", "none"]).default("inherit"), - permission: external_exports.enum(["view", "modify", "full"]).optional(), - cacheSeconds: external_exports.number().int().min(0).max(3600).optional(), - confirmation: confirmationSchema.optional(), - invalidates: external_exports.array(customWidgetIdentifierSchema).max(32).optional() -}).superRefine((request, context) => { - if (request.method === "DELETE" && request.kind !== "action") { - context.addIssue({ - code: "custom", - path: ["kind"], - message: "DELETE requests must be manual actions" - }); - } -}).transform((request) => { - var _a5, _b; - const confirmation = request.method === "DELETE" && request.confirmation === void 0 ? { title: "Confirm action", message: "Are you sure?", destructive: true } : request.confirmation; - return __spreadValues(__spreadProps(__spreadValues({}, request), { - trigger: request.kind === "action" ? "manual" : (_a5 = request.trigger) != null ? _a5 : "load", - permission: request.method === "DELETE" ? "full" : (_b = request.permission) != null ? _b : request.kind === "action" ? "modify" : "view" - }), confirmation === void 0 ? {} : { confirmation }); -}); -var customWidgetRequestsSchema = external_exports.record(customWidgetIdentifierSchema, customJsxRequestSchema).refine((requests) => Object.keys(requests).length <= 64, "A widget can define at most 64 requests"); -var pathReferencePattern = /\{(option|param):([A-Za-z][A-Za-z0-9_-]*)\}/gu; -function collectCustomWidgetRequestReferences(request) { - const references = { options: /* @__PURE__ */ new Set(), params: /* @__PURE__ */ new Set() }; - for (const match of request.path.matchAll(pathReferencePattern)) { - const name = match[2]; - if (name) references[match[1] === "option" ? "options" : "params"].add(name); - } - collectBoundValueReferences(request.query, references); - collectBoundValueReferences(request.body, references); - return references; -} -function collectBoundValueReferences(value, references) { - var _a5, _b; - if (Array.isArray(value)) { - value.forEach((entry) => collectBoundValueReferences(entry, references)); - return; - } - if (value === null || typeof value !== "object") return; - const entries = Object.entries(value); - if (entries.length === 1 && ((_a5 = entries[0]) == null ? void 0 : _a5[0]) === "$option" && typeof entries[0][1] === "string") { - references.options.add(entries[0][1]); - return; - } - if (entries.length === 1 && ((_b = entries[0]) == null ? void 0 : _b[0]) === "$param" && typeof entries[0][1] === "string") { - references.params.add(entries[0][1]); - return; - } - entries.forEach(([, entry]) => collectBoundValueReferences(entry, references)); -} - -// packages/custom-widgets/src/core/options-schema.ts -var customWidgetOptionControls = [ - "text", - "textarea", - "number", - "switch", - "select", - "multiSelect", - "slider", - "date", - "time", - "color", - "icon", - "url", - "duration", - "timeZone", - "json" -]; -var choiceSchema = external_exports.strictObject({ - label: external_exports.string().trim().min(1).max(128), - value: external_exports.union([external_exports.string(), external_exports.number().finite()]) -}); -var choicesFromSchema = external_exports.strictObject({ - request: customWidgetIdentifierSchema, - itemsPath: external_exports.preprocess( - (value) => typeof value === "string" && value.trim() === "" ? void 0 : value, - external_exports.string().trim().min(1).optional() - ), - valuePath: external_exports.string().trim().min(1), - labelPath: external_exports.string().trim().min(1) -}); -var customWidgetOptionSchema = external_exports.strictObject({ - label: external_exports.string().trim().min(1).max(128), - description: external_exports.string().max(512).optional(), - control: external_exports.enum(customWidgetOptionControls), - default: external_exports.json(), - choices: external_exports.array(choiceSchema).min(1).max(100).optional(), - choicesFrom: choicesFromSchema.optional(), - min: external_exports.number().finite().optional(), - max: external_exports.number().finite().optional(), - step: external_exports.number().finite().positive().optional(), - advanced: external_exports.boolean().optional(), - group: external_exports.string().trim().min(1).max(128).optional() -}).superRefine((option, ctx) => { - const issue2 = getCustomWidgetOptionValueIssue(option, option.default); - if (issue2) ctx.addIssue({ code: "custom", path: ["default"], message: issue2 }); - if (option.min !== void 0 && option.max !== void 0 && option.min > option.max) { - ctx.addIssue({ code: "custom", path: ["min"], message: "Minimum cannot be greater than maximum" }); - } - if ((option.choices || option.choicesFrom) && !["select", "multiSelect"].includes(option.control)) { - ctx.addIssue({ code: "custom", path: ["choices"], message: "Choices require a select or multiSelect control" }); - } - if (option.choices && option.choicesFrom) { - ctx.addIssue({ - code: "custom", - path: ["choicesFrom"], - message: "Use static choices or dynamic choices, not both" - }); - } - if (option.choices && new Set(option.choices.map((choice) => String(choice.value))).size !== option.choices.length) { - ctx.addIssue({ code: "custom", path: ["choices"], message: "Choice values must be unique" }); - } -}); -var customWidgetOptionsSchema = external_exports.record(customWidgetIdentifierSchema, customWidgetOptionSchema).refine((options) => Object.keys(options).length <= 64, "A widget can define at most 64 options").default({}); -function getCustomWidgetOptionValueIssue(option, value) { - if (["number", "slider", "duration"].includes(option.control)) { - if (typeof value !== "number" || !Number.isFinite(value)) return "Expected a number"; - if (option.min !== void 0 && value < option.min) return `Must be at least ${option.min}`; - if (option.max !== void 0 && value > option.max) return `Must be at most ${option.max}`; - } else if (option.control === "switch") { - if (typeof value !== "boolean") return "Expected a boolean"; - } else if (option.control === "multiSelect") { - if (!Array.isArray(value) || value.some((entry) => !["string", "number"].includes(typeof entry))) - return "Expected a list of choices"; - } else if (option.control !== "json" && typeof value !== "string") return "Expected text"; - if (option.control === "url" && typeof value === "string" && value && !URL.canParse(value)) - return "Must be a valid URL"; - if (option.choices && (option.control === "select" || option.control === "multiSelect")) { - const allowed = option.choices.map((choice) => choice.value); - const values = Array.isArray(value) ? value : [value]; - if (values.some((entry) => !allowed.some((choice) => Object.is(choice, entry)))) - return "Value is not one of the allowed choices"; - } - return null; -} - -// packages/custom-widgets/src/core/custom-jsx-schema.ts -var CUSTOM_WIDGET_SCHEMA = "homarr-custom-widget-v2"; -var customWidgetBindingIdentifierSchema = external_exports.string().min(1).max(64).regex( - CUSTOM_JSX_BINDING_IDENTIFIER_PATTERN, - "Binding names must start with a letter and contain letters, numbers, - or _" -); -var customJsxTemplateSchema = external_exports.string().min(1).max(5e4).superRefine((template, ctx) => { - for (const diagnostic of validateCustomJsxTemplate(template)) { - if (diagnostic.severity === "error") { - ctx.addIssue({ - code: "custom", - message: `${diagnostic.message} (line ${diagnostic.line}, column ${diagnostic.column})` - }); - } - } -}); -var customWidgetSecretInputSchema = external_exports.strictObject({ - sourceId: customWidgetIdentifierSchema, - kind: external_exports.enum(customWidgetSecretKinds), - value: external_exports.string().min(1).max(8192) -}); -var customWidgetSecretsInputSchema = external_exports.array(customWidgetSecretInputSchema).max(24).superRefine((secrets, ctx) => { - const identities = /* @__PURE__ */ new Set(); - secrets.forEach((secret, index) => { - const identity = `${secret.sourceId}:${secret.kind}`; - if (identities.has(identity)) - ctx.addIssue({ code: "custom", path: [index], message: "A widget secret can only be supplied once" }); - identities.add(identity); - }); -}); -var customWidgetDefinitionSchema = external_exports.strictObject({ - $schema: external_exports.literal(CUSTOM_WIDGET_SCHEMA), - name: external_exports.string().trim().min(1).max(128), - description: external_exports.string().max(512).optional(), - iconUrl: external_exports.string().refine( - (value) => getCustomWidgetHttpUrlIssue(value) === null, - "Widget icons must use an unambiguous HTTP or HTTPS URL without embedded credentials" - ).url().max(2048).optional(), - sources: customWidgetSourcesSchema, - requests: customWidgetRequestsSchema, - options: customWidgetOptionsSchema, - template: customJsxTemplateSchema -}).superRefine((definition, ctx) => { - validateRequests(definition, ctx); - validateCaseInsensitiveSourceIds(definition.sources, ctx); - validateTemplateRequests(definition.template, definition.requests, ctx); - validateCredentialFreeExport(definition, ctx); - validatePrototypeKeys(definition, ctx); -}); -function validateRequests(definition, ctx) { - var _a5, _b, _c, _d; - for (const [requestId, request] of Object.entries(definition.requests)) { - if (!definition.sources[request.source]) { - ctx.addIssue({ - code: "custom", - path: ["requests", requestId, "source"], - message: `Unknown source '${request.source}'` - }); - } - const references = collectCustomWidgetRequestReferences(request); - for (const optionName of references.options) { - if (!definition.options[optionName]) { - ctx.addIssue({ - code: "custom", - path: ["requests", requestId], - message: `Unknown widget option '${optionName}'` - }); - } - } - if (request.trigger === "load" && references.params.size > 0) { - ctx.addIssue({ - code: "custom", - path: ["requests", requestId], - message: `Load requests cannot use invocation parameters: ${[...references.params].join(", ")}` - }); - } - (_a5 = request.invalidates) == null ? void 0 : _a5.forEach((target, index) => { - var _a6; - if (((_a6 = definition.requests[target]) == null ? void 0 : _a6.kind) !== "query") { - ctx.addIssue({ - code: "custom", - path: ["requests", requestId, "invalidates", index], - message: `Invalidation target '${target}' must be a query` - }); - } - }); - } - for (const [optionName, option] of Object.entries(definition.options)) { - const requestId = (_b = option.choicesFrom) == null ? void 0 : _b.request; - if (requestId && ((_c = definition.requests[requestId]) == null ? void 0 : _c.kind) !== "query") { - ctx.addIssue({ - code: "custom", - path: ["options", optionName, "choicesFrom", "request"], - message: `Dynamic choices require a query named '${requestId}'` - }); - } - if (requestId) { - const request = definition.requests[requestId]; - const references = request ? collectCustomWidgetRequestReferences(request) : null; - if (request && (request.trigger !== "load" || ((_d = references == null ? void 0 : references.params.size) != null ? _d : 0) > 0)) { - ctx.addIssue({ - code: "custom", - path: ["options", optionName, "choicesFrom", "request"], - message: "Dynamic choices require a load query without invocation parameters" - }); - } - } - } -} -function validateCaseInsensitiveSourceIds(sources, ctx) { - const seen = /* @__PURE__ */ new Map(); - for (const sourceId of Object.keys(sources)) { - const normalized = sourceId.toLowerCase(); - const existing = seen.get(normalized); - if (existing) { - ctx.addIssue({ - code: "custom", - path: ["sources", sourceId], - message: `Source ID '${sourceId}' conflicts case-insensitively with '${existing}'` - }); - } else { - seen.set(normalized, sourceId); - } - } -} -function validateTemplateRequests(template, requests, ctx) { - var _a5, _b; - for (const match of template.matchAll(/<(SubFetch|ActionButton|ToggleSwitch)\b([^>]*)>/gu)) { - const component = match[1]; - const attributes = (_a5 = match[2]) != null ? _a5 : ""; - const idMatch = attributes.match(/\brequestId\s*=\s*(?:"([^"]+)"|'([^']+)')/u); - const requestId = (_b = idMatch == null ? void 0 : idMatch[1]) != null ? _b : idMatch == null ? void 0 : idMatch[2]; - if (!requestId) { - ctx.addIssue({ code: "custom", path: ["template"], message: `${component} must use a literal requestId` }); - continue; - } - const request = requests[requestId]; - const expectedKind = component === "SubFetch" ? "query" : "action"; - if (!request) - ctx.addIssue({ - code: "custom", - path: ["template"], - message: `${component} references unknown request '${requestId}'` - }); - else if (request.kind !== expectedKind) - ctx.addIssue({ code: "custom", path: ["template"], message: `${component} requires a ${expectedKind} request` }); - else if (component === "SubFetch" && request.trigger !== "manual") - ctx.addIssue({ code: "custom", path: ["template"], message: `SubFetch requires '${requestId}' to be manual` }); - } -} -var customWidgetCreateSchema = customWidgetDefinitionSchema.safeExtend({ - secrets: customWidgetSecretsInputSchema.default([]) -}); -var customWidgetUpdateSchema = external_exports.strictObject(customWidgetDefinitionSchema.shape).partial().extend({ id: external_exports.string().min(1), secrets: customWidgetSecretsInputSchema.optional() }); - -// packages/workshop/src/pocketbase-url.ts -var import_tr46 = __toESM(require_tr46(), 1); -var PocketBaseUrl = class _PocketBaseUrl { - constructor(value) { - __publicField(this, "protocol"); - __publicField(this, "username"); - __publicField(this, "password"); - __publicField(this, "hostname"); - __publicField(this, "port"); - __publicField(this, "search"); - __publicField(this, "hash"); - __publicField(this, "origin"); - __publicField(this, "searchParams"); - if (typeof value !== "string" || hasForbiddenUrlCharacter2(value) || value.includes("\\")) { - throw new TypeError("Invalid URL"); - } - const scheme = value.match(/^([A-Za-z][A-Za-z0-9+.-]*):/u); - if (!(scheme == null ? void 0 : scheme[1])) throw new TypeError("Invalid URL"); - this.protocol = `${scheme[1].toLowerCase()}:`; - const afterScheme = value.slice(scheme[0].length); - const hashIndex = afterScheme.indexOf("#"); - const withoutHash = hashIndex < 0 ? afterScheme : afterScheme.slice(0, hashIndex); - this.hash = hashIndex < 0 ? "" : afterScheme.slice(hashIndex); - const searchIndex = withoutHash.indexOf("?"); - const withoutSearch = searchIndex < 0 ? withoutHash : withoutHash.slice(0, searchIndex); - this.search = searchIndex < 0 ? "" : withoutHash.slice(searchIndex); - this.searchParams = createSearchParams(this.search); - const requiresAuthority = this.protocol === "http:" || this.protocol === "https:" || this.protocol === "ftp:"; - if (!withoutSearch.startsWith("//")) { - if (requiresAuthority) throw new TypeError("Invalid URL"); - this.username = ""; - this.password = ""; - this.hostname = ""; - this.port = ""; - this.origin = "null"; - return; - } - const authorityAndPath = withoutSearch.slice(2); - const slashIndex = authorityAndPath.indexOf("/"); - const authority = slashIndex < 0 ? authorityAndPath : authorityAndPath.slice(0, slashIndex); - const parsed = parseAuthority(authority); - this.username = parsed.username; - this.password = parsed.password; - this.hostname = parsed.hostname; - this.port = parsed.port; - this.origin = `${this.protocol}//${this.hostname}${this.port ? `:${this.port}` : ""}`; - } - static canParse(value) { - try { - const parsed = new _PocketBaseUrl(value); - void parsed; - return true; - } catch (e) { - return false; - } - } -}; -function installPocketBaseUrlPolyfill() { - const runtime = globalThis; - if (typeof runtime.URL === "undefined") runtime.URL = PocketBaseUrl; -} -function parseAuthority(authority) { - if (!authority || /[。.。]/u.test(authority)) throw new TypeError("Invalid URL"); - const atIndex = authority.lastIndexOf("@"); - const credentials = atIndex < 0 ? "" : authority.slice(0, atIndex); - const hostAndPort = atIndex < 0 ? authority : authority.slice(atIndex + 1); - if (!hostAndPort) throw new TypeError("Invalid URL"); - const credentialSeparator = credentials.indexOf(":"); - const username = credentialSeparator < 0 ? credentials : credentials.slice(0, credentialSeparator); - const password = credentialSeparator < 0 ? "" : credentials.slice(credentialSeparator + 1); - let hostname3; - let port = ""; - if (hostAndPort.startsWith("[")) { - const closeIndex = hostAndPort.indexOf("]"); - if (closeIndex < 0) throw new TypeError("Invalid URL"); - const address = hostAndPort.slice(1, closeIndex); - const normalizedAddress = normalizeIpv6(address); - if (normalizedAddress === null) throw new TypeError("Invalid URL"); - hostname3 = `[${normalizedAddress}]`; - const suffix = hostAndPort.slice(closeIndex + 1); - if (suffix) { - if (!suffix.startsWith(":")) throw new TypeError("Invalid URL"); - port = suffix.length === 1 ? "" : validatePort(suffix.slice(1)); - } - } else { - const firstColon = hostAndPort.indexOf(":"); - const lastColon = hostAndPort.lastIndexOf(":"); - if (firstColon !== lastColon) throw new TypeError("Invalid URL"); - hostname3 = firstColon < 0 ? hostAndPort : hostAndPort.slice(0, firstColon); - const portValue = firstColon < 0 ? "" : hostAndPort.slice(firstColon + 1); - port = portValue ? validatePort(portValue) : ""; - const normalizedHostname = normalizeHostname(hostname3); - if (!normalizedHostname) throw new TypeError("Invalid URL"); - hostname3 = normalizedHostname; - } - return { username, password, hostname: hostname3.toLowerCase(), port }; -} -function validatePort(value) { - if (!/^(?:0|[1-9]\d{0,4})$/u.test(value)) throw new TypeError("Invalid URL"); - const port = Number(value); - if (!Number.isInteger(port) || port > 65535) throw new TypeError("Invalid URL"); - return String(port); -} -function normalizeHostname(value) { - const ascii = (0, import_tr46.toASCII)(value, { - checkHyphens: false, - checkBidi: true, - checkJoiners: true, - useSTD3ASCIIRules: false, - transitionalProcessing: false, - verifyDNSLength: false, - ignoreInvalidPunycode: false - }); - if (!ascii || hasForbiddenUrlCharacter2(ascii) || /[#%/:<>?@[\\\]^|]/u.test(ascii)) return null; - const candidate = ascii.endsWith(".") ? ascii.slice(0, -1) : ascii; - if (!candidate || candidate.length > 253 || !/^[A-Za-z0-9._-]+$/u.test(candidate)) return null; - if (looksNumeric2(candidate)) { - const rawCandidate = value.endsWith(".") ? value.slice(0, -1) : value; - return isStrictIpv42(candidate) && rawCandidate === candidate ? ascii.toLowerCase() : null; - } - const isValid = candidate.split(".").every((part) => Boolean(part) && part.length <= 63 && !part.startsWith("-") && !part.endsWith("-")); - return isValid ? ascii.toLowerCase() : null; -} -function hasForbiddenUrlCharacter2(value) { - return [...value].some((character) => { - var _a5; - const code = (_a5 = character.codePointAt(0)) != null ? _a5 : 0; - return code <= 32 || code >= 127 && code <= 160 || code === 5760 || code >= 8192 && code <= 8207 || code >= 8232 && code <= 8239 || code >= 8287 && code <= 8303 || code === 12288 || code === 65279; - }); -} -function normalizeIpv6(value) { - if (value.includes("%")) return null; - const address = value; - if (!address.includes(":") || address.includes(":::") || /[^0-9A-Fa-f:.]/u.test(address)) return null; - if (address.indexOf("::") !== address.lastIndexOf("::")) return null; - if (address.startsWith(":") && !address.startsWith("::") || address.endsWith(":") && !address.endsWith("::")) { - return null; - } - const hasCompression = address.includes("::"); - const [left = "", right = ""] = hasCompression ? address.split("::") : [address, ""]; - if (hasCompression && left.includes(".")) return null; - const leftGroups = parseIpv6Groups(left); - const rightGroups = parseIpv6Groups(right); - if (leftGroups === null || rightGroups === null) return null; - const explicitGroupCount = leftGroups.length + rightGroups.length; - if (!hasCompression && explicitGroupCount !== 8 || hasCompression && explicitGroupCount >= 8) return null; - const groups = hasCompression ? [...leftGroups, ...Array.from({ length: 8 - explicitGroupCount }, () => 0), ...rightGroups] : leftGroups; - let bestStart = -1; - let bestLength = 1; - for (let index = 0; index < groups.length; ) { - if (groups[index] !== 0) { - index += 1; - continue; - } - let end = index + 1; - while (end < groups.length && groups[end] === 0) end += 1; - if (end - index > bestLength) { - bestStart = index; - bestLength = end - index; - } - index = end; - } - const hexadecimalGroups = groups.map((group) => group.toString(16)); - if (bestStart < 0) return hexadecimalGroups.join(":"); - const before = hexadecimalGroups.slice(0, bestStart).join(":"); - const after = hexadecimalGroups.slice(bestStart + bestLength).join(":"); - return `${before}::${after}`; -} -function parseIpv6Groups(value) { - var _a5, _b, _c, _d; - if (!value) return []; - const groups = value.split(":"); - const parsed = []; - for (const [index, group] of groups.entries()) { - if (group.includes(".")) { - if (index !== groups.length - 1 || !isStrictIpv42(group)) return null; - const parts = group.split(".").map(Number); - parsed.push(((_a5 = parts[0]) != null ? _a5 : 0) << 8 | ((_b = parts[1]) != null ? _b : 0), ((_c = parts[2]) != null ? _c : 0) << 8 | ((_d = parts[3]) != null ? _d : 0)); - } else { - if (!/^[0-9A-Fa-f]{1,4}$/u.test(group)) return null; - parsed.push(Number.parseInt(group, 16)); - } - } - return parsed; -} -function isStrictIpv42(value) { - const parts = value.split("."); - return parts.length === 4 && parts.every((part) => /^(?:0|[1-9]\d{0,2})$/u.test(part) && Number(part) <= 255); -} -function looksNumeric2(value) { - return value.split(".").every((part) => /^(?:\d+|0[xX][0-9A-Fa-f]+)$/u.test(part)); -} -function createSearchParams(search) { - const keys = search ? search.slice(1).split("&").map((entry) => { - var _a5; - return (_a5 = entry.split("=", 1)[0]) != null ? _a5 : ""; - }).map(decodeQueryPart2) : []; - return { keys: () => [...keys] }; -} -function decodeQueryPart2(value) { - try { - return decodeURIComponent(value.replaceAll("+", " ")); - } catch (e) { - return value; - } -} - -// packages/workshop/src/pocketbase-validator.ts -installPocketBaseUrlPolyfill(); -function validatePocketBaseWidget(content) { - let parsed; - try { - parsed = JSON.parse(content); - } catch (e) { - return { success: false, error: "Widget content must be valid JSON" }; - } - const result = customWidgetDefinitionSchema.safeParse(parsed); - if (!result.success) { - return { - success: false, - error: result.error.issues.slice(0, 5).map((issue2) => `${issue2.path.join(".") || "widget"}: ${issue2.message}`).join("\n") || "Invalid widget" - }; - } - return { success: true, content: JSON.stringify(result.data) }; -} diff --git a/apps/workshop/pb_hooks/widget-validator.js b/apps/workshop/pb_hooks/widget-validator.js deleted file mode 100644 index 12e6ad3fd..000000000 --- a/apps/workshop/pb_hooks/widget-validator.js +++ /dev/null @@ -1,11 +0,0 @@ -const { validatePocketBaseWidget } = require(`${__hooks}/widget-validator.bundle.cjs`); - -const validateWidgetManifest = (content) => { - const result = validatePocketBaseWidget(content); - if (!result.success) { - throw new BadRequestError(result.error); - } - return result.content; -}; - -module.exports = { validateWidgetManifest }; diff --git a/apps/workshop/pb_hooks/workshop-utils.js b/apps/workshop/pb_hooks/workshop-utils.js index f64f3d1a1..abca9ba98 100644 --- a/apps/workshop/pb_hooks/workshop-utils.js +++ b/apps/workshop/pb_hooks/workshop-utils.js @@ -1,35 +1,19 @@ -const CUSTOM_WIDGET_SCHEMA = "homarr-custom-widget-v2"; -const CUSTOM_CSS_SCHEMA = "homarr-custom-css-v1"; -const MAX_CSS_LENGTH = 16_384; -const MAX_CONTENT_LENGTH = 1_000_000; const GITHUB_USERNAME_PATTERN = /^[A-Za-z0-9](?:[A-Za-z0-9-]{0,37}[A-Za-z0-9])?$/; const rejectRequest = (message) => { throw new BadRequestError(message); }; -const validateAndNormalizeSubmission = (record) => { - const type = record.getString("type"); - const content = record.getString("content"); - if (!content || content.length > MAX_CONTENT_LENGTH) rejectRequest("Submission content is invalid"); - record.set("title", record.getString("title").trim()); - record.set("description", record.getString("description").trim()); - record.set("changelog", record.getString("changelog").trim()); - if (type === "customCss") { - if (!content.trim() || content.length > MAX_CSS_LENGTH) rejectRequest("Custom CSS is empty or too large"); - record.set("widgetSchema", CUSTOM_CSS_SCHEMA); - return; - } - if (type !== "customWidget") rejectRequest("Submission type is invalid"); - const { validateWidgetManifest } = require(`${__hooks}/widget-validator.js`); - record.set("content", validateWidgetManifest(content)); - record.set("widgetSchema", CUSTOM_WIDGET_SCHEMA); -}; - const normalizedIdentityText = (...values) => { for (const value of values) { if (typeof value !== "string") continue; - const normalized = value.replace(/[\u0000-\u001f\u007f]/g, "").trim(); + const normalized = [...value] + .filter((character) => { + const code = character.codePointAt(0) || 0; + return code > 31 && code !== 127; + }) + .join("") + .trim(); if (normalized) return normalized; } return ""; @@ -91,5 +75,4 @@ module.exports = { escapeHtml, rejectRequest, sendEmail, - validateAndNormalizeSubmission, }; diff --git a/apps/workshop/pb_hooks/workshop.pb.js b/apps/workshop/pb_hooks/workshop.pb.js index f0bcabc28..15ee6a9ec 100644 --- a/apps/workshop/pb_hooks/workshop.pb.js +++ b/apps/workshop/pb_hooks/workshop.pb.js @@ -68,20 +68,6 @@ onRecordUpdateRequest((event) => { }, "users"); onRecordCreateRequest((event) => { - try { - const { validateAndNormalizeSubmission } = require(`${__hooks}/workshop-utils.js`); - validateAndNormalizeSubmission(event.record); - } catch (error) { - console.log( - JSON.stringify({ - event: "workshop_submission_rejected", - operation: "create", - type: event.record.getString("type"), - errorName: error && error.name ? error.name : "ValidationError", - }), - ); - throw error; - } event.record.set("revision", 1); event.record.set("expectedRevision", 0); event.record.set("changelog", ""); @@ -90,27 +76,13 @@ onRecordCreateRequest((event) => { }, "submissions"); onRecordUpdateRequest((event) => { - const { rejectRequest, validateAndNormalizeSubmission } = require(`${__hooks}/workshop-utils.js`); + const { rejectRequest } = require(`${__hooks}/workshop-utils.js`); const original = event.record.original(); const currentRevision = original.getInt("revision"); const expectedRevision = event.record.getInt("expectedRevision"); if (!Number.isSafeInteger(expectedRevision) || expectedRevision < 1) { rejectRequest("Submission changed since it was read"); } - try { - validateAndNormalizeSubmission(event.record); - } catch (error) { - console.log( - JSON.stringify({ - event: "workshop_submission_rejected", - operation: "update", - submissionId: event.record.id, - type: event.record.getString("type"), - errorName: error && error.name ? error.name : "ValidationError", - }), - ); - throw error; - } event.record.set("expectedRevision", expectedRevision); event.record.set("revision", currentRevision + 1); event.next(); diff --git a/apps/workshop/test.sh b/apps/workshop/test.sh index 0aa6a8f23..cd96fcdc4 100644 --- a/apps/workshop/test.sh +++ b/apps/workshop/test.sh @@ -17,7 +17,6 @@ node apps/workshop/tests/workshop-rate-limit-migration.mjs node apps/workshop/tests/entrypoint-url.mjs node apps/workshop/tests/workshop-identity.mjs node apps/workshop/tests/workshop-oauth-hook.mjs -node scripts/build-workshop-validator.mjs cleanup() { if [ -n "$ROLLBACK_CONTAINER" ]; then @@ -87,27 +86,6 @@ docker compose -p "$WORKSHOP_TEST_PROJECT" -f apps/workshop/docker-compose.yml e WORKSHOP_TEST_URL="http://127.0.0.1:$WORKSHOP_TEST_PORT" node apps/workshop/tests/workshop.integration.mjs -# PocketBase rate limits use the client IP as the counter key. Run the -# differential corpus in restart-separated shards so the adversarial coverage -# can grow without weakening the production write limits. -for corpus_shard in 0 1; do - PB_EXPOSE_PORT="$WORKSHOP_TEST_PORT" docker compose -p "$WORKSHOP_TEST_PROJECT" \ - -f apps/workshop/docker-compose.yml restart workshop - for attempt in $(seq 1 60); do - if curl --fail --silent "http://127.0.0.1:$WORKSHOP_TEST_PORT/api/health" >/dev/null; then - break - fi - if [ "$attempt" -eq 60 ]; then - exit 1 - fi - sleep 1 - done - - WORKSHOP_TEST_URL="http://127.0.0.1:$WORKSHOP_TEST_PORT" \ - WORKSHOP_CORPUS_SHARD="$corpus_shard" WORKSHOP_CORPUS_SHARD_COUNT=2 pnpm exec tsx \ - apps/workshop/tests/workshop-validator-corpus.mts -done - for client_id in workshop-test-client workshop-rotated-client; do GITHUB_CLIENT_ID="$client_id" GITHUB_CLIENT_SECRET="workshop-test-secret" PB_EXPOSE_PORT="$WORKSHOP_TEST_PORT" \ docker compose -p "$WORKSHOP_TEST_PROJECT" -f apps/workshop/docker-compose.yml up -d --force-recreate workshop diff --git a/apps/workshop/tests/workshop-contracts.mjs b/apps/workshop/tests/workshop-contracts.mjs index 456b0819c..23bac8abf 100644 --- a/apps/workshop/tests/workshop-contracts.mjs +++ b/apps/workshop/tests/workshop-contracts.mjs @@ -9,25 +9,10 @@ if (typeof clientExport !== "string") throw new Error("Workshop client export is await access(resolve("packages/workshop", clientExport)); const hook = await read("apps/workshop/pb_hooks/workshop.pb.js"); -const hookUtils = await read("apps/workshop/pb_hooks/workshop-utils.js"); -const widgetValidator = await read("apps/workshop/pb_hooks/widget-validator.js"); -const canonicalWidgetValidator = await read("packages/workshop/src/pocketbase-validator.ts"); const dockerfile = await read("apps/workshop/Dockerfile"); -const schema = await read("packages/workshop/src/schema.ts"); const workshopApp = await read("apps/docs/src/components/workshop/WorkshopApp.tsx"); const workshopAdmin = await read("apps/docs/src/components/workshop/WorkshopAdmin.tsx"); const workshopDetail = await read("apps/docs/src/components/workshop/DetailPage.tsx"); -const constantValue = (source, name) => { - const match = source.match(new RegExp(`(?:export )?const ${name} = ([\\d_]+)`)); - if (!match?.[1]) throw new Error(`Workshop limit ${name} is missing or is not a numeric literal`); - return Number(match[1].replaceAll("_", "")); -}; -if (constantValue(hookUtils, "MAX_CSS_LENGTH") !== constantValue(schema, "MAX_WORKSHOP_CSS_LENGTH")) { - throw new Error("PocketBase and shared Workshop CSS limits must match"); -} -if (constantValue(hookUtils, "MAX_CONTENT_LENGTH") !== constantValue(schema, "MAX_WORKSHOP_CONTENT_LENGTH")) { - throw new Error("PocketBase and shared Workshop content limits must match"); -} if (!hook.includes("require(`${__hooks}/workshop-utils.js`)")) { throw new Error("Workshop handlers must load shared helpers inside their isolated PocketBase contexts"); } @@ -51,18 +36,27 @@ if ( if (!hook.includes("workshop_report_reopened") || !hook.includes("status = 'dismissed'")) { throw new Error("Workshop must permit a fresh report after a previous report was dismissed"); } -if ( - !widgetValidator.includes("widget-validator.bundle.cjs") || - !canonicalWidgetValidator.includes("customWidgetDefinitionSchema.safeParse") -) { - throw new Error("Workshop direct writes must use the bundled canonical Custom Widget validator"); +if (hook.includes("validateAndNormalizeSubmission") || hook.includes("workshop_submission_rejected")) { + throw new Error("PocketBase must not interpret or validate Workshop submission content"); +} +for (const removedValidator of [ + "apps/workshop/pb_hooks/widget-validator.js", + "apps/workshop/pb_hooks/widget-validator.bundle.cjs", + "packages/workshop/src/pocketbase-validator.ts", + "scripts/build-workshop-validator.mjs", +]) { + try { + await access(resolve(removedValidator)); + throw new Error(`Workshop validator artifact must stay removed: ${removedValidator}`); + } catch (error) { + if (error instanceof Error && error.message.startsWith("Workshop validator artifact")) throw error; + } } -await access(resolve("apps/workshop/pb_hooks/widget-validator.bundle.cjs")); if (!dockerfile.includes("WORKSHOP_REQUIRE_PUBLIC_ORIGIN=true")) { throw new Error("The production Workshop image must require an explicit public origin"); } -if (!dockerfile.includes("COPY --from=dependencies") || !dockerfile.includes("widget-validator.bundle.cjs")) { - throw new Error("The production Workshop image must copy the freshly generated canonical validator"); +if (dockerfile.includes("widget-validator") || dockerfile.includes("build-workshop-validator")) { + throw new Error("The Workshop image must not build or copy a submission validator"); } if (hook.includes('findAllRecords("users")') || !hook.includes('findRecordsByFilter("users"')) { throw new Error("Workshop report notifications must use a filtered, bounded administrator query"); diff --git a/apps/workshop/tests/workshop-validator-corpus.mts b/apps/workshop/tests/workshop-validator-corpus.mts deleted file mode 100644 index 0851f9897..000000000 --- a/apps/workshop/tests/workshop-validator-corpus.mts +++ /dev/null @@ -1,335 +0,0 @@ -import { - BUNDLED_CUSTOM_WIDGETS, - customWidgetDefinitionSchema, -} from "../../../packages/custom-widgets/src/core/index.ts"; - -const baseUrl = process.env.WORKSHOP_TEST_URL ?? "http://127.0.0.1:18090"; -const password = "WorkshopCorpus123!"; -const shard = Number(process.env.WORKSHOP_CORPUS_SHARD ?? "0"); -const shardCount = Number(process.env.WORKSHOP_CORPUS_SHARD_COUNT ?? "1"); -if (!Number.isInteger(shard) || !Number.isInteger(shardCount) || shard < 0 || shardCount < 1 || shard >= shardCount) { - throw new Error("Validator corpus shard configuration is invalid"); -} -const email = shardCount === 1 ? "workshop-corpus@example.invalid" : `workshop-corpus-${shard}@example.invalid`; - -async function request(path: string, init: RequestInit = {}) { - const response = await fetch(`${baseUrl}${path}`, { - ...init, - headers: { "content-type": "application/json", ...init.headers }, - }); - const body = (await response.json().catch(() => null)) as Record | null; - return { response, body }; -} - -const root = await request("/api/collections/_superusers/auth-with-password", { - method: "POST", - body: JSON.stringify({ identity: "workshop-test@example.invalid", password: "WorkshopLocalTest123!" }), -}); -if (!root.response.ok || typeof root.body?.token !== "string") throw new Error("Corpus superuser login failed"); -const rootHeaders = { authorization: `Bearer ${root.body.token}` }; - -const createdUser = await request("/api/collections/users/records", { - method: "POST", - headers: rootHeaders, - body: JSON.stringify({ - email, - emailVisibility: false, - verified: true, - password, - passwordConfirm: password, - displayName: "Validator Corpus", - }), -}); -if (!createdUser.response.ok || typeof createdUser.body?.id !== "string") { - throw new Error(`Corpus user creation failed: ${JSON.stringify(createdUser.body)}`); -} -const userId = createdUser.body.id; - -const signedIn = await request("/api/collections/users/auth-with-password", { - method: "POST", - body: JSON.stringify({ identity: email, password }), -}); -if (!signedIn.response.ok || typeof signedIn.body?.token !== "string") throw new Error("Corpus user login failed"); -const userHeaders = { authorization: `Bearer ${signedIn.body.token}` }; - -const bundled = BUNDLED_CUSTOM_WIDGETS.map(({ id, widget }) => ({ - name: `bundled:${id}`, - widget: structuredClone(widget) as Record, -})); -const base = structuredClone(bundled[0]?.widget); -if (!base) throw new Error("Bundled Custom Widget corpus is empty"); - -const asRecord = (value: unknown) => value as Record; -const withMutation = (mutate: (widget: Record) => void) => { - const widget = structuredClone(base) as Record; - mutate(widget); - return widget; -}; - -bundled.push( - { - name: "source:valid-port-zero", - widget: withMutation((widget) => { - asRecord(asRecord(widget.sources).default).baseUrl = "http://example.com:0"; - }), - }, - { - name: "source:valid-trailing-dot", - widget: withMutation((widget) => { - asRecord(asRecord(widget.sources).default).baseUrl = "https://example.com."; - }), - }, - { - name: "source:valid-idn", - widget: withMutation((widget) => { - asRecord(asRecord(widget.sources).default).baseUrl = "https://münich.example"; - }), - }, - { - name: "url:valid-ipv6-and-port", - widget: withMutation((widget) => { - asRecord(asRecord(widget.sources).default).baseUrl = "https://[2001:db8::1]:65535"; - widget.iconUrl = "https://[2001:db8::1]:65535/icon.svg"; - }), - }, - { - name: "request:valid-harmless-key-metadata", - widget: withMutation((widget) => { - const requestDefinition = asRecord(Object.values(asRecord(widget.requests))[0]); - requestDefinition.path = "/api/status?key=status&auth=none"; - requestDefinition.headers = { - Accept: "application/json", - "X-Api-Version": "2026-07", - "X-Feature-Key": "dashboard-layout", - }; - }), - }, -); - -const adversarial = [ - { - name: "manifest:unknown-secret-field", - widget: withMutation((widget) => { - widget.secrets = [{ value: "must-never-be-published" }]; - }), - }, - { - name: "source:embedded-credentials", - widget: withMutation((widget) => { - asRecord(asRecord(widget.sources).default).baseUrl = "https://user:password@example.com"; - }), - }, - { - name: "source:invalid-numeric-host", - widget: withMutation((widget) => { - asRecord(asRecord(widget.sources).default).baseUrl = "http://1.2.3.4.5"; - }), - }, - { - name: "source:invalid-numeric-leading-zero", - widget: withMutation((widget) => { - asRecord(asRecord(widget.sources).default).baseUrl = "http://09.0.0.1"; - }), - }, - { - name: "source:ambiguous-numeric-shorthand", - widget: withMutation((widget) => { - asRecord(asRecord(widget.sources).default).baseUrl = "http://127.1"; - }), - }, - { - name: "source:ambiguous-hexadecimal-ipv4", - widget: withMutation((widget) => { - asRecord(asRecord(widget.sources).default).baseUrl = "http://0x7f000001"; - }), - }, - { - name: "source:percent-encoded-host", - widget: withMutation((widget) => { - asRecord(asRecord(widget.sources).default).baseUrl = "https://%65xample.com"; - }), - }, - { - name: "source:backslash-normalization", - widget: withMutation((widget) => { - asRecord(asRecord(widget.sources).default).baseUrl = "https://example.com\\@attacker.invalid"; - }), - }, - { - name: "source:invalid-ipv6-zone", - widget: withMutation((widget) => { - asRecord(asRecord(widget.sources).default).baseUrl = "http://[fe80::1%25eth0]"; - }), - }, - { - name: "source:invalid-ipv6-embedded-ipv4", - widget: withMutation((widget) => { - asRecord(asRecord(widget.sources).default).baseUrl = "http://[::ffff:192.168.001.001]"; - }), - }, - { - name: "source:invalid-a-label", - widget: withMutation((widget) => { - asRecord(asRecord(widget.sources).default).baseUrl = "https://xn--a.example"; - }), - }, - { - name: "request:reserved-header", - widget: withMutation((widget) => { - const requestDefinition = asRecord(Object.values(asRecord(widget.requests))[0]); - requestDefinition.headers = { Authorization: "must-never-be-published" }; - }), - }, - { - name: "request:credential-in-body", - widget: withMutation((widget) => { - const requestDefinition = asRecord(Object.values(asRecord(widget.requests))[0]); - requestDefinition.body = { access_token: "must-never-be-published" }; - }), - }, - { - name: "request:credential-in-path-query", - widget: withMutation((widget) => { - const requestDefinition = asRecord(Object.values(asRecord(widget.requests))[0]); - requestDefinition.path = "/api/status?credential=Bearer-sk-secret-123456"; - }), - }, - { - name: "request:credential-in-custom-header", - widget: withMutation((widget) => { - const requestDefinition = asRecord(Object.values(asRecord(widget.requests))[0]); - requestDefinition.headers = { "X-Auth": "Bearer sk-secret-123456" }; - }), - }, - { - name: "request:common-token-in-header-value", - widget: withMutation((widget) => { - const requestDefinition = asRecord(Object.values(asRecord(widget.requests))[0]); - requestDefinition.headers = { "X-Service": "ghp_abcdefghijklmnopqrstuvwxyz123456" }; - }), - }, - { - name: "request:automatic-delete-query", - widget: withMutation((widget) => { - const requestDefinition = asRecord(Object.values(asRecord(widget.requests))[0]); - requestDefinition.kind = "query"; - requestDefinition.trigger = "load"; - requestDefinition.method = "DELETE"; - }), - }, - { - name: "icon:credential-query", - widget: withMutation((widget) => { - widget.iconUrl = "https://example.com/icon.png?clientSecret=must-never-be-published"; - }), - }, - { - name: "icon:unicode-mapped-numeric-host", - widget: withMutation((widget) => { - widget.iconUrl = "https://127.0.0.1/icon.png"; - }), - }, - { - name: "option:invalid-default", - widget: withMutation((widget) => { - asRecord(widget.options).invalid = { label: "Invalid", control: "number", default: "not-a-number" }; - }), - }, - { - name: "template:incompatible-request", - widget: withMutation((widget) => { - const requestId = Object.keys(asRecord(widget.requests))[0]; - widget.template = `${String(widget.template)}Unsafe`; - }), - }, - { - name: "template:literal-credential", - widget: withMutation((widget) => { - widget.template = "Authorization: Bearer must-never-be-published"; - }), - }, - { - name: "template:blocked-script", - widget: withMutation((widget) => { - widget.template = ""; - }), - }, - { - name: "template:unknown-component", - widget: withMutation((widget) => { - widget.template = ""; - }), - }, - { - name: "template:unknown-global", - widget: withMutation((widget) => { - widget.template = "{process.env.HOME}"; - }), - }, -]; - -let updateTargetId: string | undefined; -let updateTargetRevision = 0; -for (const [index, entry] of bundled.entries()) { - const canonicalAccepted = customWidgetDefinitionSchema.safeParse(entry.widget).success; - if (!canonicalAccepted) throw new Error(`Bundled widget failed canonical validation: ${entry.name}`); - const direct = updateTargetId - ? await request(`/api/collections/submissions/records/${updateTargetId}`, { - method: "PATCH", - headers: userHeaders, - body: JSON.stringify({ - title: `Corpus ${String(index + 1).padStart(2, "0")}`, - description: entry.name, - content: JSON.stringify(entry.widget), - expectedRevision: updateTargetRevision, - }), - }) - : await request("/api/collections/submissions/records", { - method: "POST", - headers: userHeaders, - body: JSON.stringify({ - type: "customWidget", - title: `Corpus ${String(index + 1).padStart(2, "0")}`, - description: entry.name, - widgetSchema: "caller-controlled", - content: JSON.stringify(entry.widget), - author: userId, - }), - }); - if (!direct.response.ok || typeof direct.body?.id !== "string") { - throw new Error( - `PocketBase rejected bundled widget ${entry.name}: status=${direct.response.status}, body=${JSON.stringify(direct.body)}`, - ); - } - updateTargetId ??= direct.body.id; - if (typeof direct.body.revision !== "number") throw new Error("Corpus response did not include a numeric revision"); - updateTargetRevision = direct.body.revision; -} - -if (!updateTargetId) throw new Error("Differential corpus did not create an update target"); -const adversarialShard = adversarial.filter((_, index) => index % shardCount === shard); -for (const entry of adversarialShard) { - if (customWidgetDefinitionSchema.safeParse(entry.widget).success) { - throw new Error(`Adversarial corpus case passed canonical validation: ${entry.name}`); - } - const direct = await request(`/api/collections/submissions/records/${updateTargetId}`, { - method: "PATCH", - headers: userHeaders, - body: JSON.stringify({ - content: JSON.stringify(entry.widget), - expectedRevision: updateTargetRevision, - }), - }); - if (direct.response.status === 429) { - throw new Error(`Validator corpus was rate limited before checking ${entry.name}`); - } - if (direct.response.status !== 400) { - throw new Error( - `PocketBase accepted or mishandled invalid widget ${entry.name}: status=${direct.response.status}, body=${JSON.stringify(direct.body)}`, - ); - } -} - -console.log( - `Workshop validator differential corpus shard ${shard + 1}/${shardCount} passed (${bundled.length + adversarialShard.length} cases)`, -); diff --git a/apps/workshop/tests/workshop.integration.mjs b/apps/workshop/tests/workshop.integration.mjs index af7bbce8d..6bd4f2d16 100644 --- a/apps/workshop/tests/workshop.integration.mjs +++ b/apps/workshop/tests/workshop.integration.mjs @@ -163,7 +163,7 @@ const submission = await request("/api/collections/submissions/records", { type: "customWidget", title: "Workshop runtime probe", description: "PocketBase integration test", - widgetSchema: "homarr-custom-css-v1", + widgetSchema: widget.$schema, content: JSON.stringify(widget), author: author.id, revision: 999, @@ -179,38 +179,8 @@ if ( submission.changelog !== "" || submission.outdated !== false ) { - throw new Error("Submission publication was not validated and normalized server-side"); + throw new Error("Submission publication metadata was not initialized server-side"); } -await expectStatus( - "/api/collections/submissions/records", - { - method: "POST", - headers: visitorSession.headers, - body: JSON.stringify({ - type: "customCss", - title: "Oversized stylesheet", - content: "x".repeat(16_385), - widgetSchema: "homarr-custom-widget-v2", - author: visitor.id, - }), - }, - 400, -); -await expectStatus( - "/api/collections/submissions/records", - { - method: "POST", - headers: visitorSession.headers, - body: JSON.stringify({ - type: "customWidget", - title: "Invalid widget payload", - content: ".dashboard { color: red; }", - widgetSchema: "homarr-custom-widget-v2", - author: visitor.id, - }), - }, - 400, -); const ownerVotes = await request("/api/collections/votes/records", { headers: authorSession.headers }); if ( ownerVotes.items.length !== 1 || diff --git a/package.json b/package.json index ff4913cd3..62c165f83 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,6 @@ "dev": "pnpm -F nextjs dev", "dev:docs": "pnpm -F @homarr/docs dev", "dev:workshop": "node ./scripts/dev-workshop.mjs", - "build:workshop-validator": "pnpm --filter @homarr/workshop build:pocketbase-validator", "docker:docs": "docker compose -f apps/workshop/docker-compose.yml up --build docs", "docker:workshop": "docker compose -f apps/workshop/docker-compose.yml up --build workshop", "docker:dev": "docker compose -f ./development/development.docker-compose.yml up", diff --git a/packages/workshop/package.json b/packages/workshop/package.json index 6d015e51b..8e031bac5 100644 --- a/packages/workshop/package.json +++ b/packages/workshop/package.json @@ -18,7 +18,6 @@ "./schema": "./src/schema.ts" }, "scripts": { - "build:pocketbase-validator": "node ../../scripts/build-workshop-validator.mjs", "clean": "rm -rf .turbo node_modules", "format": "oxfmt .", "lint": "oxlint", @@ -35,7 +34,6 @@ }, "devDependencies": { "@homarr/tsconfig": "workspace:^0.1.0", - "esbuild": "catalog:", "typescript": "catalog:", "vitest": "catalog:" } diff --git a/packages/workshop/src/backend.ts b/packages/workshop/src/backend.ts index 2f35f8e0f..63c203342 100644 --- a/packages/workshop/src/backend.ts +++ b/packages/workshop/src/backend.ts @@ -25,6 +25,7 @@ import { WORKSHOP_API_URL, MAX_WORKSHOP_SCREENSHOTS, WORKSHOP_REQUEST_TIMEOUT_MS, + WORKSHOP_SCHEMA_BY_TYPE, workshopCommentSchema, workshopReportSchema, workshopSubmissionDetailSchema, @@ -437,6 +438,7 @@ export class WorkshopBackend { const data = new FormData(); Object.entries(parsed).forEach(([key, value]) => data.set(key, typeof value === "string" ? value : String(value))); data.set("author", this.currentUser?.id ?? ""); + data.set("widgetSchema", WORKSHOP_SCHEMA_BY_TYPE[parsed.type]); screenshots.forEach((file) => data.append("screenshots", file)); try { const result = await this.pocketBase.collection("submissions").create(data); diff --git a/packages/workshop/src/client.spec.ts b/packages/workshop/src/client.spec.ts index 446716e42..dc8ddc545 100644 --- a/packages/workshop/src/client.spec.ts +++ b/packages/workshop/src/client.spec.ts @@ -96,7 +96,7 @@ describe("WorkshopBackend", () => { expect(mocks.autoCancellation).toHaveBeenCalledWith(false); }); - test("leaves schema and initial revision ownership to PocketBase", async () => { + test("sends the exported schema while leaving initial revision ownership to PocketBase", async () => { const client = new WorkshopBackend("https://workshop.example.com"); client.pocketBase.authStore.save("token", { id: "author-id" } as never); mocks.create.mockResolvedValue({ id: "submission-id" }); @@ -113,7 +113,7 @@ describe("WorkshopBackend", () => { const payload = mocks.create.mock.calls[0]?.[0] as FormData; expect(payload.get("author")).toBe("author-id"); - expect(payload.get("widgetSchema")).toBeNull(); + expect(payload.get("widgetSchema")).toBe("homarr-custom-css-v1"); expect(payload.get("revision")).toBeNull(); }); diff --git a/packages/workshop/src/pocketbase-validator.ts b/packages/workshop/src/pocketbase-validator.ts deleted file mode 100644 index 8349b880f..000000000 --- a/packages/workshop/src/pocketbase-validator.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { customWidgetDefinitionSchema } from "@homarr/custom-widgets/core"; - -import { installPocketBaseUrlPolyfill } from "./pocketbase-url"; - -installPocketBaseUrlPolyfill(); - -export type PocketBaseWidgetValidationResult = { success: true; content: string } | { success: false; error: string }; - -/** - * PocketBase loads the generated CommonJS bundle of this module in its - * embedded JSVM. Keeping the canonical schema here prevents direct Workshop - * writes from accepting definitions that Homarr would reject at install time. - */ -export function validatePocketBaseWidget(content: string): PocketBaseWidgetValidationResult { - let parsed: unknown; - try { - parsed = JSON.parse(content) as unknown; - } catch { - return { success: false, error: "Widget content must be valid JSON" }; - } - - const result = customWidgetDefinitionSchema.safeParse(parsed); - if (!result.success) { - return { - success: false, - error: - result.error.issues - .slice(0, 5) - .map((issue) => `${issue.path.join(".") || "widget"}: ${issue.message}`) - .join("\n") || "Invalid widget", - }; - } - - return { success: true, content: JSON.stringify(result.data) }; -} diff --git a/packages/workshop/src/schema.spec.ts b/packages/workshop/src/schema.spec.ts index 95628a2f5..b729ad524 100644 --- a/packages/workshop/src/schema.spec.ts +++ b/packages/workshop/src/schema.spec.ts @@ -74,7 +74,7 @@ describe("Workshop widget validation", () => { ).toBe(true); }); - test("uses canonical direct-binding validation before publication", () => { + test("validates direct bindings in the official client before publication", () => { const widget = { ...CUSTOM_WIDGET_STARTER, requests: { diff --git a/packages/workshop/src/schema.ts b/packages/workshop/src/schema.ts index 1134ec0f5..a388c7f2a 100644 --- a/packages/workshop/src/schema.ts +++ b/packages/workshop/src/schema.ts @@ -1,10 +1,14 @@ -import { customWidgetImportSchema } from "@homarr/custom-widgets/core"; +import { CUSTOM_WIDGET_SCHEMA, customWidgetImportSchema } from "@homarr/custom-widgets/core"; import { z } from "zod/v4"; export const HOMARR_WEBSITE_URL = "https://homarr.dev"; export const WORKSHOP_API_URL = HOMARR_WEBSITE_URL; export const WORKSHOP_WEB_URL = `${HOMARR_WEBSITE_URL}/workshop`; export const WORKSHOP_CSS_SCHEMA = "homarr-custom-css-v1"; +export const WORKSHOP_SCHEMA_BY_TYPE = { + customWidget: CUSTOM_WIDGET_SCHEMA, + customCss: WORKSHOP_CSS_SCHEMA, +} as const; export const MAX_WORKSHOP_CSS_LENGTH = 16_384; export const MAX_WORKSHOP_CONTENT_LENGTH = 1_000_000; export const MAX_WORKSHOP_SCREENSHOTS = 5; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f20e202f9..80f18ac9a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2962,9 +2962,6 @@ importers: '@homarr/tsconfig': specifier: workspace:^0.1.0 version: link:../../tooling/typescript - esbuild: - specifier: 'catalog:' - version: 0.28.0 typescript: specifier: 'catalog:' version: '@typescript/typescript6@6.0.2' diff --git a/scripts/build-workshop-validator.mjs b/scripts/build-workshop-validator.mjs deleted file mode 100644 index f6e401283..000000000 --- a/scripts/build-workshop-validator.mjs +++ /dev/null @@ -1,21 +0,0 @@ -import { readFile, writeFile } from "node:fs/promises"; -import { resolve } from "node:path"; - -import { build } from "esbuild"; - -const repositoryRoot = resolve(import.meta.dirname, ".."); -const outfile = resolve(repositoryRoot, "apps/workshop/pb_hooks/widget-validator.bundle.cjs"); - -await build({ - absWorkingDir: repositoryRoot, - entryPoints: [resolve(repositoryRoot, "packages/workshop/src/pocketbase-validator.ts")], - bundle: true, - platform: "neutral", - format: "cjs", - target: "es2015", - mainFields: ["module", "main"], - outfile, -}); - -const bundle = await readFile(outfile, "utf8"); -await writeFile(outfile, bundle.replace(/[ \t]+$/gmu, ""), "utf8");