@sanity/themer 0.2.1 → 0.3.1
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.
- package/dist/legacy.js.map +1 -1
- package/package.json +9 -9
package/dist/legacy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy.js","names":["Hue","dropUndefined","hue","Partial","undefined","result","mid","midPoint","lightest","darkest","black","white","gray","blue","dropUndefined","black","white","Hues","PartialHues","lightest","hex","toLowerCase","darkest","defaultHues","default","mid","midPoint","primary","transparent","positive","caution","critical","applyHues","_hues","defaults","hues","defaultMid","primaryMid","transparentMid","positiveMid","cautionMid","criticalMid","isColor","dropUndefined","Hue","HueMidPoint","PartialHues","HUE_KEYS","const","VALID_MID_POINTS","Set","parseHuesFromSearchParams","searchParams","URLSearchParams","lightest","has","assertValidColor","get","toLowerCase","undefined","darkest","default","parseHue","primary","transparent","positive","caution","critical","key","defaultLightest","defaultDarkest","Partial","input","mid","midPoint","params","split","length","TypeError","JSON","stringify","param","maybeMid","maybeMidPoint","roundMidPoint","Number","isNaN","assertValidMidPoint","startsWith","replace","throwDuplicate","value","Math","round","a","b","String","isMidPoint","applyHues","parseHuesFromSearchParams","ThemePreset","definePreset","slug","title","searchParams","hues","URLSearchParams","defaultPreset","presets","getPreset","needle","toLowerCase","match","find","preset","COLOR_TINTS","ColorTints","mix","Hue","Hues","createTonesFromHues","hues","default","primary","transparent","positive","caution","critical","createTintsFromHue","hue","title","reduce","Partial","tints","tint","hex","getColorHex","tintNum","Number","midPoint","darkSize","lightPosition","darkPosition","mid","toLowerCase","lightest","darkest","ColorTints","buildTheme","createColorTheme","multiply","multiplyRgb","parseColor","rgba","rgbToHex","screen","screenRgb","applyHues","createTonesFromHues","blue","cyan","gray","green","magenta","orange","purple","red","yellow","LegacyTheme","PartialHues","NEUTRAL_TONES","ReadonlySet","Set","SPOT_TINTS","Record","getTint","key","tints","Error","defaultTheme","themeFromHues","partialHues","bg","fg","hues","black","title","hex","default","darkest","white","lightest","tones","focusRingHue","primary","accentHue","critical","linkHue","color","base","dark","name","skeletonFrom","transparent","border","focusRing","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","solid","state","tone","mix","mix2","defaultTints","isNeutral","has","bg2","icon","muted","accent","link","code","button","mode","enabled","hovered","pressed","selected","disabled","card","input","placeholder","selectable","spot","syntax","mainShade","secondaryShade","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","v2","undefined","applyHues","parseHuesFromSearchParams","getPreset","themeFromHues","Hues","LegacyTheme","PartialHues","createTheme","hues","parseHuesFromUrl","url","URL","searchParams","preset","get","buildThemeFromUrl","applyHues","createTheme","Hues","LegacyTheme","hues","theme"],"sources":["../src/legacy/dropUndefined.ts","../src/legacy/palette.ts","../src/legacy/applyHues.ts","../src/legacy/parseHuesFromSearchParams.ts","../src/legacy/presets.ts","../src/legacy/createTonesFromHues.ts","../src/legacy/themeFromHues.ts","../src/legacy/createTheme.ts","../src/legacy/defaults.ts"],"sourcesContent":["import {Hue} from './types'\n\n/**\n * Drops properties that are set to `undefined`, so that spreading the hue\n * over defaults doesn't shadow them. The hosted Themer service used a\n * `JSON.parse(JSON.stringify(…))` round trip for this.\n */\nexport function dropUndefined(hue: Partial<Hue> | undefined): Partial<Hue> | undefined {\n if (!hue) return undefined\n\n const result: Partial<Hue> = {}\n\n if (hue.mid !== undefined) result.mid = hue.mid\n if (hue.midPoint !== undefined) result.midPoint = hue.midPoint\n if (hue.lightest !== undefined) result.lightest = hue.lightest\n if (hue.darkest !== undefined) result.darkest = hue.darkest\n\n return result\n}\n","import {ColorTint, ColorTints} from '@sanity/color'\n\n/**\n * The color palette from `@sanity/color@2.2.5`, vendored so that themes\n * generated by this module keep producing the exact same colors as the hosted\n * Themer service (themer.sanity.build), which bundles that version. The\n * current `@sanity/color` palette has different values, so it cannot be used\n * here without changing generated themes.\n */\n\n/** @internal */\nexport const black: ColorTint = {title: 'Black', hex: '#101112'}\n\n/** @internal */\nexport const white: ColorTint = {title: 'White', hex: '#fff'}\n\n/** @internal */\nexport const gray: ColorTints = {\n '50': {title: 'Gray 50', hex: '#f2f3f5'},\n '100': {title: 'Gray 100', hex: '#e6e8ec'},\n '200': {title: 'Gray 200', hex: '#ced2d9'},\n '300': {title: 'Gray 300', hex: '#b6bcc6'},\n '400': {title: 'Gray 400', hex: '#9ea6b3'},\n '500': {title: 'Gray 500', hex: '#8690a0'},\n '600': {title: 'Gray 600', hex: '#6e7683'},\n '700': {title: 'Gray 700', hex: '#565d67'},\n '800': {title: 'Gray 800', hex: '#3f434a'},\n '900': {title: 'Gray 900', hex: '#272a2e'},\n '950': {title: 'Gray 950', hex: '#1b1d20'},\n}\n\n/** @internal */\nexport const blue: ColorTints = {\n '50': {title: 'Blue 50', hex: '#e8f1fe'},\n '100': {title: 'Blue 100', hex: '#d2e3fe'},\n '200': {title: 'Blue 200', hex: '#a6c8fd'},\n '300': {title: 'Blue 300', hex: '#7aacfd'},\n '400': {title: 'Blue 400', hex: '#4e91fc'},\n '500': {title: 'Blue 500', hex: '#2276fc'},\n '600': {title: 'Blue 600', hex: '#1e61cd'},\n '700': {title: 'Blue 700', hex: '#1a4d9e'},\n '800': {title: 'Blue 800', hex: '#17396f'},\n '900': {title: 'Blue 900', hex: '#132540'},\n '950': {title: 'Blue 950', hex: '#111b29'},\n}\n\n/** @internal */\nexport const purple: ColorTints = {\n '50': {title: 'Purple 50', hex: '#f8e9fe'},\n '100': {title: 'Purple 100', hex: '#f2d3fe'},\n '200': {title: 'Purple 200', hex: '#e6a7fd'},\n '300': {title: 'Purple 300', hex: '#d97bfd'},\n '400': {title: 'Purple 400', hex: '#cd4efc'},\n '500': {title: 'Purple 500', hex: '#c123fc'},\n '600': {title: 'Purple 600', hex: '#9d1fcd'},\n '700': {title: 'Purple 700', hex: '#7a1b9e'},\n '800': {title: 'Purple 800', hex: '#56186f'},\n '900': {title: 'Purple 900', hex: '#331440'},\n '950': {title: 'Purple 950', hex: '#211229'},\n}\n\n/** @internal */\nexport const magenta: ColorTints = {\n '50': {title: 'Magenta 50', hex: '#fcebf5'},\n '100': {title: 'Magenta 100', hex: '#f9d7eb'},\n '200': {title: 'Magenta 200', hex: '#f4afd8'},\n '300': {title: 'Magenta 300', hex: '#ef87c4'},\n '400': {title: 'Magenta 400', hex: '#ea5fb1'},\n '500': {title: 'Magenta 500', hex: '#e5389e'},\n '600': {title: 'Magenta 600', hex: '#ba3082'},\n '700': {title: 'Magenta 700', hex: '#8f2866'},\n '800': {title: 'Magenta 800', hex: '#65204a'},\n '900': {title: 'Magenta 900', hex: '#3a182d'},\n '950': {title: 'Magenta 950', hex: '#25141f'},\n}\n\n/** @internal */\nexport const red: ColorTints = {\n '50': {title: 'Red 50', hex: '#fdebea'},\n '100': {title: 'Red 100', hex: '#fcd8d5'},\n '200': {title: 'Red 200', hex: '#f9b1ab'},\n '300': {title: 'Red 300', hex: '#f68b82'},\n '400': {title: 'Red 400', hex: '#f36458'},\n '500': {title: 'Red 500', hex: '#f03e2f'},\n '600': {title: 'Red 600', hex: '#c33529'},\n '700': {title: 'Red 700', hex: '#962c23'},\n '800': {title: 'Red 800', hex: '#69231d'},\n '900': {title: 'Red 900', hex: '#3c1a17'},\n '950': {title: 'Red 950', hex: '#261514'},\n}\n\n/** @internal */\nexport const orange: ColorTints = {\n '50': {title: 'Orange 50', hex: '#fef0e6'},\n '100': {title: 'Orange 100', hex: '#fee2ce'},\n '200': {title: 'Orange 200', hex: '#fdc59d'},\n '300': {title: 'Orange 300', hex: '#fca86d'},\n '400': {title: 'Orange 400', hex: '#fb8b3c'},\n '500': {title: 'Orange 500', hex: '#e57322'},\n '600': {title: 'Orange 600', hex: '#ba5f1f'},\n '700': {title: 'Orange 700', hex: '#904b1b'},\n '800': {title: 'Orange 800', hex: '#653818'},\n '900': {title: 'Orange 900', hex: '#3a2415'},\n '950': {title: 'Orange 950', hex: '#251a13'},\n}\n\n/** @internal */\nexport const yellow: ColorTints = {\n '50': {title: 'Yellow 50', hex: '#fef7da'},\n '100': {title: 'Yellow 100', hex: '#fdefb6'},\n '200': {title: 'Yellow 200', hex: '#fcdf6d'},\n '300': {title: 'Yellow 300', hex: '#fbd024'},\n '400': {title: 'Yellow 400', hex: '#d9b421'},\n '500': {title: 'Yellow 500', hex: '#b7991e'},\n '600': {title: 'Yellow 600', hex: '#967e1c'},\n '700': {title: 'Yellow 700', hex: '#746219'},\n '800': {title: 'Yellow 800', hex: '#534717'},\n '900': {title: 'Yellow 900', hex: '#312c14'},\n '950': {title: 'Yellow 950', hex: '#201e13'},\n}\n\n/** @internal */\nexport const green: ColorTints = {\n '50': {title: 'Green 50', hex: '#e7f9ed'},\n '100': {title: 'Green 100', hex: '#d0f4dc'},\n '200': {title: 'Green 200', hex: '#a1eaba'},\n '300': {title: 'Green 300', hex: '#72e097'},\n '400': {title: 'Green 400', hex: '#43d675'},\n '500': {title: 'Green 500', hex: '#3ab564'},\n '600': {title: 'Green 600', hex: '#329454'},\n '700': {title: 'Green 700', hex: '#297343'},\n '800': {title: 'Green 800', hex: '#215233'},\n '900': {title: 'Green 900', hex: '#183122'},\n '950': {title: 'Green 950', hex: '#14211a'},\n}\n\n/** @internal */\nexport const cyan: ColorTints = {\n '50': {title: 'Cyan 50', hex: '#e3fafd'},\n '100': {title: 'Cyan 100', hex: '#c7f5fc'},\n '200': {title: 'Cyan 200', hex: '#90ecf9'},\n '300': {title: 'Cyan 300', hex: '#59e3f6'},\n '400': {title: 'Cyan 400', hex: '#22daf4'},\n '500': {title: 'Cyan 500', hex: '#1fb8ce'},\n '600': {title: 'Cyan 600', hex: '#1c97a8'},\n '700': {title: 'Cyan 700', hex: '#197583'},\n '800': {title: 'Cyan 800', hex: '#16545d'},\n '900': {title: 'Cyan 900', hex: '#133237'},\n '950': {title: 'Cyan 950', hex: '#112124'},\n}\n","import {dropUndefined} from './dropUndefined'\nimport {black, white} from './palette'\nimport {Hues, PartialHues} from './types'\n\nconst lightest = white.hex.toLowerCase()\nconst darkest = black.hex.toLowerCase()\n\n/**\n * The hues of the default Studio theme, matching the `default` preset of the\n * hosted Themer service.\n */\nconst defaultHues: Hues = {\n default: {\n lightest,\n darkest,\n mid: '#8690a0',\n midPoint: 500,\n },\n primary: {\n lightest,\n darkest,\n mid: '#2276fc',\n midPoint: 500,\n },\n transparent: {\n lightest,\n darkest,\n mid: '#8690a0',\n midPoint: 500,\n },\n positive: {\n lightest,\n darkest,\n mid: '#43d675',\n midPoint: 400,\n },\n caution: {\n lightest,\n darkest,\n mid: '#fbd024',\n midPoint: 300,\n },\n critical: {\n lightest,\n darkest,\n mid: '#f03e2f',\n midPoint: 500,\n },\n}\n\n/**\n * Merges partial hues over the defaults, exactly like the hosted Themer\n * service did. When a hue's `mid` color is customized without an explicit\n * `midPoint`, the mid point resets to `500`.\n */\nexport function applyHues(_hues: PartialHues, defaults: Hues = defaultHues): Hues {\n // Filter out undefined values so they don't shadow the defaults when spread\n const hues: PartialHues = {\n default: dropUndefined(_hues.default),\n primary: dropUndefined(_hues.primary),\n transparent: dropUndefined(_hues.transparent),\n positive: dropUndefined(_hues.positive),\n caution: dropUndefined(_hues.caution),\n critical: dropUndefined(_hues.critical),\n }\n\n const defaultMid = hues.default?.mid?.toLowerCase() || defaults.default.mid\n const primaryMid = hues.primary?.mid?.toLowerCase() || defaults.primary.mid\n const transparentMid = hues.transparent?.mid?.toLowerCase() || defaults.transparent.mid\n const positiveMid = hues.positive?.mid?.toLowerCase() || defaults.positive.mid\n const cautionMid = hues.caution?.mid?.toLowerCase() || defaults.caution.mid\n const criticalMid = hues.critical?.mid?.toLowerCase() || defaults.critical.mid\n\n return {\n default: {\n ...defaults.default,\n midPoint: defaultMid === defaults.default.mid ? defaults.default.midPoint : 500,\n ...hues.default,\n mid: defaultMid,\n },\n primary: {\n ...defaults.primary,\n midPoint: primaryMid === defaults.primary.mid ? defaults.primary.midPoint : 500,\n ...hues.primary,\n mid: primaryMid,\n },\n transparent: {\n ...defaults.transparent,\n midPoint: transparentMid === defaults.transparent.mid ? defaults.transparent.midPoint : 500,\n ...hues.transparent,\n mid: transparentMid,\n },\n positive: {\n ...defaults.positive,\n midPoint: positiveMid === defaults.positive.mid ? defaults.positive.midPoint : 500,\n ...hues.positive,\n mid: positiveMid,\n },\n caution: {\n ...defaults.caution,\n midPoint: cautionMid === defaults.caution.mid ? defaults.caution.midPoint : 500,\n ...hues.caution,\n mid: cautionMid,\n },\n critical: {\n ...defaults.critical,\n midPoint: criticalMid === defaults.critical.mid ? defaults.critical.midPoint : 500,\n ...hues.critical,\n mid: criticalMid,\n },\n }\n}\n","import {isColor} from '../lib/mix'\nimport {dropUndefined} from './dropUndefined'\nimport {Hue, HueMidPoint, PartialHues} from './types'\n\nconst HUE_KEYS = ['default', 'primary', 'transparent', 'positive', 'caution', 'critical'] as const\n\nconst VALID_MID_POINTS = new Set([50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950])\n\n/**\n * Parses hues from the query of a hosted Themer service URL, exactly like\n * `https://themer.sanity.build/api/hues` did — including its validation\n * errors.\n */\nexport function parseHuesFromSearchParams(searchParams: URLSearchParams): PartialHues {\n const lightest = searchParams.has('lightest')\n ? assertValidColor(`#${(searchParams.get('lightest') ?? '').toLowerCase()}`)\n : undefined\n const darkest = searchParams.get('darkest')\n ? assertValidColor(`#${(searchParams.get('darkest') ?? '').toLowerCase()}`)\n : undefined\n\n // Filter out undefined values so they don't shadow defaults downstream\n return {\n default: dropUndefined(parseHue('default', searchParams, lightest, darkest)),\n primary: dropUndefined(parseHue('primary', searchParams, lightest, darkest)),\n transparent: dropUndefined(parseHue('transparent', searchParams, lightest, darkest)),\n positive: dropUndefined(parseHue('positive', searchParams, lightest, darkest)),\n caution: dropUndefined(parseHue('caution', searchParams, lightest, darkest)),\n critical: dropUndefined(parseHue('critical', searchParams, lightest, darkest)),\n }\n}\n\nfunction parseHue(\n key: (typeof HUE_KEYS)[number],\n searchParams: URLSearchParams,\n defaultLightest: string | undefined,\n defaultDarkest: string | undefined,\n): Partial<Hue> {\n if (!searchParams.has(key)) {\n return {lightest: defaultLightest, darkest: defaultDarkest}\n }\n const input = (searchParams.get(key) ?? '').toLowerCase()\n\n let mid: string | undefined\n let midPoint: HueMidPoint | undefined\n let lightest: string | undefined\n let darkest: string | undefined\n // format: color;midPoint;lightest:color;darkest:color\n const params = input.split(';')\n if (params.length > 4) {\n throw new TypeError(\n `Invalid number of params for the ${key} hue, it should be 4 or less instead it's ${\n params.length\n }: ${JSON.stringify(params)}`,\n )\n }\n for (const param of params) {\n const maybeMid = `#${param}`\n const maybeMidPoint = roundMidPoint(Number(param))\n\n switch (true) {\n case param === '':\n break\n case isColor(maybeMid) && !mid:\n mid = maybeMid\n break\n case !Number.isNaN(maybeMidPoint) && !midPoint:\n midPoint = assertValidMidPoint(maybeMidPoint)\n break\n case param.startsWith('lightest:') && !lightest:\n lightest = assertValidColor(`#${param.replace(/^lightest:/, '')}`)\n break\n case param.startsWith('darkest:') && !darkest:\n darkest = assertValidColor(`#${param.replace(/^darkest:/, '')}`)\n break\n // Surface duplicates\n case isColor(maybeMid):\n throwDuplicate(key, mid?.replace(/^#/, ''), param, input)\n break\n case !Number.isNaN(maybeMidPoint):\n throwDuplicate(key, midPoint, maybeMidPoint, input)\n break\n case param.startsWith('lightest:'):\n throwDuplicate(key, lightest?.replace(/^#/, 'lightest:'), param, input)\n break\n case param.startsWith('darkest:'):\n throwDuplicate(key, darkest?.replace(/^#/, 'darkest:'), param, input)\n break\n default:\n // If the parser can't make sense of it we throw to surface that something is wrong with the input\n throw new TypeError(`Invalid param for the ${key} hue: ${param}`)\n }\n }\n\n return {\n mid,\n midPoint,\n lightest: lightest ?? defaultLightest,\n darkest: darkest ?? defaultDarkest,\n }\n}\n\nfunction roundMidPoint(value: number): number {\n if (value < 75) {\n return 50\n }\n if (value > 925) {\n return 950\n }\n\n return Math.round(value / 100) * 100\n}\n\nfunction throwDuplicate(key: string, a: unknown, b: unknown, input: string): never {\n throw new TypeError(\n `Duplicate params detected. Remove at least ${\n a === b\n ? `one of the ${JSON.stringify(String(a))}`\n : `${JSON.stringify(String(a))} or ${JSON.stringify(String(b))}`\n } from the ${key} hue: ${JSON.stringify(input)}`,\n )\n}\n\nfunction assertValidColor(input: string): string {\n if (isColor(input)) {\n return input\n }\n throw new TypeError(`Invalid color: ${input}`)\n}\n\nfunction assertValidMidPoint(input: number): HueMidPoint {\n if (isMidPoint(input)) {\n return input\n }\n throw new TypeError(`Invalid midPoint: ${input}`)\n}\n\nfunction isMidPoint(input: number): input is HueMidPoint {\n return VALID_MID_POINTS.has(input)\n}\n","import {applyHues} from './applyHues'\nimport {parseHuesFromSearchParams} from './parseHuesFromSearchParams'\nimport {ThemePreset} from './types'\n\nfunction definePreset(slug: string, title: string, searchParams: string): ThemePreset {\n return {\n slug,\n title,\n searchParams,\n hues: applyHues(parseHuesFromSearchParams(new URLSearchParams(searchParams))),\n }\n}\n\nconst defaultPreset = definePreset(\n 'default',\n 'Studio v3',\n 'lightest=fff&darkest=101112&default=8690a0;500&primary=2276fc;500&transparent=8690a0;500&positive=43d675;400&caution=fbd024;300&critical=f03e2f;500',\n)\n\n/**\n * The preset themes of the hosted Themer service (themer.sanity.build), with\n * the same slugs and hues:\n *\n * ```ts\n * import {createTheme, presets} from '@sanity/themer/legacy'\n *\n * const verdant = presets.find((preset) => preset.slug === 'verdant')\n * const theme = createTheme(verdant.hues)\n * ```\n *\n * @public\n */\nexport const presets: ThemePreset[] = [\n defaultPreset,\n definePreset(\n 'dew',\n 'Dew',\n 'default=5e63b4;600;lightest:fcfcfd;darkest:0d0d15&primary=d1a308;400;lightest:fcfcfd;darkest:0d0d15&transparent=6c6fa7;500;lightest:fcfcfd;darkest:0d0d15&positive=43D675;300;lightest:fcfcfd;darkest:0d0d15&caution=fb9f24;400;lightest:fcfcfd;darkest:0d0d15&critical=F03E2F;500;lightest:fcfcfd;darkest:0d0d15',\n ),\n definePreset(\n 'pink-synth',\n 'Pink Synth',\n 'lightest=f7f2f5&darkest=171721&default=8b6584&primary=ec4899&transparent=503a4c&positive=10b981&caution=fde047;300&critical=fe3459',\n ),\n definePreset(\n 'pixel-art',\n 'Pixel Art',\n 'default=57619c;600&primary=f10784&transparent=5b6498;600&positive=43d675;300&caution=fbd024;200&lightest=fcfcfd&darkest=0d0e15',\n ),\n definePreset(\n 'retro-colonial',\n 'Retro Colonial',\n 'default=8bb9b5;400&primary=fa7a78;400&transparent=8bb9b5;400&positive=43d675;300&caution=fbd024;200&critical=f02f53&lightest=fcfdfd&darkest=0d1515',\n ),\n definePreset(\n 'rosabel',\n 'Rosabel',\n 'default=9d8966&primary=ed2555;700&transparent=9d8966&positive=43d675;300&caution=fbd024;200&lightest=fdfdfc&darkest=15120d',\n ),\n definePreset(\n 'stereofidelic',\n 'Stereofidelic',\n 'default=678e9a&primary=f13009&transparent=678e9a&positive=43d675;300&caution=fbd024;200&critical=f02f35&lightest=fcfdfd&darkest=0e1315',\n ),\n definePreset(\n 'tw-cyan',\n 'Tailwind Cyan',\n 'default=677389;500;lightest:f9fafb;darkest:101728&primary=51b4d0;500;lightest:effefe;darkest:264d61&transparent=6b727f;500;lightest:f8fafb;darkest:131826&positive=55b785;500;lightest:eefdf5;darkest:214d3b&caution=e2b53e;500;lightest:fefbea;darkest:69411b&critical=e14f62;500;lightest:fdf2f2;darkest:7d2037',\n ),\n definePreset(\n 'verdant',\n 'Verdant',\n 'default=5c9199;500;lightest:fcfdfd;darkest:0d1415&primary=1cb485;400;lightest:fcfdfd;darkest:0d1415&transparent=5c9199;500;lightest:fcfdfd;darkest:0d1415&positive=43D675;300;lightest:fcfdfd;darkest:0d1415&caution=FBD024;200;lightest:fcfdfd;darkest:0d1415&critical=F03E2F;500;lightest:fcfdfd;darkest:0d1415',\n ),\n]\n\n/**\n * Finds a preset by its slug, falling back to the default Studio preset for\n * unknown slugs — the behavior of the hosted Themer service's `?preset`\n * param, which `parseHuesFromUrl` exposes.\n *\n * @internal\n */\nexport function getPreset(slug: string | null | undefined): ThemePreset {\n const needle = slug?.toLowerCase()\n const match = presets.find((preset) => preset.slug === needle)\n if (match) return match\n return defaultPreset\n}\n","import {COLOR_TINTS, ColorTints} from '@sanity/color'\n\nimport {mix} from '../lib/mix'\nimport {Hue, Hues} from './types'\n\n/**\n * Generates the tint ramp for each of the six hues, exactly like the hosted\n * Themer service did.\n */\nexport function createTonesFromHues(hues: Hues): {\n default: ColorTints\n primary: ColorTints\n transparent: ColorTints\n positive: ColorTints\n caution: ColorTints\n critical: ColorTints\n} {\n return {\n default: createTintsFromHue(hues.default, 'Default'),\n primary: createTintsFromHue(hues.primary, 'Primary'),\n transparent: createTintsFromHue(hues.transparent, 'Transparent'),\n positive: createTintsFromHue(hues.positive, 'Positive'),\n caution: createTintsFromHue(hues.caution, 'Caution'),\n critical: createTintsFromHue(hues.critical, 'Critical'),\n }\n}\n\nfunction createTintsFromHue(hue: Hue, title: string): ColorTints {\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- the reduce assigns every COLOR_TINTS key, so the Partial is complete\n return COLOR_TINTS.reduce<Partial<ColorTints>>((tints, tint) => {\n tints[tint] = {\n title: `${title} ${tint}`,\n hex: getColorHex(hue, tint),\n }\n\n return tints\n }, {}) as ColorTints\n}\n\nfunction getColorHex(hue: Hue, tint: string): string {\n const tintNum = Number(tint)\n const midPoint = hue.midPoint\n const darkSize = 1000 - midPoint\n const lightPosition = tintNum / midPoint\n const darkPosition = (tintNum - midPoint) / darkSize\n\n if (tintNum === midPoint) {\n return hue.mid.toLowerCase()\n }\n\n // light side of scale: x < midPoint\n if (tintNum < midPoint) {\n return mix(lightPosition, hue.mid, hue.lightest)\n }\n\n // dark side of scale: x > midPoint\n return mix(darkPosition, hue.darkest, hue.mid)\n}\n","import {ColorTints} from '@sanity/color'\nimport {\n buildTheme,\n createColorTheme,\n multiply as multiplyRgb,\n parseColor,\n rgba,\n rgbToHex,\n screen as screenRgb,\n} from '@sanity/ui/theme'\n\nimport {applyHues} from './applyHues'\nimport {createTonesFromHues} from './createTonesFromHues'\nimport {blue, cyan, gray, green, magenta, orange, purple, red, yellow} from './palette'\nimport {LegacyTheme, PartialHues} from './types'\n\nconst NEUTRAL_TONES: ReadonlySet<string> = new Set(['default', 'transparent'])\n\n/** The static tints used for spot colors, syntax highlighting and input states */\nconst SPOT_TINTS: Record<string, ColorTints> = {\n blue,\n cyan,\n gray,\n green,\n magenta,\n orange,\n purple,\n red,\n yellow,\n}\n\nfunction getTint(key: string): ColorTints {\n const tints = SPOT_TINTS[key]\n\n if (!tints) {\n throw new Error(`Unknown tint: ${key}`)\n }\n\n return tints\n}\n\nconst defaultTheme = buildTheme()\n\n/**\n * Generates a Studio theme from hues, producing the exact same colors as the\n * hosted Themer service (themer.sanity.build). This is a port of its\n * `themeFromHues` implementation:\n * https://github.com/sanity-io/themer/blob/main/apps/v1/utils/themeFromHues.ts\n */\nexport function themeFromHues(partialHues: PartialHues): LegacyTheme {\n function multiply(bg: string, fg: string): string {\n return rgbToHex(multiplyRgb(parseColor(bg), parseColor(fg)))\n }\n function screen(bg: string, fg: string): string {\n return rgbToHex(screenRgb(parseColor(bg), parseColor(fg)))\n }\n\n const hues = applyHues(partialHues)\n // These variables are made top-level to keep the body of createColorTheme largely the same.\n // This makes it much easier to sync it with new releases of @sanity/ui should its implementation details change.\n const black = {title: 'Black', hex: hues.default.darkest}\n const white = {title: 'white', hex: hues.default.lightest}\n\n const tones = createTonesFromHues(hues)\n const focusRingHue = tones.primary\n const accentHue = tones.critical\n const linkHue = tones.primary\n\n // Generate colors :OOO\n // Based on the studio color theme of @sanity/ui at the time the hosted\n // Themer service was built\n // oxlint-disable-next-line no-deprecated\n const color = createColorTheme({\n base: ({dark, name}) => {\n if (name === 'default') {\n const skeletonFrom = dark ? tones.transparent[900].hex : tones.transparent[100].hex\n\n return {\n fg: dark ? white.hex : black.hex,\n bg: dark ? black.hex : white.hex,\n border: tones.transparent[dark ? 800 : 200].hex,\n focusRing: focusRingHue[500].hex,\n shadow: {\n outline: rgba(tones.transparent[500].hex, 0.4),\n umbra: rgba(dark ? black.hex : tones.transparent[500].hex, 0.2),\n penumbra: rgba(dark ? black.hex : tones.transparent[500].hex, 0.14),\n ambient: rgba(dark ? black.hex : tones.transparent[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (name === 'transparent') {\n const tints = tones.default\n const skeletonFrom = tints[dark ? 800 : 200].hex\n\n return {\n fg: tints[dark ? 100 : 900].hex,\n bg: tints[dark ? 950 : 50].hex,\n border: tints[dark ? 800 : 300].hex,\n focusRing: focusRingHue[500].hex,\n shadow: {\n outline: rgba(tints[500].hex, dark ? 0.2 : 0.4),\n umbra: rgba(dark ? black.hex : tints[500].hex, 0.2),\n penumbra: rgba(dark ? black.hex : tints[500].hex, 0.14),\n ambient: rgba(dark ? black.hex : tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n const tints = tones[name] || tones.default\n const skeletonFrom = tints[dark ? 800 : 200].hex\n\n return {\n fg: tints[dark ? 100 : 900].hex,\n bg: tints[dark ? 950 : 50].hex,\n border: tints[dark ? 800 : 200].hex,\n focusRing: tints[500].hex,\n shadow: {\n outline: rgba(tints[500].hex, dark ? 0.2 : 0.4),\n umbra: rgba(dark ? black.hex : tints[500].hex, 0.2),\n penumbra: rgba(dark ? black.hex : tints[500].hex, 0.14),\n ambient: rgba(dark ? black.hex : tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n solid: ({base, dark, name, state, tone}) => {\n const mix = dark ? screen : multiply\n const mix2 = dark ? multiply : screen\n const defaultTints = tones[name] || tones.default\n const isNeutral = NEUTRAL_TONES.has(name) && NEUTRAL_TONES.has(tone)\n\n let tints = tones[tone === 'default' ? name : tone] || defaultTints\n\n if (state === 'disabled') {\n tints = defaultTints\n const bg = mix(base.bg, tints[dark ? 800 : 200].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 800 : 200].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n icon: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n accent: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n link: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n code: {\n bg,\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'hovered') {\n const bg = mix(base.bg, tints[dark ? 300 : 600].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 300 : 600].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n icon: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, accentHue[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, linkHue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'pressed') {\n const bg = mix(base.bg, tints[dark ? 200 : 800].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg: mix(base.bg, tints[dark ? 200 : 800].hex),\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 200 : 800].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n icon: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, accentHue[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, linkHue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 200 : 800].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 200 : 800].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n icon: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, accentHue[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, linkHue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n // state: \"enabled\" | unknown\n const bg = mix(base.bg, tints[dark ? 400 : 500].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 400 : 500].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n icon: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 900 : 100].hex),\n },\n accent: {\n fg: mix2(bg, accentHue[dark ? 900 : 100].hex),\n },\n link: {\n fg: mix2(bg, linkHue[dark ? 900 : 100].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 900 : 100].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n muted: ({base, dark, name, state, tone}) => {\n const mix = dark ? screen : multiply\n const defaultTints = tones[name] || tones.default\n const isNeutral = NEUTRAL_TONES.has(name) && NEUTRAL_TONES.has(tone)\n\n let tints = tones[tone === 'default' ? name : tone] || defaultTints\n\n if (state === 'disabled') {\n tints = defaultTints\n\n const bg = base.bg\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(bg, tints[dark ? 800 : 200].hex),\n icon: mix(bg, tints[dark ? 800 : 200].hex),\n muted: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n accent: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n link: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n code: {\n bg,\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n skeleton: {\n from: rgba(skeletonFrom, 0.5),\n to: rgba(skeletonFrom, 0.25),\n },\n }\n }\n\n if (state === 'hovered') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 950 : 50].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n icon: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, linkHue[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, linkHue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'pressed') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 900 : 100].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n icon: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(bg, accentHue[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(bg, linkHue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 900 : 100].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n icon: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(bg, accentHue[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(bg, linkHue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n const bg = base.bg\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 300 : 700].hex),\n icon: mix(base.bg, tints[dark ? 300 : 700].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, accentHue[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, linkHue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n enabled: {\n ...muted.enabled,\n border: muted.enabled.bg,\n },\n hovered: {\n ...muted.hovered,\n border: muted.hovered.bg,\n },\n pressed: {\n ...muted.pressed,\n border: muted.pressed.bg,\n },\n selected: {\n ...muted.selected,\n border: muted.selected.bg,\n },\n disabled: {\n ...muted.disabled,\n border: muted.disabled.bg,\n },\n }\n }\n\n if (mode === 'ghost') {\n return {\n ...solid,\n enabled: {\n ...muted.enabled,\n border: base.border,\n },\n disabled: muted.disabled,\n }\n }\n\n return solid\n },\n\n card: ({base, dark, muted, name, solid, state}) => {\n if (state === 'hovered') {\n return muted[name].hovered\n }\n\n if (state === 'disabled') {\n return muted[name].disabled\n }\n\n const isNeutral = NEUTRAL_TONES.has(name)\n const tints = tones[name] || tones.default\n const mix = dark ? screen : multiply\n\n if (state === 'pressed') {\n if (isNeutral) {\n return muted.primary.pressed\n }\n\n return muted[name].pressed\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n return solid.primary.enabled\n }\n\n return solid[name].enabled\n }\n\n const bg = base.bg\n const skeletonFrom = mix(base.bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n fg: base.fg,\n icon: base.fg,\n border: base.border,\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: tints[dark ? 400 : 600].hex,\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n input: ({base, dark, mode, state}) => {\n const mix = dark ? screen : multiply\n\n if (mode === 'invalid') {\n const tints = tones.critical\n\n return {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n bg2: mix(base.bg, tints[dark ? 800 : 200].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n border: mix(base.bg, tints[dark ? 800 : 200].hex),\n placeholder: mix(base.bg, tints[dark ? 600 : 400].hex),\n }\n }\n\n if (state === 'hovered') {\n return {\n bg: base.bg,\n bg2: mix(base.bg, gray[dark ? 700 : 300].hex),\n fg: base.fg,\n border: mix(base.bg, gray[dark ? 700 : 300].hex),\n placeholder: mix(base.bg, gray[dark ? 600 : 400].hex),\n }\n }\n\n if (state === 'disabled') {\n return {\n bg: mix(base.bg, gray[dark ? 950 : 50].hex),\n bg2: mix(base.bg, gray[dark ? 900 : 100].hex),\n fg: mix(base.bg, gray[dark ? 700 : 300].hex),\n border: mix(base.bg, gray[dark ? 900 : 100].hex),\n placeholder: mix(base.bg, gray[dark ? 800 : 200].hex),\n }\n }\n\n if (state === 'readOnly') {\n return {\n bg: mix(base.bg, gray[dark ? 950 : 50].hex),\n bg2: mix(base.bg, gray[dark ? 800 : 200].hex),\n fg: mix(base.bg, gray[dark ? 200 : 800].hex),\n border: mix(base.bg, gray[dark ? 800 : 200].hex),\n placeholder: mix(base.bg, gray[dark ? 600 : 400].hex),\n }\n }\n\n return {\n bg: base.bg,\n bg2: base.border,\n fg: base.fg,\n border: base.border,\n placeholder: mix(base.bg, gray[dark ? 600 : 400].hex),\n }\n },\n\n selectable: ({base, muted, tone, solid, state}) => {\n if (state === 'enabled') {\n return {\n ...muted[tone].enabled,\n bg: base.bg,\n }\n }\n\n if (state === 'pressed') {\n if (tone === 'default') {\n return muted.primary.pressed\n }\n\n return muted[tone].pressed\n }\n\n if (state === 'selected') {\n if (tone === 'default') {\n return solid.primary.enabled\n }\n\n return solid[tone].enabled\n }\n\n if (state === 'disabled') {\n return {\n ...muted[tone].disabled,\n bg: base.bg,\n }\n }\n\n return muted[tone][state]\n },\n\n spot: ({base, dark, key}) => {\n const mix = dark ? screen : multiply\n\n return mix(base.bg, getTint(key)[dark ? 400 : 500].hex)\n },\n\n syntax: ({base, dark}) => {\n const mix = dark ? screen : multiply\n const mainShade = dark ? 400 : 600\n const secondaryShade = dark ? 600 : 400\n\n return {\n atrule: mix(base.bg, purple[mainShade].hex),\n attrName: mix(base.bg, green[mainShade].hex),\n attrValue: mix(base.bg, yellow[mainShade].hex),\n attribute: mix(base.bg, yellow[mainShade].hex),\n boolean: mix(base.bg, purple[mainShade].hex),\n builtin: mix(base.bg, purple[mainShade].hex),\n cdata: mix(base.bg, yellow[mainShade].hex),\n char: mix(base.bg, yellow[mainShade].hex),\n class: mix(base.bg, orange[mainShade].hex),\n className: mix(base.bg, cyan[mainShade].hex),\n comment: mix(base.bg, gray[secondaryShade].hex),\n constant: mix(base.bg, purple[mainShade].hex),\n deleted: mix(base.bg, red[mainShade].hex),\n doctype: mix(base.bg, gray[secondaryShade].hex),\n entity: mix(base.bg, red[mainShade].hex),\n function: mix(base.bg, green[mainShade].hex),\n hexcode: mix(base.bg, blue[mainShade].hex),\n id: mix(base.bg, purple[mainShade].hex),\n important: mix(base.bg, purple[mainShade].hex),\n inserted: mix(base.bg, yellow[mainShade].hex),\n keyword: mix(base.bg, magenta[mainShade].hex),\n number: mix(base.bg, purple[mainShade].hex),\n operator: mix(base.bg, magenta[mainShade].hex),\n prolog: mix(base.bg, gray[secondaryShade].hex),\n property: mix(base.bg, blue[mainShade].hex),\n pseudoClass: mix(base.bg, yellow[mainShade].hex),\n pseudoElement: mix(base.bg, yellow[mainShade].hex),\n punctuation: mix(base.bg, gray[mainShade].hex),\n regex: mix(base.bg, blue[mainShade].hex),\n selector: mix(base.bg, red[mainShade].hex),\n string: mix(base.bg, yellow[mainShade].hex),\n symbol: mix(base.bg, purple[mainShade].hex),\n tag: mix(base.bg, red[mainShade].hex),\n unit: mix(base.bg, orange[mainShade].hex),\n url: mix(base.bg, red[mainShade].hex),\n variable: mix(base.bg, red[mainShade].hex),\n }\n },\n })\n\n // Sanity Studio only reads `color`, `fonts` and `v2` off a custom theme, and\n // throws away the `fonts` of themes flagged `__themer: true` — a workaround\n // for the hosted service serving the fonts of the `@sanity/ui` version it was\n // bundled with, which drifted from the Studio's own. These fonts come from the\n // `@sanity/ui` installed next to the Studio instead, so they already are the\n // ones the workaround substitutes and the theme needs no flag:\n // https://github.com/sanity-io/sanity/blob/bae53feb46ab7f5630259a264968b50bdbc728bb/packages/sanity/src/core/studio/StudioThemeProvider.tsx#L13-L17\n // oxlint-disable-next-line no-deprecated -- the legacy API intentionally targets the deprecated v0 color property, like the hosted service did\n return {...defaultTheme, color, v2: undefined}\n}\n","import {applyHues} from './applyHues'\nimport {parseHuesFromSearchParams} from './parseHuesFromSearchParams'\nimport {getPreset} from './presets'\nimport {themeFromHues} from './themeFromHues'\nimport {Hues, LegacyTheme, PartialHues} from './types'\n\n/**\n * Generates a Studio theme from hues, producing the same colors as importing\n * the theme from the hosted Themer service (themer.sanity.build):\n *\n * ```ts\n * import {createTheme, hues} from '@sanity/themer/legacy'\n * import {defineConfig} from 'sanity'\n *\n * export default defineConfig({\n * theme: createTheme({...hues, primary: {...hues.primary, mid: '#22fca8'}}),\n * // ...rest of the config\n * })\n * ```\n *\n * @public\n */\nexport function createTheme(hues: PartialHues = {}): LegacyTheme {\n return themeFromHues(hues)\n}\n\n/**\n * Parses the hues encoded in a hosted Themer service URL, returning the exact\n * hues that `https://themer.sanity.build/api/hues` served for that query —\n * presets and overrides included.\n *\n * ```ts\n * import {createTheme, parseHuesFromUrl} from '@sanity/themer/legacy'\n *\n * const hues = parseHuesFromUrl(\n * 'https://themer.sanity.build/api/hues?preset=verdant&primary=22fca8',\n * )\n * const theme = createTheme(hues)\n * ```\n *\n * @public\n */\nexport function parseHuesFromUrl(url: string | URL): Hues {\n const {searchParams} = new URL(url, 'https://themer.sanity.build/api/hues')\n const preset = getPreset(searchParams.get('preset'))\n\n return applyHues(parseHuesFromSearchParams(searchParams), preset.hues)\n}\n\n/**\n * The one-line replacement for a theme imported from the hosted Themer\n * service — pass the URL that used to be imported:\n *\n * ```ts\n * // Before:\n * // import {theme} from 'https://themer.sanity.build/api/hues?preset=verdant'\n *\n * // After:\n * import {buildThemeFromUrl} from '@sanity/themer/legacy'\n *\n * const theme = buildThemeFromUrl(\n * 'https://themer.sanity.build/api/hues?preset=verdant',\n * )\n * ```\n *\n * @public\n */\nexport function buildThemeFromUrl(url: string | URL): LegacyTheme {\n return createTheme(parseHuesFromUrl(url))\n}\n","import {applyHues} from './applyHues'\nimport {createTheme} from './createTheme'\nimport {Hues, LegacyTheme} from './types'\n\n/**\n * The hues of the default Studio theme — the same `hues` export that\n * `https://themer.sanity.build/api/hues` served without any parameters.\n *\n * @public\n */\nexport const hues: Hues = applyHues({})\n\n/**\n * The default Studio theme — the same `theme` export that\n * `https://themer.sanity.build/api/hues` served without any parameters.\n *\n * @public\n */\nexport const theme: LegacyTheme = createTheme(hues)\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"legacy.js","names":["Hue","dropUndefined","hue","Partial","undefined","result","mid","midPoint","lightest","darkest","ColorTint","ColorTints","black","title","hex","white","gray","blue","purple","magenta","red","orange","yellow","green","cyan","dropUndefined","black","white","Hues","PartialHues","lightest","hex","toLowerCase","darkest","defaultHues","default","mid","midPoint","primary","transparent","positive","caution","critical","applyHues","_hues","defaults","hues","defaultMid","primaryMid","transparentMid","positiveMid","cautionMid","criticalMid","isColor","dropUndefined","Hue","HueMidPoint","PartialHues","HUE_KEYS","const","VALID_MID_POINTS","Set","parseHuesFromSearchParams","searchParams","URLSearchParams","lightest","has","assertValidColor","get","toLowerCase","undefined","darkest","default","parseHue","primary","transparent","positive","caution","critical","key","defaultLightest","defaultDarkest","Partial","input","mid","midPoint","params","split","length","TypeError","JSON","stringify","param","maybeMid","maybeMidPoint","roundMidPoint","Number","isNaN","assertValidMidPoint","startsWith","replace","throwDuplicate","value","Math","round","a","b","String","isMidPoint","applyHues","parseHuesFromSearchParams","ThemePreset","definePreset","slug","title","searchParams","hues","URLSearchParams","defaultPreset","presets","getPreset","needle","toLowerCase","match","find","preset","COLOR_TINTS","ColorTints","mix","Hue","Hues","createTonesFromHues","hues","default","primary","transparent","positive","caution","critical","createTintsFromHue","hue","title","reduce","Partial","tints","tint","hex","getColorHex","tintNum","Number","midPoint","darkSize","lightPosition","darkPosition","mid","toLowerCase","lightest","darkest","ColorTints","buildTheme","createColorTheme","multiply","multiplyRgb","parseColor","rgba","rgbToHex","screen","screenRgb","applyHues","createTonesFromHues","blue","cyan","gray","green","magenta","orange","purple","red","yellow","LegacyTheme","PartialHues","NEUTRAL_TONES","ReadonlySet","Set","SPOT_TINTS","Record","getTint","key","tints","Error","defaultTheme","themeFromHues","partialHues","bg","fg","hues","black","title","hex","default","darkest","white","lightest","tones","focusRingHue","primary","accentHue","critical","linkHue","color","base","dark","name","skeletonFrom","transparent","border","focusRing","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","solid","state","tone","mix","mix2","defaultTints","isNeutral","has","bg2","icon","muted","accent","link","code","button","mode","enabled","hovered","pressed","selected","disabled","card","input","placeholder","selectable","spot","syntax","mainShade","secondaryShade","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","v2","undefined","applyHues","parseHuesFromSearchParams","getPreset","themeFromHues","Hues","LegacyTheme","PartialHues","createTheme","hues","parseHuesFromUrl","url","URL","searchParams","preset","get","buildThemeFromUrl","applyHues","createTheme","Hues","LegacyTheme","hues","theme"],"sources":["../src/legacy/dropUndefined.ts","../src/legacy/palette.ts","../src/legacy/applyHues.ts","../src/legacy/parseHuesFromSearchParams.ts","../src/legacy/presets.ts","../src/legacy/createTonesFromHues.ts","../src/legacy/themeFromHues.ts","../src/legacy/createTheme.ts","../src/legacy/defaults.ts"],"sourcesContent":["import {Hue} from './types'\n\n/**\n * Drops properties that are set to `undefined`, so that spreading the hue\n * over defaults doesn't shadow them. The hosted Themer service used a\n * `JSON.parse(JSON.stringify(…))` round trip for this.\n */\nexport function dropUndefined(hue: Partial<Hue> | undefined): Partial<Hue> | undefined {\n if (!hue) return undefined\n\n const result: Partial<Hue> = {}\n\n if (hue.mid !== undefined) result.mid = hue.mid\n if (hue.midPoint !== undefined) result.midPoint = hue.midPoint\n if (hue.lightest !== undefined) result.lightest = hue.lightest\n if (hue.darkest !== undefined) result.darkest = hue.darkest\n\n return result\n}\n","import {ColorTint, ColorTints} from '@sanity/color'\n\n/**\n * The color palette from `@sanity/color@2.2.5`, vendored so that themes\n * generated by this module keep producing the exact same colors as the hosted\n * Themer service (themer.sanity.build), which bundles that version. The\n * current `@sanity/color` palette has different values, so it cannot be used\n * here without changing generated themes.\n */\n\n/** @internal */\nexport const black: ColorTint = {title: 'Black', hex: '#101112'}\n\n/** @internal */\nexport const white: ColorTint = {title: 'White', hex: '#fff'}\n\n/** @internal */\nexport const gray: ColorTints = {\n '50': {title: 'Gray 50', hex: '#f2f3f5'},\n '100': {title: 'Gray 100', hex: '#e6e8ec'},\n '200': {title: 'Gray 200', hex: '#ced2d9'},\n '300': {title: 'Gray 300', hex: '#b6bcc6'},\n '400': {title: 'Gray 400', hex: '#9ea6b3'},\n '500': {title: 'Gray 500', hex: '#8690a0'},\n '600': {title: 'Gray 600', hex: '#6e7683'},\n '700': {title: 'Gray 700', hex: '#565d67'},\n '800': {title: 'Gray 800', hex: '#3f434a'},\n '900': {title: 'Gray 900', hex: '#272a2e'},\n '950': {title: 'Gray 950', hex: '#1b1d20'},\n}\n\n/** @internal */\nexport const blue: ColorTints = {\n '50': {title: 'Blue 50', hex: '#e8f1fe'},\n '100': {title: 'Blue 100', hex: '#d2e3fe'},\n '200': {title: 'Blue 200', hex: '#a6c8fd'},\n '300': {title: 'Blue 300', hex: '#7aacfd'},\n '400': {title: 'Blue 400', hex: '#4e91fc'},\n '500': {title: 'Blue 500', hex: '#2276fc'},\n '600': {title: 'Blue 600', hex: '#1e61cd'},\n '700': {title: 'Blue 700', hex: '#1a4d9e'},\n '800': {title: 'Blue 800', hex: '#17396f'},\n '900': {title: 'Blue 900', hex: '#132540'},\n '950': {title: 'Blue 950', hex: '#111b29'},\n}\n\n/** @internal */\nexport const purple: ColorTints = {\n '50': {title: 'Purple 50', hex: '#f8e9fe'},\n '100': {title: 'Purple 100', hex: '#f2d3fe'},\n '200': {title: 'Purple 200', hex: '#e6a7fd'},\n '300': {title: 'Purple 300', hex: '#d97bfd'},\n '400': {title: 'Purple 400', hex: '#cd4efc'},\n '500': {title: 'Purple 500', hex: '#c123fc'},\n '600': {title: 'Purple 600', hex: '#9d1fcd'},\n '700': {title: 'Purple 700', hex: '#7a1b9e'},\n '800': {title: 'Purple 800', hex: '#56186f'},\n '900': {title: 'Purple 900', hex: '#331440'},\n '950': {title: 'Purple 950', hex: '#211229'},\n}\n\n/** @internal */\nexport const magenta: ColorTints = {\n '50': {title: 'Magenta 50', hex: '#fcebf5'},\n '100': {title: 'Magenta 100', hex: '#f9d7eb'},\n '200': {title: 'Magenta 200', hex: '#f4afd8'},\n '300': {title: 'Magenta 300', hex: '#ef87c4'},\n '400': {title: 'Magenta 400', hex: '#ea5fb1'},\n '500': {title: 'Magenta 500', hex: '#e5389e'},\n '600': {title: 'Magenta 600', hex: '#ba3082'},\n '700': {title: 'Magenta 700', hex: '#8f2866'},\n '800': {title: 'Magenta 800', hex: '#65204a'},\n '900': {title: 'Magenta 900', hex: '#3a182d'},\n '950': {title: 'Magenta 950', hex: '#25141f'},\n}\n\n/** @internal */\nexport const red: ColorTints = {\n '50': {title: 'Red 50', hex: '#fdebea'},\n '100': {title: 'Red 100', hex: '#fcd8d5'},\n '200': {title: 'Red 200', hex: '#f9b1ab'},\n '300': {title: 'Red 300', hex: '#f68b82'},\n '400': {title: 'Red 400', hex: '#f36458'},\n '500': {title: 'Red 500', hex: '#f03e2f'},\n '600': {title: 'Red 600', hex: '#c33529'},\n '700': {title: 'Red 700', hex: '#962c23'},\n '800': {title: 'Red 800', hex: '#69231d'},\n '900': {title: 'Red 900', hex: '#3c1a17'},\n '950': {title: 'Red 950', hex: '#261514'},\n}\n\n/** @internal */\nexport const orange: ColorTints = {\n '50': {title: 'Orange 50', hex: '#fef0e6'},\n '100': {title: 'Orange 100', hex: '#fee2ce'},\n '200': {title: 'Orange 200', hex: '#fdc59d'},\n '300': {title: 'Orange 300', hex: '#fca86d'},\n '400': {title: 'Orange 400', hex: '#fb8b3c'},\n '500': {title: 'Orange 500', hex: '#e57322'},\n '600': {title: 'Orange 600', hex: '#ba5f1f'},\n '700': {title: 'Orange 700', hex: '#904b1b'},\n '800': {title: 'Orange 800', hex: '#653818'},\n '900': {title: 'Orange 900', hex: '#3a2415'},\n '950': {title: 'Orange 950', hex: '#251a13'},\n}\n\n/** @internal */\nexport const yellow: ColorTints = {\n '50': {title: 'Yellow 50', hex: '#fef7da'},\n '100': {title: 'Yellow 100', hex: '#fdefb6'},\n '200': {title: 'Yellow 200', hex: '#fcdf6d'},\n '300': {title: 'Yellow 300', hex: '#fbd024'},\n '400': {title: 'Yellow 400', hex: '#d9b421'},\n '500': {title: 'Yellow 500', hex: '#b7991e'},\n '600': {title: 'Yellow 600', hex: '#967e1c'},\n '700': {title: 'Yellow 700', hex: '#746219'},\n '800': {title: 'Yellow 800', hex: '#534717'},\n '900': {title: 'Yellow 900', hex: '#312c14'},\n '950': {title: 'Yellow 950', hex: '#201e13'},\n}\n\n/** @internal */\nexport const green: ColorTints = {\n '50': {title: 'Green 50', hex: '#e7f9ed'},\n '100': {title: 'Green 100', hex: '#d0f4dc'},\n '200': {title: 'Green 200', hex: '#a1eaba'},\n '300': {title: 'Green 300', hex: '#72e097'},\n '400': {title: 'Green 400', hex: '#43d675'},\n '500': {title: 'Green 500', hex: '#3ab564'},\n '600': {title: 'Green 600', hex: '#329454'},\n '700': {title: 'Green 700', hex: '#297343'},\n '800': {title: 'Green 800', hex: '#215233'},\n '900': {title: 'Green 900', hex: '#183122'},\n '950': {title: 'Green 950', hex: '#14211a'},\n}\n\n/** @internal */\nexport const cyan: ColorTints = {\n '50': {title: 'Cyan 50', hex: '#e3fafd'},\n '100': {title: 'Cyan 100', hex: '#c7f5fc'},\n '200': {title: 'Cyan 200', hex: '#90ecf9'},\n '300': {title: 'Cyan 300', hex: '#59e3f6'},\n '400': {title: 'Cyan 400', hex: '#22daf4'},\n '500': {title: 'Cyan 500', hex: '#1fb8ce'},\n '600': {title: 'Cyan 600', hex: '#1c97a8'},\n '700': {title: 'Cyan 700', hex: '#197583'},\n '800': {title: 'Cyan 800', hex: '#16545d'},\n '900': {title: 'Cyan 900', hex: '#133237'},\n '950': {title: 'Cyan 950', hex: '#112124'},\n}\n","import {dropUndefined} from './dropUndefined'\nimport {black, white} from './palette'\nimport {Hues, PartialHues} from './types'\n\nconst lightest = white.hex.toLowerCase()\nconst darkest = black.hex.toLowerCase()\n\n/**\n * The hues of the default Studio theme, matching the `default` preset of the\n * hosted Themer service.\n */\nconst defaultHues: Hues = {\n default: {\n lightest,\n darkest,\n mid: '#8690a0',\n midPoint: 500,\n },\n primary: {\n lightest,\n darkest,\n mid: '#2276fc',\n midPoint: 500,\n },\n transparent: {\n lightest,\n darkest,\n mid: '#8690a0',\n midPoint: 500,\n },\n positive: {\n lightest,\n darkest,\n mid: '#43d675',\n midPoint: 400,\n },\n caution: {\n lightest,\n darkest,\n mid: '#fbd024',\n midPoint: 300,\n },\n critical: {\n lightest,\n darkest,\n mid: '#f03e2f',\n midPoint: 500,\n },\n}\n\n/**\n * Merges partial hues over the defaults, exactly like the hosted Themer\n * service did. When a hue's `mid` color is customized without an explicit\n * `midPoint`, the mid point resets to `500`.\n */\nexport function applyHues(_hues: PartialHues, defaults: Hues = defaultHues): Hues {\n // Filter out undefined values so they don't shadow the defaults when spread\n const hues: PartialHues = {\n default: dropUndefined(_hues.default),\n primary: dropUndefined(_hues.primary),\n transparent: dropUndefined(_hues.transparent),\n positive: dropUndefined(_hues.positive),\n caution: dropUndefined(_hues.caution),\n critical: dropUndefined(_hues.critical),\n }\n\n const defaultMid = hues.default?.mid?.toLowerCase() || defaults.default.mid\n const primaryMid = hues.primary?.mid?.toLowerCase() || defaults.primary.mid\n const transparentMid = hues.transparent?.mid?.toLowerCase() || defaults.transparent.mid\n const positiveMid = hues.positive?.mid?.toLowerCase() || defaults.positive.mid\n const cautionMid = hues.caution?.mid?.toLowerCase() || defaults.caution.mid\n const criticalMid = hues.critical?.mid?.toLowerCase() || defaults.critical.mid\n\n return {\n default: {\n ...defaults.default,\n midPoint: defaultMid === defaults.default.mid ? defaults.default.midPoint : 500,\n ...hues.default,\n mid: defaultMid,\n },\n primary: {\n ...defaults.primary,\n midPoint: primaryMid === defaults.primary.mid ? defaults.primary.midPoint : 500,\n ...hues.primary,\n mid: primaryMid,\n },\n transparent: {\n ...defaults.transparent,\n midPoint: transparentMid === defaults.transparent.mid ? defaults.transparent.midPoint : 500,\n ...hues.transparent,\n mid: transparentMid,\n },\n positive: {\n ...defaults.positive,\n midPoint: positiveMid === defaults.positive.mid ? defaults.positive.midPoint : 500,\n ...hues.positive,\n mid: positiveMid,\n },\n caution: {\n ...defaults.caution,\n midPoint: cautionMid === defaults.caution.mid ? defaults.caution.midPoint : 500,\n ...hues.caution,\n mid: cautionMid,\n },\n critical: {\n ...defaults.critical,\n midPoint: criticalMid === defaults.critical.mid ? defaults.critical.midPoint : 500,\n ...hues.critical,\n mid: criticalMid,\n },\n }\n}\n","import {isColor} from '../lib/mix'\nimport {dropUndefined} from './dropUndefined'\nimport {Hue, HueMidPoint, PartialHues} from './types'\n\nconst HUE_KEYS = ['default', 'primary', 'transparent', 'positive', 'caution', 'critical'] as const\n\nconst VALID_MID_POINTS = new Set([50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950])\n\n/**\n * Parses hues from the query of a hosted Themer service URL, exactly like\n * `https://themer.sanity.build/api/hues` did — including its validation\n * errors.\n */\nexport function parseHuesFromSearchParams(searchParams: URLSearchParams): PartialHues {\n const lightest = searchParams.has('lightest')\n ? assertValidColor(`#${(searchParams.get('lightest') ?? '').toLowerCase()}`)\n : undefined\n const darkest = searchParams.get('darkest')\n ? assertValidColor(`#${(searchParams.get('darkest') ?? '').toLowerCase()}`)\n : undefined\n\n // Filter out undefined values so they don't shadow defaults downstream\n return {\n default: dropUndefined(parseHue('default', searchParams, lightest, darkest)),\n primary: dropUndefined(parseHue('primary', searchParams, lightest, darkest)),\n transparent: dropUndefined(parseHue('transparent', searchParams, lightest, darkest)),\n positive: dropUndefined(parseHue('positive', searchParams, lightest, darkest)),\n caution: dropUndefined(parseHue('caution', searchParams, lightest, darkest)),\n critical: dropUndefined(parseHue('critical', searchParams, lightest, darkest)),\n }\n}\n\nfunction parseHue(\n key: (typeof HUE_KEYS)[number],\n searchParams: URLSearchParams,\n defaultLightest: string | undefined,\n defaultDarkest: string | undefined,\n): Partial<Hue> {\n if (!searchParams.has(key)) {\n return {lightest: defaultLightest, darkest: defaultDarkest}\n }\n const input = (searchParams.get(key) ?? '').toLowerCase()\n\n let mid: string | undefined\n let midPoint: HueMidPoint | undefined\n let lightest: string | undefined\n let darkest: string | undefined\n // format: color;midPoint;lightest:color;darkest:color\n const params = input.split(';')\n if (params.length > 4) {\n throw new TypeError(\n `Invalid number of params for the ${key} hue, it should be 4 or less instead it's ${\n params.length\n }: ${JSON.stringify(params)}`,\n )\n }\n for (const param of params) {\n const maybeMid = `#${param}`\n const maybeMidPoint = roundMidPoint(Number(param))\n\n switch (true) {\n case param === '':\n break\n case isColor(maybeMid) && !mid:\n mid = maybeMid\n break\n case !Number.isNaN(maybeMidPoint) && !midPoint:\n midPoint = assertValidMidPoint(maybeMidPoint)\n break\n case param.startsWith('lightest:') && !lightest:\n lightest = assertValidColor(`#${param.replace(/^lightest:/, '')}`)\n break\n case param.startsWith('darkest:') && !darkest:\n darkest = assertValidColor(`#${param.replace(/^darkest:/, '')}`)\n break\n // Surface duplicates\n case isColor(maybeMid):\n throwDuplicate(key, mid?.replace(/^#/, ''), param, input)\n break\n case !Number.isNaN(maybeMidPoint):\n throwDuplicate(key, midPoint, maybeMidPoint, input)\n break\n case param.startsWith('lightest:'):\n throwDuplicate(key, lightest?.replace(/^#/, 'lightest:'), param, input)\n break\n case param.startsWith('darkest:'):\n throwDuplicate(key, darkest?.replace(/^#/, 'darkest:'), param, input)\n break\n default:\n // If the parser can't make sense of it we throw to surface that something is wrong with the input\n throw new TypeError(`Invalid param for the ${key} hue: ${param}`)\n }\n }\n\n return {\n mid,\n midPoint,\n lightest: lightest ?? defaultLightest,\n darkest: darkest ?? defaultDarkest,\n }\n}\n\nfunction roundMidPoint(value: number): number {\n if (value < 75) {\n return 50\n }\n if (value > 925) {\n return 950\n }\n\n return Math.round(value / 100) * 100\n}\n\nfunction throwDuplicate(key: string, a: unknown, b: unknown, input: string): never {\n throw new TypeError(\n `Duplicate params detected. Remove at least ${\n a === b\n ? `one of the ${JSON.stringify(String(a))}`\n : `${JSON.stringify(String(a))} or ${JSON.stringify(String(b))}`\n } from the ${key} hue: ${JSON.stringify(input)}`,\n )\n}\n\nfunction assertValidColor(input: string): string {\n if (isColor(input)) {\n return input\n }\n throw new TypeError(`Invalid color: ${input}`)\n}\n\nfunction assertValidMidPoint(input: number): HueMidPoint {\n if (isMidPoint(input)) {\n return input\n }\n throw new TypeError(`Invalid midPoint: ${input}`)\n}\n\nfunction isMidPoint(input: number): input is HueMidPoint {\n return VALID_MID_POINTS.has(input)\n}\n","import {applyHues} from './applyHues'\nimport {parseHuesFromSearchParams} from './parseHuesFromSearchParams'\nimport {ThemePreset} from './types'\n\nfunction definePreset(slug: string, title: string, searchParams: string): ThemePreset {\n return {\n slug,\n title,\n searchParams,\n hues: applyHues(parseHuesFromSearchParams(new URLSearchParams(searchParams))),\n }\n}\n\nconst defaultPreset = definePreset(\n 'default',\n 'Studio v3',\n 'lightest=fff&darkest=101112&default=8690a0;500&primary=2276fc;500&transparent=8690a0;500&positive=43d675;400&caution=fbd024;300&critical=f03e2f;500',\n)\n\n/**\n * The preset themes of the hosted Themer service (themer.sanity.build), with\n * the same slugs and hues:\n *\n * ```ts\n * import {createTheme, presets} from '@sanity/themer/legacy'\n *\n * const verdant = presets.find((preset) => preset.slug === 'verdant')\n * const theme = createTheme(verdant.hues)\n * ```\n *\n * @public\n */\nexport const presets: ThemePreset[] = [\n defaultPreset,\n definePreset(\n 'dew',\n 'Dew',\n 'default=5e63b4;600;lightest:fcfcfd;darkest:0d0d15&primary=d1a308;400;lightest:fcfcfd;darkest:0d0d15&transparent=6c6fa7;500;lightest:fcfcfd;darkest:0d0d15&positive=43D675;300;lightest:fcfcfd;darkest:0d0d15&caution=fb9f24;400;lightest:fcfcfd;darkest:0d0d15&critical=F03E2F;500;lightest:fcfcfd;darkest:0d0d15',\n ),\n definePreset(\n 'pink-synth',\n 'Pink Synth',\n 'lightest=f7f2f5&darkest=171721&default=8b6584&primary=ec4899&transparent=503a4c&positive=10b981&caution=fde047;300&critical=fe3459',\n ),\n definePreset(\n 'pixel-art',\n 'Pixel Art',\n 'default=57619c;600&primary=f10784&transparent=5b6498;600&positive=43d675;300&caution=fbd024;200&lightest=fcfcfd&darkest=0d0e15',\n ),\n definePreset(\n 'retro-colonial',\n 'Retro Colonial',\n 'default=8bb9b5;400&primary=fa7a78;400&transparent=8bb9b5;400&positive=43d675;300&caution=fbd024;200&critical=f02f53&lightest=fcfdfd&darkest=0d1515',\n ),\n definePreset(\n 'rosabel',\n 'Rosabel',\n 'default=9d8966&primary=ed2555;700&transparent=9d8966&positive=43d675;300&caution=fbd024;200&lightest=fdfdfc&darkest=15120d',\n ),\n definePreset(\n 'stereofidelic',\n 'Stereofidelic',\n 'default=678e9a&primary=f13009&transparent=678e9a&positive=43d675;300&caution=fbd024;200&critical=f02f35&lightest=fcfdfd&darkest=0e1315',\n ),\n definePreset(\n 'tw-cyan',\n 'Tailwind Cyan',\n 'default=677389;500;lightest:f9fafb;darkest:101728&primary=51b4d0;500;lightest:effefe;darkest:264d61&transparent=6b727f;500;lightest:f8fafb;darkest:131826&positive=55b785;500;lightest:eefdf5;darkest:214d3b&caution=e2b53e;500;lightest:fefbea;darkest:69411b&critical=e14f62;500;lightest:fdf2f2;darkest:7d2037',\n ),\n definePreset(\n 'verdant',\n 'Verdant',\n 'default=5c9199;500;lightest:fcfdfd;darkest:0d1415&primary=1cb485;400;lightest:fcfdfd;darkest:0d1415&transparent=5c9199;500;lightest:fcfdfd;darkest:0d1415&positive=43D675;300;lightest:fcfdfd;darkest:0d1415&caution=FBD024;200;lightest:fcfdfd;darkest:0d1415&critical=F03E2F;500;lightest:fcfdfd;darkest:0d1415',\n ),\n]\n\n/**\n * Finds a preset by its slug, falling back to the default Studio preset for\n * unknown slugs — the behavior of the hosted Themer service's `?preset`\n * param, which `parseHuesFromUrl` exposes.\n *\n * @internal\n */\nexport function getPreset(slug: string | null | undefined): ThemePreset {\n const needle = slug?.toLowerCase()\n const match = presets.find((preset) => preset.slug === needle)\n if (match) return match\n return defaultPreset\n}\n","import {COLOR_TINTS, ColorTints} from '@sanity/color'\n\nimport {mix} from '../lib/mix'\nimport {Hue, Hues} from './types'\n\n/**\n * Generates the tint ramp for each of the six hues, exactly like the hosted\n * Themer service did.\n */\nexport function createTonesFromHues(hues: Hues): {\n default: ColorTints\n primary: ColorTints\n transparent: ColorTints\n positive: ColorTints\n caution: ColorTints\n critical: ColorTints\n} {\n return {\n default: createTintsFromHue(hues.default, 'Default'),\n primary: createTintsFromHue(hues.primary, 'Primary'),\n transparent: createTintsFromHue(hues.transparent, 'Transparent'),\n positive: createTintsFromHue(hues.positive, 'Positive'),\n caution: createTintsFromHue(hues.caution, 'Caution'),\n critical: createTintsFromHue(hues.critical, 'Critical'),\n }\n}\n\nfunction createTintsFromHue(hue: Hue, title: string): ColorTints {\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- the reduce assigns every COLOR_TINTS key, so the Partial is complete\n return COLOR_TINTS.reduce<Partial<ColorTints>>((tints, tint) => {\n tints[tint] = {\n title: `${title} ${tint}`,\n hex: getColorHex(hue, tint),\n }\n\n return tints\n }, {}) as ColorTints\n}\n\nfunction getColorHex(hue: Hue, tint: string): string {\n const tintNum = Number(tint)\n const midPoint = hue.midPoint\n const darkSize = 1000 - midPoint\n const lightPosition = tintNum / midPoint\n const darkPosition = (tintNum - midPoint) / darkSize\n\n if (tintNum === midPoint) {\n return hue.mid.toLowerCase()\n }\n\n // light side of scale: x < midPoint\n if (tintNum < midPoint) {\n return mix(lightPosition, hue.mid, hue.lightest)\n }\n\n // dark side of scale: x > midPoint\n return mix(darkPosition, hue.darkest, hue.mid)\n}\n","import {ColorTints} from '@sanity/color'\nimport {\n buildTheme,\n createColorTheme,\n multiply as multiplyRgb,\n parseColor,\n rgba,\n rgbToHex,\n screen as screenRgb,\n} from '@sanity/ui/theme'\n\nimport {applyHues} from './applyHues'\nimport {createTonesFromHues} from './createTonesFromHues'\nimport {blue, cyan, gray, green, magenta, orange, purple, red, yellow} from './palette'\nimport {LegacyTheme, PartialHues} from './types'\n\nconst NEUTRAL_TONES: ReadonlySet<string> = new Set(['default', 'transparent'])\n\n/** The static tints used for spot colors, syntax highlighting and input states */\nconst SPOT_TINTS: Record<string, ColorTints> = {\n blue,\n cyan,\n gray,\n green,\n magenta,\n orange,\n purple,\n red,\n yellow,\n}\n\nfunction getTint(key: string): ColorTints {\n const tints = SPOT_TINTS[key]\n\n if (!tints) {\n throw new Error(`Unknown tint: ${key}`)\n }\n\n return tints\n}\n\nconst defaultTheme = buildTheme()\n\n/**\n * Generates a Studio theme from hues, producing the exact same colors as the\n * hosted Themer service (themer.sanity.build). This is a port of its\n * `themeFromHues` implementation:\n * https://github.com/sanity-io/themer/blob/main/apps/v1/utils/themeFromHues.ts\n */\nexport function themeFromHues(partialHues: PartialHues): LegacyTheme {\n function multiply(bg: string, fg: string): string {\n return rgbToHex(multiplyRgb(parseColor(bg), parseColor(fg)))\n }\n function screen(bg: string, fg: string): string {\n return rgbToHex(screenRgb(parseColor(bg), parseColor(fg)))\n }\n\n const hues = applyHues(partialHues)\n // These variables are made top-level to keep the body of createColorTheme largely the same.\n // This makes it much easier to sync it with new releases of @sanity/ui should its implementation details change.\n const black = {title: 'Black', hex: hues.default.darkest}\n const white = {title: 'white', hex: hues.default.lightest}\n\n const tones = createTonesFromHues(hues)\n const focusRingHue = tones.primary\n const accentHue = tones.critical\n const linkHue = tones.primary\n\n // Generate colors :OOO\n // Based on the studio color theme of @sanity/ui at the time the hosted\n // Themer service was built\n // oxlint-disable-next-line no-deprecated\n const color = createColorTheme({\n base: ({dark, name}) => {\n if (name === 'default') {\n const skeletonFrom = dark ? tones.transparent[900].hex : tones.transparent[100].hex\n\n return {\n fg: dark ? white.hex : black.hex,\n bg: dark ? black.hex : white.hex,\n border: tones.transparent[dark ? 800 : 200].hex,\n focusRing: focusRingHue[500].hex,\n shadow: {\n outline: rgba(tones.transparent[500].hex, 0.4),\n umbra: rgba(dark ? black.hex : tones.transparent[500].hex, 0.2),\n penumbra: rgba(dark ? black.hex : tones.transparent[500].hex, 0.14),\n ambient: rgba(dark ? black.hex : tones.transparent[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (name === 'transparent') {\n const tints = tones.default\n const skeletonFrom = tints[dark ? 800 : 200].hex\n\n return {\n fg: tints[dark ? 100 : 900].hex,\n bg: tints[dark ? 950 : 50].hex,\n border: tints[dark ? 800 : 300].hex,\n focusRing: focusRingHue[500].hex,\n shadow: {\n outline: rgba(tints[500].hex, dark ? 0.2 : 0.4),\n umbra: rgba(dark ? black.hex : tints[500].hex, 0.2),\n penumbra: rgba(dark ? black.hex : tints[500].hex, 0.14),\n ambient: rgba(dark ? black.hex : tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n const tints = tones[name] || tones.default\n const skeletonFrom = tints[dark ? 800 : 200].hex\n\n return {\n fg: tints[dark ? 100 : 900].hex,\n bg: tints[dark ? 950 : 50].hex,\n border: tints[dark ? 800 : 200].hex,\n focusRing: tints[500].hex,\n shadow: {\n outline: rgba(tints[500].hex, dark ? 0.2 : 0.4),\n umbra: rgba(dark ? black.hex : tints[500].hex, 0.2),\n penumbra: rgba(dark ? black.hex : tints[500].hex, 0.14),\n ambient: rgba(dark ? black.hex : tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n solid: ({base, dark, name, state, tone}) => {\n const mix = dark ? screen : multiply\n const mix2 = dark ? multiply : screen\n const defaultTints = tones[name] || tones.default\n const isNeutral = NEUTRAL_TONES.has(name) && NEUTRAL_TONES.has(tone)\n\n let tints = tones[tone === 'default' ? name : tone] || defaultTints\n\n if (state === 'disabled') {\n tints = defaultTints\n const bg = mix(base.bg, tints[dark ? 800 : 200].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 800 : 200].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n icon: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n accent: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n link: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n code: {\n bg,\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'hovered') {\n const bg = mix(base.bg, tints[dark ? 300 : 600].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 300 : 600].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n icon: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, accentHue[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, linkHue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'pressed') {\n const bg = mix(base.bg, tints[dark ? 200 : 800].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg: mix(base.bg, tints[dark ? 200 : 800].hex),\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 200 : 800].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n icon: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, accentHue[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, linkHue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 200 : 800].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 200 : 800].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n icon: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, accentHue[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, linkHue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n // state: \"enabled\" | unknown\n const bg = mix(base.bg, tints[dark ? 400 : 500].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 400 : 500].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n icon: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 900 : 100].hex),\n },\n accent: {\n fg: mix2(bg, accentHue[dark ? 900 : 100].hex),\n },\n link: {\n fg: mix2(bg, linkHue[dark ? 900 : 100].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 900 : 100].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n muted: ({base, dark, name, state, tone}) => {\n const mix = dark ? screen : multiply\n const defaultTints = tones[name] || tones.default\n const isNeutral = NEUTRAL_TONES.has(name) && NEUTRAL_TONES.has(tone)\n\n let tints = tones[tone === 'default' ? name : tone] || defaultTints\n\n if (state === 'disabled') {\n tints = defaultTints\n\n const bg = base.bg\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(bg, tints[dark ? 800 : 200].hex),\n icon: mix(bg, tints[dark ? 800 : 200].hex),\n muted: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n accent: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n link: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n code: {\n bg,\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n skeleton: {\n from: rgba(skeletonFrom, 0.5),\n to: rgba(skeletonFrom, 0.25),\n },\n }\n }\n\n if (state === 'hovered') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 950 : 50].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n icon: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, linkHue[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, linkHue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'pressed') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 900 : 100].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n icon: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(bg, accentHue[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(bg, linkHue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 900 : 100].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n icon: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(bg, accentHue[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(bg, linkHue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n const bg = base.bg\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 300 : 700].hex),\n icon: mix(base.bg, tints[dark ? 300 : 700].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, accentHue[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, linkHue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n enabled: {\n ...muted.enabled,\n border: muted.enabled.bg,\n },\n hovered: {\n ...muted.hovered,\n border: muted.hovered.bg,\n },\n pressed: {\n ...muted.pressed,\n border: muted.pressed.bg,\n },\n selected: {\n ...muted.selected,\n border: muted.selected.bg,\n },\n disabled: {\n ...muted.disabled,\n border: muted.disabled.bg,\n },\n }\n }\n\n if (mode === 'ghost') {\n return {\n ...solid,\n enabled: {\n ...muted.enabled,\n border: base.border,\n },\n disabled: muted.disabled,\n }\n }\n\n return solid\n },\n\n card: ({base, dark, muted, name, solid, state}) => {\n if (state === 'hovered') {\n return muted[name].hovered\n }\n\n if (state === 'disabled') {\n return muted[name].disabled\n }\n\n const isNeutral = NEUTRAL_TONES.has(name)\n const tints = tones[name] || tones.default\n const mix = dark ? screen : multiply\n\n if (state === 'pressed') {\n if (isNeutral) {\n return muted.primary.pressed\n }\n\n return muted[name].pressed\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n return solid.primary.enabled\n }\n\n return solid[name].enabled\n }\n\n const bg = base.bg\n const skeletonFrom = mix(base.bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n fg: base.fg,\n icon: base.fg,\n border: base.border,\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: tints[dark ? 400 : 600].hex,\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n input: ({base, dark, mode, state}) => {\n const mix = dark ? screen : multiply\n\n if (mode === 'invalid') {\n const tints = tones.critical\n\n return {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n bg2: mix(base.bg, tints[dark ? 800 : 200].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n border: mix(base.bg, tints[dark ? 800 : 200].hex),\n placeholder: mix(base.bg, tints[dark ? 600 : 400].hex),\n }\n }\n\n if (state === 'hovered') {\n return {\n bg: base.bg,\n bg2: mix(base.bg, gray[dark ? 700 : 300].hex),\n fg: base.fg,\n border: mix(base.bg, gray[dark ? 700 : 300].hex),\n placeholder: mix(base.bg, gray[dark ? 600 : 400].hex),\n }\n }\n\n if (state === 'disabled') {\n return {\n bg: mix(base.bg, gray[dark ? 950 : 50].hex),\n bg2: mix(base.bg, gray[dark ? 900 : 100].hex),\n fg: mix(base.bg, gray[dark ? 700 : 300].hex),\n border: mix(base.bg, gray[dark ? 900 : 100].hex),\n placeholder: mix(base.bg, gray[dark ? 800 : 200].hex),\n }\n }\n\n if (state === 'readOnly') {\n return {\n bg: mix(base.bg, gray[dark ? 950 : 50].hex),\n bg2: mix(base.bg, gray[dark ? 800 : 200].hex),\n fg: mix(base.bg, gray[dark ? 200 : 800].hex),\n border: mix(base.bg, gray[dark ? 800 : 200].hex),\n placeholder: mix(base.bg, gray[dark ? 600 : 400].hex),\n }\n }\n\n return {\n bg: base.bg,\n bg2: base.border,\n fg: base.fg,\n border: base.border,\n placeholder: mix(base.bg, gray[dark ? 600 : 400].hex),\n }\n },\n\n selectable: ({base, muted, tone, solid, state}) => {\n if (state === 'enabled') {\n return {\n ...muted[tone].enabled,\n bg: base.bg,\n }\n }\n\n if (state === 'pressed') {\n if (tone === 'default') {\n return muted.primary.pressed\n }\n\n return muted[tone].pressed\n }\n\n if (state === 'selected') {\n if (tone === 'default') {\n return solid.primary.enabled\n }\n\n return solid[tone].enabled\n }\n\n if (state === 'disabled') {\n return {\n ...muted[tone].disabled,\n bg: base.bg,\n }\n }\n\n return muted[tone][state]\n },\n\n spot: ({base, dark, key}) => {\n const mix = dark ? screen : multiply\n\n return mix(base.bg, getTint(key)[dark ? 400 : 500].hex)\n },\n\n syntax: ({base, dark}) => {\n const mix = dark ? screen : multiply\n const mainShade = dark ? 400 : 600\n const secondaryShade = dark ? 600 : 400\n\n return {\n atrule: mix(base.bg, purple[mainShade].hex),\n attrName: mix(base.bg, green[mainShade].hex),\n attrValue: mix(base.bg, yellow[mainShade].hex),\n attribute: mix(base.bg, yellow[mainShade].hex),\n boolean: mix(base.bg, purple[mainShade].hex),\n builtin: mix(base.bg, purple[mainShade].hex),\n cdata: mix(base.bg, yellow[mainShade].hex),\n char: mix(base.bg, yellow[mainShade].hex),\n class: mix(base.bg, orange[mainShade].hex),\n className: mix(base.bg, cyan[mainShade].hex),\n comment: mix(base.bg, gray[secondaryShade].hex),\n constant: mix(base.bg, purple[mainShade].hex),\n deleted: mix(base.bg, red[mainShade].hex),\n doctype: mix(base.bg, gray[secondaryShade].hex),\n entity: mix(base.bg, red[mainShade].hex),\n function: mix(base.bg, green[mainShade].hex),\n hexcode: mix(base.bg, blue[mainShade].hex),\n id: mix(base.bg, purple[mainShade].hex),\n important: mix(base.bg, purple[mainShade].hex),\n inserted: mix(base.bg, yellow[mainShade].hex),\n keyword: mix(base.bg, magenta[mainShade].hex),\n number: mix(base.bg, purple[mainShade].hex),\n operator: mix(base.bg, magenta[mainShade].hex),\n prolog: mix(base.bg, gray[secondaryShade].hex),\n property: mix(base.bg, blue[mainShade].hex),\n pseudoClass: mix(base.bg, yellow[mainShade].hex),\n pseudoElement: mix(base.bg, yellow[mainShade].hex),\n punctuation: mix(base.bg, gray[mainShade].hex),\n regex: mix(base.bg, blue[mainShade].hex),\n selector: mix(base.bg, red[mainShade].hex),\n string: mix(base.bg, yellow[mainShade].hex),\n symbol: mix(base.bg, purple[mainShade].hex),\n tag: mix(base.bg, red[mainShade].hex),\n unit: mix(base.bg, orange[mainShade].hex),\n url: mix(base.bg, red[mainShade].hex),\n variable: mix(base.bg, red[mainShade].hex),\n }\n },\n })\n\n // Sanity Studio only reads `color`, `fonts` and `v2` off a custom theme, and\n // throws away the `fonts` of themes flagged `__themer: true` — a workaround\n // for the hosted service serving the fonts of the `@sanity/ui` version it was\n // bundled with, which drifted from the Studio's own. These fonts come from the\n // `@sanity/ui` installed next to the Studio instead, so they already are the\n // ones the workaround substitutes and the theme needs no flag:\n // https://github.com/sanity-io/sanity/blob/bae53feb46ab7f5630259a264968b50bdbc728bb/packages/sanity/src/core/studio/StudioThemeProvider.tsx#L13-L17\n // oxlint-disable-next-line no-deprecated -- the legacy API intentionally targets the deprecated v0 color property, like the hosted service did\n return {...defaultTheme, color, v2: undefined}\n}\n","import {applyHues} from './applyHues'\nimport {parseHuesFromSearchParams} from './parseHuesFromSearchParams'\nimport {getPreset} from './presets'\nimport {themeFromHues} from './themeFromHues'\nimport {Hues, LegacyTheme, PartialHues} from './types'\n\n/**\n * Generates a Studio theme from hues, producing the same colors as importing\n * the theme from the hosted Themer service (themer.sanity.build):\n *\n * ```ts\n * import {createTheme, hues} from '@sanity/themer/legacy'\n * import {defineConfig} from 'sanity'\n *\n * export default defineConfig({\n * theme: createTheme({...hues, primary: {...hues.primary, mid: '#22fca8'}}),\n * // ...rest of the config\n * })\n * ```\n *\n * @public\n */\nexport function createTheme(hues: PartialHues = {}): LegacyTheme {\n return themeFromHues(hues)\n}\n\n/**\n * Parses the hues encoded in a hosted Themer service URL, returning the exact\n * hues that `https://themer.sanity.build/api/hues` served for that query —\n * presets and overrides included.\n *\n * ```ts\n * import {createTheme, parseHuesFromUrl} from '@sanity/themer/legacy'\n *\n * const hues = parseHuesFromUrl(\n * 'https://themer.sanity.build/api/hues?preset=verdant&primary=22fca8',\n * )\n * const theme = createTheme(hues)\n * ```\n *\n * @public\n */\nexport function parseHuesFromUrl(url: string | URL): Hues {\n const {searchParams} = new URL(url, 'https://themer.sanity.build/api/hues')\n const preset = getPreset(searchParams.get('preset'))\n\n return applyHues(parseHuesFromSearchParams(searchParams), preset.hues)\n}\n\n/**\n * The one-line replacement for a theme imported from the hosted Themer\n * service — pass the URL that used to be imported:\n *\n * ```ts\n * // Before:\n * // import {theme} from 'https://themer.sanity.build/api/hues?preset=verdant'\n *\n * // After:\n * import {buildThemeFromUrl} from '@sanity/themer/legacy'\n *\n * const theme = buildThemeFromUrl(\n * 'https://themer.sanity.build/api/hues?preset=verdant',\n * )\n * ```\n *\n * @public\n */\nexport function buildThemeFromUrl(url: string | URL): LegacyTheme {\n return createTheme(parseHuesFromUrl(url))\n}\n","import {applyHues} from './applyHues'\nimport {createTheme} from './createTheme'\nimport {Hues, LegacyTheme} from './types'\n\n/**\n * The hues of the default Studio theme — the same `hues` export that\n * `https://themer.sanity.build/api/hues` served without any parameters.\n *\n * @public\n */\nexport const hues: Hues = applyHues({})\n\n/**\n * The default Studio theme — the same `theme` export that\n * `https://themer.sanity.build/api/hues` served without any parameters.\n *\n * @public\n */\nexport const theme: LegacyTheme = createTheme(hues)\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sanity/themer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Generate Sanity Studio themes, and preview them with a Studio tool.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sanity",
|
|
@@ -38,25 +38,25 @@
|
|
|
38
38
|
"refractor": "^5.0.0",
|
|
39
39
|
"@sanity/color": "^3.0.8",
|
|
40
40
|
"@sanity/icons": "^5.2.1",
|
|
41
|
-
"@sanity/ui": "^3.5.
|
|
41
|
+
"@sanity/ui": "^3.5.2"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@sanity/tsdown-config": "^0.
|
|
44
|
+
"@sanity/tsdown-config": "^0.24.0",
|
|
45
45
|
"@types/node": "^24.13.3",
|
|
46
|
-
"@types/react": "^19.2.
|
|
46
|
+
"@types/react": "^19.2.18",
|
|
47
47
|
"babel-plugin-react-compiler": "^1.0.0",
|
|
48
48
|
"react": "^19.2.8",
|
|
49
49
|
"rimraf": "^5.0.5",
|
|
50
|
-
"sanity": "^6.
|
|
51
|
-
"styled-components": "^6.
|
|
50
|
+
"sanity": "^6.9.1",
|
|
51
|
+
"styled-components": "^6.5.0",
|
|
52
52
|
"tsdown": "^0.22.14",
|
|
53
53
|
"typescript": "7.0.2",
|
|
54
54
|
"vitest": "^4.1.10"
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
|
-
"react": "^19",
|
|
58
|
-
"sanity": "^6",
|
|
59
|
-
"styled-components": "^6"
|
|
57
|
+
"react": "^18 || ^19",
|
|
58
|
+
"sanity": "^3 || ^4 || ^5 || ^6",
|
|
59
|
+
"styled-components": "^5.2 || ^6"
|
|
60
60
|
},
|
|
61
61
|
"peerDependenciesMeta": {
|
|
62
62
|
"sanity": {
|