gt-sanity 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/LICENSE.md +1 -8
  2. package/README.md +5 -5
  3. package/dist/index.d.mts +35 -30
  4. package/dist/index.d.ts +35 -30
  5. package/dist/index.js +234 -123
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +237 -124
  8. package/dist/index.mjs.map +1 -1
  9. package/package.json +5 -3
  10. package/src/adapter/core.ts +72 -7
  11. package/src/adapter/createTask.ts +1 -1
  12. package/src/adapter/types.ts +9 -0
  13. package/src/components/LanguageStatus.tsx +2 -0
  14. package/src/components/NewTask.tsx +2 -0
  15. package/src/components/ProgressBar.tsx +2 -0
  16. package/src/components/TaskView.tsx +2 -0
  17. package/src/components/TranslationContext.tsx +5 -0
  18. package/src/components/TranslationView.tsx +34 -2
  19. package/src/components/TranslationsTab.tsx +4 -0
  20. package/src/components/page/TranslationsTool.tsx +876 -0
  21. package/src/configuration/baseDocumentLevelConfig/documentLevelPatch.ts +23 -10
  22. package/src/configuration/baseDocumentLevelConfig/helpers/createI18nDocAndPatchMetadata.ts +77 -24
  23. package/src/configuration/baseDocumentLevelConfig/helpers/createTranslationMetadata.ts +2 -0
  24. package/src/configuration/baseDocumentLevelConfig/helpers/getOrCreateTranslationMetadata.ts +2 -0
  25. package/src/configuration/baseDocumentLevelConfig/helpers/getTranslationMetadata.ts +2 -0
  26. package/src/configuration/baseDocumentLevelConfig/helpers/patchI18nDoc.ts +51 -8
  27. package/src/configuration/baseDocumentLevelConfig/index.ts +6 -37
  28. package/src/configuration/baseFieldLevelConfig.ts +4 -1
  29. package/src/configuration/utils/checkSerializationVersion.ts +2 -0
  30. package/src/configuration/utils/findDocumentAtRevision.ts +2 -0
  31. package/src/configuration/utils/findLatestDraft.ts +2 -0
  32. package/src/hooks/useClient.ts +3 -1
  33. package/src/hooks/useSecrets.ts +2 -0
  34. package/src/index.ts +70 -32
  35. package/src/translation/checkTranslationStatus.ts +42 -0
  36. package/src/translation/createJobs.ts +16 -0
  37. package/src/translation/downloadTranslations.ts +68 -0
  38. package/src/translation/importDocument.ts +24 -0
  39. package/src/translation/initProject.ts +61 -0
  40. package/src/translation/uploadFiles.ts +32 -0
  41. package/src/types.ts +4 -1
  42. package/src/utils/applyDocuments.ts +72 -0
  43. package/src/utils/serialize.ts +32 -0
  44. package/src/utils/shared.ts +1 -0
  45. package/src/configuration/baseDocumentLevelConfig/helpers/index.ts +0 -5
  46. package/src/configuration/baseDocumentLevelConfig/legacyDocumentLevelPatch.ts +0 -69
  47. package/src/configuration/index.ts +0 -18
  48. package/src/configuration/utils/index.ts +0 -3
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/components/TranslationContext.tsx","../../../node_modules/styled-components/node_modules/tslib/tslib.es6.mjs","../../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../../../node_modules/stylis/src/Enum.js","../../../node_modules/stylis/src/Utility.js","../../../node_modules/stylis/src/Tokenizer.js","../../../node_modules/stylis/src/Parser.js","../../../node_modules/stylis/src/Prefixer.js","../../../node_modules/stylis/src/Serializer.js","../../../node_modules/stylis/src/Middleware.js","../../../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../../node_modules/styled-components/dist/styled-components.esm.js","../src/components/NewTask.tsx","../src/components/ProgressBar.tsx","../src/components/LanguageStatus.tsx","../src/components/TaskView.tsx","../src/components/TranslationView.tsx","../src/hooks/useClient.ts","../src/hooks/useSecrets.ts","../src/components/TranslationsTab.tsx","../src/configuration/utils/findDocumentAtRevision.ts","../src/configuration/utils/findLatestDraft.ts","../src/configuration/baseDocumentLevelConfig/helpers/createI18nDocAndPatchMetadata.ts","../src/configuration/baseDocumentLevelConfig/helpers/getOrCreateTranslationMetadata.ts","../src/configuration/baseDocumentLevelConfig/helpers/patchI18nDoc.ts","../src/adapter/core.ts","../src/configuration/baseDocumentLevelConfig/documentLevelPatch.ts","../src/configuration/baseDocumentLevelConfig/legacyDocumentLevelPatch.ts","../src/configuration/baseDocumentLevelConfig/index.ts","../src/configuration/baseFieldLevelConfig.ts","../src/adapter/getLocales.ts","../src/adapter/getTranslationTask.ts","../src/adapter/getTranslation.ts","../src/adapter/createTask.ts","../src/adapter/index.ts","../src/index.ts"],"sourcesContent":["import React from 'react';\nimport { GTSerializedDocument } from '../types';\nimport { Adapter, GTFile, Secrets, WorkflowIdentifiers } from '../types';\n\nexport type ContextProps = {\n documentInfo: GTFile;\n adapter: Adapter;\n importTranslation: (languageId: string, document: string) => Promise<void>;\n exportForTranslation: (documentInfo: GTFile) => Promise<GTSerializedDocument>;\n secrets: Secrets;\n workflowOptions?: WorkflowIdentifiers[];\n localeIdAdapter?: (id: string) => string | Promise<string>;\n callbackUrl?: string;\n mergeWithTargetLocale?: boolean;\n};\n\nexport const TranslationContext = React.createContext<ContextProps | null>(\n null\n);\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span', 0) ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span', 0) ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch', 0) ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine, filter, assign} from './Utility.js'\nimport {copy, lift, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(children = element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, callback = /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import{__spreadArray as e,__assign as t}from\"tslib\";import n from\"@emotion/is-prop-valid\";import o,{useRef as r,useState as s,useMemo as i,useEffect as a,useContext as c,useDebugValue as l,createElement as u}from\"react\";import p from\"shallowequal\";import*as d from\"stylis\";import h from\"@emotion/unitless\";var f=\"undefined\"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||\"data-styled\",m=\"active\",y=\"data-styled-version\",v=\"6.1.19\",g=\"/*!sc*/\\n\",S=\"undefined\"!=typeof window&&\"undefined\"!=typeof document,w=Boolean(\"boolean\"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&\"\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY?\"false\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.SC_DISABLE_SPEEDY&&\"\"!==process.env.SC_DISABLE_SPEEDY?\"false\"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY:\"production\"!==process.env.NODE_ENV),b={},E=/invalid hook call/i,N=new Set,P=function(t,n){if(\"production\"!==process.env.NODE_ENV){var o=n?' with the id of \"'.concat(n,'\"'):\"\",s=\"The component \".concat(t).concat(o,\" has been created dynamically.\\n\")+\"You may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\\nSee https://styled-components.com/docs/basics#define-styled-components-outside-of-the-render-method for more info.\\n\",i=console.error;try{var a=!0;console.error=function(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];E.test(t)?(a=!1,N.delete(s)):i.apply(void 0,e([t],n,!1))},r(),a&&!N.has(s)&&(console.warn(s),N.add(s))}catch(e){E.test(e.message)&&N.delete(s)}finally{console.error=i}}},_=Object.freeze([]),C=Object.freeze({});function I(e,t,n){return void 0===n&&(n=C),e.theme!==n.theme&&e.theme||t||n.theme}var A=new Set([\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\",\"u\",\"ul\",\"use\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"tspan\"]),O=/[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,D=/(^-|-$)/g;function R(e){return e.replace(O,\"-\").replace(D,\"\")}var T=/(a)(d)/gi,k=52,j=function(e){return String.fromCharCode(e+(e>25?39:97))};function x(e){var t,n=\"\";for(t=Math.abs(e);t>k;t=t/k|0)n=j(t%k)+n;return(j(t%k)+n).replace(T,\"$1-$2\")}var V,F=5381,z=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},M=function(e){return z(F,e)};function $(e){return x(M(e)>>>0)}function B(e){return\"production\"!==process.env.NODE_ENV&&\"string\"==typeof e&&e||e.displayName||e.name||\"Component\"}function G(e){return\"string\"==typeof e&&(\"production\"===process.env.NODE_ENV||e.charAt(0)===e.charAt(0).toLowerCase())}var L=\"function\"==typeof Symbol&&Symbol.for,Y=L?Symbol.for(\"react.memo\"):60115,q=L?Symbol.for(\"react.forward_ref\"):60112,W={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},H={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},U={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},J=((V={})[q]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},V[Y]=U,V);function X(e){return(\"type\"in(t=e)&&t.type.$$typeof)===Y?U:\"$$typeof\"in e?J[e.$$typeof]:W;var t}var Z=Object.defineProperty,K=Object.getOwnPropertyNames,Q=Object.getOwnPropertySymbols,ee=Object.getOwnPropertyDescriptor,te=Object.getPrototypeOf,ne=Object.prototype;function oe(e,t,n){if(\"string\"!=typeof t){if(ne){var o=te(t);o&&o!==ne&&oe(e,o,n)}var r=K(t);Q&&(r=r.concat(Q(t)));for(var s=X(e),i=X(t),a=0;a<r.length;++a){var c=r[a];if(!(c in H||n&&n[c]||i&&c in i||s&&c in s)){var l=ee(t,c);try{Z(e,c,l)}catch(e){}}}}return e}function re(e){return\"function\"==typeof e}function se(e){return\"object\"==typeof e&&\"styledComponentId\"in e}function ie(e,t){return e&&t?\"\".concat(e,\" \").concat(t):e||t||\"\"}function ae(e,t){if(0===e.length)return\"\";for(var n=e[0],o=1;o<e.length;o++)n+=t?t+e[o]:e[o];return n}function ce(e){return null!==e&&\"object\"==typeof e&&e.constructor.name===Object.name&&!(\"props\"in e&&e.$$typeof)}function le(e,t,n){if(void 0===n&&(n=!1),!n&&!ce(e)&&!Array.isArray(e))return t;if(Array.isArray(t))for(var o=0;o<t.length;o++)e[o]=le(e[o],t[o]);else if(ce(t))for(var o in t)e[o]=le(e[o],t[o]);return e}function ue(e,t){Object.defineProperty(e,\"toString\",{value:t})}var pe=\"production\"!==process.env.NODE_ENV?{1:\"Cannot create styled-component for component: %s.\\n\\n\",2:\"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",3:\"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",4:\"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",5:\"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",6:\"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",7:'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',8:'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',9:\"Missing document `<head>`\\n\\n\",10:\"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",11:\"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",12:\"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",13:\"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",14:'ThemeProvider: \"theme\" prop is required.\\n\\n',15:\"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to `<StyleSheetManager stylisPlugins={[]}>`, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",16:\"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",17:\"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\",18:\"ThemeProvider: Please make sure your useTheme hook is within a `<ThemeProvider>`\"}:{};function de(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=e[0],o=[],r=1,s=e.length;r<s;r+=1)o.push(e[r]);return o.forEach(function(e){n=n.replace(/%[a-z]/,e)}),n}function he(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];return\"production\"===process.env.NODE_ENV?new Error(\"An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#\".concat(t,\" for more information.\").concat(n.length>0?\" Args: \".concat(n.join(\", \")):\"\")):new Error(de.apply(void 0,e([pe[t]],n,!1)).trim())}var fe=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}return e.prototype.indexOfGroup=function(e){for(var t=0,n=0;n<e;n++)t+=this.groupSizes[n];return t},e.prototype.insertRules=function(e,t){if(e>=this.groupSizes.length){for(var n=this.groupSizes,o=n.length,r=o;e>=r;)if((r<<=1)<0)throw he(16,\"\".concat(e));this.groupSizes=new Uint32Array(r),this.groupSizes.set(n),this.length=r;for(var s=o;s<r;s++)this.groupSizes[s]=0}for(var i=this.indexOfGroup(e+1),a=(s=0,t.length);s<a;s++)this.tag.insertRule(i,t[s])&&(this.groupSizes[e]++,i++)},e.prototype.clearGroup=function(e){if(e<this.length){var t=this.groupSizes[e],n=this.indexOfGroup(e),o=n+t;this.groupSizes[e]=0;for(var r=n;r<o;r++)this.tag.deleteRule(n)}},e.prototype.getGroup=function(e){var t=\"\";if(e>=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],o=this.indexOfGroup(e),r=o+n,s=o;s<r;s++)t+=\"\".concat(this.tag.getRule(s)).concat(g);return t},e}(),me=1<<30,ye=new Map,ve=new Map,ge=1,Se=function(e){if(ye.has(e))return ye.get(e);for(;ve.has(ge);)ge++;var t=ge++;if(\"production\"!==process.env.NODE_ENV&&((0|t)<0||t>me))throw he(16,\"\".concat(t));return ye.set(e,t),ve.set(t,e),t},we=function(e,t){ge=t+1,ye.set(e,t),ve.set(t,e)},be=\"style[\".concat(f,\"][\").concat(y,'=\"').concat(v,'\"]'),Ee=new RegExp(\"^\".concat(f,'\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)')),Ne=function(e,t,n){for(var o,r=n.split(\",\"),s=0,i=r.length;s<i;s++)(o=r[s])&&e.registerName(t,o)},Pe=function(e,t){for(var n,o=(null!==(n=t.textContent)&&void 0!==n?n:\"\").split(g),r=[],s=0,i=o.length;s<i;s++){var a=o[s].trim();if(a){var c=a.match(Ee);if(c){var l=0|parseInt(c[1],10),u=c[2];0!==l&&(we(u,l),Ne(e,u,c[3]),e.getTag().insertRules(l,r)),r.length=0}else r.push(a)}}},_e=function(e){for(var t=document.querySelectorAll(be),n=0,o=t.length;n<o;n++){var r=t[n];r&&r.getAttribute(f)!==m&&(Pe(e,r),r.parentNode&&r.parentNode.removeChild(r))}};function Ce(){return\"undefined\"!=typeof __webpack_nonce__?__webpack_nonce__:null}var Ie=function(e){var t=document.head,n=e||t,o=document.createElement(\"style\"),r=function(e){var t=Array.from(e.querySelectorAll(\"style[\".concat(f,\"]\")));return t[t.length-1]}(n),s=void 0!==r?r.nextSibling:null;o.setAttribute(f,m),o.setAttribute(y,v);var i=Ce();return i&&o.setAttribute(\"nonce\",i),n.insertBefore(o,s),o},Ae=function(){function e(e){this.element=Ie(e),this.element.appendChild(document.createTextNode(\"\")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,o=t.length;n<o;n++){var r=t[n];if(r.ownerNode===e)return r}throw he(17)}(this.element),this.length=0}return e.prototype.insertRule=function(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}},e.prototype.deleteRule=function(e){this.sheet.deleteRule(e),this.length--},e.prototype.getRule=function(e){var t=this.sheet.cssRules[e];return t&&t.cssText?t.cssText:\"\"},e}(),Oe=function(){function e(e){this.element=Ie(e),this.nodes=this.element.childNodes,this.length=0}return e.prototype.insertRule=function(e,t){if(e<=this.length&&e>=0){var n=document.createTextNode(t);return this.element.insertBefore(n,this.nodes[e]||null),this.length++,!0}return!1},e.prototype.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},e.prototype.getRule=function(e){return e<this.length?this.nodes[e].textContent:\"\"},e}(),De=function(){function e(e){this.rules=[],this.length=0}return e.prototype.insertRule=function(e,t){return e<=this.length&&(this.rules.splice(e,0,t),this.length++,!0)},e.prototype.deleteRule=function(e){this.rules.splice(e,1),this.length--},e.prototype.getRule=function(e){return e<this.length?this.rules[e]:\"\"},e}(),Re=S,Te={isServer:!S,useCSSOMInjection:!w},ke=function(){function e(e,n,o){void 0===e&&(e=C),void 0===n&&(n={});var r=this;this.options=t(t({},Te),e),this.gs=n,this.names=new Map(o),this.server=!!e.isServer,!this.server&&S&&Re&&(Re=!1,_e(this)),ue(this,function(){return function(e){for(var t=e.getTag(),n=t.length,o=\"\",r=function(n){var r=function(e){return ve.get(e)}(n);if(void 0===r)return\"continue\";var s=e.names.get(r),i=t.getGroup(n);if(void 0===s||!s.size||0===i.length)return\"continue\";var a=\"\".concat(f,\".g\").concat(n,'[id=\"').concat(r,'\"]'),c=\"\";void 0!==s&&s.forEach(function(e){e.length>0&&(c+=\"\".concat(e,\",\"))}),o+=\"\".concat(i).concat(a,'{content:\"').concat(c,'\"}').concat(g)},s=0;s<n;s++)r(s);return o}(r)})}return e.registerId=function(e){return Se(e)},e.prototype.rehydrate=function(){!this.server&&S&&_e(this)},e.prototype.reconstructWithOptions=function(n,o){return void 0===o&&(o=!0),new e(t(t({},this.options),n),this.gs,o&&this.names||void 0)},e.prototype.allocateGSInstance=function(e){return this.gs[e]=(this.gs[e]||0)+1},e.prototype.getTag=function(){return this.tag||(this.tag=(e=function(e){var t=e.useCSSOMInjection,n=e.target;return e.isServer?new De(n):t?new Ae(n):new Oe(n)}(this.options),new fe(e)));var e},e.prototype.hasNameForId=function(e,t){return this.names.has(e)&&this.names.get(e).has(t)},e.prototype.registerName=function(e,t){if(Se(e),this.names.has(e))this.names.get(e).add(t);else{var n=new Set;n.add(t),this.names.set(e,n)}},e.prototype.insertRules=function(e,t,n){this.registerName(e,t),this.getTag().insertRules(Se(e),n)},e.prototype.clearNames=function(e){this.names.has(e)&&this.names.get(e).clear()},e.prototype.clearRules=function(e){this.getTag().clearGroup(Se(e)),this.clearNames(e)},e.prototype.clearTag=function(){this.tag=void 0},e}(),je=/&/g,xe=/^\\s*\\/\\/.*$/gm;function Ve(e,t){return e.map(function(e){return\"rule\"===e.type&&(e.value=\"\".concat(t,\" \").concat(e.value),e.value=e.value.replaceAll(\",\",\",\".concat(t,\" \")),e.props=e.props.map(function(e){return\"\".concat(t,\" \").concat(e)})),Array.isArray(e.children)&&\"@keyframes\"!==e.type&&(e.children=Ve(e.children,t)),e})}function Fe(e){var t,n,o,r=void 0===e?C:e,s=r.options,i=void 0===s?C:s,a=r.plugins,c=void 0===a?_:a,l=function(e,o,r){return r.startsWith(n)&&r.endsWith(n)&&r.replaceAll(n,\"\").length>0?\".\".concat(t):e},u=c.slice();u.push(function(e){e.type===d.RULESET&&e.value.includes(\"&\")&&(e.props[0]=e.props[0].replace(je,n).replace(o,l))}),i.prefix&&u.push(d.prefixer),u.push(d.stringify);var p=function(e,r,s,a){void 0===r&&(r=\"\"),void 0===s&&(s=\"\"),void 0===a&&(a=\"&\"),t=a,n=r,o=new RegExp(\"\\\\\".concat(n,\"\\\\b\"),\"g\");var c=e.replace(xe,\"\"),l=d.compile(s||r?\"\".concat(s,\" \").concat(r,\" { \").concat(c,\" }\"):c);i.namespace&&(l=Ve(l,i.namespace));var p=[];return d.serialize(l,d.middleware(u.concat(d.rulesheet(function(e){return p.push(e)})))),p};return p.hash=c.length?c.reduce(function(e,t){return t.name||he(15),z(e,t.name)},F).toString():\"\",p}var ze=new ke,Me=Fe(),$e=o.createContext({shouldForwardProp:void 0,styleSheet:ze,stylis:Me}),Be=$e.Consumer,Ge=o.createContext(void 0);function Le(){return c($e)}function Ye(e){var t=s(e.stylisPlugins),n=t[0],r=t[1],c=Le().styleSheet,l=i(function(){var t=c;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t},[e.disableCSSOMInjection,e.sheet,e.target,c]),u=i(function(){return Fe({options:{namespace:e.namespace,prefix:e.enableVendorPrefixes},plugins:n})},[e.enableVendorPrefixes,e.namespace,n]);a(function(){p(n,e.stylisPlugins)||r(e.stylisPlugins)},[e.stylisPlugins]);var d=i(function(){return{shouldForwardProp:e.shouldForwardProp,styleSheet:l,stylis:u}},[e.shouldForwardProp,l,u]);return o.createElement($e.Provider,{value:d},o.createElement(Ge.Provider,{value:u},e.children))}var qe=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=Me);var o=n.name+t.hash;e.hasNameForId(n.id,o)||e.insertRules(n.id,o,t(n.rules,o,\"@keyframes\"))},this.name=e,this.id=\"sc-keyframes-\".concat(e),this.rules=t,ue(this,function(){throw he(12,String(n.name))})}return e.prototype.getName=function(e){return void 0===e&&(e=Me),this.name+e.hash},e}(),We=function(e){return e>=\"A\"&&e<=\"Z\"};function He(e){for(var t=\"\",n=0;n<e.length;n++){var o=e[n];if(1===n&&\"-\"===o&&\"-\"===e[0])return e;We(o)?t+=\"-\"+o.toLowerCase():t+=o}return t.startsWith(\"ms-\")?\"-\"+t:t}var Ue=function(e){return null==e||!1===e||\"\"===e},Je=function(t){var n,o,r=[];for(var s in t){var i=t[s];t.hasOwnProperty(s)&&!Ue(i)&&(Array.isArray(i)&&i.isCss||re(i)?r.push(\"\".concat(He(s),\":\"),i,\";\"):ce(i)?r.push.apply(r,e(e([\"\".concat(s,\" {\")],Je(i),!1),[\"}\"],!1)):r.push(\"\".concat(He(s),\": \").concat((n=s,null==(o=i)||\"boolean\"==typeof o||\"\"===o?\"\":\"number\"!=typeof o||0===o||n in h||n.startsWith(\"--\")?String(o).trim():\"\".concat(o,\"px\")),\";\")))}return r};function Xe(e,t,n,o){if(Ue(e))return[];if(se(e))return[\".\".concat(e.styledComponentId)];if(re(e)){if(!re(s=e)||s.prototype&&s.prototype.isReactComponent||!t)return[e];var r=e(t);return\"production\"===process.env.NODE_ENV||\"object\"!=typeof r||Array.isArray(r)||r instanceof qe||ce(r)||null===r||console.error(\"\".concat(B(e),\" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\")),Xe(r,t,n,o)}var s;return e instanceof qe?n?(e.inject(n,o),[e.getName(o)]):[e]:ce(e)?Je(e):Array.isArray(e)?Array.prototype.concat.apply(_,e.map(function(e){return Xe(e,t,n,o)})):[e.toString()]}function Ze(e){for(var t=0;t<e.length;t+=1){var n=e[t];if(re(n)&&!se(n))return!1}return!0}var Ke=M(v),Qe=function(){function e(e,t,n){this.rules=e,this.staticRulesId=\"\",this.isStatic=\"production\"===process.env.NODE_ENV&&(void 0===n||n.isStatic)&&Ze(e),this.componentId=t,this.baseHash=z(Ke,t),this.baseStyle=n,ke.registerId(t)}return e.prototype.generateAndInjectStyles=function(e,t,n){var o=this.baseStyle?this.baseStyle.generateAndInjectStyles(e,t,n):\"\";if(this.isStatic&&!n.hash)if(this.staticRulesId&&t.hasNameForId(this.componentId,this.staticRulesId))o=ie(o,this.staticRulesId);else{var r=ae(Xe(this.rules,e,t,n)),s=x(z(this.baseHash,r)>>>0);if(!t.hasNameForId(this.componentId,s)){var i=n(r,\".\".concat(s),void 0,this.componentId);t.insertRules(this.componentId,s,i)}o=ie(o,s),this.staticRulesId=s}else{for(var a=z(this.baseHash,n.hash),c=\"\",l=0;l<this.rules.length;l++){var u=this.rules[l];if(\"string\"==typeof u)c+=u,\"production\"!==process.env.NODE_ENV&&(a=z(a,u));else if(u){var p=ae(Xe(u,e,t,n));a=z(a,p+l),c+=p}}if(c){var d=x(a>>>0);t.hasNameForId(this.componentId,d)||t.insertRules(this.componentId,d,n(c,\".\".concat(d),void 0,this.componentId)),o=ie(o,d)}}return o},e}(),et=o.createContext(void 0),tt=et.Consumer;function nt(){var e=c(et);if(!e)throw he(18);return e}function ot(e){var n=o.useContext(et),r=i(function(){return function(e,n){if(!e)throw he(14);if(re(e)){var o=e(n);if(\"production\"!==process.env.NODE_ENV&&(null===o||Array.isArray(o)||\"object\"!=typeof o))throw he(7);return o}if(Array.isArray(e)||\"object\"!=typeof e)throw he(8);return n?t(t({},n),e):e}(e.theme,n)},[e.theme,n]);return e.children?o.createElement(et.Provider,{value:r},e.children):null}var rt={},st=new Set;function it(e,r,s){var i=se(e),a=e,c=!G(e),p=r.attrs,d=void 0===p?_:p,h=r.componentId,f=void 0===h?function(e,t){var n=\"string\"!=typeof e?\"sc\":R(e);rt[n]=(rt[n]||0)+1;var o=\"\".concat(n,\"-\").concat($(v+n+rt[n]));return t?\"\".concat(t,\"-\").concat(o):o}(r.displayName,r.parentComponentId):h,m=r.displayName,y=void 0===m?function(e){return G(e)?\"styled.\".concat(e):\"Styled(\".concat(B(e),\")\")}(e):m,g=r.displayName&&r.componentId?\"\".concat(R(r.displayName),\"-\").concat(r.componentId):r.componentId||f,S=i&&a.attrs?a.attrs.concat(d).filter(Boolean):d,w=r.shouldForwardProp;if(i&&a.shouldForwardProp){var b=a.shouldForwardProp;if(r.shouldForwardProp){var E=r.shouldForwardProp;w=function(e,t){return b(e,t)&&E(e,t)}}else w=b}var N=new Qe(s,g,i?a.componentStyle:void 0);function O(e,r){return function(e,r,s){var i=e.attrs,a=e.componentStyle,c=e.defaultProps,p=e.foldedComponentIds,d=e.styledComponentId,h=e.target,f=o.useContext(et),m=Le(),y=e.shouldForwardProp||m.shouldForwardProp;\"production\"!==process.env.NODE_ENV&&l(d);var v=I(r,f,c)||C,g=function(e,n,o){for(var r,s=t(t({},n),{className:void 0,theme:o}),i=0;i<e.length;i+=1){var a=re(r=e[i])?r(s):r;for(var c in a)s[c]=\"className\"===c?ie(s[c],a[c]):\"style\"===c?t(t({},s[c]),a[c]):a[c]}return n.className&&(s.className=ie(s.className,n.className)),s}(i,r,v),S=g.as||h,w={};for(var b in g)void 0===g[b]||\"$\"===b[0]||\"as\"===b||\"theme\"===b&&g.theme===v||(\"forwardedAs\"===b?w.as=g.forwardedAs:y&&!y(b,S)||(w[b]=g[b],y||\"development\"!==process.env.NODE_ENV||n(b)||st.has(b)||!A.has(S)||(st.add(b),console.warn('styled-components: it looks like an unknown prop \"'.concat(b,'\" is being sent through to the DOM, which will likely trigger a React console error. If you would like automatic filtering of unknown props, you can opt-into that behavior via `<StyleSheetManager shouldForwardProp={...}>` (connect an API like `@emotion/is-prop-valid`) or consider using transient props (`$` prefix for automatic filtering.)')))));var E=function(e,t){var n=Le(),o=e.generateAndInjectStyles(t,n.styleSheet,n.stylis);return\"production\"!==process.env.NODE_ENV&&l(o),o}(a,g);\"production\"!==process.env.NODE_ENV&&e.warnTooManyClasses&&e.warnTooManyClasses(E);var N=ie(p,d);return E&&(N+=\" \"+E),g.className&&(N+=\" \"+g.className),w[G(S)&&!A.has(S)?\"class\":\"className\"]=N,s&&(w.ref=s),u(S,w)}(D,e,r)}O.displayName=y;var D=o.forwardRef(O);return D.attrs=S,D.componentStyle=N,D.displayName=y,D.shouldForwardProp=w,D.foldedComponentIds=i?ie(a.foldedComponentIds,a.styledComponentId):\"\",D.styledComponentId=g,D.target=i?a.target:e,Object.defineProperty(D,\"defaultProps\",{get:function(){return this._foldedDefaultProps},set:function(e){this._foldedDefaultProps=i?function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var o=0,r=t;o<r.length;o++)le(e,r[o],!0);return e}({},a.defaultProps,e):e}}),\"production\"!==process.env.NODE_ENV&&(P(y,g),D.warnTooManyClasses=function(e,t){var n={},o=!1;return function(r){if(!o&&(n[r]=!0,Object.keys(n).length>=200)){var s=t?' with the id of \"'.concat(t,'\"'):\"\";console.warn(\"Over \".concat(200,\" classes were generated for component \").concat(e).concat(s,\".\\n\")+\"Consider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n <Component />\"),o=!0,n={}}}}(y,g)),ue(D,function(){return\".\".concat(D.styledComponentId)}),c&&oe(D,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0}),D}function at(e,t){for(var n=[e[0]],o=0,r=t.length;o<r;o+=1)n.push(t[o],e[o+1]);return n}var ct=function(e){return Object.assign(e,{isCss:!0})};function lt(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];if(re(t)||ce(t))return ct(Xe(at(_,e([t],n,!0))));var r=t;return 0===n.length&&1===r.length&&\"string\"==typeof r[0]?Xe(r):ct(Xe(at(r,n)))}function ut(n,o,r){if(void 0===r&&(r=C),!o)throw he(1,o);var s=function(t){for(var s=[],i=1;i<arguments.length;i++)s[i-1]=arguments[i];return n(o,r,lt.apply(void 0,e([t],s,!1)))};return s.attrs=function(e){return ut(n,o,t(t({},r),{attrs:Array.prototype.concat(r.attrs,e).filter(Boolean)}))},s.withConfig=function(e){return ut(n,o,t(t({},r),e))},s}var pt=function(e){return ut(it,e)},dt=pt;A.forEach(function(e){dt[e]=pt(e)});var ht=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=Ze(e),ke.registerId(this.componentId+1)}return e.prototype.createStyles=function(e,t,n,o){var r=o(ae(Xe(this.rules,t,n,o)),\"\"),s=this.componentId+e;n.insertRules(s,s,r)},e.prototype.removeStyles=function(e,t){t.clearRules(this.componentId+e)},e.prototype.renderStyles=function(e,t,n,o){e>2&&ke.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,o)},e}();function ft(n){for(var r=[],s=1;s<arguments.length;s++)r[s-1]=arguments[s];var i=lt.apply(void 0,e([n],r,!1)),a=\"sc-global-\".concat($(JSON.stringify(i))),c=new ht(i,a);\"production\"!==process.env.NODE_ENV&&P(a);var l=function(e){var n=Le(),r=o.useContext(et),s=o.useRef(n.styleSheet.allocateGSInstance(a)).current;return\"production\"!==process.env.NODE_ENV&&o.Children.count(e.children)&&console.warn(\"The global style component \".concat(a,\" was given child JSX. createGlobalStyle does not render children.\")),\"production\"!==process.env.NODE_ENV&&i.some(function(e){return\"string\"==typeof e&&-1!==e.indexOf(\"@import\")})&&console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical <link> meta tag to the stylesheet, or simply embedding it manually in your index.html <head> section for a simpler app.\"),n.styleSheet.server&&function(e,n,o,r,s){if(c.isStatic)c.renderStyles(e,b,o,s);else{var i=t(t({},n),{theme:I(n,r,l.defaultProps)});c.renderStyles(e,i,o,s)}}(s,e,n.styleSheet,r,n.stylis),null};return o.memo(l)}function mt(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");var r=ae(lt.apply(void 0,e([t],n,!1))),s=$(r);return new qe(s,r)}function yt(e){var n=o.forwardRef(function(n,r){var s=I(n,o.useContext(et),e.defaultProps);return\"production\"!==process.env.NODE_ENV&&void 0===s&&console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"'.concat(B(e),'\"')),o.createElement(e,t({},n,{theme:s,ref:r}))});return n.displayName=\"WithTheme(\".concat(B(e),\")\"),oe(n,e)}var vt=/^\\s*<\\/[a-z]/i,gt=function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return\"\";var n=Ce(),o=ae([n&&'nonce=\"'.concat(n,'\"'),\"\".concat(f,'=\"true\"'),\"\".concat(y,'=\"').concat(v,'\"')].filter(Boolean),\" \");return\"<style \".concat(o,\">\").concat(t,\"</style>\")},this.getStyleTags=function(){if(e.sealed)throw he(2);return e._emitSheetCSS()},this.getStyleElement=function(){var n;if(e.sealed)throw he(2);var r=e.instance.toString();if(!r)return[];var s=((n={})[f]=\"\",n[y]=v,n.dangerouslySetInnerHTML={__html:r},n),i=Ce();return i&&(s.nonce=i),[o.createElement(\"style\",t({},s,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new ke({isServer:!0}),this.sealed=!1}return e.prototype.collectStyles=function(e){if(this.sealed)throw he(2);return o.createElement(Ye,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){if(S)throw he(3);if(this.sealed)throw he(2);this.seal();var t=require(\"stream\").Transform,n=e,o=this.instance,r=this._emitSheetCSS,s=new t({transform:function(e,t,n){var s=e.toString(),i=r();if(o.clearTag(),vt.test(s)){var a=s.indexOf(\">\")+1,c=s.slice(0,a),l=s.slice(a);this.push(c+i+l)}else this.push(i+s);n()}});return n.on(\"error\",function(e){s.emit(\"error\",e)}),n.pipe(s)},e}(),St={StyleSheet:ke,mainSheet:ze};\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\");var wt=\"__sc-\".concat(f,\"__\");\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&\"undefined\"!=typeof window&&(window[wt]||(window[wt]=0),1===window[wt]&&console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"),window[wt]+=1);export{gt as ServerStyleSheet,Be as StyleSheetConsumer,$e as StyleSheetContext,Ye as StyleSheetManager,tt as ThemeConsumer,et as ThemeContext,ot as ThemeProvider,St as __PRIVATE__,ft as createGlobalStyle,lt as css,dt as default,se as isStyledComponent,mt as keyframes,dt as styled,nt as useTheme,v as version,yt as withTheme};\n//# sourceMappingURL=styled-components.esm.js.map\n","import React, {\n useState,\n useContext,\n ChangeEvent,\n useCallback,\n useEffect,\n} from 'react';\nimport styled from 'styled-components';\nimport {\n Button,\n Box,\n Flex,\n Grid,\n Select,\n Stack,\n Switch,\n Text,\n useToast,\n} from '@sanity/ui';\n\nimport { TranslationContext } from './TranslationContext';\nimport { TranslationLocale } from '../types';\n\ntype Props = {\n locales: TranslationLocale[];\n refreshTask: () => Promise<void>;\n};\n\ntype LocaleCheckboxProps = {\n locale: TranslationLocale;\n toggle: (locale: string, checked: boolean) => void;\n checked: boolean;\n};\n\nconst WrapText = styled(Box)`\n white-space: normal;\n`;\n\nconst LocaleCheckbox = ({ locale, toggle, checked }: LocaleCheckboxProps) => {\n const onClick = useCallback(\n () => toggle(locale.localeId, !checked),\n [locale, toggle, checked]\n );\n\n return (\n <Button\n mode='ghost'\n onClick={onClick}\n disabled={locale.enabled === false}\n style={{ cursor: `pointer` }}\n radius={2}\n >\n <Flex align='center' gap={3}>\n <Switch\n style={{ pointerEvents: `none` }}\n disabled={locale.enabled === false}\n onChange={onClick}\n checked={checked}\n />\n <WrapText>\n <Text size={1} weight='semibold'>\n {locale.description}\n </Text>\n </WrapText>\n </Flex>\n </Button>\n );\n};\n\nexport const NewTask = ({ locales, refreshTask }: Props) => {\n const possibleLocales = locales.filter((locale) => locale.enabled !== false);\n // Lets just stick to the canonical document id for keeping track of\n // translations\n const [selectedLocales, setSelectedLocales] = useState<React.ReactNode[]>(\n locales\n .filter((locale) => locale.enabled !== false)\n .map((locale) => locale.localeId)\n );\n\n useEffect(() => {\n setSelectedLocales(\n locales\n .filter((locale) => locale.enabled !== false)\n .map((locale) => locale.localeId)\n );\n }, [locales]);\n\n const [selectedWorkflowUid, setSelectedWorkflowUid] = useState<string>();\n const [isBusy, setIsBusy] = useState(false);\n\n const context = useContext(TranslationContext);\n const toast = useToast();\n\n const toggleLocale = useCallback(\n (locale: string, selected: boolean) => {\n if (!selected) {\n setSelectedLocales(selectedLocales.filter((l) => l !== locale));\n } else if (!selectedLocales.includes(locale)) {\n setSelectedLocales([...selectedLocales, locale]);\n }\n },\n [selectedLocales, setSelectedLocales]\n );\n\n const createTask = useCallback(() => {\n if (!context) {\n toast.push({\n title: 'Unable to create task: missing context',\n status: 'error',\n closable: true,\n });\n return;\n }\n\n setIsBusy(true);\n\n context\n .exportForTranslation(context.documentInfo)\n .then((serialized) =>\n context.adapter.createTask(\n context.documentInfo,\n serialized,\n selectedLocales as string[],\n context.secrets,\n selectedWorkflowUid,\n context.callbackUrl\n )\n )\n .then(() => {\n toast.push({\n title: 'Job successfully created',\n status: 'success',\n closable: true,\n });\n\n /** Reset form fields */\n setSelectedLocales([]);\n setSelectedWorkflowUid('');\n\n /** Update task data in TranslationView */\n refreshTask();\n })\n .catch((err) => {\n let errorMsg;\n if (err instanceof Error) {\n errorMsg = err.message;\n } else {\n errorMsg = err ? String(err) : null;\n }\n\n toast.push({\n title: `Error creating translation job`,\n description: errorMsg,\n status: 'error',\n closable: true,\n });\n })\n .finally(() => {\n setIsBusy(false);\n });\n }, [context, selectedLocales, selectedWorkflowUid, toast, refreshTask]);\n\n const onClick = useCallback(() => {\n setSelectedLocales(\n possibleLocales.length === selectedLocales.length\n ? // Disable all\n []\n : // Enable all\n locales\n .filter((locale) => locale.enabled !== false)\n .map((locale) => locale.localeId)\n );\n }, [possibleLocales, selectedLocales, setSelectedLocales, locales]);\n\n const onToggle = useCallback(\n (locale: string, checked: boolean) => {\n toggleLocale(locale, checked);\n },\n [toggleLocale]\n );\n\n const onWorkflowChange = useCallback(\n (e: ChangeEvent<HTMLSelectElement>) => {\n setSelectedWorkflowUid(e.target.value);\n },\n [setSelectedWorkflowUid]\n );\n\n return (\n <Stack paddingTop={4} space={4}>\n <Text as='h2' weight='semibold' size={2}>\n Generate New Translations\n </Text>\n <Stack space={3}>\n <Flex align='center' justify='space-between'>\n <Text weight='semibold' size={1}>\n {possibleLocales.length === 1 ? `Select locale` : `Select locales`}\n </Text>\n\n <Button\n fontSize={1}\n padding={2}\n text='Toggle All'\n onClick={onClick}\n />\n </Flex>\n\n <Grid columns={[1, 1, 2, 3]} gap={1}>\n {(locales || []).map((l) => (\n <LocaleCheckbox\n key={l.localeId}\n locale={l}\n toggle={onToggle}\n checked={selectedLocales.includes(l.localeId)}\n />\n ))}\n </Grid>\n </Stack>\n\n {context?.workflowOptions && context.workflowOptions.length > 0 && (\n <Stack space={3}>\n <Text weight='semibold' size={1} as='label' htmlFor='workflow-select'>\n Select translation workflow\n </Text>\n <Grid columns={[1, 1, 2]}>\n <Select id='workflowSelect' onChange={onWorkflowChange}>\n <option>Default locale workflows</option>\n {context.workflowOptions.map((w) => (\n <option\n key={`workflow-opt-${w.workflowUid}`}\n value={w.workflowUid}\n >\n {w.workflowName}\n </option>\n ))}\n </Select>\n </Grid>\n </Stack>\n )}\n\n <Button\n onClick={createTask}\n disabled={isBusy || !selectedLocales.length}\n tone='positive'\n text={isBusy ? 'Queueing translations...' : 'Generate Translations'}\n />\n </Stack>\n );\n};\n","import { Card, Flex, Label } from '@sanity/ui';\n\nexport default function ProgressBar({ progress }: { progress: number }) {\n if (typeof progress === 'undefined') {\n console.warn('No progress prop passed to ProgressBar');\n return null;\n }\n\n return (\n <Card border radius={2} style={{ width: `100%`, position: `relative` }}>\n <Flex\n style={{\n position: `absolute`,\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n align='center'\n justify='center'\n >\n <Label size={1}>{progress}%</Label>\n </Flex>\n <Card\n style={{\n width: '100%',\n transform: `scaleX(${progress / 100})`,\n transformOrigin: 'left',\n transition: 'transform .2s ease',\n boxSizing: 'border-box',\n }}\n padding={2}\n tone='positive'\n />\n </Card>\n );\n}\n","import { useCallback, useState } from 'react';\nimport { Flex, Card, Text, Grid, Box, Button } from '@sanity/ui';\nimport { DownloadIcon, CheckmarkCircleIcon } from '@sanity/icons';\nimport ProgressBar from './ProgressBar';\n\ntype LanguageStatusProps = {\n title: string;\n progress: number;\n importFile: () => Promise<void>;\n isImported?: boolean;\n};\n\nexport const LanguageStatus = ({\n title,\n progress,\n importFile,\n isImported = false,\n}: LanguageStatusProps) => {\n const [isBusy, setIsBusy] = useState(false);\n\n const handleImport = useCallback(async () => {\n setIsBusy(true);\n try {\n await importFile();\n } finally {\n setIsBusy(false);\n }\n }, [importFile, setIsBusy]);\n\n return (\n <Card shadow={1}>\n <Grid columns={5} gap={3} padding={3}>\n <Flex columnStart={1} columnEnd={3} align='center'>\n <Text weight='bold' size={1}>\n {title}\n </Text>\n </Flex>\n {typeof progress === 'number' ? (\n <Flex columnStart={3} columnEnd={5} align='center'>\n <ProgressBar progress={progress} />\n </Flex>\n ) : null}\n <Box columnStart={5} columnEnd={6}>\n {isImported ? (\n <Flex align='center' justify='center' style={{ color: 'green' }}>\n <CheckmarkCircleIcon />\n <Text size={1} style={{ marginLeft: '4px' }}>\n Imported\n </Text>\n </Flex>\n ) : (\n <Button\n style={{ width: `100%` }}\n mode='ghost'\n onClick={handleImport}\n text={isBusy ? 'Importing...' : 'Import'}\n icon={isBusy ? null : DownloadIcon}\n disabled={isBusy || !progress || progress < 100}\n />\n )}\n </Box>\n </Grid>\n </Card>\n );\n};\n","import { useCallback, useContext, useState, useEffect } from 'react';\nimport { Box, Button, Flex, Text, Stack, useToast, Switch } from '@sanity/ui';\nimport {\n ArrowTopRightIcon,\n DownloadIcon,\n CheckmarkCircleIcon,\n} from '@sanity/icons';\n\nimport { TranslationContext } from './TranslationContext';\nimport { TranslationLocale, TranslationTask } from '../types';\nimport { LanguageStatus } from './LanguageStatus';\n\ntype JobProps = {\n task: TranslationTask;\n locales: TranslationLocale[];\n refreshTask: () => Promise<void>;\n};\n\nconst getLocale = (\n localeId: string,\n locales: TranslationLocale[]\n): TranslationLocale | undefined =>\n locales.find((l) => l.localeId === localeId);\n\nexport const TaskView = ({ task, locales, refreshTask }: JobProps) => {\n const context = useContext(TranslationContext);\n const toast = useToast();\n\n const [isRefreshing, setIsRefreshing] = useState(false);\n const [autoRefresh, setAutoRefresh] = useState(true);\n const [isBusy, setIsBusy] = useState(false);\n const [autoImport, setAutoImport] = useState(true);\n const [importedFiles, setImportedFiles] = useState<Set<string>>(new Set());\n\n const importFile = useCallback(\n async (localeId: string) => {\n if (!context) {\n toast.push({\n title:\n 'Missing context, unable to import translation. Try refreshing or clicking away from this tab and back.',\n status: 'error',\n closable: true,\n });\n return;\n }\n\n const locale = getLocale(localeId, locales);\n const localeTitle = locale?.description || localeId;\n\n try {\n const translation = await context.adapter.getTranslation(\n task.document,\n localeId,\n context.secrets\n );\n\n const sanityId = context.localeIdAdapter\n ? await context.localeIdAdapter(localeId)\n : localeId;\n\n await context.importTranslation(sanityId, translation);\n\n setImportedFiles((prev) => new Set([...prev, localeId]));\n\n toast.push({\n title: `Imported ${localeTitle} translation`,\n status: 'success',\n closable: true,\n });\n } catch (err) {\n let errorMsg;\n if (err instanceof Error) {\n errorMsg = err.message;\n } else {\n errorMsg = err ? String(err) : null;\n }\n\n toast.push({\n title: `Error getting ${localeTitle} translation`,\n description: errorMsg,\n status: 'error',\n closable: true,\n });\n }\n },\n [locales, context, task.document, toast]\n );\n\n const checkAndImportCompletedFiles = useCallback(async () => {\n if (!autoImport || isBusy) return;\n\n const completedFiles = task.locales.filter(\n (locale) =>\n (locale.progress || 0) >= 100 && !importedFiles.has(locale.localeId)\n );\n\n if (completedFiles.length === 0) return;\n\n setIsBusy(true);\n try {\n for (const locale of completedFiles) {\n await importFile(locale.localeId);\n }\n } finally {\n setIsBusy(false);\n }\n }, [autoImport, isBusy, task.locales, importedFiles, importFile]);\n\n const handleRefreshClick = useCallback(async () => {\n if (isRefreshing) return;\n setIsRefreshing(true);\n await refreshTask();\n await checkAndImportCompletedFiles();\n setIsRefreshing(false);\n }, [refreshTask, setIsRefreshing, checkAndImportCompletedFiles]);\n\n const handleImportAll = useCallback(async () => {\n if (isBusy) return;\n setIsBusy(true);\n\n try {\n const filesToImport = task.locales.filter(\n (locale) => !importedFiles.has(locale.localeId)\n );\n for (const locale of filesToImport) {\n await importFile(locale.localeId);\n }\n } finally {\n setIsBusy(false);\n }\n }, [task.locales, importFile, isBusy, importedFiles]);\n\n useEffect(() => {\n if (!autoRefresh || importedFiles.size === task.locales.length) return;\n\n const interval = setInterval(async () => {\n await handleRefreshClick();\n }, 5000);\n\n return () => clearInterval(interval);\n }, [\n handleRefreshClick,\n autoRefresh,\n importedFiles.size,\n task.locales.length,\n ]);\n\n useEffect(() => {\n checkAndImportCompletedFiles();\n }, [checkAndImportCompletedFiles, task.locales]);\n\n useEffect(() => {\n setImportedFiles((prev) => {\n const newSet = new Set<string>();\n for (const localeId of prev) {\n if (task.locales.some((locale) => locale.localeId === localeId)) {\n newSet.add(localeId);\n }\n }\n return newSet;\n });\n }, [task.locales]);\n\n return (\n <Stack space={4}>\n <Flex align='center' justify='space-between'>\n <Text as='h2' weight='semibold' size={2}>\n Translation Progress\n </Text>\n\n <Flex gap={3} align='center'>\n <Flex gap={2} align='center'>\n <Text size={1}>Auto-refresh</Text>\n <Switch\n checked={autoRefresh}\n onChange={() => setAutoRefresh(!autoRefresh)}\n />\n </Flex>\n {task.linkToVendorTask && (\n <Button\n as='a'\n text='View Job'\n iconRight={ArrowTopRightIcon}\n href={task.linkToVendorTask}\n target='_blank'\n rel='noreferrer noopener'\n fontSize={1}\n padding={2}\n mode='bleed'\n />\n )}\n <Button\n fontSize={1}\n padding={2}\n text='Refresh Status'\n onClick={handleRefreshClick}\n disabled={isRefreshing}\n />\n </Flex>\n </Flex>\n\n <Box>\n {task.locales.map((localeTask) => {\n const reportPercent = localeTask.progress || 0;\n const locale = getLocale(localeTask.localeId, locales);\n return (\n <LanguageStatus\n key={[task.document.documentId, localeTask.localeId].join('.')}\n importFile={async () => {\n await importFile(localeTask.localeId);\n }}\n title={locale?.description || localeTask.localeId}\n progress={reportPercent}\n isImported={importedFiles.has(localeTask.localeId)}\n />\n );\n })}\n </Box>\n <Stack space={3}>\n <Flex gap={3} align='center' justify='space-between'>\n <Flex gap={2} align='center'>\n <Button\n mode='ghost'\n onClick={handleImportAll}\n text={isBusy ? 'Importing...' : 'Import All'}\n icon={isBusy ? null : DownloadIcon}\n disabled={isBusy || importedFiles.size === task.locales.length}\n />\n {importedFiles.size === task.locales.length &&\n task.locales.length > 0 && (\n <Flex gap={2} align='center' style={{ color: 'green' }}>\n <CheckmarkCircleIcon />\n <Text size={1}>All translations imported</Text>\n </Flex>\n )}\n {importedFiles.size > 0 &&\n importedFiles.size < task.locales.length && (\n <Text size={1} style={{ color: '#666' }}>\n {importedFiles.size}/{task.locales.length} imported\n </Text>\n )}\n </Flex>\n <Flex gap={2} align='center' style={{ whiteSpace: 'nowrap' }}>\n <Text size={1}>Auto-import when complete</Text>\n <Switch\n checked={autoImport}\n onChange={() => setAutoImport(!autoImport)}\n disabled={isBusy}\n />\n </Flex>\n </Flex>\n </Stack>\n </Stack>\n );\n};\n","/**\n * Add cleanup function to cancel async tasks\n */\n\nimport { useCallback, useContext, useEffect, useState } from 'react';\nimport { Stack, useToast } from '@sanity/ui';\nimport { TranslationContext } from './TranslationContext';\n\nimport { NewTask } from './NewTask';\nimport { TaskView } from './TaskView';\nimport { TranslationTask, TranslationLocale } from '../types';\n\nexport const TranslationView = () => {\n const [locales, setLocales] = useState<TranslationLocale[]>([]);\n const [task, setTask] = useState<TranslationTask | null>(null);\n\n const context = useContext(TranslationContext);\n const toast = useToast();\n\n useEffect(() => {\n async function fetchData() {\n if (!context) {\n toast.push({\n title: 'Unable to load translation data: missing context',\n status: 'error',\n closable: true,\n });\n return;\n }\n\n const locales = await context.adapter.getLocales(context.secrets);\n setLocales(locales);\n try {\n const task = await context?.adapter.getTranslationTask(\n context.documentInfo,\n context.secrets\n );\n setTask(task);\n } catch (err) {\n let errorMsg;\n if (err instanceof Error) {\n errorMsg = err.message;\n } else {\n errorMsg = err ? String(err) : null;\n }\n\n // Hacky bypass for when a document is not yet translated and has never been uploaded\n if (errorMsg?.toLowerCase().includes('no source file found')) {\n return;\n }\n\n toast.push({\n title: `Error creating translation job`,\n description: errorMsg,\n status: 'error',\n closable: true,\n });\n }\n }\n\n fetchData();\n }, [context, toast]);\n\n const refreshTask = useCallback(async () => {\n const task = await context?.adapter.getTranslationTask(\n context.documentInfo,\n context.secrets\n );\n if (task) {\n setTask(task);\n }\n }, [context, setTask]);\n\n return (\n <Stack space={6}>\n <NewTask locales={locales} refreshTask={refreshTask} />\n {task && (\n <TaskView task={task} locales={locales} refreshTask={refreshTask} />\n )}\n </Stack>\n );\n};\n","import { SanityClient, useClient as useSanityClient } from 'sanity';\n\nexport const useClient = (): SanityClient => {\n return useSanityClient({ apiVersion: '2022-12-07' });\n};\n","import { useState, useEffect } from 'react';\nimport { SanityDocumentLike } from 'sanity';\nimport { useClient } from './useClient';\n\ninterface ReturnProps<T> {\n loading: boolean;\n secrets: T | null;\n}\nexport function useSecrets<T>(id: string): ReturnProps<T> {\n const [loading, setLoading] = useState<boolean>(true);\n const [secrets, setSecrets] = useState<T | null>(null);\n const client = useClient();\n\n useEffect(() => {\n function fetchData() {\n client\n .fetch('* [_id == $id][0]', { id })\n .then((doc: SanityDocumentLike) => {\n const result: Record<string, any> = {};\n for (const key in doc) {\n if (key[0] !== '_') {\n result[key] = doc[key];\n }\n }\n setSecrets(result as T);\n setLoading(false);\n });\n }\n fetchData();\n }, [id, client]);\n\n return { loading, secrets };\n}\n","import { useMemo } from 'react';\nimport { SanityDocument, useSchema } from 'sanity';\nimport { randomKey } from '@sanity/util/content';\nimport {\n ThemeProvider,\n ToastProvider,\n Stack,\n Text,\n Layer,\n Box,\n Card,\n Flex,\n Spinner,\n} from '@sanity/ui';\n\nimport { TranslationContext } from './TranslationContext';\nimport { TranslationView } from './TranslationView';\nimport { useClient } from '../hooks/useClient';\nimport { useSecrets } from '../hooks/useSecrets';\nimport { GTFile, Secrets, TranslationsTabConfigOptions } from '../types';\n\ntype TranslationTabProps = {\n document: {\n displayed: SanityDocument;\n };\n options: TranslationsTabConfigOptions;\n};\n\nconst TranslationTab = (props: TranslationTabProps) => {\n const { displayed } = props.document;\n const client = useClient();\n const schema = useSchema();\n\n const documentId =\n displayed && displayed._id\n ? (displayed._id.split('drafts.').pop() as string)\n : '';\n\n const revisionId = displayed && displayed._rev ? displayed._rev : undefined;\n\n const { errors, importTranslation, exportForTranslation } = useMemo(() => {\n const { serializationOptions, languageField, mergeWithTargetLocale } =\n props.options;\n const ctx = {\n client,\n schema,\n };\n\n const allErrors = [];\n\n const importTranslationFunc = props.options.importTranslation;\n if (!importTranslationFunc) {\n allErrors.push({\n key: randomKey(12),\n text: (\n <>\n You need to provide an <code>importTranslation</code> function. See\n documentation.\n </>\n ),\n });\n }\n\n const contextImportTranslation = (localeId: string, doc: string) => {\n return importTranslationFunc(\n { documentId, versionId: revisionId },\n localeId,\n doc,\n ctx,\n serializationOptions,\n languageField,\n mergeWithTargetLocale\n );\n };\n\n const exportTranslationFunc = props.options.exportForTranslation;\n if (!exportTranslationFunc) {\n allErrors.push({\n key: randomKey(12),\n text: (\n <>\n You need to provide an <code>exportForTranslation</code> function.\n See documentation.\n </>\n ),\n });\n }\n\n const contextExportForTranslation = (docInfo: GTFile) => {\n return exportTranslationFunc(\n docInfo,\n ctx,\n serializationOptions,\n languageField\n );\n };\n\n return {\n errors: allErrors,\n importTranslation: contextImportTranslation,\n exportForTranslation: contextExportForTranslation,\n };\n }, [props.options, documentId, revisionId, client, schema]);\n\n const { loading, secrets } = useSecrets<Secrets>(\n `${props.options.secretsNamespace || 'translationService'}.secrets`\n );\n\n const hasErrors = errors.length > 0;\n\n if (loading || !secrets) {\n return (\n <ThemeProvider>\n <Flex padding={5} align='center' justify='center'>\n <Spinner />\n </Flex>\n </ThemeProvider>\n );\n } else if (!secrets) {\n return (\n <ThemeProvider>\n <Box padding={4}>\n <Card tone='caution' padding={[2, 3, 4, 4]} shadow={1} radius={2}>\n <Text>\n Can't find secrets for your translation service. Did you load them\n into this dataset?\n </Text>\n </Card>\n </Box>\n </ThemeProvider>\n );\n }\n return (\n <ThemeProvider>\n <Box padding={4}>\n <Layer>\n <ToastProvider paddingY={7}>\n {hasErrors && (\n <Stack space={3}>\n {errors.map((error) => (\n <Card\n key={error.key}\n tone='caution'\n padding={[2, 3, 4, 4]}\n shadow={1}\n radius={2}\n >\n <Text>{error.text}</Text>\n </Card>\n ))}\n </Stack>\n )}\n {!hasErrors && (\n <TranslationContext.Provider\n value={{\n documentInfo: { documentId, versionId: revisionId },\n secrets,\n importTranslation,\n exportForTranslation,\n adapter: props.options.adapter,\n workflowOptions: props.options.workflowOptions,\n localeIdAdapter: props.options.localeIdAdapter,\n callbackUrl: props.options.callbackUrl,\n mergeWithTargetLocale: props.options.mergeWithTargetLocale,\n }}\n >\n <TranslationView />\n </TranslationContext.Provider>\n )}\n </ToastProvider>\n </Layer>\n </Box>\n </ThemeProvider>\n );\n};\n\nexport default TranslationTab;\n","import { SanityClient, SanityDocument } from 'sanity';\n\n//revision fetch\nexport const findDocumentAtRevision = async (\n documentId: string,\n rev: string,\n client: SanityClient\n): Promise<SanityDocument> => {\n const dataset = client.config().dataset;\n const baseUrl = `/data/history/${dataset}/documents/${documentId}?revision=${rev}`;\n const url = client.getUrl(baseUrl);\n const revisionDoc = await fetch(url, { credentials: 'include' })\n .then((req) => req.json())\n .then((req) => {\n if (req.documents && req.documents.length) {\n return req.documents[0];\n }\n return null;\n });\n\n return revisionDoc;\n};\n","import { SanityClient, SanityDocument } from 'sanity';\n\n//use perspectives in the future\nexport const findLatestDraft = (\n documentId: string,\n client: SanityClient\n): Promise<SanityDocument> => {\n const query = `*[_id == $id || _id == $draftId]`;\n const params = { id: documentId, draftId: `drafts.${documentId}` };\n return client\n .fetch(query, params)\n .then(\n (docs: SanityDocument[]) =>\n docs.find((doc) => doc._id.startsWith('drafts.')) ?? docs[0]\n );\n};\n","import { SanityClient, SanityDocumentLike } from 'sanity';\n\nexport const createI18nDocAndPatchMetadata = (\n translatedDoc: SanityDocumentLike,\n localeId: string,\n client: SanityClient,\n translationMetadata: SanityDocumentLike,\n languageField: string = 'language'\n): void => {\n translatedDoc[languageField] = localeId;\n const translations = translationMetadata.translations as Record<\n string,\n any\n >[];\n const existingLocaleKey = translations.find(\n (translation) => translation._key === localeId\n );\n const operation = existingLocaleKey ? 'replace' : 'after';\n const location = existingLocaleKey\n ? `translations[_key == \"${localeId}\"]`\n : 'translations[-1]';\n\n //remove system fields\n const { _updatedAt, _createdAt, ...rest } = translatedDoc;\n client.create({ ...rest, _id: 'drafts.' }).then((doc) => {\n const _ref = doc._id.replace('drafts.', '');\n client\n .transaction()\n .patch(translationMetadata._id, (p) =>\n p.insert(operation, location, [\n {\n _key: localeId,\n _type: 'internationalizedArrayReferenceValue',\n value: {\n _type: 'reference',\n _ref,\n _weak: true,\n _strengthenOnPublish: {\n type: doc._type,\n },\n },\n },\n ])\n )\n .commit();\n });\n};\n","import {\n KeyedObject,\n Reference,\n SanityClient,\n SanityDocumentLike,\n} from 'sanity';\n\ntype TranslationReference = KeyedObject & {\n _type: 'internationalizedArrayReferenceValue';\n value: Reference;\n};\n\nexport const getOrCreateTranslationMetadata = async (\n documentId: string,\n baseDocument: SanityDocumentLike,\n client: SanityClient,\n baseLanguage: string\n): Promise<SanityDocumentLike> => {\n // First, try to get existing metadata\n const existingMetadata = await client.fetch(\n `*[\n _type == 'translation.metadata' &&\n translations[_key == $baseLanguage][0].value._ref == $id\n ][0]`,\n { baseLanguage, id: documentId.replace('drafts.', '') }\n );\n\n if (existingMetadata) {\n return existingMetadata;\n }\n\n // If no metadata exists, create it atomically\n const baseLangEntry: TranslationReference = {\n _key: baseLanguage,\n _type: 'internationalizedArrayReferenceValue',\n value: {\n _type: 'reference',\n _ref: baseDocument._id.replace('drafts.', ''),\n },\n };\n\n if (baseDocument._id.startsWith('drafts.')) {\n baseLangEntry.value = {\n ...baseLangEntry.value,\n _weak: true,\n //this should reflect doc i18n config when this\n //plugin is able to take that as a config option\n _strengthenOnPublish: {\n type: baseDocument._type,\n },\n };\n }\n\n try {\n // Use createIfNotExists to handle race conditions\n return await client.createIfNotExists({\n _id: `translation.metadata.${documentId.replace('drafts.', '')}`,\n _type: 'translation.metadata',\n translations: [baseLangEntry],\n });\n } catch (error) {\n // If creation fails due to race condition, fetch the existing document\n const metadata = await client.fetch(\n `*[\n _type == 'translation.metadata' &&\n translations[_key == $baseLanguage][0].value._ref == $id\n ][0]`,\n { baseLanguage, id: documentId.replace('drafts.', '') }\n );\n\n if (metadata) {\n return metadata;\n }\n\n throw error;\n }\n};\n","import { SanityClient, SanityDocumentLike } from 'sanity';\n\nexport const patchI18nDoc = (\n i18nDocId: string,\n mergedDocument: SanityDocumentLike,\n translatedFields: Record<string, any>,\n client: SanityClient\n): void => {\n const cleanedMerge: Record<string, any> = {};\n Object.entries(mergedDocument).forEach(([key, value]) => {\n if (\n //only patch those fields that had translated strings\n key in translatedFields &&\n //don't overwrite any existing system values on the i18n doc\n !['_id', '_rev', '_updatedAt', 'language'].includes(key)\n ) {\n cleanedMerge[key] = value;\n }\n });\n\n client\n .transaction()\n .patch(i18nDocId, (p) => p.set(cleanedMerge))\n .commit();\n};\n","import { GT } from 'generaltranslation';\nimport { libraryDefaultLocale } from 'generaltranslation/internal';\nimport type { Secrets } from '../types';\n\nexport const gt = new GT();\n\nexport function overrideConfig(secrets: Secrets | null) {\n gt.setConfig({\n ...(secrets?.project && { projectId: secrets?.project }),\n ...(secrets?.secret && { apiKey: secrets?.secret }),\n });\n}\n\nexport class GTConfig {\n sourceLocale: string;\n locales: string[];\n private static instance: GTConfig;\n constructor(sourceLocale: string, locales: string[]) {\n this.sourceLocale = sourceLocale;\n this.locales = locales;\n }\n\n static getInstance() {\n if (!this.instance) {\n this.instance = new GTConfig(gt.sourceLocale || libraryDefaultLocale, []);\n }\n return this.instance;\n }\n\n setSourceLocale(sourceLocale: string) {\n this.sourceLocale = sourceLocale;\n }\n getSourceLocale() {\n return this.sourceLocale;\n }\n\n setLocales(locales: string[]) {\n this.locales = locales;\n }\n getLocales() {\n return this.locales;\n }\n}\nexport const gtConfig = GTConfig.getInstance();\n","import { SanityClient, SanityDocument, SanityDocumentLike } from 'sanity';\nimport { BaseDocumentMerger } from 'sanity-naive-html-serializer';\n\nimport { findLatestDraft, findDocumentAtRevision } from '../utils';\nimport {\n createI18nDocAndPatchMetadata,\n getOrCreateTranslationMetadata,\n patchI18nDoc,\n} from './helpers';\nimport type { GTFile } from '../../types';\nimport { gtConfig } from '../../adapter/core';\n\nexport const documentLevelPatch = async (\n docInfo: GTFile,\n translatedFields: SanityDocument,\n localeId: string,\n client: SanityClient,\n languageField: string = 'language',\n mergeWithTargetLocale: boolean = false\n): Promise<void> => {\n const baseLanguage = gtConfig.getSourceLocale();\n //this is the document we use to merge with the translated fields\n let baseDoc: SanityDocument | null = null;\n\n //this is the document that will serve as the translated doc\n let i18nDoc: SanityDocument | null = null;\n\n /*\n * we send over the _rev with our translation file so we can\n * accurately coalesce the translations in case something has\n * changed in the base document since translating\n */\n if (docInfo.documentId && docInfo.versionId) {\n baseDoc = await findDocumentAtRevision(\n docInfo.documentId,\n docInfo.versionId,\n client\n );\n }\n if (!baseDoc) {\n baseDoc = await findLatestDraft(docInfo.documentId, client);\n }\n\n /* first, check our metadata to see if a translated document exists\n * if no metadata exists, we create it atomically\n */\n const translationMetadata = await getOrCreateTranslationMetadata(\n docInfo.documentId,\n baseDoc,\n client,\n baseLanguage\n );\n\n //the id of the translated document should be on the metadata if it exists\n const i18nDocId = (\n translationMetadata.translations as Array<Record<string, any>>\n ).find((translation) => translation._key === localeId)?.value?._ref;\n\n if (i18nDocId) {\n //get draft or published\n i18nDoc = await findLatestDraft(i18nDocId, client);\n }\n\n //if the user has chosen to merge with the target locale,\n //any existing target document will serve as our base document\n if (mergeWithTargetLocale && i18nDoc) {\n baseDoc = i18nDoc;\n } else if (docInfo.documentId && docInfo.versionId) {\n /*\n * we send over the _rev with our translation file so we can\n * accurately coalesce the translations in case something has\n * changed in the base document since translating\n */\n baseDoc = await findDocumentAtRevision(\n docInfo.documentId,\n docInfo.versionId,\n client\n );\n }\n\n if (!baseDoc) {\n baseDoc = await findLatestDraft(docInfo.documentId, client);\n }\n /*\n * we then merge the translation with the base document\n * to create a document that contains the translation and everything\n * that wasn't sent over for translation\n */\n const merged = BaseDocumentMerger.documentLevelMerge(\n translatedFields,\n baseDoc\n ) as SanityDocumentLike;\n\n if (i18nDoc) {\n patchI18nDoc(docInfo.documentId, merged, translatedFields, client);\n }\n //otherwise, create a new document\n //and add the document reference to the metadata document\n else {\n createI18nDocAndPatchMetadata(\n merged,\n localeId,\n client,\n translationMetadata,\n languageField\n );\n }\n};\n","import { SanityClient, SanityDocument, SanityDocumentLike } from 'sanity';\nimport { BaseDocumentMerger } from 'sanity-naive-html-serializer';\n\nimport { findLatestDraft, findDocumentAtRevision } from '../utils';\nimport type { GTFile } from '../../types';\n\nexport const legacyDocumentLevelPatch = async (\n docInfo: GTFile,\n translatedFields: SanityDocument,\n localeId: string,\n client: SanityClient\n): Promise<void> => {\n let baseDoc: SanityDocument | null = null;\n\n /*\n * we send over the _rev with our translation file so we can\n * accurately coalesce the translations in case something has\n * changed in the base document since translating\n */\n if (docInfo.documentId && docInfo.versionId) {\n baseDoc = await findDocumentAtRevision(\n docInfo.documentId,\n docInfo.versionId,\n client\n );\n }\n if (!baseDoc) {\n baseDoc = await findLatestDraft(docInfo.documentId, client);\n }\n\n /*\n * we then merge the translation with the base document\n * to create a document that contains the translation and everything\n * that wasn't sent over for translation\n */\n const merged = BaseDocumentMerger.documentLevelMerge(\n translatedFields,\n baseDoc\n ) as SanityDocumentLike;\n\n /* we now need to check if we have a translated document\n * if not, we create it\n */\n const targetId = `drafts.${docInfo.documentId}__i18n_${localeId}`;\n const i18nDoc = await findLatestDraft(targetId, client);\n if (i18nDoc) {\n const cleanedMerge: Record<string, any> = {};\n //don't overwrite any existing system values on the i18n doc\n Object.entries(merged).forEach(([key, value]) => {\n if (\n Object.keys(translatedFields).includes(key) &&\n !['_id', '_rev', '_updatedAt'].includes(key)\n ) {\n cleanedMerge[key] = value;\n }\n });\n\n await client\n .transaction()\n //@ts-ignore\n .patch(i18nDoc._id, (p) => p.set(cleanedMerge))\n .commit();\n } else {\n merged._id = targetId;\n\n merged.__i18n_lang = localeId;\n await client.create(merged);\n }\n};\n","import {\n ExportForTranslation,\n GTSerializedDocument,\n ImportTranslation,\n} from '../../types';\nimport { SanityDocument } from 'sanity';\nimport { findLatestDraft } from '../utils';\nimport { documentLevelPatch } from './documentLevelPatch';\nimport { legacyDocumentLevelPatch } from './legacyDocumentLevelPatch';\nimport {\n BaseDocumentDeserializer,\n BaseDocumentSerializer,\n defaultStopTypes,\n customSerializers,\n customBlockDeserializers,\n} from 'sanity-naive-html-serializer';\nimport { gtConfig } from '../../adapter/core';\n\nexport const baseDocumentLevelConfig = {\n exportForTranslation: async (\n ...params: Parameters<ExportForTranslation>\n ): Promise<GTSerializedDocument> => {\n const [\n docInfo,\n context,\n serializationOptions = {},\n languageField = 'language',\n ] = params;\n const { client, schema } = context;\n const stopTypes = [\n ...(serializationOptions.additionalStopTypes ?? []),\n ...defaultStopTypes,\n ];\n const serializers = {\n ...customSerializers,\n types: {\n ...customSerializers.types,\n ...(serializationOptions.additionalSerializers ?? {}),\n },\n };\n const doc = await findLatestDraft(docInfo.documentId, client);\n delete doc[languageField];\n const baseLanguage = gtConfig.getSourceLocale();\n const serialized = BaseDocumentSerializer(schema).serializeDocument(\n doc,\n 'document',\n baseLanguage,\n stopTypes,\n serializers\n );\n return {\n content: serialized.content,\n documentId: docInfo.documentId,\n versionId: docInfo.versionId,\n };\n },\n importTranslation: (\n ...params: Parameters<ImportTranslation>\n ): Promise<void> => {\n const [\n docInfo,\n localeId,\n document,\n context,\n serializationOptions = {},\n languageField = 'language',\n mergeWithTargetLocale = false,\n ] = params;\n const { client } = context;\n const deserializers = {\n types: {\n ...(serializationOptions.additionalDeserializers ?? {}),\n },\n };\n const blockDeserializers = [\n ...(serializationOptions.additionalBlockDeserializers ?? []),\n ...customBlockDeserializers,\n ];\n\n const deserialized = BaseDocumentDeserializer.deserializeDocument(\n document,\n deserializers,\n blockDeserializers\n ) as SanityDocument;\n return documentLevelPatch(\n docInfo, // versionId is not used here, since we just use the _rev id in the deserialized HTML itself\n deserialized,\n localeId,\n client,\n languageField,\n mergeWithTargetLocale\n );\n },\n secretsNamespace: 'translationService',\n};\n\nexport const legacyDocumentLevelConfig = {\n ...baseDocumentLevelConfig,\n importTranslation: (\n ...params: Parameters<ImportTranslation>\n ): Promise<void> => {\n const [docInfo, localeId, document, context, serializationOptions = {}] =\n params;\n const { client } = context;\n const deserializers = {\n types: {\n ...(serializationOptions.additionalDeserializers ?? {}),\n },\n };\n const blockDeserializers = [\n ...(serializationOptions.additionalBlockDeserializers ?? []),\n ...customBlockDeserializers,\n ];\n\n const deserialized = BaseDocumentDeserializer.deserializeDocument(\n document,\n deserializers,\n blockDeserializers\n ) as SanityDocument;\n return legacyDocumentLevelPatch(\n docInfo, // versionId is not used here, since we just use the _rev id in the deserialized HTML itself\n deserialized,\n localeId,\n client\n );\n },\n};\n\nexport { documentLevelPatch, legacyDocumentLevelPatch };\n","import { SanityClient, SanityDocument } from 'sanity';\nimport {\n BaseDocumentSerializer,\n BaseDocumentDeserializer,\n BaseDocumentMerger,\n defaultStopTypes,\n customSerializers,\n customBlockDeserializers,\n} from 'sanity-naive-html-serializer';\n\nimport type {\n ExportForTranslation,\n GTFile,\n GTSerializedDocument,\n ImportTranslation,\n} from '../types';\nimport { findLatestDraft, findDocumentAtRevision } from './utils';\nimport { gtConfig } from '../adapter/core';\n\nexport const fieldLevelPatch = async (\n docInfo: GTFile,\n translatedFields: SanityDocument,\n localeId: string,\n client: SanityClient,\n mergeWithTargetLocale: boolean = false\n): Promise<void> => {\n let baseDoc: SanityDocument;\n const baseLanguage = gtConfig.getSourceLocale();\n if (docInfo.documentId && docInfo.versionId) {\n baseDoc = await findDocumentAtRevision(\n docInfo.documentId,\n docInfo.versionId,\n client\n );\n } else {\n baseDoc = await findLatestDraft(docInfo.documentId, client);\n }\n\n const merged = BaseDocumentMerger.fieldLevelMerge(\n translatedFields,\n baseDoc,\n localeId,\n mergeWithTargetLocale ? baseLanguage : localeId\n );\n\n await client.patch(baseDoc._id).set(merged).commit();\n};\n\nexport const baseFieldLevelConfig = {\n exportForTranslation: async (\n ...params: Parameters<ExportForTranslation>\n ): Promise<GTSerializedDocument> => {\n const [docInfo, context, serializationOptions = {}] = params;\n const baseLanguage = gtConfig.getSourceLocale();\n const { client, schema } = context;\n const stopTypes = [\n ...(serializationOptions.additionalStopTypes ?? []),\n ...defaultStopTypes,\n ];\n const serializers = {\n ...customSerializers,\n types: {\n ...customSerializers.types,\n ...(serializationOptions.additionalSerializers ?? {}),\n },\n };\n const doc = await findLatestDraft(docInfo.documentId, client);\n const serialized = BaseDocumentSerializer(schema).serializeDocument(\n doc,\n 'field',\n baseLanguage,\n stopTypes,\n serializers\n );\n return {\n content: serialized.content,\n documentId: docInfo.documentId,\n versionId: docInfo.versionId,\n };\n },\n importTranslation: (\n ...params: Parameters<ImportTranslation>\n ): Promise<void> => {\n const [\n docInfo,\n localeId,\n document,\n context,\n serializationOptions = {},\n ,\n mergeWithTargetLocale,\n ] = params;\n const { client } = context;\n const deserializers = {\n types: {\n ...(serializationOptions.additionalDeserializers ?? {}),\n },\n };\n const blockDeserializers = [\n ...(serializationOptions.additionalBlockDeserializers ?? []),\n ...customBlockDeserializers,\n ];\n\n const deserialized = BaseDocumentDeserializer.deserializeDocument(\n document,\n deserializers,\n blockDeserializers\n ) as SanityDocument;\n return fieldLevelPatch(\n docInfo,\n deserialized,\n localeId,\n client,\n mergeWithTargetLocale\n );\n },\n secretsNamespace: 'translationService',\n};\n","import type { Adapter, Secrets } from '../types';\nimport { gt, gtConfig } from './core';\n\n// note: this function is used to get the available locales for a project\nexport const getLocales: Adapter['getLocales'] = async (\n secrets: Secrets | null\n) => {\n return gtConfig.getLocales().map((locale: string) => ({\n localeId: locale,\n description: gt.getLocaleProperties(locale).name,\n enabled: true,\n }));\n};\n","import type { Adapter, GTFile, Secrets } from '../types';\nimport { gt, overrideConfig } from './core';\n\n// note: this function is used to get the status of a current translation task\nexport const getTranslationTask: Adapter['getTranslationTask'] = async (\n documentInfo: GTFile,\n secrets: Secrets | null\n) => {\n if (!documentInfo.documentId || !secrets) {\n return {\n document: documentInfo,\n locales: [],\n };\n }\n overrideConfig(secrets);\n const task = await gt.querySourceFile({\n fileId: documentInfo.documentId,\n versionId: documentInfo.versionId || undefined,\n });\n\n return {\n document: {\n documentId: task.sourceFile.fileId,\n versionId: task.sourceFile.versionId,\n },\n locales: task.translations.map((translation) => ({\n localeId: translation.locale,\n progress: translation.completedAt ? 100 : 0,\n })),\n };\n};\n","import type { Adapter, GTFile, Secrets } from '../types';\nimport { gt, overrideConfig } from './core';\n\n// note: downloads the translation for a given task and locale\nexport const getTranslation: Adapter['getTranslation'] = async (\n documentInfo: GTFile,\n localeId: string,\n secrets: Secrets | null\n) => {\n if (!secrets) {\n return '';\n }\n overrideConfig(secrets);\n const text = await gt.downloadTranslatedFile({\n fileId: documentInfo.documentId,\n versionId: documentInfo.versionId || undefined,\n locale: localeId,\n });\n return text;\n};\n","import type { Adapter, GTFile, GTSerializedDocument, Secrets } from '../types';\nimport { getTranslationTask } from './getTranslationTask';\nimport { gt, overrideConfig } from './core';\nimport { libraryDefaultLocale } from 'generaltranslation/internal';\n\n// note: this function is used to create a new translation task\n// uploads files & calls the getTranslationTask function\nexport const createTask: Adapter['createTask'] = async (\n documentInfo: GTFile,\n serializedDocument: GTSerializedDocument,\n localeIds: string[],\n secrets: Secrets | null,\n workflowUid?: string,\n callbackUrl?: string\n) => {\n const fileName = `sanity-${documentInfo.documentId}`;\n overrideConfig(secrets);\n const uploadResult = await gt.uploadSourceFiles(\n [\n {\n source: {\n content: serializedDocument.content,\n fileName,\n fileId: documentInfo.documentId,\n fileFormat: 'HTML',\n locale: gt.sourceLocale || libraryDefaultLocale,\n versionId: documentInfo.versionId || undefined,\n },\n },\n ],\n {\n sourceLocale: gt.sourceLocale || libraryDefaultLocale,\n }\n );\n const enqueueResult = await gt.enqueueFiles(uploadResult.uploadedFiles, {\n sourceLocale: gt.sourceLocale || libraryDefaultLocale,\n targetLocales: localeIds,\n });\n const task = await getTranslationTask(documentInfo, secrets);\n return task;\n};\n","import type { Adapter } from '../types';\n\nimport { getLocales } from './getLocales';\nimport { getTranslationTask } from './getTranslationTask';\nimport { getTranslation } from './getTranslation';\nimport { createTask } from './createTask';\n\nexport const GTAdapter: Adapter = {\n getLocales,\n getTranslationTask,\n createTask,\n getTranslation,\n};\n","import TranslationsTab from './components/TranslationsTab';\nimport {\n Secrets,\n Adapter,\n ExportForTranslation,\n ImportTranslation,\n TranslationFunctionContext,\n TranslationsTabConfigOptions,\n GTFile,\n} from './types';\nimport {\n baseDocumentLevelConfig,\n legacyDocumentLevelConfig as baseLegacyDocumentLevelConfig,\n legacyDocumentLevelPatch,\n baseFieldLevelConfig,\n findLatestDraft,\n documentLevelPatch,\n fieldLevelPatch,\n} from './configuration';\nimport {\n BaseDocumentSerializer,\n BaseDocumentDeserializer,\n BaseDocumentMerger,\n defaultStopTypes,\n customSerializers,\n SerializedDocument,\n} from 'sanity-naive-html-serializer';\n\nexport type {\n Secrets,\n Adapter,\n ExportForTranslation,\n ImportTranslation,\n TranslationFunctionContext,\n TranslationsTabConfigOptions,\n SerializedDocument,\n};\nexport {\n TranslationsTab,\n //helpers for end developers who may need to customize serialization\n findLatestDraft,\n legacyDocumentLevelPatch,\n documentLevelPatch,\n fieldLevelPatch,\n BaseDocumentSerializer,\n BaseDocumentDeserializer,\n BaseDocumentMerger,\n defaultStopTypes,\n customSerializers,\n};\n\nimport { GTAdapter } from './adapter';\nimport { definePlugin } from 'sanity';\nimport { gt, gtConfig } from './adapter/core';\nimport { GTSerializedDocument } from './types';\nimport { libraryDefaultLocale } from 'generaltranslation/internal';\n\ninterface ConfigOptions {\n adapter: Adapter;\n secretsNamespace: string | null;\n exportForTranslation: (\n docInfo: GTFile,\n context: TranslationFunctionContext\n ) => Promise<GTSerializedDocument>;\n importTranslation: (\n docInfo: GTFile,\n localeId: string,\n doc: string,\n context: TranslationFunctionContext\n ) => Promise<void>;\n}\n\nexport const defaultDocumentLevelConfig: ConfigOptions = {\n ...baseDocumentLevelConfig,\n adapter: GTAdapter,\n secretsNamespace: 'generaltranslation',\n};\n\nexport const legacyDocumentLevelConfig: ConfigOptions = {\n ...baseLegacyDocumentLevelConfig,\n adapter: GTAdapter,\n secretsNamespace: 'generaltranslation',\n};\n\nexport const defaultFieldLevelConfig: ConfigOptions = {\n ...baseFieldLevelConfig,\n adapter: GTAdapter,\n secretsNamespace: 'generaltranslation',\n};\n\nexport { GTAdapter };\n\n/**\n * Usage in `sanity.config.ts` (or .js)\n *\n * ```ts\n * import {defineConfig} from 'sanity'\n * import {gtPlugin} from '@generaltranslation/sanity'\n *\n * export default defineConfig({\n * // ...\n * plugins: [gtPlugin()],\n * })\n * ```\n */\nexport const gtPlugin = definePlugin<\n Omit<Parameters<typeof gt.setConfig>[0], 'locales'> & { locales: string[] }\n>(({ sourceLocale, locales, customMapping, apiKey, projectId }) => {\n gtConfig.setLocales(locales);\n gtConfig.setSourceLocale(sourceLocale || libraryDefaultLocale);\n gt.setConfig({\n sourceLocale: sourceLocale,\n customMapping: customMapping,\n apiKey: apiKey,\n projectId: projectId,\n });\n return {\n name: '@generaltranslation/sanity',\n };\n});\n"],"names":["React","from","length","position","character","characters","j","k","x","y","z","_","f","o","t","n","e","r","s","d.RULESET","d.prefixer","d.stringify","a","c","l","d.compile","p","d.serialize","d.middleware","d.rulesheet","h","m","g","S","w","E","N","O","i","d","v","b","u","D","styled","Box","useCallback","jsx","Button","jsxs","Flex","Switch","Text","useState","useEffect","useContext","useToast","createTask","Stack","Grid","Select","Card","Label","CheckmarkCircleIcon","DownloadIcon","prev","ArrowTopRightIcon","locales","task","useSanityClient","useSchema","useMemo","randomKey","Fragment","ThemeProvider","Spinner","Layer","ToastProvider","GT","libraryDefaultLocale","BaseDocumentMerger","defaultStopTypes","customSerializers","BaseDocumentSerializer","document","customBlockDeserializers","BaseDocumentDeserializer","legacyDocumentLevelConfig","baseLegacyDocumentLevelConfig","definePlugin"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12]}
1
+ {"version":3,"file":"index.js","sources":["../src/components/TranslationContext.tsx","../src/utils/shared.ts","../src/adapter/core.ts","../../../node_modules/styled-components/node_modules/tslib/tslib.es6.mjs","../../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../../../node_modules/stylis/src/Enum.js","../../../node_modules/stylis/src/Utility.js","../../../node_modules/stylis/src/Tokenizer.js","../../../node_modules/stylis/src/Parser.js","../../../node_modules/stylis/src/Prefixer.js","../../../node_modules/stylis/src/Serializer.js","../../../node_modules/stylis/src/Middleware.js","../../../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../../node_modules/styled-components/dist/styled-components.esm.js","../src/components/NewTask.tsx","../src/components/ProgressBar.tsx","../src/components/LanguageStatus.tsx","../src/components/TaskView.tsx","../src/components/TranslationView.tsx","../src/hooks/useClient.ts","../src/hooks/useSecrets.ts","../src/components/TranslationsTab.tsx","../src/configuration/utils/findLatestDraft.ts","../src/configuration/utils/findDocumentAtRevision.ts","../src/utils/applyDocuments.ts","../src/configuration/baseDocumentLevelConfig/helpers/createI18nDocAndPatchMetadata.ts","../src/configuration/baseDocumentLevelConfig/helpers/getOrCreateTranslationMetadata.ts","../src/configuration/baseDocumentLevelConfig/helpers/patchI18nDoc.ts","../src/configuration/baseDocumentLevelConfig/documentLevelPatch.ts","../src/configuration/baseDocumentLevelConfig/index.ts","../src/configuration/baseFieldLevelConfig.ts","../src/adapter/getLocales.ts","../src/adapter/getTranslationTask.ts","../src/adapter/getTranslation.ts","../src/adapter/createTask.ts","../src/adapter/index.ts","../src/index.ts"],"sourcesContent":["// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport React from 'react';\nimport { SanityDocument } from 'sanity';\nimport { GTSerializedDocument } from '../types';\nimport { Adapter, GTFile, Secrets, WorkflowIdentifiers } from '../types';\n\nexport type ContextProps = {\n documentInfo: GTFile;\n document: SanityDocument;\n languageField: string;\n adapter: Adapter;\n importTranslation: (languageId: string, document: string) => Promise<void>;\n exportForTranslation: (documentInfo: GTFile) => Promise<GTSerializedDocument>;\n secrets: Secrets;\n workflowOptions?: WorkflowIdentifiers[];\n localeIdAdapter?: (id: string) => string | Promise<string>;\n callbackUrl?: string;\n mergeWithTargetLocale?: boolean;\n};\n\nexport const TranslationContext = React.createContext<ContextProps | null>(\n null\n);\n","export const SECRETS_NAMESPACE = 'generaltranslation';\n","import { GT } from 'generaltranslation';\nimport { libraryDefaultLocale } from 'generaltranslation/internal';\nimport type { Secrets } from '../types';\nimport type { TranslateDocumentFilter, IgnoreFields } from './types';\nimport { SECRETS_NAMESPACE } from '../utils/shared';\n\nexport const gt = new GT();\n\nexport function overrideConfig(secrets: Secrets | null) {\n gt.setConfig({\n ...(secrets?.project && { projectId: secrets?.project }),\n ...(secrets?.secret && { apiKey: secrets?.secret }),\n });\n}\n\nexport class GTConfig {\n secretsNamespace: string;\n languageField: string;\n sourceLocale: string;\n locales: string[];\n singletons: string[];\n singletonMapping: (sourceDocumentId: string, locale: string) => string;\n ignoreFields: IgnoreFields[];\n translateDocuments: TranslateDocumentFilter[];\n private static instance: GTConfig;\n constructor(\n secretsNamespace: string,\n languageField: string,\n sourceLocale: string,\n locales: string[],\n singletons: string[],\n singletonMapping: (sourceDocumentId: string, locale: string) => string,\n ignoreFields: IgnoreFields[],\n translateDocuments: TranslateDocumentFilter[]\n ) {\n this.secretsNamespace = secretsNamespace;\n this.languageField = languageField;\n this.sourceLocale = sourceLocale;\n this.locales = locales;\n this.singletons = singletons;\n this.singletonMapping = singletonMapping;\n this.ignoreFields = ignoreFields;\n this.translateDocuments = translateDocuments;\n }\n\n static getInstance() {\n if (!this.instance) {\n this.instance = new GTConfig(\n SECRETS_NAMESPACE,\n 'language',\n gt.sourceLocale || libraryDefaultLocale,\n [],\n [],\n () => '',\n [],\n []\n );\n }\n return this.instance;\n }\n\n init(\n secretsNamespace: string,\n languageField: string,\n sourceLocale: string,\n locales: string[],\n singletons: string[],\n singletonMapping: (sourceDocumentId: string, locale: string) => string,\n ignoreFields: IgnoreFields[],\n translateDocuments: TranslateDocumentFilter[]\n ) {\n this.secretsNamespace = secretsNamespace;\n this.languageField = languageField;\n this.sourceLocale = sourceLocale;\n this.locales = locales;\n this.singletons = singletons;\n this.singletonMapping = singletonMapping;\n this.ignoreFields = ignoreFields;\n this.translateDocuments = translateDocuments;\n }\n\n getSecretsNamespace() {\n return this.secretsNamespace;\n }\n\n getLanguageField() {\n return this.languageField;\n }\n\n getSourceLocale() {\n return this.sourceLocale;\n }\n getLocales() {\n return this.locales;\n }\n getSingletons() {\n return this.singletons;\n }\n getSingletonMapping() {\n return this.singletonMapping;\n }\n getIgnoreFields() {\n return this.ignoreFields;\n }\n getTranslateDocuments() {\n return this.translateDocuments;\n }\n}\nexport const gtConfig = GTConfig.getInstance();\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span', 0) ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span', 0) ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch', 0) ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine, filter, assign} from './Utility.js'\nimport {copy, lift, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(children = element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, callback = /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import{__spreadArray as e,__assign as t}from\"tslib\";import n from\"@emotion/is-prop-valid\";import o,{useRef as r,useState as s,useMemo as i,useEffect as a,useContext as c,useDebugValue as l,createElement as u}from\"react\";import p from\"shallowequal\";import*as d from\"stylis\";import h from\"@emotion/unitless\";var f=\"undefined\"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||\"data-styled\",m=\"active\",y=\"data-styled-version\",v=\"6.1.19\",g=\"/*!sc*/\\n\",S=\"undefined\"!=typeof window&&\"undefined\"!=typeof document,w=Boolean(\"boolean\"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&\"\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY?\"false\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.SC_DISABLE_SPEEDY&&\"\"!==process.env.SC_DISABLE_SPEEDY?\"false\"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY:\"production\"!==process.env.NODE_ENV),b={},E=/invalid hook call/i,N=new Set,P=function(t,n){if(\"production\"!==process.env.NODE_ENV){var o=n?' with the id of \"'.concat(n,'\"'):\"\",s=\"The component \".concat(t).concat(o,\" has been created dynamically.\\n\")+\"You may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\\nSee https://styled-components.com/docs/basics#define-styled-components-outside-of-the-render-method for more info.\\n\",i=console.error;try{var a=!0;console.error=function(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];E.test(t)?(a=!1,N.delete(s)):i.apply(void 0,e([t],n,!1))},r(),a&&!N.has(s)&&(console.warn(s),N.add(s))}catch(e){E.test(e.message)&&N.delete(s)}finally{console.error=i}}},_=Object.freeze([]),C=Object.freeze({});function I(e,t,n){return void 0===n&&(n=C),e.theme!==n.theme&&e.theme||t||n.theme}var A=new Set([\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\",\"u\",\"ul\",\"use\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"tspan\"]),O=/[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,D=/(^-|-$)/g;function R(e){return e.replace(O,\"-\").replace(D,\"\")}var T=/(a)(d)/gi,k=52,j=function(e){return String.fromCharCode(e+(e>25?39:97))};function x(e){var t,n=\"\";for(t=Math.abs(e);t>k;t=t/k|0)n=j(t%k)+n;return(j(t%k)+n).replace(T,\"$1-$2\")}var V,F=5381,z=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},M=function(e){return z(F,e)};function $(e){return x(M(e)>>>0)}function B(e){return\"production\"!==process.env.NODE_ENV&&\"string\"==typeof e&&e||e.displayName||e.name||\"Component\"}function G(e){return\"string\"==typeof e&&(\"production\"===process.env.NODE_ENV||e.charAt(0)===e.charAt(0).toLowerCase())}var L=\"function\"==typeof Symbol&&Symbol.for,Y=L?Symbol.for(\"react.memo\"):60115,q=L?Symbol.for(\"react.forward_ref\"):60112,W={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},H={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},U={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},J=((V={})[q]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},V[Y]=U,V);function X(e){return(\"type\"in(t=e)&&t.type.$$typeof)===Y?U:\"$$typeof\"in e?J[e.$$typeof]:W;var t}var Z=Object.defineProperty,K=Object.getOwnPropertyNames,Q=Object.getOwnPropertySymbols,ee=Object.getOwnPropertyDescriptor,te=Object.getPrototypeOf,ne=Object.prototype;function oe(e,t,n){if(\"string\"!=typeof t){if(ne){var o=te(t);o&&o!==ne&&oe(e,o,n)}var r=K(t);Q&&(r=r.concat(Q(t)));for(var s=X(e),i=X(t),a=0;a<r.length;++a){var c=r[a];if(!(c in H||n&&n[c]||i&&c in i||s&&c in s)){var l=ee(t,c);try{Z(e,c,l)}catch(e){}}}}return e}function re(e){return\"function\"==typeof e}function se(e){return\"object\"==typeof e&&\"styledComponentId\"in e}function ie(e,t){return e&&t?\"\".concat(e,\" \").concat(t):e||t||\"\"}function ae(e,t){if(0===e.length)return\"\";for(var n=e[0],o=1;o<e.length;o++)n+=t?t+e[o]:e[o];return n}function ce(e){return null!==e&&\"object\"==typeof e&&e.constructor.name===Object.name&&!(\"props\"in e&&e.$$typeof)}function le(e,t,n){if(void 0===n&&(n=!1),!n&&!ce(e)&&!Array.isArray(e))return t;if(Array.isArray(t))for(var o=0;o<t.length;o++)e[o]=le(e[o],t[o]);else if(ce(t))for(var o in t)e[o]=le(e[o],t[o]);return e}function ue(e,t){Object.defineProperty(e,\"toString\",{value:t})}var pe=\"production\"!==process.env.NODE_ENV?{1:\"Cannot create styled-component for component: %s.\\n\\n\",2:\"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",3:\"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",4:\"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",5:\"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",6:\"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",7:'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',8:'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',9:\"Missing document `<head>`\\n\\n\",10:\"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",11:\"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",12:\"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",13:\"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",14:'ThemeProvider: \"theme\" prop is required.\\n\\n',15:\"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to `<StyleSheetManager stylisPlugins={[]}>`, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",16:\"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",17:\"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\",18:\"ThemeProvider: Please make sure your useTheme hook is within a `<ThemeProvider>`\"}:{};function de(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=e[0],o=[],r=1,s=e.length;r<s;r+=1)o.push(e[r]);return o.forEach(function(e){n=n.replace(/%[a-z]/,e)}),n}function he(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];return\"production\"===process.env.NODE_ENV?new Error(\"An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#\".concat(t,\" for more information.\").concat(n.length>0?\" Args: \".concat(n.join(\", \")):\"\")):new Error(de.apply(void 0,e([pe[t]],n,!1)).trim())}var fe=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}return e.prototype.indexOfGroup=function(e){for(var t=0,n=0;n<e;n++)t+=this.groupSizes[n];return t},e.prototype.insertRules=function(e,t){if(e>=this.groupSizes.length){for(var n=this.groupSizes,o=n.length,r=o;e>=r;)if((r<<=1)<0)throw he(16,\"\".concat(e));this.groupSizes=new Uint32Array(r),this.groupSizes.set(n),this.length=r;for(var s=o;s<r;s++)this.groupSizes[s]=0}for(var i=this.indexOfGroup(e+1),a=(s=0,t.length);s<a;s++)this.tag.insertRule(i,t[s])&&(this.groupSizes[e]++,i++)},e.prototype.clearGroup=function(e){if(e<this.length){var t=this.groupSizes[e],n=this.indexOfGroup(e),o=n+t;this.groupSizes[e]=0;for(var r=n;r<o;r++)this.tag.deleteRule(n)}},e.prototype.getGroup=function(e){var t=\"\";if(e>=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],o=this.indexOfGroup(e),r=o+n,s=o;s<r;s++)t+=\"\".concat(this.tag.getRule(s)).concat(g);return t},e}(),me=1<<30,ye=new Map,ve=new Map,ge=1,Se=function(e){if(ye.has(e))return ye.get(e);for(;ve.has(ge);)ge++;var t=ge++;if(\"production\"!==process.env.NODE_ENV&&((0|t)<0||t>me))throw he(16,\"\".concat(t));return ye.set(e,t),ve.set(t,e),t},we=function(e,t){ge=t+1,ye.set(e,t),ve.set(t,e)},be=\"style[\".concat(f,\"][\").concat(y,'=\"').concat(v,'\"]'),Ee=new RegExp(\"^\".concat(f,'\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)')),Ne=function(e,t,n){for(var o,r=n.split(\",\"),s=0,i=r.length;s<i;s++)(o=r[s])&&e.registerName(t,o)},Pe=function(e,t){for(var n,o=(null!==(n=t.textContent)&&void 0!==n?n:\"\").split(g),r=[],s=0,i=o.length;s<i;s++){var a=o[s].trim();if(a){var c=a.match(Ee);if(c){var l=0|parseInt(c[1],10),u=c[2];0!==l&&(we(u,l),Ne(e,u,c[3]),e.getTag().insertRules(l,r)),r.length=0}else r.push(a)}}},_e=function(e){for(var t=document.querySelectorAll(be),n=0,o=t.length;n<o;n++){var r=t[n];r&&r.getAttribute(f)!==m&&(Pe(e,r),r.parentNode&&r.parentNode.removeChild(r))}};function Ce(){return\"undefined\"!=typeof __webpack_nonce__?__webpack_nonce__:null}var Ie=function(e){var t=document.head,n=e||t,o=document.createElement(\"style\"),r=function(e){var t=Array.from(e.querySelectorAll(\"style[\".concat(f,\"]\")));return t[t.length-1]}(n),s=void 0!==r?r.nextSibling:null;o.setAttribute(f,m),o.setAttribute(y,v);var i=Ce();return i&&o.setAttribute(\"nonce\",i),n.insertBefore(o,s),o},Ae=function(){function e(e){this.element=Ie(e),this.element.appendChild(document.createTextNode(\"\")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,o=t.length;n<o;n++){var r=t[n];if(r.ownerNode===e)return r}throw he(17)}(this.element),this.length=0}return e.prototype.insertRule=function(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}},e.prototype.deleteRule=function(e){this.sheet.deleteRule(e),this.length--},e.prototype.getRule=function(e){var t=this.sheet.cssRules[e];return t&&t.cssText?t.cssText:\"\"},e}(),Oe=function(){function e(e){this.element=Ie(e),this.nodes=this.element.childNodes,this.length=0}return e.prototype.insertRule=function(e,t){if(e<=this.length&&e>=0){var n=document.createTextNode(t);return this.element.insertBefore(n,this.nodes[e]||null),this.length++,!0}return!1},e.prototype.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},e.prototype.getRule=function(e){return e<this.length?this.nodes[e].textContent:\"\"},e}(),De=function(){function e(e){this.rules=[],this.length=0}return e.prototype.insertRule=function(e,t){return e<=this.length&&(this.rules.splice(e,0,t),this.length++,!0)},e.prototype.deleteRule=function(e){this.rules.splice(e,1),this.length--},e.prototype.getRule=function(e){return e<this.length?this.rules[e]:\"\"},e}(),Re=S,Te={isServer:!S,useCSSOMInjection:!w},ke=function(){function e(e,n,o){void 0===e&&(e=C),void 0===n&&(n={});var r=this;this.options=t(t({},Te),e),this.gs=n,this.names=new Map(o),this.server=!!e.isServer,!this.server&&S&&Re&&(Re=!1,_e(this)),ue(this,function(){return function(e){for(var t=e.getTag(),n=t.length,o=\"\",r=function(n){var r=function(e){return ve.get(e)}(n);if(void 0===r)return\"continue\";var s=e.names.get(r),i=t.getGroup(n);if(void 0===s||!s.size||0===i.length)return\"continue\";var a=\"\".concat(f,\".g\").concat(n,'[id=\"').concat(r,'\"]'),c=\"\";void 0!==s&&s.forEach(function(e){e.length>0&&(c+=\"\".concat(e,\",\"))}),o+=\"\".concat(i).concat(a,'{content:\"').concat(c,'\"}').concat(g)},s=0;s<n;s++)r(s);return o}(r)})}return e.registerId=function(e){return Se(e)},e.prototype.rehydrate=function(){!this.server&&S&&_e(this)},e.prototype.reconstructWithOptions=function(n,o){return void 0===o&&(o=!0),new e(t(t({},this.options),n),this.gs,o&&this.names||void 0)},e.prototype.allocateGSInstance=function(e){return this.gs[e]=(this.gs[e]||0)+1},e.prototype.getTag=function(){return this.tag||(this.tag=(e=function(e){var t=e.useCSSOMInjection,n=e.target;return e.isServer?new De(n):t?new Ae(n):new Oe(n)}(this.options),new fe(e)));var e},e.prototype.hasNameForId=function(e,t){return this.names.has(e)&&this.names.get(e).has(t)},e.prototype.registerName=function(e,t){if(Se(e),this.names.has(e))this.names.get(e).add(t);else{var n=new Set;n.add(t),this.names.set(e,n)}},e.prototype.insertRules=function(e,t,n){this.registerName(e,t),this.getTag().insertRules(Se(e),n)},e.prototype.clearNames=function(e){this.names.has(e)&&this.names.get(e).clear()},e.prototype.clearRules=function(e){this.getTag().clearGroup(Se(e)),this.clearNames(e)},e.prototype.clearTag=function(){this.tag=void 0},e}(),je=/&/g,xe=/^\\s*\\/\\/.*$/gm;function Ve(e,t){return e.map(function(e){return\"rule\"===e.type&&(e.value=\"\".concat(t,\" \").concat(e.value),e.value=e.value.replaceAll(\",\",\",\".concat(t,\" \")),e.props=e.props.map(function(e){return\"\".concat(t,\" \").concat(e)})),Array.isArray(e.children)&&\"@keyframes\"!==e.type&&(e.children=Ve(e.children,t)),e})}function Fe(e){var t,n,o,r=void 0===e?C:e,s=r.options,i=void 0===s?C:s,a=r.plugins,c=void 0===a?_:a,l=function(e,o,r){return r.startsWith(n)&&r.endsWith(n)&&r.replaceAll(n,\"\").length>0?\".\".concat(t):e},u=c.slice();u.push(function(e){e.type===d.RULESET&&e.value.includes(\"&\")&&(e.props[0]=e.props[0].replace(je,n).replace(o,l))}),i.prefix&&u.push(d.prefixer),u.push(d.stringify);var p=function(e,r,s,a){void 0===r&&(r=\"\"),void 0===s&&(s=\"\"),void 0===a&&(a=\"&\"),t=a,n=r,o=new RegExp(\"\\\\\".concat(n,\"\\\\b\"),\"g\");var c=e.replace(xe,\"\"),l=d.compile(s||r?\"\".concat(s,\" \").concat(r,\" { \").concat(c,\" }\"):c);i.namespace&&(l=Ve(l,i.namespace));var p=[];return d.serialize(l,d.middleware(u.concat(d.rulesheet(function(e){return p.push(e)})))),p};return p.hash=c.length?c.reduce(function(e,t){return t.name||he(15),z(e,t.name)},F).toString():\"\",p}var ze=new ke,Me=Fe(),$e=o.createContext({shouldForwardProp:void 0,styleSheet:ze,stylis:Me}),Be=$e.Consumer,Ge=o.createContext(void 0);function Le(){return c($e)}function Ye(e){var t=s(e.stylisPlugins),n=t[0],r=t[1],c=Le().styleSheet,l=i(function(){var t=c;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t},[e.disableCSSOMInjection,e.sheet,e.target,c]),u=i(function(){return Fe({options:{namespace:e.namespace,prefix:e.enableVendorPrefixes},plugins:n})},[e.enableVendorPrefixes,e.namespace,n]);a(function(){p(n,e.stylisPlugins)||r(e.stylisPlugins)},[e.stylisPlugins]);var d=i(function(){return{shouldForwardProp:e.shouldForwardProp,styleSheet:l,stylis:u}},[e.shouldForwardProp,l,u]);return o.createElement($e.Provider,{value:d},o.createElement(Ge.Provider,{value:u},e.children))}var qe=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=Me);var o=n.name+t.hash;e.hasNameForId(n.id,o)||e.insertRules(n.id,o,t(n.rules,o,\"@keyframes\"))},this.name=e,this.id=\"sc-keyframes-\".concat(e),this.rules=t,ue(this,function(){throw he(12,String(n.name))})}return e.prototype.getName=function(e){return void 0===e&&(e=Me),this.name+e.hash},e}(),We=function(e){return e>=\"A\"&&e<=\"Z\"};function He(e){for(var t=\"\",n=0;n<e.length;n++){var o=e[n];if(1===n&&\"-\"===o&&\"-\"===e[0])return e;We(o)?t+=\"-\"+o.toLowerCase():t+=o}return t.startsWith(\"ms-\")?\"-\"+t:t}var Ue=function(e){return null==e||!1===e||\"\"===e},Je=function(t){var n,o,r=[];for(var s in t){var i=t[s];t.hasOwnProperty(s)&&!Ue(i)&&(Array.isArray(i)&&i.isCss||re(i)?r.push(\"\".concat(He(s),\":\"),i,\";\"):ce(i)?r.push.apply(r,e(e([\"\".concat(s,\" {\")],Je(i),!1),[\"}\"],!1)):r.push(\"\".concat(He(s),\": \").concat((n=s,null==(o=i)||\"boolean\"==typeof o||\"\"===o?\"\":\"number\"!=typeof o||0===o||n in h||n.startsWith(\"--\")?String(o).trim():\"\".concat(o,\"px\")),\";\")))}return r};function Xe(e,t,n,o){if(Ue(e))return[];if(se(e))return[\".\".concat(e.styledComponentId)];if(re(e)){if(!re(s=e)||s.prototype&&s.prototype.isReactComponent||!t)return[e];var r=e(t);return\"production\"===process.env.NODE_ENV||\"object\"!=typeof r||Array.isArray(r)||r instanceof qe||ce(r)||null===r||console.error(\"\".concat(B(e),\" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\")),Xe(r,t,n,o)}var s;return e instanceof qe?n?(e.inject(n,o),[e.getName(o)]):[e]:ce(e)?Je(e):Array.isArray(e)?Array.prototype.concat.apply(_,e.map(function(e){return Xe(e,t,n,o)})):[e.toString()]}function Ze(e){for(var t=0;t<e.length;t+=1){var n=e[t];if(re(n)&&!se(n))return!1}return!0}var Ke=M(v),Qe=function(){function e(e,t,n){this.rules=e,this.staticRulesId=\"\",this.isStatic=\"production\"===process.env.NODE_ENV&&(void 0===n||n.isStatic)&&Ze(e),this.componentId=t,this.baseHash=z(Ke,t),this.baseStyle=n,ke.registerId(t)}return e.prototype.generateAndInjectStyles=function(e,t,n){var o=this.baseStyle?this.baseStyle.generateAndInjectStyles(e,t,n):\"\";if(this.isStatic&&!n.hash)if(this.staticRulesId&&t.hasNameForId(this.componentId,this.staticRulesId))o=ie(o,this.staticRulesId);else{var r=ae(Xe(this.rules,e,t,n)),s=x(z(this.baseHash,r)>>>0);if(!t.hasNameForId(this.componentId,s)){var i=n(r,\".\".concat(s),void 0,this.componentId);t.insertRules(this.componentId,s,i)}o=ie(o,s),this.staticRulesId=s}else{for(var a=z(this.baseHash,n.hash),c=\"\",l=0;l<this.rules.length;l++){var u=this.rules[l];if(\"string\"==typeof u)c+=u,\"production\"!==process.env.NODE_ENV&&(a=z(a,u));else if(u){var p=ae(Xe(u,e,t,n));a=z(a,p+l),c+=p}}if(c){var d=x(a>>>0);t.hasNameForId(this.componentId,d)||t.insertRules(this.componentId,d,n(c,\".\".concat(d),void 0,this.componentId)),o=ie(o,d)}}return o},e}(),et=o.createContext(void 0),tt=et.Consumer;function nt(){var e=c(et);if(!e)throw he(18);return e}function ot(e){var n=o.useContext(et),r=i(function(){return function(e,n){if(!e)throw he(14);if(re(e)){var o=e(n);if(\"production\"!==process.env.NODE_ENV&&(null===o||Array.isArray(o)||\"object\"!=typeof o))throw he(7);return o}if(Array.isArray(e)||\"object\"!=typeof e)throw he(8);return n?t(t({},n),e):e}(e.theme,n)},[e.theme,n]);return e.children?o.createElement(et.Provider,{value:r},e.children):null}var rt={},st=new Set;function it(e,r,s){var i=se(e),a=e,c=!G(e),p=r.attrs,d=void 0===p?_:p,h=r.componentId,f=void 0===h?function(e,t){var n=\"string\"!=typeof e?\"sc\":R(e);rt[n]=(rt[n]||0)+1;var o=\"\".concat(n,\"-\").concat($(v+n+rt[n]));return t?\"\".concat(t,\"-\").concat(o):o}(r.displayName,r.parentComponentId):h,m=r.displayName,y=void 0===m?function(e){return G(e)?\"styled.\".concat(e):\"Styled(\".concat(B(e),\")\")}(e):m,g=r.displayName&&r.componentId?\"\".concat(R(r.displayName),\"-\").concat(r.componentId):r.componentId||f,S=i&&a.attrs?a.attrs.concat(d).filter(Boolean):d,w=r.shouldForwardProp;if(i&&a.shouldForwardProp){var b=a.shouldForwardProp;if(r.shouldForwardProp){var E=r.shouldForwardProp;w=function(e,t){return b(e,t)&&E(e,t)}}else w=b}var N=new Qe(s,g,i?a.componentStyle:void 0);function O(e,r){return function(e,r,s){var i=e.attrs,a=e.componentStyle,c=e.defaultProps,p=e.foldedComponentIds,d=e.styledComponentId,h=e.target,f=o.useContext(et),m=Le(),y=e.shouldForwardProp||m.shouldForwardProp;\"production\"!==process.env.NODE_ENV&&l(d);var v=I(r,f,c)||C,g=function(e,n,o){for(var r,s=t(t({},n),{className:void 0,theme:o}),i=0;i<e.length;i+=1){var a=re(r=e[i])?r(s):r;for(var c in a)s[c]=\"className\"===c?ie(s[c],a[c]):\"style\"===c?t(t({},s[c]),a[c]):a[c]}return n.className&&(s.className=ie(s.className,n.className)),s}(i,r,v),S=g.as||h,w={};for(var b in g)void 0===g[b]||\"$\"===b[0]||\"as\"===b||\"theme\"===b&&g.theme===v||(\"forwardedAs\"===b?w.as=g.forwardedAs:y&&!y(b,S)||(w[b]=g[b],y||\"development\"!==process.env.NODE_ENV||n(b)||st.has(b)||!A.has(S)||(st.add(b),console.warn('styled-components: it looks like an unknown prop \"'.concat(b,'\" is being sent through to the DOM, which will likely trigger a React console error. If you would like automatic filtering of unknown props, you can opt-into that behavior via `<StyleSheetManager shouldForwardProp={...}>` (connect an API like `@emotion/is-prop-valid`) or consider using transient props (`$` prefix for automatic filtering.)')))));var E=function(e,t){var n=Le(),o=e.generateAndInjectStyles(t,n.styleSheet,n.stylis);return\"production\"!==process.env.NODE_ENV&&l(o),o}(a,g);\"production\"!==process.env.NODE_ENV&&e.warnTooManyClasses&&e.warnTooManyClasses(E);var N=ie(p,d);return E&&(N+=\" \"+E),g.className&&(N+=\" \"+g.className),w[G(S)&&!A.has(S)?\"class\":\"className\"]=N,s&&(w.ref=s),u(S,w)}(D,e,r)}O.displayName=y;var D=o.forwardRef(O);return D.attrs=S,D.componentStyle=N,D.displayName=y,D.shouldForwardProp=w,D.foldedComponentIds=i?ie(a.foldedComponentIds,a.styledComponentId):\"\",D.styledComponentId=g,D.target=i?a.target:e,Object.defineProperty(D,\"defaultProps\",{get:function(){return this._foldedDefaultProps},set:function(e){this._foldedDefaultProps=i?function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var o=0,r=t;o<r.length;o++)le(e,r[o],!0);return e}({},a.defaultProps,e):e}}),\"production\"!==process.env.NODE_ENV&&(P(y,g),D.warnTooManyClasses=function(e,t){var n={},o=!1;return function(r){if(!o&&(n[r]=!0,Object.keys(n).length>=200)){var s=t?' with the id of \"'.concat(t,'\"'):\"\";console.warn(\"Over \".concat(200,\" classes were generated for component \").concat(e).concat(s,\".\\n\")+\"Consider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n <Component />\"),o=!0,n={}}}}(y,g)),ue(D,function(){return\".\".concat(D.styledComponentId)}),c&&oe(D,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0}),D}function at(e,t){for(var n=[e[0]],o=0,r=t.length;o<r;o+=1)n.push(t[o],e[o+1]);return n}var ct=function(e){return Object.assign(e,{isCss:!0})};function lt(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];if(re(t)||ce(t))return ct(Xe(at(_,e([t],n,!0))));var r=t;return 0===n.length&&1===r.length&&\"string\"==typeof r[0]?Xe(r):ct(Xe(at(r,n)))}function ut(n,o,r){if(void 0===r&&(r=C),!o)throw he(1,o);var s=function(t){for(var s=[],i=1;i<arguments.length;i++)s[i-1]=arguments[i];return n(o,r,lt.apply(void 0,e([t],s,!1)))};return s.attrs=function(e){return ut(n,o,t(t({},r),{attrs:Array.prototype.concat(r.attrs,e).filter(Boolean)}))},s.withConfig=function(e){return ut(n,o,t(t({},r),e))},s}var pt=function(e){return ut(it,e)},dt=pt;A.forEach(function(e){dt[e]=pt(e)});var ht=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=Ze(e),ke.registerId(this.componentId+1)}return e.prototype.createStyles=function(e,t,n,o){var r=o(ae(Xe(this.rules,t,n,o)),\"\"),s=this.componentId+e;n.insertRules(s,s,r)},e.prototype.removeStyles=function(e,t){t.clearRules(this.componentId+e)},e.prototype.renderStyles=function(e,t,n,o){e>2&&ke.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,o)},e}();function ft(n){for(var r=[],s=1;s<arguments.length;s++)r[s-1]=arguments[s];var i=lt.apply(void 0,e([n],r,!1)),a=\"sc-global-\".concat($(JSON.stringify(i))),c=new ht(i,a);\"production\"!==process.env.NODE_ENV&&P(a);var l=function(e){var n=Le(),r=o.useContext(et),s=o.useRef(n.styleSheet.allocateGSInstance(a)).current;return\"production\"!==process.env.NODE_ENV&&o.Children.count(e.children)&&console.warn(\"The global style component \".concat(a,\" was given child JSX. createGlobalStyle does not render children.\")),\"production\"!==process.env.NODE_ENV&&i.some(function(e){return\"string\"==typeof e&&-1!==e.indexOf(\"@import\")})&&console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical <link> meta tag to the stylesheet, or simply embedding it manually in your index.html <head> section for a simpler app.\"),n.styleSheet.server&&function(e,n,o,r,s){if(c.isStatic)c.renderStyles(e,b,o,s);else{var i=t(t({},n),{theme:I(n,r,l.defaultProps)});c.renderStyles(e,i,o,s)}}(s,e,n.styleSheet,r,n.stylis),null};return o.memo(l)}function mt(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");var r=ae(lt.apply(void 0,e([t],n,!1))),s=$(r);return new qe(s,r)}function yt(e){var n=o.forwardRef(function(n,r){var s=I(n,o.useContext(et),e.defaultProps);return\"production\"!==process.env.NODE_ENV&&void 0===s&&console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"'.concat(B(e),'\"')),o.createElement(e,t({},n,{theme:s,ref:r}))});return n.displayName=\"WithTheme(\".concat(B(e),\")\"),oe(n,e)}var vt=/^\\s*<\\/[a-z]/i,gt=function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return\"\";var n=Ce(),o=ae([n&&'nonce=\"'.concat(n,'\"'),\"\".concat(f,'=\"true\"'),\"\".concat(y,'=\"').concat(v,'\"')].filter(Boolean),\" \");return\"<style \".concat(o,\">\").concat(t,\"</style>\")},this.getStyleTags=function(){if(e.sealed)throw he(2);return e._emitSheetCSS()},this.getStyleElement=function(){var n;if(e.sealed)throw he(2);var r=e.instance.toString();if(!r)return[];var s=((n={})[f]=\"\",n[y]=v,n.dangerouslySetInnerHTML={__html:r},n),i=Ce();return i&&(s.nonce=i),[o.createElement(\"style\",t({},s,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new ke({isServer:!0}),this.sealed=!1}return e.prototype.collectStyles=function(e){if(this.sealed)throw he(2);return o.createElement(Ye,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){if(S)throw he(3);if(this.sealed)throw he(2);this.seal();var t=require(\"stream\").Transform,n=e,o=this.instance,r=this._emitSheetCSS,s=new t({transform:function(e,t,n){var s=e.toString(),i=r();if(o.clearTag(),vt.test(s)){var a=s.indexOf(\">\")+1,c=s.slice(0,a),l=s.slice(a);this.push(c+i+l)}else this.push(i+s);n()}});return n.on(\"error\",function(e){s.emit(\"error\",e)}),n.pipe(s)},e}(),St={StyleSheet:ke,mainSheet:ze};\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\");var wt=\"__sc-\".concat(f,\"__\");\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&\"undefined\"!=typeof window&&(window[wt]||(window[wt]=0),1===window[wt]&&console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"),window[wt]+=1);export{gt as ServerStyleSheet,Be as StyleSheetConsumer,$e as StyleSheetContext,Ye as StyleSheetManager,tt as ThemeConsumer,et as ThemeContext,ot as ThemeProvider,St as __PRIVATE__,ft as createGlobalStyle,lt as css,dt as default,se as isStyledComponent,mt as keyframes,dt as styled,nt as useTheme,v as version,yt as withTheme};\n//# sourceMappingURL=styled-components.esm.js.map\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport React, {\n useState,\n useContext,\n ChangeEvent,\n useCallback,\n useEffect,\n} from 'react';\nimport styled from 'styled-components';\nimport {\n Button,\n Box,\n Flex,\n Grid,\n Select,\n Stack,\n Switch,\n Text,\n useToast,\n} from '@sanity/ui';\n\nimport { TranslationContext } from './TranslationContext';\nimport { TranslationLocale } from '../types';\n\ntype Props = {\n locales: TranslationLocale[];\n refreshTask: () => Promise<void>;\n};\n\ntype LocaleCheckboxProps = {\n locale: TranslationLocale;\n toggle: (locale: string, checked: boolean) => void;\n checked: boolean;\n};\n\nconst WrapText = styled(Box)`\n white-space: normal;\n`;\n\nconst LocaleCheckbox = ({ locale, toggle, checked }: LocaleCheckboxProps) => {\n const onClick = useCallback(\n () => toggle(locale.localeId, !checked),\n [locale, toggle, checked]\n );\n\n return (\n <Button\n mode='ghost'\n onClick={onClick}\n disabled={locale.enabled === false}\n style={{ cursor: `pointer` }}\n radius={2}\n >\n <Flex align='center' gap={3}>\n <Switch\n style={{ pointerEvents: `none` }}\n disabled={locale.enabled === false}\n onChange={onClick}\n checked={checked}\n />\n <WrapText>\n <Text size={1} weight='semibold'>\n {locale.description}\n </Text>\n </WrapText>\n </Flex>\n </Button>\n );\n};\n\nexport const NewTask = ({ locales, refreshTask }: Props) => {\n const possibleLocales = locales.filter((locale) => locale.enabled !== false);\n // Lets just stick to the canonical document id for keeping track of\n // translations\n const [selectedLocales, setSelectedLocales] = useState<React.ReactNode[]>(\n locales\n .filter((locale) => locale.enabled !== false)\n .map((locale) => locale.localeId)\n );\n\n useEffect(() => {\n setSelectedLocales(\n locales\n .filter((locale) => locale.enabled !== false)\n .map((locale) => locale.localeId)\n );\n }, [locales]);\n\n const [selectedWorkflowUid, setSelectedWorkflowUid] = useState<string>();\n const [isBusy, setIsBusy] = useState(false);\n\n const context = useContext(TranslationContext);\n const toast = useToast();\n\n const toggleLocale = useCallback(\n (locale: string, selected: boolean) => {\n if (!selected) {\n setSelectedLocales(selectedLocales.filter((l) => l !== locale));\n } else if (!selectedLocales.includes(locale)) {\n setSelectedLocales([...selectedLocales, locale]);\n }\n },\n [selectedLocales, setSelectedLocales]\n );\n\n const createTask = useCallback(() => {\n if (!context) {\n toast.push({\n title: 'Unable to create task: missing context',\n status: 'error',\n closable: true,\n });\n return;\n }\n\n setIsBusy(true);\n\n context\n .exportForTranslation(context.documentInfo)\n .then((serialized) =>\n context.adapter.createTask(\n context.documentInfo,\n serialized,\n selectedLocales as string[],\n context.secrets,\n selectedWorkflowUid,\n context.callbackUrl\n )\n )\n .then(() => {\n toast.push({\n title: 'Job successfully created',\n status: 'success',\n closable: true,\n });\n\n /** Reset form fields */\n setSelectedLocales([]);\n setSelectedWorkflowUid('');\n\n /** Update task data in TranslationView */\n refreshTask();\n })\n .catch((err) => {\n let errorMsg;\n if (err instanceof Error) {\n errorMsg = err.message;\n } else {\n errorMsg = err ? String(err) : null;\n }\n\n toast.push({\n title: `Error creating translation job`,\n description: errorMsg,\n status: 'error',\n closable: true,\n });\n })\n .finally(() => {\n setIsBusy(false);\n });\n }, [context, selectedLocales, selectedWorkflowUid, toast, refreshTask]);\n\n const onClick = useCallback(() => {\n setSelectedLocales(\n possibleLocales.length === selectedLocales.length\n ? // Disable all\n []\n : // Enable all\n locales\n .filter((locale) => locale.enabled !== false)\n .map((locale) => locale.localeId)\n );\n }, [possibleLocales, selectedLocales, setSelectedLocales, locales]);\n\n const onToggle = useCallback(\n (locale: string, checked: boolean) => {\n toggleLocale(locale, checked);\n },\n [toggleLocale]\n );\n\n const onWorkflowChange = useCallback(\n (e: ChangeEvent<HTMLSelectElement>) => {\n setSelectedWorkflowUid(e.target.value);\n },\n [setSelectedWorkflowUid]\n );\n\n return (\n <Stack paddingTop={4} space={4}>\n <Text as='h2' weight='semibold' size={2}>\n Generate New Translations\n </Text>\n <Stack space={3}>\n <Flex align='center' justify='space-between'>\n <Text weight='semibold' size={1}>\n {possibleLocales.length === 1 ? `Select locale` : `Select locales`}\n </Text>\n\n <Button\n fontSize={1}\n padding={2}\n text='Toggle All'\n onClick={onClick}\n />\n </Flex>\n\n <Grid columns={[1, 1, 2, 3]} gap={1}>\n {(locales || []).map((l) => (\n <LocaleCheckbox\n key={l.localeId}\n locale={l}\n toggle={onToggle}\n checked={selectedLocales.includes(l.localeId)}\n />\n ))}\n </Grid>\n </Stack>\n\n {context?.workflowOptions && context.workflowOptions.length > 0 && (\n <Stack space={3}>\n <Text weight='semibold' size={1} as='label' htmlFor='workflow-select'>\n Select translation workflow\n </Text>\n <Grid columns={[1, 1, 2]}>\n <Select id='workflowSelect' onChange={onWorkflowChange}>\n <option>Default locale workflows</option>\n {context.workflowOptions.map((w) => (\n <option\n key={`workflow-opt-${w.workflowUid}`}\n value={w.workflowUid}\n >\n {w.workflowName}\n </option>\n ))}\n </Select>\n </Grid>\n </Stack>\n )}\n\n <Button\n onClick={createTask}\n disabled={isBusy || !selectedLocales.length}\n tone='positive'\n text={isBusy ? 'Queueing translations...' : 'Generate Translations'}\n />\n </Stack>\n );\n};\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport { Card, Flex, Label } from '@sanity/ui';\n\nexport default function ProgressBar({ progress }: { progress: number }) {\n if (typeof progress === 'undefined') {\n console.warn('No progress prop passed to ProgressBar');\n return null;\n }\n\n return (\n <Card border radius={2} style={{ width: `100%`, position: `relative` }}>\n <Flex\n style={{\n position: `absolute`,\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n zIndex: 1,\n }}\n align='center'\n justify='center'\n >\n <Label size={1}>{progress}%</Label>\n </Flex>\n <Card\n style={{\n width: '100%',\n transform: `scaleX(${progress / 100})`,\n transformOrigin: 'left',\n transition: 'transform .2s ease',\n boxSizing: 'border-box',\n }}\n padding={2}\n tone='positive'\n />\n </Card>\n );\n}\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport { useCallback, useState } from 'react';\nimport { Flex, Card, Text, Grid, Box, Button } from '@sanity/ui';\nimport { DownloadIcon, CheckmarkCircleIcon } from '@sanity/icons';\nimport ProgressBar from './ProgressBar';\n\ntype LanguageStatusProps = {\n title: string;\n progress: number;\n importFile: () => Promise<void>;\n isImported?: boolean;\n};\n\nexport const LanguageStatus = ({\n title,\n progress,\n importFile,\n isImported = false,\n}: LanguageStatusProps) => {\n const [isBusy, setIsBusy] = useState(false);\n\n const handleImport = useCallback(async () => {\n setIsBusy(true);\n try {\n await importFile();\n } finally {\n setIsBusy(false);\n }\n }, [importFile, setIsBusy]);\n\n return (\n <Card shadow={1}>\n <Grid columns={5} gap={3} padding={3}>\n <Flex columnStart={1} columnEnd={3} align='center'>\n <Text weight='bold' size={1}>\n {title}\n </Text>\n </Flex>\n {typeof progress === 'number' ? (\n <Flex columnStart={3} columnEnd={5} align='center'>\n <ProgressBar progress={progress} />\n </Flex>\n ) : null}\n <Box columnStart={5} columnEnd={6}>\n {isImported ? (\n <Flex align='center' justify='center' style={{ color: 'green' }}>\n <CheckmarkCircleIcon />\n <Text size={1} style={{ marginLeft: '4px' }}>\n Imported\n </Text>\n </Flex>\n ) : (\n <Button\n style={{ width: `100%` }}\n mode='ghost'\n onClick={handleImport}\n text={isBusy ? 'Importing...' : 'Import'}\n icon={isBusy ? null : DownloadIcon}\n disabled={isBusy || !progress || progress < 100}\n />\n )}\n </Box>\n </Grid>\n </Card>\n );\n};\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport { useCallback, useContext, useState, useEffect } from 'react';\nimport { Box, Button, Flex, Text, Stack, useToast, Switch } from '@sanity/ui';\nimport {\n ArrowTopRightIcon,\n DownloadIcon,\n CheckmarkCircleIcon,\n} from '@sanity/icons';\n\nimport { TranslationContext } from './TranslationContext';\nimport { TranslationLocale, TranslationTask } from '../types';\nimport { LanguageStatus } from './LanguageStatus';\n\ntype JobProps = {\n task: TranslationTask;\n locales: TranslationLocale[];\n refreshTask: () => Promise<void>;\n};\n\nconst getLocale = (\n localeId: string,\n locales: TranslationLocale[]\n): TranslationLocale | undefined =>\n locales.find((l) => l.localeId === localeId);\n\nexport const TaskView = ({ task, locales, refreshTask }: JobProps) => {\n const context = useContext(TranslationContext);\n const toast = useToast();\n\n const [isRefreshing, setIsRefreshing] = useState(false);\n const [autoRefresh, setAutoRefresh] = useState(true);\n const [isBusy, setIsBusy] = useState(false);\n const [autoImport, setAutoImport] = useState(true);\n const [importedFiles, setImportedFiles] = useState<Set<string>>(new Set());\n\n const importFile = useCallback(\n async (localeId: string) => {\n if (!context) {\n toast.push({\n title:\n 'Missing context, unable to import translation. Try refreshing or clicking away from this tab and back.',\n status: 'error',\n closable: true,\n });\n return;\n }\n\n const locale = getLocale(localeId, locales);\n const localeTitle = locale?.description || localeId;\n\n try {\n const translation = await context.adapter.getTranslation(\n task.document,\n localeId,\n context.secrets\n );\n\n const sanityId = context.localeIdAdapter\n ? await context.localeIdAdapter(localeId)\n : localeId;\n\n await context.importTranslation(sanityId, translation);\n\n setImportedFiles((prev) => new Set([...prev, localeId]));\n\n toast.push({\n title: `Imported ${localeTitle} translation`,\n status: 'success',\n closable: true,\n });\n } catch (err) {\n let errorMsg;\n if (err instanceof Error) {\n errorMsg = err.message;\n } else {\n errorMsg = err ? String(err) : null;\n }\n\n toast.push({\n title: `Error getting ${localeTitle} translation`,\n description: errorMsg,\n status: 'error',\n closable: true,\n });\n }\n },\n [locales, context, task.document, toast]\n );\n\n const checkAndImportCompletedFiles = useCallback(async () => {\n if (!autoImport || isBusy) return;\n\n const completedFiles = task.locales.filter(\n (locale) =>\n (locale.progress || 0) >= 100 && !importedFiles.has(locale.localeId)\n );\n\n if (completedFiles.length === 0) return;\n\n setIsBusy(true);\n try {\n for (const locale of completedFiles) {\n await importFile(locale.localeId);\n }\n } finally {\n setIsBusy(false);\n }\n }, [autoImport, isBusy, task.locales, importedFiles, importFile]);\n\n const handleRefreshClick = useCallback(async () => {\n if (isRefreshing) return;\n setIsRefreshing(true);\n await refreshTask();\n await checkAndImportCompletedFiles();\n setIsRefreshing(false);\n }, [refreshTask, setIsRefreshing, checkAndImportCompletedFiles]);\n\n const handleImportAll = useCallback(async () => {\n if (isBusy) return;\n setIsBusy(true);\n\n try {\n const filesToImport = task.locales.filter(\n (locale) => !importedFiles.has(locale.localeId)\n );\n for (const locale of filesToImport) {\n await importFile(locale.localeId);\n }\n } finally {\n setIsBusy(false);\n }\n }, [task.locales, importFile, isBusy, importedFiles]);\n\n useEffect(() => {\n if (!autoRefresh || importedFiles.size === task.locales.length) return;\n\n const interval = setInterval(async () => {\n await handleRefreshClick();\n }, 5000);\n\n return () => clearInterval(interval);\n }, [\n handleRefreshClick,\n autoRefresh,\n importedFiles.size,\n task.locales.length,\n ]);\n\n useEffect(() => {\n checkAndImportCompletedFiles();\n }, [checkAndImportCompletedFiles, task.locales]);\n\n useEffect(() => {\n setImportedFiles((prev) => {\n const newSet = new Set<string>();\n for (const localeId of prev) {\n if (task.locales.some((locale) => locale.localeId === localeId)) {\n newSet.add(localeId);\n }\n }\n return newSet;\n });\n }, [task.locales]);\n\n return (\n <Stack space={4}>\n <Flex align='center' justify='space-between'>\n <Text as='h2' weight='semibold' size={2}>\n Translation Progress\n </Text>\n\n <Flex gap={3} align='center'>\n <Flex gap={2} align='center'>\n <Text size={1}>Auto-refresh</Text>\n <Switch\n checked={autoRefresh}\n onChange={() => setAutoRefresh(!autoRefresh)}\n />\n </Flex>\n {task.linkToVendorTask && (\n <Button\n as='a'\n text='View Job'\n iconRight={ArrowTopRightIcon}\n href={task.linkToVendorTask}\n target='_blank'\n rel='noreferrer noopener'\n fontSize={1}\n padding={2}\n mode='bleed'\n />\n )}\n <Button\n fontSize={1}\n padding={2}\n text='Refresh Status'\n onClick={handleRefreshClick}\n disabled={isRefreshing}\n />\n </Flex>\n </Flex>\n\n <Box>\n {task.locales.map((localeTask) => {\n const reportPercent = localeTask.progress || 0;\n const locale = getLocale(localeTask.localeId, locales);\n return (\n <LanguageStatus\n key={[task.document.documentId, localeTask.localeId].join('.')}\n importFile={async () => {\n await importFile(localeTask.localeId);\n }}\n title={locale?.description || localeTask.localeId}\n progress={reportPercent}\n isImported={importedFiles.has(localeTask.localeId)}\n />\n );\n })}\n </Box>\n <Stack space={3}>\n <Flex gap={3} align='center' justify='space-between'>\n <Flex gap={2} align='center'>\n <Button\n mode='ghost'\n onClick={handleImportAll}\n text={isBusy ? 'Importing...' : 'Import All'}\n icon={isBusy ? null : DownloadIcon}\n disabled={isBusy || importedFiles.size === task.locales.length}\n />\n {importedFiles.size === task.locales.length &&\n task.locales.length > 0 && (\n <Flex gap={2} align='center' style={{ color: 'green' }}>\n <CheckmarkCircleIcon />\n <Text size={1}>All translations imported</Text>\n </Flex>\n )}\n {importedFiles.size > 0 &&\n importedFiles.size < task.locales.length && (\n <Text size={1} style={{ color: '#666' }}>\n {importedFiles.size}/{task.locales.length} imported\n </Text>\n )}\n </Flex>\n <Flex gap={2} align='center' style={{ whiteSpace: 'nowrap' }}>\n <Text size={1}>Auto-import when complete</Text>\n <Switch\n checked={autoImport}\n onChange={() => setAutoImport(!autoImport)}\n disabled={isBusy}\n />\n </Flex>\n </Flex>\n </Stack>\n </Stack>\n );\n};\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\n/**\n * Add cleanup function to cancel async tasks\n */\n\nimport { useCallback, useContext, useEffect, useState, useMemo } from 'react';\nimport { Stack, useToast, Text, Card } from '@sanity/ui';\nimport { TranslationContext } from './TranslationContext';\nimport { gtConfig } from '../adapter/core';\n\nimport { NewTask } from './NewTask';\nimport { TaskView } from './TaskView';\nimport { TranslationTask, TranslationLocale } from '../types';\n\nexport const TranslationView = () => {\n const [locales, setLocales] = useState<TranslationLocale[]>([]);\n const [task, setTask] = useState<TranslationTask | null>(null);\n\n const context = useContext(TranslationContext);\n const toast = useToast();\n\n // Extract the current document's language from the language field\n const currentDocumentLanguage = useMemo(() => {\n if (!context?.document || !context?.languageField) return null;\n\n // Get the language from the document's language field\n const documentLanguage = context.document[context.languageField];\n\n // If no language field is set, assume it's the source language\n return documentLanguage || gtConfig.getSourceLocale();\n }, [context?.document, context?.languageField]);\n\n // Only show translation components if we're on a source language document\n const shouldShowTranslationComponents = useMemo(() => {\n if (!currentDocumentLanguage) return false;\n return currentDocumentLanguage === gtConfig.getSourceLocale();\n }, [currentDocumentLanguage]);\n\n useEffect(() => {\n async function fetchData() {\n if (!context) {\n toast.push({\n title: 'Unable to load translation data: missing context',\n status: 'error',\n closable: true,\n });\n return;\n }\n\n const locales = await context.adapter.getLocales(context.secrets);\n setLocales(locales);\n try {\n const task = await context?.adapter.getTranslationTask(\n context.documentInfo,\n context.secrets\n );\n setTask(task);\n } catch (err) {\n let errorMsg;\n if (err instanceof Error) {\n errorMsg = err.message;\n } else {\n errorMsg = err ? String(err) : null;\n }\n\n // Hacky bypass for when a document is not yet translated and has never been uploaded\n if (errorMsg?.toLowerCase().includes('no source file found')) {\n return;\n }\n\n toast.push({\n title: `Error creating translation job`,\n description: errorMsg,\n status: 'error',\n closable: true,\n });\n }\n }\n\n fetchData();\n }, [context, toast]);\n\n const refreshTask = useCallback(async () => {\n const task = await context?.adapter.getTranslationTask(\n context.documentInfo,\n context.secrets\n );\n if (task) {\n setTask(task);\n }\n }, [context, setTask]);\n\n // Show message if we're not on a source language document\n if (!shouldShowTranslationComponents) {\n return (\n <Card padding={4} tone='neutral' border>\n <Text size={1} muted>\n Translation tools are only available for{' '}\n <code>{gtConfig.getSourceLocale()}</code> documents.\n </Text>\n </Card>\n );\n }\n\n return (\n <Stack space={6}>\n <NewTask locales={locales} refreshTask={refreshTask} />\n {task && (\n <TaskView task={task} locales={locales} refreshTask={refreshTask} />\n )}\n </Stack>\n );\n};\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport { SanityClient, useClient as useSanityClient } from 'sanity';\n\nexport const useClient = (): SanityClient => {\n return useSanityClient({ apiVersion: '2025-09-15' });\n};\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport { useState, useEffect } from 'react';\nimport { SanityDocumentLike } from 'sanity';\nimport { useClient } from './useClient';\n\ninterface ReturnProps<T> {\n loading: boolean;\n secrets: T | null;\n}\nexport function useSecrets<T>(id: string): ReturnProps<T> {\n const [loading, setLoading] = useState<boolean>(true);\n const [secrets, setSecrets] = useState<T | null>(null);\n const client = useClient();\n\n useEffect(() => {\n function fetchData() {\n client\n .fetch('* [_id == $id][0]', { id })\n .then((doc: SanityDocumentLike) => {\n const result: Record<string, any> = {};\n for (const key in doc) {\n if (key[0] !== '_') {\n result[key] = doc[key];\n }\n }\n setSecrets(result as T);\n setLoading(false);\n });\n }\n fetchData();\n }, [id, client]);\n\n return { loading, secrets };\n}\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport { useMemo } from 'react';\nimport { SanityDocument, useSchema } from 'sanity';\nimport { randomKey } from '@sanity/util/content';\nimport {\n ThemeProvider,\n ToastProvider,\n Stack,\n Text,\n Layer,\n Box,\n Card,\n Flex,\n Spinner,\n} from '@sanity/ui';\n\nimport { TranslationContext } from './TranslationContext';\nimport { TranslationView } from './TranslationView';\nimport { useClient } from '../hooks/useClient';\nimport { useSecrets } from '../hooks/useSecrets';\nimport { GTFile, Secrets, TranslationsTabConfigOptions } from '../types';\n\ntype TranslationTabProps = {\n document: {\n displayed: SanityDocument;\n };\n options: TranslationsTabConfigOptions;\n};\n\nconst TranslationTab = (props: TranslationTabProps) => {\n const { displayed } = props.document;\n const client = useClient();\n const schema = useSchema();\n\n const documentId =\n displayed && displayed._id\n ? (displayed._id.split('drafts.').pop() as string)\n : '';\n\n const revisionId = displayed && displayed._rev ? displayed._rev : undefined;\n\n const { errors, importTranslation, exportForTranslation } = useMemo(() => {\n const { serializationOptions, languageField, mergeWithTargetLocale } =\n props.options;\n const ctx = {\n client,\n schema,\n };\n\n const allErrors = [];\n\n const importTranslationFunc = props.options.importTranslation;\n if (!importTranslationFunc) {\n allErrors.push({\n key: randomKey(12),\n text: (\n <>\n You need to provide an <code>importTranslation</code> function. See\n documentation.\n </>\n ),\n });\n }\n\n const contextImportTranslation = (localeId: string, doc: string) => {\n return importTranslationFunc(\n { documentId, versionId: revisionId },\n localeId,\n doc,\n ctx,\n serializationOptions,\n languageField,\n mergeWithTargetLocale\n );\n };\n\n const exportTranslationFunc = props.options.exportForTranslation;\n if (!exportTranslationFunc) {\n allErrors.push({\n key: randomKey(12),\n text: (\n <>\n You need to provide an <code>exportForTranslation</code> function.\n See documentation.\n </>\n ),\n });\n }\n\n const contextExportForTranslation = (docInfo: GTFile) => {\n return exportTranslationFunc(\n docInfo,\n ctx,\n serializationOptions,\n languageField\n );\n };\n\n return {\n errors: allErrors,\n importTranslation: contextImportTranslation,\n exportForTranslation: contextExportForTranslation,\n };\n }, [props.options, documentId, revisionId, client, schema]);\n\n const { loading, secrets } = useSecrets<Secrets>(\n `${props.options.secretsNamespace || 'translationService'}.secrets`\n );\n\n const hasErrors = errors.length > 0;\n\n if (loading || !secrets) {\n return (\n <ThemeProvider>\n <Flex padding={5} align='center' justify='center'>\n <Spinner />\n </Flex>\n </ThemeProvider>\n );\n } else if (!secrets) {\n return (\n <ThemeProvider>\n <Box padding={4}>\n <Card tone='caution' padding={[2, 3, 4, 4]} shadow={1} radius={2}>\n <Text>\n Can't find secrets for your translation service. Did you load them\n into this dataset?\n </Text>\n </Card>\n </Box>\n </ThemeProvider>\n );\n }\n return (\n <ThemeProvider>\n <Box padding={4}>\n <Layer>\n <ToastProvider paddingY={7}>\n {hasErrors && (\n <Stack space={3}>\n {errors.map((error) => (\n <Card\n key={error.key}\n tone='caution'\n padding={[2, 3, 4, 4]}\n shadow={1}\n radius={2}\n >\n <Text>{error.text}</Text>\n </Card>\n ))}\n </Stack>\n )}\n {!hasErrors && (\n <TranslationContext.Provider\n value={{\n documentInfo: { documentId, versionId: revisionId },\n document: displayed,\n languageField: props.options.languageField || 'language',\n secrets,\n importTranslation,\n exportForTranslation,\n adapter: props.options.adapter,\n workflowOptions: props.options.workflowOptions,\n localeIdAdapter: props.options.localeIdAdapter,\n callbackUrl: props.options.callbackUrl,\n mergeWithTargetLocale: props.options.mergeWithTargetLocale,\n }}\n >\n <TranslationView />\n </TranslationContext.Provider>\n )}\n </ToastProvider>\n </Layer>\n </Box>\n </ThemeProvider>\n );\n};\n\nexport default TranslationTab;\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport { SanityClient, SanityDocument } from 'sanity';\n\n//use perspectives in the future\nexport const findLatestDraft = (\n documentId: string,\n client: SanityClient\n): Promise<SanityDocument> => {\n const query = `*[_id == $id || _id == $draftId]`;\n const params = { id: documentId, draftId: `drafts.${documentId}` };\n return client\n .fetch(query, params)\n .then(\n (docs: SanityDocument[]) =>\n docs.find((doc) => doc._id.startsWith('drafts.')) ?? docs[0]\n );\n};\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport { SanityClient, SanityDocument } from 'sanity';\n\n//revision fetch\nexport const findDocumentAtRevision = async (\n documentId: string,\n rev: string,\n client: SanityClient\n): Promise<SanityDocument> => {\n const dataset = client.config().dataset;\n const baseUrl = `/data/history/${dataset}/documents/${documentId}?revision=${rev}`;\n const url = client.getUrl(baseUrl);\n const revisionDoc = await fetch(url, { credentials: 'include' })\n .then((req) => req.json())\n .then((req) => {\n if (req.documents && req.documents.length) {\n return req.documents[0];\n }\n return null;\n });\n\n return revisionDoc;\n};\n","import { JSONPath } from 'jsonpath-plus';\nimport JSONPointer from 'jsonpointer';\nimport type { IgnoreFields } from '../adapter/types';\n\nexport function applyDocuments(\n documentId: string,\n sourceDocument: Record<string, any>,\n targetDocument: Record<string, any>,\n ignore: IgnoreFields[]\n) {\n const ignoreFields = ignore.filter(\n (field) =>\n field.documentId === documentId ||\n field.documentId === undefined ||\n field.documentId === null\n );\n\n // Start with a shallow copy of the source document\n const mergedDocument = { ...sourceDocument };\n\n // Merge top-level properties of targetDocument\n for (const [key, value] of Object.entries(targetDocument)) {\n mergedDocument[key] = value;\n }\n\n // Process ignored fields and restore them from source document\n for (const ignoreField of ignoreFields) {\n if (!ignoreField.fields) continue;\n\n for (const field of ignoreField.fields) {\n const { property, type } = field;\n\n try {\n // Use JSONPath to find matching paths, then JSONPointer to get/set values\n const sourceResults = JSONPath({\n json: sourceDocument,\n path: property,\n resultType: 'all',\n flatten: true,\n wrap: true,\n });\n\n if (sourceResults && sourceResults.length > 0) {\n // Process each matching path\n sourceResults.forEach((result: { pointer: string; value: any }) => {\n const sourceValue = result.value;\n\n // If type is specified, check if it matches the object's _type property\n if (type !== undefined) {\n if (\n typeof sourceValue === 'object' &&\n sourceValue !== null &&\n sourceValue._type === type\n ) {\n // Type matches, restore the entire object using JSONPointer\n JSONPointer.set(mergedDocument, result.pointer, sourceValue);\n }\n } else {\n // No type specified, restore the value using JSONPointer\n JSONPointer.set(mergedDocument, result.pointer, sourceValue);\n }\n });\n }\n } catch (error) {\n // Invalid JSONPath, skip this field\n console.warn(`Invalid JSONPath: ${property}`, error);\n }\n }\n }\n\n return mergedDocument;\n}\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport { SanityClient, SanityDocumentLike } from 'sanity';\nimport { gtConfig } from '../../../adapter/core';\nimport { applyDocuments } from '../../../utils/applyDocuments';\n\nexport async function createI18nDocAndPatchMetadata(\n sourceDocument: SanityDocumentLike,\n translatedDoc: SanityDocumentLike,\n localeId: string,\n client: SanityClient,\n translationMetadata: SanityDocumentLike,\n sourceDocumentId: string,\n languageField: string = 'language',\n publish: boolean = false\n): Promise<void> {\n translatedDoc[languageField] = localeId;\n const translations = translationMetadata.translations as Record<\n string,\n any\n >[];\n const existingLocaleKey = translations.find(\n (translation) => translation._key === localeId\n );\n const operation = existingLocaleKey ? 'replace' : 'after';\n const location = existingLocaleKey\n ? `translations[_key == \"${localeId}\"]`\n : 'translations[-1]';\n\n //remove system fields\n const { _updatedAt, _createdAt, ...rest } = translatedDoc;\n\n const appliedDocument = applyDocuments(\n sourceDocumentId,\n sourceDocument,\n rest,\n gtConfig.getIgnoreFields()\n );\n\n // Check if this is a singleton document and apply singleton mapping\n const singletons = gtConfig.getSingletons();\n const isSingleton = singletons.includes(sourceDocumentId);\n\n let createDocumentPromise;\n if (isSingleton) {\n const singletonMapping = gtConfig.getSingletonMapping();\n const translatedDocId = singletonMapping(sourceDocumentId, localeId);\n createDocumentPromise = client.create({\n ...appliedDocument,\n _type: rest._type,\n _id: `drafts.${translatedDocId}`,\n });\n } else {\n createDocumentPromise = client.create({\n ...appliedDocument,\n _type: rest._type,\n _id: 'drafts.',\n });\n }\n\n const doc = await createDocumentPromise;\n const _ref = doc._id.replace('drafts.', '');\n const result = await client\n .transaction()\n .patch(translationMetadata._id, (p) =>\n p.insert(operation, location, [\n {\n _key: localeId,\n _type: 'internationalizedArrayReferenceValue',\n value: {\n _type: 'reference',\n _ref,\n _weak: true,\n _strengthenOnPublish: {\n type: doc._type,\n },\n },\n },\n ])\n )\n .commit();\n\n if (publish) {\n try {\n // only publish if the document is a draft\n if (doc._id.startsWith('drafts.')) {\n await client.action(\n {\n actionType: 'sanity.action.document.publish',\n draftId: doc._id,\n publishedId: doc._id.replace('drafts.', ''),\n },\n {}\n );\n }\n } catch (error) {\n console.error('Error publishing document', error);\n }\n }\n}\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport {\n KeyedObject,\n Reference,\n SanityClient,\n SanityDocumentLike,\n} from 'sanity';\n\ntype TranslationReference = KeyedObject & {\n _type: 'internationalizedArrayReferenceValue';\n value: Reference;\n};\n\nexport const getOrCreateTranslationMetadata = async (\n documentId: string,\n baseDocument: SanityDocumentLike,\n client: SanityClient,\n baseLanguage: string\n): Promise<SanityDocumentLike> => {\n // First, try to get existing metadata\n const existingMetadata = await client.fetch(\n `*[\n _type == 'translation.metadata' &&\n translations[_key == $baseLanguage][0].value._ref == $id\n ][0]`,\n { baseLanguage, id: documentId.replace('drafts.', '') }\n );\n\n if (existingMetadata) {\n return existingMetadata;\n }\n\n // If no metadata exists, create it atomically\n const baseLangEntry: TranslationReference = {\n _key: baseLanguage,\n _type: 'internationalizedArrayReferenceValue',\n value: {\n _type: 'reference',\n _ref: baseDocument._id.replace('drafts.', ''),\n },\n };\n\n if (baseDocument._id.startsWith('drafts.')) {\n baseLangEntry.value = {\n ...baseLangEntry.value,\n _weak: true,\n //this should reflect doc i18n config when this\n //plugin is able to take that as a config option\n _strengthenOnPublish: {\n type: baseDocument._type,\n },\n };\n }\n\n try {\n // Use createIfNotExists to handle race conditions\n return await client.createIfNotExists({\n _id: `translation.metadata.${documentId.replace('drafts.', '')}`,\n _type: 'translation.metadata',\n translations: [baseLangEntry],\n });\n } catch (error) {\n // If creation fails due to race condition, fetch the existing document\n const metadata = await client.fetch(\n `*[\n _type == 'translation.metadata' &&\n translations[_key == $baseLanguage][0].value._ref == $id\n ][0]`,\n { baseLanguage, id: documentId.replace('drafts.', '') }\n );\n\n if (metadata) {\n return metadata;\n }\n\n throw error;\n }\n};\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport { SanityClient, SanityDocumentLike } from 'sanity';\nimport { applyDocuments } from '../../../utils/applyDocuments';\nimport { gtConfig } from '../../../adapter/core';\n\nconst SYSTEM_FIELDS = ['_id', '_rev', '_updatedAt', 'language'];\n\nconst isSystemField = (field: string) => SYSTEM_FIELDS.includes(field);\n\nexport async function patchI18nDoc(\n sourceDocumentId: string,\n i18nDocId: string,\n sourceDocument: SanityDocumentLike,\n mergedDocument: SanityDocumentLike,\n translatedFields: Record<string, any>,\n client: SanityClient,\n publish: boolean = false\n): Promise<void> {\n const cleanedMerge: Record<string, any> = {};\n Object.entries(mergedDocument).forEach(([key, value]) => {\n if (\n //only patch those fields that had translated strings\n key in translatedFields &&\n //don't overwrite any existing system values on the i18n doc\n !isSystemField(key)\n ) {\n cleanedMerge[key] = value;\n }\n });\n const cleanedSourceDocument: Record<string, any> = {};\n Object.entries(sourceDocument).forEach(([key, value]) => {\n if (\n // extract only the fields that are not system fields\n !isSystemField(key)\n ) {\n cleanedSourceDocument[key] = value;\n }\n });\n\n const appliedDocument = applyDocuments(\n sourceDocumentId,\n cleanedSourceDocument,\n cleanedMerge,\n gtConfig.getIgnoreFields()\n );\n const newDocument = await client\n .patch(i18nDocId, { set: appliedDocument })\n .commit();\n\n if (publish) {\n try {\n // only publish if the document is a draft\n if (newDocument._id.startsWith('drafts.')) {\n await client.action(\n {\n actionType: 'sanity.action.document.publish',\n draftId: newDocument._id,\n publishedId: newDocument._id.replace('drafts.', ''),\n },\n {}\n );\n }\n } catch (error) {\n console.error('Error publishing document', error);\n }\n }\n}\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport { SanityClient, SanityDocument, SanityDocumentLike } from 'sanity';\nimport { BaseDocumentMerger } from 'sanity-naive-html-serializer';\n\nimport { findLatestDraft } from '../utils/findLatestDraft';\nimport { findDocumentAtRevision } from '../utils/findDocumentAtRevision';\nimport { createI18nDocAndPatchMetadata } from './helpers/createI18nDocAndPatchMetadata';\nimport { getOrCreateTranslationMetadata } from './helpers/getOrCreateTranslationMetadata';\nimport { patchI18nDoc } from './helpers/patchI18nDoc';\nimport type { GTFile } from '../../types';\nimport { gtConfig } from '../../adapter/core';\n\nexport const documentLevelPatch = async (\n docInfo: GTFile,\n translatedFields: SanityDocument,\n localeId: string,\n client: SanityClient,\n languageField: string = 'language',\n mergeWithTargetLocale: boolean = false,\n publish: boolean = false\n): Promise<void> => {\n const baseLanguage = gtConfig.getSourceLocale();\n //this is the document we use to merge with the translated fields\n let baseDoc: SanityDocument | null = null;\n\n //this is the document that will serve as the translated doc\n let i18nDoc: SanityDocument | null = null;\n\n /*\n * we send over the _rev with our translation file so we can\n * accurately coalesce the translations in case something has\n * changed in the base document since translating\n */\n if (docInfo.documentId && docInfo.versionId) {\n baseDoc = await findDocumentAtRevision(\n docInfo.documentId,\n docInfo.versionId,\n client\n );\n }\n if (!baseDoc) {\n baseDoc = await findLatestDraft(docInfo.documentId, client);\n }\n\n /* first, check our metadata to see if a translated document exists\n * if no metadata exists, we create it atomically\n */\n const translationMetadata = await getOrCreateTranslationMetadata(\n docInfo.documentId,\n baseDoc,\n client,\n baseLanguage\n );\n\n //the id of the translated document should be on the metadata if it exists\n const i18nDocId = (\n translationMetadata.translations as Array<Record<string, any>>\n ).find((translation) => translation._key === localeId)?.value?._ref;\n\n if (i18nDocId) {\n //get draft or published\n i18nDoc = await findLatestDraft(i18nDocId, client);\n }\n\n //if the user has chosen to merge with the target locale,\n //any existing target document will serve as our base document\n if (mergeWithTargetLocale && i18nDoc) {\n baseDoc = i18nDoc;\n } else if (docInfo.documentId && docInfo.versionId) {\n /*\n * we send over the _rev with our translation file so we can\n * accurately coalesce the translations in case something has\n * changed in the base document since translating\n */\n baseDoc = await findDocumentAtRevision(\n docInfo.documentId,\n docInfo.versionId,\n client\n );\n }\n\n if (!baseDoc) {\n baseDoc = await findLatestDraft(docInfo.documentId, client);\n }\n /*\n * we then merge the translation with the base document\n * to create a document that contains the translation and everything\n * that wasn't sent over for translation\n */\n const merged = BaseDocumentMerger.documentLevelMerge(\n translatedFields,\n baseDoc\n ) as SanityDocumentLike;\n\n if (i18nDoc) {\n await patchI18nDoc(\n docInfo.documentId,\n i18nDoc._id,\n baseDoc,\n merged,\n translatedFields,\n client,\n publish\n );\n }\n //otherwise, create a new document\n //and add the document reference to the metadata document\n else {\n await createI18nDocAndPatchMetadata(\n baseDoc,\n merged,\n localeId,\n client,\n translationMetadata,\n docInfo.documentId,\n languageField,\n publish\n );\n }\n};\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport {\n ExportForTranslation,\n GTSerializedDocument,\n ImportTranslation,\n} from '../../types';\nimport { SanityDocument } from 'sanity';\nimport { findLatestDraft } from '../utils/findLatestDraft';\nimport { documentLevelPatch } from './documentLevelPatch';\nimport {\n BaseDocumentDeserializer,\n BaseDocumentSerializer,\n defaultStopTypes,\n customSerializers,\n customBlockDeserializers,\n} from 'sanity-naive-html-serializer';\nimport { gtConfig } from '../../adapter/core';\n\nexport const baseDocumentLevelConfig = {\n exportForTranslation: async (\n ...params: Parameters<ExportForTranslation>\n ): Promise<GTSerializedDocument> => {\n const [\n docInfo,\n context,\n serializationOptions = {},\n languageField = 'language',\n ] = params;\n const { client, schema } = context;\n const stopTypes = [\n ...(serializationOptions.additionalStopTypes ?? []),\n ...defaultStopTypes,\n ];\n const serializers = {\n ...customSerializers,\n types: {\n ...customSerializers.types,\n ...(serializationOptions.additionalSerializers ?? {}),\n },\n };\n const doc = await findLatestDraft(docInfo.documentId, client);\n delete doc[languageField];\n const baseLanguage = gtConfig.getSourceLocale();\n const serialized = BaseDocumentSerializer(schema).serializeDocument(\n doc,\n 'document',\n baseLanguage,\n stopTypes,\n serializers\n );\n return {\n content: serialized.content,\n documentId: docInfo.documentId,\n versionId: docInfo.versionId,\n };\n },\n importTranslation: (\n ...params: Parameters<ImportTranslation>\n ): Promise<void> => {\n const [\n docInfo,\n localeId,\n document,\n context,\n serializationOptions = {},\n languageField = 'language',\n mergeWithTargetLocale = false,\n publish = false,\n ] = params;\n const { client } = context;\n const deserializers = {\n types: {\n ...(serializationOptions.additionalDeserializers ?? {}),\n },\n };\n const blockDeserializers = [\n ...(serializationOptions.additionalBlockDeserializers ?? []),\n ...customBlockDeserializers,\n ];\n\n const deserialized = BaseDocumentDeserializer.deserializeDocument(\n document,\n deserializers,\n blockDeserializers\n ) as SanityDocument;\n return documentLevelPatch(\n docInfo, // versionId is not used here, since we just use the _rev id in the deserialized HTML itself\n deserialized,\n localeId,\n client,\n languageField,\n mergeWithTargetLocale,\n publish\n );\n },\n secretsNamespace: 'translationService',\n};\n","// adapted from https://github.com/sanity-io/sanity-translations-tab. See LICENSE.md for more details.\n\nimport { SanityClient, SanityDocument } from 'sanity';\nimport {\n BaseDocumentSerializer,\n BaseDocumentDeserializer,\n BaseDocumentMerger,\n defaultStopTypes,\n customSerializers,\n customBlockDeserializers,\n} from 'sanity-naive-html-serializer';\n\nimport type {\n ExportForTranslation,\n GTFile,\n GTSerializedDocument,\n ImportTranslation,\n} from '../types';\nimport { findLatestDraft } from './utils/findLatestDraft';\nimport { findDocumentAtRevision } from './utils/findDocumentAtRevision';\nimport { gtConfig } from '../adapter/core';\n\nexport const fieldLevelPatch = async (\n docInfo: GTFile,\n translatedFields: SanityDocument,\n localeId: string,\n client: SanityClient,\n mergeWithTargetLocale: boolean = false\n): Promise<void> => {\n let baseDoc: SanityDocument;\n const baseLanguage = gtConfig.getSourceLocale();\n if (docInfo.documentId && docInfo.versionId) {\n baseDoc = await findDocumentAtRevision(\n docInfo.documentId,\n docInfo.versionId,\n client\n );\n } else {\n baseDoc = await findLatestDraft(docInfo.documentId, client);\n }\n\n const merged = BaseDocumentMerger.fieldLevelMerge(\n translatedFields,\n baseDoc,\n localeId,\n mergeWithTargetLocale ? baseLanguage : localeId\n );\n\n await client.patch(baseDoc._id).set(merged).commit();\n};\n\nexport const baseFieldLevelConfig = {\n exportForTranslation: async (\n ...params: Parameters<ExportForTranslation>\n ): Promise<GTSerializedDocument> => {\n const [docInfo, context, serializationOptions = {}] = params;\n const baseLanguage = gtConfig.getSourceLocale();\n const { client, schema } = context;\n const stopTypes = [\n ...(serializationOptions.additionalStopTypes ?? []),\n ...defaultStopTypes,\n ];\n const serializers = {\n ...customSerializers,\n types: {\n ...customSerializers.types,\n ...(serializationOptions.additionalSerializers ?? {}),\n },\n };\n const doc = await findLatestDraft(docInfo.documentId, client);\n const serialized = BaseDocumentSerializer(schema).serializeDocument(\n doc,\n 'field',\n baseLanguage,\n stopTypes,\n serializers\n );\n return {\n content: serialized.content,\n documentId: docInfo.documentId,\n versionId: docInfo.versionId,\n };\n },\n importTranslation: (\n ...params: Parameters<ImportTranslation>\n ): Promise<void> => {\n const [\n docInfo,\n localeId,\n document,\n context,\n serializationOptions = {},\n ,\n mergeWithTargetLocale,\n ] = params;\n const { client } = context;\n const deserializers = {\n types: {\n ...(serializationOptions.additionalDeserializers ?? {}),\n },\n };\n const blockDeserializers = [\n ...(serializationOptions.additionalBlockDeserializers ?? []),\n ...customBlockDeserializers,\n ];\n\n const deserialized = BaseDocumentDeserializer.deserializeDocument(\n document,\n deserializers,\n blockDeserializers\n ) as SanityDocument;\n return fieldLevelPatch(\n docInfo,\n deserialized,\n localeId,\n client,\n mergeWithTargetLocale\n );\n },\n secretsNamespace: 'translationService',\n};\n","import type { Adapter, Secrets } from '../types';\nimport { gt, gtConfig } from './core';\n\n// note: this function is used to get the available locales for a project\nexport const getLocales: Adapter['getLocales'] = async (\n secrets: Secrets | null\n) => {\n return gtConfig.getLocales().map((locale: string) => ({\n localeId: locale,\n description: gt.getLocaleProperties(locale).name,\n enabled: true,\n }));\n};\n","import type { Adapter, GTFile, Secrets } from '../types';\nimport { gt, overrideConfig } from './core';\n\n// note: this function is used to get the status of a current translation task\nexport const getTranslationTask: Adapter['getTranslationTask'] = async (\n documentInfo: GTFile,\n secrets: Secrets | null\n) => {\n if (!documentInfo.documentId || !secrets) {\n return {\n document: documentInfo,\n locales: [],\n };\n }\n overrideConfig(secrets);\n const task = await gt.querySourceFile({\n fileId: documentInfo.documentId,\n versionId: documentInfo.versionId || undefined,\n });\n\n return {\n document: {\n documentId: task.sourceFile.fileId,\n versionId: task.sourceFile.versionId,\n },\n locales: task.translations.map((translation) => ({\n localeId: translation.locale,\n progress: translation.completedAt ? 100 : 0,\n })),\n };\n};\n","import type { Adapter, GTFile, Secrets } from '../types';\nimport { gt, overrideConfig } from './core';\n\n// note: downloads the translation for a given task and locale\nexport const getTranslation: Adapter['getTranslation'] = async (\n documentInfo: GTFile,\n localeId: string,\n secrets: Secrets | null\n) => {\n if (!secrets) {\n return '';\n }\n overrideConfig(secrets);\n const text = await gt.downloadTranslatedFile({\n fileId: documentInfo.documentId,\n versionId: documentInfo.versionId || undefined,\n locale: localeId,\n });\n return text;\n};\n","import type { Adapter, GTFile, GTSerializedDocument, Secrets } from '../types';\nimport { getTranslationTask } from './getTranslationTask';\nimport { gt, overrideConfig } from './core';\nimport { libraryDefaultLocale } from 'generaltranslation/internal';\n\n// note: this function is used to create a new translation task\n// uploads files & calls the getTranslationTask function\nexport const createTask: Adapter['createTask'] = async (\n documentInfo: GTFile,\n serializedDocument: GTSerializedDocument,\n localeIds: string[],\n secrets: Secrets | null,\n workflowUid?: string,\n callbackUrl?: string\n) => {\n const fileName = `sanity/${documentInfo.documentId}`;\n overrideConfig(secrets);\n const uploadResult = await gt.uploadSourceFiles(\n [\n {\n source: {\n content: serializedDocument.content,\n fileName,\n fileId: documentInfo.documentId,\n fileFormat: 'HTML',\n locale: gt.sourceLocale || libraryDefaultLocale,\n versionId: documentInfo.versionId || undefined,\n },\n },\n ],\n {\n sourceLocale: gt.sourceLocale || libraryDefaultLocale,\n }\n );\n const enqueueResult = await gt.enqueueFiles(uploadResult.uploadedFiles, {\n sourceLocale: gt.sourceLocale || libraryDefaultLocale,\n targetLocales: localeIds,\n });\n const task = await getTranslationTask(documentInfo, secrets);\n return task;\n};\n","import type { Adapter } from '../types';\n\nimport { getLocales } from './getLocales';\nimport { getTranslationTask } from './getTranslationTask';\nimport { getTranslation } from './getTranslation';\nimport { createTask } from './createTask';\n\nexport const GTAdapter: Adapter = {\n getLocales,\n getTranslationTask,\n createTask,\n getTranslation,\n};\n","import TranslationsTab from './components/TranslationsTab';\nimport {\n Secrets,\n Adapter,\n ExportForTranslation,\n ImportTranslation,\n TranslationFunctionContext,\n TranslationsTabConfigOptions,\n GTFile,\n} from './types';\nimport { baseDocumentLevelConfig } from './configuration/baseDocumentLevelConfig';\nimport { baseFieldLevelConfig } from './configuration/baseFieldLevelConfig';\nimport { findLatestDraft } from './configuration/utils/findLatestDraft';\nimport { documentLevelPatch } from './configuration/baseDocumentLevelConfig/documentLevelPatch';\nimport { fieldLevelPatch } from './configuration/baseFieldLevelConfig';\nimport {\n BaseDocumentSerializer,\n BaseDocumentDeserializer,\n BaseDocumentMerger,\n defaultStopTypes,\n customSerializers,\n SerializedDocument,\n} from 'sanity-naive-html-serializer';\n\nexport type {\n Secrets,\n Adapter,\n ExportForTranslation,\n ImportTranslation,\n TranslationFunctionContext,\n TranslationsTabConfigOptions,\n SerializedDocument,\n};\nexport {\n TranslationsTab,\n //helpers for end developers who may need to customize serialization\n findLatestDraft,\n documentLevelPatch,\n fieldLevelPatch,\n BaseDocumentSerializer,\n BaseDocumentDeserializer,\n BaseDocumentMerger,\n defaultStopTypes,\n customSerializers,\n};\n\nimport { GTAdapter } from './adapter';\nimport { definePlugin } from 'sanity';\nimport { route } from 'sanity/router';\nimport { gt, gtConfig } from './adapter/core';\nimport { GTSerializedDocument } from './types';\nimport { libraryDefaultLocale } from 'generaltranslation/internal';\nimport type { IgnoreFields, TranslateDocumentFilter } from './adapter/types';\nimport TranslationsTool from './components/page/TranslationsTool';\nimport { SECRETS_NAMESPACE } from './utils/shared';\n\ninterface ConfigOptions {\n adapter: Adapter;\n secretsNamespace: string | null;\n exportForTranslation: (\n docInfo: GTFile,\n context: TranslationFunctionContext\n ) => Promise<GTSerializedDocument>;\n importTranslation: (\n docInfo: GTFile,\n localeId: string,\n doc: string,\n context: TranslationFunctionContext\n ) => Promise<void>;\n}\n\nexport const defaultDocumentLevelConfig: ConfigOptions = {\n ...baseDocumentLevelConfig,\n adapter: GTAdapter,\n secretsNamespace: 'generaltranslation',\n};\n\nexport const defaultFieldLevelConfig: ConfigOptions = {\n ...baseFieldLevelConfig,\n adapter: GTAdapter,\n secretsNamespace: 'generaltranslation',\n};\n\nexport { GTAdapter };\n\nexport type GTPluginConfig = Omit<\n Parameters<typeof gt.setConfig>[0],\n 'locales'\n> & {\n locales: string[];\n singletons?: string[];\n // Optional mapping function to map source document ids to translated singleton document ids\n // By default, the translated singleton document is is `${sourceDocumentId}-${locale}`\n singletonMapping?: (sourceDocumentId: string, locale: string) => string;\n ignoreFields?: IgnoreFields[];\n languageField?: string;\n translateDocuments?: TranslateDocumentFilter[];\n secretsNamespace?: string;\n};\n\n/**\n * Usage in `sanity.config.ts` (or .js)\n *\n * ```ts\n * import {defineConfig} from 'sanity'\n * import {gtPlugin} from 'gt-sanity'\n *\n * export default defineConfig({\n * // ...\n * plugins: [gtPlugin()],\n * })\n * ```\n */\nexport const gtPlugin = definePlugin<GTPluginConfig>(\n ({\n languageField = 'language',\n sourceLocale = libraryDefaultLocale,\n locales,\n customMapping,\n apiKey,\n projectId,\n singletons,\n singletonMapping,\n ignoreFields,\n translateDocuments,\n secretsNamespace = SECRETS_NAMESPACE,\n }) => {\n // Validate the translateDocuments\n translateDocuments = translateDocuments?.filter((filter) => {\n if (filter.documentId || filter.type) {\n return true;\n }\n return false;\n });\n\n gtConfig.init(\n secretsNamespace,\n languageField,\n sourceLocale,\n locales,\n singletons || [],\n // singletons is a string array of singleton document ids\n singletonMapping ||\n ((sourceDocumentId, locale) => `${sourceDocumentId}-${locale}`),\n ignoreFields || [],\n translateDocuments || []\n );\n gt.setConfig({\n sourceLocale: sourceLocale,\n customMapping: customMapping,\n apiKey: apiKey,\n projectId: projectId,\n });\n return {\n name: 'gt-sanity',\n };\n }\n);\n"],"names":["React","GT","libraryDefaultLocale","from","length","position","character","characters","j","k","x","y","z","_","f","o","t","n","e","r","s","d.RULESET","d.prefixer","d.stringify","a","c","l","d.compile","p","d.serialize","d.middleware","d.rulesheet","h","m","g","S","w","E","N","O","i","d","v","b","u","D","styled","Box","useCallback","jsx","Button","jsxs","Flex","Switch","Text","useState","useEffect","useContext","useToast","createTask","Stack","Grid","Select","Card","Label","CheckmarkCircleIcon","DownloadIcon","prev","ArrowTopRightIcon","useMemo","locales","task","useSanityClient","useSchema","randomKey","Fragment","ThemeProvider","Spinner","Layer","ToastProvider","JSONPath","JSONPointer","BaseDocumentMerger","defaultStopTypes","customSerializers","BaseDocumentSerializer","document","customBlockDeserializers","BaseDocumentDeserializer","definePlugin","filter"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14]}