@tldraw/tlschema 3.16.0-canary.ffdf566dd0a8 → 3.16.0-internal.71f83a8a571b

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/styles/TLColorStyle.ts"],
4
- "sourcesContent": ["import { Expand } from '@tldraw/utils'\nimport { T } from '@tldraw/validate'\nimport { StyleProp } from './StyleProp'\n\n/** @public */\nexport const defaultColorNames = [\n\t'black',\n\t'grey',\n\t'light-violet',\n\t'violet',\n\t'blue',\n\t'light-blue',\n\t'yellow',\n\t'orange',\n\t'green',\n\t'light-green',\n\t'light-red',\n\t'red',\n\t'white',\n] as const\n\n/** @public */\nexport interface TLDefaultColorThemeColor {\n\tsolid: string\n\tsemi: string\n\tpattern: string\n\tfill: string // same as solid\n\tframe: {\n\t\theadingStroke: string\n\t\theadingFill: string\n\t\tstroke: string\n\t\tfill: string\n\t\ttext: string\n\t}\n\tnote: {\n\t\tfill: string\n\t\ttext: string\n\t}\n\thighlight: {\n\t\tsrgb: string\n\t\tp3: string\n\t}\n}\n\n/** @public */\nexport type TLDefaultColorTheme = Expand<\n\t{\n\t\tid: 'light' | 'dark'\n\t\ttext: string\n\t\tbackground: string\n\t\tsolid: string\n\t} & Record<(typeof defaultColorNames)[number], TLDefaultColorThemeColor>\n>\n\n/** @public */\nexport const DefaultColorThemePalette: {\n\tlightMode: TLDefaultColorTheme\n\tdarkMode: TLDefaultColorTheme\n} = {\n\tlightMode: {\n\t\tid: 'light',\n\t\ttext: '#000000',\n\t\tbackground: '#f9fafb',\n\t\tsolid: '#fcfffe',\n\t\tblack: {\n\t\t\tsolid: '#1d1d1d',\n\t\t\tfill: '#1d1d1d',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#717171',\n\t\t\t\theadingFill: '#ffffff',\n\t\t\t\tstroke: '#717171',\n\t\t\t\tfill: '#ffffff',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#FCE19C',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tsemi: '#e8e8e8',\n\t\t\tpattern: '#494949',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#fddd00',\n\t\t\t\tp3: 'color(display-p3 0.972 0.8205 0.05)',\n\t\t\t},\n\t\t},\n\t\tblue: {\n\t\t\tsolid: '#4465e9',\n\t\t\tfill: '#4465e9',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#6681ec',\n\t\t\t\theadingFill: '#f9fafe',\n\t\t\t\tstroke: '#6681ec',\n\t\t\t\tfill: '#f9fafe',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#8AA3FF',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tsemi: '#dce1f8',\n\t\t\tpattern: '#6681ee',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#10acff',\n\t\t\t\tp3: 'color(display-p3 0.308 0.6632 0.9996)',\n\t\t\t},\n\t\t},\n\t\tgreen: {\n\t\t\tsolid: '#099268',\n\t\t\tfill: '#099268',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#37a684',\n\t\t\t\theadingFill: '#f8fcfa',\n\t\t\t\tstroke: '#37a684',\n\t\t\t\tfill: '#f8fcfa',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#6FC896',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tsemi: '#d3e9e3',\n\t\t\tpattern: '#39a785',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#00ffc8',\n\t\t\t\tp3: 'color(display-p3 0.2536 0.984 0.7981)',\n\t\t\t},\n\t\t},\n\t\tgrey: {\n\t\t\tsolid: '#9fa8b2',\n\t\t\tfill: '#9fa8b2',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#aaaaab',\n\t\t\t\theadingFill: '#fbfcfc',\n\t\t\t\tstroke: '#aaaaab',\n\t\t\t\tfill: '#fcfcfd',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#C0CAD3',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tsemi: '#eceef0',\n\t\t\tpattern: '#bcc3c9',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#cbe7f1',\n\t\t\t\tp3: 'color(display-p3 0.8163 0.9023 0.9416)',\n\t\t\t},\n\t\t},\n\t\t'light-blue': {\n\t\t\tsolid: '#4ba1f1',\n\t\t\tfill: '#4ba1f1',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#6cb2f3',\n\t\t\t\theadingFill: '#f8fbfe',\n\t\t\t\tstroke: '#6cb2f3',\n\t\t\t\tfill: '#fafcff',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#9BC4FD',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tsemi: '#ddedfa',\n\t\t\tpattern: '#6fbbf8',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#00f4ff',\n\t\t\t\tp3: 'color(display-p3 0.1512 0.9414 0.9996)',\n\t\t\t},\n\t\t},\n\t\t'light-green': {\n\t\t\tsolid: '#4cb05e',\n\t\t\tfill: '#4cb05e',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#6dbe7c',\n\t\t\t\theadingFill: '#f8fcf9',\n\t\t\t\tstroke: '#6dbe7c',\n\t\t\t\tfill: '#fafdfa',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#98D08A',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tsemi: '#dbf0e0',\n\t\t\tpattern: '#65cb78',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#65f641',\n\t\t\t\tp3: 'color(display-p3 0.563 0.9495 0.3857)',\n\t\t\t},\n\t\t},\n\t\t'light-red': {\n\t\t\tsolid: '#f87777',\n\t\t\tfill: '#f87777',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#f89090',\n\t\t\t\theadingFill: '#fffafa',\n\t\t\t\tstroke: '#f89090',\n\t\t\t\tfill: '#fffbfb',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#F7A5A1',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tsemi: '#f4dadb',\n\t\t\tpattern: '#fe9e9e',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#ff7fa3',\n\t\t\t\tp3: 'color(display-p3 0.9988 0.5301 0.6397)',\n\t\t\t},\n\t\t},\n\t\t'light-violet': {\n\t\t\tsolid: '#e085f4',\n\t\t\tfill: '#e085f4',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#e59bf5',\n\t\t\t\theadingFill: '#fefaff',\n\t\t\t\tstroke: '#e59bf5',\n\t\t\t\tfill: '#fefbff',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#DFB0F9',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tsemi: '#f5eafa',\n\t\t\tpattern: '#e9acf8',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#ff88ff',\n\t\t\t\tp3: 'color(display-p3 0.9676 0.5652 0.9999)',\n\t\t\t},\n\t\t},\n\t\torange: {\n\t\t\tsolid: '#e16919',\n\t\t\tfill: '#e16919',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#e68544',\n\t\t\t\theadingFill: '#fef9f6',\n\t\t\t\tstroke: '#e68544',\n\t\t\t\tfill: '#fef9f6',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#FAA475',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tsemi: '#f8e2d4',\n\t\t\tpattern: '#f78438',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#ffa500',\n\t\t\t\tp3: 'color(display-p3 0.9988 0.6905 0.266)',\n\t\t\t},\n\t\t},\n\t\tred: {\n\t\t\tsolid: '#e03131',\n\t\t\tfill: '#e03131',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#e55757',\n\t\t\t\theadingFill: '#fef7f7',\n\t\t\t\tstroke: '#e55757',\n\t\t\t\tfill: '#fef9f9',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#FC8282',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tsemi: '#f4dadb',\n\t\t\tpattern: '#e55959',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#ff636e',\n\t\t\t\tp3: 'color(display-p3 0.9992 0.4376 0.45)',\n\t\t\t},\n\t\t},\n\t\tviolet: {\n\t\t\tsolid: '#ae3ec9',\n\t\t\tfill: '#ae3ec9',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#bc62d3',\n\t\t\t\theadingFill: '#fcf7fd',\n\t\t\t\tstroke: '#bc62d3',\n\t\t\t\tfill: '#fdf9fd',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#DB91FD',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tsemi: '#ecdcf2',\n\t\t\tpattern: '#bd63d3',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#c77cff',\n\t\t\t\tp3: 'color(display-p3 0.7469 0.5089 0.9995)',\n\t\t\t},\n\t\t},\n\t\tyellow: {\n\t\t\tsolid: '#f1ac4b',\n\t\t\tfill: '#f1ac4b',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#f3bb6c',\n\t\t\t\theadingFill: '#fefcf8',\n\t\t\t\tstroke: '#f3bb6c',\n\t\t\t\tfill: '#fffdfa',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#FED49A',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tsemi: '#f9f0e6',\n\t\t\tpattern: '#fecb92',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#fddd00',\n\t\t\t\tp3: 'color(display-p3 0.972 0.8705 0.05)',\n\t\t\t},\n\t\t},\n\t\twhite: {\n\t\t\tsolid: '#FFFFFF',\n\t\t\tfill: '#FFFFFF',\n\t\t\tsemi: '#f5f5f5',\n\t\t\tpattern: '#f9f9f9',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#7d7d7d',\n\t\t\t\theadingFill: '#ffffff',\n\t\t\t\tstroke: '#7d7d7d',\n\t\t\t\tfill: '#ffffff',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#FFFFFF',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#ffffff',\n\t\t\t\tp3: 'color(display-p3 1 1 1)',\n\t\t\t},\n\t\t},\n\t},\n\tdarkMode: {\n\t\tid: 'dark',\n\t\ttext: 'hsl(210, 17%, 98%)',\n\t\tbackground: 'hsl(240, 5%, 6.5%)',\n\t\tsolid: '#010403',\n\n\t\tblack: {\n\t\t\tsolid: '#f2f2f2',\n\t\t\tfill: '#f2f2f2',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#5c5c5c',\n\t\t\t\theadingFill: '#252525',\n\t\t\t\tstroke: '#5c5c5c',\n\t\t\t\tfill: '#0c0c0c',\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#2c2c2c',\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tsemi: '#2c3036',\n\t\t\tpattern: '#989898',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#d2b700',\n\t\t\t\tp3: 'color(display-p3 0.8078 0.6225 0.0312)',\n\t\t\t},\n\t\t},\n\t\tblue: {\n\t\t\tsolid: '#4f72fc', // 3c60f0\n\t\t\tfill: '#4f72fc',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#384994',\n\t\t\t\theadingFill: '#1C2036',\n\t\t\t\tstroke: '#384994',\n\t\t\t\tfill: '#11141f',\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#2A3F98',\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tsemi: '#262d40',\n\t\t\tpattern: '#3a4b9e',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#0079d2',\n\t\t\t\tp3: 'color(display-p3 0.0032 0.4655 0.7991)',\n\t\t\t},\n\t\t},\n\t\tgreen: {\n\t\t\tsolid: '#099268',\n\t\t\tfill: '#099268',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#10513C',\n\t\t\t\theadingFill: '#14241f',\n\t\t\t\tstroke: '#10513C',\n\t\t\t\tfill: '#0E1614',\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#014429',\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tsemi: '#253231',\n\t\t\tpattern: '#366a53',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#009774',\n\t\t\t\tp3: 'color(display-p3 0.0085 0.582 0.4604)',\n\t\t\t},\n\t\t},\n\t\tgrey: {\n\t\t\tsolid: '#9398b0',\n\t\t\tfill: '#9398b0',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#42474D',\n\t\t\t\theadingFill: '#23262A',\n\t\t\t\tstroke: '#42474D',\n\t\t\t\tfill: '#151719',\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#56595F',\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tsemi: '#33373c',\n\t\t\tpattern: '#7c8187',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#9cb4cb',\n\t\t\t\tp3: 'color(display-p3 0.6299 0.7012 0.7856)',\n\t\t\t},\n\t\t},\n\t\t'light-blue': {\n\t\t\tsolid: '#4dabf7',\n\t\t\tfill: '#4dabf7',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#075797',\n\t\t\t\theadingFill: '#142839',\n\t\t\t\tstroke: '#075797',\n\t\t\t\tfill: '#0B1823',\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#1F5495',\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tsemi: '#2a3642',\n\t\t\tpattern: '#4d7aa9',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#00bdc8',\n\t\t\t\tp3: 'color(display-p3 0.0023 0.7259 0.7735)',\n\t\t\t},\n\t\t},\n\t\t'light-green': {\n\t\t\tsolid: '#40c057',\n\t\t\tfill: '#40c057',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#1C5427',\n\t\t\t\theadingFill: '#18251A',\n\t\t\t\tstroke: '#1C5427',\n\t\t\t\tfill: '#0F1911',\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#21581D',\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tsemi: '#2a3830',\n\t\t\tpattern: '#4e874e',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#00a000',\n\t\t\t\tp3: 'color(display-p3 0.2711 0.6172 0.0195)',\n\t\t\t},\n\t\t},\n\t\t'light-red': {\n\t\t\tsolid: '#ff8787',\n\t\t\tfill: '#ff8787',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#6f3232', // Darker and desaturated variant of solid\n\t\t\t\theadingFill: '#341818', // Deep, muted dark red\n\t\t\t\tstroke: '#6f3232', // Matches headingStroke\n\t\t\t\tfill: '#181212', // Darker, muted background shade\n\t\t\t\ttext: '#f2f2f2', // Consistent bright text color\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#7a3333', // Medium-dark, muted variant of solid\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tsemi: '#3c2b2b', // Subdued, darker neutral-red tone\n\t\t\tpattern: '#a56767', // Existing pattern shade retained\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#db005b',\n\t\t\t\tp3: 'color(display-p3 0.7849 0.0585 0.3589)',\n\t\t\t},\n\t\t},\n\t\t'light-violet': {\n\t\t\tsolid: '#e599f7',\n\t\t\tfill: '#e599f7',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#6c367a',\n\t\t\t\theadingFill: '#2D2230',\n\t\t\t\tstroke: '#6c367a',\n\t\t\t\tfill: '#1C151E',\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#762F8E',\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tsemi: '#383442',\n\t\t\tpattern: '#9770a9',\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#c400c7',\n\t\t\t\tp3: 'color(display-p3 0.7024 0.0403 0.753)',\n\t\t\t},\n\t\t},\n\t\torange: {\n\t\t\tsolid: '#f76707',\n\t\t\tfill: '#f76707',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#773a0e', // Darker, muted version of solid\n\t\t\t\theadingFill: '#2f1d13', // Deep, warm, muted background\n\t\t\t\tstroke: '#773a0e', // Matches headingStroke\n\t\t\t\tfill: '#1c1512', // Darker, richer muted background\n\t\t\t\ttext: '#f2f2f2', // Bright text for contrast\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#7c3905', // Muted dark variant for note fill\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tsemi: '#3b2e27', // Muted neutral-orange tone\n\t\t\tpattern: '#9f552d', // Retained existing shade\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#d07a00',\n\t\t\t\tp3: 'color(display-p3 0.7699 0.4937 0.0085)',\n\t\t\t},\n\t\t},\n\t\tred: {\n\t\t\tsolid: '#e03131',\n\t\t\tfill: '#e03131',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#701e1e', // Darker, muted variation of solid\n\t\t\t\theadingFill: '#301616', // Deep, muted reddish backdrop\n\t\t\t\tstroke: '#701e1e', // Matches headingStroke\n\t\t\t\tfill: '#1b1313', // Rich, dark muted background\n\t\t\t\ttext: '#f2f2f2', // Bright text for readability\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#7e201f', // Muted dark variant for note fill\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tsemi: '#382726', // Dark neutral-red tone\n\t\t\tpattern: '#8f3734', // Existing pattern color retained\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#de002c',\n\t\t\t\tp3: 'color(display-p3 0.7978 0.0509 0.2035)',\n\t\t\t},\n\t\t},\n\t\tviolet: {\n\t\t\tsolid: '#ae3ec9',\n\t\t\tfill: '#ae3ec9',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#6d1583', // Darker, muted variation of solid\n\t\t\t\theadingFill: '#27152e', // Deep, rich muted violet backdrop\n\t\t\t\tstroke: '#6d1583', // Matches headingStroke\n\t\t\t\tfill: '#1b0f21', // Darker muted violet background\n\t\t\t\ttext: '#f2f2f2', // Consistent bright text color\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#5f1c70', // Muted dark variant for note fill\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tsemi: '#342938', // Dark neutral-violet tone\n\t\t\tpattern: '#763a8b', // Retained existing pattern color\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#9e00ee',\n\t\t\t\tp3: 'color(display-p3 0.5651 0.0079 0.8986)',\n\t\t\t},\n\t\t},\n\t\tyellow: {\n\t\t\tsolid: '#ffc034',\n\t\t\tfill: '#ffc034',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#684e12', // Darker, muted variant of solid\n\t\t\t\theadingFill: '#2a2113', // Rich, muted dark-yellow background\n\t\t\t\tstroke: '#684e12', // Matches headingStroke\n\t\t\t\tfill: '#1e1911', // Darker muted shade for background fill\n\t\t\t\ttext: '#f2f2f2', // Bright text color for readability\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#8a5e1c', // Muted, dark complementary variant\n\t\t\t\ttext: '#f2f2f2',\n\t\t\t},\n\t\t\tsemi: '#3b352b', // Dark muted neutral-yellow tone\n\t\t\tpattern: '#fecb92', // Existing shade retained\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#d2b700',\n\t\t\t\tp3: 'color(display-p3 0.8078 0.7225 0.0312)',\n\t\t\t},\n\t\t},\n\t\twhite: {\n\t\t\tsolid: '#f3f3f3',\n\t\t\tfill: '#f3f3f3',\n\t\t\tsemi: '#f5f5f5',\n\t\t\tpattern: '#f9f9f9',\n\t\t\tframe: {\n\t\t\t\theadingStroke: '#ffffff',\n\t\t\t\theadingFill: '#ffffff',\n\t\t\t\tstroke: '#ffffff',\n\t\t\t\tfill: '#ffffff',\n\t\t\t\ttext: '#000000',\n\t\t\t},\n\t\t\tnote: {\n\t\t\t\tfill: '#eaeaea',\n\t\t\t\ttext: '#1d1d1d',\n\t\t\t},\n\t\t\thighlight: {\n\t\t\t\tsrgb: '#ffffff',\n\t\t\t\tp3: 'color(display-p3 1 1 1)',\n\t\t\t},\n\t\t},\n\t},\n}\n\n/** @public */\nexport function getDefaultColorTheme(opts: { isDarkMode: boolean }): TLDefaultColorTheme {\n\treturn opts.isDarkMode ? DefaultColorThemePalette.darkMode : DefaultColorThemePalette.lightMode\n}\n\n/** @public */\nexport const DefaultColorStyle = StyleProp.defineEnum('tldraw:color', {\n\tdefaultValue: 'black',\n\tvalues: defaultColorNames,\n})\n\n/** @public */\nexport const DefaultLabelColorStyle = StyleProp.defineEnum('tldraw:labelColor', {\n\tdefaultValue: 'black',\n\tvalues: defaultColorNames,\n})\n\n/** @public */\nexport type TLDefaultColorStyle = T.TypeOf<typeof DefaultColorStyle>\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Expand } from '@tldraw/utils'\nimport { T } from '@tldraw/validate'\nimport { StyleProp } from './StyleProp'\n\n/** @public */\nexport const defaultColorNames = [\n\t'black',\n\t'grey',\n\t'light-violet',\n\t'violet',\n\t'blue',\n\t'light-blue',\n\t'yellow',\n\t'orange',\n\t'green',\n\t'light-green',\n\t'light-red',\n\t'red',\n\t'white',\n] as const\n\n/** @public */\nexport interface TLDefaultColorThemeColor {\n\tsolid: string\n\tsemi: string\n\tpattern: string\n\tfill: string // usually same as solid\n\tframeHeadingStroke: string\n\tframeHeadingFill: string\n\tframeStroke: string\n\tframeFill: string\n\tframeText: string\n\tnoteFill: string\n\tnoteText: string\n\thighlightSrgb: string\n\thighlightP3: string\n}\n\n/** @public */\nexport type TLDefaultColorTheme = Expand<\n\t{\n\t\tid: 'light' | 'dark'\n\t\ttext: string\n\t\tbackground: string\n\t\tsolid: string\n\t} & Record<(typeof defaultColorNames)[number], TLDefaultColorThemeColor>\n>\n\n/** @public */\nexport const DefaultColorThemePalette: {\n\tlightMode: TLDefaultColorTheme\n\tdarkMode: TLDefaultColorTheme\n} = {\n\tlightMode: {\n\t\tid: 'light',\n\t\ttext: '#000000',\n\t\tbackground: '#f9fafb',\n\t\tsolid: '#fcfffe',\n\t\tblack: {\n\t\t\tsolid: '#1d1d1d',\n\t\t\tfill: '#1d1d1d',\n\t\t\tframeHeadingStroke: '#717171',\n\t\t\tframeHeadingFill: '#ffffff',\n\t\t\tframeStroke: '#717171',\n\t\t\tframeFill: '#ffffff',\n\t\t\tframeText: '#000000',\n\t\t\tnoteFill: '#FCE19C',\n\t\t\tnoteText: '#000000',\n\t\t\tsemi: '#e8e8e8',\n\t\t\tpattern: '#494949',\n\t\t\thighlightSrgb: '#fddd00',\n\t\t\thighlightP3: 'color(display-p3 0.972 0.8205 0.05)',\n\t\t},\n\t\tblue: {\n\t\t\tsolid: '#4465e9',\n\t\t\tfill: '#4465e9',\n\t\t\tframeHeadingStroke: '#6681ec',\n\t\t\tframeHeadingFill: '#f9fafe',\n\t\t\tframeStroke: '#6681ec',\n\t\t\tframeFill: '#f9fafe',\n\t\t\tframeText: '#000000',\n\t\t\tnoteFill: '#8AA3FF',\n\t\t\tnoteText: '#000000',\n\t\t\tsemi: '#dce1f8',\n\t\t\tpattern: '#6681ee',\n\t\t\thighlightSrgb: '#10acff',\n\t\t\thighlightP3: 'color(display-p3 0.308 0.6632 0.9996)',\n\t\t},\n\t\tgreen: {\n\t\t\tsolid: '#099268',\n\t\t\tfill: '#099268',\n\t\t\tframeHeadingStroke: '#37a684',\n\t\t\tframeHeadingFill: '#f8fcfa',\n\t\t\tframeStroke: '#37a684',\n\t\t\tframeFill: '#f8fcfa',\n\t\t\tframeText: '#000000',\n\t\t\tnoteFill: '#6FC896',\n\t\t\tnoteText: '#000000',\n\t\t\tsemi: '#d3e9e3',\n\t\t\tpattern: '#39a785',\n\t\t\thighlightSrgb: '#00ffc8',\n\t\t\thighlightP3: 'color(display-p3 0.2536 0.984 0.7981)',\n\t\t},\n\t\tgrey: {\n\t\t\tsolid: '#9fa8b2',\n\t\t\tfill: '#9fa8b2',\n\t\t\tframeHeadingStroke: '#aaaaab',\n\t\t\tframeHeadingFill: '#fbfcfc',\n\t\t\tframeStroke: '#aaaaab',\n\t\t\tframeFill: '#fcfcfd',\n\t\t\tframeText: '#000000',\n\t\t\tnoteFill: '#C0CAD3',\n\t\t\tnoteText: '#000000',\n\t\t\tsemi: '#eceef0',\n\t\t\tpattern: '#bcc3c9',\n\t\t\thighlightSrgb: '#cbe7f1',\n\t\t\thighlightP3: 'color(display-p3 0.8163 0.9023 0.9416)',\n\t\t},\n\t\t'light-blue': {\n\t\t\tsolid: '#4ba1f1',\n\t\t\tfill: '#4ba1f1',\n\t\t\tframeHeadingStroke: '#6cb2f3',\n\t\t\tframeHeadingFill: '#f8fbfe',\n\t\t\tframeStroke: '#6cb2f3',\n\t\t\tframeFill: '#fafcff',\n\t\t\tframeText: '#000000',\n\t\t\tnoteFill: '#9BC4FD',\n\t\t\tnoteText: '#000000',\n\t\t\tsemi: '#ddedfa',\n\t\t\tpattern: '#6fbbf8',\n\t\t\thighlightSrgb: '#00f4ff',\n\t\t\thighlightP3: 'color(display-p3 0.1512 0.9414 0.9996)',\n\t\t},\n\t\t'light-green': {\n\t\t\tsolid: '#4cb05e',\n\t\t\tfill: '#4cb05e',\n\t\t\tframeHeadingStroke: '#6dbe7c',\n\t\t\tframeHeadingFill: '#f8fcf9',\n\t\t\tframeStroke: '#6dbe7c',\n\t\t\tframeFill: '#fafdfa',\n\t\t\tframeText: '#000000',\n\t\t\tnoteFill: '#98D08A',\n\t\t\tnoteText: '#000000',\n\t\t\tsemi: '#dbf0e0',\n\t\t\tpattern: '#65cb78',\n\t\t\thighlightSrgb: '#65f641',\n\t\t\thighlightP3: 'color(display-p3 0.563 0.9495 0.3857)',\n\t\t},\n\t\t'light-red': {\n\t\t\tsolid: '#f87777',\n\t\t\tfill: '#f87777',\n\t\t\tframeHeadingStroke: '#f89090',\n\t\t\tframeHeadingFill: '#fffafa',\n\t\t\tframeStroke: '#f89090',\n\t\t\tframeFill: '#fffbfb',\n\t\t\tframeText: '#000000',\n\t\t\tnoteFill: '#F7A5A1',\n\t\t\tnoteText: '#000000',\n\t\t\tsemi: '#f4dadb',\n\t\t\tpattern: '#fe9e9e',\n\t\t\thighlightSrgb: '#ff7fa3',\n\t\t\thighlightP3: 'color(display-p3 0.9988 0.5301 0.6397)',\n\t\t},\n\t\t'light-violet': {\n\t\t\tsolid: '#e085f4',\n\t\t\tfill: '#e085f4',\n\t\t\tframeHeadingStroke: '#e59bf5',\n\t\t\tframeHeadingFill: '#fefaff',\n\t\t\tframeStroke: '#e59bf5',\n\t\t\tframeFill: '#fefbff',\n\t\t\tframeText: '#000000',\n\t\t\tnoteFill: '#DFB0F9',\n\t\t\tnoteText: '#000000',\n\t\t\tsemi: '#f5eafa',\n\t\t\tpattern: '#e9acf8',\n\t\t\thighlightSrgb: '#ff88ff',\n\t\t\thighlightP3: 'color(display-p3 0.9676 0.5652 0.9999)',\n\t\t},\n\t\torange: {\n\t\t\tsolid: '#e16919',\n\t\t\tfill: '#e16919',\n\t\t\tframeHeadingStroke: '#e68544',\n\t\t\tframeHeadingFill: '#fef9f6',\n\t\t\tframeStroke: '#e68544',\n\t\t\tframeFill: '#fef9f6',\n\t\t\tframeText: '#000000',\n\t\t\tnoteFill: '#FAA475',\n\t\t\tnoteText: '#000000',\n\t\t\tsemi: '#f8e2d4',\n\t\t\tpattern: '#f78438',\n\t\t\thighlightSrgb: '#ffa500',\n\t\t\thighlightP3: 'color(display-p3 0.9988 0.6905 0.266)',\n\t\t},\n\t\tred: {\n\t\t\tsolid: '#e03131',\n\t\t\tfill: '#e03131',\n\t\t\tframeHeadingStroke: '#e55757',\n\t\t\tframeHeadingFill: '#fef7f7',\n\t\t\tframeStroke: '#e55757',\n\t\t\tframeFill: '#fef9f9',\n\t\t\tframeText: '#000000',\n\t\t\tnoteFill: '#FC8282',\n\t\t\tnoteText: '#000000',\n\t\t\tsemi: '#f4dadb',\n\t\t\tpattern: '#e55959',\n\t\t\thighlightSrgb: '#ff636e',\n\t\t\thighlightP3: 'color(display-p3 0.9992 0.4376 0.45)',\n\t\t},\n\t\tviolet: {\n\t\t\tsolid: '#ae3ec9',\n\t\t\tfill: '#ae3ec9',\n\t\t\tframeHeadingStroke: '#bc62d3',\n\t\t\tframeHeadingFill: '#fcf7fd',\n\t\t\tframeStroke: '#bc62d3',\n\t\t\tframeFill: '#fdf9fd',\n\t\t\tframeText: '#000000',\n\t\t\tnoteFill: '#DB91FD',\n\t\t\tnoteText: '#000000',\n\t\t\tsemi: '#ecdcf2',\n\t\t\tpattern: '#bd63d3',\n\t\t\thighlightSrgb: '#c77cff',\n\t\t\thighlightP3: 'color(display-p3 0.7469 0.5089 0.9995)',\n\t\t},\n\t\tyellow: {\n\t\t\tsolid: '#f1ac4b',\n\t\t\tfill: '#f1ac4b',\n\t\t\tframeHeadingStroke: '#f3bb6c',\n\t\t\tframeHeadingFill: '#fefcf8',\n\t\t\tframeStroke: '#f3bb6c',\n\t\t\tframeFill: '#fffdfa',\n\t\t\tframeText: '#000000',\n\t\t\tnoteFill: '#FED49A',\n\t\t\tnoteText: '#000000',\n\t\t\tsemi: '#f9f0e6',\n\t\t\tpattern: '#fecb92',\n\t\t\thighlightSrgb: '#fddd00',\n\t\t\thighlightP3: 'color(display-p3 0.972 0.8705 0.05)',\n\t\t},\n\t\twhite: {\n\t\t\tsolid: '#FFFFFF',\n\t\t\tfill: '#FFFFFF',\n\t\t\tsemi: '#f5f5f5',\n\t\t\tpattern: '#f9f9f9',\n\t\t\tframeHeadingStroke: '#7d7d7d',\n\t\t\tframeHeadingFill: '#ffffff',\n\t\t\tframeStroke: '#7d7d7d',\n\t\t\tframeFill: '#ffffff',\n\t\t\tframeText: '#000000',\n\t\t\tnoteFill: '#FFFFFF',\n\t\t\tnoteText: '#000000',\n\t\t\thighlightSrgb: '#ffffff',\n\t\t\thighlightP3: 'color(display-p3 1 1 1)',\n\t\t},\n\t},\n\tdarkMode: {\n\t\tid: 'dark',\n\t\ttext: 'hsl(210, 17%, 98%)',\n\t\tbackground: 'hsl(240, 5%, 6.5%)',\n\t\tsolid: '#010403',\n\n\t\tblack: {\n\t\t\tsolid: '#f2f2f2',\n\t\t\tfill: '#f2f2f2',\n\t\t\tframeHeadingStroke: '#5c5c5c',\n\t\t\tframeHeadingFill: '#252525',\n\t\t\tframeStroke: '#5c5c5c',\n\t\t\tframeFill: '#0c0c0c',\n\t\t\tframeText: '#f2f2f2',\n\t\t\tnoteFill: '#2c2c2c',\n\t\t\tnoteText: '#f2f2f2',\n\t\t\tsemi: '#2c3036',\n\t\t\tpattern: '#989898',\n\t\t\thighlightSrgb: '#d2b700',\n\t\t\thighlightP3: 'color(display-p3 0.8078 0.6225 0.0312)',\n\t\t},\n\t\tblue: {\n\t\t\tsolid: '#4f72fc', // 3c60f0\n\t\t\tfill: '#4f72fc',\n\t\t\tframeHeadingStroke: '#384994',\n\t\t\tframeHeadingFill: '#1C2036',\n\t\t\tframeStroke: '#384994',\n\t\t\tframeFill: '#11141f',\n\t\t\tframeText: '#f2f2f2',\n\t\t\tnoteFill: '#2A3F98',\n\t\t\tnoteText: '#f2f2f2',\n\t\t\tsemi: '#262d40',\n\t\t\tpattern: '#3a4b9e',\n\t\t\thighlightSrgb: '#0079d2',\n\t\t\thighlightP3: 'color(display-p3 0.0032 0.4655 0.7991)',\n\t\t},\n\t\tgreen: {\n\t\t\tsolid: '#099268',\n\t\t\tfill: '#099268',\n\t\t\tframeHeadingStroke: '#10513C',\n\t\t\tframeHeadingFill: '#14241f',\n\t\t\tframeStroke: '#10513C',\n\t\t\tframeFill: '#0E1614',\n\t\t\tframeText: '#f2f2f2',\n\t\t\tnoteFill: '#014429',\n\t\t\tnoteText: '#f2f2f2',\n\t\t\tsemi: '#253231',\n\t\t\tpattern: '#366a53',\n\t\t\thighlightSrgb: '#009774',\n\t\t\thighlightP3: 'color(display-p3 0.0085 0.582 0.4604)',\n\t\t},\n\t\tgrey: {\n\t\t\tsolid: '#9398b0',\n\t\t\tfill: '#9398b0',\n\t\t\tframeHeadingStroke: '#42474D',\n\t\t\tframeHeadingFill: '#23262A',\n\t\t\tframeStroke: '#42474D',\n\t\t\tframeFill: '#151719',\n\t\t\tframeText: '#f2f2f2',\n\t\t\tnoteFill: '#56595F',\n\t\t\tnoteText: '#f2f2f2',\n\t\t\tsemi: '#33373c',\n\t\t\tpattern: '#7c8187',\n\t\t\thighlightSrgb: '#9cb4cb',\n\t\t\thighlightP3: 'color(display-p3 0.6299 0.7012 0.7856)',\n\t\t},\n\t\t'light-blue': {\n\t\t\tsolid: '#4dabf7',\n\t\t\tfill: '#4dabf7',\n\t\t\tframeHeadingStroke: '#075797',\n\t\t\tframeHeadingFill: '#142839',\n\t\t\tframeStroke: '#075797',\n\t\t\tframeFill: '#0B1823',\n\t\t\tframeText: '#f2f2f2',\n\t\t\tnoteFill: '#1F5495',\n\t\t\tnoteText: '#f2f2f2',\n\t\t\tsemi: '#2a3642',\n\t\t\tpattern: '#4d7aa9',\n\t\t\thighlightSrgb: '#00bdc8',\n\t\t\thighlightP3: 'color(display-p3 0.0023 0.7259 0.7735)',\n\t\t},\n\t\t'light-green': {\n\t\t\tsolid: '#40c057',\n\t\t\tfill: '#40c057',\n\t\t\tframeHeadingStroke: '#1C5427',\n\t\t\tframeHeadingFill: '#18251A',\n\t\t\tframeStroke: '#1C5427',\n\t\t\tframeFill: '#0F1911',\n\t\t\tframeText: '#f2f2f2',\n\t\t\tnoteFill: '#21581D',\n\t\t\tnoteText: '#f2f2f2',\n\t\t\tsemi: '#2a3830',\n\t\t\tpattern: '#4e874e',\n\t\t\thighlightSrgb: '#00a000',\n\t\t\thighlightP3: 'color(display-p3 0.2711 0.6172 0.0195)',\n\t\t},\n\t\t'light-red': {\n\t\t\tsolid: '#ff8787',\n\t\t\tfill: '#ff8787',\n\t\t\tframeHeadingStroke: '#6f3232', // Darker and desaturated variant of solid\n\t\t\tframeHeadingFill: '#341818', // Deep, muted dark red\n\t\t\tframeStroke: '#6f3232', // Matches headingStroke\n\t\t\tframeFill: '#181212', // Darker, muted background shade\n\t\t\tframeText: '#f2f2f2', // Consistent bright text color\n\t\t\tnoteFill: '#7a3333', // Medium-dark, muted variant of solid\n\t\t\tnoteText: '#f2f2f2',\n\t\t\tsemi: '#3c2b2b', // Subdued, darker neutral-red tone\n\t\t\tpattern: '#a56767', // Existing pattern shade retained\n\t\t\thighlightSrgb: '#db005b',\n\t\t\thighlightP3: 'color(display-p3 0.7849 0.0585 0.3589)',\n\t\t},\n\t\t'light-violet': {\n\t\t\tsolid: '#e599f7',\n\t\t\tfill: '#e599f7',\n\t\t\tframeHeadingStroke: '#6c367a',\n\t\t\tframeHeadingFill: '#2D2230',\n\t\t\tframeStroke: '#6c367a',\n\t\t\tframeFill: '#1C151E',\n\t\t\tframeText: '#f2f2f2',\n\t\t\tnoteFill: '#762F8E',\n\t\t\tnoteText: '#f2f2f2',\n\t\t\tsemi: '#383442',\n\t\t\tpattern: '#9770a9',\n\t\t\thighlightSrgb: '#c400c7',\n\t\t\thighlightP3: 'color(display-p3 0.7024 0.0403 0.753)',\n\t\t},\n\t\torange: {\n\t\t\tsolid: '#f76707',\n\t\t\tfill: '#f76707',\n\t\t\tframeHeadingStroke: '#773a0e', // Darker, muted version of solid\n\t\t\tframeHeadingFill: '#2f1d13', // Deep, warm, muted background\n\t\t\tframeStroke: '#773a0e', // Matches headingStroke\n\t\t\tframeFill: '#1c1512', // Darker, richer muted background\n\t\t\tframeText: '#f2f2f2', // Bright text for contrast\n\t\t\tnoteFill: '#7c3905', // Muted dark variant for note fill\n\t\t\tnoteText: '#f2f2f2',\n\t\t\tsemi: '#3b2e27', // Muted neutral-orange tone\n\t\t\tpattern: '#9f552d', // Retained existing shade\n\t\t\thighlightSrgb: '#d07a00',\n\t\t\thighlightP3: 'color(display-p3 0.7699 0.4937 0.0085)',\n\t\t},\n\t\tred: {\n\t\t\tsolid: '#e03131',\n\t\t\tfill: '#e03131',\n\t\t\tframeHeadingStroke: '#701e1e', // Darker, muted variation of solid\n\t\t\tframeHeadingFill: '#301616', // Deep, muted reddish backdrop\n\t\t\tframeStroke: '#701e1e', // Matches headingStroke\n\t\t\tframeFill: '#1b1313', // Rich, dark muted background\n\t\t\tframeText: '#f2f2f2', // Bright text for readability\n\t\t\tnoteFill: '#7e201f', // Muted dark variant for note fill\n\t\t\tnoteText: '#f2f2f2',\n\t\t\tsemi: '#382726', // Dark neutral-red tone\n\t\t\tpattern: '#8f3734', // Existing pattern color retained\n\t\t\thighlightSrgb: '#de002c',\n\t\t\thighlightP3: 'color(display-p3 0.7978 0.0509 0.2035)',\n\t\t},\n\t\tviolet: {\n\t\t\tsolid: '#ae3ec9',\n\t\t\tfill: '#ae3ec9',\n\t\t\tframeHeadingStroke: '#6d1583', // Darker, muted variation of solid\n\t\t\tframeHeadingFill: '#27152e', // Deep, rich muted violet backdrop\n\t\t\tframeStroke: '#6d1583', // Matches headingStroke\n\t\t\tframeFill: '#1b0f21', // Darker muted violet background\n\t\t\tframeText: '#f2f2f2', // Consistent bright text color\n\t\t\tnoteFill: '#5f1c70', // Muted dark variant for note fill\n\t\t\tnoteText: '#f2f2f2',\n\t\t\tsemi: '#342938', // Dark neutral-violet tone\n\t\t\tpattern: '#763a8b', // Retained existing pattern color\n\t\t\thighlightSrgb: '#9e00ee',\n\t\t\thighlightP3: 'color(display-p3 0.5651 0.0079 0.8986)',\n\t\t},\n\t\tyellow: {\n\t\t\tsolid: '#ffc034',\n\t\t\tfill: '#ffc034',\n\t\t\tframeHeadingStroke: '#684e12', // Darker, muted variant of solid\n\t\t\tframeHeadingFill: '#2a2113', // Rich, muted dark-yellow background\n\t\t\tframeStroke: '#684e12', // Matches headingStroke\n\t\t\tframeFill: '#1e1911', // Darker muted shade for background fill\n\t\t\tframeText: '#f2f2f2', // Bright text color for readability\n\t\t\tnoteFill: '#8a5e1c', // Muted, dark complementary variant\n\t\t\tnoteText: '#f2f2f2',\n\t\t\tsemi: '#3b352b', // Dark muted neutral-yellow tone\n\t\t\tpattern: '#fecb92', // Existing shade retained\n\t\t\thighlightSrgb: '#d2b700',\n\t\t\thighlightP3: 'color(display-p3 0.8078 0.7225 0.0312)',\n\t\t},\n\t\twhite: {\n\t\t\tsolid: '#f3f3f3',\n\t\t\tfill: '#f3f3f3',\n\t\t\tsemi: '#f5f5f5',\n\t\t\tpattern: '#f9f9f9',\n\t\t\tframeHeadingStroke: '#ffffff',\n\t\t\tframeHeadingFill: '#ffffff',\n\t\t\tframeStroke: '#ffffff',\n\t\t\tframeFill: '#ffffff',\n\t\t\tframeText: '#000000',\n\t\t\tnoteFill: '#eaeaea',\n\t\t\tnoteText: '#1d1d1d',\n\t\t\thighlightSrgb: '#ffffff',\n\t\t\thighlightP3: 'color(display-p3 1 1 1)',\n\t\t},\n\t},\n}\n\n/** @public */\nexport function getDefaultColorTheme(opts: { isDarkMode: boolean }): TLDefaultColorTheme {\n\treturn opts.isDarkMode ? DefaultColorThemePalette.darkMode : DefaultColorThemePalette.lightMode\n}\n\n/** @public */\nexport const DefaultColorStyle = StyleProp.defineEnum('tldraw:color', {\n\tdefaultValue: 'black',\n\tvalues: defaultColorNames,\n})\n\n/** @public */\nexport const DefaultLabelColorStyle = StyleProp.defineEnum('tldraw:labelColor', {\n\tdefaultValue: 'black',\n\tvalues: defaultColorNames,\n})\n\n/** @public */\nexport type TLDefaultColorStyle = T.TypeOf<typeof DefaultColorStyle>\n\nconst defaultColorNamesSet = new Set(defaultColorNames)\n\n/** @public */\nexport function isDefaultThemeColor(\n\tcolor: TLDefaultColorStyle\n): color is (typeof defaultColorNames)[number] {\n\treturn defaultColorNamesSet.has(color as (typeof defaultColorNames)[number])\n}\n\n/** @public */\nexport function getColorValue(\n\ttheme: TLDefaultColorTheme,\n\tcolor: TLDefaultColorStyle,\n\tvariant: keyof TLDefaultColorThemeColor\n): string {\n\tif (!isDefaultThemeColor(color)) {\n\t\treturn color\n\t}\n\n\treturn theme[color][variant]\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tldraw/tlschema",
3
3
  "description": "tldraw infinite canvas SDK (schema).",
4
- "version": "3.16.0-canary.ffdf566dd0a8",
4
+ "version": "3.16.0-internal.71f83a8a571b",
5
5
  "author": {
6
6
  "name": "tldraw Inc.",
7
7
  "email": "hello@tldraw.com"
@@ -32,33 +32,29 @@
32
32
  "src"
33
33
  ],
34
34
  "scripts": {
35
- "test-ci": "lazy inherit",
36
- "test": "yarn run -T jest",
37
- "test-coverage": "lazy inherit",
35
+ "test-ci": "yarn run -T vitest run --passWithNoTests",
36
+ "test": "yarn run -T vitest --passWithNoTests",
37
+ "test-coverage": "yarn run -T vitest run --coverage --passWithNoTests",
38
38
  "format": "yarn run -T prettier --write --cache \"src/**/*.{ts,tsx,js,jsx,json,md}\"",
39
39
  "build": "yarn run -T tsx ../../internal/scripts/build-package.ts",
40
40
  "build-api": "yarn run -T tsx ../../internal/scripts/build-api.ts",
41
41
  "prepack": "yarn run -T tsx ../../internal/scripts/prepack.ts",
42
42
  "postpack": "../../internal/scripts/postpack.sh",
43
43
  "pack-tarball": "yarn pack",
44
- "lint": "yarn run -T tsx ../../internal/scripts/lint.ts"
44
+ "lint": "yarn run -T tsx ../../internal/scripts/lint.ts",
45
+ "context": "yarn run -T tsx ../../internal/scripts/context.ts"
45
46
  },
46
47
  "devDependencies": {
47
48
  "kleur": "^4.1.5",
48
49
  "lazyrepo": "0.0.0-alpha.27",
49
- "react": "^18.3.1"
50
- },
51
- "jest": {
52
- "preset": "../../internal/config/jest/node/jest-preset.js",
53
- "moduleNameMapper": {
54
- "^~(.*)": "<rootDir>/src/$1"
55
- }
50
+ "react": "^18.3.1",
51
+ "vitest": "^3.2.4"
56
52
  },
57
53
  "dependencies": {
58
- "@tldraw/state": "3.16.0-canary.ffdf566dd0a8",
59
- "@tldraw/store": "3.16.0-canary.ffdf566dd0a8",
60
- "@tldraw/utils": "3.16.0-canary.ffdf566dd0a8",
61
- "@tldraw/validate": "3.16.0-canary.ffdf566dd0a8"
54
+ "@tldraw/state": "3.16.0-internal.71f83a8a571b",
55
+ "@tldraw/store": "3.16.0-internal.71f83a8a571b",
56
+ "@tldraw/utils": "3.16.0-internal.71f83a8a571b",
57
+ "@tldraw/validate": "3.16.0-internal.71f83a8a571b"
62
58
  },
63
59
  "peerDependencies": {
64
60
  "react": "^18.2.0 || ^19.0.0",
@@ -1,5 +1,6 @@
1
1
  import { Migration, MigrationId } from '@tldraw/store'
2
2
  import { mockUniqueId, structuredClone } from '@tldraw/utils'
3
+ import { vi } from 'vitest'
3
4
  import { createTLSchema } from '../createTLSchema'
4
5
 
5
6
  let nextNanoId = 0
@@ -9,9 +10,9 @@ export const testSchema = createTLSchema()
9
10
 
10
11
  // mock all migrator fns
11
12
  for (const migration of testSchema.sortedMigrations) {
12
- ;(migration as any).up = jest.fn(migration.up as any)
13
+ ;(migration as any).up = vi.fn(migration.up as any)
13
14
  if (typeof migration.down === 'function') {
14
- ;(migration as any).down = jest.fn(migration.down as any)
15
+ ;(migration as any).down = vi.fn(migration.down as any)
15
16
  }
16
17
  }
17
18
 
package/src/index.ts CHANGED
@@ -114,6 +114,7 @@ export {
114
114
  isShape,
115
115
  isShapeId,
116
116
  rootShapeMigrations,
117
+ type GlobalShapePropsMap,
117
118
  type TLDefaultShape,
118
119
  type TLParentId,
119
120
  type TLShape,
@@ -230,6 +231,7 @@ export {
230
231
  defaultColorNames,
231
232
  DefaultColorStyle,
232
233
  DefaultColorThemePalette,
234
+ getColorValue,
233
235
  getDefaultColorTheme,
234
236
  type TLDefaultColorStyle,
235
237
  type TLDefaultColorTheme,
@@ -227,6 +227,50 @@ describe('Store removing Icon and Code shapes', () => {
227
227
  })
228
228
  })
229
229
 
230
+ describe('Fixing index keys', () => {
231
+ const { up, down } = getTestMigration(storeVersions.FixIndexKeys)
232
+ test('up works as expected', () => {
233
+ const snapshot = [
234
+ ShapeRecord.create({
235
+ type: 'shape',
236
+ id: 'shape:1',
237
+ parentId: 'page:any',
238
+ index: 'a0',
239
+ } as any),
240
+ ShapeRecord.create({
241
+ type: 'shape',
242
+ id: 'shape:2',
243
+ parentId: 'page:any',
244
+ index: 'a00',
245
+ } as any),
246
+ ShapeRecord.create({
247
+ type: 'shape',
248
+ id: 'shape:3',
249
+ parentId: 'page:any',
250
+ index: 'a111',
251
+ } as any),
252
+ ]
253
+ const fixed = snapshot.map((shape) => up(shape))
254
+ expect(fixed.find((s) => s.id === 'shape:1')?.index).toBe('a0')
255
+ expect(fixed.find((s) => s.id === 'shape:2')?.index).not.toBe('a00')
256
+ expect(fixed.find((s) => s.id === 'shape:2')?.index).toMatch(/^a0[1-9A-Za-z]{3}$/)
257
+ expect(fixed.find((s) => s.id === 'shape:3')?.index).toBe('a111')
258
+ })
259
+
260
+ test('down works as expected', () => {
261
+ const snapshot = [
262
+ ShapeRecord.create({
263
+ type: 'shape',
264
+ id: 'shape:1',
265
+ parentId: 'page:any',
266
+ index: 'a00',
267
+ } as any),
268
+ ]
269
+ const unchanged = snapshot.map((shape) => down(shape))
270
+ expect(unchanged.find((s) => s.id === 'shape:1')?.index).toBe('a00')
271
+ })
272
+ })
273
+
230
274
  describe('Adding export background', () => {
231
275
  const { up } = getTestMigration(instanceVersions.AddTransparentExportBgs)
232
276
  test('up works as expected', () => {
@@ -52,12 +52,16 @@ export type TLDefaultShape =
52
52
  * @public */
53
53
  export type TLUnknownShape = TLBaseShape<string, object>
54
54
 
55
+ /** @public */
56
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
57
+ export interface GlobalShapePropsMap {}
58
+
55
59
  /**
56
60
  * The set of all shapes that are available in the editor, including unknown shapes.
57
61
  *
58
62
  * @public
59
63
  */
60
- export type TLShape = TLDefaultShape | TLUnknownShape
64
+ export type TLShape = TLDefaultShape | GlobalShapePropsMap[keyof GlobalShapePropsMap]
61
65
 
62
66
  /** @public */
63
67
  export type TLShapePartial<T extends TLShape = TLShape> = T extends T
@@ -70,7 +74,7 @@ export type TLShapePartial<T extends TLShape = TLShape> = T extends T
70
74
  : never
71
75
 
72
76
  /** @public */
73
- export type TLShapeId = RecordId<TLUnknownShape>
77
+ export type TLShapeId = RecordId<TLShape>
74
78
 
75
79
  /** @public */
76
80
  export type TLParentId = TLPageId | TLShapeId
@@ -81,7 +85,7 @@ export const rootShapeVersions = createMigrationIds('com.tldraw.shape', {
81
85
  HoistOpacity: 2,
82
86
  AddMeta: 3,
83
87
  AddWhite: 4,
84
- } as const)
88
+ })
85
89
 
86
90
  /** @public */
87
91
  export const rootShapeMigrations = createRecordMigrationSequence({
@@ -202,7 +206,7 @@ export function createShapeRecordType(shapes: Record<string, SchemaPropsInfo>) {
202
206
  createShapeValidator(type, props, meta)
203
207
  )
204
208
  )
205
- ),
209
+ ) as any,
206
210
  }).withDefaultProperties(() => ({
207
211
  x: 0,
208
212
  y: 0,
@@ -1,5 +1,5 @@
1
1
  import { VecModel } from '../misc/geometry-types'
2
- import { TLBaseShape } from './TLBaseShape'
2
+ import { TLShape } from '../records/TLShape'
3
3
 
4
4
  /** @public */
5
5
  export interface TLShapeCrop {
@@ -9,4 +9,7 @@ export interface TLShapeCrop {
9
9
  }
10
10
 
11
11
  /** @public */
12
- export type ShapeWithCrop = TLBaseShape<string, { w: number; h: number; crop: TLShapeCrop | null }>
12
+ export type ShapeWithCrop = Extract<
13
+ TLShape,
14
+ { props: { w: number; h: number; crop: TLShapeCrop | null } }
15
+ >
@@ -1,12 +1,15 @@
1
1
  import { createMigrationIds, createMigrationSequence } from '@tldraw/store'
2
- import { objectMapEntries } from '@tldraw/utils'
2
+ import { IndexKey, objectMapEntries } from '@tldraw/utils'
3
+ import { TLPage } from './records/TLPage'
3
4
  import { TLShape } from './records/TLShape'
5
+ import { TLLineShape } from './shapes/TLLineShape'
4
6
 
5
7
  const Versions = createMigrationIds('com.tldraw.store', {
6
8
  RemoveCodeAndIconShapeTypes: 1,
7
9
  AddInstancePresenceType: 2,
8
10
  RemoveTLUserAndPresenceAndAddPointer: 3,
9
11
  RemoveUserDocument: 4,
12
+ FixIndexKeys: 5,
10
13
  } as const)
11
14
 
12
15
  export { Versions as storeVersions }
@@ -23,7 +26,8 @@ export const storeMigrations = createMigrationSequence({
23
26
  for (const [id, record] of objectMapEntries(store)) {
24
27
  if (
25
28
  record.typeName === 'shape' &&
26
- ((record as TLShape).type === 'icon' || (record as TLShape).type === 'code')
29
+ 'type' in record &&
30
+ (record.type === 'icon' || record.type === 'code')
27
31
  ) {
28
32
  delete store[id]
29
33
  }
@@ -63,5 +67,44 @@ export const storeMigrations = createMigrationSequence({
63
67
  }
64
68
  },
65
69
  },
70
+ {
71
+ id: Versions.FixIndexKeys,
72
+ scope: 'record',
73
+ up: (record) => {
74
+ if (['shape', 'page'].includes(record.typeName) && 'index' in record) {
75
+ const recordWithIndex = record as TLShape | TLPage
76
+ // Our newer fractional indexed library (more correctly) validates that indices
77
+ // do not end with 0. ('a0' being an exception)
78
+ if (recordWithIndex.index.endsWith('0') && recordWithIndex.index !== 'a0') {
79
+ recordWithIndex.index = (recordWithIndex.index.slice(0, -1) +
80
+ getNRandomBase62Digits(3)) as IndexKey
81
+ }
82
+ // Line shapes have 'points' that have indices as well.
83
+ if (record.typeName === 'shape' && (recordWithIndex as TLShape).type === 'line') {
84
+ const lineShape = recordWithIndex as TLLineShape
85
+ for (const [_, point] of objectMapEntries(lineShape.props.points)) {
86
+ if (point.index.endsWith('0') && point.index !== 'a0') {
87
+ point.index = (point.index.slice(0, -1) + getNRandomBase62Digits(3)) as IndexKey
88
+ }
89
+ }
90
+ }
91
+ }
92
+ },
93
+ down: () => {
94
+ // noop
95
+ // Enables tlsync to support older clients so as to not force people to refresh immediately after deploying.
96
+ },
97
+ },
66
98
  ],
67
99
  })
100
+
101
+ const BASE_62_DIGITS_WITHOUT_ZERO = '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
102
+ const getRandomBase62Digit = () => {
103
+ return BASE_62_DIGITS_WITHOUT_ZERO.charAt(
104
+ Math.floor(Math.random() * BASE_62_DIGITS_WITHOUT_ZERO.length)
105
+ )
106
+ }
107
+
108
+ const getNRandomBase62Digits = (n: number) => {
109
+ return Array.from({ length: n }, getRandomBase62Digit).join('')
110
+ }