From 1615c6150aca13c82ad09ccc1972c7262f100863 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Tue, 29 Mar 2022 13:08:00 -0600 Subject: [PATCH 01/71] Start on TypeScript-based styling system Co-Authored-By: Nate Butler <1714999+iamnbutler@users.noreply.github.com> --- .gitignore | 1 + styles/app.ts | 632 +++++++++++++++++++++++++++++++++++++++ styles/components.ts | 62 ++++ styles/core.ts | 38 +++ styles/package-lock.json | 28 ++ styles/package.json | 14 + styles/selector-modal.ts | 59 ++++ styles/theme.ts | 121 ++++++++ 8 files changed, 955 insertions(+) create mode 100644 styles/app.ts create mode 100644 styles/components.ts create mode 100644 styles/core.ts create mode 100644 styles/package-lock.json create mode 100644 styles/package.json create mode 100644 styles/selector-modal.ts create mode 100644 styles/theme.ts diff --git a/.gitignore b/.gitignore index e88434ce4e718285669691175d297842a3b16b33..140053fc2c507f788748b43136b1eaa5c52680da 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /zed.xcworkspace .DS_Store /script/node_modules +/styles/node_modules /crates/server/.env.toml /crates/server/static/styles.css /vendor/bin diff --git a/styles/app.ts b/styles/app.ts new file mode 100644 index 0000000000000000000000000000000000000000..a7ae4348bea1d2e0861d0d4a957cd6eb7a3c7adf --- /dev/null +++ b/styles/app.ts @@ -0,0 +1,632 @@ +import { selectorModal } from "./selector-modal"; +import Theme from "./theme"; + +export default function app(theme: Theme): Object { + return { + selector: selectorModal(theme), + workspace: { + background: "$surface.500", + leaderBorderOpacity: 0.7, + leader_border_width: 2.0, + active_tab: { + background: "$surface.300", + extends: "$workspace.tab", + text: "$text.primary", + border: { + bottom: false, + }, + }, + left_sidebar: { + extends: "$workspace.sidebar", + border: { + color: "$border.primary", + right: true, + width: 1, + }, + }, + pane_divider: { + color: "$border.primary", + width: 1, + }, + right_sidebar: { + extends: "$workspace.sidebar", + border: { + color: "$border.primary", + left: true, + width: 1, + }, + }, + sidebar: { + width: 30, + active_item: { + extends: "$workspace.sidebar.item", + icon_color: "$text.primary.color", + }, + border: { + color: "$border.primary", + right: true, + width: 1, + }, + item: { + height: "$workspace.tab.height", + icon_color: "$text.muted.color", + icon_size: 18, + }, + resize_handle: { + background: "$border.primary", + padding: { + left: 1, + }, + }, + }, + status_bar: { + cursor_position: "$text.muted", + diagnostic_message: "$text.muted", + height: 24, + item_spacing: 8, + lsp_message: "$text.muted", + padding: { + left: 6, + right: 6, + }, + }, + tab: { + height: 34, + icon_close: "$text.muted.color", + icon_close_active: "$text.primary.color", + icon_conflict: "$status.warn", + icon_dirty: "$status.info", + icon_width: 8, + spacing: 10, + text: "$text.muted", + border: { + bottom: true, + color: "$border.primary", + left: true, + overlay: true, + width: 1, + }, + padding: { + left: 12, + right: 12, + }, + }, + titlebar: { + avatar_width: 18, + height: 32, + share_icon_active_color: "$text.primary.color", + share_icon_color: "$text.muted.color", + title: "$text.primary", + avatar: { + corner_radius: 10, + border: { + color: "#00000088", + width: 1, + }, + }, + avatar_ribbon: { + background: "#ff0000", + height: 3, + width: 12, + }, + border: { + bottom: true, + color: "$border.primary", + width: 1, + }, + hovered_sign_in_prompt: { + color: "$text.secondary.color", + extends: "$workspace.titlebar.sign_in_prompt", + }, + offline_icon: { + color: "$text.muted.color", + width: 16, + padding: { + right: 4, + }, + }, + outdated_warning: { + extends: "$text.muted", + size: 13, + }, + sign_in_prompt: { + extends: "$text.muted", + size: 13, + underline: true, + padding: { + right: 8, + }, + }, + }, + toolbar: { + height: 44, + }, + }, + chat_panel: { + extends: "$panel", + channel_name: { + extends: "$text.primary", + weight: "bold", + }, + channel_name_hash: { + text: "$text.muted", + padding: { + right: 8, + }, + }, + channel_select: { + active_item: { + extends: "$chat_panel.channel_select.item", + name: "$text.primary", + }, + header: { + extends: "$chat_panel.channel_select.active_item", + padding: { + bottom: 4, + left: 0, + }, + }, + hovered_active_item: { + extends: "$chat_panel.channel_select.hovered_item", + name: "$text.primary", + }, + hovered_item: { + background: "$state.hover", + corner_radius: 6, + extends: "$chat_panel.channel_select.item", + }, + item: { + name: "$text.secondary", + padding: 4, + hash: { + extends: "$text.muted", + margin: { + right: 8, + }, + }, + }, + menu: { + background: "$surface.500", + corner_radius: 6, + padding: 4, + border: { + color: "$border.primary", + width: 1, + }, + shadow: { + blur: 16, + color: "$shadow.0", + offset: [0, 2], + }, + }, + }, + hovered_sign_in_prompt: { + color: "$text.secondary.color", + extends: "$chat_panel.sign_in_prompt", + }, + input_editor: { + background: "$surface.300", + corner_radius: 6, + placeholder_text: "$text.muted", + selection: "$selection.host", + text: "$text.primary", + border: { + color: "$border.primary", + width: 1, + }, + padding: { + bottom: 7, + left: 8, + right: 8, + top: 7, + }, + }, + message: { + body: "$text.secondary", + timestamp: "$text.muted", + padding: { + bottom: 6, + }, + sender: { + extends: "$text.primary", + weight: "bold", + margin: { + right: 8, + }, + }, + }, + pending_message: { + extends: "$chat_panel.message", + body: { + color: "$text.muted.color", + }, + sender: { + color: "$text.muted.color", + }, + timestamp: { + color: "$text.muted.color", + }, + }, + sign_in_prompt: { + extends: "$text.primary", + underline: true, + }, + }, + contacts_panel: { + extends: "$panel", + host_row_height: 28, + tree_branch_color: "$surface.100", + tree_branch_width: 1, + host_avatar: { + corner_radius: 10, + width: 18, + }, + host_username: { + extends: "$text.primary", + padding: { + left: 8, + }, + }, + hovered_shared_project: { + background: "$state.hover", + corner_radius: 6, + extends: "$contacts_panel.shared_project", + }, + hovered_unshared_project: { + background: "$state.hover", + corner_radius: 6, + extends: "$contacts_panel.unshared_project", + }, + project: { + guest_avatar_spacing: 4, + height: 24, + guest_avatar: { + corner_radius: 8, + width: 14, + }, + name: { + extends: "$text.secondary", + margin: { + right: 6, + }, + }, + padding: { + left: 8, + }, + }, + shared_project: { + extends: "$contacts_panel.project", + name: { + color: "$text.primary.color", + }, + }, + unshared_project: { + extends: "$contacts_panel.project", + }, + }, + editor: { + active_line_background: "$state.active_line", + background: "$surface.300", + code_actions_indicator: "$text.muted.color", + diff_background_deleted: "$state.deleted_line", + diff_background_inserted: "$state.inserted_line", + document_highlight_read_background: "#99999920", + document_highlight_write_background: "#99999916", + error_color: "$status.bad", + guest_selections: "$selection.guests", + gutter_background: "$surface.300", + gutter_padding_factor: 2.5, + highlighted_line_background: "$state.highlighted_line", + line_number: "$text.muted.color", + line_number_active: "$text.primary.color", + rename_fade: 0.6, + selection: "$selection.host", + text_color: "$text.secondary.color", + unnecessary_code_fade: 0.5, + autocomplete: { + background: "$surface.100", + corner_radius: 6, + padding: 6, + border: { + color: "$border.secondary", + width: 2, + }, + hovered_item: { + background: "$state.hover", + extends: "$editor.autocomplete.item", + }, + item: { + corner_radius: 6, + padding: { + bottom: 2, + left: 6, + right: 6, + top: 2, + }, + }, + margin: { + left: -14, + }, + match_highlight: { + color: "$editor.syntax.keyword.color", + weight: "$editor.syntax.keyword.weight", + }, + selected_item: { + background: "$state.selected", + extends: "$editor.autocomplete.item", + }, + }, + diagnostic_header: { + background: "$editor.background", + icon_width_factor: 1.5, + text_scale_factor: 0.857, + border: { + bottom: true, + color: "$border.secondary", + top: true, + width: 1, + }, + code: { + extends: "$text.muted", + size: 14, + margin: { + left: 10, + }, + }, + message: { + highlight_text: { + extends: "$text.primary", + size: 14, + weight: "bold", + }, + text: { + extends: "$text.secondary", + size: 14, + }, + }, + }, + diagnostic_path_header: { + background: "$state.active_line", + text_scale_factor: 0.857, + filename: { + extends: "$text.primary", + size: 14, + }, + path: { + extends: "$text.muted", + size: 14, + margin: { + left: 12, + }, + }, + }, + error_diagnostic: { + text_scale_factor: 0.857, + header: { + border: { + color: "$border.primary", + top: true, + width: 1, + }, + }, + message: { + highlight_text: { + color: "$status.bad", + extends: "$text.secondary", + size: 14, + weight: "bold", + }, + text: { + color: "$status.bad", + extends: "$text.secondary", + size: 14, + }, + }, + }, + hint_diagnostic: { + extends: "$editor.error_diagnostic", + message: { + highlight_text: { + color: "$status.info", + }, + text: { + color: "$status.info", + }, + }, + }, + information_diagnostic: { + extends: "$editor.error_diagnostic", + message: { + highlight_text: { + color: "$status.info", + }, + text: { + color: "$status.info", + }, + }, + }, + invalid_error_diagnostic: { + extends: "$editor.error_diagnostic", + message: { + highlight_text: { + color: "$text.muted.color", + }, + text: { + color: "$text.muted.color", + }, + }, + }, + invalid_hint_diagnostic: { + extends: "$editor.hint_diagnostic", + message: { + highlight_text: { + color: "$text.muted.color", + }, + text: { + color: "$text.muted.color", + }, + }, + }, + invalid_information_diagnostic: { + extends: "$editor.information_diagnostic", + message: { + highlight_text: { + color: "$text.muted.color", + }, + text: { + color: "$text.muted.color", + }, + }, + }, + invalid_warning_diagnostic: { + extends: "$editor.warning_diagnostic", + message: { + highlight_text: { + color: "$text.muted.color", + }, + text: { + color: "$text.muted.color", + }, + }, + }, + warning_diagnostic: { + extends: "$editor.error_diagnostic", + message: { + highlight_text: { + color: "$status.warn", + }, + text: { + color: "$status.warn", + }, + }, + }, + }, + project_diagnostics: { + background: "$surface.300", + tab_icon_spacing: 4, + tab_icon_width: 13, + tab_summary_spacing: 10, + empty_message: { + extends: "$text.primary", + size: 18, + }, + status_bar_item: { + extends: "$text.muted", + margin: { + right: 10, + }, + }, + }, + project_panel: { + extends: "$panel", + entry: { + height: 22, + icon_color: "$text.muted.color", + icon_size: 8, + icon_spacing: 8, + text: "$text.secondary", + }, + hovered_entry: { + background: "$state.hover", + extends: "$project_panel.entry", + }, + hovered_selected_entry: { + extends: "$project_panel.hovered_entry", + text: { + extends: "$text.primary", + }, + }, + padding: { + top: 6, + }, + selected_entry: { + extends: "$project_panel.entry", + text: { + extends: "$text.primary", + }, + }, + }, + search: { + background: "$surface.300", + match_background: "$state.highlighted_line", + tab_icon_spacing: 4, + tab_icon_width: 14, + active_hovered_option_button: { + background: "$surface.100", + extends: "$search.option_button", + }, + active_option_button: { + background: "$surface.100", + extends: "$search.option_button", + }, + editor: { + background: "$surface.500", + corner_radius: 6, + max_width: 400, + placeholder_text: "$text.muted", + selection: "$selection.host", + text: "$text.primary", + border: { + color: "$border.primary", + width: 1, + }, + margin: { + bottom: 5, + left: 5, + right: 5, + top: 5, + }, + padding: { + bottom: 3, + left: 13, + right: 13, + top: 3, + }, + }, + hovered_option_button: { + background: "$surface.100", + extends: "$search.option_button", + }, + invalid_editor: { + extends: "$search.editor", + border: { + color: "$status.bad", + width: 1, + }, + }, + match_index: { + extends: "$text.secondary", + padding: 6, + }, + option_button: { + background: "$surface.300", + corner_radius: 6, + extends: "$text.secondary", + border: { + color: "$border.primary", + width: 1, + }, + margin: { + left: 1, + right: 1, + }, + padding: { + bottom: 1, + left: 6, + right: 6, + top: 1, + }, + }, + option_button_group: { + padding: { + left: 2, + right: 2, + }, + }, + results_status: { + extends: "$text.primary", + size: 18, + }, + }, + }; +} diff --git a/styles/components.ts b/styles/components.ts new file mode 100644 index 0000000000000000000000000000000000000000..226d1d9e374274ce82938f85c1a73d0c669a468c --- /dev/null +++ b/styles/components.ts @@ -0,0 +1,62 @@ +import chroma from "chroma-js"; +import core, { Color } from "./core"; +import Theme, { BackgroundColor, Weight } from "./theme"; + +export function text( + theme: Theme, + fontFamily: keyof typeof core.fontFamily, + color: keyof Theme["textColor"], + properties?: { size?: keyof typeof core["fontSize"]; weight?: Weight } +) { + const sizeKey = properties.size || fontFamily === "sans" ? "sm" : "md"; + const size = core.fontSize[sizeKey].value; + + return { + family: core.fontFamily[fontFamily], + color: theme.textColor[color].value, + ...properties, + size, + }; +} + +export function border(theme: Theme, color: keyof Theme["borderColor"]) { + return { + color: theme.borderColor[color].value, + width: 1, + }; +} + +export interface Player { + selection: { + cursor: Color; + selection: Color; + }; +} + +export function player( + theme: Theme, + playerNumber: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 +): Player { + return { + selection: { + cursor: theme.player[playerNumber].cursorColor.value, + selection: theme.player[playerNumber].selectionColor.value, + }, + }; +} + +export function backgroundColor( + theme: Theme, + name: keyof Theme["backgroundColor"], + state?: keyof BackgroundColor +): Color { + return theme.backgroundColor[name][state || "base"].value; +} + +export function shadow(theme) { + return { + blur: 16, + color: chroma("black").alpha(theme.shadowAlpha.value).hex(), + offset: [0, 2], + }; +} diff --git a/styles/core.ts b/styles/core.ts new file mode 100644 index 0000000000000000000000000000000000000000..6c63b2285ea0406363f05938e956029db5cc39dd --- /dev/null +++ b/styles/core.ts @@ -0,0 +1,38 @@ +export type Color = string; + +export default { + fontFamily: { + sans: "Zed Sans", + mono: "Zed Mono", + }, + fontSize: { + "3xs": { + value: "8", + type: "fontSizes", + }, + "2xs": { + value: "10", + type: "fontSizes", + }, + xs: { + value: "12", + type: "fontSizes", + }, + sm: { + value: "14", + type: "fontSizes", + }, + md: { + value: "16", + type: "fontSizes", + }, + lg: { + value: "18", + type: "fontSizes", + }, + xl: { + value: "20", + type: "fontSizes", + }, + }, +}; diff --git a/styles/package-lock.json b/styles/package-lock.json new file mode 100644 index 0000000000000000000000000000000000000000..3abb465628bd5400de8fccf399c5e62025600ab1 --- /dev/null +++ b/styles/package-lock.json @@ -0,0 +1,28 @@ +{ + "name": "styles", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "styles", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "chroma-js": "^2.4.2" + } + }, + "node_modules/chroma-js": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", + "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" + } + }, + "dependencies": { + "chroma-js": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", + "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" + } + } +} diff --git a/styles/package.json b/styles/package.json new file mode 100644 index 0000000000000000000000000000000000000000..92f0546c561f768847c081fca7465d28822798ff --- /dev/null +++ b/styles/package.json @@ -0,0 +1,14 @@ +{ + "name": "styles", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "chroma-js": "^2.4.2" + } +} diff --git a/styles/selector-modal.ts b/styles/selector-modal.ts new file mode 100644 index 0000000000000000000000000000000000000000..f7101c915138e61d6147f4f12e82e58310ae9637 --- /dev/null +++ b/styles/selector-modal.ts @@ -0,0 +1,59 @@ +import { backgroundColor, border, player, shadow, text } from "./components"; +import Theme from "./theme"; + +export function selectorModal(theme: Theme): Object { + const item = { + padding: { + bottom: 4, + left: 16, + right: 16, + top: 4, + }, + cornerRadius: 6, + text: text(theme, "sans", "secondary"), + highlightText: text(theme, "sans", "feature", { weight: "bold" }), + }; + + const activeItem = { + ...item, + background: backgroundColor(theme, 500, "active"), + text: text(theme, "sans", "primary"), + }; + + return { + background: backgroundColor(theme, 500), + cornerRadius: 6, + padding: 8, + item, + activeItem, + border: border(theme, "primary"), + empty: { + text: text(theme, "sans", "muted"), + padding: { + bottom: 4, + left: 16, + right: 16, + top: 8, + }, + }, + inputEditor: { + background: backgroundColor(theme, 300), + corner_radius: 6, + placeholderText: text(theme, "sans", "placeholder"), + selection: player(theme, 1).selection, + text: text(theme, "mono", "primary"), + border: border(theme, "primary"), + padding: { + bottom: 7, + left: 16, + right: 16, + top: 7, + }, + }, + margin: { + bottom: 52, + top: 52, + }, + shadow: shadow(theme), + }; +} diff --git a/styles/theme.ts b/styles/theme.ts new file mode 100644 index 0000000000000000000000000000000000000000..5363a8c01c08697f90fa9a37ffba2c6d50305c5c --- /dev/null +++ b/styles/theme.ts @@ -0,0 +1,121 @@ +export type Color = string; +export type Weight = + | "thin" + | "extra_light" + | "light" + | "normal" + | "medium" + | "semibold" + | "bold" + | "extra_bold" + | "black"; + +interface SyntaxHighlightStyle { + color: { value: Color }; + weight: { value: Weight }; +} + +interface Player { + baseColor: { + value: Color; + }; + cursorColor: { + value: Color; + }; + selectionColor: { + value: Color; + }; + borderColor: { + value: Color; + }; +} + +export interface BackgroundColor { + base: { + value: Color; + }; + hover: { + value: Color; + }; + active: { + value: Color; + }; + focused: { + value: Color; + }; +} + +export default interface Theme { + backgroundColor: { + 100: BackgroundColor; + 300: BackgroundColor; + 500: BackgroundColor; + }; + borderColor: { + primary: { + value: Color; + }; + secondary: { + value: Color; + }; + muted: { + value: Color; + }; + focused: { + value: Color; + }; + active: { + value: Color; + }; + }; + textColor: { + primary: { + value: Color; + }; + secondary: { + value: Color; + }; + muted: { + value: Color; + }; + placeholder: { + value: Color; + }; + active: { + value: Color; + }; + feature: { + value: Color; + }; + }; + syntax: { + primary: SyntaxHighlightStyle; + comment: SyntaxHighlightStyle; + punctuation: SyntaxHighlightStyle; + constant: SyntaxHighlightStyle; + keyword: SyntaxHighlightStyle; + function: SyntaxHighlightStyle; + type: SyntaxHighlightStyle; + variant: SyntaxHighlightStyle; + property: SyntaxHighlightStyle; + enum: SyntaxHighlightStyle; + operator: SyntaxHighlightStyle; + string: SyntaxHighlightStyle; + number: SyntaxHighlightStyle; + boolean: SyntaxHighlightStyle; + predictive: SyntaxHighlightStyle; + }; + player: { + 1: Player; + 2: Player; + 3: Player; + 4: Player; + 5: Player; + 6: Player; + 7: Player; + 8: Player; + }; + shadowAlpha: { + value: number; + }; +} From 9669f5a8f81a24fa436bfa15798f7e8ce3fb976a Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Tue, 29 Mar 2022 15:33:03 -0400 Subject: [PATCH 02/71] WIP: Add `rose` color tokens to `core.ts` --- styles/core.ts | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/styles/core.ts b/styles/core.ts index 6c63b2285ea0406363f05938e956029db5cc39dd..164b6dba003b391e73717d232fb8b9c94ecbcba2 100644 --- a/styles/core.ts +++ b/styles/core.ts @@ -1,6 +1,51 @@ +import chroma from "chroma-js"; + export type Color = string; +function getColorRamp(colorName, baseColor, steps = 10) { + let hsl = chroma(baseColor).hsl(); + let h = Math.round(hsl[0]); + let lightColor = chroma.hsl(h, 0.88, 0.96).hex(); + let darkColor = chroma.hsl(h, 0.68, 0.32).hex(); + + let ramp = chroma + .scale([lightColor, baseColor, darkColor]) + .domain([0, 0.5, 1]) + .mode("hsl") + .gamma(1) + .correctLightness(true) + .padding([0, 0.15]) + .colors(steps); + + let tokens = {}; + let token = {}; + let colorNumber = 0; + + for (let i = 0; i < steps; i++) { + if (i !== 0) { + colorNumber = i * 100; + } + + token = { + [`${colorName}_${colorNumber}`]: { + value: ramp[i].value, + rootValue: baseColor, + step: i, + type: "color", + }, + }; + + Object.assign(token, tokens); + } + + return tokens; +} + export default { + color: { + rose: getColorRamp("rose", "#F43F5E", 10), + }, + fontFamily: { sans: "Zed Sans", mono: "Zed Mono", From 39f46f64a69c101266dfb884f9b1c5672e58b074 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Tue, 29 Mar 2022 17:10:46 -0400 Subject: [PATCH 03/71] WIP: Color WIP --- styles/core.color.ts | 93 ++++++++++++++++++++++++++++++++++++++++++++ styles/core.ts | 45 +-------------------- 2 files changed, 95 insertions(+), 43 deletions(-) create mode 100644 styles/core.color.ts diff --git a/styles/core.color.ts b/styles/core.color.ts new file mode 100644 index 0000000000000000000000000000000000000000..004e7209a2c124bfa74bfaec6d598389e187d9ad --- /dev/null +++ b/styles/core.color.ts @@ -0,0 +1,93 @@ +import chroma from "chroma-js"; + +export type Color = string; + +function returnTokens( + colorName: string, + ramp: Array, // help, have no clue on type here +) { + let tokens = {}; + let token = {}; + let colorNumber = 0; + let increment = 0; + + for (let i = 0; i < ramp.len; i++) { + if (i > 11 ) { + increment = 50; + } else { + increment = 100; + } + + if (i !== 0) { + colorNumber = i * increment; + } + + token = { + [`${colorName}_${colorNumber}`]: { + value: ramp[i].value, + step: i, + type: "color", + }, + }; + + Object.assign(token, tokens); + } + return tokens; +} + +function oneColorRamp( + colorName: string, + baseColor: string, + steps: number = 10 +) { + let hsl = chroma(baseColor).hsl(); + let h = Math.round(hsl[0]); + let lightColor = chroma.hsl(h, 0.88, 0.96).hex(); + let darkColor = chroma.hsl(h, 0.68, 0.32).hex(); + + let ramp = chroma + .scale([lightColor, baseColor, darkColor]) + .domain([0, 0.5, 1]) + .mode("hsl") + .gamma(1) + .correctLightness(true) + .padding([0, 0.15]) + .colors(steps) + .hex(); + + return returnTokens(colorName, ramp); +} + +function colorRamp( + colorName: string, + startColor: string, + endColor: string, + steps: number +) { + let ramp = chroma.scale([startColor, endColor]).mode("hsl").colors(steps).hex(); + + return returnTokens(colorName, ramp); +} + +export default { + color: { + neutral: colorRamp("neutral", "black", "white", 21), // colorName, startColor, endColor, steps + rose: oneColorRamp("rose", "#F43F5EFF"), // colorName, baseColor, steps(optional) + red: oneColorRamp("red", "#EF4444FF"), + orange: oneColorRamp("orange", "#F97316FF"), + amber: oneColorRamp("amber", "#F59E0BFF"), + yellow: oneColorRamp("yellow", "#EAB308FF"), + lime: oneColorRamp("lime", "#84CC16FF"), + green: oneColorRamp("green", "#22C55EFF"), + emerald: oneColorRamp("emerald", "#10B981FF"), + teal: oneColorRamp("teal", "#14B8A6FF"), + cyan: oneColorRamp("cyan", "#06BBD4FF"), + sky: oneColorRamp("sky", "#0EA5E9FF"), + blue: oneColorRamp("blue", "#3B82F6FF"), + indigo: oneColorRamp("indigo", "#6366F1FF"), + violet: oneColorRamp("violet", "#8B5CF6FF"), + purple: oneColorRamp("purple", "#A855F7FF"), + fuschia: oneColorRamp("fuschia", "#D946E4FF"), + pink: oneColorRamp("pink", "#EC4899FF"), + }, +}; diff --git a/styles/core.ts b/styles/core.ts index 164b6dba003b391e73717d232fb8b9c94ecbcba2..6444ef9a1c96b26c85ec5181871005650443ce22 100644 --- a/styles/core.ts +++ b/styles/core.ts @@ -1,50 +1,9 @@ -import chroma from "chroma-js"; +import color from "./core.color"; export type Color = string; -function getColorRamp(colorName, baseColor, steps = 10) { - let hsl = chroma(baseColor).hsl(); - let h = Math.round(hsl[0]); - let lightColor = chroma.hsl(h, 0.88, 0.96).hex(); - let darkColor = chroma.hsl(h, 0.68, 0.32).hex(); - - let ramp = chroma - .scale([lightColor, baseColor, darkColor]) - .domain([0, 0.5, 1]) - .mode("hsl") - .gamma(1) - .correctLightness(true) - .padding([0, 0.15]) - .colors(steps); - - let tokens = {}; - let token = {}; - let colorNumber = 0; - - for (let i = 0; i < steps; i++) { - if (i !== 0) { - colorNumber = i * 100; - } - - token = { - [`${colorName}_${colorNumber}`]: { - value: ramp[i].value, - rootValue: baseColor, - step: i, - type: "color", - }, - }; - - Object.assign(token, tokens); - } - - return tokens; -} - export default { - color: { - rose: getColorRamp("rose", "#F43F5E", 10), - }, + color: color, fontFamily: { sans: "Zed Sans", From 32b6c3d3d49cca415a3ff0a7733d0ed31d7029a7 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Tue, 29 Mar 2022 16:28:19 -0600 Subject: [PATCH 04/71] Express workspace in terms of new components Co-Authored-By: Nate Butler <1714999+iamnbutler@users.noreply.github.com> --- styles/app.ts | 155 +++------------------------------------ styles/components.ts | 23 +++++- styles/core.color.ts | 93 ----------------------- styles/core.ts | 26 +++++-- styles/lib.ts | 44 +++++++++++ styles/package-lock.json | 11 +++ styles/package.json | 1 + styles/selector-modal.ts | 2 +- styles/theme.ts | 46 ++++++++++++ styles/workspace.ts | 133 +++++++++++++++++++++++++++++++++ 10 files changed, 288 insertions(+), 246 deletions(-) delete mode 100644 styles/core.color.ts create mode 100644 styles/lib.ts create mode 100644 styles/workspace.ts diff --git a/styles/app.ts b/styles/app.ts index a7ae4348bea1d2e0861d0d4a957cd6eb7a3c7adf..4f40577ae9ada410e9cab6c76bfb950660b6b94b 100644 --- a/styles/app.ts +++ b/styles/app.ts @@ -1,147 +1,12 @@ -import { selectorModal } from "./selector-modal"; +import { backgroundColor } from "./components"; +import selectorModal from "./selector-modal"; +import workspace from "./workspace"; import Theme from "./theme"; export default function app(theme: Theme): Object { return { selector: selectorModal(theme), - workspace: { - background: "$surface.500", - leaderBorderOpacity: 0.7, - leader_border_width: 2.0, - active_tab: { - background: "$surface.300", - extends: "$workspace.tab", - text: "$text.primary", - border: { - bottom: false, - }, - }, - left_sidebar: { - extends: "$workspace.sidebar", - border: { - color: "$border.primary", - right: true, - width: 1, - }, - }, - pane_divider: { - color: "$border.primary", - width: 1, - }, - right_sidebar: { - extends: "$workspace.sidebar", - border: { - color: "$border.primary", - left: true, - width: 1, - }, - }, - sidebar: { - width: 30, - active_item: { - extends: "$workspace.sidebar.item", - icon_color: "$text.primary.color", - }, - border: { - color: "$border.primary", - right: true, - width: 1, - }, - item: { - height: "$workspace.tab.height", - icon_color: "$text.muted.color", - icon_size: 18, - }, - resize_handle: { - background: "$border.primary", - padding: { - left: 1, - }, - }, - }, - status_bar: { - cursor_position: "$text.muted", - diagnostic_message: "$text.muted", - height: 24, - item_spacing: 8, - lsp_message: "$text.muted", - padding: { - left: 6, - right: 6, - }, - }, - tab: { - height: 34, - icon_close: "$text.muted.color", - icon_close_active: "$text.primary.color", - icon_conflict: "$status.warn", - icon_dirty: "$status.info", - icon_width: 8, - spacing: 10, - text: "$text.muted", - border: { - bottom: true, - color: "$border.primary", - left: true, - overlay: true, - width: 1, - }, - padding: { - left: 12, - right: 12, - }, - }, - titlebar: { - avatar_width: 18, - height: 32, - share_icon_active_color: "$text.primary.color", - share_icon_color: "$text.muted.color", - title: "$text.primary", - avatar: { - corner_radius: 10, - border: { - color: "#00000088", - width: 1, - }, - }, - avatar_ribbon: { - background: "#ff0000", - height: 3, - width: 12, - }, - border: { - bottom: true, - color: "$border.primary", - width: 1, - }, - hovered_sign_in_prompt: { - color: "$text.secondary.color", - extends: "$workspace.titlebar.sign_in_prompt", - }, - offline_icon: { - color: "$text.muted.color", - width: 16, - padding: { - right: 4, - }, - }, - outdated_warning: { - extends: "$text.muted", - size: 13, - }, - sign_in_prompt: { - extends: "$text.muted", - size: 13, - underline: true, - padding: { - right: 8, - }, - }, - }, - toolbar: { - height: 44, - }, - }, + workspace: workspace(theme), chat_panel: { extends: "$panel", channel_name: { @@ -205,7 +70,7 @@ export default function app(theme: Theme): Object { extends: "$chat_panel.sign_in_prompt", }, input_editor: { - background: "$surface.300", + background: backgroundColor(theme, 300), corner_radius: 6, placeholder_text: "$text.muted", selection: "$selection.host", @@ -306,7 +171,7 @@ export default function app(theme: Theme): Object { }, editor: { active_line_background: "$state.active_line", - background: "$surface.300", + background: backgroundColor(theme, 300), code_actions_indicator: "$text.muted.color", diff_background_deleted: "$state.deleted_line", diff_background_inserted: "$state.inserted_line", @@ -314,7 +179,7 @@ export default function app(theme: Theme): Object { document_highlight_write_background: "#99999916", error_color: "$status.bad", guest_selections: "$selection.guests", - gutter_background: "$surface.300", + gutter_background: backgroundColor(theme, 300), gutter_padding_factor: 2.5, highlighted_line_background: "$state.highlighted_line", line_number: "$text.muted.color", @@ -502,7 +367,7 @@ export default function app(theme: Theme): Object { }, }, project_diagnostics: { - background: "$surface.300", + background: backgroundColor(theme, 300), tab_icon_spacing: 4, tab_icon_width: 13, tab_summary_spacing: 10, @@ -547,7 +412,7 @@ export default function app(theme: Theme): Object { }, }, search: { - background: "$surface.300", + background: backgroundColor(theme, 300), match_background: "$state.highlighted_line", tab_icon_spacing: 4, tab_icon_width: 14, @@ -599,7 +464,7 @@ export default function app(theme: Theme): Object { padding: 6, }, option_button: { - background: "$surface.300", + background: backgroundColor(theme, 300), corner_radius: 6, extends: "$text.secondary", border: { diff --git a/styles/components.ts b/styles/components.ts index 226d1d9e374274ce82938f85c1a73d0c669a468c..9cc58046ffba77646dc07342b1485e0877305f69 100644 --- a/styles/components.ts +++ b/styles/components.ts @@ -1,5 +1,6 @@ import chroma from "chroma-js"; -import core, { Color } from "./core"; +import core from "./core"; +import { Color } from "./lib"; import Theme, { BackgroundColor, Weight } from "./theme"; export function text( @@ -19,13 +20,31 @@ export function text( }; } -export function border(theme: Theme, color: keyof Theme["borderColor"]) { +export interface BorderOptions { + width?: number; + top?: boolean; + bottom?: boolean; + left?: boolean; + right?: boolean; + overlay?: boolean; +} + +export function border( + theme: Theme, + color: keyof Theme["borderColor"], + options?: BorderOptions +) { return { color: theme.borderColor[color].value, width: 1, + ...options, }; } +export function iconColor(theme: Theme, color: keyof Theme["iconColor"]) { + return theme.iconColor[color].value; +} + export interface Player { selection: { cursor: Color; diff --git a/styles/core.color.ts b/styles/core.color.ts deleted file mode 100644 index 004e7209a2c124bfa74bfaec6d598389e187d9ad..0000000000000000000000000000000000000000 --- a/styles/core.color.ts +++ /dev/null @@ -1,93 +0,0 @@ -import chroma from "chroma-js"; - -export type Color = string; - -function returnTokens( - colorName: string, - ramp: Array, // help, have no clue on type here -) { - let tokens = {}; - let token = {}; - let colorNumber = 0; - let increment = 0; - - for (let i = 0; i < ramp.len; i++) { - if (i > 11 ) { - increment = 50; - } else { - increment = 100; - } - - if (i !== 0) { - colorNumber = i * increment; - } - - token = { - [`${colorName}_${colorNumber}`]: { - value: ramp[i].value, - step: i, - type: "color", - }, - }; - - Object.assign(token, tokens); - } - return tokens; -} - -function oneColorRamp( - colorName: string, - baseColor: string, - steps: number = 10 -) { - let hsl = chroma(baseColor).hsl(); - let h = Math.round(hsl[0]); - let lightColor = chroma.hsl(h, 0.88, 0.96).hex(); - let darkColor = chroma.hsl(h, 0.68, 0.32).hex(); - - let ramp = chroma - .scale([lightColor, baseColor, darkColor]) - .domain([0, 0.5, 1]) - .mode("hsl") - .gamma(1) - .correctLightness(true) - .padding([0, 0.15]) - .colors(steps) - .hex(); - - return returnTokens(colorName, ramp); -} - -function colorRamp( - colorName: string, - startColor: string, - endColor: string, - steps: number -) { - let ramp = chroma.scale([startColor, endColor]).mode("hsl").colors(steps).hex(); - - return returnTokens(colorName, ramp); -} - -export default { - color: { - neutral: colorRamp("neutral", "black", "white", 21), // colorName, startColor, endColor, steps - rose: oneColorRamp("rose", "#F43F5EFF"), // colorName, baseColor, steps(optional) - red: oneColorRamp("red", "#EF4444FF"), - orange: oneColorRamp("orange", "#F97316FF"), - amber: oneColorRamp("amber", "#F59E0BFF"), - yellow: oneColorRamp("yellow", "#EAB308FF"), - lime: oneColorRamp("lime", "#84CC16FF"), - green: oneColorRamp("green", "#22C55EFF"), - emerald: oneColorRamp("emerald", "#10B981FF"), - teal: oneColorRamp("teal", "#14B8A6FF"), - cyan: oneColorRamp("cyan", "#06BBD4FF"), - sky: oneColorRamp("sky", "#0EA5E9FF"), - blue: oneColorRamp("blue", "#3B82F6FF"), - indigo: oneColorRamp("indigo", "#6366F1FF"), - violet: oneColorRamp("violet", "#8B5CF6FF"), - purple: oneColorRamp("purple", "#A855F7FF"), - fuschia: oneColorRamp("fuschia", "#D946E4FF"), - pink: oneColorRamp("pink", "#EC4899FF"), - }, -}; diff --git a/styles/core.ts b/styles/core.ts index 6444ef9a1c96b26c85ec5181871005650443ce22..e9e81982e456c0ffe151b83ac36767d62140c6ba 100644 --- a/styles/core.ts +++ b/styles/core.ts @@ -1,10 +1,6 @@ -import color from "./core.color"; - -export type Color = string; +import { colorRamp } from "./lib"; export default { - color: color, - fontFamily: { sans: "Zed Sans", mono: "Zed Mono", @@ -39,4 +35,24 @@ export default { type: "fontSizes", }, }, + color: { + neutral: colorRamp(["black", "white"], { steps: 21, increment: 50 }), + rose: colorRamp("#F43F5EFF"), + red: colorRamp("#EF4444FF"), + orange: colorRamp("#F97316FF"), + amber: colorRamp("#F59E0BFF"), + yellow: colorRamp("#EAB308FF"), + lime: colorRamp("#84CC16FF"), + green: colorRamp("#22C55EFF"), + emerald: colorRamp("#10B981FF"), + teal: colorRamp("#14B8A6FF"), + cyan: colorRamp("#06BBD4FF"), + sky: colorRamp("#0EA5E9FF"), + blue: colorRamp("#3B82F6FF"), + indigo: colorRamp("#6366F1FF"), + violet: colorRamp("#8B5CF6FF"), + purple: colorRamp("#A855F7FF"), + fuschia: colorRamp("#D946E4FF"), + pink: colorRamp("#EC4899FF"), + }, }; diff --git a/styles/lib.ts b/styles/lib.ts new file mode 100644 index 0000000000000000000000000000000000000000..b59f4fa69479a1f886229afe1953284f6626f9d8 --- /dev/null +++ b/styles/lib.ts @@ -0,0 +1,44 @@ +import chroma, { Scale } from "chroma-js"; + +export type Color = string; +export type ColorRampStep = { value: Color; type: "color"; step: number }; +export type ColorRamp = { + [index: number]: ColorRampStep; +}; + +export function colorRamp( + color: Color | [Color, Color], + options?: { steps?: number; increment?: number } +): ColorRamp { + let scale: Scale; + if (Array.isArray(color)) { + const [startColor, endColor] = color; + scale = chroma.scale([startColor, endColor]); + } else { + let hue = Math.round(chroma(color).hsl()[0]); + let startColor = chroma.hsl(hue, 0.88, 0.96); + let endColor = chroma.hsl(hue, 0.68, 0.32); + scale = chroma + .scale([startColor, color, endColor]) + .domain([0, 0.5, 1]) + .mode("hsl") + .gamma(1) + .correctLightness(true) + .padding([0, 0.15]); + } + + const ramp: ColorRamp = {}; + const steps = options?.steps || 10; + const increment = options?.increment || 100; + + scale.colors(steps, "hex").forEach((color, ix) => { + const step = ix * increment; + ramp[step] = { + value: color, + step, + type: "color", + }; + }); + + return ramp; +} diff --git a/styles/package-lock.json b/styles/package-lock.json index 3abb465628bd5400de8fccf399c5e62025600ab1..7b8503bf720d572d64bb9179a78489beaa068cb4 100644 --- a/styles/package-lock.json +++ b/styles/package-lock.json @@ -9,9 +9,15 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "@types/chroma-js": "^2.1.3", "chroma-js": "^2.4.2" } }, + "node_modules/@types/chroma-js": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", + "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" + }, "node_modules/chroma-js": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", @@ -19,6 +25,11 @@ } }, "dependencies": { + "@types/chroma-js": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", + "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" + }, "chroma-js": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", diff --git a/styles/package.json b/styles/package.json index 92f0546c561f768847c081fca7465d28822798ff..c66da8718b6d4f2047cbc4e7580036946dab1fb8 100644 --- a/styles/package.json +++ b/styles/package.json @@ -9,6 +9,7 @@ "author": "", "license": "ISC", "dependencies": { + "@types/chroma-js": "^2.1.3", "chroma-js": "^2.4.2" } } diff --git a/styles/selector-modal.ts b/styles/selector-modal.ts index f7101c915138e61d6147f4f12e82e58310ae9637..ddba32683a976153eac6fc0f49f6a5df9a835a1f 100644 --- a/styles/selector-modal.ts +++ b/styles/selector-modal.ts @@ -1,7 +1,7 @@ import { backgroundColor, border, player, shadow, text } from "./components"; import Theme from "./theme"; -export function selectorModal(theme: Theme): Object { +export default function selectorModal(theme: Theme): Object { const item = { padding: { bottom: 4, diff --git a/styles/theme.ts b/styles/theme.ts index 5363a8c01c08697f90fa9a37ffba2c6d50305c5c..ddfa6414f49e5e94236f3c2d316896869f832986 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -1,3 +1,5 @@ +import { colorRamp } from "./lib"; + export type Color = string; export type Weight = | "thin" @@ -87,6 +89,50 @@ export default interface Theme { feature: { value: Color; }; + ok: { + value: Color; + }; + error: { + value: Color; + }; + warning: { + value: Color; + }; + info: { + value: Color; + }; + }; + iconColor: { + primary: { + value: Color; + }; + secondary: { + value: Color; + }; + muted: { + value: Color; + }; + placeholder: { + value: Color; + }; + active: { + value: Color; + }; + feature: { + value: Color; + }; + ok: { + value: Color; + }; + error: { + value: Color; + }; + warning: { + value: Color; + }; + info: { + value: Color; + }; }; syntax: { primary: SyntaxHighlightStyle; diff --git a/styles/workspace.ts b/styles/workspace.ts new file mode 100644 index 0000000000000000000000000000000000000000..5ecb3a378c8d1a5acedc5100203c9b9306e36dca --- /dev/null +++ b/styles/workspace.ts @@ -0,0 +1,133 @@ +import { backgroundColor, border, iconColor, text } from "./components"; +import Theme from "./theme"; + +export default function workspace(theme: Theme) { + const signInPrompt = { + ...text(theme, "sans", "secondary"), + size: 13, + underline: true, + padding: { + right: 8, + }, + }; + + const tab = { + height: 34, + iconClose: iconColor(theme, "secondary"), + iconCloseActive: iconColor(theme, "active"), + iconConflict: iconColor(theme, "warning"), + iconDirty: iconColor(theme, "info"), + iconWidth: 8, + spacing: 10, + text: text(theme, "mono", "secondary"), + border: border(theme, "primary", { + left: true, + bottom: true, + overlay: true, + }), + padding: { + left: 12, + right: 12, + }, + }; + + const activeTab = { + ...tab, + background: backgroundColor(theme, 300), + text: text(theme, "mono", "primary"), + border: { + ...tab.border, + bottom: false, + }, + }; + + const sidebarItem = { + height: "$workspace.tab.height", + iconColor: "$text.muted.color", + iconSize: 18, + }; + const sidebar = { + width: 30, + border: border(theme, "primary", { right: true }), + item: sidebarItem, + activeItem: { + ...sidebarItem, + iconColor: iconColor(theme, "primary"), + }, + resizeHandle: { + background: border(theme, "primary").color, + padding: { + left: 1, + }, + }, + }; + + return { + background: backgroundColor(theme, 500), + leaderBorderOpacity: 0.7, + leaderBorderWidth: 2.0, + tab, + activeTab, + leftSidebar: { + ...sidebar, + border: border(theme, "primary", { right: true }), + }, + rightSidebar: { + ...sidebar, + border: border(theme, "primary", { left: true }), + }, + paneDivider: { + color: border(theme, "primary").color, + width: 1, + }, + status_bar: { + height: 24, + itemSpacing: 8, + padding: { + left: 6, + right: 6, + }, + cursorPosition: text(theme, "sans", "muted"), + diagnosticMessage: text(theme, "sans", "muted"), + lspMessage: text(theme, "sans", "muted"), + }, + titlebar: { + avatarWidth: 18, + height: 32, + shareIconColor: iconColor(theme, "secondary"), + shareIconActiveColor: iconColor(theme, "active"), + title: text(theme, "sans", "primary"), + avatar: { + cornerRadius: 10, + border: { + color: "#00000088", + width: 1, + }, + }, + avatarRibbon: { + height: 3, + width: 12, + }, + border: border(theme, "primary", { bottom: true }), + signInPrompt, + hoveredSignInPrompt: { + ...signInPrompt, + ...text(theme, "mono", "active"), + }, + offlineIcon: { + color: iconColor(theme, "muted"), + width: 16, + padding: { + right: 4, + }, + }, + outdatedWarning: { + ...text(theme, "sans", "muted"), + size: 13, + }, + }, + toolbar: { + height: 44, + }, + }; +} From 89eb34209f539d9ca2138b1e9e0b4968b00ee89a Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Wed, 30 Mar 2022 17:59:35 -0600 Subject: [PATCH 05/71] Convert editor styles to TypeScript --- styles/app.ts | 201 +------------------------------------------ styles/components.ts | 4 +- styles/editor.ts | 143 ++++++++++++++++++++++++++++++ styles/theme.ts | 65 ++++++++++++++ 4 files changed, 214 insertions(+), 199 deletions(-) create mode 100644 styles/editor.ts diff --git a/styles/app.ts b/styles/app.ts index 4f40577ae9ada410e9cab6c76bfb950660b6b94b..a421da8f07dc854931d64268d84ae2cf9f4ec5e3 100644 --- a/styles/app.ts +++ b/styles/app.ts @@ -1,13 +1,15 @@ import { backgroundColor } from "./components"; import selectorModal from "./selector-modal"; import workspace from "./workspace"; +import editor from "./editor"; import Theme from "./theme"; export default function app(theme: Theme): Object { return { selector: selectorModal(theme), workspace: workspace(theme), - chat_panel: { + editor: editor(theme), + chatPanel: { extends: "$panel", channel_name: { extends: "$text.primary", @@ -169,203 +171,6 @@ export default function app(theme: Theme): Object { extends: "$contacts_panel.project", }, }, - editor: { - active_line_background: "$state.active_line", - background: backgroundColor(theme, 300), - code_actions_indicator: "$text.muted.color", - diff_background_deleted: "$state.deleted_line", - diff_background_inserted: "$state.inserted_line", - document_highlight_read_background: "#99999920", - document_highlight_write_background: "#99999916", - error_color: "$status.bad", - guest_selections: "$selection.guests", - gutter_background: backgroundColor(theme, 300), - gutter_padding_factor: 2.5, - highlighted_line_background: "$state.highlighted_line", - line_number: "$text.muted.color", - line_number_active: "$text.primary.color", - rename_fade: 0.6, - selection: "$selection.host", - text_color: "$text.secondary.color", - unnecessary_code_fade: 0.5, - autocomplete: { - background: "$surface.100", - corner_radius: 6, - padding: 6, - border: { - color: "$border.secondary", - width: 2, - }, - hovered_item: { - background: "$state.hover", - extends: "$editor.autocomplete.item", - }, - item: { - corner_radius: 6, - padding: { - bottom: 2, - left: 6, - right: 6, - top: 2, - }, - }, - margin: { - left: -14, - }, - match_highlight: { - color: "$editor.syntax.keyword.color", - weight: "$editor.syntax.keyword.weight", - }, - selected_item: { - background: "$state.selected", - extends: "$editor.autocomplete.item", - }, - }, - diagnostic_header: { - background: "$editor.background", - icon_width_factor: 1.5, - text_scale_factor: 0.857, - border: { - bottom: true, - color: "$border.secondary", - top: true, - width: 1, - }, - code: { - extends: "$text.muted", - size: 14, - margin: { - left: 10, - }, - }, - message: { - highlight_text: { - extends: "$text.primary", - size: 14, - weight: "bold", - }, - text: { - extends: "$text.secondary", - size: 14, - }, - }, - }, - diagnostic_path_header: { - background: "$state.active_line", - text_scale_factor: 0.857, - filename: { - extends: "$text.primary", - size: 14, - }, - path: { - extends: "$text.muted", - size: 14, - margin: { - left: 12, - }, - }, - }, - error_diagnostic: { - text_scale_factor: 0.857, - header: { - border: { - color: "$border.primary", - top: true, - width: 1, - }, - }, - message: { - highlight_text: { - color: "$status.bad", - extends: "$text.secondary", - size: 14, - weight: "bold", - }, - text: { - color: "$status.bad", - extends: "$text.secondary", - size: 14, - }, - }, - }, - hint_diagnostic: { - extends: "$editor.error_diagnostic", - message: { - highlight_text: { - color: "$status.info", - }, - text: { - color: "$status.info", - }, - }, - }, - information_diagnostic: { - extends: "$editor.error_diagnostic", - message: { - highlight_text: { - color: "$status.info", - }, - text: { - color: "$status.info", - }, - }, - }, - invalid_error_diagnostic: { - extends: "$editor.error_diagnostic", - message: { - highlight_text: { - color: "$text.muted.color", - }, - text: { - color: "$text.muted.color", - }, - }, - }, - invalid_hint_diagnostic: { - extends: "$editor.hint_diagnostic", - message: { - highlight_text: { - color: "$text.muted.color", - }, - text: { - color: "$text.muted.color", - }, - }, - }, - invalid_information_diagnostic: { - extends: "$editor.information_diagnostic", - message: { - highlight_text: { - color: "$text.muted.color", - }, - text: { - color: "$text.muted.color", - }, - }, - }, - invalid_warning_diagnostic: { - extends: "$editor.warning_diagnostic", - message: { - highlight_text: { - color: "$text.muted.color", - }, - text: { - color: "$text.muted.color", - }, - }, - }, - warning_diagnostic: { - extends: "$editor.error_diagnostic", - message: { - highlight_text: { - color: "$status.warn", - }, - text: { - color: "$status.warn", - }, - }, - }, - }, project_diagnostics: { background: backgroundColor(theme, 300), tab_icon_spacing: 4, diff --git a/styles/components.ts b/styles/components.ts index 9cc58046ffba77646dc07342b1485e0877305f69..14becaf2af30e94d4c6d3a0250b0e3f3aab52faf 100644 --- a/styles/components.ts +++ b/styles/components.ts @@ -3,10 +3,12 @@ import core from "./core"; import { Color } from "./lib"; import Theme, { BackgroundColor, Weight } from "./theme"; +export type TextColor = keyof Theme["textColor"]; + export function text( theme: Theme, fontFamily: keyof typeof core.fontFamily, - color: keyof Theme["textColor"], + color: TextColor, properties?: { size?: keyof typeof core["fontSize"]; weight?: Weight } ) { const sizeKey = properties.size || fontFamily === "sans" ? "sm" : "md"; diff --git a/styles/editor.ts b/styles/editor.ts new file mode 100644 index 0000000000000000000000000000000000000000..9edfdc4716bea35b4c7e3cf83967383b4f6a3850 --- /dev/null +++ b/styles/editor.ts @@ -0,0 +1,143 @@ +import { + backgroundColor, + border, + iconColor, + player, + text, + TextColor, +} from "./components"; +import Theme from "./theme"; + +export default function editor(theme: Theme) { + const autocompleteItem = { + cornerRadius: 6, + padding: { + bottom: 2, + left: 6, + right: 6, + top: 2, + }, + }; + + function diagnostic(theme: Theme, color: TextColor) { + return { + textScaleFactor: 0.857, + header: { + border: border(theme, "primary", { + top: true, + }), + }, + message: { + text: { + ...text(theme, "sans", color), + size: 14, + }, + highlightText: { + ...text(theme, "sans", color, { weight: "bold" }), + size: 14, + }, + }, + }; + } + + return { + textColor: theme.textColor.secondary.value, + background: backgroundColor(theme, 300), + activeLineBackground: theme.editor.line.active.value, + codeActionsIndicator: iconColor(theme, "secondary"), + diffBackgroundDeleted: backgroundColor(theme, "error"), + diffBackgroundInserted: backgroundColor(theme, "ok"), + documentHighlightReadBackground: theme.editor.highlight.occurrence.value, + documentHighlightWriteBackground: theme.editor.highlight.occurrence.value, + errorColor: theme.textColor.error, + gutterBackground: backgroundColor(theme, 300), + gutterPaddingFactor: 2.5, + highlightedLineBackground: theme.editor.line.highlighted.value, + lineNumber: theme.editor.gutter.primary.value, + lineNumberActive: theme.editor.gutter.active, + renameFade: 0.6, + unnecessaryCodeFade: 0.5, + selection: player(theme, 1).selection, + guestSelections: [ + player(theme, 2).selection, + player(theme, 3).selection, + player(theme, 4).selection, + player(theme, 5).selection, + player(theme, 6).selection, + player(theme, 7).selection, + player(theme, 8).selection, + ], + autocomplete: { + background: backgroundColor(theme, 100), + cornerRadius: 6, + padding: 6, + border: border(theme, "secondary"), + item: autocompleteItem, + hoveredItem: { + ...autocompleteItem, + background: backgroundColor(theme, 100, "hover"), + }, + margin: { + left: -14, + }, + matchHighlight: { + color: theme.syntax.keyword.color.value, + weight: theme.syntax.keyword.weight.value, + }, + selectedItem: { + ...autocompleteItem, + background: backgroundColor(theme, 100, "active"), + }, + }, + diagnosticHeader: { + background: theme.editor.background.value, + iconWidthFactor: 1.5, + textScaleFactor: 0.857, + border: border(theme, "secondary", { + bottom: true, + top: true, + }), + code: { + ...text(theme, "mono", "muted"), + size: 14, + margin: { + left: 10, + }, + }, + message: { + highlightText: { + ...text(theme, "sans", "primary"), + size: 14, + weight: "bold", + }, + text: { + ...text(theme, "sans", "secondary"), + size: 14, + }, + }, + }, + diagnosticPathHeader: { + background: theme.editor.line.active, + textScaleFactor: 0.857, + filename: { + ...text(theme, "mono", "primary"), + size: 14, + }, + path: { + ...text(theme, "mono", "muted"), + size: 14, + margin: { + left: 12, + }, + }, + }, + errorDiagnostic: diagnostic(theme, "error"), + warningDiagnostic: diagnostic(theme, "warning"), + informationDiagnostic: diagnostic(theme, "info"), + hintDiagnostic: diagnostic(theme, "info"), + invalidErrorDiagnostic: diagnostic(theme, "muted"), + invalidHintDiagnostic: diagnostic(theme, "muted"), + invalidInformationDiagnostic: diagnostic(theme, "muted"), + invalidWarningDiagnostic: diagnostic(theme, "muted"), + }; +} diff --git a/styles/theme.ts b/styles/theme.ts index ddfa6414f49e5e94236f3c2d316896869f832986..5220c962c9d2032d35b15e32d12547f92d4c4679 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -52,6 +52,10 @@ export default interface Theme { 100: BackgroundColor; 300: BackgroundColor; 500: BackgroundColor; + ok: BackgroundColor; + error: BackgroundColor; + warning: BackgroundColor; + info: BackgroundColor; }; borderColor: { primary: { @@ -134,6 +138,66 @@ export default interface Theme { value: Color; }; }; + editor: { + background: { + value: Color; + }; + indent_guide: { + value: Color; + }; + indent_guide_active: { + value: Color; + }; + line: { + active: { + value: Color; + }; + highlighted: { + value: Color; + }; + inserted: { + value: Color; + }; + deleted: { + value: Color; + }; + modified: { + value: Color; + }; + }; + highlight: { + selection: { + value: Color; + }; + occurrence: { + value: Color; + }; + activeOccurrence: { + value: Color; + }; + matchingBracket: { + value: Color; + }; + match: { + value: Color; + }; + activeMatch: { + value: Color; + }; + related: { + value: Color; + }; + }; + gutter: { + primary: { + value: Color; + }; + active: { + value: Color; + }; + }; + }; + syntax: { primary: SyntaxHighlightStyle; comment: SyntaxHighlightStyle; @@ -151,6 +215,7 @@ export default interface Theme { boolean: SyntaxHighlightStyle; predictive: SyntaxHighlightStyle; }; + player: { 1: Player; 2: Player; From 4a728bb3d32a3873a766190718ef258de0bdad89 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Wed, 30 Mar 2022 18:26:47 -0600 Subject: [PATCH 06/71] Convert project panel styles --- styles/app.ts | 180 +++++++++++++++++----------------------- styles/editor.ts | 38 +++------ styles/project-panel.ts | 32 +++++++ styles/theme.ts | 4 +- 4 files changed, 124 insertions(+), 130 deletions(-) create mode 100644 styles/project-panel.ts diff --git a/styles/app.ts b/styles/app.ts index a421da8f07dc854931d64268d84ae2cf9f4ec5e3..ae0f0717bb5dc13e20db348d36bdeb1d562e0885 100644 --- a/styles/app.ts +++ b/styles/app.ts @@ -1,46 +1,67 @@ -import { backgroundColor } from "./components"; +import { backgroundColor, text } from "./components"; import selectorModal from "./selector-modal"; import workspace from "./workspace"; import editor from "./editor"; import Theme from "./theme"; +import projectPanel from "./project-panel"; + +export const panel = { + padding: { top: 12, left: 12, bottom: 12, right: 12 }, +}; export default function app(theme: Theme): Object { return { selector: selectorModal(theme), workspace: workspace(theme), editor: editor(theme), + projectDiagnostics: { + background: backgroundColor(theme, 300), + tabIconSpacing: 4, + tabIconWidth: 13, + tabSummarySpacing: 10, + emptyMessage: { + ...text(theme, "sans", "primary", { size: "lg" }), + }, + statusBarItem: { + ...text(theme, "sans", "muted"), + margin: { + right: 10, + }, + }, + }, + projectPanel: projectPanel(theme), chatPanel: { extends: "$panel", - channel_name: { + channelName: { extends: "$text.primary", weight: "bold", }, - channel_name_hash: { + channelNameHash: { text: "$text.muted", padding: { right: 8, }, }, - channel_select: { - active_item: { - extends: "$chat_panel.channel_select.item", + channelSelect: { + activeItem: { + extends: "$chatPanel.channel_select.item", name: "$text.primary", }, header: { - extends: "$chat_panel.channel_select.active_item", + extends: "$chat_panel.channel_select.activeItem", padding: { bottom: 4, left: 0, }, }, - hovered_active_item: { - extends: "$chat_panel.channel_select.hovered_item", + hoveredActiveItem: { + extends: "$chatPanel.channelSelect.hoveredItem", name: "$text.primary", }, - hovered_item: { + hoveredItem: { background: "$state.hover", - corner_radius: 6, - extends: "$chat_panel.channel_select.item", + cornerRadius: 6, + extends: "$chat_panel.channelSelect.item", }, item: { name: "$text.secondary", @@ -54,7 +75,7 @@ export default function app(theme: Theme): Object { }, menu: { background: "$surface.500", - corner_radius: 6, + cornerRadius: 6, padding: 4, border: { color: "$border.primary", @@ -67,14 +88,14 @@ export default function app(theme: Theme): Object { }, }, }, - hovered_sign_in_prompt: { + hoveredSignInPrompt: { color: "$text.secondary.color", - extends: "$chat_panel.sign_in_prompt", + extends: "$chatPanel.signInPrompt", }, - input_editor: { + inputEditor: { background: backgroundColor(theme, 300), - corner_radius: 6, - placeholder_text: "$text.muted", + cornerRadius: 6, + placeholderText: "$text.muted", selection: "$selection.host", text: "$text.primary", border: { @@ -102,8 +123,8 @@ export default function app(theme: Theme): Object { }, }, }, - pending_message: { - extends: "$chat_panel.message", + pendingMessage: { + extends: "$chatPanel.message", body: { color: "$text.muted.color", }, @@ -114,41 +135,41 @@ export default function app(theme: Theme): Object { color: "$text.muted.color", }, }, - sign_in_prompt: { + signInPrompt: { extends: "$text.primary", underline: true, }, }, - contacts_panel: { + contactsPanel: { extends: "$panel", - host_row_height: 28, - tree_branch_color: "$surface.100", - tree_branch_width: 1, - host_avatar: { - corner_radius: 10, + hostRowHeight: 28, + treeBranchColor: "$surface.100", + treeBranchWidth: 1, + hostAvatar: { + cornerRadius: 10, width: 18, }, - host_username: { + hostUsername: { extends: "$text.primary", padding: { left: 8, }, }, - hovered_shared_project: { + hoveredSharedProject: { background: "$state.hover", - corner_radius: 6, - extends: "$contacts_panel.shared_project", + cornerRadius: 6, + extends: "$contacts_panel.sharedProject", }, - hovered_unshared_project: { + hoveredUnsharedProject: { background: "$state.hover", - corner_radius: 6, - extends: "$contacts_panel.unshared_project", + cornerRadius: 6, + extends: "$contacts_panel.unsharedProject", }, project: { - guest_avatar_spacing: 4, + guestAvatarSpacing: 4, height: 24, - guest_avatar: { - corner_radius: 8, + guestAvatar: { + cornerRadius: 8, width: 14, }, name: { @@ -161,79 +182,34 @@ export default function app(theme: Theme): Object { left: 8, }, }, - shared_project: { - extends: "$contacts_panel.project", + sharedProject: { + extends: "$contactsPanel.project", name: { color: "$text.primary.color", }, }, - unshared_project: { - extends: "$contacts_panel.project", - }, - }, - project_diagnostics: { - background: backgroundColor(theme, 300), - tab_icon_spacing: 4, - tab_icon_width: 13, - tab_summary_spacing: 10, - empty_message: { - extends: "$text.primary", - size: 18, - }, - status_bar_item: { - extends: "$text.muted", - margin: { - right: 10, - }, - }, - }, - project_panel: { - extends: "$panel", - entry: { - height: 22, - icon_color: "$text.muted.color", - icon_size: 8, - icon_spacing: 8, - text: "$text.secondary", - }, - hovered_entry: { - background: "$state.hover", - extends: "$project_panel.entry", - }, - hovered_selected_entry: { - extends: "$project_panel.hovered_entry", - text: { - extends: "$text.primary", - }, - }, - padding: { - top: 6, - }, - selected_entry: { - extends: "$project_panel.entry", - text: { - extends: "$text.primary", - }, + unsharedProject: { + extends: "$contactsPanel.project", }, }, search: { background: backgroundColor(theme, 300), - match_background: "$state.highlighted_line", - tab_icon_spacing: 4, - tab_icon_width: 14, - active_hovered_option_button: { + matchBackground: "$state.highlightedLine", + tabIconSpacing: 4, + tabIconWidth: 14, + activeHoveredOptionButton: { background: "$surface.100", extends: "$search.option_button", }, - active_option_button: { + activeOptionButton: { background: "$surface.100", extends: "$search.option_button", }, editor: { background: "$surface.500", - corner_radius: 6, - max_width: 400, - placeholder_text: "$text.muted", + cornerRadius: 6, + maxWidth: 400, + placeholderText: "$text.muted", selection: "$selection.host", text: "$text.primary", border: { @@ -253,24 +229,24 @@ export default function app(theme: Theme): Object { top: 3, }, }, - hovered_option_button: { + hoveredOptionButton: { background: "$surface.100", - extends: "$search.option_button", + extends: "$search.optionButton", }, - invalid_editor: { + invalidEditor: { extends: "$search.editor", border: { color: "$status.bad", width: 1, }, }, - match_index: { + matchIndex: { extends: "$text.secondary", padding: 6, }, - option_button: { + optionButton: { background: backgroundColor(theme, 300), - corner_radius: 6, + cornerRadius: 6, extends: "$text.secondary", border: { color: "$border.primary", @@ -287,13 +263,13 @@ export default function app(theme: Theme): Object { top: 1, }, }, - option_button_group: { + optionButtonGroup: { padding: { left: 2, right: 2, }, }, - results_status: { + resultsStatus: { extends: "$text.primary", size: 18, }, diff --git a/styles/editor.ts b/styles/editor.ts index 9edfdc4716bea35b4c7e3cf83967383b4f6a3850..ea7012d2092ebd0d7df324762f4703693b32a89d 100644 --- a/styles/editor.ts +++ b/styles/editor.ts @@ -28,14 +28,11 @@ export default function editor(theme: Theme) { }), }, message: { - text: { - ...text(theme, "sans", color), - size: 14, - }, - highlightText: { - ...text(theme, "sans", color, { weight: "bold" }), - size: 14, - }, + text: text(theme, "sans", color, { size: "sm" }), + highlightText: text(theme, "sans", color, { + size: "sm", + weight: "bold", + }), }, }; } @@ -75,7 +72,7 @@ export default function editor(theme: Theme) { item: autocompleteItem, hoveredItem: { ...autocompleteItem, - background: backgroundColor(theme, 100, "hover"), + background: backgroundColor(theme, 100, "hovered"), }, margin: { left: -14, @@ -98,34 +95,25 @@ export default function editor(theme: Theme) { top: true, }), code: { - ...text(theme, "mono", "muted"), - size: 14, + ...text(theme, "mono", "muted", { size: "sm" }), margin: { left: 10, }, }, message: { - highlightText: { - ...text(theme, "sans", "primary"), - size: 14, + highlightText: text(theme, "sans", "primary", { + size: "sm", weight: "bold", - }, - text: { - ...text(theme, "sans", "secondary"), - size: 14, - }, + }), + text: text(theme, "sans", "secondary", { size: "sm" }), }, }, diagnosticPathHeader: { background: theme.editor.line.active, textScaleFactor: 0.857, - filename: { - ...text(theme, "mono", "primary"), - size: 14, - }, + filename: text(theme, "mono", "primary", { size: "sm" }), path: { - ...text(theme, "mono", "muted"), - size: 14, + ...text(theme, "mono", "muted", { size: "sm" }), margin: { left: 12, }, diff --git a/styles/project-panel.ts b/styles/project-panel.ts new file mode 100644 index 0000000000000000000000000000000000000000..343e11b96b6e8adb3c6bd223a71de3e6d7d05f40 --- /dev/null +++ b/styles/project-panel.ts @@ -0,0 +1,32 @@ +import { panel } from "./app"; +import { backgroundColor, iconColor, text, TextColor } from "./components"; +import Theme from "./theme"; +import { Color } from "./lib"; + +export default function projectPanel(theme: Theme) { + function entry(theme: Theme, textColor: TextColor, background?: Color) { + return { + height: 22, + background, + iconColor: iconColor(theme, "muted"), + iconSize: 8, + iconSpacing: 8, + text: text(theme, "mono", textColor), + }; + } + + return { + ...panel, + entry: entry(theme, "secondary"), + hoveredEntry: entry( + theme, + "secondary", + backgroundColor(theme, 300, "hovered") + ), + selectedEntry: entry(theme, "primary"), + hoveredSelectedEntry: entry(theme, "primary", "hovered"), + padding: { + top: 6, + }, + }; +} diff --git a/styles/theme.ts b/styles/theme.ts index 5220c962c9d2032d35b15e32d12547f92d4c4679..27f578f4366bacae8fdc5d4dc366375532e7f2b8 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -1,5 +1,3 @@ -import { colorRamp } from "./lib"; - export type Color = string; export type Weight = | "thin" @@ -36,7 +34,7 @@ export interface BackgroundColor { base: { value: Color; }; - hover: { + hovered: { value: Color; }; active: { From b8118ee50e71f5c59bdf5913daa55ee7bde7c487 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Wed, 30 Mar 2022 18:45:34 -0600 Subject: [PATCH 07/71] Convert chat panel --- styles/app.ts | 112 +------------------------------------------ styles/chat-panel.ts | 108 +++++++++++++++++++++++++++++++++++++++++ styles/components.ts | 8 +++- 3 files changed, 116 insertions(+), 112 deletions(-) create mode 100644 styles/chat-panel.ts diff --git a/styles/app.ts b/styles/app.ts index ae0f0717bb5dc13e20db348d36bdeb1d562e0885..5f2993d30a68cad4410992387bf65a6d76c72a34 100644 --- a/styles/app.ts +++ b/styles/app.ts @@ -4,6 +4,7 @@ import workspace from "./workspace"; import editor from "./editor"; import Theme from "./theme"; import projectPanel from "./project-panel"; +import chatPanel from "./chat-panel"; export const panel = { padding: { top: 12, left: 12, bottom: 12, right: 12 }, @@ -30,116 +31,7 @@ export default function app(theme: Theme): Object { }, }, projectPanel: projectPanel(theme), - chatPanel: { - extends: "$panel", - channelName: { - extends: "$text.primary", - weight: "bold", - }, - channelNameHash: { - text: "$text.muted", - padding: { - right: 8, - }, - }, - channelSelect: { - activeItem: { - extends: "$chatPanel.channel_select.item", - name: "$text.primary", - }, - header: { - extends: "$chat_panel.channel_select.activeItem", - padding: { - bottom: 4, - left: 0, - }, - }, - hoveredActiveItem: { - extends: "$chatPanel.channelSelect.hoveredItem", - name: "$text.primary", - }, - hoveredItem: { - background: "$state.hover", - cornerRadius: 6, - extends: "$chat_panel.channelSelect.item", - }, - item: { - name: "$text.secondary", - padding: 4, - hash: { - extends: "$text.muted", - margin: { - right: 8, - }, - }, - }, - menu: { - background: "$surface.500", - cornerRadius: 6, - padding: 4, - border: { - color: "$border.primary", - width: 1, - }, - shadow: { - blur: 16, - color: "$shadow.0", - offset: [0, 2], - }, - }, - }, - hoveredSignInPrompt: { - color: "$text.secondary.color", - extends: "$chatPanel.signInPrompt", - }, - inputEditor: { - background: backgroundColor(theme, 300), - cornerRadius: 6, - placeholderText: "$text.muted", - selection: "$selection.host", - text: "$text.primary", - border: { - color: "$border.primary", - width: 1, - }, - padding: { - bottom: 7, - left: 8, - right: 8, - top: 7, - }, - }, - message: { - body: "$text.secondary", - timestamp: "$text.muted", - padding: { - bottom: 6, - }, - sender: { - extends: "$text.primary", - weight: "bold", - margin: { - right: 8, - }, - }, - }, - pendingMessage: { - extends: "$chatPanel.message", - body: { - color: "$text.muted.color", - }, - sender: { - color: "$text.muted.color", - }, - timestamp: { - color: "$text.muted.color", - }, - }, - signInPrompt: { - extends: "$text.primary", - underline: true, - }, - }, + chatPanel: chatPanel(theme), contactsPanel: { extends: "$panel", hostRowHeight: 28, diff --git a/styles/chat-panel.ts b/styles/chat-panel.ts new file mode 100644 index 0000000000000000000000000000000000000000..c6bf0148ea4c5d9345c29d5df94c978588e4fd0d --- /dev/null +++ b/styles/chat-panel.ts @@ -0,0 +1,108 @@ +import { panel } from "./app"; +import { + backgroundColor, + border, + player, + shadow, + text, + TextColor, +} from "./components"; +import Theme from "./theme"; + +export default function chatPanel(theme: Theme) { + function channelSelectItem( + theme: Theme, + textColor: TextColor, + hovered: boolean + ) { + return { + name: text(theme, "sans", textColor), + padding: 4, + hash: { + ...text(theme, "sans", "muted"), + margin: { + right: 8, + }, + }, + background: hovered ? backgroundColor(theme, 300, "hovered") : undefined, + cornerRadius: hovered ? 6 : 0, + }; + } + + const message = { + body: text(theme, "sans", "secondary"), + timestamp: text(theme, "sans", "muted"), + padding: { + bottom: 6, + }, + sender: { + ...text(theme, "sans", "primary", { weight: "bold" }), + margin: { + right: 8, + }, + }, + }; + + return { + ...panel, + channelName: text(theme, "sans", "primary", { weight: "bold" }), + channelNameHash: { + ...text(theme, "sans", "muted"), + padding: { + right: 8, + }, + }, + channelSelect: { + header: { + ...channelSelectItem(theme, "primary", false), + padding: { + bottom: 4, + left: 0, + }, + }, + item: channelSelectItem(theme, "secondary", false), + hoveredItem: channelSelectItem(theme, "secondary", true), + activeItem: channelSelectItem(theme, "primary", false), + hoveredActiveItem: channelSelectItem(theme, "primary", true), + menu: { + background: backgroundColor(theme, 500), + cornerRadius: 6, + padding: 4, + border: border(theme, "primary"), + shadow: shadow(theme), + }, + }, + signInPrompt: text(theme, "sans", "secondary", { underline: true }), + hoveredSignInPrompt: text(theme, "sans", "primary", { underline: true }), + message, + pendingMessage: { + ...message, + body: { + ...message.body, + color: theme.textColor.muted.value, + }, + sender: { + ...message.sender, + color: theme.textColor.muted.value, + }, + timestamp: { + ...message.timestamp, + color: theme.textColor.muted.value, + }, + }, + inputEditor: { + background: backgroundColor(theme, 300), + cornerRadius: 6, + text: text(theme, "mono", "primary"), + placeholderText: text(theme, "mono", "muted"), + selection: player(theme, 1).selection, + border: border(theme, "primary"), + padding: { + bottom: 7, + left: 8, + right: 8, + top: 7, + }, + }, + }; +} diff --git a/styles/components.ts b/styles/components.ts index 14becaf2af30e94d4c6d3a0250b0e3f3aab52faf..28d883927bb8f7d6f333a1cf8e45c1149910ba63 100644 --- a/styles/components.ts +++ b/styles/components.ts @@ -9,7 +9,11 @@ export function text( theme: Theme, fontFamily: keyof typeof core.fontFamily, color: TextColor, - properties?: { size?: keyof typeof core["fontSize"]; weight?: Weight } + properties?: { + size?: keyof typeof core["fontSize"]; + weight?: Weight; + underline?: boolean; + } ) { const sizeKey = properties.size || fontFamily === "sans" ? "sm" : "md"; const size = core.fontSize[sizeKey].value; @@ -74,7 +78,7 @@ export function backgroundColor( return theme.backgroundColor[name][state || "base"].value; } -export function shadow(theme) { +export function shadow(theme: Theme) { return { blur: 16, color: chroma("black").alpha(theme.shadowAlpha.value).hex(), From c6c6cc591ab48ac46d25b28ac4994e616b65a76a Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 31 Mar 2022 01:38:18 -0400 Subject: [PATCH 08/71] Update app.ts, editor.ts --- styles/app.ts | 63 +++++++++++++++++++------------------------- styles/components.ts | 4 +++ styles/editor.ts | 4 +-- styles/theme.ts | 12 +++++++++ styles/workspace.ts | 4 +-- 5 files changed, 47 insertions(+), 40 deletions(-) diff --git a/styles/app.ts b/styles/app.ts index 5f2993d30a68cad4410992387bf65a6d76c72a34..11e476baf73ec97e010288edcad2ce730299833b 100644 --- a/styles/app.ts +++ b/styles/app.ts @@ -1,10 +1,10 @@ -import { backgroundColor, text } from "./components"; -import selectorModal from "./selector-modal"; -import workspace from "./workspace"; +import chatPanel from "./chat-panel"; +import { backgroundColor, border, borderColor, player, text } from "./components"; import editor from "./editor"; -import Theme from "./theme"; import projectPanel from "./project-panel"; -import chatPanel from "./chat-panel"; +import selectorModal from "./selector-modal"; +import Theme from "./theme"; +import workspace from "./workspace"; export const panel = { padding: { top: 12, left: 12, bottom: 12, right: 12 }, @@ -35,27 +35,27 @@ export default function app(theme: Theme): Object { contactsPanel: { extends: "$panel", hostRowHeight: 28, - treeBranchColor: "$surface.100", + treeBranchColor: borderColor(theme, "muted"), treeBranchWidth: 1, hostAvatar: { cornerRadius: 10, width: 18, }, hostUsername: { - extends: "$text.primary", + ...text(theme, "mono", "muted"), padding: { left: 8, }, }, hoveredSharedProject: { - background: "$state.hover", - cornerRadius: 6, extends: "$contacts_panel.sharedProject", + background: theme.editor.line.active.value, + cornerRadius: 6, }, hoveredUnsharedProject: { - background: "$state.hover", - cornerRadius: 6, extends: "$contacts_panel.unsharedProject", + background: theme.editor.line.active.value, + cornerRadius: 6, }, project: { guestAvatarSpacing: 4, @@ -65,7 +65,7 @@ export default function app(theme: Theme): Object { width: 14, }, name: { - extends: "$text.secondary", + extends: text(theme, "mono", "secondary"), margin: { right: 6, }, @@ -77,7 +77,7 @@ export default function app(theme: Theme): Object { sharedProject: { extends: "$contactsPanel.project", name: { - color: "$text.primary.color", + color: text(theme, "mono", "primary"), }, }, unsharedProject: { @@ -86,28 +86,25 @@ export default function app(theme: Theme): Object { }, search: { background: backgroundColor(theme, 300), - matchBackground: "$state.highlightedLine", + matchBackground: theme.editor.highlight.match, tabIconSpacing: 4, tabIconWidth: 14, activeHoveredOptionButton: { - background: "$surface.100", extends: "$search.option_button", + background: backgroundColor(theme, 100), }, activeOptionButton: { - background: "$surface.100", extends: "$search.option_button", + background: backgroundColor(theme, 100), }, editor: { - background: "$surface.500", + background: backgroundColor(theme, 500), cornerRadius: 6, maxWidth: 400, - placeholderText: "$text.muted", - selection: "$selection.host", - text: "$text.primary", - border: { - color: "$border.primary", - width: 1, - }, + placeholderText: text(theme, "mono", "placeholder"), + selection: player(theme, 1).selection, + text: text(theme, "mono", "primary"), + border: border(theme, "primary"), margin: { bottom: 5, left: 5, @@ -122,28 +119,22 @@ export default function app(theme: Theme): Object { }, }, hoveredOptionButton: { - background: "$surface.100", extends: "$search.optionButton", + background: backgroundColor(theme, 100), }, invalidEditor: { extends: "$search.editor", - border: { - color: "$status.bad", - width: 1, - }, + border: border(theme, "error"), }, matchIndex: { - extends: "$text.secondary", + ...text(theme, "mono", "secondary"), padding: 6, }, optionButton: { + ...text(theme, "mono", "secondary"), background: backgroundColor(theme, 300), cornerRadius: 6, - extends: "$text.secondary", - border: { - color: "$border.primary", - width: 1, - }, + border: border(theme, "primary"), margin: { left: 1, right: 1, @@ -162,7 +153,7 @@ export default function app(theme: Theme): Object { }, }, resultsStatus: { - extends: "$text.primary", + ...text(theme, "mono", "primary"), size: 18, }, }, diff --git a/styles/components.ts b/styles/components.ts index 28d883927bb8f7d6f333a1cf8e45c1149910ba63..c8b2f87638a004365596f0ec11bab644580ed255 100644 --- a/styles/components.ts +++ b/styles/components.ts @@ -47,6 +47,10 @@ export function border( }; } +export function borderColor(theme: Theme, color: keyof Theme["borderColor"]) { + return theme.borderColor[color].value; +} + export function iconColor(theme: Theme, color: keyof Theme["iconColor"]) { return theme.iconColor[color].value; } diff --git a/styles/editor.ts b/styles/editor.ts index ea7012d2092ebd0d7df324762f4703693b32a89d..a27464eee2182ecfb0633623ff4e773cfb85b35d 100644 --- a/styles/editor.ts +++ b/styles/editor.ts @@ -4,7 +4,7 @@ import { iconColor, player, text, - TextColor, + TextColor } from "./components"; import Theme from "./theme"; @@ -89,7 +89,7 @@ export default function editor(theme: Theme) { diagnosticHeader: { background: theme.editor.background.value, iconWidthFactor: 1.5, - textScaleFactor: 0.857, + textScaleFactor: 0.857, // NateQ: Will we need dynamic sizing for text? If so let's create tokens for these. border: border(theme, "secondary", { bottom: true, top: true, diff --git a/styles/theme.ts b/styles/theme.ts index 27f578f4366bacae8fdc5d4dc366375532e7f2b8..9d297d552d38b21154a77b2eed22d49a1ce2a247 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -71,6 +71,18 @@ export default interface Theme { active: { value: Color; }; + ok: { + value: Color; + }; + error: { + value: Color; + }; + warning: { + value: Color; + }; + info: { + value: Color; + }; }; textColor: { primary: { diff --git a/styles/workspace.ts b/styles/workspace.ts index 5ecb3a378c8d1a5acedc5100203c9b9306e36dca..1a50fe9ee1c248de6d48a9521efa9f9cc8f82fbb 100644 --- a/styles/workspace.ts +++ b/styles/workspace.ts @@ -42,8 +42,8 @@ export default function workspace(theme: Theme) { }; const sidebarItem = { - height: "$workspace.tab.height", - iconColor: "$text.muted.color", + height: 32, + iconColor: iconColor(theme, "secondary"), iconSize: 18, }; const sidebar = { From fb41ad325c2b2294e18439dbe42f4473799e88e5 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 31 Mar 2022 11:27:02 -0400 Subject: [PATCH 09/71] Extract `search` from `app` - Also update border to use borderColor( ) --- styles/app.ts | 79 +++---------------------------------------- styles/components.ts | 2 +- styles/search.ts | 80 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 76 deletions(-) create mode 100644 styles/search.ts diff --git a/styles/app.ts b/styles/app.ts index 11e476baf73ec97e010288edcad2ce730299833b..a65442db0737630f77d1de92d921d934ed4a8804 100644 --- a/styles/app.ts +++ b/styles/app.ts @@ -1,7 +1,8 @@ import chatPanel from "./chat-panel"; -import { backgroundColor, border, borderColor, player, text } from "./components"; +import { backgroundColor, borderColor, text } from "./components"; import editor from "./editor"; import projectPanel from "./project-panel"; +import search from "./search"; import selectorModal from "./selector-modal"; import Theme from "./theme"; import workspace from "./workspace"; @@ -33,7 +34,7 @@ export default function app(theme: Theme): Object { projectPanel: projectPanel(theme), chatPanel: chatPanel(theme), contactsPanel: { - extends: "$panel", + ...panel, hostRowHeight: 28, treeBranchColor: borderColor(theme, "muted"), treeBranchWidth: 1, @@ -84,78 +85,6 @@ export default function app(theme: Theme): Object { extends: "$contactsPanel.project", }, }, - search: { - background: backgroundColor(theme, 300), - matchBackground: theme.editor.highlight.match, - tabIconSpacing: 4, - tabIconWidth: 14, - activeHoveredOptionButton: { - extends: "$search.option_button", - background: backgroundColor(theme, 100), - }, - activeOptionButton: { - extends: "$search.option_button", - background: backgroundColor(theme, 100), - }, - editor: { - background: backgroundColor(theme, 500), - cornerRadius: 6, - maxWidth: 400, - placeholderText: text(theme, "mono", "placeholder"), - selection: player(theme, 1).selection, - text: text(theme, "mono", "primary"), - border: border(theme, "primary"), - margin: { - bottom: 5, - left: 5, - right: 5, - top: 5, - }, - padding: { - bottom: 3, - left: 13, - right: 13, - top: 3, - }, - }, - hoveredOptionButton: { - extends: "$search.optionButton", - background: backgroundColor(theme, 100), - }, - invalidEditor: { - extends: "$search.editor", - border: border(theme, "error"), - }, - matchIndex: { - ...text(theme, "mono", "secondary"), - padding: 6, - }, - optionButton: { - ...text(theme, "mono", "secondary"), - background: backgroundColor(theme, 300), - cornerRadius: 6, - border: border(theme, "primary"), - margin: { - left: 1, - right: 1, - }, - padding: { - bottom: 1, - left: 6, - right: 6, - top: 1, - }, - }, - optionButtonGroup: { - padding: { - left: 2, - right: 2, - }, - }, - resultsStatus: { - ...text(theme, "mono", "primary"), - size: 18, - }, - }, + search: search(theme), }; } diff --git a/styles/components.ts b/styles/components.ts index c8b2f87638a004365596f0ec11bab644580ed255..590c1b5eea9f6779dee0c2697a781d36b3edee60 100644 --- a/styles/components.ts +++ b/styles/components.ts @@ -41,7 +41,7 @@ export function border( options?: BorderOptions ) { return { - color: theme.borderColor[color].value, + color: borderColor(theme, color), width: 1, ...options, }; diff --git a/styles/search.ts b/styles/search.ts new file mode 100644 index 0000000000000000000000000000000000000000..ced2266ea73480da11f880d4c56b4a65aa83f12c --- /dev/null +++ b/styles/search.ts @@ -0,0 +1,80 @@ +import { backgroundColor, border, player, text } from "./components"; +import Theme from "./theme"; + +export default function search(theme: Theme) { + const optionButton = { + ...text(theme, "mono", "secondary"), + background: backgroundColor(theme, 300), + cornerRadius: 6, + border: border(theme, "primary"), + margin: { + left: 1, + right: 1, + }, + padding: { + bottom: 1, + left: 6, + right: 6, + top: 1, + }, + }; + + return { + background: backgroundColor(theme, 300), + matchBackground: theme.editor.highlight.match, + tabIconSpacing: 4, + tabIconWidth: 14, + activeHoveredOptionButton: { + ...optionButton, + background: backgroundColor(theme, 100), + }, + activeOptionButton: { + ...optionButton, + background: backgroundColor(theme, 100), + }, + editor: { + background: backgroundColor(theme, 500), + cornerRadius: 6, + maxWidth: 400, + placeholderText: text(theme, "mono", "placeholder"), + selection: player(theme, 1).selection, + text: text(theme, "mono", "primary"), + border: border(theme, "primary"), + margin: { + bottom: 5, + left: 5, + right: 5, + top: 5, + }, + padding: { + bottom: 3, + left: 13, + right: 13, + top: 3, + }, + }, + hoveredOptionButton: { + ...optionButton, + background: backgroundColor(theme, 100), + }, + invalidEditor: { + extends: "$search.editor", + border: border(theme, "error"), + }, + matchIndex: { + ...text(theme, "mono", "secondary"), + padding: 6, + }, + optionButton, + optionButtonGroup: { + padding: { + left: 2, + right: 2, + }, + }, + resultsStatus: { + ...text(theme, "mono", "primary"), + size: 18, + }, + }; +} From 0b690ac0b47d13da7da528cf52b0de91f46e7fe6 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 31 Mar 2022 19:10:44 -0400 Subject: [PATCH 10/71] WIP: Scaffold tokens in dark.ts, no real values yet. --- styles/dark.ts | 438 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 438 insertions(+) create mode 100644 styles/dark.ts diff --git a/styles/dark.ts b/styles/dark.ts new file mode 100644 index 0000000000000000000000000000000000000000..019f50e40cec8ede5e62d2db37e97e691fbce8d6 --- /dev/null +++ b/styles/dark.ts @@ -0,0 +1,438 @@ +import Theme from "./theme"; + +export default function dark(): Theme { + return { + backgroundColor: { + 100: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + 300: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + 500: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + ok: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + error: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + warning: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + info: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + }, + borderColor: { + primary: { + value: "#000000", + }, + secondary: { + value: "#000000", + }, + muted: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + active: { + value: "#000000", + }, + ok: { + value: "#000000", + }, + error: { + value: "#000000", + }, + warning: { + value: "#000000", + }, + info: { + value: "#000000", + }, + }, + textColor: { + primary: { + value: "#000000", + }, + secondary: { + value: "#000000", + }, + muted: { + value: "#000000", + }, + placeholder: { + value: "#000000", + }, + active: { + value: "#000000", + }, + feature: { + value: "#000000", + }, + ok: { + value: "#000000", + }, + error: { + value: "#000000", + }, + warning: { + value: "#000000", + }, + info: { + value: "#000000", + }, + }, + iconColor: { + primary: { + value: "#000000", + }, + secondary: { + value: "#000000", + }, + muted: { + value: "#000000", + }, + placeholder: { + value: "#000000", + }, + active: { + value: "#000000", + }, + feature: { + value: "#000000", + }, + ok: { + value: "#000000", + }, + error: { + value: "#000000", + }, + warning: { + value: "#000000", + }, + info: { + value: "#000000", + }, + }, + editor: { + background: { + value: "#000000", + }, + indent_guide: { + value: "#000000", + }, + indent_guide_active: { + value: "#000000", + }, + line: { + active: { + value: "#000000", + }, + highlighted: { + value: "#000000", + }, + inserted: { + value: "#000000", + }, + deleted: { + value: "#000000", + }, + modified: { + value: "#000000", + }, + }, + highlight: { + selection: { + value: "#000000", + }, + occurrence: { + value: "#000000", + }, + activeOccurrence: { + value: "#000000", + }, + matchingBracket: { + value: "#000000", + }, + match: { + value: "#000000", + }, + activeMatch: { + value: "#000000", + }, + related: { + value: "#000000", + }, + }, + gutter: { + primary: { + value: "#000000", + }, + active: { + value: "#000000", + }, + }, + }, + + syntax: { + primary: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + comment: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + punctuation: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + constant: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + keyword: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + function: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + type: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + variant: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + property: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + enum: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + operator: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + string: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + number: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + boolean: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + predictive: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + }, + player: { + 1: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + 2: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + 3: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + 4: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + 5: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + 6: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + 7: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + 8: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + }, + shadowAlpha: { + value: 0.32, + }, + }; +} \ No newline at end of file From b4087b115bc67248eefd4e216f450f332fc8356c Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 31 Mar 2022 20:32:47 -0400 Subject: [PATCH 11/71] WIP for keith --- styles/dark.ts | 880 +++++++++++++++++++++++++------------------------ 1 file changed, 449 insertions(+), 431 deletions(-) diff --git a/styles/dark.ts b/styles/dark.ts index 019f50e40cec8ede5e62d2db37e97e691fbce8d6..efd2d3b8a49b1b43c53b8ee782d13615c0f3e0d2 100644 --- a/styles/dark.ts +++ b/styles/dark.ts @@ -1,438 +1,456 @@ +import core from "./core"; import Theme from "./theme"; -export default function dark(): Theme { - return { - backgroundColor: { - 100: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - }, - 300: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - }, - 500: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - }, - ok: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - }, - error: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - }, - warning: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - }, - info: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - }, +const backgroundColor = { + 100: { + base: { + value: core.color.neutral[999].value, }, - borderColor: { - primary: { - value: "#000000", - }, - secondary: { - value: "#000000", - }, - muted: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - active: { - value: "#000000", - }, - ok: { - value: "#000000", - }, - error: { - value: "#000000", - }, - warning: { - value: "#000000", - }, - info: { - value: "#000000", - }, - }, - textColor: { - primary: { - value: "#000000", - }, - secondary: { - value: "#000000", - }, - muted: { - value: "#000000", - }, - placeholder: { - value: "#000000", - }, - active: { - value: "#000000", - }, - feature: { - value: "#000000", - }, - ok: { - value: "#000000", - }, - error: { - value: "#000000", - }, - warning: { - value: "#000000", - }, - info: { - value: "#000000", - }, - }, - iconColor: { - primary: { - value: "#000000", - }, - secondary: { - value: "#000000", - }, - muted: { - value: "#000000", - }, - placeholder: { - value: "#000000", - }, - active: { - value: "#000000", - }, - feature: { - value: "#000000", - }, - ok: { - value: "#000000", - }, - error: { - value: "#000000", - }, - warning: { - value: "#000000", - }, - info: { - value: "#000000", - }, - }, - editor: { - background: { - value: "#000000", - }, - indent_guide: { - value: "#000000", - }, - indent_guide_active: { - value: "#000000", - }, - line: { - active: { - value: "#000000", - }, - highlighted: { - value: "#000000", - }, - inserted: { - value: "#000000", - }, - deleted: { - value: "#000000", - }, - modified: { - value: "#000000", - }, - }, - highlight: { - selection: { - value: "#000000", - }, - occurrence: { - value: "#000000", - }, - activeOccurrence: { - value: "#000000", - }, - matchingBracket: { - value: "#000000", - }, - match: { - value: "#000000", - }, - activeMatch: { - value: "#000000", - }, - related: { - value: "#000000", - }, - }, - gutter: { - primary: { - value: "#000000", - }, - active: { - value: "#000000", - }, - }, + hovered: { + value: core.color.neutral[999].value, + }, + active: { + value: core.color.neutral[999].value, + }, + focused: { + value: core.color.neutral[999].value, + }, + }, + 300: { + base: { + value: core.color.neutral[999].value, + }, + hovered: { + value: core.color.neutral[999].value, + }, + active: { + value: core.color.neutral[999].value, + }, + focused: { + value: core.color.neutral[999].value, + }, + }, + 500: { + base: { + value: core.color.neutral[999].value, + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + ok: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + error: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + warning: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + info: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, +}; - syntax: { - primary: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - comment: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - punctuation: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - constant: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - keyword: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - function: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - type: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - variant: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - property: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - enum: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - operator: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - string: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - number: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - boolean: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - predictive: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - }, - player: { - 1: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - 2: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - 3: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - 4: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - 5: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - 6: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - 7: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - 8: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - }, - shadowAlpha: { - value: 0.32, +const borderColor = { + primary: { + value: "#000000", + }, + secondary: { + value: "#000000", + }, + muted: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + active: { + value: "#000000", + }, + ok: { + value: "#000000", + }, + error: { + value: "#000000", + }, + warning: { + value: "#000000", + }, + info: { + value: "#000000", + }, +}; + +const textColor = { + primary: { + value: core.color.neutral[150].value, + }, + secondary: { + value: core.color.neutral[350].value, + }, + muted: { + value: core.color.neutral[550].value, + }, + placeholder: { + value: core.color.neutral[750].value, + }, + active: { + value: core.color.neutral[0].value, + }, + feature: { + //TODO: (design) define feature and it's correct value + value: core.color.sky[500].value, + }, + ok: { + value: core.color.green[600].value, + }, + error: { + value: core.color.red[400].value, + }, + warning: { + value: core.color.amber[300].value, + }, + info: { + value: core.color.blue[500].value, + }, +}; + +const iconColor = { + primary: { + value: core.color.neutral[300].value, + }, + secondary: { + value: core.color.neutral[500].value, + }, + muted: { + value: core.color.neutral[600].value, + }, + placeholder: { + value: core.color.neutral[700].value, + }, + active: { + value: core.color.neutral[50].value, + }, + feature: { + //TODO: (design) define feature and it's correct value + value: core.color.sky[500].value, + }, + ok: { + value: core.color.green[600].value, + }, + error: { + value: core.color.red[400].value, + }, + warning: { + value: core.color.amber[300].value, + }, + info: { + value: core.color.blue[500].value, + }, +}; + +const editor = { + background: { + value: backgroundColor[500].base.value, + }, + indent_guide: { + value: core.color.neutral[999].value, + }, + indent_guide_active: { + value: core.color.neutral[999].value, + }, + line: { + active: { + value: core.color.neutral[999].value, + }, + highlighted: { + value: core.color.neutral[999].value, + }, + inserted: { + value: core.color.neutral[999].value, + }, + deleted: { + value: core.color.neutral[999].value, }, + modified: { + value: core.color.neutral[999].value, + }, + }, + highlight: { + selection: { + value: core.color.neutral[999].value, + }, + occurrence: { + value: core.color.neutral[999].value, + }, + activeOccurrence: { + value: core.color.neutral[999].value, + }, + matchingBracket: { + value: core.color.neutral[999].value, + }, + match: { + value: core.color.neutral[999].value, + }, + activeMatch: { + value: core.color.neutral[999].value, + }, + related: { + value: core.color.neutral[999].value, + }, + }, + gutter: { + primary: { + value: core.color.neutral[999].value, + }, + active: { + value: core.color.neutral[999].value, + }, + }, +}; + +const syntax = { + primary: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + comment: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + punctuation: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + constant: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + keyword: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + function: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + type: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + variant: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + property: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + enum: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + operator: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + string: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + number: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + boolean: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + predictive: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, +}; + +const player = { + 1: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 2: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 3: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 4: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 5: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 6: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 7: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 8: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, +}; + +const shadowAlpha = { + value: 0.32, +}; + +export default function dark(): Theme { + return { + backgroundColor, + borderColor, + textColor, + iconColor, + editor, + syntax, + player, + shadowAlpha, }; -} \ No newline at end of file +} From e3366c490e88c4f55bf1e35c8077cfe6089ad79a Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Thu, 31 Mar 2022 17:51:25 -0700 Subject: [PATCH 12/71] wip --- message.txt | 1672 ++++++++++++++++++++++++++++++++++++++++++++++++ styles/dark.ts | 780 +++++++++++----------- 2 files changed, 2063 insertions(+), 389 deletions(-) create mode 100644 message.txt diff --git a/message.txt b/message.txt new file mode 100644 index 0000000000000000000000000000000000000000..f086360d37f8ee060cb030b5f2026d7a81f4864c --- /dev/null +++ b/message.txt @@ -0,0 +1,1672 @@ +{ + "core": { + "color": { + "neutral": { + "0": { + "value": "#FFFFFF", + "type": "color" + }, + "50": { + "value": "#F8F8F8", + "type": "color" + }, + "100": { + "value": "#F0F0F0", + "type": "color" + }, + "150": { + "value": "#E1E1E1", + "type": "color" + }, + "200": { + "value": "#D2D2D2", + "type": "color" + }, + "250": { + "value": "#C3C3C3", + "type": "color" + }, + "300": { + "value": "#B4B4B4", + "type": "color" + }, + "350": { + "value": "#A5A5A5", + "type": "color" + }, + "400": { + "value": "#969696", + "type": "color" + }, + "450": { + "value": "#878787", + "type": "color" + }, + "500": { + "value": "#787878", + "type": "color" + }, + "550": { + "value": "#696969", + "type": "color" + }, + "600": { + "value": "#5A5A5A", + "type": "color" + }, + "650": { + "value": "#4B4B4B", + "type": "color" + }, + "700": { + "value": "#3C3C3C", + "type": "color" + }, + "750": { + "value": "#262626", + "type": "color" + }, + "800": { + "value": "#1E1E1E", + "type": "color" + }, + "850": { + "value": "#0F0F0F", + "type": "color" + }, + "900": { + "value": "#000000", + "type": "color" + } + }, + "steel": { + "0": { + "value": "#F8FAFC", + "type": "color" + }, + "100": { + "value": "#F1F5F9", + "type": "color" + }, + "200": { + "value": "#E2E8F0", + "type": "color" + }, + "300": { + "value": "#CBD5E1", + "type": "color" + }, + "400": { + "value": "#94A3BA", + "type": "color" + }, + "500": { + "value": "#64748B", + "type": "color" + }, + "600": { + "value": "#475569", + "type": "color" + }, + "700": { + "value": "#334155", + "type": "color" + }, + "800": { + "value": "#1E293B", + "type": "color" + }, + "900": { + "value": "#0F172A", + "type": "color" + } + }, + "gray": { + "0": { + "value": "#FAFAFA", + "type": "color" + }, + "100": { + "value": "#F4F4F5", + "type": "color" + }, + "200": { + "value": "#E4E4E7", + "type": "color" + }, + "300": { + "value": "#D4D4D8", + "type": "color" + }, + "400": { + "value": "#A1A1AA", + "type": "color" + }, + "500": { + "value": "#71717A", + "type": "color" + }, + "600": { + "value": "#52525B", + "type": "color" + }, + "700": { + "value": "#3F3F46", + "type": "color" + }, + "800": { + "value": "#27272A", + "type": "color" + }, + "900": { + "value": "#18181B", + "type": "color" + } + }, + "rose": { + "0": { + "value": "#FFF1F2", + "type": "color" + }, + "100": { + "value": "#FFE4E6", + "type": "color" + }, + "200": { + "value": "#FECDD3", + "type": "color" + }, + "300": { + "value": "#FDA4AF", + "type": "color" + }, + "400": { + "value": "#FB7185", + "type": "color" + }, + "500": { + "value": "#F43F5E", + "type": "color" + }, + "600": { + "value": "#E11D48", + "type": "color" + }, + "700": { + "value": "#BE123C", + "type": "color" + }, + "800": { + "value": "#9F1239", + "type": "color" + }, + "900": { + "value": "#881337", + "type": "color" + } + }, + "red": { + "0": { + "value": "#FEF2F2", + "type": "color" + }, + "100": { + "value": "#FEE2E2", + "type": "color" + }, + "200": { + "value": "#FECACA", + "type": "color" + }, + "300": { + "value": "#FCA5A5", + "type": "color" + }, + "400": { + "value": "#F87171", + "type": "color" + }, + "500": { + "value": "#EF4444", + "type": "color" + }, + "600": { + "value": "#DC2626", + "type": "color" + }, + "700": { + "value": "#B91C1C", + "type": "color" + }, + "800": { + "value": "#991B1B", + "type": "color" + }, + "900": { + "value": "#7F1D1D", + "type": "color" + } + }, + "orange": { + "0": { + "value": "#FFF7ED", + "type": "color" + }, + "100": { + "value": "#FFEDD5", + "type": "color" + }, + "200": { + "value": "#FED7AA", + "type": "color" + }, + "300": { + "value": "#FDBA74", + "type": "color" + }, + "400": { + "value": "#FB923C", + "type": "color" + }, + "500": { + "value": "#F97316", + "type": "color" + }, + "600": { + "value": "#EA580C", + "type": "color" + }, + "700": { + "value": "#C2410C", + "type": "color" + }, + "800": { + "value": "#9A3412", + "type": "color" + }, + "900": { + "value": "#7C2D12", + "type": "color" + } + }, + "amber": { + "0": { + "value": "#FFFBEB", + "type": "color" + }, + "100": { + "value": "#FEF3C7", + "type": "color" + }, + "200": { + "value": "#FDE68A", + "type": "color" + }, + "300": { + "value": "#FCD34D", + "type": "color" + }, + "400": { + "value": "#FBBF24", + "type": "color" + }, + "500": { + "value": "#F59E0B", + "type": "color" + }, + "600": { + "value": "#D97706", + "type": "color" + }, + "700": { + "value": "#B45309", + "type": "color" + }, + "800": { + "value": "#92400E", + "type": "color" + }, + "900": { + "value": "#78350F", + "type": "color" + } + }, + "yellow": { + "0": { + "value": "#FEFCE8", + "type": "color" + }, + "100": { + "value": "#FEF9C3", + "type": "color" + }, + "200": { + "value": "#FEF08A", + "type": "color" + }, + "300": { + "value": "#FDE047", + "type": "color" + }, + "400": { + "value": "#FACC15", + "type": "color" + }, + "500": { + "value": "#EAB308", + "type": "color" + }, + "600": { + "value": "#CA8A04", + "type": "color" + }, + "700": { + "value": "#A16207", + "type": "color" + }, + "800": { + "value": "#854D0E", + "type": "color" + }, + "900": { + "value": "#713F12", + "type": "color" + } + }, + "lime": { + "0": { + "value": "#F7FEE7", + "type": "color" + }, + "100": { + "value": "#ECFCCB", + "type": "color" + }, + "200": { + "value": "#D9F99D", + "type": "color" + }, + "300": { + "value": "#BEF264", + "type": "color" + }, + "400": { + "value": "#A3E635", + "type": "color" + }, + "500": { + "value": "#84CC16", + "type": "color" + }, + "600": { + "value": "#65A30D", + "type": "color" + }, + "700": { + "value": "#4D7C0F", + "type": "color" + }, + "800": { + "value": "#3F6212", + "type": "color" + }, + "900": { + "value": "#365314", + "type": "color" + } + }, + "green": { + "0": { + "value": "#F0FDF4", + "type": "color" + }, + "100": { + "value": "#DCFCE7", + "type": "color" + }, + "200": { + "value": "#BBF7D0", + "type": "color" + }, + "300": { + "value": "#86EFAC", + "type": "color" + }, + "400": { + "value": "#4ADE80", + "type": "color" + }, + "500": { + "value": "#22C55E", + "type": "color" + }, + "600": { + "value": "#16A34A", + "type": "color" + }, + "700": { + "value": "#15803D", + "type": "color" + }, + "800": { + "value": "#166534", + "type": "color" + }, + "900": { + "value": "#14532D", + "type": "color" + } + }, + "emerald": { + "0": { + "value": "#ECFDF5", + "type": "color" + }, + "100": { + "value": "#D1FAE5", + "type": "color" + }, + "200": { + "value": "#A7F3D0", + "type": "color" + }, + "300": { + "value": "#6EE7B7", + "type": "color" + }, + "400": { + "value": "#34D399", + "type": "color" + }, + "500": { + "value": "#10B981", + "type": "color" + }, + "600": { + "value": "#059669", + "type": "color" + }, + "700": { + "value": "#047857", + "type": "color" + }, + "800": { + "value": "#065F46", + "type": "color" + }, + "900": { + "value": "#064E3B", + "type": "color" + } + }, + "teal": { + "0": { + "value": "#F0FDFA", + "type": "color" + }, + "100": { + "value": "#CCFBF1", + "type": "color" + }, + "200": { + "value": "#99F6E4", + "type": "color" + }, + "300": { + "value": "#5EEAD4", + "type": "color" + }, + "400": { + "value": "#2DD4BF", + "type": "color" + }, + "500": { + "value": "#14B8A6", + "type": "color" + }, + "600": { + "value": "#0D9488", + "type": "color" + }, + "700": { + "value": "#0F766E", + "type": "color" + }, + "800": { + "value": "#115E59", + "type": "color" + }, + "900": { + "value": "#134E4A", + "type": "color" + } + }, + "cyan": { + "0": { + "value": "#ECFEFF", + "type": "color" + }, + "100": { + "value": "#CFFAFE", + "type": "color" + }, + "200": { + "value": "#A5F3FC", + "type": "color" + }, + "300": { + "value": "#67E8F9", + "type": "color" + }, + "400": { + "value": "#22D3EE", + "type": "color" + }, + "500": { + "value": "#06BBD4", + "type": "color" + }, + "600": { + "value": "#0891B2", + "type": "color" + }, + "700": { + "value": "#0E7490", + "type": "color" + }, + "800": { + "value": "#155E75", + "type": "color" + }, + "900": { + "value": "#164E63", + "type": "color" + } + }, + "sky": { + "0": { + "value": "#F0F9FF", + "type": "color" + }, + "100": { + "value": "#E0F2FE", + "type": "color" + }, + "200": { + "value": "#BAE6FD", + "type": "color" + }, + "300": { + "value": "#7DD3FC", + "type": "color" + }, + "400": { + "value": "#38BDF8", + "type": "color" + }, + "500": { + "value": "#0EA5E9", + "type": "color" + }, + "600": { + "value": "#0284C7", + "type": "color" + }, + "700": { + "value": "#0369A1", + "type": "color" + }, + "800": { + "value": "#075985", + "type": "color" + }, + "900": { + "value": "#0C4A6E", + "type": "color" + } + }, + "blue": { + "0": { + "value": "#EFF6FF", + "type": "color" + }, + "100": { + "value": "#DBEAFE", + "type": "color" + }, + "200": { + "value": "#BFDBFE", + "type": "color" + }, + "300": { + "value": "#93C5FD", + "type": "color" + }, + "400": { + "value": "#60A5FA", + "type": "color" + }, + "500": { + "value": "#3B82F6", + "type": "color" + }, + "600": { + "value": "#2563EB", + "type": "color" + }, + "700": { + "value": "#1D4ED8", + "type": "color" + }, + "800": { + "value": "#1E40A4", + "type": "color" + }, + "900": { + "value": "#1E3A8A", + "type": "color" + } + }, + "indigo": { + "0": { + "value": "#EEF2FF", + "type": "color" + }, + "100": { + "value": "#E0E7FF", + "type": "color" + }, + "200": { + "value": "#C7D2FE", + "type": "color" + }, + "300": { + "value": "#A5B4FC", + "type": "color" + }, + "400": { + "value": "#818CF8", + "type": "color" + }, + "500": { + "value": "#6366F1", + "type": "color" + }, + "600": { + "value": "#4F46E5", + "type": "color" + }, + "700": { + "value": "#4338CA", + "type": "color" + }, + "800": { + "value": "#3730A3", + "type": "color" + }, + "900": { + "value": "#312E81", + "type": "color" + } + }, + "violet": { + "0": { + "value": "#F5F3FF", + "type": "color" + }, + "100": { + "value": "#EDE9FE", + "type": "color" + }, + "200": { + "value": "#DDD6FE", + "type": "color" + }, + "300": { + "value": "#C4B5FD", + "type": "color" + }, + "400": { + "value": "#A78BFA", + "type": "color" + }, + "500": { + "value": "#8B5CF6", + "type": "color" + }, + "600": { + "value": "#7C3AED", + "type": "color" + }, + "700": { + "value": "#6D28D9", + "type": "color" + }, + "800": { + "value": "#5B21B6", + "type": "color" + }, + "900": { + "value": "#4C1D95", + "type": "color" + } + }, + "purple": { + "0": { + "value": "#FAF5FF", + "type": "color" + }, + "100": { + "value": "#F3E8FF", + "type": "color" + }, + "200": { + "value": "#E9D5FF", + "type": "color" + }, + "300": { + "value": "#D8B4FE", + "type": "color" + }, + "400": { + "value": "#C084FC", + "type": "color" + }, + "500": { + "value": "#A855F7", + "type": "color" + }, + "600": { + "value": "#9333EA", + "type": "color" + }, + "700": { + "value": "#7E22CE", + "type": "color" + }, + "800": { + "value": "#6B21A8", + "type": "color" + }, + "900": { + "value": "#581C87", + "type": "color" + } + }, + "fuschia": { + "0": { + "value": "#FDF4FF", + "type": "color" + }, + "100": { + "value": "#FAE8FF", + "type": "color" + }, + "200": { + "value": "#F5D0FE", + "type": "color" + }, + "300": { + "value": "#F0ABFC", + "type": "color" + }, + "400": { + "value": "#E879F9", + "type": "color" + }, + "500": { + "value": "#D946E4", + "type": "color" + }, + "600": { + "value": "#C026D3", + "type": "color" + }, + "700": { + "value": "#A21CAF", + "type": "color" + }, + "800": { + "value": "#86198F", + "type": "color" + }, + "900": { + "value": "#701A75", + "type": "color" + } + }, + "pink": { + "0": { + "value": "#FDF2F8", + "type": "color" + }, + "100": { + "value": "#FCE7F3", + "type": "color" + }, + "200": { + "value": "#FBCFE8", + "type": "color" + }, + "300": { + "value": "#F988D4", + "type": "color" + }, + "400": { + "value": "#F472B6", + "type": "color" + }, + "500": { + "value": "#EC4899", + "type": "color" + }, + "600": { + "value": "#DB2777", + "type": "color" + }, + "700": { + "value": "#BE185D", + "type": "color" + }, + "800": { + "value": "#9D174D", + "type": "color" + }, + "900": { + "value": "#831843", + "type": "color" + } + } + }, + "font-weight": { + "normal": { + "100": { + "value": "Thin", + "type": "fontWeights" + }, + "200": { + "value": "Light", + "type": "fontWeights" + }, + "400": { + "value": "Regular", + "type": "fontWeights" + }, + "500": { + "value": "Semibold", + "type": "fontWeights" + }, + "600": { + "value": "Bold", + "type": "fontWeights" + }, + "800": { + "value": "Heavy", + "type": "fontWeights" + } + }, + "normal-bold": { + "100": { + "value": "Thin", + "type": "fontWeights" + }, + "200": { + "value": "Light", + "type": "fontWeights" + }, + "400": { + "value": "Regular", + "type": "fontWeights" + }, + "500": { + "value": "Semibold", + "type": "fontWeights" + }, + "600": { + "value": "Bold", + "type": "fontWeights" + }, + "800": { + "value": "Heavy", + "type": "fontWeights" + } + }, + "italic": { + "100": { + "value": "Thin Italic", + "type": "fontWeights" + }, + "200": { + "value": "Light", + "type": "fontWeights" + }, + "400": { + "value": "Regular", + "type": "fontWeights" + }, + "500": { + "value": "Semibold", + "type": "fontWeights" + }, + "600": { + "value": "Bold", + "type": "fontWeights" + }, + "800": { + "value": "Heavy", + "type": "fontWeights" + } + }, + "italic-bold": { + "100": { + "value": "Thin Italic", + "type": "fontWeights" + }, + "200": { + "value": "Light", + "type": "fontWeights" + }, + "400": { + "value": "Regular", + "type": "fontWeights" + }, + "500": { + "value": "Semibold", + "type": "fontWeights" + }, + "600": { + "value": "Bold", + "type": "fontWeights" + }, + "800": { + "value": "Heavy", + "type": "fontWeights" + } + } + }, + "font-family": { + "zed-mono": { + "value": "Zed Mono", + "type": "fontFamilies" + }, + "zed-sans": { + "value": "Zed Sans", + "type": "fontFamilies" + } + }, + "font-size": { + "3xs": { + "value": "8", + "type": "fontSizes" + }, + "2xs": { + "value": "10", + "type": "fontSizes" + }, + "xs": { + "value": "12", + "type": "fontSizes" + }, + "sm": { + "value": "14", + "type": "fontSizes" + }, + "base": { + "value": "16", + "type": "fontSizes" + }, + "lg": { + "value": "18", + "type": "fontSizes" + }, + "xl": { + "value": "20", + "type": "fontSizes" + } + }, + "leading": { + "xs": { + "value": "16", + "type": "lineHeights" + }, + "sm": { + "value": "20", + "type": "lineHeights" + }, + "base": { + "value": "24", + "type": "lineHeights" + }, + "lg": { + "value": "26", + "type": "lineHeights" + }, + "xl": { + "value": "28", + "type": "lineHeights" + }, + "2xl": { + "value": "30", + "type": "lineHeights" + } + }, + "text-decoration": { + "none": { + "value": "none", + "type": "textDecoration" + } + }, + "ui-text": { + "normal": { + "base": { + "value": { + "fontFamily": "{font-family.zed-sans}", + "fontWeight": "$font-weight.normal.400", + "lineHeight": "{leading.sm}", + "fontSize": "{font-size.sm}", + "letterSpacing": "{letter-spacing.base}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "{text-decoration.none}" + }, + "type": "typography", + "bold": { + "value": { + "fontFamily": "$text.family.zed-sans", + "fontWeight": "$text.weight.bold", + "lineHeight": "$text.leading.base", + "fontSize": "$text.size.xs", + "letterSpacing": "$text.tracking.default", + "paragraphSpacing": "$text.paragraphSpacing.0", + "textCase": "$text.case.default", + "decoration": "$text.decoration.none", + "textDecoration": "$text.decoration.none" + }, + "type": "typography" + } + }, + "sm": { + "value": { + "fontFamily": "{font-family.zed-sans}", + "fontWeight": "$font-weight.normal.400", + "lineHeight": "{leading.xs}", + "fontSize": "{font-size.xs}", + "letterSpacing": "{letter-spacing.base}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "{text-decoration.none}" + }, + "type": "typography", + "bold": { + "value": { + "fontFamily": "$text.family.zed-sans", + "fontWeight": "$text.weight.bold", + "lineHeight": "$text.leading.base", + "fontSize": "$text.size.xs", + "letterSpacing": "$text.tracking.default", + "paragraphSpacing": "$text.paragraphSpacing.0", + "textCase": "$text.case.default", + "decoration": "$text.decoration.none", + "textDecoration": "$text.decoration.none" + }, + "type": "typography" + } + } + }, + "bold": { + "base": { + "value": { + "fontFamily": "{font-family.zed-sans}", + "fontWeight": "$font-weight.normal.600", + "lineHeight": "{leading.base}", + "fontSize": "{font-size.sm}", + "letterSpacing": "{letter-spacing.sm}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "{text-decoration.none}" + }, + "type": "typography" + }, + "sm": { + "value": { + "fontFamily": "{font-family.zed-sans}", + "fontWeight": "$font-weight.normal.600", + "lineHeight": "{leading.xs}", + "fontSize": "{font-size.xs}", + "letterSpacing": "{letter-spacing.base}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "{text-decoration.none}" + }, + "type": "typography" + } + } + }, + "buffer-text": { + "normal": { + "xs": { + "value": { + "fontFamily": "{font-family.zed-mono}", + "fontWeight": "$font-weight.normal.400", + "lineHeight": "{leading.xs}", + "fontSize": "{font-size.xs}", + "letterSpacing": "{letter-spacing.base}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "{text-decoration.none}" + }, + "type": "typography" + }, + "sm": { + "value": { + "fontFamily": "{font-family.zed-mono}", + "fontWeight": "$font-weight.normal.400", + "lineHeight": "{leading.sm}", + "fontSize": "{font-size.sm}", + "letterSpacing": "{letter-spacing.base}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "{text-decoration.none}" + }, + "type": "typography" + }, + "base": { + "value": { + "fontFamily": "{font-family.zed-mono}", + "fontWeight": "$font-weight.normal.400", + "lineHeight": "{leading.lg}", + "fontSize": "{font-size.base}", + "letterSpacing": "{letter-spacing.base}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "$text.decoration.default" + }, + "type": "typography" + }, + "lg": { + "value": { + "fontFamily": "{font-family.zed-mono}", + "fontWeight": "$font-weight.normal.400", + "lineHeight": "{leading.lg}", + "fontSize": "{font-size.lg}", + "letterSpacing": "{letter-spacing.base}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "$text.decoration.default" + }, + "type": "typography" + } + } + }, + "letter-spacing": { + "tight": { + "value": "-0.05", + "type": "letterSpacing" + }, + "base": { + "value": "0%", + "type": "letterSpacing" + }, + "wide": { + "value": "0.05", + "type": "letterSpacing" + } + }, + "paragraph-spacing": { + "default": { + "value": "0", + "type": "paragraphSpacing" + } + }, + "text-case": { + "default": { + "value": "none", + "type": "textCase" + }, + "lowercase": { + "value": "lowercase", + "type": "textCase" + }, + "uppercase": { + "value": "uppercase", + "type": "textCase" + } + }, + "space": { + "s-0": { + "value": "0", + "type": "spacing" + }, + "s-4": { + "value": "{var.base}", + "type": "spacing" + }, + "s-8": { + "value": "{var.base} * 2", + "type": "spacing" + }, + "s-12": { + "value": "{var.base} * 3", + "type": "spacing" + }, + "s-16": { + "value": "{var.base} * 4", + "type": "spacing" + } + }, + "internal": { + "mac-os": { + "red": { + "value": "#FF5E57", + "type": "color" + }, + "yellow": { + "value": "#FFBB2E", + "type": "color" + }, + "green": { + "value": "#38C149", + "type": "color" + } + } + }, + "border-radius": { + "xs": { + "value": "2", + "type": "borderRadius" + }, + "sm": { + "value": "4", + "type": "borderRadius" + }, + "base": { + "value": "6", + "type": "borderRadius" + }, + "lg": { + "value": "8", + "type": "borderRadius" + }, + "xl": { + "value": "10", + "type": "borderRadius" + } + }, + "border-width": { + "base": { + "value": "1", + "type": "borderWidth" + } + }, + "elevation": { + "300": { + "value": { + "x": "0", + "y": "4", + "blur": "12", + "spread": "0", + "color": "rgba({color.neutral.900}, {shadow.base})", + "type": "dropShadow" + }, + "type": "boxShadow" + } + }, + "var": { + "base": { + "value": "4", + "type": "other" + } + } + }, + "dark": { + "text-color": { + "primary": { + "value": "{color.neutral.150}", + "type": "color" + }, + "secondary": { + "value": "{color.neutral.350}", + "type": "color" + }, + "muted": { + "value": "{color.neutral.550}", + "type": "color" + }, + "minimal": { + "value": "{color.neutral.750}", + "type": "color" + }, + "active": { + "value": "{color.neutral.0}", + "type": "color" + }, + "disabled": { + "value": "{color.neutral.650}", + "type": "color" + }, + "positive": { + "value": "{color.green.600}", + "type": "color" + }, + "negative": { + "value": "{color.red.400}", + "type": "color" + }, + "warning": { + "value": "{color.amber.300}", + "type": "color" + }, + "info": { + "value": "{color.blue.500}", + "type": "color" + } + }, + "icon-color": { + "primary": { + "value": "{text.secondary}", + "type": "color" + }, + "secondary": { + "value": "{text.muted}", + "type": "color" + }, + "active": { + "value": "{text.active}", + "type": "color" + }, + "disabled": { + "value": "{text.disabled}", + "type": "color" + }, + "positive": { + "value": "{color.green.600}", + "type": "color" + }, + "negative": { + "value": "{color.red.400}", + "type": "color" + }, + "warning": { + "value": "{color.amber.300}", + "type": "color" + }, + "info": { + "value": "{color.blue.500}", + "type": "color" + } + }, + "icon-size": { + "default": { + "value": "16", + "type": "size" + } + }, + "background-color": { + "100": { + "value": "{color.neutral.750}", + "type": "color", + "description": "The app background. Used for title-bar, other daylight." + }, + "300": { + "value": "{color.neutral.800}", + "type": "color", + "description": "The primary surface layer. Used for tabs, panels, pop-overs, etc." + }, + "500": { + "value": "{color.neutral.900}", + "type": "color", + "description": "Used for the buffer background and active buffer tabs." + }, + "active": { + "value": "rgba({icon.active}}, 0.1)", + "type": "color" + }, + "focused": { + "value": "// wip", + "type": "color" + }, + "disabled": { + "value": "// wip", + "type": "color" + }, + "positive": { + "value": "{color.green.600}", + "type": "color" + }, + "negative": { + "value": "{color.red.400}", + "type": "color" + }, + "warning": { + "value": "{color.amber.300}", + "type": "color" + }, + "info": { + "value": "{color.blue.500}", + "type": "color" + } + }, + "border-color": { + "default": { + "value": "{color.neutral.850}", + "type": "color" + }, + "secondary": { + "value": "{color.neutral.700}", + "type": "color" + }, + "minimal": { + "value": "{color.neutral.750}", + "type": "color" + }, + "active": { + "value": "{color.neutral.500}", + "type": "color" + }, + "focused": { + "value": "{color.neutral.100}", + "type": "color" + } + }, + "editor": { + "background-color": { + "value": "{surface.500}", + "type": "color" + }, + "indent-guide": { + "value": "{icon.disabled}", + "type": "color" + }, + "indent-guide-active": { + "value": "{icon.secondary}", + "type": "color" + }, + "highlight": { + "active-line": { + "value": "rgba({color.neutral.0}, 0.08)", + "type": "color" + }, + "selection": { + "value": "{player.selection.one}", + "type": "color" + }, + "folded-line": { + "value": "rgba({surface.500}, 0.03)", + "type": "color" + }, + "occurrence": { + "value": "rgba({text.active}, 0.15)", + "type": "color" + }, + "matching-bracket": { + "value": "rgba({color.indigo.500}, 0.8)", + "type": "color" + }, + "match": { + "value": "rgba({color.blue.500},0.5)", + "type": "color" + }, + "active-match": { + "value": "rgba({color.blue.500},0.8)", + "type": "color" + } + }, + "gutter": { + "primary": { + "value": "{text.muted}", + "type": "color" + }, + "active": { + "value": "{text.active}", + "type": "color" + } + }, + "syntax": { + "primary": { + "value": "{text.primary}", + "type": "color" + }, + "comment": { + "value": "{color.lime.200}", + "type": "color" + }, + "punctuation": { + "value": "{text.secondary}", + "type": "color" + }, + "constant": { + "value": "{syntax.primary}", + "type": "color" + }, + "keyword": { + "value": "{color.sky.400}", + "type": "color" + }, + "function": { + "value": "{color.yellow.200}", + "type": "color" + }, + "type": { + "value": "{color.teal.300}", + "type": "color" + }, + "variant": { + "value": "{syntax.type}", + "type": "color" + }, + "property": { + "value": "{color.sky.300}", + "type": "color" + }, + "enum": { + "value": "{syntax.operator}", + "type": "color" + }, + "operator": { + "value": "{syntax.keyword}", + "type": "color" + }, + "string": { + "value": "{color.orange.300}", + "type": "color" + }, + "number": { + "value": "{syntax.primary}", + "type": "color" + }, + "boolean": { + "value": "{syntax.number}", + "type": "color" + }, + "predictive": { + "value": "{text.muted}", + "type": "color" + } + } + }, + "player": { + "color": { + "1": { + "value": "{color.blue.600}", + "type": "color" + }, + "2": { + "value": "{color.indigo.500}", + "type": "color" + }, + "3": { + "value": "{color.green.500}", + "type": "color" + }, + "4": { + "value": "{color.orange.500}", + "type": "color" + }, + "5": { + "value": "{color.purple.500}", + "type": "color" + }, + "6": { + "value": "{color.teal.400}", + "type": "color" + }, + "7": { + "value": "{color.pink.400}", + "type": "color" + }, + "8": { + "value": "{color.yellow.400}", + "type": "color" + } + }, + "selection": { + "1": { + "value": "rgba({color.blue.600},0.1)", + "type": "color" + }, + "2": { + "value": "rgba({color.indigo.500}, 0.1)", + "type": "color" + }, + "3": { + "value": "rgba({color.green.500}, 0.1)", + "type": "color" + }, + "4": { + "value": "rgba({color.orange.500}, 0.15)", + "type": "color" + }, + "5": { + "value": "rgba({color.purple.500}, 0.1)", + "type": "color" + }, + "6": { + "value": "rgba({color.teal.400}, 0.1)", + "type": "color" + }, + "7": { + "value": "rgba({color.pink.400}, 0.1)", + "type": "color" + }, + "8": { + "value": "rgba({color.yellow.400}, 0.15)", + "type": "color" + } + } + }, + "shadow": { + "base": { + "value": "0.36", + "type": "opacity" + } + } + } +} \ No newline at end of file diff --git a/styles/dark.ts b/styles/dark.ts index efd2d3b8a49b1b43c53b8ee782d13615c0f3e0d2..bfcac3db816697fdb537860e7ed8a4e981ccd860 100644 --- a/styles/dark.ts +++ b/styles/dark.ts @@ -2,455 +2,457 @@ import core from "./core"; import Theme from "./theme"; const backgroundColor = { - 100: { - base: { - value: core.color.neutral[999].value, + 100: { + base: { + value: core.color.neutral[999].value, + }, + hovered: { + value: core.color.neutral[999].value, + }, + active: { + value: core.color.neutral[999].value, + }, + focused: { + value: core.color.neutral[999].value, + }, + }, + 300: { + base: { + value: core.color.neutral[999].value, + }, + hovered: { + value: core.color.neutral[999].value, + }, + active: { + value: core.color.neutral[999].value, + }, + focused: { + value: core.color.neutral[999].value, + }, + }, + 500: { + base: { + value: core.color.neutral[999].value, + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + ok: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + error: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + warning: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + info: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, }, - hovered: { - value: core.color.neutral[999].value, - }, - active: { - value: core.color.neutral[999].value, - }, - focused: { - value: core.color.neutral[999].value, - }, - }, - 300: { - base: { - value: core.color.neutral[999].value, +}; + +const borderColor = { + primary: { + value: "#000000", }, - hovered: { - value: core.color.neutral[999].value, + secondary: { + value: "#000000", }, - active: { - value: core.color.neutral[999].value, + muted: { + value: "#000000", }, focused: { - value: core.color.neutral[999].value, - }, - }, - 500: { - base: { - value: core.color.neutral[999].value, - }, - hovered: { - value: "#000000", + value: "#000000", }, active: { - value: "#000000", - }, - focused: { - value: "#000000", + value: "#000000", }, - }, - ok: { - base: { - value: "#000000", + ok: { + value: "#000000", }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", + error: { + value: "#000000", }, - }, - error: { - base: { - value: "#000000", + warning: { + value: "#000000", }, - hovered: { - value: "#000000", + info: { + value: "#000000", }, - active: { - value: "#000000", +}; + +const textColor = { + primary: { + value: core.color.neutral[150].value, }, - focused: { - value: "#000000", + secondary: { + value: core.color.neutral[350].value, }, - }, - warning: { - base: { - value: "#000000", + muted: { + value: core.color.neutral[550].value, }, - hovered: { - value: "#000000", + placeholder: { + value: core.color.neutral[750].value, }, active: { - value: "#000000", + value: core.color.neutral[0].value, }, - focused: { - value: "#000000", + feature: { + //TODO: (design) define feature and it's correct value + value: core.color.sky[500].value, }, - }, - info: { - base: { - value: "#000000", + ok: { + value: core.color.green[600].value, }, - hovered: { - value: "#000000", + error: { + value: core.color.red[400].value, }, - active: { - value: "#000000", + warning: { + value: core.color.amber[300].value, }, - focused: { - value: "#000000", + info: { + value: core.color.blue[500].value, }, - }, -}; - -const borderColor = { - primary: { - value: "#000000", - }, - secondary: { - value: "#000000", - }, - muted: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - active: { - value: "#000000", - }, - ok: { - value: "#000000", - }, - error: { - value: "#000000", - }, - warning: { - value: "#000000", - }, - info: { - value: "#000000", - }, -}; - -const textColor = { - primary: { - value: core.color.neutral[150].value, - }, - secondary: { - value: core.color.neutral[350].value, - }, - muted: { - value: core.color.neutral[550].value, - }, - placeholder: { - value: core.color.neutral[750].value, - }, - active: { - value: core.color.neutral[0].value, - }, - feature: { - //TODO: (design) define feature and it's correct value - value: core.color.sky[500].value, - }, - ok: { - value: core.color.green[600].value, - }, - error: { - value: core.color.red[400].value, - }, - warning: { - value: core.color.amber[300].value, - }, - info: { - value: core.color.blue[500].value, - }, }; const iconColor = { - primary: { - value: core.color.neutral[300].value, - }, - secondary: { - value: core.color.neutral[500].value, - }, - muted: { - value: core.color.neutral[600].value, - }, - placeholder: { - value: core.color.neutral[700].value, - }, - active: { - value: core.color.neutral[50].value, - }, - feature: { - //TODO: (design) define feature and it's correct value - value: core.color.sky[500].value, - }, - ok: { - value: core.color.green[600].value, - }, - error: { - value: core.color.red[400].value, - }, - warning: { - value: core.color.amber[300].value, - }, - info: { - value: core.color.blue[500].value, - }, -}; - -const editor = { - background: { - value: backgroundColor[500].base.value, - }, - indent_guide: { - value: core.color.neutral[999].value, - }, - indent_guide_active: { - value: core.color.neutral[999].value, - }, - line: { - active: { - value: core.color.neutral[999].value, - }, - highlighted: { - value: core.color.neutral[999].value, - }, - inserted: { - value: core.color.neutral[999].value, - }, - deleted: { - value: core.color.neutral[999].value, - }, - modified: { - value: core.color.neutral[999].value, + primary: { + value: core.color.neutral[300].value, }, - }, - highlight: { - selection: { - value: core.color.neutral[999].value, + secondary: { + value: core.color.neutral[500].value, }, - occurrence: { - value: core.color.neutral[999].value, + muted: { + value: core.color.neutral[600].value, }, - activeOccurrence: { - value: core.color.neutral[999].value, + placeholder: { + value: core.color.neutral[700].value, }, - matchingBracket: { - value: core.color.neutral[999].value, + active: { + value: core.color.neutral[50].value, }, - match: { - value: core.color.neutral[999].value, + feature: { + //TODO: (design) define feature and it's correct value + value: core.color.sky[500].value, }, - activeMatch: { - value: core.color.neutral[999].value, + ok: { + value: core.color.green[600].value, }, - related: { - value: core.color.neutral[999].value, + error: { + value: core.color.red[400].value, }, - }, - gutter: { - primary: { - value: core.color.neutral[999].value, + warning: { + value: core.color.amber[300].value, }, - active: { - value: core.color.neutral[999].value, + info: { + value: core.color.blue[500].value, }, - }, }; -const syntax = { - primary: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - comment: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - punctuation: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - constant: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - keyword: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - function: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - type: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - variant: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - property: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - enum: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - operator: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - string: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - number: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - boolean: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - predictive: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, +const editor = { + background: { + value: backgroundColor[500].base.value, + }, + indent_guide: { + value: core.color.neutral[999].value, + }, + indent_guide_active: { + value: core.color.neutral[999].value, + }, + line: { + active: { + value: core.color.neutral[999].value, + }, + highlighted: { + value: core.color.neutral[999].value, + }, + inserted: { + value: core.color.neutral[999].value, + }, + deleted: { + value: core.color.neutral[999].value, + }, + modified: { + value: core.color.neutral[999].value, + }, + }, + highlight: { + selection: { + value: core.color.neutral[999].value, + }, + occurrence: { + value: core.color.neutral[999].value, + }, + activeOccurrence: { + value: core.color.neutral[999].value, + }, + matchingBracket: { + value: core.color.neutral[999].value, + }, + match: { + value: core.color.neutral[999].value, + }, + activeMatch: { + value: core.color.neutral[999].value, + }, + related: { + value: core.color.neutral[999].value, + }, + }, + gutter: { + primary: { + value: core.color.neutral[999].value, + }, + active: { + value: core.color.neutral[999].value, + }, + }, }; -const player = { - 1: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, - }, - 2: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, - }, - 3: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, - }, - 4: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, - }, - 5: { - baseColor: { - value: core.color.neutral[999].value, +const syntax = { + primary: { + color: { + value: core.color.neutral[150] + }, + weight: { value: "normal" }, }, - cursorColor: { - value: core.color.neutral[999].value, + comment: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - selectionColor: { - value: core.color.neutral[999].value, + punctuation: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - borderColor: { - value: core.color.neutral[999].value, + constant: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - }, - 6: { - baseColor: { - value: core.color.neutral[999].value, + keyword: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - cursorColor: { - value: core.color.neutral[999].value, + function: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - selectionColor: { - value: core.color.neutral[999].value, + type: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - borderColor: { - value: core.color.neutral[999].value, + variant: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - }, - 7: { - baseColor: { - value: core.color.neutral[999].value, + property: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - cursorColor: { - value: core.color.neutral[999].value, + enum: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - selectionColor: { - value: core.color.neutral[999].value, + operator: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - borderColor: { - value: core.color.neutral[999].value, + string: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - }, - 8: { - baseColor: { - value: core.color.neutral[999].value, + number: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - cursorColor: { - value: core.color.neutral[999].value, + boolean: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - selectionColor: { - value: core.color.neutral[999].value, + predictive: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - borderColor: { - value: core.color.neutral[999].value, +}; + +const player = { + 1: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 2: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 3: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 4: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 5: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 6: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 7: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 8: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, }, - }, }; const shadowAlpha = { - value: 0.32, + value: 0.32, }; export default function dark(): Theme { - return { - backgroundColor, - borderColor, - textColor, - iconColor, - editor, - syntax, - player, - shadowAlpha, - }; + return { + backgroundColor, + borderColor, + textColor, + iconColor, + editor, + syntax, + player, + shadowAlpha, + }; } From ce8d5bc0db119417bd21824f3a9f7345fa366b50 Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Thu, 31 Mar 2022 19:05:21 -0700 Subject: [PATCH 13/71] wip --- styles/core.ts | 102 +++++------ styles/dark.ts | 462 +++++++++++++----------------------------------- styles/theme.ts | 358 ++++++++++++++----------------------- 3 files changed, 307 insertions(+), 615 deletions(-) diff --git a/styles/core.ts b/styles/core.ts index e9e81982e456c0ffe151b83ac36767d62140c6ba..49e376b4ebf81968b2681179be46b3c5b27055b6 100644 --- a/styles/core.ts +++ b/styles/core.ts @@ -1,58 +1,58 @@ import { colorRamp } from "./lib"; export default { - fontFamily: { - sans: "Zed Sans", - mono: "Zed Mono", - }, - fontSize: { - "3xs": { - value: "8", - type: "fontSizes", + fontFamily: { + sans: "Zed Sans", + mono: "Zed Mono", }, - "2xs": { - value: "10", - type: "fontSizes", + fontSize: { + "3xs": { + value: "8", + type: "fontSizes", + }, + "2xs": { + value: "10", + type: "fontSizes", + }, + xs: { + value: "12", + type: "fontSizes", + }, + sm: { + value: "14", + type: "fontSizes", + }, + md: { + value: "16", + type: "fontSizes", + }, + lg: { + value: "18", + type: "fontSizes", + }, + xl: { + value: "20", + type: "fontSizes", + }, }, - xs: { - value: "12", - type: "fontSizes", + color: { + neutral: colorRamp(["black", "white"], { steps: 21, increment: 50 }), + rose: colorRamp("#F43F5EFF"), + red: colorRamp("#EF4444FF"), + orange: colorRamp("#F97316FF"), + amber: colorRamp("#F59E0BFF"), + yellow: colorRamp("#EAB308FF"), + lime: colorRamp("#84CC16FF"), + green: colorRamp("#22C55EFF"), + emerald: colorRamp("#10B981FF"), + teal: colorRamp("#14B8A6FF"), + cyan: colorRamp("#06BBD4FF"), + sky: colorRamp("#0EA5E9FF"), + blue: colorRamp("#3B82F6FF"), + indigo: colorRamp("#6366F1FF"), + violet: colorRamp("#8B5CF6FF"), + purple: colorRamp("#A855F7FF"), + fuschia: colorRamp("#D946E4FF"), + pink: colorRamp("#EC4899FF"), }, - sm: { - value: "14", - type: "fontSizes", - }, - md: { - value: "16", - type: "fontSizes", - }, - lg: { - value: "18", - type: "fontSizes", - }, - xl: { - value: "20", - type: "fontSizes", - }, - }, - color: { - neutral: colorRamp(["black", "white"], { steps: 21, increment: 50 }), - rose: colorRamp("#F43F5EFF"), - red: colorRamp("#EF4444FF"), - orange: colorRamp("#F97316FF"), - amber: colorRamp("#F59E0BFF"), - yellow: colorRamp("#EAB308FF"), - lime: colorRamp("#84CC16FF"), - green: colorRamp("#22C55EFF"), - emerald: colorRamp("#10B981FF"), - teal: colorRamp("#14B8A6FF"), - cyan: colorRamp("#06BBD4FF"), - sky: colorRamp("#0EA5E9FF"), - blue: colorRamp("#3B82F6FF"), - indigo: colorRamp("#6366F1FF"), - violet: colorRamp("#8B5CF6FF"), - purple: colorRamp("#A855F7FF"), - fuschia: colorRamp("#D946E4FF"), - pink: colorRamp("#EC4899FF"), - }, }; diff --git a/styles/dark.ts b/styles/dark.ts index bfcac3db816697fdb537860e7ed8a4e981ccd860..5b60bd0316a53fc24a830e23d428088675ac45de 100644 --- a/styles/dark.ts +++ b/styles/dark.ts @@ -1,442 +1,230 @@ import core from "./core"; import Theme from "./theme"; +const { color } = core; + const backgroundColor = { 100: { - base: { - value: core.color.neutral[999].value, - }, - hovered: { - value: core.color.neutral[999].value, - }, - active: { - value: core.color.neutral[999].value, - }, - focused: { - value: core.color.neutral[999].value, - }, + base: color.neutral[750], + hovered: color.neutral[750], + active: color.neutral[750], + focused: color.neutral[750], }, 300: { - base: { - value: core.color.neutral[999].value, - }, - hovered: { - value: core.color.neutral[999].value, - }, - active: { - value: core.color.neutral[999].value, - }, - focused: { - value: core.color.neutral[999].value, - }, + base: color.neutral[800], + hovered: color.neutral[800], + active: color.neutral[800], + focused: color.neutral[800], }, 500: { - base: { - value: core.color.neutral[999].value, - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, + base: color.neutral[900], + hovered: color.neutral[900], + active: color.neutral[900], + focused: color.neutral[900], }, ok: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, + base: color.green[600], + hovered: color.green[600], + active: color.green[600], + focused: color.green[600], }, error: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, + base: color.red[400], + hovered: color.red[400], + active: color.red[400], + focused: color.red[400], }, warning: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, + base: color.amber[300], + hovered: color.amber[300], + active: color.amber[300], + focused: color.amber[300], }, info: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, + base: color.blue[500], + hovered: color.blue[500], + active: color.blue[500], + focused: color.blue[500], }, }; const borderColor = { - primary: { - value: "#000000", - }, - secondary: { - value: "#000000", - }, - muted: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - active: { - value: "#000000", - }, - ok: { - value: "#000000", - }, - error: { - value: "#000000", - }, - warning: { - value: "#000000", - }, - info: { - value: "#000000", - }, + primary: color.neutral[850], + secondary: color.neutral[700], + muted: color.neutral[750], + focused: color.neutral[100], + active: color.neutral[500], + ok: color.neutral[999], + error: color.neutral[999], + warning: color.neutral[999], + info: color.neutral[999], }; const textColor = { - primary: { - value: core.color.neutral[150].value, - }, - secondary: { - value: core.color.neutral[350].value, - }, - muted: { - value: core.color.neutral[550].value, - }, - placeholder: { - value: core.color.neutral[750].value, - }, - active: { - value: core.color.neutral[0].value, - }, - feature: { - //TODO: (design) define feature and it's correct value - value: core.color.sky[500].value, - }, - ok: { - value: core.color.green[600].value, - }, - error: { - value: core.color.red[400].value, - }, - warning: { - value: core.color.amber[300].value, - }, - info: { - value: core.color.blue[500].value, - }, + primary: color.neutral[150], + secondary: color.neutral[350], + muted: color.neutral[550], + placeholder: color.neutral[750], + active: color.neutral[0], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], }; const iconColor = { - primary: { - value: core.color.neutral[300].value, - }, - secondary: { - value: core.color.neutral[500].value, - }, - muted: { - value: core.color.neutral[600].value, - }, - placeholder: { - value: core.color.neutral[700].value, - }, - active: { - value: core.color.neutral[50].value, - }, - feature: { - //TODO: (design) define feature and it's correct value - value: core.color.sky[500].value, - }, - ok: { - value: core.color.green[600].value, - }, - error: { - value: core.color.red[400].value, - }, - warning: { - value: core.color.amber[300].value, - }, - info: { - value: core.color.blue[500].value, - }, + primary: color.neutral[300], + secondary: color.neutral[500], + muted: color.neutral[600], + placeholder: color.neutral[700], + active: color.neutral[50], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], }; const editor = { - background: { - value: backgroundColor[500].base.value, - }, - indent_guide: { - value: core.color.neutral[999].value, - }, - indent_guide_active: { - value: core.color.neutral[999].value, - }, + background: backgroundColor[500].base, + indent_guide: color.neutral[999], + indent_guide_active: color.neutral[999], line: { - active: { - value: core.color.neutral[999].value, - }, - highlighted: { - value: core.color.neutral[999].value, - }, - inserted: { - value: core.color.neutral[999].value, - }, - deleted: { - value: core.color.neutral[999].value, - }, - modified: { - value: core.color.neutral[999].value, - }, + active: color.neutral[999], + highlighted: color.neutral[999], + inserted: color.neutral[999], + deleted: color.neutral[999], + modified: color.neutral[999], }, highlight: { - selection: { - value: core.color.neutral[999].value, - }, - occurrence: { - value: core.color.neutral[999].value, - }, - activeOccurrence: { - value: core.color.neutral[999].value, - }, - matchingBracket: { - value: core.color.neutral[999].value, - }, - match: { - value: core.color.neutral[999].value, - }, - activeMatch: { - value: core.color.neutral[999].value, - }, - related: { - value: core.color.neutral[999].value, - }, + selection: color.neutral[999], + occurrence: color.neutral[999], + activeOccurrence: color.neutral[999], + matchingBracket: color.neutral[999], + match: color.neutral[999], + activeMatch: color.neutral[999], + related: color.neutral[999], }, gutter: { - primary: { - value: core.color.neutral[999].value, - }, - active: { - value: core.color.neutral[999].value, - }, + primary: color.neutral[999], + active: color.neutral[999], }, }; const syntax = { primary: { - color: { - value: core.color.neutral[150] - }, + color: textColor.primary, weight: { value: "normal" }, }, comment: { - color: { value: "000000" }, + color: color.lime[200], weight: { value: "normal" }, }, punctuation: { - color: { value: "000000" }, + color: textColor.primary, weight: { value: "normal" }, }, constant: { - color: { value: "000000" }, + color: color.neutral[150], weight: { value: "normal" }, }, keyword: { - color: { value: "000000" }, + color: color.sky[400], weight: { value: "normal" }, }, function: { - color: { value: "000000" }, + color: color.yellow[200], weight: { value: "normal" }, }, type: { - color: { value: "000000" }, + color: color.teal[300], weight: { value: "normal" }, }, variant: { - color: { value: "000000" }, + color: color.teal[300], weight: { value: "normal" }, }, property: { - color: { value: "000000" }, + color: color.sky[300], weight: { value: "normal" }, }, enum: { - color: { value: "000000" }, + color: color.sky[400], weight: { value: "normal" }, }, operator: { - color: { value: "000000" }, + color: color.sky[400], weight: { value: "normal" }, }, string: { - color: { value: "000000" }, + color: color.orange[300], weight: { value: "normal" }, }, number: { - color: { value: "000000" }, + color: color.neutral[150], weight: { value: "normal" }, }, boolean: { - color: { value: "000000" }, + color: color.neutral[150], weight: { value: "normal" }, }, predictive: { - color: { value: "000000" }, + color: textColor.muted, weight: { value: "normal" }, }, }; const player = { 1: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.blue[600], + cursorColor: color.blue[600], + selectionColor: color.blue[600], + borderColor: color.blue[600], }, 2: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.indigo[500], + cursorColor: color.indigo[500], + selectionColor: color.indigo[500], + borderColor: color.indigo[500], }, 3: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.green[500], + cursorColor: color.green[500], + selectionColor: color.green[500], + borderColor: color.green[500], }, 4: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.orange[500], + cursorColor: color.orange[500], + selectionColor: color.orange[500], + borderColor: color.orange[500], }, 5: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.purple[500], + cursorColor: color.purple[500], + selectionColor: color.purple[500], + borderColor: color.purple[500], }, 6: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.teal[400], + cursorColor: color.teal[400], + selectionColor: color.teal[400], + borderColor: color.teal[400], }, 7: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.pink[400], + cursorColor: color.pink[400], + selectionColor: color.pink[400], + borderColor: color.pink[400], }, 8: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.yellow[400], + cursorColor: color.yellow[400], + selectionColor: color.yellow[400], + borderColor: color.yellow[400], }, }; diff --git a/styles/theme.ts b/styles/theme.ts index 9d297d552d38b21154a77b2eed22d49a1ce2a247..9d70ea0227053f81e48d2e3359379db635bed7c8 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -1,242 +1,146 @@ +export interface NumberToken { + value: number, + type: "number" +} + export type Color = string; +export interface ColorToken { + value: Color; + type: "color"; + step?: number +} export type Weight = - | "thin" - | "extra_light" - | "light" - | "normal" - | "medium" - | "semibold" - | "bold" - | "extra_bold" - | "black"; + | "thin" + | "extra_light" + | "light" + | "normal" + | "medium" + | "semibold" + | "bold" + | "extra_bold" + | "black"; +export interface WeightToken { + value: Weight, + type: "fontWeight" +} -interface SyntaxHighlightStyle { - color: { value: Color }; - weight: { value: Weight }; +export interface SyntaxHighlightStyle { + color: ColorToken; + weight: WeightToken; } -interface Player { - baseColor: { - value: Color; - }; - cursorColor: { - value: Color; - }; - selectionColor: { - value: Color; - }; - borderColor: { - value: Color; - }; +export interface Player { + baseColor: ColorToken; + cursorColor: ColorToken; + selectionColor: ColorToken; + borderColor: ColorToken; } export interface BackgroundColor { - base: { - value: Color; - }; - hovered: { - value: Color; - }; - active: { - value: Color; - }; - focused: { - value: Color; - }; + base: ColorToken; + hovered: ColorToken; + active: ColorToken; + focused: ColorToken; } export default interface Theme { - backgroundColor: { - 100: BackgroundColor; - 300: BackgroundColor; - 500: BackgroundColor; - ok: BackgroundColor; - error: BackgroundColor; - warning: BackgroundColor; - info: BackgroundColor; - }; - borderColor: { - primary: { - value: Color; - }; - secondary: { - value: Color; - }; - muted: { - value: Color; - }; - focused: { - value: Color; - }; - active: { - value: Color; - }; - ok: { - value: Color; - }; - error: { - value: Color; - }; - warning: { - value: Color; - }; - info: { - value: Color; - }; - }; - textColor: { - primary: { - value: Color; - }; - secondary: { - value: Color; - }; - muted: { - value: Color; + backgroundColor: { + 100: BackgroundColor; + 300: BackgroundColor; + 500: BackgroundColor; + ok: BackgroundColor; + error: BackgroundColor; + warning: BackgroundColor; + info: BackgroundColor; + }; + borderColor: { + primary: ColorToken; + secondary: ColorToken; + muted: ColorToken; + focused: ColorToken; + active: ColorToken; + ok: ColorToken; + error: ColorToken; + warning: ColorToken; + info: ColorToken; + }; + textColor: { + primary: ColorToken; + secondary: ColorToken; + muted: ColorToken; + placeholder: ColorToken; + active: ColorToken; + feature: ColorToken; + ok: ColorToken; + error: ColorToken; + warning: ColorToken; + info: ColorToken; + }; + iconColor: { + primary: ColorToken; + secondary: ColorToken; + muted: ColorToken; + placeholder: ColorToken; + active: ColorToken; + feature: ColorToken; + ok: ColorToken; + error: ColorToken; + warning: ColorToken; + info: ColorToken; + }; + editor: { + background: ColorToken; + indent_guide: ColorToken; + indent_guide_active: ColorToken; + line: { + active: ColorToken; + highlighted: ColorToken; + inserted: ColorToken; + deleted: ColorToken; + modified: ColorToken; + }; + highlight: { + selection: ColorToken; + occurrence: ColorToken; + activeOccurrence: ColorToken; + matchingBracket: ColorToken; + match: ColorToken; + activeMatch: ColorToken; + related: ColorToken; + }; + gutter: { + primary: ColorToken; + active: ColorToken; + }; }; - placeholder: { - value: Color; - }; - active: { - value: Color; - }; - feature: { - value: Color; - }; - ok: { - value: Color; - }; - error: { - value: Color; - }; - warning: { - value: Color; - }; - info: { - value: Color; - }; - }; - iconColor: { - primary: { - value: Color; - }; - secondary: { - value: Color; - }; - muted: { - value: Color; - }; - placeholder: { - value: Color; - }; - active: { - value: Color; - }; - feature: { - value: Color; - }; - ok: { - value: Color; - }; - error: { - value: Color; - }; - warning: { - value: Color; - }; - info: { - value: Color; - }; - }; - editor: { - background: { - value: Color; - }; - indent_guide: { - value: Color; - }; - indent_guide_active: { - value: Color; - }; - line: { - active: { - value: Color; - }; - highlighted: { - value: Color; - }; - inserted: { - value: Color; - }; - deleted: { - value: Color; - }; - modified: { - value: Color; - }; - }; - highlight: { - selection: { - value: Color; - }; - occurrence: { - value: Color; - }; - activeOccurrence: { - value: Color; - }; - matchingBracket: { - value: Color; - }; - match: { - value: Color; - }; - activeMatch: { - value: Color; - }; - related: { - value: Color; - }; - }; - gutter: { - primary: { - value: Color; - }; - active: { - value: Color; - }; - }; - }; - syntax: { - primary: SyntaxHighlightStyle; - comment: SyntaxHighlightStyle; - punctuation: SyntaxHighlightStyle; - constant: SyntaxHighlightStyle; - keyword: SyntaxHighlightStyle; - function: SyntaxHighlightStyle; - type: SyntaxHighlightStyle; - variant: SyntaxHighlightStyle; - property: SyntaxHighlightStyle; - enum: SyntaxHighlightStyle; - operator: SyntaxHighlightStyle; - string: SyntaxHighlightStyle; - number: SyntaxHighlightStyle; - boolean: SyntaxHighlightStyle; - predictive: SyntaxHighlightStyle; - }; + syntax: { + primary: SyntaxHighlightStyle; + comment: SyntaxHighlightStyle; + punctuation: SyntaxHighlightStyle; + constant: SyntaxHighlightStyle; + keyword: SyntaxHighlightStyle; + function: SyntaxHighlightStyle; + type: SyntaxHighlightStyle; + variant: SyntaxHighlightStyle; + property: SyntaxHighlightStyle; + enum: SyntaxHighlightStyle; + operator: SyntaxHighlightStyle; + string: SyntaxHighlightStyle; + number: SyntaxHighlightStyle; + boolean: SyntaxHighlightStyle; + predictive: SyntaxHighlightStyle; + }; - player: { - 1: Player; - 2: Player; - 3: Player; - 4: Player; - 5: Player; - 6: Player; - 7: Player; - 8: Player; - }; - shadowAlpha: { - value: number; - }; + player: { + 1: Player; + 2: Player; + 3: Player; + 4: Player; + 5: Player; + 6: Player; + 7: Player; + 8: Player; + }; + shadowAlpha: NumberToken; } From e990b46b9de028c46f6f08a2847f4313c4b1fa69 Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Thu, 31 Mar 2022 20:27:25 -0700 Subject: [PATCH 14/71] Finish dark.ts initial port and restructure files to get ready for build script Build script currently fails to type check. Not sure whats going on. Will fix in the morning. Co-authored-by: Nate Butler --- styles/.gitignore | 1 + styles/buildStyleTree.ts | 11 + styles/{ => styleTree}/app.ts | 0 .../{chat-panel.ts => styleTree/chatPanel.ts} | 0 styles/{ => styleTree}/components.ts | 6 +- styles/{ => styleTree}/editor.ts | 0 .../projectPanel.ts} | 4 +- styles/{ => styleTree}/search.ts | 0 .../selectorModal.ts} | 0 styles/{ => styleTree}/workspace.ts | 0 styles/{ => themes}/dark.ts | 197 +++++++------- styles/themes/light.ts | 251 ++++++++++++++++++ styles/{ => themes}/theme.ts | 36 +-- styles/{ => tokens}/core.ts | 2 +- styles/{lib.ts => utils/color.ts} | 0 15 files changed, 388 insertions(+), 120 deletions(-) create mode 100644 styles/.gitignore create mode 100644 styles/buildStyleTree.ts rename styles/{ => styleTree}/app.ts (100%) rename styles/{chat-panel.ts => styleTree/chatPanel.ts} (100%) rename styles/{ => styleTree}/components.ts (92%) rename styles/{ => styleTree}/editor.ts (100%) rename styles/{project-panel.ts => styleTree/projectPanel.ts} (90%) rename styles/{ => styleTree}/search.ts (100%) rename styles/{selector-modal.ts => styleTree/selectorModal.ts} (100%) rename styles/{ => styleTree}/workspace.ts (100%) rename styles/{ => themes}/dark.ts (71%) create mode 100644 styles/themes/light.ts rename styles/{ => themes}/theme.ts (82%) rename styles/{ => tokens}/core.ts (97%) rename styles/{lib.ts => utils/color.ts} (100%) diff --git a/styles/.gitignore b/styles/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..c2658d7d1b31848c3b71960543cb0368e56cd4c7 --- /dev/null +++ b/styles/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/styles/buildStyleTree.ts b/styles/buildStyleTree.ts new file mode 100644 index 0000000000000000000000000000000000000000..6fa1c1576d96f312c79b52d15ce2429f3902ff8a --- /dev/null +++ b/styles/buildStyleTree.ts @@ -0,0 +1,11 @@ +import dark from "./themes/dark"; +import light from "./themes/light"; +import app from "./styleTree/app"; + +for (let theme of [dark, light]) { + let styleTree = app(theme); + + let styleTreeJson = JSON.stringify(styleTree); + console.log(styleTreeJson); + // TODO: Write style tree json to zed crate assets folder +} \ No newline at end of file diff --git a/styles/app.ts b/styles/styleTree/app.ts similarity index 100% rename from styles/app.ts rename to styles/styleTree/app.ts diff --git a/styles/chat-panel.ts b/styles/styleTree/chatPanel.ts similarity index 100% rename from styles/chat-panel.ts rename to styles/styleTree/chatPanel.ts diff --git a/styles/components.ts b/styles/styleTree/components.ts similarity index 92% rename from styles/components.ts rename to styles/styleTree/components.ts index 590c1b5eea9f6779dee0c2697a781d36b3edee60..b54956facccc3874998176870498368dbe8b5b56 100644 --- a/styles/components.ts +++ b/styles/styleTree/components.ts @@ -1,7 +1,7 @@ import chroma from "chroma-js"; -import core from "./core"; -import { Color } from "./lib"; -import Theme, { BackgroundColor, Weight } from "./theme"; +import core from "../tokens/core"; +import { Color } from "../utils/color"; +import Theme, { BackgroundColor, Weight } from "../themes/theme"; export type TextColor = keyof Theme["textColor"]; diff --git a/styles/editor.ts b/styles/styleTree/editor.ts similarity index 100% rename from styles/editor.ts rename to styles/styleTree/editor.ts diff --git a/styles/project-panel.ts b/styles/styleTree/projectPanel.ts similarity index 90% rename from styles/project-panel.ts rename to styles/styleTree/projectPanel.ts index 343e11b96b6e8adb3c6bd223a71de3e6d7d05f40..3b5fba8853da3799e69be735447e615341ef8391 100644 --- a/styles/project-panel.ts +++ b/styles/styleTree/projectPanel.ts @@ -1,7 +1,7 @@ import { panel } from "./app"; import { backgroundColor, iconColor, text, TextColor } from "./components"; -import Theme from "./theme"; -import { Color } from "./lib"; +import Theme from "../themes/theme"; +import { Color } from "../utils/color"; export default function projectPanel(theme: Theme) { function entry(theme: Theme, textColor: TextColor, background?: Color) { diff --git a/styles/search.ts b/styles/styleTree/search.ts similarity index 100% rename from styles/search.ts rename to styles/styleTree/search.ts diff --git a/styles/selector-modal.ts b/styles/styleTree/selectorModal.ts similarity index 100% rename from styles/selector-modal.ts rename to styles/styleTree/selectorModal.ts diff --git a/styles/workspace.ts b/styles/styleTree/workspace.ts similarity index 100% rename from styles/workspace.ts rename to styles/styleTree/workspace.ts diff --git a/styles/dark.ts b/styles/themes/dark.ts similarity index 71% rename from styles/dark.ts rename to styles/themes/dark.ts index 5b60bd0316a53fc24a830e23d428088675ac45de..098677a1e91c898e1e57624fa28a39fe9bbafee9 100644 --- a/styles/dark.ts +++ b/styles/themes/dark.ts @@ -1,5 +1,5 @@ -import core from "./core"; -import Theme from "./theme"; +import core from "../tokens/core"; +import Theme, { NumberToken, Syntax } from "./theme"; const { color } = core; @@ -88,159 +88,162 @@ const iconColor = { info: color.blue[500], }; +const player = { + 1: { + baseColor: color.blue[600], + cursorColor: color.blue[600], + selectionColor: color.blue[600], + borderColor: color.blue[600], + }, + 2: { + baseColor: color.indigo[500], + cursorColor: color.indigo[500], + selectionColor: color.indigo[500], + borderColor: color.indigo[500], + }, + 3: { + baseColor: color.green[500], + cursorColor: color.green[500], + selectionColor: color.green[500], + borderColor: color.green[500], + }, + 4: { + baseColor: color.orange[500], + cursorColor: color.orange[500], + selectionColor: color.orange[500], + borderColor: color.orange[500], + }, + 5: { + baseColor: color.purple[500], + cursorColor: color.purple[500], + selectionColor: color.purple[500], + borderColor: color.purple[500], + }, + 6: { + baseColor: color.teal[400], + cursorColor: color.teal[400], + selectionColor: color.teal[400], + borderColor: color.teal[400], + }, + 7: { + baseColor: color.pink[400], + cursorColor: color.pink[400], + selectionColor: color.pink[400], + borderColor: color.pink[400], + }, + 8: { + baseColor: color.yellow[400], + cursorColor: color.yellow[400], + selectionColor: color.yellow[400], + borderColor: color.yellow[400], + }, +}; + +// TODO: Fixup const editor = { background: backgroundColor[500].base, - indent_guide: color.neutral[999], - indent_guide_active: color.neutral[999], + indent_guide: borderColor.muted, + indent_guide_active: borderColor.secondary, line: { - active: color.neutral[999], - highlighted: color.neutral[999], - inserted: color.neutral[999], - deleted: color.neutral[999], - modified: color.neutral[999], + active: color.neutral[0], + highlighted: color.neutral[0], + inserted: backgroundColor.ok.active, + deleted: backgroundColor.error.active, + modified: backgroundColor.info.active, }, highlight: { - selection: color.neutral[999], - occurrence: color.neutral[999], - activeOccurrence: color.neutral[999], - matchingBracket: color.neutral[999], - match: color.neutral[999], - activeMatch: color.neutral[999], - related: color.neutral[999], + selection: player[1].selectionColor, + occurrence: backgroundColor[500].active, + activeOccurrence: color.neutral[0], + matchingBracket: color.neutral[0], + match: color.neutral[0], + activeMatch: color.neutral[0], + related: color.neutral[0], }, gutter: { - primary: color.neutral[999], - active: color.neutral[999], + primary: color.neutral[0], + active: color.neutral[0], }, }; -const syntax = { +const syntax: Syntax = { primary: { color: textColor.primary, - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, comment: { color: color.lime[200], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, punctuation: { color: textColor.primary, - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, constant: { color: color.neutral[150], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, keyword: { color: color.sky[400], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, function: { color: color.yellow[200], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, type: { color: color.teal[300], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, variant: { color: color.teal[300], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, property: { color: color.sky[300], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, enum: { color: color.sky[400], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, operator: { color: color.sky[400], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, string: { color: color.orange[300], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, number: { color: color.neutral[150], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, boolean: { color: color.neutral[150], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, predictive: { color: textColor.muted, - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, }; -const player = { - 1: { - baseColor: color.blue[600], - cursorColor: color.blue[600], - selectionColor: color.blue[600], - borderColor: color.blue[600], - }, - 2: { - baseColor: color.indigo[500], - cursorColor: color.indigo[500], - selectionColor: color.indigo[500], - borderColor: color.indigo[500], - }, - 3: { - baseColor: color.green[500], - cursorColor: color.green[500], - selectionColor: color.green[500], - borderColor: color.green[500], - }, - 4: { - baseColor: color.orange[500], - cursorColor: color.orange[500], - selectionColor: color.orange[500], - borderColor: color.orange[500], - }, - 5: { - baseColor: color.purple[500], - cursorColor: color.purple[500], - selectionColor: color.purple[500], - borderColor: color.purple[500], - }, - 6: { - baseColor: color.teal[400], - cursorColor: color.teal[400], - selectionColor: color.teal[400], - borderColor: color.teal[400], - }, - 7: { - baseColor: color.pink[400], - cursorColor: color.pink[400], - selectionColor: color.pink[400], - borderColor: color.pink[400], - }, - 8: { - baseColor: color.yellow[400], - cursorColor: color.yellow[400], - selectionColor: color.yellow[400], - borderColor: color.yellow[400], - }, +const shadowAlpha: NumberToken = { + value: 0.32, + type: "number" }; -const shadowAlpha = { - value: 0.32, +const theme: Theme = { + name: "dark", + backgroundColor, + borderColor, + textColor, + iconColor, + editor, + syntax, + player, + shadowAlpha, }; -export default function dark(): Theme { - return { - backgroundColor, - borderColor, - textColor, - iconColor, - editor, - syntax, - player, - shadowAlpha, - }; -} +export default theme; \ No newline at end of file diff --git a/styles/themes/light.ts b/styles/themes/light.ts new file mode 100644 index 0000000000000000000000000000000000000000..20760427f273e93d72c2cf7cee6a8c0f6ae7192d --- /dev/null +++ b/styles/themes/light.ts @@ -0,0 +1,251 @@ +import core from "../tokens/core"; +import Theme, { NumberToken, Syntax } from "./theme"; + +const { color } = core; + +// TODO: Replace with light values + +const backgroundColor = { + 100: { + base: color.neutral[750], + hovered: color.neutral[750], + active: color.neutral[750], + focused: color.neutral[750], + }, + 300: { + base: color.neutral[800], + hovered: color.neutral[800], + active: color.neutral[800], + focused: color.neutral[800], + }, + 500: { + base: color.neutral[900], + hovered: color.neutral[900], + active: color.neutral[900], + focused: color.neutral[900], + }, + ok: { + base: color.green[600], + hovered: color.green[600], + active: color.green[600], + focused: color.green[600], + }, + error: { + base: color.red[400], + hovered: color.red[400], + active: color.red[400], + focused: color.red[400], + }, + warning: { + base: color.amber[300], + hovered: color.amber[300], + active: color.amber[300], + focused: color.amber[300], + }, + info: { + base: color.blue[500], + hovered: color.blue[500], + active: color.blue[500], + focused: color.blue[500], + }, +}; + +const borderColor = { + primary: color.neutral[850], + secondary: color.neutral[700], + muted: color.neutral[750], + focused: color.neutral[100], + active: color.neutral[500], + ok: color.neutral[999], + error: color.neutral[999], + warning: color.neutral[999], + info: color.neutral[999], +}; + +const textColor = { + primary: color.neutral[150], + secondary: color.neutral[350], + muted: color.neutral[550], + placeholder: color.neutral[750], + active: color.neutral[0], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], +}; + +const iconColor = { + primary: color.neutral[300], + secondary: color.neutral[500], + muted: color.neutral[600], + placeholder: color.neutral[700], + active: color.neutral[50], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], +}; + +const player = { + 1: { + baseColor: color.blue[600], + cursorColor: color.blue[600], + selectionColor: color.blue[600], + borderColor: color.blue[600], + }, + 2: { + baseColor: color.indigo[500], + cursorColor: color.indigo[500], + selectionColor: color.indigo[500], + borderColor: color.indigo[500], + }, + 3: { + baseColor: color.green[500], + cursorColor: color.green[500], + selectionColor: color.green[500], + borderColor: color.green[500], + }, + 4: { + baseColor: color.orange[500], + cursorColor: color.orange[500], + selectionColor: color.orange[500], + borderColor: color.orange[500], + }, + 5: { + baseColor: color.purple[500], + cursorColor: color.purple[500], + selectionColor: color.purple[500], + borderColor: color.purple[500], + }, + 6: { + baseColor: color.teal[400], + cursorColor: color.teal[400], + selectionColor: color.teal[400], + borderColor: color.teal[400], + }, + 7: { + baseColor: color.pink[400], + cursorColor: color.pink[400], + selectionColor: color.pink[400], + borderColor: color.pink[400], + }, + 8: { + baseColor: color.yellow[400], + cursorColor: color.yellow[400], + selectionColor: color.yellow[400], + borderColor: color.yellow[400], + }, +}; + +// TODO: Fixup +const editor = { + background: backgroundColor[500].base, + indent_guide: borderColor.muted, + indent_guide_active: borderColor.secondary, + line: { + active: color.neutral[0], + highlighted: color.neutral[0], + inserted: backgroundColor.ok.active, + deleted: backgroundColor.error.active, + modified: backgroundColor.info.active, + }, + highlight: { + selection: player[1].selectionColor, + occurrence: backgroundColor[500].active, + activeOccurrence: color.neutral[0], + matchingBracket: color.neutral[0], + match: color.neutral[0], + activeMatch: color.neutral[0], + related: color.neutral[0], + }, + gutter: { + primary: color.neutral[0], + active: color.neutral[0], + }, +}; + +const syntax: Syntax = { + primary: { + color: textColor.primary, + weight: { value: "normal", type: "fontWeight" }, + }, + comment: { + color: color.lime[200], + weight: { value: "normal", type: "fontWeight" }, + }, + punctuation: { + color: textColor.primary, + weight: { value: "normal", type: "fontWeight" }, + }, + constant: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + keyword: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + function: { + color: color.yellow[200], + weight: { value: "normal", type: "fontWeight" }, + }, + type: { + color: color.teal[300], + weight: { value: "normal", type: "fontWeight" }, + }, + variant: { + color: color.teal[300], + weight: { value: "normal", type: "fontWeight" }, + }, + property: { + color: color.sky[300], + weight: { value: "normal", type: "fontWeight" }, + }, + enum: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + operator: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + string: { + color: color.orange[300], + weight: { value: "normal", type: "fontWeight" }, + }, + number: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + boolean: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + predictive: { + color: textColor.muted, + weight: { value: "normal", type: "fontWeight" }, + }, +}; + +const shadowAlpha: NumberToken = { + value: 0.32, + type: "number" +}; + +const theme: Theme = { + name: "light", + backgroundColor, + borderColor, + textColor, + iconColor, + editor, + syntax, + player, + shadowAlpha, +}; + +export default theme; diff --git a/styles/theme.ts b/styles/themes/theme.ts similarity index 82% rename from styles/theme.ts rename to styles/themes/theme.ts index 9d70ea0227053f81e48d2e3359379db635bed7c8..e319f510c7daa52c64caefc3d8d2c8c7bfde4221 100644 --- a/styles/theme.ts +++ b/styles/themes/theme.ts @@ -43,6 +43,24 @@ export interface BackgroundColor { focused: ColorToken; } +export interface Syntax { + primary: SyntaxHighlightStyle; + comment: SyntaxHighlightStyle; + punctuation: SyntaxHighlightStyle; + constant: SyntaxHighlightStyle; + keyword: SyntaxHighlightStyle; + function: SyntaxHighlightStyle; + type: SyntaxHighlightStyle; + variant: SyntaxHighlightStyle; + property: SyntaxHighlightStyle; + enum: SyntaxHighlightStyle; + operator: SyntaxHighlightStyle; + string: SyntaxHighlightStyle; + number: SyntaxHighlightStyle; + boolean: SyntaxHighlightStyle; + predictive: SyntaxHighlightStyle; +}; + export default interface Theme { backgroundColor: { 100: BackgroundColor; @@ -114,23 +132,7 @@ export default interface Theme { }; }; - syntax: { - primary: SyntaxHighlightStyle; - comment: SyntaxHighlightStyle; - punctuation: SyntaxHighlightStyle; - constant: SyntaxHighlightStyle; - keyword: SyntaxHighlightStyle; - function: SyntaxHighlightStyle; - type: SyntaxHighlightStyle; - variant: SyntaxHighlightStyle; - property: SyntaxHighlightStyle; - enum: SyntaxHighlightStyle; - operator: SyntaxHighlightStyle; - string: SyntaxHighlightStyle; - number: SyntaxHighlightStyle; - boolean: SyntaxHighlightStyle; - predictive: SyntaxHighlightStyle; - }; + syntax: Syntax, player: { 1: Player; diff --git a/styles/core.ts b/styles/tokens/core.ts similarity index 97% rename from styles/core.ts rename to styles/tokens/core.ts index 49e376b4ebf81968b2681179be46b3c5b27055b6..38bfe82e28129954a2f5602038d575a3cfbb94af 100644 --- a/styles/core.ts +++ b/styles/tokens/core.ts @@ -1,4 +1,4 @@ -import { colorRamp } from "./lib"; +import { colorRamp } from "../utils/color"; export default { fontFamily: { diff --git a/styles/lib.ts b/styles/utils/color.ts similarity index 100% rename from styles/lib.ts rename to styles/utils/color.ts From 1d42cbcf421e7b39a40ed0de127907f470de878e Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 31 Mar 2022 23:42:45 -0400 Subject: [PATCH 15/71] Type `name` --- styles/themes/theme.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/styles/themes/theme.ts b/styles/themes/theme.ts index e319f510c7daa52c64caefc3d8d2c8c7bfde4221..a7760459897b0bedec0d87512e669d1d7ae0a3b4 100644 --- a/styles/themes/theme.ts +++ b/styles/themes/theme.ts @@ -62,6 +62,7 @@ export interface Syntax { }; export default interface Theme { + name: string; backgroundColor: { 100: BackgroundColor; 300: BackgroundColor; From cea3ac62175fa9b64d4e4bbcd2048e222b48e633 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 31 Mar 2022 23:43:01 -0400 Subject: [PATCH 16/71] Update renamed/moved imports --- styles/styleTree/app.ts | 8 ++++---- styles/styleTree/chatPanel.ts | 4 ++-- styles/styleTree/components.ts | 2 +- styles/styleTree/editor.ts | 2 +- styles/styleTree/search.ts | 2 +- styles/styleTree/selectorModal.ts | 2 +- styles/styleTree/workspace.ts | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/styles/styleTree/app.ts b/styles/styleTree/app.ts index a65442db0737630f77d1de92d921d934ed4a8804..c7edfdc2701f06e6cb1b41beb779ad6bc0aca75b 100644 --- a/styles/styleTree/app.ts +++ b/styles/styleTree/app.ts @@ -1,10 +1,10 @@ -import chatPanel from "./chat-panel"; +import Theme from "../themes/theme"; +import chatPanel from "./chatPanel"; import { backgroundColor, borderColor, text } from "./components"; import editor from "./editor"; -import projectPanel from "./project-panel"; +import projectPanel from "./projectPanel"; import search from "./search"; -import selectorModal from "./selector-modal"; -import Theme from "./theme"; +import selectorModal from "./selectorModal"; import workspace from "./workspace"; export const panel = { diff --git a/styles/styleTree/chatPanel.ts b/styles/styleTree/chatPanel.ts index c6bf0148ea4c5d9345c29d5df94c978588e4fd0d..ea9a8ffe22a83e2b7135bc886273f2da2d7c1502 100644 --- a/styles/styleTree/chatPanel.ts +++ b/styles/styleTree/chatPanel.ts @@ -1,3 +1,4 @@ +import Theme from "../themes/theme"; import { panel } from "./app"; import { backgroundColor, @@ -5,9 +6,8 @@ import { player, shadow, text, - TextColor, + TextColor } from "./components"; -import Theme from "./theme"; export default function chatPanel(theme: Theme) { function channelSelectItem( diff --git a/styles/styleTree/components.ts b/styles/styleTree/components.ts index b54956facccc3874998176870498368dbe8b5b56..8038cdcd3b37494e1217fc4557090cb7bfe01378 100644 --- a/styles/styleTree/components.ts +++ b/styles/styleTree/components.ts @@ -1,7 +1,7 @@ import chroma from "chroma-js"; +import Theme, { BackgroundColor, Weight } from "../themes/theme"; import core from "../tokens/core"; import { Color } from "../utils/color"; -import Theme, { BackgroundColor, Weight } from "../themes/theme"; export type TextColor = keyof Theme["textColor"]; diff --git a/styles/styleTree/editor.ts b/styles/styleTree/editor.ts index a27464eee2182ecfb0633623ff4e773cfb85b35d..5d800881e2750942c2b7d6f1113df203aff97fb3 100644 --- a/styles/styleTree/editor.ts +++ b/styles/styleTree/editor.ts @@ -1,3 +1,4 @@ +import Theme from "../themes/theme"; import { backgroundColor, border, @@ -6,7 +7,6 @@ import { text, TextColor } from "./components"; -import Theme from "./theme"; export default function editor(theme: Theme) { const autocompleteItem = { diff --git a/styles/styleTree/search.ts b/styles/styleTree/search.ts index ced2266ea73480da11f880d4c56b4a65aa83f12c..fd2fd2568156f31a877de40773b9382eb5a8e6ca 100644 --- a/styles/styleTree/search.ts +++ b/styles/styleTree/search.ts @@ -1,5 +1,5 @@ +import Theme from "../themes/theme"; import { backgroundColor, border, player, text } from "./components"; -import Theme from "./theme"; export default function search(theme: Theme) { const optionButton = { diff --git a/styles/styleTree/selectorModal.ts b/styles/styleTree/selectorModal.ts index ddba32683a976153eac6fc0f49f6a5df9a835a1f..fdebe712fa0f1650a3fe4411b4579aa30bb44e2e 100644 --- a/styles/styleTree/selectorModal.ts +++ b/styles/styleTree/selectorModal.ts @@ -1,5 +1,5 @@ +import Theme from "../themes/theme"; import { backgroundColor, border, player, shadow, text } from "./components"; -import Theme from "./theme"; export default function selectorModal(theme: Theme): Object { const item = { diff --git a/styles/styleTree/workspace.ts b/styles/styleTree/workspace.ts index 1a50fe9ee1c248de6d48a9521efa9f9cc8f82fbb..e8232442b6f01ec2d0e3486509218f4b4c9e7562 100644 --- a/styles/styleTree/workspace.ts +++ b/styles/styleTree/workspace.ts @@ -1,5 +1,5 @@ +import Theme from "../themes/theme"; import { backgroundColor, border, iconColor, text } from "./components"; -import Theme from "./theme"; export default function workspace(theme: Theme) { const signInPrompt = { From 99738db8a5dc3cab8eed2f5662dba341142d132b Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 1 Apr 2022 08:25:58 -0600 Subject: [PATCH 17/71] Fix TS compile error --- styles/styleTree/components.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/styles/styleTree/components.ts b/styles/styleTree/components.ts index 8038cdcd3b37494e1217fc4557090cb7bfe01378..55a64cb1ecb4ec8f60878d9e795f671a9a5cfede 100644 --- a/styles/styleTree/components.ts +++ b/styles/styleTree/components.ts @@ -15,7 +15,7 @@ export function text( underline?: boolean; } ) { - const sizeKey = properties.size || fontFamily === "sans" ? "sm" : "md"; + const sizeKey = properties?.size || fontFamily === "sans" ? "sm" : "md"; const size = core.fontSize[sizeKey].value; return { From 6734a0e69d273abf3f2a5887930285540a65e7bf Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 1 Apr 2022 09:45:11 -0600 Subject: [PATCH 18/71] Write theme JSON files from buildThemes script Co-Authored-By: Nate Butler <1714999+iamnbutler@users.noreply.github.com> --- script/build-themes | 7 + styles/buildStyleTree.ts | 11 - styles/buildThemes.ts | 17 ++ styles/package-lock.json | 279 ++++++++++++++++++++- styles/package.json | 7 +- styles/themes/dark.ts | 432 ++++++++++++++++----------------- styles/themes/light.ts | 430 ++++++++++++++++---------------- styles/tsconfig.json | 12 + styles/utils/decamelizeTree.ts | 21 ++ 9 files changed, 771 insertions(+), 445 deletions(-) create mode 100755 script/build-themes delete mode 100644 styles/buildStyleTree.ts create mode 100644 styles/buildThemes.ts create mode 100644 styles/tsconfig.json create mode 100644 styles/utils/decamelizeTree.ts diff --git a/script/build-themes b/script/build-themes new file mode 100755 index 0000000000000000000000000000000000000000..aef3a4250cdac8a3934938e812d5c7602d388731 --- /dev/null +++ b/script/build-themes @@ -0,0 +1,7 @@ +#!/bin/bash + +set -e + +cd styles +npm install +npm run build diff --git a/styles/buildStyleTree.ts b/styles/buildStyleTree.ts deleted file mode 100644 index 6fa1c1576d96f312c79b52d15ce2429f3902ff8a..0000000000000000000000000000000000000000 --- a/styles/buildStyleTree.ts +++ /dev/null @@ -1,11 +0,0 @@ -import dark from "./themes/dark"; -import light from "./themes/light"; -import app from "./styleTree/app"; - -for (let theme of [dark, light]) { - let styleTree = app(theme); - - let styleTreeJson = JSON.stringify(styleTree); - console.log(styleTreeJson); - // TODO: Write style tree json to zed crate assets folder -} \ No newline at end of file diff --git a/styles/buildThemes.ts b/styles/buildThemes.ts new file mode 100644 index 0000000000000000000000000000000000000000..ced82e98664980b3d1af9f50d8f4f8f498f59d49 --- /dev/null +++ b/styles/buildThemes.ts @@ -0,0 +1,17 @@ +import * as fs from "fs"; +import * as path from "path"; +import dark from "./themes/dark"; +import light from "./themes/light"; +import app from "./styleTree/app"; +import decamelizeTree from "./utils/decamelizeTree"; + +const themes = [dark, light]; +for (let theme of themes) { + let styleTree = decamelizeTree(app(theme)); + let styleTreeJSON = JSON.stringify(styleTree, null, 2); + let outPath = path.resolve( + `${__dirname}/../crates/zed/assets/themes/${theme.name}.json` + ); + fs.writeFileSync(outPath, styleTreeJSON); + console.log(`Generated ${outPath}`); +} diff --git a/styles/package-lock.json b/styles/package-lock.json index 7b8503bf720d572d64bb9179a78489beaa068cb4..582f1c84968a5c1a25ddac5fd3c21ba907353c6d 100644 --- a/styles/package-lock.json +++ b/styles/package-lock.json @@ -10,30 +10,307 @@ "license": "ISC", "dependencies": { "@types/chroma-js": "^2.1.3", - "chroma-js": "^2.4.2" + "@types/node": "^17.0.23", + "case-anything": "^2.1.10", + "chroma-js": "^2.4.2", + "ts-node": "^10.7.0" } }, + "node_modules/@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "dependencies": { + "@cspotcode/source-map-consumer": "0.8.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" + }, "node_modules/@types/chroma-js": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" }, + "node_modules/@types/node": { + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + }, + "node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/case-anything": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", + "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, "node_modules/chroma-js": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/ts-node": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", + "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "dependencies": { + "@cspotcode/source-map-support": "0.7.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.0", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/typescript": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", + "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==" + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } } }, "dependencies": { + "@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==" + }, + "@cspotcode/source-map-support": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "requires": { + "@cspotcode/source-map-consumer": "0.8.0" + } + }, + "@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" + }, + "@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" + }, + "@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" + }, + "@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" + }, "@types/chroma-js": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" }, + "@types/node": { + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + }, + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "case-anything": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", + "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==" + }, "chroma-js": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "ts-node": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", + "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "requires": { + "@cspotcode/source-map-support": "0.7.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.0", + "yn": "3.1.1" + } + }, + "typescript": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "peer": true + }, + "v8-compile-cache-lib": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", + "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==" + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" } } } diff --git a/styles/package.json b/styles/package.json index c66da8718b6d4f2047cbc4e7580036946dab1fb8..c270bba0e1563cee758bbf5a02fb9fc1848b37ae 100644 --- a/styles/package.json +++ b/styles/package.json @@ -4,12 +4,15 @@ "description": "", "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "build": "ts-node buildThemes.ts" }, "author": "", "license": "ISC", "dependencies": { "@types/chroma-js": "^2.1.3", - "chroma-js": "^2.4.2" + "@types/node": "^17.0.23", + "case-anything": "^2.1.10", + "chroma-js": "^2.4.2", + "ts-node": "^10.7.0" } } diff --git a/styles/themes/dark.ts b/styles/themes/dark.ts index 098677a1e91c898e1e57624fa28a39fe9bbafee9..42f80cf4c670deda733f434c3cbab691239f5396 100644 --- a/styles/themes/dark.ts +++ b/styles/themes/dark.ts @@ -4,246 +4,246 @@ import Theme, { NumberToken, Syntax } from "./theme"; const { color } = core; const backgroundColor = { - 100: { - base: color.neutral[750], - hovered: color.neutral[750], - active: color.neutral[750], - focused: color.neutral[750], - }, - 300: { - base: color.neutral[800], - hovered: color.neutral[800], - active: color.neutral[800], - focused: color.neutral[800], - }, - 500: { - base: color.neutral[900], - hovered: color.neutral[900], - active: color.neutral[900], - focused: color.neutral[900], - }, - ok: { - base: color.green[600], - hovered: color.green[600], - active: color.green[600], - focused: color.green[600], - }, - error: { - base: color.red[400], - hovered: color.red[400], - active: color.red[400], - focused: color.red[400], - }, - warning: { - base: color.amber[300], - hovered: color.amber[300], - active: color.amber[300], - focused: color.amber[300], - }, - info: { - base: color.blue[500], - hovered: color.blue[500], - active: color.blue[500], - focused: color.blue[500], - }, + 100: { + base: color.neutral[750], + hovered: color.neutral[750], + active: color.neutral[750], + focused: color.neutral[750], + }, + 300: { + base: color.neutral[800], + hovered: color.neutral[800], + active: color.neutral[800], + focused: color.neutral[800], + }, + 500: { + base: color.neutral[900], + hovered: color.neutral[900], + active: color.neutral[900], + focused: color.neutral[900], + }, + ok: { + base: color.green[600], + hovered: color.green[600], + active: color.green[600], + focused: color.green[600], + }, + error: { + base: color.red[400], + hovered: color.red[400], + active: color.red[400], + focused: color.red[400], + }, + warning: { + base: color.amber[300], + hovered: color.amber[300], + active: color.amber[300], + focused: color.amber[300], + }, + info: { + base: color.blue[500], + hovered: color.blue[500], + active: color.blue[500], + focused: color.blue[500], + }, }; const borderColor = { - primary: color.neutral[850], - secondary: color.neutral[700], - muted: color.neutral[750], - focused: color.neutral[100], - active: color.neutral[500], - ok: color.neutral[999], - error: color.neutral[999], - warning: color.neutral[999], - info: color.neutral[999], + primary: color.neutral[850], + secondary: color.neutral[700], + muted: color.neutral[750], + focused: color.neutral[100], + active: color.neutral[500], + ok: color.neutral[1000], + error: color.neutral[1000], + warning: color.neutral[1000], + info: color.neutral[1000], }; const textColor = { - primary: color.neutral[150], - secondary: color.neutral[350], - muted: color.neutral[550], - placeholder: color.neutral[750], - active: color.neutral[0], - //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + primary: color.neutral[150], + secondary: color.neutral[350], + muted: color.neutral[550], + placeholder: color.neutral[750], + active: color.neutral[0], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], }; const iconColor = { - primary: color.neutral[300], - secondary: color.neutral[500], - muted: color.neutral[600], - placeholder: color.neutral[700], - active: color.neutral[50], - //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + primary: color.neutral[300], + secondary: color.neutral[500], + muted: color.neutral[600], + placeholder: color.neutral[700], + active: color.neutral[50], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], }; const player = { - 1: { - baseColor: color.blue[600], - cursorColor: color.blue[600], - selectionColor: color.blue[600], - borderColor: color.blue[600], - }, - 2: { - baseColor: color.indigo[500], - cursorColor: color.indigo[500], - selectionColor: color.indigo[500], - borderColor: color.indigo[500], - }, - 3: { - baseColor: color.green[500], - cursorColor: color.green[500], - selectionColor: color.green[500], - borderColor: color.green[500], - }, - 4: { - baseColor: color.orange[500], - cursorColor: color.orange[500], - selectionColor: color.orange[500], - borderColor: color.orange[500], - }, - 5: { - baseColor: color.purple[500], - cursorColor: color.purple[500], - selectionColor: color.purple[500], - borderColor: color.purple[500], - }, - 6: { - baseColor: color.teal[400], - cursorColor: color.teal[400], - selectionColor: color.teal[400], - borderColor: color.teal[400], - }, - 7: { - baseColor: color.pink[400], - cursorColor: color.pink[400], - selectionColor: color.pink[400], - borderColor: color.pink[400], - }, - 8: { - baseColor: color.yellow[400], - cursorColor: color.yellow[400], - selectionColor: color.yellow[400], - borderColor: color.yellow[400], - }, + 1: { + baseColor: color.blue[600], + cursorColor: color.blue[600], + selectionColor: color.blue[600], + borderColor: color.blue[600], + }, + 2: { + baseColor: color.indigo[500], + cursorColor: color.indigo[500], + selectionColor: color.indigo[500], + borderColor: color.indigo[500], + }, + 3: { + baseColor: color.green[500], + cursorColor: color.green[500], + selectionColor: color.green[500], + borderColor: color.green[500], + }, + 4: { + baseColor: color.orange[500], + cursorColor: color.orange[500], + selectionColor: color.orange[500], + borderColor: color.orange[500], + }, + 5: { + baseColor: color.purple[500], + cursorColor: color.purple[500], + selectionColor: color.purple[500], + borderColor: color.purple[500], + }, + 6: { + baseColor: color.teal[400], + cursorColor: color.teal[400], + selectionColor: color.teal[400], + borderColor: color.teal[400], + }, + 7: { + baseColor: color.pink[400], + cursorColor: color.pink[400], + selectionColor: color.pink[400], + borderColor: color.pink[400], + }, + 8: { + baseColor: color.yellow[400], + cursorColor: color.yellow[400], + selectionColor: color.yellow[400], + borderColor: color.yellow[400], + }, }; // TODO: Fixup const editor = { - background: backgroundColor[500].base, - indent_guide: borderColor.muted, - indent_guide_active: borderColor.secondary, - line: { - active: color.neutral[0], - highlighted: color.neutral[0], - inserted: backgroundColor.ok.active, - deleted: backgroundColor.error.active, - modified: backgroundColor.info.active, - }, - highlight: { - selection: player[1].selectionColor, - occurrence: backgroundColor[500].active, - activeOccurrence: color.neutral[0], - matchingBracket: color.neutral[0], - match: color.neutral[0], - activeMatch: color.neutral[0], - related: color.neutral[0], - }, - gutter: { - primary: color.neutral[0], - active: color.neutral[0], - }, + background: backgroundColor[500].base, + indent_guide: borderColor.muted, + indent_guide_active: borderColor.secondary, + line: { + active: color.neutral[0], + highlighted: color.neutral[0], + inserted: backgroundColor.ok.active, + deleted: backgroundColor.error.active, + modified: backgroundColor.info.active, + }, + highlight: { + selection: player[1].selectionColor, + occurrence: backgroundColor[500].active, + activeOccurrence: color.neutral[0], + matchingBracket: color.neutral[0], + match: color.neutral[0], + activeMatch: color.neutral[0], + related: color.neutral[0], + }, + gutter: { + primary: color.neutral[0], + active: color.neutral[0], + }, }; const syntax: Syntax = { - primary: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, - }, - comment: { - color: color.lime[200], - weight: { value: "normal", type: "fontWeight" }, - }, - punctuation: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, - }, - constant: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - keyword: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - function: { - color: color.yellow[200], - weight: { value: "normal", type: "fontWeight" }, - }, - type: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, - }, - variant: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, - }, - property: { - color: color.sky[300], - weight: { value: "normal", type: "fontWeight" }, - }, - enum: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - operator: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - string: { - color: color.orange[300], - weight: { value: "normal", type: "fontWeight" }, - }, - number: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - boolean: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - predictive: { - color: textColor.muted, - weight: { value: "normal", type: "fontWeight" }, - }, + primary: { + color: textColor.primary, + weight: { value: "normal", type: "fontWeight" }, + }, + comment: { + color: color.lime[200], + weight: { value: "normal", type: "fontWeight" }, + }, + punctuation: { + color: textColor.primary, + weight: { value: "normal", type: "fontWeight" }, + }, + constant: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + keyword: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + function: { + color: color.yellow[200], + weight: { value: "normal", type: "fontWeight" }, + }, + type: { + color: color.teal[300], + weight: { value: "normal", type: "fontWeight" }, + }, + variant: { + color: color.teal[300], + weight: { value: "normal", type: "fontWeight" }, + }, + property: { + color: color.sky[300], + weight: { value: "normal", type: "fontWeight" }, + }, + enum: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + operator: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + string: { + color: color.orange[300], + weight: { value: "normal", type: "fontWeight" }, + }, + number: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + boolean: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + predictive: { + color: textColor.muted, + weight: { value: "normal", type: "fontWeight" }, + }, }; const shadowAlpha: NumberToken = { - value: 0.32, - type: "number" + value: 0.32, + type: "number", }; const theme: Theme = { - name: "dark", - backgroundColor, - borderColor, - textColor, - iconColor, - editor, - syntax, - player, - shadowAlpha, + name: "dark", + backgroundColor, + borderColor, + textColor, + iconColor, + editor, + syntax, + player, + shadowAlpha, }; -export default theme; \ No newline at end of file +export default theme; diff --git a/styles/themes/light.ts b/styles/themes/light.ts index 20760427f273e93d72c2cf7cee6a8c0f6ae7192d..7a9bf1b552650b81288e70acc6c7500c80a8246b 100644 --- a/styles/themes/light.ts +++ b/styles/themes/light.ts @@ -6,246 +6,246 @@ const { color } = core; // TODO: Replace with light values const backgroundColor = { - 100: { - base: color.neutral[750], - hovered: color.neutral[750], - active: color.neutral[750], - focused: color.neutral[750], - }, - 300: { - base: color.neutral[800], - hovered: color.neutral[800], - active: color.neutral[800], - focused: color.neutral[800], - }, - 500: { - base: color.neutral[900], - hovered: color.neutral[900], - active: color.neutral[900], - focused: color.neutral[900], - }, - ok: { - base: color.green[600], - hovered: color.green[600], - active: color.green[600], - focused: color.green[600], - }, - error: { - base: color.red[400], - hovered: color.red[400], - active: color.red[400], - focused: color.red[400], - }, - warning: { - base: color.amber[300], - hovered: color.amber[300], - active: color.amber[300], - focused: color.amber[300], - }, - info: { - base: color.blue[500], - hovered: color.blue[500], - active: color.blue[500], - focused: color.blue[500], - }, + 100: { + base: color.neutral[750], + hovered: color.neutral[750], + active: color.neutral[750], + focused: color.neutral[750], + }, + 300: { + base: color.neutral[800], + hovered: color.neutral[800], + active: color.neutral[800], + focused: color.neutral[800], + }, + 500: { + base: color.neutral[900], + hovered: color.neutral[900], + active: color.neutral[900], + focused: color.neutral[900], + }, + ok: { + base: color.green[600], + hovered: color.green[600], + active: color.green[600], + focused: color.green[600], + }, + error: { + base: color.red[400], + hovered: color.red[400], + active: color.red[400], + focused: color.red[400], + }, + warning: { + base: color.amber[300], + hovered: color.amber[300], + active: color.amber[300], + focused: color.amber[300], + }, + info: { + base: color.blue[500], + hovered: color.blue[500], + active: color.blue[500], + focused: color.blue[500], + }, }; const borderColor = { - primary: color.neutral[850], - secondary: color.neutral[700], - muted: color.neutral[750], - focused: color.neutral[100], - active: color.neutral[500], - ok: color.neutral[999], - error: color.neutral[999], - warning: color.neutral[999], - info: color.neutral[999], + primary: color.neutral[850], + secondary: color.neutral[700], + muted: color.neutral[750], + focused: color.neutral[100], + active: color.neutral[500], + ok: color.neutral[1000], + error: color.neutral[1000], + warning: color.neutral[1000], + info: color.neutral[1000], }; const textColor = { - primary: color.neutral[150], - secondary: color.neutral[350], - muted: color.neutral[550], - placeholder: color.neutral[750], - active: color.neutral[0], - //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + primary: color.neutral[150], + secondary: color.neutral[350], + muted: color.neutral[550], + placeholder: color.neutral[750], + active: color.neutral[0], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], }; const iconColor = { - primary: color.neutral[300], - secondary: color.neutral[500], - muted: color.neutral[600], - placeholder: color.neutral[700], - active: color.neutral[50], - //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + primary: color.neutral[300], + secondary: color.neutral[500], + muted: color.neutral[600], + placeholder: color.neutral[700], + active: color.neutral[50], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], }; const player = { - 1: { - baseColor: color.blue[600], - cursorColor: color.blue[600], - selectionColor: color.blue[600], - borderColor: color.blue[600], - }, - 2: { - baseColor: color.indigo[500], - cursorColor: color.indigo[500], - selectionColor: color.indigo[500], - borderColor: color.indigo[500], - }, - 3: { - baseColor: color.green[500], - cursorColor: color.green[500], - selectionColor: color.green[500], - borderColor: color.green[500], - }, - 4: { - baseColor: color.orange[500], - cursorColor: color.orange[500], - selectionColor: color.orange[500], - borderColor: color.orange[500], - }, - 5: { - baseColor: color.purple[500], - cursorColor: color.purple[500], - selectionColor: color.purple[500], - borderColor: color.purple[500], - }, - 6: { - baseColor: color.teal[400], - cursorColor: color.teal[400], - selectionColor: color.teal[400], - borderColor: color.teal[400], - }, - 7: { - baseColor: color.pink[400], - cursorColor: color.pink[400], - selectionColor: color.pink[400], - borderColor: color.pink[400], - }, - 8: { - baseColor: color.yellow[400], - cursorColor: color.yellow[400], - selectionColor: color.yellow[400], - borderColor: color.yellow[400], - }, + 1: { + baseColor: color.blue[600], + cursorColor: color.blue[600], + selectionColor: color.blue[600], + borderColor: color.blue[600], + }, + 2: { + baseColor: color.indigo[500], + cursorColor: color.indigo[500], + selectionColor: color.indigo[500], + borderColor: color.indigo[500], + }, + 3: { + baseColor: color.green[500], + cursorColor: color.green[500], + selectionColor: color.green[500], + borderColor: color.green[500], + }, + 4: { + baseColor: color.orange[500], + cursorColor: color.orange[500], + selectionColor: color.orange[500], + borderColor: color.orange[500], + }, + 5: { + baseColor: color.purple[500], + cursorColor: color.purple[500], + selectionColor: color.purple[500], + borderColor: color.purple[500], + }, + 6: { + baseColor: color.teal[400], + cursorColor: color.teal[400], + selectionColor: color.teal[400], + borderColor: color.teal[400], + }, + 7: { + baseColor: color.pink[400], + cursorColor: color.pink[400], + selectionColor: color.pink[400], + borderColor: color.pink[400], + }, + 8: { + baseColor: color.yellow[400], + cursorColor: color.yellow[400], + selectionColor: color.yellow[400], + borderColor: color.yellow[400], + }, }; // TODO: Fixup const editor = { - background: backgroundColor[500].base, - indent_guide: borderColor.muted, - indent_guide_active: borderColor.secondary, - line: { - active: color.neutral[0], - highlighted: color.neutral[0], - inserted: backgroundColor.ok.active, - deleted: backgroundColor.error.active, - modified: backgroundColor.info.active, - }, - highlight: { - selection: player[1].selectionColor, - occurrence: backgroundColor[500].active, - activeOccurrence: color.neutral[0], - matchingBracket: color.neutral[0], - match: color.neutral[0], - activeMatch: color.neutral[0], - related: color.neutral[0], - }, - gutter: { - primary: color.neutral[0], - active: color.neutral[0], - }, + background: backgroundColor[500].base, + indent_guide: borderColor.muted, + indent_guide_active: borderColor.secondary, + line: { + active: color.neutral[0], + highlighted: color.neutral[0], + inserted: backgroundColor.ok.active, + deleted: backgroundColor.error.active, + modified: backgroundColor.info.active, + }, + highlight: { + selection: player[1].selectionColor, + occurrence: backgroundColor[500].active, + activeOccurrence: color.neutral[0], + matchingBracket: color.neutral[0], + match: color.neutral[0], + activeMatch: color.neutral[0], + related: color.neutral[0], + }, + gutter: { + primary: color.neutral[0], + active: color.neutral[0], + }, }; const syntax: Syntax = { - primary: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, - }, - comment: { - color: color.lime[200], - weight: { value: "normal", type: "fontWeight" }, - }, - punctuation: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, - }, - constant: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - keyword: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - function: { - color: color.yellow[200], - weight: { value: "normal", type: "fontWeight" }, - }, - type: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, - }, - variant: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, - }, - property: { - color: color.sky[300], - weight: { value: "normal", type: "fontWeight" }, - }, - enum: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - operator: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - string: { - color: color.orange[300], - weight: { value: "normal", type: "fontWeight" }, - }, - number: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - boolean: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - predictive: { - color: textColor.muted, - weight: { value: "normal", type: "fontWeight" }, - }, + primary: { + color: textColor.primary, + weight: { value: "normal", type: "fontWeight" }, + }, + comment: { + color: color.lime[200], + weight: { value: "normal", type: "fontWeight" }, + }, + punctuation: { + color: textColor.primary, + weight: { value: "normal", type: "fontWeight" }, + }, + constant: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + keyword: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + function: { + color: color.yellow[200], + weight: { value: "normal", type: "fontWeight" }, + }, + type: { + color: color.teal[300], + weight: { value: "normal", type: "fontWeight" }, + }, + variant: { + color: color.teal[300], + weight: { value: "normal", type: "fontWeight" }, + }, + property: { + color: color.sky[300], + weight: { value: "normal", type: "fontWeight" }, + }, + enum: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + operator: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + string: { + color: color.orange[300], + weight: { value: "normal", type: "fontWeight" }, + }, + number: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + boolean: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + predictive: { + color: textColor.muted, + weight: { value: "normal", type: "fontWeight" }, + }, }; const shadowAlpha: NumberToken = { - value: 0.32, - type: "number" + value: 0.32, + type: "number", }; const theme: Theme = { - name: "light", - backgroundColor, - borderColor, - textColor, - iconColor, - editor, - syntax, - player, - shadowAlpha, + name: "light", + backgroundColor, + borderColor, + textColor, + iconColor, + editor, + syntax, + player, + shadowAlpha, }; export default theme; diff --git a/styles/tsconfig.json b/styles/tsconfig.json new file mode 100644 index 0000000000000000000000000000000000000000..3dfbcc715ef17318d9267709bb8f25a8b91ecac0 --- /dev/null +++ b/styles/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "target": "es2015", + "module": "commonjs", + "esModuleInterop": true, + "noImplicitAny": true, + "removeComments": true, + "preserveConstEnums": true, + "sourceMap": true + }, + "exclude": ["node_modules"] + } \ No newline at end of file diff --git a/styles/utils/decamelizeTree.ts b/styles/utils/decamelizeTree.ts new file mode 100644 index 0000000000000000000000000000000000000000..d606902082e974b6cb7b0602e06cc32b0a9e1b5f --- /dev/null +++ b/styles/utils/decamelizeTree.ts @@ -0,0 +1,21 @@ +import { snakeCase } from "case-anything"; + +export default function decamelizeTree(object: { [key: string]: any }) { + const snakeObject: { [key: string]: any } = {}; + for (const key in object) { + snakeObject[snakeCase(key)] = decamelizeValue(object[key]); + } + return snakeObject; +} + +function decamelizeValue(value: any): any { + if (typeof value === "object") { + if (Array.isArray(value)) { + return value.map(decamelizeValue); + } else { + return decamelizeTree(value); + } + } else { + return value; + } +} From 9147a19522b899b837bad38b14b81fe88bb46c1a Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 1 Apr 2022 09:56:50 -0600 Subject: [PATCH 19/71] Update style tree based on changes to _base.toml from main Co-Authored-By: Nate Butler <1714999+iamnbutler@users.noreply.github.com> --- styles/styleTree/search.ts | 15 ++++++--------- styles/styleTree/workspace.ts | 10 +++++++++- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/styles/styleTree/search.ts b/styles/styleTree/search.ts index fd2fd2568156f31a877de40773b9382eb5a8e6ca..7ba04cd688e01f5b3a4f47b35311195fde73fefb 100644 --- a/styles/styleTree/search.ts +++ b/styles/styleTree/search.ts @@ -20,7 +20,6 @@ export default function search(theme: Theme) { }; return { - background: backgroundColor(theme, 300), matchBackground: theme.editor.highlight.match, tabIconSpacing: 4, tabIconWidth: 14, @@ -35,22 +34,20 @@ export default function search(theme: Theme) { editor: { background: backgroundColor(theme, 500), cornerRadius: 6, - maxWidth: 400, + minWidth: 200, + maxWidth: 500, placeholderText: text(theme, "mono", "placeholder"), selection: player(theme, 1).selection, text: text(theme, "mono", "primary"), border: border(theme, "primary"), margin: { - bottom: 5, - left: 5, right: 5, - top: 5, }, padding: { - bottom: 3, - left: 13, - right: 13, top: 3, + bottom: 3, + left: 14, + right: 14, }, }, hoveredOptionButton: { @@ -62,7 +59,7 @@ export default function search(theme: Theme) { border: border(theme, "error"), }, matchIndex: { - ...text(theme, "mono", "secondary"), + ...text(theme, "mono", "muted"), padding: 6, }, optionButton, diff --git a/styles/styleTree/workspace.ts b/styles/styleTree/workspace.ts index e8232442b6f01ec2d0e3486509218f4b4c9e7562..148db089183e77274a81a122d6f02d920b640237 100644 --- a/styles/styleTree/workspace.ts +++ b/styles/styleTree/workspace.ts @@ -127,7 +127,15 @@ export default function workspace(theme: Theme) { }, }, toolbar: { - height: 44, + height: 34, + background: backgroundColor(theme, 300), + border: border(theme, "primary", { bottom: true }), + itemSpacing: 8, + padding: { left: 16, right: 8, top: 4, bottom: 4 }, + }, + breadcrumbs: { + ...text(theme, "mono", "secondary"), + padding: { left: 6 }, }, }; } From 93c0c2af0a7407072802f38a53937d9da2e2b30f Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 1 Apr 2022 11:45:08 -0600 Subject: [PATCH 20/71] Start loading new theme JSON format instead of TOML Replaced remaining extends with javascript object extension. Moved tokens/core.ts to tokens.ts and massaged the types to make it more obvious when types don't match up. Co-authored-by: Nathan Sobo --- crates/theme/src/resolution.rs | 497 ----------- crates/theme/src/theme.rs | 3 +- crates/theme/src/theme_registry.rs | 234 +---- crates/zed/assets/themes/_base.toml | 411 --------- crates/zed/assets/themes/black.toml | 67 -- crates/zed/assets/themes/dark.json | 1245 +++++++++++++++++++++++++++ crates/zed/assets/themes/dark.toml | 67 -- crates/zed/assets/themes/light.json | 1245 +++++++++++++++++++++++++++ crates/zed/assets/themes/light.toml | 67 -- crates/zed/src/zed.rs | 3 +- styles/buildThemes.ts | 14 +- styles/styleTree/app.ts | 106 +-- styles/styleTree/components.ts | 14 +- styles/styleTree/contactsPanel.ts | 61 ++ styles/styleTree/editor.ts | 245 +++--- styles/styleTree/projectPanel.ts | 6 +- styles/styleTree/search.ts | 44 +- styles/styleTree/workspace.ts | 5 + styles/themes/dark.ts | 462 +++++----- styles/themes/light.ts | 300 ++++--- styles/themes/theme.ts | 37 +- styles/tokens.ts | 102 +++ styles/tokens/core.ts | 58 -- 23 files changed, 3284 insertions(+), 2009 deletions(-) delete mode 100644 crates/theme/src/resolution.rs delete mode 100644 crates/zed/assets/themes/_base.toml delete mode 100644 crates/zed/assets/themes/black.toml create mode 100644 crates/zed/assets/themes/dark.json delete mode 100644 crates/zed/assets/themes/dark.toml create mode 100644 crates/zed/assets/themes/light.json delete mode 100644 crates/zed/assets/themes/light.toml create mode 100644 styles/styleTree/contactsPanel.ts create mode 100644 styles/tokens.ts delete mode 100644 styles/tokens/core.ts diff --git a/crates/theme/src/resolution.rs b/crates/theme/src/resolution.rs deleted file mode 100644 index acebf72b86120065cb8587d05c2a8db92a00cced..0000000000000000000000000000000000000000 --- a/crates/theme/src/resolution.rs +++ /dev/null @@ -1,497 +0,0 @@ -use anyhow::{anyhow, Result}; -use indexmap::IndexMap; -use serde_json::Value; -use std::{ - cell::RefCell, - mem, - rc::{Rc, Weak}, -}; - -pub fn resolve_references(value: Value) -> Result { - let tree = Tree::from_json(value)?; - tree.resolve()?; - tree.to_json() -} - -#[derive(Clone)] -enum Node { - Reference { - path: String, - parent: Option>>, - }, - Object { - base: Option, - children: IndexMap, - resolved: bool, - parent: Option>>, - }, - Array { - children: Vec, - resolved: bool, - parent: Option>>, - }, - String { - value: String, - parent: Option>>, - }, - Number { - value: serde_json::Number, - parent: Option>>, - }, - Bool { - value: bool, - parent: Option>>, - }, - Null { - parent: Option>>, - }, -} - -#[derive(Clone)] -struct Tree(Rc>); - -impl Tree { - pub fn new(node: Node) -> Self { - Self(Rc::new(RefCell::new(node))) - } - - fn from_json(value: Value) -> Result { - match value { - Value::String(value) => { - if let Some(path) = value.strip_prefix("$") { - Ok(Self::new(Node::Reference { - path: path.to_string(), - parent: None, - })) - } else { - Ok(Self::new(Node::String { - value, - parent: None, - })) - } - } - Value::Number(value) => Ok(Self::new(Node::Number { - value, - parent: None, - })), - Value::Bool(value) => Ok(Self::new(Node::Bool { - value, - parent: None, - })), - Value::Null => Ok(Self::new(Node::Null { parent: None })), - Value::Object(object) => { - let tree = Self::new(Node::Object { - base: Default::default(), - children: Default::default(), - resolved: false, - parent: None, - }); - let mut children = IndexMap::new(); - let mut resolved = true; - let mut base = None; - for (key, value) in object.into_iter() { - let value = if key == "extends" { - if value.is_string() { - if let Value::String(value) = value { - base = value.strip_prefix("$").map(str::to_string); - resolved = false; - Self::new(Node::String { - value, - parent: None, - }) - } else { - unreachable!() - } - } else { - Tree::from_json(value)? - } - } else { - Tree::from_json(value)? - }; - value - .0 - .borrow_mut() - .set_parent(Some(Rc::downgrade(&tree.0))); - resolved &= value.is_resolved(); - children.insert(key.clone(), value); - } - - *tree.0.borrow_mut() = Node::Object { - base, - children, - resolved, - parent: None, - }; - Ok(tree) - } - Value::Array(elements) => { - let tree = Self::new(Node::Array { - children: Default::default(), - resolved: false, - parent: None, - }); - - let mut children = Vec::new(); - let mut resolved = true; - for element in elements { - let child = Tree::from_json(element)?; - child - .0 - .borrow_mut() - .set_parent(Some(Rc::downgrade(&tree.0))); - resolved &= child.is_resolved(); - children.push(child); - } - - *tree.0.borrow_mut() = Node::Array { - children, - resolved, - parent: None, - }; - Ok(tree) - } - } - } - - fn to_json(&self) -> Result { - match &*self.0.borrow() { - Node::Reference { .. } => Err(anyhow!("unresolved tree")), - Node::String { value, .. } => Ok(Value::String(value.clone())), - Node::Number { value, .. } => Ok(Value::Number(value.clone())), - Node::Bool { value, .. } => Ok(Value::Bool(*value)), - Node::Null { .. } => Ok(Value::Null), - Node::Object { children, .. } => { - let mut json_children = serde_json::Map::new(); - for (key, value) in children { - json_children.insert(key.clone(), value.to_json()?); - } - Ok(Value::Object(json_children)) - } - Node::Array { children, .. } => { - let mut json_children = Vec::new(); - for child in children { - json_children.push(child.to_json()?); - } - Ok(Value::Array(json_children)) - } - } - } - - fn parent(&self) -> Option { - match &*self.0.borrow() { - Node::Reference { parent, .. } - | Node::Object { parent, .. } - | Node::Array { parent, .. } - | Node::String { parent, .. } - | Node::Number { parent, .. } - | Node::Bool { parent, .. } - | Node::Null { parent } => parent.as_ref().and_then(|p| p.upgrade()).map(Tree), - } - } - - fn get(&self, path: &str) -> Result> { - let mut tree = self.clone(); - for component in path.split('.') { - let node = tree.0.borrow(); - match &*node { - Node::Object { children, .. } => { - if let Some(subtree) = children.get(component).cloned() { - drop(node); - tree = subtree; - } else { - return Err(anyhow!( - "key \"{}\" does not exist in path \"{}\"", - component, - path - )); - } - } - Node::Reference { .. } => return Ok(None), - Node::Array { .. } - | Node::String { .. } - | Node::Number { .. } - | Node::Bool { .. } - | Node::Null { .. } => { - return Err(anyhow!( - "key \"{}\" in path \"{}\" is not an object", - component, - path - )) - } - } - } - - Ok(Some(tree)) - } - - fn is_resolved(&self) -> bool { - match &*self.0.borrow() { - Node::Reference { .. } => false, - Node::Object { resolved, .. } | Node::Array { resolved, .. } => *resolved, - Node::String { .. } | Node::Number { .. } | Node::Bool { .. } | Node::Null { .. } => { - true - } - } - } - - fn update_resolved(&self) { - match &mut *self.0.borrow_mut() { - Node::Object { - resolved, - base, - children, - .. - } => { - *resolved = base.is_none() && children.values().all(|c| c.is_resolved()); - } - Node::Array { - resolved, children, .. - } => { - *resolved = children.iter().all(|c| c.is_resolved()); - } - _ => {} - } - } - - pub fn resolve(&self) -> Result<()> { - let mut unresolved = vec![self.clone()]; - let mut made_progress = true; - - while made_progress && !unresolved.is_empty() { - made_progress = false; - for mut tree in mem::take(&mut unresolved) { - made_progress |= tree.resolve_subtree(self, &mut unresolved)?; - if tree.is_resolved() { - while let Some(parent) = tree.parent() { - parent.update_resolved(); - if !parent.is_resolved() { - break; - } - tree = parent; - } - } - } - } - - if unresolved.is_empty() { - Ok(()) - } else { - Err(anyhow!("tree contains cycles")) - } - } - - fn resolve_subtree(&self, root: &Tree, unresolved: &mut Vec) -> Result { - let node = self.0.borrow(); - match &*node { - Node::Reference { path, parent } => { - if let Some(subtree) = root.get(&path)? { - if subtree.is_resolved() { - let parent = parent.clone(); - drop(node); - let mut new_node = subtree.0.borrow().clone(); - new_node.set_parent(parent); - *self.0.borrow_mut() = new_node; - Ok(true) - } else { - unresolved.push(self.clone()); - Ok(false) - } - } else { - unresolved.push(self.clone()); - Ok(false) - } - } - Node::Object { - base, - children, - resolved, - .. - } => { - if *resolved { - Ok(false) - } else { - let mut made_progress = false; - let mut children_resolved = true; - for child in children.values() { - made_progress |= child.resolve_subtree(root, unresolved)?; - children_resolved &= child.is_resolved(); - } - - if children_resolved { - let mut has_base = false; - let mut resolved_base = None; - if let Some(base) = base { - has_base = true; - if let Some(base) = root.get(base)? { - if base.is_resolved() { - resolved_base = Some(base); - } - } - } - - drop(node); - - if let Some(base) = resolved_base.as_ref() { - self.extend_from(&base); - made_progress = true; - } - - if let Node::Object { resolved, base, .. } = &mut *self.0.borrow_mut() { - if has_base { - if resolved_base.is_some() { - base.take(); - *resolved = true; - } else { - unresolved.push(self.clone()); - } - } else { - *resolved = true; - } - } - } else if base.is_some() { - unresolved.push(self.clone()); - } - - Ok(made_progress) - } - } - Node::Array { - children, resolved, .. - } => { - if *resolved { - Ok(false) - } else { - let mut made_progress = false; - let mut children_resolved = true; - for child in children.iter() { - made_progress |= child.resolve_subtree(root, unresolved)?; - children_resolved &= child.is_resolved(); - } - - if children_resolved { - drop(node); - - if let Node::Array { resolved, .. } = &mut *self.0.borrow_mut() { - *resolved = true; - } - } - - Ok(made_progress) - } - } - Node::String { .. } | Node::Number { .. } | Node::Bool { .. } | Node::Null { .. } => { - Ok(false) - } - } - } - - fn extend_from(&self, base: &Tree) { - if Rc::ptr_eq(&self.0, &base.0) { - return; - } - - if let ( - Node::Object { children, .. }, - Node::Object { - children: base_children, - .. - }, - ) = (&mut *self.0.borrow_mut(), &*base.0.borrow()) - { - for (key, base_value) in base_children { - if let Some(value) = children.get(key) { - value.extend_from(base_value); - } else { - let base_value = base_value.clone(); - base_value - .0 - .borrow_mut() - .set_parent(Some(Rc::downgrade(&self.0))); - children.insert(key.clone(), base_value); - } - } - } - } -} - -impl Node { - fn set_parent(&mut self, new_parent: Option>>) { - match self { - Node::Reference { parent, .. } - | Node::Object { parent, .. } - | Node::Array { parent, .. } - | Node::String { parent, .. } - | Node::Number { parent, .. } - | Node::Bool { parent, .. } - | Node::Null { parent } => *parent = new_parent, - } - } -} - -#[cfg(test)] -mod test { - use super::*; - - #[test] - fn test_references() { - let json = serde_json::json!({ - "a": { - "extends": "$g", - "x": "$b.d" - }, - "b": { - "c": "$a", - "d": "$e.f" - }, - "e": { - "extends": "$a", - "f": "1" - }, - "g": { - "h": 2 - } - }); - - assert_eq!( - resolve_references(json).unwrap(), - serde_json::json!({ - "a": { - "extends": "$g", - "x": "1", - "h": 2 - }, - "b": { - "c": { - "extends": "$g", - "x": "1", - "h": 2 - }, - "d": "1" - }, - "e": { - "extends": "$a", - "f": "1", - "x": "1", - "h": 2 - }, - "g": { - "h": 2 - } - }) - ) - } - - #[test] - fn test_cycles() { - let json = serde_json::json!({ - "a": { - "b": "$c.d" - }, - "c": { - "d": "$a.b", - }, - }); - - assert!(resolve_references(json).is_err()); - } -} diff --git a/crates/theme/src/theme.rs b/crates/theme/src/theme.rs index 8fa15a92359c18ff7986978d66088c4f6a9332c1..b3c239b4b9f119159f76a3ed23ec477069c6bbd8 100644 --- a/crates/theme/src/theme.rs +++ b/crates/theme/src/theme.rs @@ -1,4 +1,3 @@ -mod resolution; mod theme_registry; use gpui::{ @@ -12,7 +11,7 @@ use std::{collections::HashMap, sync::Arc}; pub use theme_registry::*; -pub const DEFAULT_THEME_NAME: &'static str = "black"; +pub const DEFAULT_THEME_NAME: &'static str = "dark"; #[derive(Deserialize, Default)] pub struct Theme { diff --git a/crates/theme/src/theme_registry.rs b/crates/theme/src/theme_registry.rs index c3910dc4d28f6877b326b4fda36e59d2922db17c..219828b65083b08f1d7d0a105831acfc27bdf50a 100644 --- a/crates/theme/src/theme_registry.rs +++ b/crates/theme/src/theme_registry.rs @@ -1,8 +1,8 @@ -use crate::{resolution::resolve_references, Theme}; +use crate::Theme; use anyhow::{Context, Result}; use gpui::{fonts, AssetSource, FontCache}; use parking_lot::Mutex; -use serde_json::{Map, Value}; +use serde_json::Value; use std::{collections::HashMap, sync::Arc}; pub struct ThemeRegistry { @@ -25,12 +25,8 @@ impl ThemeRegistry { pub fn list(&self) -> impl Iterator { self.assets.list("themes/").into_iter().filter_map(|path| { let filename = path.strip_prefix("themes/")?; - let theme_name = filename.strip_suffix(".toml")?; - if theme_name.starts_with('_') { - None - } else { - Some(theme_name.to_string()) - } + let theme_name = filename.strip_suffix(".json")?; + Some(theme_name.to_string()) }) } @@ -44,9 +40,14 @@ impl ThemeRegistry { return Ok(theme.clone()); } - let theme_data = self.load(name, true)?; + let asset_path = format!("themes/{}.json", name); + let theme_json = self + .assets + .load(&asset_path) + .with_context(|| format!("failed to load theme file {}", asset_path))?; + let mut theme: Theme = fonts::with_font_cache(self.font_cache.clone(), || { - serde_path_to_error::deserialize(theme_data.as_ref()) + serde_path_to_error::deserialize(&mut serde_json::Deserializer::from_slice(&theme_json)) })?; theme.name = name.into(); @@ -54,217 +55,4 @@ impl ThemeRegistry { self.themes.lock().insert(name.to_string(), theme.clone()); Ok(theme) } - - fn load(&self, name: &str, evaluate_references: bool) -> Result> { - if let Some(data) = self.theme_data.lock().get(name) { - return Ok(data.clone()); - } - - let asset_path = format!("themes/{}.toml", name); - let source_code = self - .assets - .load(&asset_path) - .with_context(|| format!("failed to load theme file {}", asset_path))?; - - let mut theme_data: Map = toml::from_slice(source_code.as_ref()) - .with_context(|| format!("failed to parse {}.toml", name))?; - - // If this theme extends another base theme, deeply merge it into the base theme's data - if let Some(base_name) = theme_data - .get("extends") - .and_then(|name| name.as_str()) - .map(str::to_string) - { - let base_theme_data = self - .load(&base_name, false) - .with_context(|| format!("failed to load base theme {}", base_name))? - .as_ref() - .clone(); - if let Value::Object(mut base_theme_object) = base_theme_data { - deep_merge_json(&mut base_theme_object, theme_data); - theme_data = base_theme_object; - } - } - - let mut theme_data = Value::Object(theme_data); - - // Find all of the key path references in the object, and then sort them according - // to their dependencies. - if evaluate_references { - theme_data = resolve_references(theme_data)?; - } - - let result = Arc::new(theme_data); - self.theme_data - .lock() - .insert(name.to_string(), result.clone()); - - Ok(result) - } -} - -fn deep_merge_json(base: &mut Map, extension: Map) { - for (key, extension_value) in extension { - if let Value::Object(extension_object) = extension_value { - if let Some(base_object) = base.get_mut(&key).and_then(|value| value.as_object_mut()) { - deep_merge_json(base_object, extension_object); - } else { - base.insert(key, Value::Object(extension_object)); - } - } else { - base.insert(key, extension_value); - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - use anyhow::anyhow; - use gpui::MutableAppContext; - - #[gpui::test] - fn test_theme_extension(cx: &mut MutableAppContext) { - let assets = TestAssets(&[ - ( - "themes/_base.toml", - r##" - [ui.active_tab] - extends = "$ui.tab" - border.color = "#666666" - text = "$text_colors.bright" - - [ui.tab] - extends = "$ui.element" - text = "$text_colors.dull" - - [ui.element] - background = "#111111" - border = {width = 2.0, color = "#00000000"} - - [editor] - background = "#222222" - default_text = "$text_colors.regular" - "##, - ), - ( - "themes/light.toml", - r##" - extends = "_base" - - [text_colors] - bright = "#ffffff" - regular = "#eeeeee" - dull = "#dddddd" - - [editor] - background = "#232323" - "##, - ), - ]); - - let registry = ThemeRegistry::new(assets, cx.font_cache().clone()); - let theme_data = registry.load("light", true).unwrap(); - - assert_eq!( - theme_data.as_ref(), - &serde_json::json!({ - "ui": { - "active_tab": { - "background": "#111111", - "border": { - "width": 2.0, - "color": "#666666" - }, - "extends": "$ui.tab", - "text": "#ffffff" - }, - "tab": { - "background": "#111111", - "border": { - "width": 2.0, - "color": "#00000000" - }, - "extends": "$ui.element", - "text": "#dddddd" - }, - "element": { - "background": "#111111", - "border": { - "width": 2.0, - "color": "#00000000" - } - } - }, - "editor": { - "background": "#232323", - "default_text": "#eeeeee" - }, - "extends": "_base", - "text_colors": { - "bright": "#ffffff", - "regular": "#eeeeee", - "dull": "#dddddd" - } - }) - ); - } - - #[gpui::test] - fn test_nested_extension(cx: &mut MutableAppContext) { - let assets = TestAssets(&[( - "themes/theme.toml", - r##" - [a] - text = { extends = "$text.0" } - - [b] - extends = "$a" - text = { extends = "$text.1" } - - [text] - 0 = { color = "red" } - 1 = { color = "blue" } - "##, - )]); - - let registry = ThemeRegistry::new(assets, cx.font_cache().clone()); - let theme_data = registry.load("theme", true).unwrap(); - assert_eq!( - theme_data - .get("b") - .unwrap() - .get("text") - .unwrap() - .get("color") - .unwrap(), - "blue" - ); - } - - struct TestAssets(&'static [(&'static str, &'static str)]); - - impl AssetSource for TestAssets { - fn load(&self, path: &str) -> Result> { - if let Some(row) = self.0.iter().find(|e| e.0 == path) { - Ok(row.1.as_bytes().into()) - } else { - Err(anyhow!("no such path {}", path)) - } - } - - fn list(&self, prefix: &str) -> Vec> { - self.0 - .iter() - .copied() - .filter_map(|(path, _)| { - if path.starts_with(prefix) { - Some(path.into()) - } else { - None - } - }) - .collect() - } - } } diff --git a/crates/zed/assets/themes/_base.toml b/crates/zed/assets/themes/_base.toml deleted file mode 100644 index 7f235cbf48e322fc60f1cebee27e7d15a53d7014..0000000000000000000000000000000000000000 --- a/crates/zed/assets/themes/_base.toml +++ /dev/null @@ -1,411 +0,0 @@ -[text] -base = { family = "Zed Sans", size = 14 } - -[workspace] -background = "$surface.0" -pane_divider = { width = 1, color = "$border.0" } -leader_border_opacity = 0.7 -leader_border_width = 2.0 - -[workspace.titlebar] -height = 32 -border = { width = 1, bottom = true, color = "$border.0" } -title = "$text.0" -avatar_width = 18 -avatar = { corner_radius = 10, border = { width = 1, color = "#00000088" } } -avatar_ribbon = { background = "#ff0000", height = 3, width = 12 } -outdated_warning = { extends = "$text.2", size = 13 } -share_icon_color = "$text.2.color" -share_icon_active_color = "$text.0.color" - -[workspace.titlebar.sign_in_prompt] -extends = "$text.2" -size = 13 -underline = true -padding = { right = 8 } - -[workspace.titlebar.hovered_sign_in_prompt] -extends = "$workspace.titlebar.sign_in_prompt" -color = "$text.1.color" - -[workspace.titlebar.offline_icon] -padding = { right = 4 } -width = 16 -color = "$text.2.color" - -[workspace.tab] -height = 34 -text = "$text.2" -padding = { left = 12, right = 12 } -icon_width = 8 -spacing = 10 -icon_close = "$text.2.color" -icon_close_active = "$text.0.color" -icon_dirty = "$status.info" -icon_conflict = "$status.warn" -border = { left = true, bottom = true, width = 1, color = "$border.0", overlay = true } - -[workspace.active_tab] -extends = "$workspace.tab" -border.bottom = false -background = "$surface.1" -text = "$text.0" - -[workspace.sidebar] -width = 30 -border = { right = true, width = 1, color = "$border.0" } - -[workspace.sidebar.resize_handle] -padding = { left = 1 } -background = "$border.0" - -[workspace.sidebar.item] -icon_color = "$text.2.color" -icon_size = 18 -height = "$workspace.tab.height" - -[workspace.sidebar.active_item] -extends = "$workspace.sidebar.item" -icon_color = "$text.0.color" - -[workspace.left_sidebar] -extends = "$workspace.sidebar" -border = { width = 1, color = "$border.0", right = true } - -[workspace.right_sidebar] -extends = "$workspace.sidebar" -border = { width = 1, color = "$border.0", left = true } - -[workspace.status_bar] -padding = { left = 6, right = 6 } -height = 24 -item_spacing = 8 -cursor_position = "$text.2" -diagnostic_message = "$text.2" -lsp_message = "$text.2" - -[workspace.toolbar] -background = "$surface.1" -border = { color = "$border.0", width = 1, left = false, right = false, bottom = true, top = false } -height = 34 -item_spacing = 8 -padding = { left = 16, right = 8, top = 4, bottom = 4 } - -[breadcrumbs] -extends = "$text.1" -padding = { left = 6 } - -[panel] -padding = { top = 12, left = 12, bottom = 12, right = 12 } - -[chat_panel] -extends = "$panel" -channel_name = { extends = "$text.0", weight = "bold" } -channel_name_hash = { text = "$text.2", padding.right = 8 } - -[chat_panel.message] -body = "$text.1" -sender = { extends = "$text.0", weight = "bold", margin.right = 8 } -timestamp = "$text.2" -padding.bottom = 6 - -[chat_panel.pending_message] -extends = "$chat_panel.message" -body = { color = "$text.3.color" } -sender = { color = "$text.3.color" } -timestamp = { color = "$text.3.color" } - -[chat_panel.channel_select.item] -padding = 4 -name = "$text.1" -hash = { extends = "$text.2", margin.right = 8 } - -[chat_panel.channel_select.hovered_item] -extends = "$chat_panel.channel_select.item" -background = "$state.hover" -corner_radius = 6 - -[chat_panel.channel_select.active_item] -extends = "$chat_panel.channel_select.item" -name = "$text.0" - -[chat_panel.channel_select.hovered_active_item] -extends = "$chat_panel.channel_select.hovered_item" -name = "$text.0" - -[chat_panel.channel_select.header] -extends = "$chat_panel.channel_select.active_item" -padding.bottom = 4 -padding.left = 0 - -[chat_panel.channel_select.menu] -padding = 4 -corner_radius = 6 -border = { color = "$border.0", width = 1 } -background = "$surface.0" -shadow = { offset = [0, 2], blur = 16, color = "$shadow.0" } - -[chat_panel.input_editor] -background = "$surface.1" -corner_radius = 6 -padding = { left = 8, right = 8, top = 7, bottom = 7 } -text = "$text.0" -placeholder_text = "$text.2" -selection = "$selection.host" -border = { width = 1, color = "$border.0" } - -[chat_panel.sign_in_prompt] -extends = "$text.0" -underline = true - -[chat_panel.hovered_sign_in_prompt] -extends = "$chat_panel.sign_in_prompt" -color = "$text.1.color" - -[contacts_panel] -extends = "$panel" -host_row_height = 28 -host_avatar = { corner_radius = 10, width = 18 } -host_username = { extends = "$text.0", padding.left = 8 } -tree_branch_width = 1 -tree_branch_color = "$surface.2" - -[contacts_panel.project] -height = 24 -padding = { left = 8 } -guest_avatar = { corner_radius = 8, width = 14 } -guest_avatar_spacing = 4 - -[contacts_panel.project.name] -extends = "$text.1" -margin = { right = 6 } - -[contacts_panel.unshared_project] -extends = "$contacts_panel.project" - -[contacts_panel.hovered_unshared_project] -extends = "$contacts_panel.unshared_project" -background = "$state.hover" -corner_radius = 6 - -[contacts_panel.shared_project] -extends = "$contacts_panel.project" -name.color = "$text.0.color" - -[contacts_panel.hovered_shared_project] -extends = "$contacts_panel.shared_project" -background = "$state.hover" -corner_radius = 6 - -[project_panel] -extends = "$panel" -padding.top = 6 # ($workspace.tab.height - $project_panel.entry.height) / 2 - -[project_panel.entry] -text = "$text.1" -height = 22 -icon_color = "$text.3.color" -icon_size = 8 -icon_spacing = 8 - -[project_panel.hovered_entry] -extends = "$project_panel.entry" -background = "$state.hover" - -[project_panel.selected_entry] -extends = "$project_panel.entry" -text = { extends = "$text.0" } - -[project_panel.hovered_selected_entry] -extends = "$project_panel.hovered_entry" -text = { extends = "$text.0" } - -[selector] -background = "$surface.0" -padding = 8 -margin = { top = 52, bottom = 52 } -corner_radius = 6 -shadow = { offset = [0, 2], blur = 16, color = "$shadow.0" } -border = { width = 1, color = "$border.0" } - -[selector.input_editor] -background = "$surface.1" -corner_radius = 6 -padding = { left = 16, right = 16, top = 7, bottom = 7 } -text = "$text.0" -placeholder_text = "$text.2" -selection = "$selection.host" -border = { width = 1, color = "$border.0" } - -[selector.empty] -text = "$text.2" -padding = { left = 16, right = 16, top = 8, bottom = 4 } - -[selector.item] -text = "$text.1" -highlight_text = { extends = "$text.base", color = "$editor.syntax.keyword.color", weight = "$editor.syntax.keyword.weight" } -padding = { left = 16, right = 16, top = 4, bottom = 4 } -corner_radius = 6 - -[selector.active_item] -extends = "$selector.item" -background = "$state.hover" -text = "$text.0" - -[editor] -text_color = "$text.1.color" -background = "$surface.1" -gutter_background = "$surface.1" -gutter_padding_factor = 2.5 -active_line_background = "$state.active_line" -highlighted_line_background = "$state.highlighted_line" -rename_fade = 0.6 -unnecessary_code_fade = 0.5 -document_highlight_read_background = "#99999920" -document_highlight_write_background = "#99999916" -diff_background_deleted = "$state.deleted_line" -diff_background_inserted = "$state.inserted_line" -line_number = "$text.2.color" -line_number_active = "$text.0.color" -selection = "$selection.host" -guest_selections = "$selection.guests" -error_color = "$status.bad" -code_actions_indicator = "$text.3.color" - -[editor.diagnostic_path_header] -background = "$state.active_line" -filename = { extends = "$text.0", size = 14 } -path = { extends = "$text.2", size = 14, margin.left = 12 } -text_scale_factor = 0.857 - -[editor.diagnostic_header] -background = "$editor.background" -border = { width = 1, top = true, bottom = true, color = "$border.1" } -code = { extends = "$text.2", size = 14, margin.left = 10 } -icon_width_factor = 1.5 -text_scale_factor = 0.857 - -[editor.diagnostic_header.message] -text = { extends = "$text.1", size = 14 } -highlight_text = { extends = "$text.0", size = 14, weight = "bold" } - -[editor.error_diagnostic] -header.border = { width = 1, top = true, color = "$border.0" } -text_scale_factor = 0.857 - -[editor.error_diagnostic.message] -text = { extends = "$text.1", size = 14, color = "$status.bad" } -highlight_text = { extends = "$text.1", size = 14, color = "$status.bad", weight = "bold" } - -[editor.warning_diagnostic] -extends = "$editor.error_diagnostic" -message.text.color = "$status.warn" -message.highlight_text.color = "$status.warn" - -[editor.information_diagnostic] -extends = "$editor.error_diagnostic" -message.text.color = "$status.info" -message.highlight_text.color = "$status.info" - -[editor.hint_diagnostic] -extends = "$editor.error_diagnostic" -message.text.color = "$status.info" -message.highlight_text.color = "$status.info" - -[editor.invalid_error_diagnostic] -extends = "$editor.error_diagnostic" -message.text.color = "$text.3.color" -message.highlight_text.color = "$text.3.color" - -[editor.invalid_warning_diagnostic] -extends = "$editor.warning_diagnostic" -message.text.color = "$text.3.color" -message.highlight_text.color = "$text.3.color" - -[editor.invalid_information_diagnostic] -extends = "$editor.information_diagnostic" -message.text.color = "$text.3.color" -message.highlight_text.color = "$text.3.color" - -[editor.invalid_hint_diagnostic] -extends = "$editor.hint_diagnostic" -message.text.color = "$text.3.color" -message.highlight_text.color = "$text.3.color" - -[editor.autocomplete] -background = "$surface.2" -border = { width = 2, color = "$border.1" } -corner_radius = 6 -padding = 6 -match_highlight = { color = "$editor.syntax.keyword.color", weight = "$editor.syntax.keyword.weight" } -margin.left = -14 - -[editor.autocomplete.item] -padding = { left = 6, right = 6, top = 2, bottom = 2 } -corner_radius = 6 - -[editor.autocomplete.selected_item] -extends = "$editor.autocomplete.item" -background = "$state.selected" - -[editor.autocomplete.hovered_item] -extends = "$editor.autocomplete.item" -background = "$state.hover" - -[project_diagnostics] -background = "$surface.1" -empty_message = { extends = "$text.0", size = 18 } -status_bar_item = { extends = "$text.2", margin.right = 10 } -tab_icon_width = 13 -tab_icon_spacing = 4 -tab_summary_spacing = 10 - -[search] -match_background = "$state.highlighted_line" -results_status = { extends = "$text.0", size = 18 } -tab_icon_width = 14 -tab_icon_spacing = 4 - -[search.option_button] -extends = "$text.1" -padding = { left = 6, right = 6, top = 1, bottom = 1 } -corner_radius = 6 -background = "$surface.1" -border = { width = 1, color = "$border.0" } -margin.left = 1 -margin.right = 1 - -[search.option_button_group] -padding = { left = 2, right = 2 } - -[search.active_option_button] -extends = "$search.option_button" -background = "$surface.2" - -[search.hovered_option_button] -extends = "$search.option_button" -background = "$surface.2" - -[search.active_hovered_option_button] -extends = "$search.option_button" -background = "$surface.2" - -[search.match_index] -extends = "$text.2" -padding = 6 - -[search.editor] -min_width = 200 -max_width = 500 -background = "$surface.0" -corner_radius = 6 -padding = { left = 14, right = 14, top = 3, bottom = 3 } -margin = { right = 5 } -text = "$text.0" -placeholder_text = "$text.2" -selection = "$selection.host" -border = { width = 1, color = "$border.0" } - -[search.invalid_editor] -extends = "$search.editor" -border = { width = 1, color = "$status.bad" } diff --git a/crates/zed/assets/themes/black.toml b/crates/zed/assets/themes/black.toml deleted file mode 100644 index 34de16627ec3b5c0e9313f1d784881b322ade52e..0000000000000000000000000000000000000000 --- a/crates/zed/assets/themes/black.toml +++ /dev/null @@ -1,67 +0,0 @@ -extends = "_base" - -[surface] -0 = "#222222" -1 = "#0f0b0c" -2 = "#131415" - -[border] -0 = "#000000B2" -1 = "#FFFFFF20" - -[text] -0 = { extends = "$text.base", color = "#ffffff" } -1 = { extends = "$text.base", color = "#b3b3b3" } -2 = { extends = "$text.base", color = "#7b7d80" } -3 = { extends = "$text.base", color = "#66686A" } - -[shadow] -0 = "#00000052" - -[selection] -host = { selection = "#3B57BC55", cursor = "$text.0.color" } -guests = [ - { selection = "#FDF35133", cursor = "#FDF351" }, - { selection = "#4EACAD33", cursor = "#4EACAD" }, - { selection = "#D0453B33", cursor = "#D0453B" }, - { selection = "#3B874B33", cursor = "#3B874B" }, - { selection = "#BD7CB433", cursor = "#BD7CB4" }, - { selection = "#EE823133", cursor = "#EE8231" }, - { selection = "#5A2B9233", cursor = "#5A2B92" }, -] - -[status] -good = "#4fac63" -info = "#3c5dd4" -warn = "#faca50" -bad = "#b7372e" - -[state] -active_line = "#161313" -highlighted_line = "#faca5033" -deleted_line = "#dd000036" -inserted_line = "#00dd0036" -hover = "#00000033" -selected = "#00000088" - -[editor.syntax] -keyword = { color = "#0086c0", weight = "bold" } -function = "#dcdcaa" -string = "#cb8f77" -type = "#4ec9b0" -number = "#b5cea8" -comment = "#6a9955" -property = "#4e94ce" -variant = "#4fc1ff" -constant = "#9cdcfe" -title = { color = "#9cdcfe", weight = "bold" } -emphasis = "#4ec9b0" -"emphasis.strong" = { color = "#4ec9b0", weight = "bold" } -link_uri = { color = "#6a9955", underline = true } -link_text = { color = "#cb8f77", italic = true } -list_marker = "#4e94ce" - -[workspace.disconnected_overlay] -extends = "$text.base" -color = "#ffffff" -background = "#000000aa" diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json new file mode 100644 index 0000000000000000000000000000000000000000..65bf78b140ff3c94c298982cf2b3a6f6b8210609 --- /dev/null +++ b/crates/zed/assets/themes/dark.json @@ -0,0 +1,1245 @@ +{ + "selector": { + "background": "#e6e6e6", + "corner_radius": 6, + "padding": 8, + "item": { + "padding": { + "bottom": 4, + "left": 16, + "right": 16, + "top": 4 + }, + "corner_radius": 6, + "text": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#2db4f3", + "weight": "bold", + "size": 14 + } + }, + "active_item": { + "padding": { + "bottom": 4, + "left": 16, + "right": 16, + "top": 4 + }, + "corner_radius": 6, + "text": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#2db4f3", + "weight": "bold", + "size": 14 + }, + "background": "#e6e6e6" + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "empty": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "padding": { + "bottom": 4, + "left": 16, + "right": 16, + "top": 8 + } + }, + "input_editor": { + "background": "#cccccc", + "corner_radius": 6, + "placeholder_text": { + "family": "Zed Sans", + "color": "#bfbfbf", + "size": 14 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "padding": { + "bottom": 7, + "left": 16, + "right": 16, + "top": 7 + } + }, + "margin": { + "bottom": 52, + "top": 52 + }, + "shadow": { + "blur": 16, + "color": "#00000052", + "offset": [ + 0, + 2 + ] + } + }, + "workspace": { + "background": "#e6e6e6", + "leader_border_opacity": 0.7, + "leader_border_width": 2, + "tab": { + "height": 34, + "icon_close": "#808080", + "icon_close_active": "#0d0d0d", + "icon_conflict": "#f8c570", + "icon_dirty": "#6099f7", + "icon_width": 8, + "spacing": 10, + "text": { + "family": "Zed Mono", + "color": "#595959", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1, + "left": true, + "bottom": true, + "overlay": true + }, + "padding": { + "left": 12, + "right": 12 + } + }, + "active_tab": { + "height": 34, + "icon_close": "#808080", + "icon_close_active": "#0d0d0d", + "icon_conflict": "#f8c570", + "icon_dirty": "#6099f7", + "icon_width": 8, + "spacing": 10, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1, + "left": true, + "bottom": false, + "overlay": true + }, + "padding": { + "left": 12, + "right": 12 + }, + "background": "#cccccc" + }, + "left_sidebar": { + "width": 30, + "border": { + "color": "#d9d9d9", + "width": 1, + "right": true + }, + "item": { + "height": 32, + "icon_color": "#808080", + "icon_size": 18 + }, + "active_item": { + "height": 32, + "icon_color": "#4d4d4d", + "icon_size": 18 + }, + "resize_handle": { + "background": "#d9d9d9", + "padding": { + "left": 1 + } + } + }, + "right_sidebar": { + "width": 30, + "border": { + "color": "#d9d9d9", + "width": 1, + "left": true + }, + "item": { + "height": 32, + "icon_color": "#808080", + "icon_size": 18 + }, + "active_item": { + "height": 32, + "icon_color": "#4d4d4d", + "icon_size": 18 + }, + "resize_handle": { + "background": "#d9d9d9", + "padding": { + "left": 1 + } + } + }, + "pane_divider": { + "color": "#d9d9d9", + "width": 1 + }, + "status_bar": { + "height": 24, + "item_spacing": 8, + "padding": { + "left": 6, + "right": 6 + }, + "cursor_position": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "diagnostic_message": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "lsp_message": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + } + }, + "titlebar": { + "avatar_width": 18, + "height": 32, + "share_icon_color": "#808080", + "share_icon_active_color": "#0d0d0d", + "title": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "avatar": { + "corner_radius": 10, + "border": { + "color": "#00000088", + "width": 1 + } + }, + "avatar_ribbon": { + "height": 3, + "width": 12 + }, + "border": { + "color": "#d9d9d9", + "width": 1, + "bottom": true + }, + "sign_in_prompt": { + "family": "Zed Sans", + "color": "#595959", + "size": 13, + "underline": true, + "padding": { + "right": 8 + } + }, + "hovered_sign_in_prompt": { + "family": "Zed Mono", + "color": "#000000", + "size": 16, + "underline": true, + "padding": { + "right": 8 + } + }, + "offline_icon": { + "color": "#999999", + "width": 16, + "padding": { + "right": 4 + } + }, + "outdated_warning": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 13 + } + }, + "toolbar": { + "height": 34, + "background": "#cccccc", + "border": { + "color": "#d9d9d9", + "width": 1, + "bottom": true + }, + "item_spacing": 8, + "padding": { + "left": 16, + "right": 8, + "top": 4, + "bottom": 4 + } + }, + "breadcrumbs": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "padding": { + "left": 6 + } + }, + "disconnected_overlay": { + "family": "Zed Sans", + "color": "#ffffff", + "size": 14, + "background": "#000000aa" + } + }, + "editor": { + "text_color": "#595959", + "background": "#cccccc", + "active_line_background": "#000000", + "code_actions_indicator": "#808080", + "diff_background_deleted": "#f78c8c", + "diff_background_inserted": "#22c55e", + "document_highlight_read_background": "#e6e6e6", + "document_highlight_write_background": "#e6e6e6", + "error_color": "#f78c8c", + "gutter_background": "#cccccc", + "gutter_padding_factor": 2.5, + "highlighted_line_background": "#000000", + "line_number": "#000000", + "line_number_active": "#000000", + "rename_fade": 0.6, + "unnecessary_code_fade": 0.5, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "guest_selections": [ + { + "cursor": "#777af4", + "selection": "#777af4" + }, + { + "cursor": "#23d464", + "selection": "#23d464" + }, + { + "cursor": "#f98a3d", + "selection": "#f98a3d" + }, + { + "cursor": "#b671f8", + "selection": "#b671f8" + }, + { + "cursor": "#16ddc7", + "selection": "#16ddc7" + }, + { + "cursor": "#f58ac0", + "selection": "#f58ac0" + }, + { + "cursor": "#f6bc09", + "selection": "#f6bc09" + } + ], + "autocomplete": { + "background": "#bfbfbf", + "corner_radius": 6, + "padding": 6, + "border": { + "color": "#b3b3b3", + "width": 1 + }, + "item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + } + }, + "hovered_item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + }, + "background": "#bfbfbf" + }, + "margin": { + "left": -14 + }, + "match_highlight": { + "color": "#59c3f5", + "weight": "normal" + }, + "selected_item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + }, + "background": "#bfbfbf" + } + }, + "diagnostic_header": { + "background": "#e6e6e6", + "icon_width_factor": 1.5, + "text_scale_factor": 0.857, + "border": { + "color": "#b3b3b3", + "width": 1, + "bottom": true, + "top": true + }, + "code": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 14, + "margin": { + "left": 10 + } + }, + "message": { + "highlight_text": { + "family": "Zed Sans", + "color": "#262626", + "size": 14, + "weight": "bold" + }, + "text": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + } + } + }, + "diagnostic_path_header": { + "background": "#000000", + "text_scale_factor": 0.857, + "filename": { + "family": "Zed Mono", + "color": "#262626", + "size": 14 + }, + "path": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 14, + "margin": { + "left": 12 + } + } + }, + "error_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#f78c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#f78c8c", + "size": 14, + "weight": "bold" + } + } + }, + "warning_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#f8c570", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#f8c570", + "size": 14, + "weight": "bold" + } + } + }, + "information_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14, + "weight": "bold" + } + } + }, + "hint_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_error_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_hint_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_information_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_warning_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "syntax": {} + }, + "project_diagnostics": { + "background": "#cccccc", + "tab_icon_spacing": 4, + "tab_icon_width": 13, + "tab_summary_spacing": 10, + "empty_message": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "status_bar_item": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 10 + } + } + }, + "project_panel": { + "padding": { + "top": 6 + }, + "entry": { + "height": 22, + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#595959", + "size": 16 + } + }, + "hovered_entry": { + "height": 22, + "background": "#cccccc", + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#595959", + "size": 16 + } + }, + "selected_entry": { + "height": 22, + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + } + }, + "hovered_selected_entry": { + "height": 22, + "background": "#cccccc", + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + } + } + }, + "chat_panel": { + "padding": { + "top": 12, + "left": 12, + "bottom": 12, + "right": 12 + }, + "channel_name": { + "family": "Zed Sans", + "color": "#262626", + "weight": "bold", + "size": 14 + }, + "channel_name_hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "padding": { + "right": 8 + } + }, + "channel_select": { + "header": { + "name": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "padding": { + "bottom": 4, + "left": 0 + }, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "item": { + "name": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "hovered_item": { + "name": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "background": "#cccccc", + "corner_radius": 6 + }, + "active_item": { + "name": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "hovered_active_item": { + "name": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "background": "#cccccc", + "corner_radius": 6 + }, + "menu": { + "background": "#e6e6e6", + "corner_radius": 6, + "padding": 4, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "shadow": { + "blur": 16, + "color": "#00000052", + "offset": [ + 0, + 2 + ] + } + } + }, + "sign_in_prompt": { + "family": "Zed Sans", + "color": "#595959", + "underline": true, + "size": 14 + }, + "hovered_sign_in_prompt": { + "family": "Zed Sans", + "color": "#262626", + "underline": true, + "size": 14 + }, + "message": { + "body": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "timestamp": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "padding": { + "bottom": 6 + }, + "sender": { + "family": "Zed Sans", + "color": "#262626", + "weight": "bold", + "size": 14, + "margin": { + "right": 8 + } + } + }, + "pending_message": { + "body": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "timestamp": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "padding": { + "bottom": 6 + }, + "sender": { + "family": "Zed Sans", + "color": "#8c8c8c", + "weight": "bold", + "size": 14, + "margin": { + "right": 8 + } + } + }, + "input_editor": { + "background": "#cccccc", + "corner_radius": 6, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "placeholder_text": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 16 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "padding": { + "bottom": 7, + "left": 8, + "right": 8, + "top": 7 + } + } + }, + "contacts_panel": { + "padding": { + "top": 12, + "left": 12, + "bottom": 12, + "right": 12 + }, + "host_row_height": 28, + "tree_branch_color": "#bfbfbf", + "tree_branch_width": 1, + "host_avatar": { + "corner_radius": 10, + "width": 18 + }, + "host_username": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 16, + "padding": { + "left": 8 + } + }, + "project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + } + }, + "shared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#262626", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + } + }, + "hovered_shared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#262626", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + }, + "background": "#000000", + "corner_radius": 6 + }, + "unshared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + } + }, + "hovered_unshared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + }, + "background": "#000000", + "corner_radius": 6 + } + }, + "search": { + "match_background": "#000000", + "tab_icon_spacing": 4, + "tab_icon_width": 14, + "active_hovered_option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#bfbfbf", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "active_option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#bfbfbf", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "editor": { + "background": "#e6e6e6", + "corner_radius": 6, + "min_width": 200, + "max_width": 500, + "placeholder_text": { + "family": "Zed Mono", + "color": "#bfbfbf", + "size": 16 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "right": 5 + }, + "padding": { + "top": 3, + "bottom": 3, + "left": 14, + "right": 14 + } + }, + "hovered_option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#bfbfbf", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "invalid_editor": { + "background": "#e6e6e6", + "corner_radius": 6, + "min_width": 200, + "max_width": 500, + "placeholder_text": { + "family": "Zed Mono", + "color": "#bfbfbf", + "size": 16 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#ffffff", + "width": 1 + }, + "margin": { + "right": 5 + }, + "padding": { + "top": 3, + "bottom": 3, + "left": 14, + "right": 14 + } + }, + "match_index": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 16, + "padding": 6 + }, + "option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#cccccc", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "option_button_group": { + "padding": { + "left": 2, + "right": 2 + } + }, + "results_status": { + "family": "Zed Mono", + "color": "#262626", + "size": 18 + } + }, + "breadcrumbs": { + "family": "Zed Sans", + "color": "#262626", + "size": 14, + "padding": { + "left": 6 + } + } +} \ No newline at end of file diff --git a/crates/zed/assets/themes/dark.toml b/crates/zed/assets/themes/dark.toml deleted file mode 100644 index fa673ac446426fed977dcf34abaa5361754e4db0..0000000000000000000000000000000000000000 --- a/crates/zed/assets/themes/dark.toml +++ /dev/null @@ -1,67 +0,0 @@ -extends = "_base" - -[surface] -0 = "#283340" -1 = "#1C2733" -2 = "#1C2733" - -[border] -0 = "#1B222B" -1 = "#FFFFFF20" - -[text] -0 = { extends = "$text.base", color = "#FFFFFF" } -1 = { extends = "$text.base", color = "#CDD1E2" } -2 = { extends = "$text.base", color = "#9BA8BE" } -3 = { extends = "$text.base", color = "#6E7483" } - -[shadow] -0 = "#00000052" - -[selection] -host = { selection = "#3B57BC55", cursor = "$text.0.color" } -guests = [ - { selection = "#FDF35133", cursor = "#FDF351" }, - { selection = "#4EACAD33", cursor = "#4EACAD" }, - { selection = "#D0453B33", cursor = "#D0453B" }, - { selection = "#3B874B33", cursor = "#3B874B" }, - { selection = "#BD7CB433", cursor = "#BD7CB4" }, - { selection = "#EE823133", cursor = "#EE8231" }, - { selection = "#5A2B9233", cursor = "#5A2B92" }, -] - -[status] -good = "#4fac63" -info = "#3c5dd4" -warn = "#faca50" -bad = "#b7372e" - -[state] -active_line = "#00000022" -highlighted_line = "#faca5033" -deleted_line = "#dd000036" -inserted_line = "#00dd0036" -hover = "#00000033" -selected = "#00000088" - -[editor.syntax] -keyword = { color = "#0086c0", weight = "bold" } -function = "#dcdcaa" -string = "#cb8f77" -type = "#4ec9b0" -number = "#b5cea8" -comment = "#6a9955" -property = "#4e94ce" -variant = "#4fc1ff" -constant = "#9cdcfe" -title = { color = "#9cdcfe", weight = "bold" } -emphasis = "#4ec9b0" -"emphasis.strong" = { color = "#4ec9b0", weight = "bold" } -link_uri = { color = "#6a9955", underline = true } -link_text = { color = "#cb8f77", italic = true } -list_marker = "#4e94ce" - -[workspace.disconnected_overlay] -extends = "$text.base" -color = "#ffffff" -background = "#000000aa" diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json new file mode 100644 index 0000000000000000000000000000000000000000..65bf78b140ff3c94c298982cf2b3a6f6b8210609 --- /dev/null +++ b/crates/zed/assets/themes/light.json @@ -0,0 +1,1245 @@ +{ + "selector": { + "background": "#e6e6e6", + "corner_radius": 6, + "padding": 8, + "item": { + "padding": { + "bottom": 4, + "left": 16, + "right": 16, + "top": 4 + }, + "corner_radius": 6, + "text": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#2db4f3", + "weight": "bold", + "size": 14 + } + }, + "active_item": { + "padding": { + "bottom": 4, + "left": 16, + "right": 16, + "top": 4 + }, + "corner_radius": 6, + "text": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#2db4f3", + "weight": "bold", + "size": 14 + }, + "background": "#e6e6e6" + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "empty": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "padding": { + "bottom": 4, + "left": 16, + "right": 16, + "top": 8 + } + }, + "input_editor": { + "background": "#cccccc", + "corner_radius": 6, + "placeholder_text": { + "family": "Zed Sans", + "color": "#bfbfbf", + "size": 14 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "padding": { + "bottom": 7, + "left": 16, + "right": 16, + "top": 7 + } + }, + "margin": { + "bottom": 52, + "top": 52 + }, + "shadow": { + "blur": 16, + "color": "#00000052", + "offset": [ + 0, + 2 + ] + } + }, + "workspace": { + "background": "#e6e6e6", + "leader_border_opacity": 0.7, + "leader_border_width": 2, + "tab": { + "height": 34, + "icon_close": "#808080", + "icon_close_active": "#0d0d0d", + "icon_conflict": "#f8c570", + "icon_dirty": "#6099f7", + "icon_width": 8, + "spacing": 10, + "text": { + "family": "Zed Mono", + "color": "#595959", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1, + "left": true, + "bottom": true, + "overlay": true + }, + "padding": { + "left": 12, + "right": 12 + } + }, + "active_tab": { + "height": 34, + "icon_close": "#808080", + "icon_close_active": "#0d0d0d", + "icon_conflict": "#f8c570", + "icon_dirty": "#6099f7", + "icon_width": 8, + "spacing": 10, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1, + "left": true, + "bottom": false, + "overlay": true + }, + "padding": { + "left": 12, + "right": 12 + }, + "background": "#cccccc" + }, + "left_sidebar": { + "width": 30, + "border": { + "color": "#d9d9d9", + "width": 1, + "right": true + }, + "item": { + "height": 32, + "icon_color": "#808080", + "icon_size": 18 + }, + "active_item": { + "height": 32, + "icon_color": "#4d4d4d", + "icon_size": 18 + }, + "resize_handle": { + "background": "#d9d9d9", + "padding": { + "left": 1 + } + } + }, + "right_sidebar": { + "width": 30, + "border": { + "color": "#d9d9d9", + "width": 1, + "left": true + }, + "item": { + "height": 32, + "icon_color": "#808080", + "icon_size": 18 + }, + "active_item": { + "height": 32, + "icon_color": "#4d4d4d", + "icon_size": 18 + }, + "resize_handle": { + "background": "#d9d9d9", + "padding": { + "left": 1 + } + } + }, + "pane_divider": { + "color": "#d9d9d9", + "width": 1 + }, + "status_bar": { + "height": 24, + "item_spacing": 8, + "padding": { + "left": 6, + "right": 6 + }, + "cursor_position": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "diagnostic_message": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "lsp_message": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + } + }, + "titlebar": { + "avatar_width": 18, + "height": 32, + "share_icon_color": "#808080", + "share_icon_active_color": "#0d0d0d", + "title": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "avatar": { + "corner_radius": 10, + "border": { + "color": "#00000088", + "width": 1 + } + }, + "avatar_ribbon": { + "height": 3, + "width": 12 + }, + "border": { + "color": "#d9d9d9", + "width": 1, + "bottom": true + }, + "sign_in_prompt": { + "family": "Zed Sans", + "color": "#595959", + "size": 13, + "underline": true, + "padding": { + "right": 8 + } + }, + "hovered_sign_in_prompt": { + "family": "Zed Mono", + "color": "#000000", + "size": 16, + "underline": true, + "padding": { + "right": 8 + } + }, + "offline_icon": { + "color": "#999999", + "width": 16, + "padding": { + "right": 4 + } + }, + "outdated_warning": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 13 + } + }, + "toolbar": { + "height": 34, + "background": "#cccccc", + "border": { + "color": "#d9d9d9", + "width": 1, + "bottom": true + }, + "item_spacing": 8, + "padding": { + "left": 16, + "right": 8, + "top": 4, + "bottom": 4 + } + }, + "breadcrumbs": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "padding": { + "left": 6 + } + }, + "disconnected_overlay": { + "family": "Zed Sans", + "color": "#ffffff", + "size": 14, + "background": "#000000aa" + } + }, + "editor": { + "text_color": "#595959", + "background": "#cccccc", + "active_line_background": "#000000", + "code_actions_indicator": "#808080", + "diff_background_deleted": "#f78c8c", + "diff_background_inserted": "#22c55e", + "document_highlight_read_background": "#e6e6e6", + "document_highlight_write_background": "#e6e6e6", + "error_color": "#f78c8c", + "gutter_background": "#cccccc", + "gutter_padding_factor": 2.5, + "highlighted_line_background": "#000000", + "line_number": "#000000", + "line_number_active": "#000000", + "rename_fade": 0.6, + "unnecessary_code_fade": 0.5, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "guest_selections": [ + { + "cursor": "#777af4", + "selection": "#777af4" + }, + { + "cursor": "#23d464", + "selection": "#23d464" + }, + { + "cursor": "#f98a3d", + "selection": "#f98a3d" + }, + { + "cursor": "#b671f8", + "selection": "#b671f8" + }, + { + "cursor": "#16ddc7", + "selection": "#16ddc7" + }, + { + "cursor": "#f58ac0", + "selection": "#f58ac0" + }, + { + "cursor": "#f6bc09", + "selection": "#f6bc09" + } + ], + "autocomplete": { + "background": "#bfbfbf", + "corner_radius": 6, + "padding": 6, + "border": { + "color": "#b3b3b3", + "width": 1 + }, + "item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + } + }, + "hovered_item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + }, + "background": "#bfbfbf" + }, + "margin": { + "left": -14 + }, + "match_highlight": { + "color": "#59c3f5", + "weight": "normal" + }, + "selected_item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + }, + "background": "#bfbfbf" + } + }, + "diagnostic_header": { + "background": "#e6e6e6", + "icon_width_factor": 1.5, + "text_scale_factor": 0.857, + "border": { + "color": "#b3b3b3", + "width": 1, + "bottom": true, + "top": true + }, + "code": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 14, + "margin": { + "left": 10 + } + }, + "message": { + "highlight_text": { + "family": "Zed Sans", + "color": "#262626", + "size": 14, + "weight": "bold" + }, + "text": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + } + } + }, + "diagnostic_path_header": { + "background": "#000000", + "text_scale_factor": 0.857, + "filename": { + "family": "Zed Mono", + "color": "#262626", + "size": 14 + }, + "path": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 14, + "margin": { + "left": 12 + } + } + }, + "error_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#f78c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#f78c8c", + "size": 14, + "weight": "bold" + } + } + }, + "warning_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#f8c570", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#f8c570", + "size": 14, + "weight": "bold" + } + } + }, + "information_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14, + "weight": "bold" + } + } + }, + "hint_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_error_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_hint_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_information_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_warning_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "syntax": {} + }, + "project_diagnostics": { + "background": "#cccccc", + "tab_icon_spacing": 4, + "tab_icon_width": 13, + "tab_summary_spacing": 10, + "empty_message": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "status_bar_item": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 10 + } + } + }, + "project_panel": { + "padding": { + "top": 6 + }, + "entry": { + "height": 22, + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#595959", + "size": 16 + } + }, + "hovered_entry": { + "height": 22, + "background": "#cccccc", + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#595959", + "size": 16 + } + }, + "selected_entry": { + "height": 22, + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + } + }, + "hovered_selected_entry": { + "height": 22, + "background": "#cccccc", + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + } + } + }, + "chat_panel": { + "padding": { + "top": 12, + "left": 12, + "bottom": 12, + "right": 12 + }, + "channel_name": { + "family": "Zed Sans", + "color": "#262626", + "weight": "bold", + "size": 14 + }, + "channel_name_hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "padding": { + "right": 8 + } + }, + "channel_select": { + "header": { + "name": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "padding": { + "bottom": 4, + "left": 0 + }, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "item": { + "name": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "hovered_item": { + "name": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "background": "#cccccc", + "corner_radius": 6 + }, + "active_item": { + "name": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "hovered_active_item": { + "name": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "background": "#cccccc", + "corner_radius": 6 + }, + "menu": { + "background": "#e6e6e6", + "corner_radius": 6, + "padding": 4, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "shadow": { + "blur": 16, + "color": "#00000052", + "offset": [ + 0, + 2 + ] + } + } + }, + "sign_in_prompt": { + "family": "Zed Sans", + "color": "#595959", + "underline": true, + "size": 14 + }, + "hovered_sign_in_prompt": { + "family": "Zed Sans", + "color": "#262626", + "underline": true, + "size": 14 + }, + "message": { + "body": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "timestamp": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "padding": { + "bottom": 6 + }, + "sender": { + "family": "Zed Sans", + "color": "#262626", + "weight": "bold", + "size": 14, + "margin": { + "right": 8 + } + } + }, + "pending_message": { + "body": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "timestamp": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "padding": { + "bottom": 6 + }, + "sender": { + "family": "Zed Sans", + "color": "#8c8c8c", + "weight": "bold", + "size": 14, + "margin": { + "right": 8 + } + } + }, + "input_editor": { + "background": "#cccccc", + "corner_radius": 6, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "placeholder_text": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 16 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "padding": { + "bottom": 7, + "left": 8, + "right": 8, + "top": 7 + } + } + }, + "contacts_panel": { + "padding": { + "top": 12, + "left": 12, + "bottom": 12, + "right": 12 + }, + "host_row_height": 28, + "tree_branch_color": "#bfbfbf", + "tree_branch_width": 1, + "host_avatar": { + "corner_radius": 10, + "width": 18 + }, + "host_username": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 16, + "padding": { + "left": 8 + } + }, + "project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + } + }, + "shared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#262626", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + } + }, + "hovered_shared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#262626", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + }, + "background": "#000000", + "corner_radius": 6 + }, + "unshared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + } + }, + "hovered_unshared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + }, + "background": "#000000", + "corner_radius": 6 + } + }, + "search": { + "match_background": "#000000", + "tab_icon_spacing": 4, + "tab_icon_width": 14, + "active_hovered_option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#bfbfbf", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "active_option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#bfbfbf", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "editor": { + "background": "#e6e6e6", + "corner_radius": 6, + "min_width": 200, + "max_width": 500, + "placeholder_text": { + "family": "Zed Mono", + "color": "#bfbfbf", + "size": 16 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "right": 5 + }, + "padding": { + "top": 3, + "bottom": 3, + "left": 14, + "right": 14 + } + }, + "hovered_option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#bfbfbf", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "invalid_editor": { + "background": "#e6e6e6", + "corner_radius": 6, + "min_width": 200, + "max_width": 500, + "placeholder_text": { + "family": "Zed Mono", + "color": "#bfbfbf", + "size": 16 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#ffffff", + "width": 1 + }, + "margin": { + "right": 5 + }, + "padding": { + "top": 3, + "bottom": 3, + "left": 14, + "right": 14 + } + }, + "match_index": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 16, + "padding": 6 + }, + "option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#cccccc", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "option_button_group": { + "padding": { + "left": 2, + "right": 2 + } + }, + "results_status": { + "family": "Zed Mono", + "color": "#262626", + "size": 18 + } + }, + "breadcrumbs": { + "family": "Zed Sans", + "color": "#262626", + "size": 14, + "padding": { + "left": 6 + } + } +} \ No newline at end of file diff --git a/crates/zed/assets/themes/light.toml b/crates/zed/assets/themes/light.toml deleted file mode 100644 index 2884515e09f41fc1ade19d886604e6af5ff2a1ae..0000000000000000000000000000000000000000 --- a/crates/zed/assets/themes/light.toml +++ /dev/null @@ -1,67 +0,0 @@ -extends = "_base" - -[surface] -0 = "#EAEAEB" -1 = "#FAFAFA" -2 = "#FFFFFF" - -[border] -0 = "#DDDDDC" -1 = "#0000000F" - -[text] -0 = { extends = "$text.base", color = "#000000" } -1 = { extends = "$text.base", color = "#29292B" } -2 = { extends = "$text.base", color = "#7E7E83" } -3 = { extends = "$text.base", color = "#939393" } - -[shadow] -0 = "#0000000D" - -[selection] -host = { selection = "#3B57BC55", cursor = "$text.0.color" } -guests = [ - { selection = "#D0453B33", cursor = "#D0453B" }, - { selection = "#3B874B33", cursor = "#3B874B" }, - { selection = "#BD7CB433", cursor = "#BD7CB4" }, - { selection = "#EE823133", cursor = "#EE8231" }, - { selection = "#5A2B9233", cursor = "#5A2B92" }, - { selection = "#FDF35133", cursor = "#FDF351" }, - { selection = "#4EACAD33", cursor = "#4EACAD" }, -] - -[status] -good = "#4fac63" -info = "#3c5dd4" -warn = "#faca50" -bad = "#b7372e" - -[state] -active_line = "#00000008" -highlighted_line = "#faca5033" -deleted_line = "#dd000036" -inserted_line = "#00dd0036" -hover = "#0000000D" -selected = "#0000001c" - -[editor.syntax] -keyword = { color = "#0000fa", weight = "bold" } -function = "#795e26" -string = "#a82121" -type = "#267f29" -number = "#b5cea8" -comment = "#6a9955" -property = "#4e94ce" -variant = "#4fc1ff" -constant = "#5a9ccc" -title = { color = "#5a9ccc", weight = "bold" } -emphasis = "#267f29" -"emphasis.strong" = { color = "#267f29", weight = "bold" } -link_uri = { color = "#6a9955", underline = true } -link_text = { color = "#a82121", italic = true } -list_marker = "#4e94ce" - -[workspace.disconnected_overlay] -extends = "$text.base" -color = "#ffffff" -background = "#000000cc" diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index c94f8a0e8164a5f1b7a9cbcd9229f1e65ed59593..436555b3daf365c1dc37abf2e7da413e61252e23 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -976,7 +976,8 @@ mod tests { lazy_static::lazy_static! { static ref DEFAULT_THEME: parking_lot::Mutex>> = Default::default(); static ref FONTS: Vec>> = vec![ - Assets.load("fonts/zed-sans/zed-sans-extended.ttf").unwrap().to_vec().into() + Assets.load("fonts/zed-sans/zed-sans-extended.ttf").unwrap().to_vec().into(), + Assets.load("fonts/zed-mono/zed-mono-extended.ttf").unwrap().to_vec().into(), ]; } diff --git a/styles/buildThemes.ts b/styles/buildThemes.ts index ced82e98664980b3d1af9f50d8f4f8f498f59d49..d67860cee66a0ec7abd7d37da8b10f0a6c930488 100644 --- a/styles/buildThemes.ts +++ b/styles/buildThemes.ts @@ -7,11 +7,11 @@ import decamelizeTree from "./utils/decamelizeTree"; const themes = [dark, light]; for (let theme of themes) { - let styleTree = decamelizeTree(app(theme)); - let styleTreeJSON = JSON.stringify(styleTree, null, 2); - let outPath = path.resolve( - `${__dirname}/../crates/zed/assets/themes/${theme.name}.json` - ); - fs.writeFileSync(outPath, styleTreeJSON); - console.log(`Generated ${outPath}`); + let styleTree = decamelizeTree(app(theme)); + let styleTreeJSON = JSON.stringify(styleTree, null, 2); + let outPath = path.resolve( + `${__dirname}/../crates/zed/assets/themes/${theme.name}.json` + ); + fs.writeFileSync(outPath, styleTreeJSON); + console.log(`Generated ${outPath}`); } diff --git a/styles/styleTree/app.ts b/styles/styleTree/app.ts index c7edfdc2701f06e6cb1b41beb779ad6bc0aca75b..d26ada4fc9bc6ebab7c63255245ff003dfae0640 100644 --- a/styles/styleTree/app.ts +++ b/styles/styleTree/app.ts @@ -1,6 +1,7 @@ import Theme from "../themes/theme"; import chatPanel from "./chatPanel"; import { backgroundColor, borderColor, text } from "./components"; +import contactsPanel from "./contactsPanel"; import editor from "./editor"; import projectPanel from "./projectPanel"; import search from "./search"; @@ -8,83 +9,38 @@ import selectorModal from "./selectorModal"; import workspace from "./workspace"; export const panel = { - padding: { top: 12, left: 12, bottom: 12, right: 12 }, + padding: { top: 12, left: 12, bottom: 12, right: 12 }, }; export default function app(theme: Theme): Object { - return { - selector: selectorModal(theme), - workspace: workspace(theme), - editor: editor(theme), - projectDiagnostics: { - background: backgroundColor(theme, 300), - tabIconSpacing: 4, - tabIconWidth: 13, - tabSummarySpacing: 10, - emptyMessage: { - ...text(theme, "sans", "primary", { size: "lg" }), - }, - statusBarItem: { - ...text(theme, "sans", "muted"), - margin: { - right: 10, + return { + selector: selectorModal(theme), + workspace: workspace(theme), + editor: editor(theme), + projectDiagnostics: { + background: backgroundColor(theme, 300), + tabIconSpacing: 4, + tabIconWidth: 13, + tabSummarySpacing: 10, + emptyMessage: { + ...text(theme, "sans", "primary", { size: "lg" }), + }, + statusBarItem: { + ...text(theme, "sans", "muted"), + margin: { + right: 10, + }, + }, }, - }, - }, - projectPanel: projectPanel(theme), - chatPanel: chatPanel(theme), - contactsPanel: { - ...panel, - hostRowHeight: 28, - treeBranchColor: borderColor(theme, "muted"), - treeBranchWidth: 1, - hostAvatar: { - cornerRadius: 10, - width: 18, - }, - hostUsername: { - ...text(theme, "mono", "muted"), - padding: { - left: 8, - }, - }, - hoveredSharedProject: { - extends: "$contacts_panel.sharedProject", - background: theme.editor.line.active.value, - cornerRadius: 6, - }, - hoveredUnsharedProject: { - extends: "$contacts_panel.unsharedProject", - background: theme.editor.line.active.value, - cornerRadius: 6, - }, - project: { - guestAvatarSpacing: 4, - height: 24, - guestAvatar: { - cornerRadius: 8, - width: 14, - }, - name: { - extends: text(theme, "mono", "secondary"), - margin: { - right: 6, - }, - }, - padding: { - left: 8, - }, - }, - sharedProject: { - extends: "$contactsPanel.project", - name: { - color: text(theme, "mono", "primary"), - }, - }, - unsharedProject: { - extends: "$contactsPanel.project", - }, - }, - search: search(theme), - }; + projectPanel: projectPanel(theme), + chatPanel: chatPanel(theme), + contactsPanel: contactsPanel(theme), + search: search(theme), + breadcrumbs: { + ...text(theme, "sans", "primary"), + padding: { + left: 6, + }, + } + }; } diff --git a/styles/styleTree/components.ts b/styles/styleTree/components.ts index 55a64cb1ecb4ec8f60878d9e795f671a9a5cfede..205fd9b26200510d7adeb4f226ed893e8a17bbaa 100644 --- a/styles/styleTree/components.ts +++ b/styles/styleTree/components.ts @@ -1,25 +1,25 @@ import chroma from "chroma-js"; -import Theme, { BackgroundColor, Weight } from "../themes/theme"; -import core from "../tokens/core"; +import Theme, { BackgroundColor } from "../themes/theme"; +import { fontFamilies, fontSizes, FontWeight } from "../tokens"; import { Color } from "../utils/color"; export type TextColor = keyof Theme["textColor"]; export function text( theme: Theme, - fontFamily: keyof typeof core.fontFamily, + fontFamily: keyof typeof fontFamilies, color: TextColor, properties?: { - size?: keyof typeof core["fontSize"]; - weight?: Weight; + size?: keyof typeof fontSizes; + weight?: FontWeight; underline?: boolean; } ) { const sizeKey = properties?.size || fontFamily === "sans" ? "sm" : "md"; - const size = core.fontSize[sizeKey].value; + const size = fontSizes[sizeKey].value; return { - family: core.fontFamily[fontFamily], + family: fontFamilies[fontFamily].value, color: theme.textColor[color].value, ...properties, size, diff --git a/styles/styleTree/contactsPanel.ts b/styles/styleTree/contactsPanel.ts new file mode 100644 index 0000000000000000000000000000000000000000..9b88a35f13692712cd61c89d4af75476d7bb49c6 --- /dev/null +++ b/styles/styleTree/contactsPanel.ts @@ -0,0 +1,61 @@ +import Theme from "../themes/theme"; +import { panel } from "./app"; +import { borderColor, text } from "./components"; + +export default function(theme: Theme) { + const project = { + guestAvatarSpacing: 4, + height: 24, + guestAvatar: { + cornerRadius: 8, + width: 14, + }, + name: { + ...text(theme, "mono", "secondary"), + margin: { + right: 6, + }, + }, + padding: { + left: 8, + }, + }; + + const sharedProject = { + ...project, + name: { + ...project.name, + ...text(theme, "mono", "primary"), + }, + }; + + return { + ...panel, + hostRowHeight: 28, + treeBranchColor: borderColor(theme, "muted"), + treeBranchWidth: 1, + hostAvatar: { + cornerRadius: 10, + width: 18, + }, + hostUsername: { + ...text(theme, "mono", "muted"), + padding: { + left: 8, + }, + }, + project, + sharedProject, + hoveredSharedProject: { + ...sharedProject, + background: theme.editor.line.active.value, + cornerRadius: 6, + }, + unsharedProject: project, + hoveredUnsharedProject: { + ...project, + background: theme.editor.line.active.value, + cornerRadius: 6, + }, + } +} \ No newline at end of file diff --git a/styles/styleTree/editor.ts b/styles/styleTree/editor.ts index 5d800881e2750942c2b7d6f1113df203aff97fb3..ebc53b405875dab197a3c95d5373732050e9a7a0 100644 --- a/styles/styleTree/editor.ts +++ b/styles/styleTree/editor.ts @@ -1,131 +1,134 @@ import Theme from "../themes/theme"; import { - backgroundColor, - border, - iconColor, - player, - text, - TextColor + backgroundColor, + border, + iconColor, + player, + text, + TextColor, } from "./components"; export default function editor(theme: Theme) { - const autocompleteItem = { - cornerRadius: 6, - padding: { - bottom: 2, - left: 6, - right: 6, - top: 2, - }, - }; - - function diagnostic(theme: Theme, color: TextColor) { - return { - textScaleFactor: 0.857, - header: { - border: border(theme, "primary", { - top: true, - }), - }, - message: { - text: text(theme, "sans", color, { size: "sm" }), - highlightText: text(theme, "sans", color, { - size: "sm", - weight: "bold", - }), - }, + const autocompleteItem = { + cornerRadius: 6, + padding: { + bottom: 2, + left: 6, + right: 6, + top: 2, + }, }; - } - return { - textColor: theme.textColor.secondary.value, - background: backgroundColor(theme, 300), - activeLineBackground: theme.editor.line.active.value, - codeActionsIndicator: iconColor(theme, "secondary"), - diffBackgroundDeleted: backgroundColor(theme, "error"), - diffBackgroundInserted: backgroundColor(theme, "ok"), - documentHighlightReadBackground: theme.editor.highlight.occurrence.value, - documentHighlightWriteBackground: theme.editor.highlight.occurrence.value, - errorColor: theme.textColor.error, - gutterBackground: backgroundColor(theme, 300), - gutterPaddingFactor: 2.5, - highlightedLineBackground: theme.editor.line.highlighted.value, - lineNumber: theme.editor.gutter.primary.value, - lineNumberActive: theme.editor.gutter.active, - renameFade: 0.6, - unnecessaryCodeFade: 0.5, - selection: player(theme, 1).selection, - guestSelections: [ - player(theme, 2).selection, - player(theme, 3).selection, - player(theme, 4).selection, - player(theme, 5).selection, - player(theme, 6).selection, - player(theme, 7).selection, - player(theme, 8).selection, - ], - autocomplete: { - background: backgroundColor(theme, 100), - cornerRadius: 6, - padding: 6, - border: border(theme, "secondary"), - item: autocompleteItem, - hoveredItem: { - ...autocompleteItem, - background: backgroundColor(theme, 100, "hovered"), - }, - margin: { - left: -14, - }, - matchHighlight: { - color: theme.syntax.keyword.color.value, - weight: theme.syntax.keyword.weight.value, - }, - selectedItem: { - ...autocompleteItem, - background: backgroundColor(theme, 100, "active"), - }, - }, - diagnosticHeader: { - background: theme.editor.background.value, - iconWidthFactor: 1.5, - textScaleFactor: 0.857, // NateQ: Will we need dynamic sizing for text? If so let's create tokens for these. - border: border(theme, "secondary", { - bottom: true, - top: true, - }), - code: { - ...text(theme, "mono", "muted", { size: "sm" }), - margin: { - left: 10, + function diagnostic(theme: Theme, color: TextColor) { + return { + textScaleFactor: 0.857, + header: { + border: border(theme, "primary", { + top: true, + }), + }, + message: { + text: text(theme, "sans", color, { size: "sm" }), + highlightText: text(theme, "sans", color, { + size: "sm", + weight: "bold", + }), + }, + }; + } + + return { + textColor: theme.textColor.secondary.value, + background: backgroundColor(theme, 300), + activeLineBackground: theme.editor.line.active.value, + codeActionsIndicator: iconColor(theme, "secondary"), + diffBackgroundDeleted: backgroundColor(theme, "error"), + diffBackgroundInserted: backgroundColor(theme, "ok"), + documentHighlightReadBackground: theme.editor.highlight.occurrence.value, + documentHighlightWriteBackground: theme.editor.highlight.occurrence.value, + errorColor: theme.textColor.error.value, + gutterBackground: backgroundColor(theme, 300), + gutterPaddingFactor: 2.5, + highlightedLineBackground: theme.editor.line.highlighted.value, + lineNumber: theme.editor.gutter.primary.value, + lineNumberActive: theme.editor.gutter.active.value, + renameFade: 0.6, + unnecessaryCodeFade: 0.5, + selection: player(theme, 1).selection, + guestSelections: [ + player(theme, 2).selection, + player(theme, 3).selection, + player(theme, 4).selection, + player(theme, 5).selection, + player(theme, 6).selection, + player(theme, 7).selection, + player(theme, 8).selection, + ], + autocomplete: { + background: backgroundColor(theme, 100), + cornerRadius: 6, + padding: 6, + border: border(theme, "secondary"), + item: autocompleteItem, + hoveredItem: { + ...autocompleteItem, + background: backgroundColor(theme, 100, "hovered"), + }, + margin: { + left: -14, + }, + matchHighlight: { + color: theme.syntax.keyword.color.value, + weight: theme.syntax.keyword.weight.value, + }, + selectedItem: { + ...autocompleteItem, + background: backgroundColor(theme, 100, "active"), + }, + }, + diagnosticHeader: { + background: theme.editor.background.value, + iconWidthFactor: 1.5, + textScaleFactor: 0.857, // NateQ: Will we need dynamic sizing for text? If so let's create tokens for these. + border: border(theme, "secondary", { + bottom: true, + top: true, + }), + code: { + ...text(theme, "mono", "muted", { size: "sm" }), + margin: { + left: 10, + }, + }, + message: { + highlightText: text(theme, "sans", "primary", { + size: "sm", + weight: "bold", + }), + text: text(theme, "sans", "secondary", { size: "sm" }), + }, }, - }, - message: { - highlightText: text(theme, "sans", "primary", { - size: "sm", - weight: "bold", - }), - text: text(theme, "sans", "secondary", { size: "sm" }), - }, - }, - diagnosticPathHeader: { - background: theme.editor.line.active, - textScaleFactor: 0.857, - filename: text(theme, "mono", "primary", { size: "sm" }), - path: { - ...text(theme, "mono", "muted", { size: "sm" }), - margin: { - left: 12, + diagnosticPathHeader: { + background: theme.editor.line.active.value, + textScaleFactor: 0.857, + filename: text(theme, "mono", "primary", { size: "sm" }), + path: { + ...text(theme, "mono", "muted", { size: "sm" }), + margin: { + left: 12, + }, + }, }, - }, - }, - errorDiagnostic: diagnostic(theme, "error"), - warningDiagnostic: diagnostic(theme, "warning"), - informationDiagnostic: diagnostic(theme, "info"), - hintDiagnostic: diagnostic(theme, "info"), - invalidErrorDiagnostic: diagnostic(theme, "muted"), - invalidHintDiagnostic: diagnostic(theme, "muted"), - invalidInformationDiagnostic: diagnostic(theme, "muted"), - invalidWarningDiagnostic: diagnostic(theme, "muted"), - }; + errorDiagnostic: diagnostic(theme, "error"), + warningDiagnostic: diagnostic(theme, "warning"), + informationDiagnostic: diagnostic(theme, "info"), + hintDiagnostic: diagnostic(theme, "info"), + invalidErrorDiagnostic: diagnostic(theme, "muted"), + invalidHintDiagnostic: diagnostic(theme, "muted"), + invalidInformationDiagnostic: diagnostic(theme, "muted"), + invalidWarningDiagnostic: diagnostic(theme, "muted"), + syntax: { + + } + }; } diff --git a/styles/styleTree/projectPanel.ts b/styles/styleTree/projectPanel.ts index 3b5fba8853da3799e69be735447e615341ef8391..cd6fb49b3ada1db47b3dd15637cb1a4a6c5ee516 100644 --- a/styles/styleTree/projectPanel.ts +++ b/styles/styleTree/projectPanel.ts @@ -24,7 +24,11 @@ export default function projectPanel(theme: Theme) { backgroundColor(theme, 300, "hovered") ), selectedEntry: entry(theme, "primary"), - hoveredSelectedEntry: entry(theme, "primary", "hovered"), + hoveredSelectedEntry: entry( + theme, + "primary", + backgroundColor(theme, 300, "hovered") + ), padding: { top: 6, }, diff --git a/styles/styleTree/search.ts b/styles/styleTree/search.ts index 7ba04cd688e01f5b3a4f47b35311195fde73fefb..42b639f57a39d355c8dbf461fb29e64ee71dec2f 100644 --- a/styles/styleTree/search.ts +++ b/styles/styleTree/search.ts @@ -19,8 +19,28 @@ export default function search(theme: Theme) { }, }; + const editor = { + background: backgroundColor(theme, 500), + cornerRadius: 6, + minWidth: 200, + maxWidth: 500, + placeholderText: text(theme, "mono", "placeholder"), + selection: player(theme, 1).selection, + text: text(theme, "mono", "primary"), + border: border(theme, "primary"), + margin: { + right: 5, + }, + padding: { + top: 3, + bottom: 3, + left: 14, + right: 14, + }, + }; + return { - matchBackground: theme.editor.highlight.match, + matchBackground: theme.editor.highlight.match.value, tabIconSpacing: 4, tabIconWidth: 14, activeHoveredOptionButton: { @@ -31,31 +51,13 @@ export default function search(theme: Theme) { ...optionButton, background: backgroundColor(theme, 100), }, - editor: { - background: backgroundColor(theme, 500), - cornerRadius: 6, - minWidth: 200, - maxWidth: 500, - placeholderText: text(theme, "mono", "placeholder"), - selection: player(theme, 1).selection, - text: text(theme, "mono", "primary"), - border: border(theme, "primary"), - margin: { - right: 5, - }, - padding: { - top: 3, - bottom: 3, - left: 14, - right: 14, - }, - }, + editor, hoveredOptionButton: { ...optionButton, background: backgroundColor(theme, 100), }, invalidEditor: { - extends: "$search.editor", + ...editor, border: border(theme, "error"), }, matchIndex: { diff --git a/styles/styleTree/workspace.ts b/styles/styleTree/workspace.ts index 148db089183e77274a81a122d6f02d920b640237..7e71eaad2a8e258e5aed2476af0b68fbf9c7ba4b 100644 --- a/styles/styleTree/workspace.ts +++ b/styles/styleTree/workspace.ts @@ -137,5 +137,10 @@ export default function workspace(theme: Theme) { ...text(theme, "mono", "secondary"), padding: { left: 6 }, }, + disconnectedOverlay: { + ...text(theme, "sans", "primary"), + color: "#ffffff", + background: "#000000aa", + }, }; } diff --git a/styles/themes/dark.ts b/styles/themes/dark.ts index 42f80cf4c670deda733f434c3cbab691239f5396..2cadf24601f47cc1172c4d9be753cc80c3a9f20c 100644 --- a/styles/themes/dark.ts +++ b/styles/themes/dark.ts @@ -1,249 +1,273 @@ -import core from "../tokens/core"; -import Theme, { NumberToken, Syntax } from "./theme"; - -const { color } = core; +import { colors, fontWeights, NumberToken } from "../tokens"; +import Theme, { Syntax } from "./theme"; const backgroundColor = { - 100: { - base: color.neutral[750], - hovered: color.neutral[750], - active: color.neutral[750], - focused: color.neutral[750], - }, - 300: { - base: color.neutral[800], - hovered: color.neutral[800], - active: color.neutral[800], - focused: color.neutral[800], - }, - 500: { - base: color.neutral[900], - hovered: color.neutral[900], - active: color.neutral[900], - focused: color.neutral[900], - }, - ok: { - base: color.green[600], - hovered: color.green[600], - active: color.green[600], - focused: color.green[600], - }, - error: { - base: color.red[400], - hovered: color.red[400], - active: color.red[400], - focused: color.red[400], - }, - warning: { - base: color.amber[300], - hovered: color.amber[300], - active: color.amber[300], - focused: color.amber[300], - }, - info: { - base: color.blue[500], - hovered: color.blue[500], - active: color.blue[500], - focused: color.blue[500], - }, + 100: { + base: colors.neutral[750], + hovered: colors.neutral[750], + active: colors.neutral[750], + focused: colors.neutral[750], + }, + 300: { + base: colors.neutral[800], + hovered: colors.neutral[800], + active: colors.neutral[800], + focused: colors.neutral[800], + }, + 500: { + base: colors.neutral[900], + hovered: colors.neutral[900], + active: colors.neutral[900], + focused: colors.neutral[900], + }, + ok: { + base: colors.green[600], + hovered: colors.green[600], + active: colors.green[600], + focused: colors.green[600], + }, + error: { + base: colors.red[400], + hovered: colors.red[400], + active: colors.red[400], + focused: colors.red[400], + }, + warning: { + base: colors.amber[300], + hovered: colors.amber[300], + active: colors.amber[300], + focused: colors.amber[300], + }, + info: { + base: colors.blue[500], + hovered: colors.blue[500], + active: colors.blue[500], + focused: colors.blue[500], + }, }; const borderColor = { - primary: color.neutral[850], - secondary: color.neutral[700], - muted: color.neutral[750], - focused: color.neutral[100], - active: color.neutral[500], - ok: color.neutral[1000], - error: color.neutral[1000], - warning: color.neutral[1000], - info: color.neutral[1000], + primary: colors.neutral[850], + secondary: colors.neutral[700], + muted: colors.neutral[750], + focused: colors.neutral[100], + active: colors.neutral[500], + ok: colors.neutral[1000], + error: colors.neutral[1000], + warning: colors.neutral[1000], + info: colors.neutral[1000], }; const textColor = { - primary: color.neutral[150], - secondary: color.neutral[350], - muted: color.neutral[550], - placeholder: color.neutral[750], - active: color.neutral[0], - //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + primary: colors.neutral[150], + secondary: colors.neutral[350], + muted: colors.neutral[550], + placeholder: colors.neutral[750], + active: colors.neutral[0], + //TODO: (design) define feature and it's correct value + feature: colors.sky[500], + ok: colors.green[600], + error: colors.red[400], + warning: colors.amber[300], + info: colors.blue[500], }; const iconColor = { - primary: color.neutral[300], - secondary: color.neutral[500], - muted: color.neutral[600], - placeholder: color.neutral[700], - active: color.neutral[50], - //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + primary: colors.neutral[300], + secondary: colors.neutral[500], + muted: colors.neutral[600], + placeholder: colors.neutral[700], + active: colors.neutral[50], + //TODO: (design) define feature and it's correct value + feature: colors.sky[500], + ok: colors.green[600], + error: colors.red[400], + warning: colors.amber[300], + info: colors.blue[500], }; const player = { - 1: { - baseColor: color.blue[600], - cursorColor: color.blue[600], - selectionColor: color.blue[600], - borderColor: color.blue[600], - }, - 2: { - baseColor: color.indigo[500], - cursorColor: color.indigo[500], - selectionColor: color.indigo[500], - borderColor: color.indigo[500], - }, - 3: { - baseColor: color.green[500], - cursorColor: color.green[500], - selectionColor: color.green[500], - borderColor: color.green[500], - }, - 4: { - baseColor: color.orange[500], - cursorColor: color.orange[500], - selectionColor: color.orange[500], - borderColor: color.orange[500], - }, - 5: { - baseColor: color.purple[500], - cursorColor: color.purple[500], - selectionColor: color.purple[500], - borderColor: color.purple[500], - }, - 6: { - baseColor: color.teal[400], - cursorColor: color.teal[400], - selectionColor: color.teal[400], - borderColor: color.teal[400], - }, - 7: { - baseColor: color.pink[400], - cursorColor: color.pink[400], - selectionColor: color.pink[400], - borderColor: color.pink[400], - }, - 8: { - baseColor: color.yellow[400], - cursorColor: color.yellow[400], - selectionColor: color.yellow[400], - borderColor: color.yellow[400], - }, + 1: { + baseColor: colors.blue[600], + cursorColor: colors.blue[600], + selectionColor: colors.blue[600], + borderColor: colors.blue[600], + }, + 2: { + baseColor: colors.indigo[500], + cursorColor: colors.indigo[500], + selectionColor: colors.indigo[500], + borderColor: colors.indigo[500], + }, + 3: { + baseColor: colors.green[500], + cursorColor: colors.green[500], + selectionColor: colors.green[500], + borderColor: colors.green[500], + }, + 4: { + baseColor: colors.orange[500], + cursorColor: colors.orange[500], + selectionColor: colors.orange[500], + borderColor: colors.orange[500], + }, + 5: { + baseColor: colors.purple[500], + cursorColor: colors.purple[500], + selectionColor: colors.purple[500], + borderColor: colors.purple[500], + }, + 6: { + baseColor: colors.teal[400], + cursorColor: colors.teal[400], + selectionColor: colors.teal[400], + borderColor: colors.teal[400], + }, + 7: { + baseColor: colors.pink[400], + cursorColor: colors.pink[400], + selectionColor: colors.pink[400], + borderColor: colors.pink[400], + }, + 8: { + baseColor: colors.yellow[400], + cursorColor: colors.yellow[400], + selectionColor: colors.yellow[400], + borderColor: colors.yellow[400], + }, }; // TODO: Fixup const editor = { - background: backgroundColor[500].base, - indent_guide: borderColor.muted, - indent_guide_active: borderColor.secondary, - line: { - active: color.neutral[0], - highlighted: color.neutral[0], - inserted: backgroundColor.ok.active, - deleted: backgroundColor.error.active, - modified: backgroundColor.info.active, - }, - highlight: { - selection: player[1].selectionColor, - occurrence: backgroundColor[500].active, - activeOccurrence: color.neutral[0], - matchingBracket: color.neutral[0], - match: color.neutral[0], - activeMatch: color.neutral[0], - related: color.neutral[0], - }, - gutter: { - primary: color.neutral[0], - active: color.neutral[0], - }, + background: backgroundColor[500].base, + indent_guide: borderColor.muted, + indent_guide_active: borderColor.secondary, + line: { + active: colors.neutral[0], + highlighted: colors.neutral[0], + inserted: backgroundColor.ok.active, + deleted: backgroundColor.error.active, + modified: backgroundColor.info.active, + }, + highlight: { + selection: player[1].selectionColor, + occurrence: backgroundColor[500].active, + activeOccurrence: colors.neutral[0], + matchingBracket: colors.neutral[0], + match: colors.neutral[0], + activeMatch: colors.neutral[0], + related: colors.neutral[0], + }, + gutter: { + primary: colors.neutral[0], + active: colors.neutral[0], + }, }; const syntax: Syntax = { - primary: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, - }, - comment: { - color: color.lime[200], - weight: { value: "normal", type: "fontWeight" }, - }, - punctuation: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, - }, - constant: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - keyword: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - function: { - color: color.yellow[200], - weight: { value: "normal", type: "fontWeight" }, - }, - type: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, - }, - variant: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, - }, - property: { - color: color.sky[300], - weight: { value: "normal", type: "fontWeight" }, - }, - enum: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - operator: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - string: { - color: color.orange[300], - weight: { value: "normal", type: "fontWeight" }, - }, - number: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - boolean: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - predictive: { - color: textColor.muted, - weight: { value: "normal", type: "fontWeight" }, - }, + primary: { + color: textColor.primary, + weight: fontWeights.normal, + }, + comment: { + color: colors.lime[200], + weight: fontWeights.normal, + }, + punctuation: { + color: textColor.primary, + weight: fontWeights.normal, + }, + constant: { + color: colors.neutral[150], + weight: fontWeights.normal, + }, + keyword: { + color: colors.sky[400], + weight: fontWeights.normal, + }, + function: { + color: colors.yellow[200], + weight: fontWeights.normal, + }, + type: { + color: colors.teal[300], + weight: fontWeights.normal, + }, + variant: { + color: colors.teal[300], + weight: fontWeights.normal, + }, + property: { + color: colors.sky[300], + weight: fontWeights.normal, + }, + enum: { + color: colors.sky[400], + weight: fontWeights.normal, + }, + operator: { + color: colors.sky[400], + weight: fontWeights.normal, + }, + string: { + color: colors.orange[300], + weight: fontWeights.normal, + }, + number: { + color: colors.neutral[150], + weight: fontWeights.normal, + }, + boolean: { + color: colors.neutral[150], + weight: fontWeights.normal, + }, + predictive: { + color: textColor.muted, + weight: fontWeights.normal, + }, + title: { + color: colors.sky[500], + weight: fontWeights.bold, + }, + emphasis: { + color: textColor.active, + weight: fontWeights.normal, + }, + emphasisStrong: { + color: textColor.active, + weight: fontWeights.bold, + }, + linkUrl: { + color: colors.lime[500], + weight: fontWeights.normal, + // TODO: add underline + }, + linkText: { + color: colors.orange[500], + weight: fontWeights.normal, + // TODO: add italic + }, + listMarker: { + color: colors.sky[400], + weight: fontWeights.normal, + } }; const shadowAlpha: NumberToken = { - value: 0.32, - type: "number", + value: 0.32, + type: "number", }; const theme: Theme = { - name: "dark", - backgroundColor, - borderColor, - textColor, - iconColor, - editor, - syntax, - player, - shadowAlpha, + name: "dark", + backgroundColor, + borderColor, + textColor, + iconColor, + editor, + syntax, + player, + shadowAlpha, }; export default theme; diff --git a/styles/themes/light.ts b/styles/themes/light.ts index 7a9bf1b552650b81288e70acc6c7500c80a8246b..acb704de74b99b91c2b41a739c751003670c5864 100644 --- a/styles/themes/light.ts +++ b/styles/themes/light.ts @@ -1,143 +1,141 @@ -import core from "../tokens/core"; -import Theme, { NumberToken, Syntax } from "./theme"; - -const { color } = core; +import { colors, fontWeights, NumberToken } from "../tokens"; +import Theme, { Syntax } from "./theme"; // TODO: Replace with light values const backgroundColor = { 100: { - base: color.neutral[750], - hovered: color.neutral[750], - active: color.neutral[750], - focused: color.neutral[750], + base: colors.neutral[750], + hovered: colors.neutral[750], + active: colors.neutral[750], + focused: colors.neutral[750], }, 300: { - base: color.neutral[800], - hovered: color.neutral[800], - active: color.neutral[800], - focused: color.neutral[800], + base: colors.neutral[800], + hovered: colors.neutral[800], + active: colors.neutral[800], + focused: colors.neutral[800], }, 500: { - base: color.neutral[900], - hovered: color.neutral[900], - active: color.neutral[900], - focused: color.neutral[900], + base: colors.neutral[900], + hovered: colors.neutral[900], + active: colors.neutral[900], + focused: colors.neutral[900], }, ok: { - base: color.green[600], - hovered: color.green[600], - active: color.green[600], - focused: color.green[600], + base: colors.green[600], + hovered: colors.green[600], + active: colors.green[600], + focused: colors.green[600], }, error: { - base: color.red[400], - hovered: color.red[400], - active: color.red[400], - focused: color.red[400], + base: colors.red[400], + hovered: colors.red[400], + active: colors.red[400], + focused: colors.red[400], }, warning: { - base: color.amber[300], - hovered: color.amber[300], - active: color.amber[300], - focused: color.amber[300], + base: colors.amber[300], + hovered: colors.amber[300], + active: colors.amber[300], + focused: colors.amber[300], }, info: { - base: color.blue[500], - hovered: color.blue[500], - active: color.blue[500], - focused: color.blue[500], + base: colors.blue[500], + hovered: colors.blue[500], + active: colors.blue[500], + focused: colors.blue[500], }, }; const borderColor = { - primary: color.neutral[850], - secondary: color.neutral[700], - muted: color.neutral[750], - focused: color.neutral[100], - active: color.neutral[500], - ok: color.neutral[1000], - error: color.neutral[1000], - warning: color.neutral[1000], - info: color.neutral[1000], + primary: colors.neutral[850], + secondary: colors.neutral[700], + muted: colors.neutral[750], + focused: colors.neutral[100], + active: colors.neutral[500], + ok: colors.neutral[1000], + error: colors.neutral[1000], + warning: colors.neutral[1000], + info: colors.neutral[1000], }; const textColor = { - primary: color.neutral[150], - secondary: color.neutral[350], - muted: color.neutral[550], - placeholder: color.neutral[750], - active: color.neutral[0], + primary: colors.neutral[150], + secondary: colors.neutral[350], + muted: colors.neutral[550], + placeholder: colors.neutral[750], + active: colors.neutral[0], //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + feature: colors.sky[500], + ok: colors.green[600], + error: colors.red[400], + warning: colors.amber[300], + info: colors.blue[500], }; const iconColor = { - primary: color.neutral[300], - secondary: color.neutral[500], - muted: color.neutral[600], - placeholder: color.neutral[700], - active: color.neutral[50], + primary: colors.neutral[300], + secondary: colors.neutral[500], + muted: colors.neutral[600], + placeholder: colors.neutral[700], + active: colors.neutral[50], //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + feature: colors.sky[500], + ok: colors.green[600], + error: colors.red[400], + warning: colors.amber[300], + info: colors.blue[500], }; const player = { 1: { - baseColor: color.blue[600], - cursorColor: color.blue[600], - selectionColor: color.blue[600], - borderColor: color.blue[600], + baseColor: colors.blue[600], + cursorColor: colors.blue[600], + selectionColor: colors.blue[600], + borderColor: colors.blue[600], }, 2: { - baseColor: color.indigo[500], - cursorColor: color.indigo[500], - selectionColor: color.indigo[500], - borderColor: color.indigo[500], + baseColor: colors.indigo[500], + cursorColor: colors.indigo[500], + selectionColor: colors.indigo[500], + borderColor: colors.indigo[500], }, 3: { - baseColor: color.green[500], - cursorColor: color.green[500], - selectionColor: color.green[500], - borderColor: color.green[500], + baseColor: colors.green[500], + cursorColor: colors.green[500], + selectionColor: colors.green[500], + borderColor: colors.green[500], }, 4: { - baseColor: color.orange[500], - cursorColor: color.orange[500], - selectionColor: color.orange[500], - borderColor: color.orange[500], + baseColor: colors.orange[500], + cursorColor: colors.orange[500], + selectionColor: colors.orange[500], + borderColor: colors.orange[500], }, 5: { - baseColor: color.purple[500], - cursorColor: color.purple[500], - selectionColor: color.purple[500], - borderColor: color.purple[500], + baseColor: colors.purple[500], + cursorColor: colors.purple[500], + selectionColor: colors.purple[500], + borderColor: colors.purple[500], }, 6: { - baseColor: color.teal[400], - cursorColor: color.teal[400], - selectionColor: color.teal[400], - borderColor: color.teal[400], + baseColor: colors.teal[400], + cursorColor: colors.teal[400], + selectionColor: colors.teal[400], + borderColor: colors.teal[400], }, 7: { - baseColor: color.pink[400], - cursorColor: color.pink[400], - selectionColor: color.pink[400], - borderColor: color.pink[400], + baseColor: colors.pink[400], + cursorColor: colors.pink[400], + selectionColor: colors.pink[400], + borderColor: colors.pink[400], }, 8: { - baseColor: color.yellow[400], - cursorColor: color.yellow[400], - selectionColor: color.yellow[400], - borderColor: color.yellow[400], + baseColor: colors.yellow[400], + cursorColor: colors.yellow[400], + selectionColor: colors.yellow[400], + borderColor: colors.yellow[400], }, }; @@ -147,88 +145,114 @@ const editor = { indent_guide: borderColor.muted, indent_guide_active: borderColor.secondary, line: { - active: color.neutral[0], - highlighted: color.neutral[0], - inserted: backgroundColor.ok.active, - deleted: backgroundColor.error.active, - modified: backgroundColor.info.active, + active: colors.neutral[0], + highlighted: colors.neutral[0], + inserted: backgroundColor.ok.active, + deleted: backgroundColor.error.active, + modified: backgroundColor.info.active, }, highlight: { - selection: player[1].selectionColor, - occurrence: backgroundColor[500].active, - activeOccurrence: color.neutral[0], - matchingBracket: color.neutral[0], - match: color.neutral[0], - activeMatch: color.neutral[0], - related: color.neutral[0], + selection: player[1].selectionColor, + occurrence: backgroundColor[500].active, + activeOccurrence: colors.neutral[0], + matchingBracket: colors.neutral[0], + match: colors.neutral[0], + activeMatch: colors.neutral[0], + related: colors.neutral[0], }, gutter: { - primary: color.neutral[0], - active: color.neutral[0], + primary: colors.neutral[0], + active: colors.neutral[0], }, }; const syntax: Syntax = { primary: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, + color: textColor.primary, + weight: fontWeights.normal, }, comment: { - color: color.lime[200], - weight: { value: "normal", type: "fontWeight" }, + color: colors.lime[200], + weight: fontWeights.normal, }, punctuation: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, + color: textColor.primary, + weight: fontWeights.normal, }, constant: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, + color: colors.neutral[150], + weight: fontWeights.normal, }, keyword: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, + color: colors.sky[400], + weight: fontWeights.normal, }, function: { - color: color.yellow[200], - weight: { value: "normal", type: "fontWeight" }, + color: colors.yellow[200], + weight: fontWeights.normal, }, type: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, + color: colors.teal[300], + weight: fontWeights.normal, }, variant: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, + color: colors.teal[300], + weight: fontWeights.normal, }, property: { - color: color.sky[300], - weight: { value: "normal", type: "fontWeight" }, + color: colors.sky[300], + weight: fontWeights.normal, }, enum: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, + color: colors.sky[400], + weight: fontWeights.normal, }, operator: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, + color: colors.sky[400], + weight: fontWeights.normal, }, string: { - color: color.orange[300], - weight: { value: "normal", type: "fontWeight" }, + color: colors.orange[300], + weight: fontWeights.normal, }, number: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, + color: colors.neutral[150], + weight: fontWeights.normal, }, boolean: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, + color: colors.neutral[150], + weight: fontWeights.normal, }, predictive: { - color: textColor.muted, - weight: { value: "normal", type: "fontWeight" }, - }, + color: textColor.muted, + weight: fontWeights.normal, + }, + title: { + color: colors.sky[500], + weight: fontWeights.bold, + }, + emphasis: { + color: textColor.active, + weight: fontWeights.normal, + }, + emphasisStrong: { + color: textColor.active, + weight: fontWeights.bold, + }, + linkUrl: { + color: colors.lime[500], + weight: fontWeights.normal, + // TODO: add underline + }, + linkText: { + color: colors.orange[500], + weight: fontWeights.normal, + // TODO: add italic + }, + listMarker: { + color: colors.sky[400], + weight: fontWeights.normal, + } }; const shadowAlpha: NumberToken = { diff --git a/styles/themes/theme.ts b/styles/themes/theme.ts index a7760459897b0bedec0d87512e669d1d7ae0a3b4..f95d58e49484aea340693ff289f19cb8cf8a4b0a 100644 --- a/styles/themes/theme.ts +++ b/styles/themes/theme.ts @@ -1,32 +1,8 @@ -export interface NumberToken { - value: number, - type: "number" -} - -export type Color = string; -export interface ColorToken { - value: Color; - type: "color"; - step?: number -} -export type Weight = - | "thin" - | "extra_light" - | "light" - | "normal" - | "medium" - | "semibold" - | "bold" - | "extra_bold" - | "black"; -export interface WeightToken { - value: Weight, - type: "fontWeight" -} +import { FontWeightToken, ColorToken, NumberToken } from "../tokens"; export interface SyntaxHighlightStyle { color: ColorToken; - weight: WeightToken; + weight: FontWeightToken; } export interface Player { @@ -43,7 +19,7 @@ export interface BackgroundColor { focused: ColorToken; } -export interface Syntax { +export interface Syntax { primary: SyntaxHighlightStyle; comment: SyntaxHighlightStyle; punctuation: SyntaxHighlightStyle; @@ -59,6 +35,13 @@ export interface Syntax { number: SyntaxHighlightStyle; boolean: SyntaxHighlightStyle; predictive: SyntaxHighlightStyle; + // TODO: Either move the following or rename + title: SyntaxHighlightStyle; + emphasis: SyntaxHighlightStyle; + emphasisStrong: SyntaxHighlightStyle; + linkUrl: SyntaxHighlightStyle; + linkText: SyntaxHighlightStyle; + listMarker: SyntaxHighlightStyle; }; export default interface Theme { diff --git a/styles/tokens.ts b/styles/tokens.ts new file mode 100644 index 0000000000000000000000000000000000000000..1e0df5032d09ee72ce31fc2b9de256174b6bf905 --- /dev/null +++ b/styles/tokens.ts @@ -0,0 +1,102 @@ +import { colorRamp } from "./utils/color"; + +interface Token { + value: V, + type: T +} + +export type FontFamily = string; +export type FontFamilyToken = Token; +function fontFamily(value: FontFamily): FontFamilyToken { + return { + value, + type: "fontFamily" + } +} +export const fontFamilies = { + sans: fontFamily("Zed Sans"), + mono: fontFamily("Zed Mono"), +} + +export type FontSize = number; +export type FontSizeToken = Token; +function fontSize(value: FontSize) { + return { + value, + type: "fontSize" + }; +} +export const fontSizes = { + "3xs": fontSize(8), + "2xs": fontSize(10), + xs: fontSize(12), + sm: fontSize(14), + md: fontSize(16), + lg: fontSize(18), + xl: fontSize(20), +}; + +export type FontWeight = + | "thin" + | "extra_light" + | "light" + | "normal" + | "medium" + | "semibold" + | "bold" + | "extra_bold" + | "black"; +export type FontWeightToken = Token; +function fontWeight(value: FontWeight): FontWeightToken { + return { + value, + type: "fontWeight" + }; +} +export const fontWeights = { + "thin": fontWeight("thin"), + "extra_light": fontWeight("extra_light"), + "light": fontWeight("light"), + "normal": fontWeight("normal"), + "medium": fontWeight("medium"), + "semibold": fontWeight("semibold"), + "bold": fontWeight("bold"), + "extra_bold": fontWeight("extra_bold"), + "black": fontWeight("black"), +} + +export type Color = string; +export interface ColorToken { + value: Color, + type: "color", + step?: number, +} +export const colors = { + neutral: colorRamp(["black", "white"], { steps: 21, increment: 50 }), + rose: colorRamp("#F43F5EFF"), + red: colorRamp("#EF4444FF"), + orange: colorRamp("#F97316FF"), + amber: colorRamp("#F59E0BFF"), + yellow: colorRamp("#EAB308FF"), + lime: colorRamp("#84CC16FF"), + green: colorRamp("#22C55EFF"), + emerald: colorRamp("#10B981FF"), + teal: colorRamp("#14B8A6FF"), + cyan: colorRamp("#06BBD4FF"), + sky: colorRamp("#0EA5E9FF"), + blue: colorRamp("#3B82F6FF"), + indigo: colorRamp("#6366F1FF"), + violet: colorRamp("#8B5CF6FF"), + purple: colorRamp("#A855F7FF"), + fuschia: colorRamp("#D946E4FF"), + pink: colorRamp("#EC4899FF"), +} + +export type NumberToken = Token; + +export default { + fontFamilies, + fontSizes, + fontWeights, + colors, +}; diff --git a/styles/tokens/core.ts b/styles/tokens/core.ts deleted file mode 100644 index 38bfe82e28129954a2f5602038d575a3cfbb94af..0000000000000000000000000000000000000000 --- a/styles/tokens/core.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { colorRamp } from "../utils/color"; - -export default { - fontFamily: { - sans: "Zed Sans", - mono: "Zed Mono", - }, - fontSize: { - "3xs": { - value: "8", - type: "fontSizes", - }, - "2xs": { - value: "10", - type: "fontSizes", - }, - xs: { - value: "12", - type: "fontSizes", - }, - sm: { - value: "14", - type: "fontSizes", - }, - md: { - value: "16", - type: "fontSizes", - }, - lg: { - value: "18", - type: "fontSizes", - }, - xl: { - value: "20", - type: "fontSizes", - }, - }, - color: { - neutral: colorRamp(["black", "white"], { steps: 21, increment: 50 }), - rose: colorRamp("#F43F5EFF"), - red: colorRamp("#EF4444FF"), - orange: colorRamp("#F97316FF"), - amber: colorRamp("#F59E0BFF"), - yellow: colorRamp("#EAB308FF"), - lime: colorRamp("#84CC16FF"), - green: colorRamp("#22C55EFF"), - emerald: colorRamp("#10B981FF"), - teal: colorRamp("#14B8A6FF"), - cyan: colorRamp("#06BBD4FF"), - sky: colorRamp("#0EA5E9FF"), - blue: colorRamp("#3B82F6FF"), - indigo: colorRamp("#6366F1FF"), - violet: colorRamp("#8B5CF6FF"), - purple: colorRamp("#A855F7FF"), - fuschia: colorRamp("#D946E4FF"), - pink: colorRamp("#EC4899FF"), - }, -}; From f633e98081e9b3f4b48a15097434796d64a4c4a6 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Fri, 1 Apr 2022 22:39:18 -0400 Subject: [PATCH 21/71] Add "npm run watch" command to live reload changes --- styles/nodemon.json | 6 + styles/package-lock.json | 2501 ++++++++++++++++++++++++++++++++++++-- styles/package.json | 6 +- 3 files changed, 2398 insertions(+), 115 deletions(-) create mode 100644 styles/nodemon.json diff --git a/styles/nodemon.json b/styles/nodemon.json new file mode 100644 index 0000000000000000000000000000000000000000..24022a55ad3aa2137a6fec03cdc1c97fa4e59e76 --- /dev/null +++ b/styles/nodemon.json @@ -0,0 +1,6 @@ +{ + "watch": ["./**/*"], + "ext": "ts", + "ignore": [], + "exec": "ts-node buildThemes.ts" +} \ No newline at end of file diff --git a/styles/package-lock.json b/styles/package-lock.json index 582f1c84968a5c1a25ddac5fd3c21ba907353c6d..43c9b19ea1224415c654186ed6203c48e776e2da 100644 --- a/styles/package-lock.json +++ b/styles/package-lock.json @@ -12,7 +12,10 @@ "@types/chroma-js": "^2.1.3", "@types/node": "^17.0.23", "case-anything": "^2.1.10", - "chroma-js": "^2.4.2", + "chroma-js": "^2.4.2" + }, + "devDependencies": { + "nodemon": "^2.0.15", "ts-node": "^10.7.0" } }, @@ -20,6 +23,7 @@ "version": "0.8.0", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "dev": true, "engines": { "node": ">= 12" } @@ -28,6 +32,7 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "dev": true, "dependencies": { "@cspotcode/source-map-consumer": "0.8.0" }, @@ -35,25 +40,50 @@ "node": ">=12" } }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true }, "node_modules/@tsconfig/node12": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true }, "node_modules/@tsconfig/node14": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true }, "node_modules/@tsconfig/node16": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true }, "node_modules/@types/chroma-js": { "version": "2.1.3", @@ -65,10 +95,17 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, "node_modules/acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -80,14 +117,175 @@ "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, "engines": { "node": ">=0.4.0" } }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/case-anything": { "version": "2.1.10", @@ -100,186 +298,2136 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/chroma-js": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, "engines": { "node": ">=0.3.1" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "node_modules/ts-node": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", - "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, "dependencies": { - "@cspotcode/source-map-support": "0.7.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.0", - "yn": "3.1.1" + "is-obj": "^2.0.0" }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "engines": { + "node": ">=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + "engines": { + "node": ">=6" } }, - "node_modules/typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" }, "engines": { - "node": ">=4.2.0" + "node": ">= 6" } }, - "node_modules/v8-compile-cache-lib": { + "node_modules/global-dirs": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", - "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==" + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, "engines": { - "node": ">=6" + "node": ">=8.6" } - } - }, - "dependencies": { - "@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==" }, - "@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", - "requires": { - "@cspotcode/source-map-consumer": "0.8.0" + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" } }, - "@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true }, - "@tsconfig/node14": { + "node_modules/ignore-by-default": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true }, - "@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "engines": { + "node": ">=4" + } }, - "@types/chroma-js": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", - "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } }, - "@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nodemon": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", + "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/ts-node": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", + "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "0.7.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.0", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", + "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", + "dev": true + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + } + }, + "dependencies": { + "@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "dev": true, + "requires": { + "@cspotcode/source-map-consumer": "0.8.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true + }, + "@types/chroma-js": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", + "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" + }, + "@types/node": { + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" }, - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } }, "arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true }, "case-anything": { "version": "2.1.10", "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==" }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, "chroma-js": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, "create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "requires": { + "ini": "2.0.0" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } }, "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "nodemon": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", + "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "dev": true, + "requires": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + } }, "ts-node": { "version": "10.7.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "dev": true, "requires": { "@cspotcode/source-map-support": "0.7.0", "@tsconfig/node10": "^1.0.7", @@ -296,21 +2444,146 @@ "yn": "3.1.1" } }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, "typescript": { "version": "4.6.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "dev": true, "peer": true }, + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, "v8-compile-cache-lib": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", - "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==" + "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", + "dev": true + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true } } } diff --git a/styles/package.json b/styles/package.json index c270bba0e1563cee758bbf5a02fb9fc1848b37ae..8576a35d34956a0dd438e35f6989dd9b68b217c2 100644 --- a/styles/package.json +++ b/styles/package.json @@ -4,7 +4,8 @@ "description": "", "main": "index.js", "scripts": { - "build": "ts-node buildThemes.ts" + "build": "ts-node buildThemes.ts", + "watch": "nodemon" }, "author": "", "license": "ISC", @@ -14,5 +15,8 @@ "case-anything": "^2.1.10", "chroma-js": "^2.4.2", "ts-node": "^10.7.0" + }, + "devDependencies": { + "nodemon": "^2.0.15" } } From ffc271e100158bec7f88bc65ec396c3bf422f21b Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Fri, 1 Apr 2022 23:58:04 -0400 Subject: [PATCH 22/71] WIP --- crates/zed/assets/themes/dark.json | 351 ++++++++++++------------ crates/zed/assets/themes/light.json | 411 ++++++++++++++-------------- styles/buildThemes.ts | 2 +- styles/styleTree/chatPanel.ts | 8 +- styles/styleTree/editor.ts | 14 +- styles/styleTree/projectPanel.ts | 7 +- styles/styleTree/workspace.ts | 29 +- styles/themes/dark.ts | 24 +- styles/themes/light.ts | 288 ++++++++++--------- styles/themes/theme.ts | 2 +- styles/tokens.ts | 2 +- 11 files changed, 576 insertions(+), 562 deletions(-) diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json index 65bf78b140ff3c94c298982cf2b3a6f6b8210609..fd11fc6c3a64a6fd6d878b935941d21960c12f37 100644 --- a/crates/zed/assets/themes/dark.json +++ b/crates/zed/assets/themes/dark.json @@ -1,6 +1,6 @@ { "selector": { - "background": "#e6e6e6", + "background": "#000000", "corner_radius": 6, "padding": 8, "item": { @@ -13,12 +13,12 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#595959", + "color": "#9c9c9c", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#2db4f3", + "color": "#90df17", "weight": "bold", "size": 14 } @@ -33,25 +33,25 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#2db4f3", + "color": "#90df17", "weight": "bold", "size": 14 }, - "background": "#e6e6e6" + "background": "#000000" }, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "empty": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "padding": { @@ -62,11 +62,11 @@ } }, "input_editor": { - "background": "#cccccc", + "background": "#1c1c1c", "corner_radius": 6, "placeholder_text": { "family": "Zed Sans", - "color": "#bfbfbf", + "color": "#2b2b2b", "size": 14 }, "selection": { @@ -75,11 +75,11 @@ }, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 16 }, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "padding": { @@ -103,24 +103,25 @@ } }, "workspace": { - "background": "#e6e6e6", + "background": "#1c1c1c", "leader_border_opacity": 0.7, "leader_border_width": 2, "tab": { - "height": 34, - "icon_close": "#808080", - "icon_close_active": "#0d0d0d", - "icon_conflict": "#f8c570", - "icon_dirty": "#6099f7", + "height": 32, + "background": "#1c1c1c", + "icon_close": "#717171", + "icon_close_active": "#f1f1f1", + "icon_conflict": "#f7b241", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { "family": "Zed Mono", - "color": "#595959", - "size": 16 + "color": "#9c9c9c", + "size": 14 }, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "left": true, "bottom": true, @@ -132,20 +133,21 @@ } }, "active_tab": { - "height": 34, - "icon_close": "#808080", - "icon_close_active": "#0d0d0d", - "icon_conflict": "#f8c570", - "icon_dirty": "#6099f7", + "height": 32, + "background": "#000000", + "icon_close": "#717171", + "icon_close_active": "#f1f1f1", + "icon_conflict": "#f7b241", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { "family": "Zed Mono", - "color": "#262626", - "size": 16 + "color": "#ffffff", + "size": 14 }, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "left": true, "bottom": false, @@ -154,28 +156,28 @@ "padding": { "left": 12, "right": 12 - }, - "background": "#cccccc" + } }, "left_sidebar": { "width": 30, + "background": "#1c1c1c", "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "right": true }, "item": { "height": 32, - "icon_color": "#808080", + "icon_color": "#717171", "icon_size": 18 }, "active_item": { "height": 32, - "icon_color": "#4d4d4d", + "icon_color": "#f1f1f1", "icon_size": 18 }, "resize_handle": { - "background": "#d9d9d9", + "background": "#0e0e0e", "padding": { "left": 1 } @@ -183,30 +185,31 @@ }, "right_sidebar": { "width": 30, + "background": "#1c1c1c", "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "left": true }, "item": { "height": 32, - "icon_color": "#808080", + "icon_color": "#717171", "icon_size": 18 }, "active_item": { "height": 32, - "icon_color": "#4d4d4d", + "icon_color": "#f1f1f1", "icon_size": 18 }, "resize_handle": { - "background": "#d9d9d9", + "background": "#0e0e0e", "padding": { "left": 1 } } }, "pane_divider": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "status_bar": { @@ -218,28 +221,29 @@ }, "cursor_position": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "diagnostic_message": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "lsp_message": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 } }, "titlebar": { "avatar_width": 18, "height": 32, - "share_icon_color": "#808080", - "share_icon_active_color": "#0d0d0d", + "background": "#393939", + "share_icon_color": "#717171", + "share_icon_active_color": "#f1f1f1", "title": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14 }, "avatar": { @@ -254,13 +258,13 @@ "width": 12 }, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "bottom": true }, "sign_in_prompt": { "family": "Zed Sans", - "color": "#595959", + "color": "#9c9c9c", "size": 13, "underline": true, "padding": { @@ -269,15 +273,15 @@ }, "hovered_sign_in_prompt": { "family": "Zed Mono", - "color": "#000000", - "size": 16, + "color": "#ffffff", + "size": 13, "underline": true, "padding": { "right": 8 } }, "offline_icon": { - "color": "#999999", + "color": "#717171", "width": 16, "padding": { "right": 4 @@ -285,15 +289,15 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#f8c570", "size": 13 } }, "toolbar": { "height": 34, - "background": "#cccccc", + "background": "#000000", "border": { - "color": "#d9d9d9", + "color": "#2b2b2b", "width": 1, "bottom": true }, @@ -307,7 +311,7 @@ }, "breadcrumbs": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, "padding": { "left": 6 @@ -321,20 +325,20 @@ } }, "editor": { - "text_color": "#595959", - "background": "#cccccc", - "active_line_background": "#000000", - "code_actions_indicator": "#808080", + "text_color": "#9c9c9c", + "background": "#000000", + "active_line_background": "#ffffff", + "code_actions_indicator": "#717171", "diff_background_deleted": "#f78c8c", "diff_background_inserted": "#22c55e", - "document_highlight_read_background": "#e6e6e6", - "document_highlight_write_background": "#e6e6e6", + "document_highlight_read_background": "#000000", + "document_highlight_write_background": "#000000", "error_color": "#f78c8c", - "gutter_background": "#cccccc", + "gutter_background": "#000000", "gutter_padding_factor": 2.5, - "highlighted_line_background": "#000000", - "line_number": "#000000", - "line_number_active": "#000000", + "highlighted_line_background": "#ffffff", + "line_number": "#ffffff", + "line_number_active": "#ffffff", "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { @@ -372,11 +376,11 @@ } ], "autocomplete": { - "background": "#bfbfbf", + "background": "#000000", "corner_radius": 6, "padding": 6, "border": { - "color": "#b3b3b3", + "color": "#393939", "width": 1 }, "item": { @@ -396,7 +400,7 @@ "right": 6, "top": 2 }, - "background": "#bfbfbf" + "background": "#000000" }, "margin": { "left": -14 @@ -413,22 +417,22 @@ "right": 6, "top": 2 }, - "background": "#bfbfbf" + "background": "#000000" } }, "diagnostic_header": { - "background": "#e6e6e6", + "background": "#1c1c1c", "icon_width_factor": 1.5, "text_scale_factor": 0.857, "border": { - "color": "#b3b3b3", + "color": "#393939", "width": 1, "bottom": true, "top": true }, "code": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "left": 10 @@ -437,28 +441,28 @@ "message": { "highlight_text": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14, "weight": "bold" }, "text": { "family": "Zed Sans", - "color": "#595959", + "color": "#9c9c9c", "size": 14 } } }, "diagnostic_path_header": { - "background": "#000000", + "background": "#ffffff", "text_scale_factor": 0.857, "filename": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 14 }, "path": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "left": 12 @@ -469,7 +473,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -492,7 +496,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -515,7 +519,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -538,7 +542,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -561,7 +565,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -569,12 +573,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "weight": "bold" } @@ -584,7 +588,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -592,12 +596,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "weight": "bold" } @@ -607,7 +611,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -615,12 +619,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "weight": "bold" } @@ -630,7 +634,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -638,12 +642,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "weight": "bold" } @@ -652,18 +656,18 @@ "syntax": {} }, "project_diagnostics": { - "background": "#cccccc", + "background": "#1c1c1c", "tab_icon_spacing": 4, "tab_icon_width": 13, "tab_summary_spacing": 10, "empty_message": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14 }, "status_bar_item": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "right": 10 @@ -672,52 +676,53 @@ }, "project_panel": { "padding": { - "top": 6 + "top": 6, + "left": 12 }, "entry": { "height": 22, - "icon_color": "#999999", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#595959", - "size": 16 + "color": "#9c9c9c", + "size": 14 } }, "hovered_entry": { "height": 22, - "background": "#cccccc", - "icon_color": "#999999", + "background": "#1c1c1c", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#595959", - "size": 16 + "color": "#9c9c9c", + "size": 14 } }, "selected_entry": { "height": 22, - "icon_color": "#999999", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#262626", - "size": 16 + "color": "#d5d5d5", + "size": 14 } }, "hovered_selected_entry": { "height": 22, - "background": "#cccccc", - "icon_color": "#999999", + "background": "#1c1c1c", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#262626", - "size": 16 + "color": "#d5d5d5", + "size": 14 } } }, @@ -730,13 +735,13 @@ }, "channel_name": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "weight": "bold", "size": 14 }, "channel_name_hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "padding": { "right": 8 @@ -746,7 +751,7 @@ "header": { "name": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14 }, "padding": { @@ -755,7 +760,7 @@ }, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "right": 8 @@ -766,13 +771,13 @@ "item": { "name": { "family": "Zed Sans", - "color": "#595959", + "color": "#9c9c9c", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "right": 8 @@ -783,31 +788,31 @@ "hovered_item": { "name": { "family": "Zed Sans", - "color": "#595959", + "color": "#9c9c9c", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "right": 8 } }, - "background": "#cccccc", + "background": "#1c1c1c", "corner_radius": 6 }, "active_item": { "name": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "right": 8 @@ -818,27 +823,27 @@ "hovered_active_item": { "name": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "right": 8 } }, - "background": "#cccccc", + "background": "#1c1c1c", "corner_radius": 6 }, "menu": { - "background": "#e6e6e6", + "background": "#000000", "corner_radius": 6, "padding": 4, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "shadow": { @@ -853,25 +858,25 @@ }, "sign_in_prompt": { "family": "Zed Sans", - "color": "#595959", + "color": "#9c9c9c", "underline": true, "size": 14 }, "hovered_sign_in_prompt": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "underline": true, "size": 14 }, "message": { "body": { "family": "Zed Sans", - "color": "#595959", + "color": "#9c9c9c", "size": 14 }, "timestamp": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "padding": { @@ -879,7 +884,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "weight": "bold", "size": 14, "margin": { @@ -890,12 +895,12 @@ "pending_message": { "body": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "timestamp": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "padding": { @@ -903,7 +908,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "weight": "bold", "size": 14, "margin": { @@ -912,24 +917,24 @@ } }, "input_editor": { - "background": "#cccccc", + "background": "#000000", "corner_radius": 6, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 16 }, "placeholder_text": { "family": "Zed Mono", - "color": "#8c8c8c", - "size": 16 + "color": "#2b2b2b", + "size": 14 }, "selection": { "cursor": "#4287f6", "selection": "#4287f6" }, "border": { - "color": "#d9d9d9", + "color": "#393939", "width": 1 }, "padding": { @@ -948,7 +953,7 @@ "right": 12 }, "host_row_height": 28, - "tree_branch_color": "#bfbfbf", + "tree_branch_color": "#2b2b2b", "tree_branch_width": 1, "host_avatar": { "corner_radius": 10, @@ -956,7 +961,7 @@ }, "host_username": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#636363", "size": 16, "padding": { "left": 8 @@ -971,7 +976,7 @@ }, "name": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, "margin": { "right": 6 @@ -990,7 +995,7 @@ }, "name": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 16, "margin": { "right": 6 @@ -1009,7 +1014,7 @@ }, "name": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 16, "margin": { "right": 6 @@ -1018,7 +1023,7 @@ "padding": { "left": 8 }, - "background": "#000000", + "background": "#ffffff", "corner_radius": 6 }, "unshared_project": { @@ -1030,7 +1035,7 @@ }, "name": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, "margin": { "right": 6 @@ -1049,7 +1054,7 @@ }, "name": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, "margin": { "right": 6 @@ -1058,22 +1063,22 @@ "padding": { "left": 8 }, - "background": "#000000", + "background": "#ffffff", "corner_radius": 6 } }, "search": { - "match_background": "#000000", + "match_background": "#ffffff", "tab_icon_spacing": 4, "tab_icon_width": 14, "active_hovered_option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, - "background": "#bfbfbf", + "background": "#393939", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "margin": { @@ -1089,12 +1094,12 @@ }, "active_option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, - "background": "#bfbfbf", + "background": "#393939", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "margin": { @@ -1109,13 +1114,13 @@ } }, "editor": { - "background": "#e6e6e6", + "background": "#000000", "corner_radius": 6, "min_width": 200, "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#bfbfbf", + "color": "#2b2b2b", "size": 16 }, "selection": { @@ -1124,11 +1129,11 @@ }, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 16 }, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "margin": { @@ -1143,12 +1148,12 @@ }, "hovered_option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, - "background": "#bfbfbf", + "background": "#393939", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "margin": { @@ -1163,13 +1168,13 @@ } }, "invalid_editor": { - "background": "#e6e6e6", + "background": "#000000", "corner_radius": 6, "min_width": 200, "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#bfbfbf", + "color": "#2b2b2b", "size": 16 }, "selection": { @@ -1178,11 +1183,11 @@ }, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 16 }, "border": { - "color": "#ffffff", + "color": "#f47171", "width": 1 }, "margin": { @@ -1197,18 +1202,18 @@ }, "match_index": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#636363", "size": 16, "padding": 6 }, "option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, - "background": "#cccccc", + "background": "#1c1c1c", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "margin": { @@ -1230,13 +1235,13 @@ }, "results_status": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 18 } }, "breadcrumbs": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14, "padding": { "left": 6 diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json index 65bf78b140ff3c94c298982cf2b3a6f6b8210609..219f958e876dcb36abd4edf2e2986c7fb26f32c3 100644 --- a/crates/zed/assets/themes/light.json +++ b/crates/zed/assets/themes/light.json @@ -1,6 +1,6 @@ { "selector": { - "background": "#e6e6e6", + "background": "#ffffff", "corner_radius": 6, "padding": 8, "item": { @@ -13,12 +13,12 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#595959", + "color": "#393939", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#2db4f3", + "color": "#4287f6", "weight": "bold", "size": 14 } @@ -33,25 +33,25 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#2db4f3", + "color": "#4287f6", "weight": "bold", "size": 14 }, - "background": "#e6e6e6" + "background": "#e3e3e3" }, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "empty": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "padding": { @@ -62,24 +62,24 @@ } }, "input_editor": { - "background": "#cccccc", + "background": "#f1f1f1", "corner_radius": 6, "placeholder_text": { "family": "Zed Sans", - "color": "#bfbfbf", + "color": "#717171", "size": 14 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 16 }, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "padding": { @@ -95,7 +95,7 @@ }, "shadow": { "blur": 16, - "color": "#00000052", + "color": "#0000001f", "offset": [ 0, 2 @@ -103,24 +103,25 @@ } }, "workspace": { - "background": "#e6e6e6", + "background": "#f1f1f1", "leader_border_opacity": 0.7, "leader_border_width": 2, "tab": { - "height": 34, - "icon_close": "#808080", - "icon_close_active": "#0d0d0d", - "icon_conflict": "#f8c570", - "icon_dirty": "#6099f7", + "height": 32, + "background": "#f1f1f1", + "icon_close": "#717171", + "icon_close_active": "#000000", + "icon_conflict": "#f6bc09", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { "family": "Zed Mono", - "color": "#595959", - "size": 16 + "color": "#393939", + "size": 14 }, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "left": true, "bottom": true, @@ -132,20 +133,21 @@ } }, "active_tab": { - "height": 34, - "icon_close": "#808080", - "icon_close_active": "#0d0d0d", - "icon_conflict": "#f8c570", - "icon_dirty": "#6099f7", + "height": 32, + "background": "#ffffff", + "icon_close": "#717171", + "icon_close_active": "#000000", + "icon_conflict": "#f6bc09", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { "family": "Zed Mono", - "color": "#262626", - "size": 16 + "color": "#000000", + "size": 14 }, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "left": true, "bottom": false, @@ -154,28 +156,28 @@ "padding": { "left": 12, "right": 12 - }, - "background": "#cccccc" + } }, "left_sidebar": { "width": 30, + "background": "#f1f1f1", "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "right": true }, "item": { "height": 32, - "icon_color": "#808080", + "icon_color": "#717171", "icon_size": 18 }, "active_item": { "height": 32, - "icon_color": "#4d4d4d", + "icon_color": "#000000", "icon_size": 18 }, "resize_handle": { - "background": "#d9d9d9", + "background": "#c6c6c6", "padding": { "left": 1 } @@ -183,30 +185,31 @@ }, "right_sidebar": { "width": 30, + "background": "#f1f1f1", "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "left": true }, "item": { "height": 32, - "icon_color": "#808080", + "icon_color": "#717171", "icon_size": 18 }, "active_item": { "height": 32, - "icon_color": "#4d4d4d", + "icon_color": "#000000", "icon_size": 18 }, "resize_handle": { - "background": "#d9d9d9", + "background": "#c6c6c6", "padding": { "left": 1 } } }, "pane_divider": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "status_bar": { @@ -218,28 +221,29 @@ }, "cursor_position": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "diagnostic_message": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "lsp_message": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 } }, "titlebar": { "avatar_width": 18, "height": 32, - "share_icon_color": "#808080", - "share_icon_active_color": "#0d0d0d", + "background": "#e3e3e3", + "share_icon_color": "#717171", + "share_icon_active_color": "#000000", "title": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14 }, "avatar": { @@ -254,13 +258,13 @@ "width": 12 }, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "bottom": true }, "sign_in_prompt": { "family": "Zed Sans", - "color": "#595959", + "color": "#393939", "size": 13, "underline": true, "padding": { @@ -270,14 +274,14 @@ "hovered_sign_in_prompt": { "family": "Zed Mono", "color": "#000000", - "size": 16, + "size": 13, "underline": true, "padding": { "right": 8 } }, "offline_icon": { - "color": "#999999", + "color": "#717171", "width": 16, "padding": { "right": 4 @@ -285,15 +289,15 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#b48d14", "size": 13 } }, "toolbar": { "height": 34, - "background": "#cccccc", + "background": "#ffffff", "border": { - "color": "#d9d9d9", + "color": "#f1f1f1", "width": 1, "bottom": true }, @@ -307,7 +311,7 @@ }, "breadcrumbs": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, "padding": { "left": 6 @@ -315,68 +319,68 @@ }, "disconnected_overlay": { "family": "Zed Sans", - "color": "#ffffff", + "color": "#000000", "size": 14, "background": "#000000aa" } }, "editor": { - "text_color": "#595959", - "background": "#cccccc", - "active_line_background": "#000000", - "code_actions_indicator": "#808080", - "diff_background_deleted": "#f78c8c", - "diff_background_inserted": "#22c55e", - "document_highlight_read_background": "#e6e6e6", - "document_highlight_write_background": "#e6e6e6", - "error_color": "#f78c8c", - "gutter_background": "#cccccc", + "text_color": "#393939", + "background": "#ffffff", + "active_line_background": "#ffffff", + "code_actions_indicator": "#717171", + "diff_background_deleted": "#fdd4d4", + "diff_background_inserted": "#befad2", + "document_highlight_read_background": "#e3e3e3", + "document_highlight_write_background": "#e3e3e3", + "error_color": "#d11c1c", + "gutter_background": "#ffffff", "gutter_padding_factor": 2.5, - "highlighted_line_background": "#000000", - "line_number": "#000000", - "line_number_active": "#000000", + "highlighted_line_background": "#ffffff", + "line_number": "#ffffff", + "line_number_active": "#ffffff", "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "guest_selections": [ { "cursor": "#777af4", - "selection": "#777af4" + "selection": "#d4d5fd" }, { "cursor": "#23d464", - "selection": "#23d464" + "selection": "#befad2" }, { "cursor": "#f98a3d", - "selection": "#f98a3d" + "selection": "#fde0cd" }, { "cursor": "#b671f8", - "selection": "#b671f8" + "selection": "#e9d4fd" }, { "cursor": "#16ddc7", - "selection": "#16ddc7" + "selection": "#b4faf2" }, { "cursor": "#f58ac0", - "selection": "#f58ac0" + "selection": "#fcd4e8" }, { "cursor": "#f6bc09", - "selection": "#f6bc09" + "selection": "#fceabc" } ], "autocomplete": { - "background": "#bfbfbf", + "background": "#ffffff", "corner_radius": 6, "padding": 6, "border": { - "color": "#b3b3b3", + "color": "#e3e3e3", "width": 1 }, "item": { @@ -396,7 +400,7 @@ "right": 6, "top": 2 }, - "background": "#bfbfbf" + "background": "#f1f1f1" }, "margin": { "left": -14 @@ -413,22 +417,22 @@ "right": 6, "top": 2 }, - "background": "#bfbfbf" + "background": "#e3e3e3" } }, "diagnostic_header": { - "background": "#e6e6e6", + "background": "#f1f1f1", "icon_width_factor": 1.5, "text_scale_factor": 0.857, "border": { - "color": "#b3b3b3", + "color": "#e3e3e3", "width": 1, "bottom": true, "top": true }, "code": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "left": 10 @@ -437,28 +441,28 @@ "message": { "highlight_text": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14, "weight": "bold" }, "text": { "family": "Zed Sans", - "color": "#595959", + "color": "#393939", "size": 14 } } }, "diagnostic_path_header": { - "background": "#000000", + "background": "#ffffff", "text_scale_factor": 0.857, "filename": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 14 }, "path": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "left": 12 @@ -469,7 +473,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -477,12 +481,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#f78c8c", + "color": "#d11c1c", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#f78c8c", + "color": "#d11c1c", "size": 14, "weight": "bold" } @@ -492,7 +496,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -500,12 +504,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#b48d14", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#b48d14", "size": 14, "weight": "bold" } @@ -515,7 +519,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -523,12 +527,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#1762db", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#1762db", "size": 14, "weight": "bold" } @@ -538,7 +542,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -546,12 +550,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#1762db", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#1762db", "size": 14, "weight": "bold" } @@ -561,7 +565,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -569,12 +573,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "weight": "bold" } @@ -584,7 +588,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -592,12 +596,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "weight": "bold" } @@ -607,7 +611,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -615,12 +619,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "weight": "bold" } @@ -630,7 +634,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -638,12 +642,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "weight": "bold" } @@ -652,18 +656,18 @@ "syntax": {} }, "project_diagnostics": { - "background": "#cccccc", + "background": "#f1f1f1", "tab_icon_spacing": 4, "tab_icon_width": 13, "tab_summary_spacing": 10, "empty_message": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14 }, "status_bar_item": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "right": 10 @@ -672,52 +676,53 @@ }, "project_panel": { "padding": { - "top": 6 + "top": 6, + "left": 12 }, "entry": { "height": 22, - "icon_color": "#999999", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#595959", - "size": 16 + "color": "#393939", + "size": 14 } }, "hovered_entry": { "height": 22, - "background": "#cccccc", - "icon_color": "#999999", + "background": "#e3e3e3", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#595959", - "size": 16 + "color": "#393939", + "size": 14 } }, "selected_entry": { "height": 22, - "icon_color": "#999999", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#262626", - "size": 16 + "color": "#1c1c1c", + "size": 14 } }, "hovered_selected_entry": { "height": 22, - "background": "#cccccc", - "icon_color": "#999999", + "background": "#e3e3e3", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#262626", - "size": 16 + "color": "#1c1c1c", + "size": 14 } } }, @@ -730,13 +735,13 @@ }, "channel_name": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "weight": "bold", "size": 14 }, "channel_name_hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "padding": { "right": 8 @@ -746,7 +751,7 @@ "header": { "name": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14 }, "padding": { @@ -755,7 +760,7 @@ }, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "right": 8 @@ -766,13 +771,13 @@ "item": { "name": { "family": "Zed Sans", - "color": "#595959", + "color": "#393939", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "right": 8 @@ -783,31 +788,31 @@ "hovered_item": { "name": { "family": "Zed Sans", - "color": "#595959", + "color": "#393939", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "right": 8 } }, - "background": "#cccccc", + "background": "#e3e3e3", "corner_radius": 6 }, "active_item": { "name": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "right": 8 @@ -818,32 +823,32 @@ "hovered_active_item": { "name": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "right": 8 } }, - "background": "#cccccc", + "background": "#e3e3e3", "corner_radius": 6 }, "menu": { - "background": "#e6e6e6", + "background": "#ffffff", "corner_radius": 6, "padding": 4, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "shadow": { "blur": 16, - "color": "#00000052", + "color": "#0000001f", "offset": [ 0, 2 @@ -853,25 +858,25 @@ }, "sign_in_prompt": { "family": "Zed Sans", - "color": "#595959", + "color": "#393939", "underline": true, "size": 14 }, "hovered_sign_in_prompt": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "underline": true, "size": 14 }, "message": { "body": { "family": "Zed Sans", - "color": "#595959", + "color": "#393939", "size": 14 }, "timestamp": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "padding": { @@ -879,7 +884,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "weight": "bold", "size": 14, "margin": { @@ -890,12 +895,12 @@ "pending_message": { "body": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "timestamp": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "padding": { @@ -903,7 +908,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "weight": "bold", "size": 14, "margin": { @@ -912,24 +917,24 @@ } }, "input_editor": { - "background": "#cccccc", + "background": "#ffffff", "corner_radius": 6, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 16 }, "placeholder_text": { "family": "Zed Mono", - "color": "#8c8c8c", - "size": 16 + "color": "#717171", + "size": 14 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "border": { - "color": "#d9d9d9", + "color": "#e3e3e3", "width": 1 }, "padding": { @@ -948,7 +953,7 @@ "right": 12 }, "host_row_height": 28, - "tree_branch_color": "#bfbfbf", + "tree_branch_color": "#f1f1f1", "tree_branch_width": 1, "host_avatar": { "corner_radius": 10, @@ -956,7 +961,7 @@ }, "host_username": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#555555", "size": 16, "padding": { "left": 8 @@ -971,7 +976,7 @@ }, "name": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, "margin": { "right": 6 @@ -990,7 +995,7 @@ }, "name": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 16, "margin": { "right": 6 @@ -1009,7 +1014,7 @@ }, "name": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 16, "margin": { "right": 6 @@ -1018,7 +1023,7 @@ "padding": { "left": 8 }, - "background": "#000000", + "background": "#ffffff", "corner_radius": 6 }, "unshared_project": { @@ -1030,7 +1035,7 @@ }, "name": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, "margin": { "right": 6 @@ -1049,7 +1054,7 @@ }, "name": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, "margin": { "right": 6 @@ -1058,22 +1063,22 @@ "padding": { "left": 8 }, - "background": "#000000", + "background": "#ffffff", "corner_radius": 6 } }, "search": { - "match_background": "#000000", + "match_background": "#ffffff", "tab_icon_spacing": 4, "tab_icon_width": 14, "active_hovered_option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, - "background": "#bfbfbf", + "background": "#e3e3e3", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "margin": { @@ -1089,12 +1094,12 @@ }, "active_option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, - "background": "#bfbfbf", + "background": "#e3e3e3", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "margin": { @@ -1109,26 +1114,26 @@ } }, "editor": { - "background": "#e6e6e6", + "background": "#ffffff", "corner_radius": 6, "min_width": 200, "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#bfbfbf", + "color": "#717171", "size": 16 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 16 }, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "margin": { @@ -1143,12 +1148,12 @@ }, "hovered_option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, - "background": "#bfbfbf", + "background": "#e3e3e3", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "margin": { @@ -1163,26 +1168,26 @@ } }, "invalid_editor": { - "background": "#e6e6e6", + "background": "#ffffff", "corner_radius": 6, "min_width": 200, "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#bfbfbf", + "color": "#717171", "size": 16 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 16 }, "border": { - "color": "#ffffff", + "color": "#fbbdbd", "width": 1 }, "margin": { @@ -1197,18 +1202,18 @@ }, "match_index": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#555555", "size": 16, "padding": 6 }, "option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, - "background": "#cccccc", + "background": "#f1f1f1", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "margin": { @@ -1230,13 +1235,13 @@ }, "results_status": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 18 } }, "breadcrumbs": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14, "padding": { "left": 6 diff --git a/styles/buildThemes.ts b/styles/buildThemes.ts index d67860cee66a0ec7abd7d37da8b10f0a6c930488..9128eff45d46a0a11b9a8ddb04013b3b59faf87a 100644 --- a/styles/buildThemes.ts +++ b/styles/buildThemes.ts @@ -1,8 +1,8 @@ import * as fs from "fs"; import * as path from "path"; +import app from "./styleTree/app"; import dark from "./themes/dark"; import light from "./themes/light"; -import app from "./styleTree/app"; import decamelizeTree from "./utils/decamelizeTree"; const themes = [dark, light]; diff --git a/styles/styleTree/chatPanel.ts b/styles/styleTree/chatPanel.ts index ea9a8ffe22a83e2b7135bc886273f2da2d7c1502..69b5f3baa0d74c03e4ff5e0a81ff4fc6616afdfc 100644 --- a/styles/styleTree/chatPanel.ts +++ b/styles/styleTree/chatPanel.ts @@ -31,7 +31,7 @@ export default function chatPanel(theme: Theme) { const message = { body: text(theme, "sans", "secondary"), - timestamp: text(theme, "sans", "muted"), + timestamp: text(theme, "sans", "muted", { size: "sm" }), padding: { bottom: 6, }, @@ -91,12 +91,12 @@ export default function chatPanel(theme: Theme) { }, }, inputEditor: { - background: backgroundColor(theme, 300), + background: backgroundColor(theme, 500), cornerRadius: 6, text: text(theme, "mono", "primary"), - placeholderText: text(theme, "mono", "muted"), + placeholderText: text(theme, "mono", "placeholder", { size: "sm" }), selection: player(theme, 1).selection, - border: border(theme, "primary"), + border: border(theme, "secondary"), padding: { bottom: 7, left: 8, diff --git a/styles/styleTree/editor.ts b/styles/styleTree/editor.ts index ebc53b405875dab197a3c95d5373732050e9a7a0..eb379ce520bfb5b53b85e5d8e28be639d598a6f9 100644 --- a/styles/styleTree/editor.ts +++ b/styles/styleTree/editor.ts @@ -5,7 +5,7 @@ import { iconColor, player, text, - TextColor, + TextColor } from "./components"; export default function editor(theme: Theme) { @@ -39,7 +39,7 @@ export default function editor(theme: Theme) { return { textColor: theme.textColor.secondary.value, - background: backgroundColor(theme, 300), + background: backgroundColor(theme, 500), activeLineBackground: theme.editor.line.active.value, codeActionsIndicator: iconColor(theme, "secondary"), diffBackgroundDeleted: backgroundColor(theme, "error"), @@ -47,7 +47,7 @@ export default function editor(theme: Theme) { documentHighlightReadBackground: theme.editor.highlight.occurrence.value, documentHighlightWriteBackground: theme.editor.highlight.occurrence.value, errorColor: theme.textColor.error.value, - gutterBackground: backgroundColor(theme, 300), + gutterBackground: backgroundColor(theme, 500), gutterPaddingFactor: 2.5, highlightedLineBackground: theme.editor.line.highlighted.value, lineNumber: theme.editor.gutter.primary.value, @@ -65,14 +65,14 @@ export default function editor(theme: Theme) { player(theme, 8).selection, ], autocomplete: { - background: backgroundColor(theme, 100), + background: backgroundColor(theme, 500), cornerRadius: 6, padding: 6, border: border(theme, "secondary"), item: autocompleteItem, hoveredItem: { ...autocompleteItem, - background: backgroundColor(theme, 100, "hovered"), + background: backgroundColor(theme, 500, "hovered"), }, margin: { left: -14, @@ -83,11 +83,11 @@ export default function editor(theme: Theme) { }, selectedItem: { ...autocompleteItem, - background: backgroundColor(theme, 100, "active"), + background: backgroundColor(theme, 500, "active"), }, }, diagnosticHeader: { - background: theme.editor.background.value, + background: backgroundColor(theme, 300), iconWidthFactor: 1.5, textScaleFactor: 0.857, // NateQ: Will we need dynamic sizing for text? If so let's create tokens for these. border: border(theme, "secondary", { diff --git a/styles/styleTree/projectPanel.ts b/styles/styleTree/projectPanel.ts index cd6fb49b3ada1db47b3dd15637cb1a4a6c5ee516..e27cd94414a031f64dbc0ee5e232d2666944462a 100644 --- a/styles/styleTree/projectPanel.ts +++ b/styles/styleTree/projectPanel.ts @@ -1,7 +1,7 @@ -import { panel } from "./app"; -import { backgroundColor, iconColor, text, TextColor } from "./components"; import Theme from "../themes/theme"; import { Color } from "../utils/color"; +import { panel } from "./app"; +import { backgroundColor, iconColor, text, TextColor } from "./components"; export default function projectPanel(theme: Theme) { function entry(theme: Theme, textColor: TextColor, background?: Color) { @@ -11,7 +11,7 @@ export default function projectPanel(theme: Theme) { iconColor: iconColor(theme, "muted"), iconSize: 8, iconSpacing: 8, - text: text(theme, "mono", textColor), + text: text(theme, "mono", textColor, { size: "sm" }), }; } @@ -31,6 +31,7 @@ export default function projectPanel(theme: Theme) { ), padding: { top: 6, + left: 12, }, }; } diff --git a/styles/styleTree/workspace.ts b/styles/styleTree/workspace.ts index 7e71eaad2a8e258e5aed2476af0b68fbf9c7ba4b..a734528d744c21896cb73c090b482615bb3544b3 100644 --- a/styles/styleTree/workspace.ts +++ b/styles/styleTree/workspace.ts @@ -12,14 +12,15 @@ export default function workspace(theme: Theme) { }; const tab = { - height: 34, + height: 32, + background: backgroundColor(theme, 300), iconClose: iconColor(theme, "secondary"), iconCloseActive: iconColor(theme, "active"), iconConflict: iconColor(theme, "warning"), iconDirty: iconColor(theme, "info"), iconWidth: 8, spacing: 10, - text: text(theme, "mono", "secondary"), + text: text(theme, "mono", "secondary", { size: "sm" }), border: border(theme, "primary", { left: true, bottom: true, @@ -33,8 +34,8 @@ export default function workspace(theme: Theme) { const activeTab = { ...tab, - background: backgroundColor(theme, 300), - text: text(theme, "mono", "primary"), + background: backgroundColor(theme, 500), + text: text(theme, "mono", "active", { size: "sm" }), border: { ...tab.border, bottom: false, @@ -48,11 +49,12 @@ export default function workspace(theme: Theme) { }; const sidebar = { width: 30, + background: backgroundColor(theme, 300), border: border(theme, "primary", { right: true }), item: sidebarItem, activeItem: { ...sidebarItem, - iconColor: iconColor(theme, "primary"), + iconColor: iconColor(theme, "active"), }, resizeHandle: { background: border(theme, "primary").color, @@ -63,7 +65,7 @@ export default function workspace(theme: Theme) { }; return { - background: backgroundColor(theme, 500), + background: backgroundColor(theme, 300), leaderBorderOpacity: 0.7, leaderBorderWidth: 2.0, tab, @@ -94,6 +96,7 @@ export default function workspace(theme: Theme) { titlebar: { avatarWidth: 18, height: 32, + background: backgroundColor(theme, 100), shareIconColor: iconColor(theme, "secondary"), shareIconActiveColor: iconColor(theme, "active"), title: text(theme, "sans", "primary"), @@ -107,29 +110,32 @@ export default function workspace(theme: Theme) { avatarRibbon: { height: 3, width: 12, + // TODO: The background for this ideally should be + // set with a token, not hardcoded in rust }, border: border(theme, "primary", { bottom: true }), signInPrompt, hoveredSignInPrompt: { ...signInPrompt, ...text(theme, "mono", "active"), + size: 13, }, offlineIcon: { - color: iconColor(theme, "muted"), + color: iconColor(theme, "secondary"), width: 16, padding: { right: 4, }, }, outdatedWarning: { - ...text(theme, "sans", "muted"), + ...text(theme, "sans", "warning"), size: 13, }, }, toolbar: { height: 34, - background: backgroundColor(theme, 300), - border: border(theme, "primary", { bottom: true }), + background: backgroundColor(theme, 500), + border: border(theme, "muted", { bottom: true }), itemSpacing: 8, padding: { left: 16, right: 8, top: 4, bottom: 4 }, }, @@ -138,8 +144,7 @@ export default function workspace(theme: Theme) { padding: { left: 6 }, }, disconnectedOverlay: { - ...text(theme, "sans", "primary"), - color: "#ffffff", + ...text(theme, "sans", "active"), background: "#000000aa", }, }; diff --git a/styles/themes/dark.ts b/styles/themes/dark.ts index 2cadf24601f47cc1172c4d9be753cc80c3a9f20c..f8e0c0fcb6b00e157bf577fca2024ca286561c5d 100644 --- a/styles/themes/dark.ts +++ b/styles/themes/dark.ts @@ -3,10 +3,10 @@ import Theme, { Syntax } from "./theme"; const backgroundColor = { 100: { - base: colors.neutral[750], - hovered: colors.neutral[750], - active: colors.neutral[750], - focused: colors.neutral[750], + base: colors.neutral[700], + hovered: colors.neutral[700], + active: colors.neutral[700], + focused: colors.neutral[700], }, 300: { base: colors.neutral[800], @@ -52,10 +52,10 @@ const borderColor = { muted: colors.neutral[750], focused: colors.neutral[100], active: colors.neutral[500], - ok: colors.neutral[1000], - error: colors.neutral[1000], - warning: colors.neutral[1000], - info: colors.neutral[1000], + ok: colors.green[500], + error: colors.red[500], + warning: colors.amber[500], + info: colors.blue[500], }; const textColor = { @@ -65,7 +65,7 @@ const textColor = { placeholder: colors.neutral[750], active: colors.neutral[0], //TODO: (design) define feature and it's correct value - feature: colors.sky[500], + feature: colors.lime[400], ok: colors.green[600], error: colors.red[400], warning: colors.amber[300], @@ -81,9 +81,9 @@ const iconColor = { //TODO: (design) define feature and it's correct value feature: colors.sky[500], ok: colors.green[600], - error: colors.red[400], - warning: colors.amber[300], - info: colors.blue[500], + error: colors.red[500], + warning: colors.amber[400], + info: colors.blue[600], }; const player = { diff --git a/styles/themes/light.ts b/styles/themes/light.ts index acb704de74b99b91c2b41a739c751003670c5864..c543c78a302e3579970998ad1fb23847b1e1f694 100644 --- a/styles/themes/light.ts +++ b/styles/themes/light.ts @@ -5,73 +5,72 @@ import Theme, { Syntax } from "./theme"; const backgroundColor = { 100: { - base: colors.neutral[750], - hovered: colors.neutral[750], - active: colors.neutral[750], - focused: colors.neutral[750], + base: colors.neutral[100], + hovered: colors.neutral[150], + active: colors.neutral[200], + focused: colors.neutral[150], }, 300: { - base: colors.neutral[800], - hovered: colors.neutral[800], - active: colors.neutral[800], - focused: colors.neutral[800], + base: colors.neutral[50], + hovered: colors.neutral[100], + active: colors.neutral[150], + focused: colors.neutral[100], }, 500: { - base: colors.neutral[900], - hovered: colors.neutral[900], - active: colors.neutral[900], - focused: colors.neutral[900], + base: colors.neutral[0], + hovered: colors.neutral[50], + active: colors.neutral[100], + focused: colors.neutral[50], }, ok: { - base: colors.green[600], - hovered: colors.green[600], - active: colors.green[600], - focused: colors.green[600], + base: colors.green[100], + hovered: colors.green[100], + active: colors.green[100], + focused: colors.green[100], }, error: { - base: colors.red[400], - hovered: colors.red[400], - active: colors.red[400], - focused: colors.red[400], + base: colors.red[100], + hovered: colors.red[100], + active: colors.red[100], + focused: colors.red[100], }, warning: { - base: colors.amber[300], - hovered: colors.amber[300], - active: colors.amber[300], - focused: colors.amber[300], + base: colors.yellow[100], + hovered: colors.yellow[100], + active: colors.yellow[100], + focused: colors.yellow[100], }, info: { - base: colors.blue[500], - hovered: colors.blue[500], - active: colors.blue[500], - focused: colors.blue[500], + base: colors.blue[100], + hovered: colors.blue[100], + active: colors.blue[100], + focused: colors.blue[100], }, }; const borderColor = { - primary: colors.neutral[850], - secondary: colors.neutral[700], - muted: colors.neutral[750], + primary: colors.neutral[200], + secondary: colors.neutral[100], + muted: colors.neutral[50], focused: colors.neutral[100], - active: colors.neutral[500], - ok: colors.neutral[1000], - error: colors.neutral[1000], - warning: colors.neutral[1000], - info: colors.neutral[1000], + active: colors.neutral[250], + ok: colors.green[200], + error: colors.red[200], + warning: colors.yellow[200], + info: colors.blue[200], }; const textColor = { - primary: colors.neutral[150], - secondary: colors.neutral[350], - muted: colors.neutral[550], - placeholder: colors.neutral[750], - active: colors.neutral[0], - //TODO: (design) define feature and it's correct value - feature: colors.sky[500], - ok: colors.green[600], - error: colors.red[400], - warning: colors.amber[300], - info: colors.blue[500], + primary: colors.neutral[800], + secondary: colors.neutral[700], + muted: colors.neutral[600], + placeholder: colors.neutral[500], + active: colors.neutral[900], + feature: colors.blue[600], + ok: colors.green[800], + error: colors.red[800], + warning: colors.yellow[800], + info: colors.blue[800], }; const iconColor = { @@ -79,63 +78,62 @@ const iconColor = { secondary: colors.neutral[500], muted: colors.neutral[600], placeholder: colors.neutral[700], - active: colors.neutral[50], - //TODO: (design) define feature and it's correct value - feature: colors.sky[500], + active: colors.neutral[900], + feature: colors.sky[600], ok: colors.green[600], - error: colors.red[400], - warning: colors.amber[300], - info: colors.blue[500], + error: colors.red[600], + warning: colors.yellow[400], + info: colors.blue[600], }; const player = { 1: { - baseColor: colors.blue[600], - cursorColor: colors.blue[600], - selectionColor: colors.blue[600], - borderColor: colors.blue[600], + baseColor: colors.blue[600], + cursorColor: colors.blue[500], + selectionColor: colors.blue[100], + borderColor: colors.blue[500], }, 2: { - baseColor: colors.indigo[500], - cursorColor: colors.indigo[500], - selectionColor: colors.indigo[500], - borderColor: colors.indigo[500], + baseColor: colors.indigo[500], + cursorColor: colors.indigo[500], + selectionColor: colors.indigo[100], + borderColor: colors.indigo[500], }, 3: { - baseColor: colors.green[500], - cursorColor: colors.green[500], - selectionColor: colors.green[500], - borderColor: colors.green[500], + baseColor: colors.green[500], + cursorColor: colors.green[500], + selectionColor: colors.green[100], + borderColor: colors.green[500], }, 4: { - baseColor: colors.orange[500], - cursorColor: colors.orange[500], - selectionColor: colors.orange[500], - borderColor: colors.orange[500], + baseColor: colors.orange[500], + cursorColor: colors.orange[500], + selectionColor: colors.orange[100], + borderColor: colors.orange[500], }, 5: { - baseColor: colors.purple[500], - cursorColor: colors.purple[500], - selectionColor: colors.purple[500], - borderColor: colors.purple[500], + baseColor: colors.purple[500], + cursorColor: colors.purple[500], + selectionColor: colors.purple[100], + borderColor: colors.purple[500], }, 6: { - baseColor: colors.teal[400], - cursorColor: colors.teal[400], - selectionColor: colors.teal[400], - borderColor: colors.teal[400], + baseColor: colors.teal[400], + cursorColor: colors.teal[400], + selectionColor: colors.teal[100], + borderColor: colors.teal[400], }, 7: { - baseColor: colors.pink[400], - cursorColor: colors.pink[400], - selectionColor: colors.pink[400], - borderColor: colors.pink[400], + baseColor: colors.pink[400], + cursorColor: colors.pink[400], + selectionColor: colors.pink[100], + borderColor: colors.pink[400], }, 8: { - baseColor: colors.yellow[400], - cursorColor: colors.yellow[400], - selectionColor: colors.yellow[400], - borderColor: colors.yellow[400], + baseColor: colors.yellow[400], + cursorColor: colors.yellow[400], + selectionColor: colors.yellow[100], + borderColor: colors.yellow[400], }, }; @@ -145,118 +143,118 @@ const editor = { indent_guide: borderColor.muted, indent_guide_active: borderColor.secondary, line: { - active: colors.neutral[0], - highlighted: colors.neutral[0], - inserted: backgroundColor.ok.active, - deleted: backgroundColor.error.active, - modified: backgroundColor.info.active, + active: colors.neutral[0], + highlighted: colors.neutral[0], + inserted: backgroundColor.ok.active, + deleted: backgroundColor.error.active, + modified: backgroundColor.info.active, }, highlight: { - selection: player[1].selectionColor, - occurrence: backgroundColor[500].active, - activeOccurrence: colors.neutral[0], - matchingBracket: colors.neutral[0], - match: colors.neutral[0], - activeMatch: colors.neutral[0], - related: colors.neutral[0], + selection: player[1].selectionColor, + occurrence: backgroundColor[500].active, + activeOccurrence: colors.neutral[0], + matchingBracket: colors.neutral[0], + match: colors.neutral[0], + activeMatch: colors.neutral[0], + related: colors.neutral[0], }, gutter: { - primary: colors.neutral[0], - active: colors.neutral[0], + primary: colors.neutral[0], + active: colors.neutral[0], }, }; const syntax: Syntax = { primary: { - color: textColor.primary, - weight: fontWeights.normal, + color: textColor.primary, + weight: fontWeights.normal, }, comment: { - color: colors.lime[200], - weight: fontWeights.normal, + color: colors.lime[200], + weight: fontWeights.normal, }, punctuation: { - color: textColor.primary, - weight: fontWeights.normal, + color: textColor.primary, + weight: fontWeights.normal, }, constant: { - color: colors.neutral[150], - weight: fontWeights.normal, + color: colors.neutral[150], + weight: fontWeights.normal, }, keyword: { - color: colors.sky[400], - weight: fontWeights.normal, + color: colors.sky[400], + weight: fontWeights.normal, }, function: { - color: colors.yellow[200], - weight: fontWeights.normal, + color: colors.yellow[200], + weight: fontWeights.normal, }, type: { - color: colors.teal[300], - weight: fontWeights.normal, + color: colors.teal[300], + weight: fontWeights.normal, }, variant: { - color: colors.teal[300], - weight: fontWeights.normal, + color: colors.teal[300], + weight: fontWeights.normal, }, property: { - color: colors.sky[300], - weight: fontWeights.normal, + color: colors.sky[300], + weight: fontWeights.normal, }, enum: { - color: colors.sky[400], - weight: fontWeights.normal, + color: colors.sky[400], + weight: fontWeights.normal, }, operator: { - color: colors.sky[400], - weight: fontWeights.normal, + color: colors.sky[400], + weight: fontWeights.normal, }, string: { - color: colors.orange[300], - weight: fontWeights.normal, + color: colors.orange[300], + weight: fontWeights.normal, }, number: { - color: colors.neutral[150], - weight: fontWeights.normal, + color: colors.neutral[150], + weight: fontWeights.normal, }, boolean: { - color: colors.neutral[150], - weight: fontWeights.normal, + color: colors.neutral[150], + weight: fontWeights.normal, }, predictive: { - color: textColor.muted, - weight: fontWeights.normal, + color: textColor.muted, + weight: fontWeights.normal, }, title: { - color: colors.sky[500], - weight: fontWeights.bold, + color: colors.sky[500], + weight: fontWeights.bold, }, emphasis: { - color: textColor.active, - weight: fontWeights.normal, + color: textColor.active, + weight: fontWeights.normal, }, emphasisStrong: { - color: textColor.active, - weight: fontWeights.bold, + color: textColor.active, + weight: fontWeights.bold, }, linkUrl: { - color: colors.lime[500], - weight: fontWeights.normal, - // TODO: add underline + color: colors.lime[500], + weight: fontWeights.normal, + // TODO: add underline }, linkText: { - color: colors.orange[500], - weight: fontWeights.normal, - // TODO: add italic + color: colors.orange[500], + weight: fontWeights.normal, + // TODO: add italic }, listMarker: { - color: colors.sky[400], - weight: fontWeights.normal, - } + color: colors.sky[400], + weight: fontWeights.normal, + }, }; const shadowAlpha: NumberToken = { - value: 0.32, + value: 0.12, type: "number", }; diff --git a/styles/themes/theme.ts b/styles/themes/theme.ts index f95d58e49484aea340693ff289f19cb8cf8a4b0a..7f8305c1d539d24fe50f23d650844c0670506dc1 100644 --- a/styles/themes/theme.ts +++ b/styles/themes/theme.ts @@ -1,4 +1,4 @@ -import { FontWeightToken, ColorToken, NumberToken } from "../tokens"; +import { ColorToken, FontWeightToken, NumberToken } from "../tokens"; export interface SyntaxHighlightStyle { color: ColorToken; diff --git a/styles/tokens.ts b/styles/tokens.ts index 1e0df5032d09ee72ce31fc2b9de256174b6bf905..63c19a9d6439a77db5d1d9cd7924966e117a931a 100644 --- a/styles/tokens.ts +++ b/styles/tokens.ts @@ -72,7 +72,7 @@ export interface ColorToken { step?: number, } export const colors = { - neutral: colorRamp(["black", "white"], { steps: 21, increment: 50 }), + neutral: colorRamp(["white", "black"], { steps: 19, increment: 50 }), rose: colorRamp("#F43F5EFF"), red: colorRamp("#EF4444FF"), orange: colorRamp("#F97316FF"), From b7214729912bcc75f731d87400f273f263359a1c Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Fri, 1 Apr 2022 23:59:20 -0400 Subject: [PATCH 23/71] Add greg to .zed.toml --- .zed.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.zed.toml b/.zed.toml index 0cbe5c59a550cbdae9b8d016123ef315bbd0e18e..fae32125f4f236c7bc99f57f5bf9e6e041984069 100644 --- a/.zed.toml +++ b/.zed.toml @@ -1 +1 @@ -collaborators = ["nathansobo", "as-cii", "maxbrunsfeld", "iamnbutler", "Kethku"] +collaborators = ["nathansobo", "as-cii", "maxbrunsfeld", "iamnbutler", "gibusu", "Kethku"] From 2af313c8e2bbe1b0959f1d48b5aa01aff1c8aa07 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sat, 2 Apr 2022 01:05:28 -0400 Subject: [PATCH 24/71] WIP --- crates/zed/assets/themes/dark.json | 157 +++++++++--------- crates/zed/assets/themes/light.json | 245 ++++++++++++++-------------- styles/styleTree/app.ts | 3 +- styles/styleTree/editor.ts | 3 +- styles/themes/dark.ts | 54 +++--- styles/themes/light.ts | 38 ++--- styles/utils/color.ts | 4 +- 7 files changed, 251 insertions(+), 253 deletions(-) diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json index fd11fc6c3a64a6fd6d878b935941d21960c12f37..0abf380cc18fc7ecb252d8d062b2ff53aeb4ad7c 100644 --- a/crates/zed/assets/themes/dark.json +++ b/crates/zed/assets/themes/dark.json @@ -18,7 +18,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#90df17", + "color": "#72ad19", "weight": "bold", "size": 14 } @@ -33,16 +33,16 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#90df17", + "color": "#72ad19", "weight": "bold", "size": 14 }, - "background": "#000000" + "background": "#1c1c1c" }, "border": { "color": "#0e0e0e", @@ -70,12 +70,12 @@ "size": 14 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#195cc8", + "selection": "#307af3" }, "text": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 16 }, "border": { @@ -111,8 +111,8 @@ "background": "#1c1c1c", "icon_close": "#717171", "icon_close_active": "#f1f1f1", - "icon_conflict": "#f7b241", - "icon_dirty": "#4287f6", + "icon_conflict": "#c38214", + "icon_dirty": "#195cc8", "icon_width": 8, "spacing": 10, "text": { @@ -137,8 +137,8 @@ "background": "#000000", "icon_close": "#717171", "icon_close_active": "#f1f1f1", - "icon_conflict": "#f7b241", - "icon_dirty": "#4287f6", + "icon_conflict": "#c38214", + "icon_dirty": "#195cc8", "icon_width": 8, "spacing": 10, "text": { @@ -243,7 +243,7 @@ "share_icon_active_color": "#f1f1f1", "title": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 }, "avatar": { @@ -289,7 +289,7 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#cc8712", "size": 13 } }, @@ -325,54 +325,54 @@ } }, "editor": { - "text_color": "#9c9c9c", + "text_color": "#e3e3e3", "background": "#000000", - "active_line_background": "#ffffff", + "active_line_background": "#1c1c1c", "code_actions_indicator": "#717171", - "diff_background_deleted": "#f78c8c", - "diff_background_inserted": "#22c55e", - "document_highlight_read_background": "#000000", - "document_highlight_write_background": "#000000", - "error_color": "#f78c8c", + "diff_background_deleted": "#d71c1c", + "diff_background_inserted": "#1ea34f", + "document_highlight_read_background": "#1e22db", + "document_highlight_write_background": "#1e22db", + "error_color": "#d71c1c", "gutter_background": "#000000", "gutter_padding_factor": 2.5, - "highlighted_line_background": "#ffffff", - "line_number": "#ffffff", + "highlighted_line_background": "#0e0e0e", + "line_number": "#636363", "line_number_active": "#ffffff", "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#195cc8", + "selection": "#307af3" }, "guest_selections": [ { - "cursor": "#777af4", - "selection": "#777af4" + "cursor": "#70a919", + "selection": "#80c517" }, { - "cursor": "#23d464", - "selection": "#23d464" + "cursor": "#1e22db", + "selection": "#5558ee" }, { - "cursor": "#f98a3d", - "selection": "#f98a3d" + "cursor": "#c45c14", + "selection": "#f66e0f" }, { - "cursor": "#b671f8", - "selection": "#b671f8" + "cursor": "#7d19dc", + "selection": "#a048f4" }, { - "cursor": "#16ddc7", - "selection": "#16ddc7" + "cursor": "#17a293", + "selection": "#15b3a2" }, { - "cursor": "#f58ac0", - "selection": "#f58ac0" + "cursor": "#d51e79", + "selection": "#e93d92" }, { - "cursor": "#f6bc09", - "selection": "#f6bc09" + "cursor": "#bc9212", + "selection": "#e0ac0b" } ], "autocomplete": { @@ -400,13 +400,13 @@ "right": 6, "top": 2 }, - "background": "#000000" + "background": "#0e0e0e" }, "margin": { "left": -14 }, "match_highlight": { - "color": "#59c3f5", + "color": "#1588bc", "weight": "normal" }, "selected_item": { @@ -417,7 +417,7 @@ "right": 6, "top": 2 }, - "background": "#000000" + "background": "#1c1c1c" } }, "diagnostic_header": { @@ -441,7 +441,7 @@ "message": { "highlight_text": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14, "weight": "bold" }, @@ -453,11 +453,11 @@ } }, "diagnostic_path_header": { - "background": "#ffffff", + "background": "#1c1c1c", "text_scale_factor": 0.857, "filename": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 }, "path": { @@ -481,12 +481,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#f78c8c", + "color": "#d71c1c", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#f78c8c", + "color": "#d71c1c", "size": 14, "weight": "bold" } @@ -504,12 +504,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#cc8712", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#cc8712", "size": 14, "weight": "bold" } @@ -527,12 +527,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#185fd0", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#185fd0", "size": 14, "weight": "bold" } @@ -550,12 +550,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#185fd0", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#185fd0", "size": 14, "weight": "bold" } @@ -656,13 +656,12 @@ "syntax": {} }, "project_diagnostics": { - "background": "#1c1c1c", "tab_icon_spacing": 4, "tab_icon_width": 13, "tab_summary_spacing": 10, "empty_message": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 }, "status_bar_item": { @@ -709,7 +708,7 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 } }, @@ -721,7 +720,7 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 } } @@ -735,7 +734,7 @@ }, "channel_name": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "weight": "bold", "size": 14 }, @@ -751,7 +750,7 @@ "header": { "name": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 }, "padding": { @@ -806,7 +805,7 @@ "active_item": { "name": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 }, "padding": 4, @@ -823,7 +822,7 @@ "hovered_active_item": { "name": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 }, "padding": 4, @@ -864,7 +863,7 @@ }, "hovered_sign_in_prompt": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "underline": true, "size": 14 }, @@ -884,7 +883,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "weight": "bold", "size": 14, "margin": { @@ -921,7 +920,7 @@ "corner_radius": 6, "text": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 16 }, "placeholder_text": { @@ -930,8 +929,8 @@ "size": 14 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#195cc8", + "selection": "#307af3" }, "border": { "color": "#393939", @@ -995,7 +994,7 @@ }, "name": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 16, "margin": { "right": 6 @@ -1014,7 +1013,7 @@ }, "name": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 16, "margin": { "right": 6 @@ -1023,7 +1022,7 @@ "padding": { "left": 8 }, - "background": "#ffffff", + "background": "#1c1c1c", "corner_radius": 6 }, "unshared_project": { @@ -1063,12 +1062,12 @@ "padding": { "left": 8 }, - "background": "#ffffff", + "background": "#1c1c1c", "corner_radius": 6 } }, "search": { - "match_background": "#ffffff", + "match_background": "#70a919", "tab_icon_spacing": 4, "tab_icon_width": 14, "active_hovered_option_button": { @@ -1124,12 +1123,12 @@ "size": 16 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#195cc8", + "selection": "#307af3" }, "text": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 16 }, "border": { @@ -1178,16 +1177,16 @@ "size": 16 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#195cc8", + "selection": "#307af3" }, "text": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 16 }, "border": { - "color": "#f47171", + "color": "#cd1c1c", "width": 1 }, "margin": { @@ -1235,13 +1234,13 @@ }, "results_status": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 18 } }, "breadcrumbs": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14, "padding": { "left": 6 diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json index 219f958e876dcb36abd4edf2e2986c7fb26f32c3..1024764540e55f20505b6864ca6bdddd95881edd 100644 --- a/crates/zed/assets/themes/light.json +++ b/crates/zed/assets/themes/light.json @@ -13,12 +13,12 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#393939", + "color": "#555555", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#4287f6", + "color": "#185fd0", "weight": "bold", "size": 14 } @@ -33,12 +33,12 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#4287f6", + "color": "#185fd0", "weight": "bold", "size": 14 }, @@ -51,7 +51,7 @@ "empty": { "text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "padding": { @@ -66,16 +66,16 @@ "corner_radius": 6, "placeholder_text": { "family": "Zed Sans", - "color": "#717171", + "color": "#aaaaaa", "size": 14 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#185fd0", + "selection": "#307af3" }, "text": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 16 }, "border": { @@ -111,13 +111,13 @@ "background": "#f1f1f1", "icon_close": "#717171", "icon_close_active": "#000000", - "icon_conflict": "#f6bc09", - "icon_dirty": "#4287f6", + "icon_conflict": "#bc9212", + "icon_dirty": "#195cc8", "icon_width": 8, "spacing": 10, "text": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 14 }, "border": { @@ -137,8 +137,8 @@ "background": "#ffffff", "icon_close": "#717171", "icon_close_active": "#000000", - "icon_conflict": "#f6bc09", - "icon_dirty": "#4287f6", + "icon_conflict": "#bc9212", + "icon_dirty": "#195cc8", "icon_width": 8, "spacing": 10, "text": { @@ -221,17 +221,17 @@ }, "cursor_position": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "diagnostic_message": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "lsp_message": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 } }, @@ -243,7 +243,7 @@ "share_icon_active_color": "#000000", "title": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 }, "avatar": { @@ -264,7 +264,7 @@ }, "sign_in_prompt": { "family": "Zed Sans", - "color": "#393939", + "color": "#555555", "size": 13, "underline": true, "padding": { @@ -289,7 +289,7 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#b48d14", + "color": "#b68e14", "size": 13 } }, @@ -311,7 +311,7 @@ }, "breadcrumbs": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "padding": { "left": 6 @@ -325,54 +325,54 @@ } }, "editor": { - "text_color": "#393939", + "text_color": "#2b2b2b", "background": "#ffffff", - "active_line_background": "#ffffff", + "active_line_background": "#e3e3e3", "code_actions_indicator": "#717171", - "diff_background_deleted": "#fdd4d4", - "diff_background_inserted": "#befad2", + "diff_background_deleted": "#ec3939", + "diff_background_inserted": "#21bf5b", "document_highlight_read_background": "#e3e3e3", "document_highlight_write_background": "#e3e3e3", - "error_color": "#d11c1c", + "error_color": "#cd1c1c", "gutter_background": "#ffffff", "gutter_padding_factor": 2.5, - "highlighted_line_background": "#ffffff", - "line_number": "#ffffff", - "line_number_active": "#ffffff", + "highlighted_line_background": "#e3e3e3", + "line_number": "#808080", + "line_number_active": "#000000", "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#185fd0", + "selection": "#307af3" }, "guest_selections": [ { - "cursor": "#777af4", - "selection": "#d4d5fd" + "cursor": "#70a919", + "selection": "#80c517" }, { - "cursor": "#23d464", - "selection": "#befad2" + "cursor": "#1e22db", + "selection": "#5558ee" }, { - "cursor": "#f98a3d", - "selection": "#fde0cd" + "cursor": "#c45c14", + "selection": "#f66e0f" }, { - "cursor": "#b671f8", - "selection": "#e9d4fd" + "cursor": "#7d19dc", + "selection": "#a048f4" }, { - "cursor": "#16ddc7", - "selection": "#b4faf2" + "cursor": "#17a293", + "selection": "#15b3a2" }, { - "cursor": "#f58ac0", - "selection": "#fcd4e8" + "cursor": "#d51e79", + "selection": "#e93d92" }, { - "cursor": "#f6bc09", - "selection": "#fceabc" + "cursor": "#bc9212", + "selection": "#e0ac0b" } ], "autocomplete": { @@ -406,7 +406,7 @@ "left": -14 }, "match_highlight": { - "color": "#59c3f5", + "color": "#1588bc", "weight": "normal" }, "selected_item": { @@ -432,7 +432,7 @@ }, "code": { "family": "Zed Mono", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "left": 10 @@ -441,28 +441,28 @@ "message": { "highlight_text": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14, "weight": "bold" }, "text": { "family": "Zed Sans", - "color": "#393939", + "color": "#555555", "size": 14 } } }, "diagnostic_path_header": { - "background": "#ffffff", + "background": "#e3e3e3", "text_scale_factor": 0.857, "filename": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 }, "path": { "family": "Zed Mono", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "left": 12 @@ -481,12 +481,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#d11c1c", + "color": "#cd1c1c", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#d11c1c", + "color": "#cd1c1c", "size": 14, "weight": "bold" } @@ -504,12 +504,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#b48d14", + "color": "#b68e14", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#b48d14", + "color": "#b68e14", "size": 14, "weight": "bold" } @@ -527,12 +527,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#1762db", + "color": "#185fd0", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#1762db", + "color": "#185fd0", "size": 14, "weight": "bold" } @@ -550,12 +550,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#1762db", + "color": "#185fd0", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#1762db", + "color": "#185fd0", "size": 14, "weight": "bold" } @@ -573,12 +573,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "weight": "bold" } @@ -596,12 +596,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "weight": "bold" } @@ -619,12 +619,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "weight": "bold" } @@ -642,12 +642,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "weight": "bold" } @@ -656,18 +656,17 @@ "syntax": {} }, "project_diagnostics": { - "background": "#f1f1f1", "tab_icon_spacing": 4, "tab_icon_width": 13, "tab_summary_spacing": 10, "empty_message": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 }, "status_bar_item": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "right": 10 @@ -686,7 +685,7 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 14 } }, @@ -698,7 +697,7 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 14 } }, @@ -709,7 +708,7 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 } }, @@ -721,7 +720,7 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 } } @@ -735,13 +734,13 @@ }, "channel_name": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "weight": "bold", "size": 14 }, "channel_name_hash": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "padding": { "right": 8 @@ -751,7 +750,7 @@ "header": { "name": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 }, "padding": { @@ -760,7 +759,7 @@ }, "hash": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "right": 8 @@ -771,13 +770,13 @@ "item": { "name": { "family": "Zed Sans", - "color": "#393939", + "color": "#555555", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "right": 8 @@ -788,13 +787,13 @@ "hovered_item": { "name": { "family": "Zed Sans", - "color": "#393939", + "color": "#555555", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "right": 8 @@ -806,13 +805,13 @@ "active_item": { "name": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "right": 8 @@ -823,13 +822,13 @@ "hovered_active_item": { "name": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "right": 8 @@ -858,25 +857,25 @@ }, "sign_in_prompt": { "family": "Zed Sans", - "color": "#393939", + "color": "#555555", "underline": true, "size": 14 }, "hovered_sign_in_prompt": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "underline": true, "size": 14 }, "message": { "body": { "family": "Zed Sans", - "color": "#393939", + "color": "#555555", "size": 14 }, "timestamp": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "padding": { @@ -884,7 +883,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "weight": "bold", "size": 14, "margin": { @@ -895,12 +894,12 @@ "pending_message": { "body": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "timestamp": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "padding": { @@ -908,7 +907,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "weight": "bold", "size": 14, "margin": { @@ -921,17 +920,17 @@ "corner_radius": 6, "text": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 16 }, "placeholder_text": { "family": "Zed Mono", - "color": "#717171", + "color": "#aaaaaa", "size": 14 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#185fd0", + "selection": "#307af3" }, "border": { "color": "#e3e3e3", @@ -961,7 +960,7 @@ }, "host_username": { "family": "Zed Mono", - "color": "#555555", + "color": "#808080", "size": 16, "padding": { "left": 8 @@ -976,7 +975,7 @@ }, "name": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "margin": { "right": 6 @@ -995,7 +994,7 @@ }, "name": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 16, "margin": { "right": 6 @@ -1014,7 +1013,7 @@ }, "name": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 16, "margin": { "right": 6 @@ -1023,7 +1022,7 @@ "padding": { "left": 8 }, - "background": "#ffffff", + "background": "#e3e3e3", "corner_radius": 6 }, "unshared_project": { @@ -1035,7 +1034,7 @@ }, "name": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "margin": { "right": 6 @@ -1054,7 +1053,7 @@ }, "name": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "margin": { "right": 6 @@ -1063,7 +1062,7 @@ "padding": { "left": 8 }, - "background": "#ffffff", + "background": "#e3e3e3", "corner_radius": 6 } }, @@ -1073,7 +1072,7 @@ "tab_icon_width": 14, "active_hovered_option_button": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "background": "#e3e3e3", "corner_radius": 6, @@ -1094,7 +1093,7 @@ }, "active_option_button": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "background": "#e3e3e3", "corner_radius": 6, @@ -1120,16 +1119,16 @@ "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#717171", + "color": "#aaaaaa", "size": 16 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#185fd0", + "selection": "#307af3" }, "text": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 16 }, "border": { @@ -1148,7 +1147,7 @@ }, "hovered_option_button": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "background": "#e3e3e3", "corner_radius": 6, @@ -1174,20 +1173,20 @@ "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#717171", + "color": "#aaaaaa", "size": 16 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#185fd0", + "selection": "#307af3" }, "text": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 16 }, "border": { - "color": "#fbbdbd", + "color": "#e72727", "width": 1 }, "margin": { @@ -1202,13 +1201,13 @@ }, "match_index": { "family": "Zed Mono", - "color": "#555555", + "color": "#808080", "size": 16, "padding": 6 }, "option_button": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "background": "#f1f1f1", "corner_radius": 6, @@ -1235,13 +1234,13 @@ }, "results_status": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 18 } }, "breadcrumbs": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14, "padding": { "left": 6 diff --git a/styles/styleTree/app.ts b/styles/styleTree/app.ts index d26ada4fc9bc6ebab7c63255245ff003dfae0640..10439b5a0056e8f8ac6ec29e10b4094f1aae26a8 100644 --- a/styles/styleTree/app.ts +++ b/styles/styleTree/app.ts @@ -1,6 +1,6 @@ import Theme from "../themes/theme"; import chatPanel from "./chatPanel"; -import { backgroundColor, borderColor, text } from "./components"; +import { text } from "./components"; import contactsPanel from "./contactsPanel"; import editor from "./editor"; import projectPanel from "./projectPanel"; @@ -18,7 +18,6 @@ export default function app(theme: Theme): Object { workspace: workspace(theme), editor: editor(theme), projectDiagnostics: { - background: backgroundColor(theme, 300), tabIconSpacing: 4, tabIconWidth: 13, tabSummarySpacing: 10, diff --git a/styles/styleTree/editor.ts b/styles/styleTree/editor.ts index eb379ce520bfb5b53b85e5d8e28be639d598a6f9..e760ecec6a57997c48238e0fdeb16d457c2c3e69 100644 --- a/styles/styleTree/editor.ts +++ b/styles/styleTree/editor.ts @@ -38,7 +38,8 @@ export default function editor(theme: Theme) { } return { - textColor: theme.textColor.secondary.value, + // textColor: theme.syntax.primary.color, + textColor: theme.syntax.primary.color.value, background: backgroundColor(theme, 500), activeLineBackground: theme.editor.line.active.value, codeActionsIndicator: iconColor(theme, "secondary"), diff --git a/styles/themes/dark.ts b/styles/themes/dark.ts index f8e0c0fcb6b00e157bf577fca2024ca286561c5d..fa05576cd2c3dd191385965c8d5ec9a1ceafc0b7 100644 --- a/styles/themes/dark.ts +++ b/styles/themes/dark.ts @@ -16,9 +16,9 @@ const backgroundColor = { }, 500: { base: colors.neutral[900], - hovered: colors.neutral[900], - active: colors.neutral[900], - focused: colors.neutral[900], + hovered: colors.neutral[850], + active: colors.neutral[800], + focused: colors.neutral[850], }, ok: { base: colors.green[600], @@ -59,7 +59,7 @@ const borderColor = { }; const textColor = { - primary: colors.neutral[150], + primary: colors.neutral[100], secondary: colors.neutral[350], muted: colors.neutral[550], placeholder: colors.neutral[750], @@ -90,49 +90,49 @@ const player = { 1: { baseColor: colors.blue[600], cursorColor: colors.blue[600], - selectionColor: colors.blue[600], + selectionColor: colors.blue[100], borderColor: colors.blue[600], }, 2: { + baseColor: colors.lime[500], + cursorColor: colors.lime[500], + selectionColor: colors.lime[100], + borderColor: colors.lime[500], + }, + 3: { baseColor: colors.indigo[500], cursorColor: colors.indigo[500], - selectionColor: colors.indigo[500], + selectionColor: colors.indigo[100], borderColor: colors.indigo[500], }, - 3: { - baseColor: colors.green[500], - cursorColor: colors.green[500], - selectionColor: colors.green[500], - borderColor: colors.green[500], - }, 4: { baseColor: colors.orange[500], cursorColor: colors.orange[500], - selectionColor: colors.orange[500], + selectionColor: colors.orange[100], borderColor: colors.orange[500], }, 5: { baseColor: colors.purple[500], cursorColor: colors.purple[500], - selectionColor: colors.purple[500], + selectionColor: colors.purple[100], borderColor: colors.purple[500], }, 6: { baseColor: colors.teal[400], cursorColor: colors.teal[400], - selectionColor: colors.teal[400], + selectionColor: colors.teal[100], borderColor: colors.teal[400], }, 7: { baseColor: colors.pink[400], cursorColor: colors.pink[400], - selectionColor: colors.pink[400], + selectionColor: colors.pink[100], borderColor: colors.pink[400], }, 8: { baseColor: colors.yellow[400], cursorColor: colors.yellow[400], - selectionColor: colors.yellow[400], + selectionColor: colors.yellow[100], borderColor: colors.yellow[400], }, }; @@ -143,24 +143,24 @@ const editor = { indent_guide: borderColor.muted, indent_guide_active: borderColor.secondary, line: { - active: colors.neutral[0], - highlighted: colors.neutral[0], + active: backgroundColor[500].active, + highlighted: backgroundColor[500].hovered, inserted: backgroundColor.ok.active, deleted: backgroundColor.error.active, modified: backgroundColor.info.active, }, highlight: { selection: player[1].selectionColor, - occurrence: backgroundColor[500].active, - activeOccurrence: colors.neutral[0], - matchingBracket: colors.neutral[0], - match: colors.neutral[0], - activeMatch: colors.neutral[0], - related: colors.neutral[0], + occurrence: colors.indigo[500], // TODO: Why does indigo[500], indigo[100], and indigo[900] all give me the same color? @kethku + activeOccurrence: colors.indigo[400], // TODO: We don't seem to be using this right now in rust + matchingBracket: backgroundColor[500].active, + match: colors.lime[500], + activeMatch: colors.lime[400], + related: backgroundColor[500].focused, }, gutter: { - primary: colors.neutral[0], - active: colors.neutral[0], + primary: textColor.muted, + active: textColor.active, }, }; diff --git a/styles/themes/light.ts b/styles/themes/light.ts index c543c78a302e3579970998ad1fb23847b1e1f694..ee94e18b19869727eae1c973d908ed3202282c77 100644 --- a/styles/themes/light.ts +++ b/styles/themes/light.ts @@ -61,16 +61,16 @@ const borderColor = { }; const textColor = { - primary: colors.neutral[800], - secondary: colors.neutral[700], - muted: colors.neutral[600], - placeholder: colors.neutral[500], + primary: colors.neutral[750], + secondary: colors.neutral[600], + muted: colors.neutral[450], + placeholder: colors.neutral[300], active: colors.neutral[900], - feature: colors.blue[600], - ok: colors.green[800], - error: colors.red[800], - warning: colors.yellow[800], - info: colors.blue[800], + feature: colors.blue[500], + ok: colors.green[500], + error: colors.red[500], + warning: colors.yellow[500], + info: colors.blue[500], }; const iconColor = { @@ -94,17 +94,17 @@ const player = { borderColor: colors.blue[500], }, 2: { + baseColor: colors.lime[500], + cursorColor: colors.lime[500], + selectionColor: colors.lime[100], + borderColor: colors.lime[500], + }, + 3: { baseColor: colors.indigo[500], cursorColor: colors.indigo[500], selectionColor: colors.indigo[100], borderColor: colors.indigo[500], }, - 3: { - baseColor: colors.green[500], - cursorColor: colors.green[500], - selectionColor: colors.green[100], - borderColor: colors.green[500], - }, 4: { baseColor: colors.orange[500], cursorColor: colors.orange[500], @@ -143,8 +143,8 @@ const editor = { indent_guide: borderColor.muted, indent_guide_active: borderColor.secondary, line: { - active: colors.neutral[0], - highlighted: colors.neutral[0], + active: backgroundColor[500].active, + highlighted: backgroundColor[500].active, inserted: backgroundColor.ok.active, deleted: backgroundColor.error.active, modified: backgroundColor.info.active, @@ -159,8 +159,8 @@ const editor = { related: colors.neutral[0], }, gutter: { - primary: colors.neutral[0], - active: colors.neutral[0], + primary: textColor.muted, + active: textColor.active, }, }; diff --git a/styles/utils/color.ts b/styles/utils/color.ts index b59f4fa69479a1f886229afe1953284f6626f9d8..1042899c737681ddc8e074b19723ed5ba3ad0117 100644 --- a/styles/utils/color.ts +++ b/styles/utils/color.ts @@ -22,8 +22,8 @@ export function colorRamp( .scale([startColor, color, endColor]) .domain([0, 0.5, 1]) .mode("hsl") - .gamma(1) - .correctLightness(true) + .gamma(0.2) + // .correctLightness(true) .padding([0, 0.15]); } From 6a7c8a69953bd0418e4244a2c15fa7665ff248c7 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sun, 3 Apr 2022 01:04:34 -0400 Subject: [PATCH 25/71] Refined dark theme styles --- crates/zed/assets/themes/dark.json | 166 ++++++++++++++-------------- crates/zed/assets/themes/light.json | 14 +-- styles/buildThemes.ts | 3 + styles/styleTree/selectorModal.ts | 8 +- styles/styleTree/workspace.ts | 4 +- styles/themes/dark.ts | 38 +++---- styles/tokens.ts | 2 +- styles/utils/color.ts | 2 +- 8 files changed, 120 insertions(+), 117 deletions(-) diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json index 0abf380cc18fc7ecb252d8d062b2ff53aeb4ad7c..25568bf17c9dafaf92beb11be5e4514377f57e76 100644 --- a/crates/zed/assets/themes/dark.json +++ b/crates/zed/assets/themes/dark.json @@ -1,6 +1,6 @@ { "selector": { - "background": "#000000", + "background": "#1c1c1c", "corner_radius": 6, "padding": 8, "item": { @@ -18,7 +18,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#72ad19", + "color": "#1684b6", "weight": "bold", "size": 14 } @@ -33,19 +33,19 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#72ad19", + "color": "#1684b6", "weight": "bold", "size": 14 }, - "background": "#1c1c1c" + "background": "#2b2b2b" }, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "empty": { @@ -62,7 +62,7 @@ } }, "input_editor": { - "background": "#1c1c1c", + "background": "#000000", "corner_radius": 6, "placeholder_text": { "family": "Zed Sans", @@ -75,11 +75,11 @@ }, "text": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 16 }, "border": { - "color": "#0e0e0e", + "color": "#151515", "width": 1 }, "padding": { @@ -109,8 +109,8 @@ "tab": { "height": 32, "background": "#1c1c1c", - "icon_close": "#717171", - "icon_close_active": "#f1f1f1", + "icon_close": "#555555", + "icon_close_active": "#ffffff", "icon_conflict": "#c38214", "icon_dirty": "#195cc8", "icon_width": 8, @@ -121,7 +121,7 @@ "size": 14 }, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "left": true, "bottom": true, @@ -135,8 +135,8 @@ "active_tab": { "height": 32, "background": "#000000", - "icon_close": "#717171", - "icon_close_active": "#f1f1f1", + "icon_close": "#555555", + "icon_close_active": "#ffffff", "icon_conflict": "#c38214", "icon_dirty": "#195cc8", "icon_width": 8, @@ -147,7 +147,7 @@ "size": 14 }, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "left": true, "bottom": false, @@ -162,22 +162,22 @@ "width": 30, "background": "#1c1c1c", "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "right": true }, "item": { "height": 32, - "icon_color": "#717171", + "icon_color": "#9c9c9c", "icon_size": 18 }, "active_item": { "height": 32, - "icon_color": "#f1f1f1", + "icon_color": "#ffffff", "icon_size": 18 }, "resize_handle": { - "background": "#0e0e0e", + "background": "#070707", "padding": { "left": 1 } @@ -187,29 +187,29 @@ "width": 30, "background": "#1c1c1c", "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "left": true }, "item": { "height": 32, - "icon_color": "#717171", + "icon_color": "#9c9c9c", "icon_size": 18 }, "active_item": { "height": 32, - "icon_color": "#f1f1f1", + "icon_color": "#ffffff", "icon_size": 18 }, "resize_handle": { - "background": "#0e0e0e", + "background": "#070707", "padding": { "left": 1 } } }, "pane_divider": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "status_bar": { @@ -238,12 +238,12 @@ "titlebar": { "avatar_width": 18, "height": 32, - "background": "#393939", - "share_icon_color": "#717171", - "share_icon_active_color": "#f1f1f1", + "background": "#2b2b2b", + "share_icon_color": "#9c9c9c", + "share_icon_active_color": "#ffffff", "title": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 }, "avatar": { @@ -258,7 +258,7 @@ "width": 12 }, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "bottom": true }, @@ -281,7 +281,7 @@ } }, "offline_icon": { - "color": "#717171", + "color": "#9c9c9c", "width": 16, "padding": { "right": 4 @@ -297,7 +297,7 @@ "height": 34, "background": "#000000", "border": { - "color": "#2b2b2b", + "color": "#070707", "width": 1, "bottom": true }, @@ -325,10 +325,10 @@ } }, "editor": { - "text_color": "#e3e3e3", + "text_color": "#f1f1f1", "background": "#000000", - "active_line_background": "#1c1c1c", - "code_actions_indicator": "#717171", + "active_line_background": "#0e0e0e", + "code_actions_indicator": "#9c9c9c", "diff_background_deleted": "#d71c1c", "diff_background_inserted": "#1ea34f", "document_highlight_read_background": "#1e22db", @@ -336,7 +336,7 @@ "error_color": "#d71c1c", "gutter_background": "#000000", "gutter_padding_factor": 2.5, - "highlighted_line_background": "#0e0e0e", + "highlighted_line_background": "#070707", "line_number": "#636363", "line_number_active": "#ffffff", "rename_fade": 0.6, @@ -380,7 +380,7 @@ "corner_radius": 6, "padding": 6, "border": { - "color": "#393939", + "color": "#151515", "width": 1 }, "item": { @@ -400,7 +400,7 @@ "right": 6, "top": 2 }, - "background": "#0e0e0e" + "background": "#070707" }, "margin": { "left": -14 @@ -417,7 +417,7 @@ "right": 6, "top": 2 }, - "background": "#1c1c1c" + "background": "#0e0e0e" } }, "diagnostic_header": { @@ -425,7 +425,7 @@ "icon_width_factor": 1.5, "text_scale_factor": 0.857, "border": { - "color": "#393939", + "color": "#151515", "width": 1, "bottom": true, "top": true @@ -441,7 +441,7 @@ "message": { "highlight_text": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14, "weight": "bold" }, @@ -453,11 +453,11 @@ } }, "diagnostic_path_header": { - "background": "#1c1c1c", + "background": "#0e0e0e", "text_scale_factor": 0.857, "filename": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 }, "path": { @@ -473,7 +473,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -496,7 +496,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -519,7 +519,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -542,7 +542,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -565,7 +565,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -588,7 +588,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -611,7 +611,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -634,7 +634,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -661,7 +661,7 @@ "tab_summary_spacing": 10, "empty_message": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 }, "status_bar_item": { @@ -691,7 +691,7 @@ }, "hovered_entry": { "height": 22, - "background": "#1c1c1c", + "background": "#232323", "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, @@ -708,19 +708,19 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 } }, "hovered_selected_entry": { "height": 22, - "background": "#1c1c1c", + "background": "#232323", "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 } } @@ -734,7 +734,7 @@ }, "channel_name": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "weight": "bold", "size": 14 }, @@ -750,7 +750,7 @@ "header": { "name": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 }, "padding": { @@ -799,13 +799,13 @@ "right": 8 } }, - "background": "#1c1c1c", + "background": "#232323", "corner_radius": 6 }, "active_item": { "name": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 }, "padding": 4, @@ -822,7 +822,7 @@ "hovered_active_item": { "name": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 }, "padding": 4, @@ -834,7 +834,7 @@ "right": 8 } }, - "background": "#1c1c1c", + "background": "#232323", "corner_radius": 6 }, "menu": { @@ -842,7 +842,7 @@ "corner_radius": 6, "padding": 4, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "shadow": { @@ -863,7 +863,7 @@ }, "hovered_sign_in_prompt": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "underline": true, "size": 14 }, @@ -883,7 +883,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "weight": "bold", "size": 14, "margin": { @@ -920,7 +920,7 @@ "corner_radius": 6, "text": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 16 }, "placeholder_text": { @@ -933,7 +933,7 @@ "selection": "#307af3" }, "border": { - "color": "#393939", + "color": "#151515", "width": 1 }, "padding": { @@ -952,7 +952,7 @@ "right": 12 }, "host_row_height": 28, - "tree_branch_color": "#2b2b2b", + "tree_branch_color": "#232323", "tree_branch_width": 1, "host_avatar": { "corner_radius": 10, @@ -994,7 +994,7 @@ }, "name": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 16, "margin": { "right": 6 @@ -1013,7 +1013,7 @@ }, "name": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 16, "margin": { "right": 6 @@ -1022,7 +1022,7 @@ "padding": { "left": 8 }, - "background": "#1c1c1c", + "background": "#0e0e0e", "corner_radius": 6 }, "unshared_project": { @@ -1062,7 +1062,7 @@ "padding": { "left": 8 }, - "background": "#1c1c1c", + "background": "#0e0e0e", "corner_radius": 6 } }, @@ -1074,10 +1074,10 @@ "family": "Zed Mono", "color": "#9c9c9c", "size": 16, - "background": "#393939", + "background": "#2b2b2b", "corner_radius": 6, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "margin": { @@ -1095,10 +1095,10 @@ "family": "Zed Mono", "color": "#9c9c9c", "size": 16, - "background": "#393939", + "background": "#2b2b2b", "corner_radius": 6, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "margin": { @@ -1128,11 +1128,11 @@ }, "text": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 16 }, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "margin": { @@ -1149,10 +1149,10 @@ "family": "Zed Mono", "color": "#9c9c9c", "size": 16, - "background": "#393939", + "background": "#2b2b2b", "corner_radius": 6, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "margin": { @@ -1182,7 +1182,7 @@ }, "text": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 16 }, "border": { @@ -1212,7 +1212,7 @@ "background": "#1c1c1c", "corner_radius": 6, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "margin": { @@ -1234,13 +1234,13 @@ }, "results_status": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 18 } }, "breadcrumbs": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14, "padding": { "left": 6 diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json index 1024764540e55f20505b6864ca6bdddd95881edd..76fe01501d181cdcbdea018c21357a2c65a728ab 100644 --- a/crates/zed/assets/themes/light.json +++ b/crates/zed/assets/themes/light.json @@ -1,6 +1,6 @@ { "selector": { - "background": "#ffffff", + "background": "#f1f1f1", "corner_radius": 6, "padding": 8, "item": { @@ -42,7 +42,7 @@ "weight": "bold", "size": 14 }, - "background": "#e3e3e3" + "background": "#d5d5d5" }, "border": { "color": "#c6c6c6", @@ -62,7 +62,7 @@ } }, "input_editor": { - "background": "#f1f1f1", + "background": "#ffffff", "corner_radius": 6, "placeholder_text": { "family": "Zed Sans", @@ -79,7 +79,7 @@ "size": 16 }, "border": { - "color": "#c6c6c6", + "color": "#e3e3e3", "width": 1 }, "padding": { @@ -109,7 +109,7 @@ "tab": { "height": 32, "background": "#f1f1f1", - "icon_close": "#717171", + "icon_close": "#555555", "icon_close_active": "#000000", "icon_conflict": "#bc9212", "icon_dirty": "#195cc8", @@ -135,7 +135,7 @@ "active_tab": { "height": 32, "background": "#ffffff", - "icon_close": "#717171", + "icon_close": "#555555", "icon_close_active": "#000000", "icon_conflict": "#bc9212", "icon_dirty": "#195cc8", @@ -297,7 +297,7 @@ "height": 34, "background": "#ffffff", "border": { - "color": "#f1f1f1", + "color": "#c6c6c6", "width": 1, "bottom": true }, diff --git a/styles/buildThemes.ts b/styles/buildThemes.ts index 9128eff45d46a0a11b9a8ddb04013b3b59faf87a..a1a07ecb2d7fa69cdb6d83c8024ec173b1e27127 100644 --- a/styles/buildThemes.ts +++ b/styles/buildThemes.ts @@ -3,6 +3,7 @@ import * as path from "path"; import app from "./styleTree/app"; import dark from "./themes/dark"; import light from "./themes/light"; +import { colors } from "./tokens"; import decamelizeTree from "./utils/decamelizeTree"; const themes = [dark, light]; @@ -14,4 +15,6 @@ for (let theme of themes) { ); fs.writeFileSync(outPath, styleTreeJSON); console.log(`Generated ${outPath}`); + + console.log(JSON.stringify(colors.indigo, null, 2)); } diff --git a/styles/styleTree/selectorModal.ts b/styles/styleTree/selectorModal.ts index fdebe712fa0f1650a3fe4411b4579aa30bb44e2e..47355cff116ff985ac62fd8d1665056422cfcd3c 100644 --- a/styles/styleTree/selectorModal.ts +++ b/styles/styleTree/selectorModal.ts @@ -16,12 +16,12 @@ export default function selectorModal(theme: Theme): Object { const activeItem = { ...item, - background: backgroundColor(theme, 500, "active"), + background: backgroundColor(theme, 300, "active"), text: text(theme, "sans", "primary"), }; return { - background: backgroundColor(theme, 500), + background: backgroundColor(theme, 300), cornerRadius: 6, padding: 8, item, @@ -37,12 +37,12 @@ export default function selectorModal(theme: Theme): Object { }, }, inputEditor: { - background: backgroundColor(theme, 300), + background: backgroundColor(theme, 500), corner_radius: 6, placeholderText: text(theme, "sans", "placeholder"), selection: player(theme, 1).selection, text: text(theme, "mono", "primary"), - border: border(theme, "primary"), + border: border(theme, "secondary"), padding: { bottom: 7, left: 16, diff --git a/styles/styleTree/workspace.ts b/styles/styleTree/workspace.ts index a734528d744c21896cb73c090b482615bb3544b3..4349ba0ab6861080a146e6d25b8be9d6af801d71 100644 --- a/styles/styleTree/workspace.ts +++ b/styles/styleTree/workspace.ts @@ -14,7 +14,7 @@ export default function workspace(theme: Theme) { const tab = { height: 32, background: backgroundColor(theme, 300), - iconClose: iconColor(theme, "secondary"), + iconClose: iconColor(theme, "muted"), iconCloseActive: iconColor(theme, "active"), iconConflict: iconColor(theme, "warning"), iconDirty: iconColor(theme, "info"), @@ -135,7 +135,7 @@ export default function workspace(theme: Theme) { toolbar: { height: 34, background: backgroundColor(theme, 500), - border: border(theme, "muted", { bottom: true }), + border: border(theme, "primary", { bottom: true }), itemSpacing: 8, padding: { left: 16, right: 8, top: 4, bottom: 4 }, }, diff --git a/styles/themes/dark.ts b/styles/themes/dark.ts index fa05576cd2c3dd191385965c8d5ec9a1ceafc0b7..3cb3b653b4a6407d197049b0baf1ff72997b02c7 100644 --- a/styles/themes/dark.ts +++ b/styles/themes/dark.ts @@ -3,22 +3,22 @@ import Theme, { Syntax } from "./theme"; const backgroundColor = { 100: { - base: colors.neutral[700], - hovered: colors.neutral[700], + base: colors.neutral[750], + hovered: colors.neutral[725], active: colors.neutral[700], - focused: colors.neutral[700], + focused: colors.neutral[675], }, 300: { base: colors.neutral[800], - hovered: colors.neutral[800], - active: colors.neutral[800], - focused: colors.neutral[800], + hovered: colors.neutral[775], + active: colors.neutral[750], + focused: colors.neutral[725], }, 500: { base: colors.neutral[900], - hovered: colors.neutral[850], - active: colors.neutral[800], - focused: colors.neutral[850], + hovered: colors.neutral[875], + active: colors.neutral[850], + focused: colors.neutral[825], }, ok: { base: colors.green[600], @@ -47,11 +47,11 @@ const backgroundColor = { }; const borderColor = { - primary: colors.neutral[850], - secondary: colors.neutral[700], - muted: colors.neutral[750], - focused: colors.neutral[100], - active: colors.neutral[500], + primary: colors.neutral[875], + secondary: colors.neutral[825], + muted: colors.neutral[775], + focused: colors.neutral[500], + active: colors.neutral[900], ok: colors.green[500], error: colors.red[500], warning: colors.amber[500], @@ -59,13 +59,13 @@ const borderColor = { }; const textColor = { - primary: colors.neutral[100], + primary: colors.neutral[50], secondary: colors.neutral[350], muted: colors.neutral[550], placeholder: colors.neutral[750], active: colors.neutral[0], //TODO: (design) define feature and it's correct value - feature: colors.lime[400], + feature: colors.sky[500], ok: colors.green[600], error: colors.red[400], warning: colors.amber[300], @@ -73,11 +73,11 @@ const textColor = { }; const iconColor = { - primary: colors.neutral[300], - secondary: colors.neutral[500], + primary: colors.neutral[200], + secondary: colors.neutral[350], muted: colors.neutral[600], placeholder: colors.neutral[700], - active: colors.neutral[50], + active: colors.neutral[0], //TODO: (design) define feature and it's correct value feature: colors.sky[500], ok: colors.green[600], diff --git a/styles/tokens.ts b/styles/tokens.ts index 63c19a9d6439a77db5d1d9cd7924966e117a931a..aa865ae6943603cda17dbac9f3a4a786cdc45367 100644 --- a/styles/tokens.ts +++ b/styles/tokens.ts @@ -72,7 +72,7 @@ export interface ColorToken { step?: number, } export const colors = { - neutral: colorRamp(["white", "black"], { steps: 19, increment: 50 }), + neutral: colorRamp(["white", "black"], { steps: 37, increment: 25 }), // (900/25) + 1 rose: colorRamp("#F43F5EFF"), red: colorRamp("#EF4444FF"), orange: colorRamp("#F97316FF"), diff --git a/styles/utils/color.ts b/styles/utils/color.ts index 1042899c737681ddc8e074b19723ed5ba3ad0117..c7506f696d4cebd54ebc2045be2b7dc9d14f2c7b 100644 --- a/styles/utils/color.ts +++ b/styles/utils/color.ts @@ -8,7 +8,7 @@ export type ColorRamp = { export function colorRamp( color: Color | [Color, Color], - options?: { steps?: number; increment?: number } + options?: { steps?: number; increment?: number; } ): ColorRamp { let scale: Scale; if (Array.isArray(color)) { From 433c095f5139497e59c77881c789f41c8573b5ad Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sun, 3 Apr 2022 10:50:41 -0400 Subject: [PATCH 26/71] Remove leftover console.log --- styles/buildThemes.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/styles/buildThemes.ts b/styles/buildThemes.ts index a1a07ecb2d7fa69cdb6d83c8024ec173b1e27127..9128eff45d46a0a11b9a8ddb04013b3b59faf87a 100644 --- a/styles/buildThemes.ts +++ b/styles/buildThemes.ts @@ -3,7 +3,6 @@ import * as path from "path"; import app from "./styleTree/app"; import dark from "./themes/dark"; import light from "./themes/light"; -import { colors } from "./tokens"; import decamelizeTree from "./utils/decamelizeTree"; const themes = [dark, light]; @@ -15,6 +14,4 @@ for (let theme of themes) { ); fs.writeFileSync(outPath, styleTreeJSON); console.log(`Generated ${outPath}`); - - console.log(JSON.stringify(colors.indigo, null, 2)); } From 60295af00a9d552de1bcaaca06a463e7cc05324f Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sun, 3 Apr 2022 13:30:59 -0400 Subject: [PATCH 27/71] Add basic support for exporting tokens to Figma Tokens. (#724) * WIP on figma token export * WIP Working export * Tidy up the figma tokens script * Correctly format theme json structure for Figma Tokens * Finish up themeTokens imports --- styles/buildFigmaTokens.ts | 99 ++++ styles/figma/core.json | 1155 ++++++++++++++++++++++++++++++++++++ styles/figma/dark.json | 637 ++++++++++++++++++++ styles/figma/light.json | 637 ++++++++++++++++++++ 4 files changed, 2528 insertions(+) create mode 100644 styles/buildFigmaTokens.ts create mode 100644 styles/figma/core.json create mode 100644 styles/figma/dark.json create mode 100644 styles/figma/light.json diff --git a/styles/buildFigmaTokens.ts b/styles/buildFigmaTokens.ts new file mode 100644 index 0000000000000000000000000000000000000000..6b3285e58e24c7f0fefa67a40c512202fdbe4c5b --- /dev/null +++ b/styles/buildFigmaTokens.ts @@ -0,0 +1,99 @@ +import * as fs from "fs"; +import * as path from "path"; +import dark from "./themes/dark"; +import light from "./themes/light"; +import Theme from "./themes/theme"; +import { colors, fontFamilies, fontSizes, fontWeights } from "./tokens"; + +// Organize theme tokens +function themeTokens(theme: Theme): Object { + return { + meta: { + themeName: theme.name, + }, + text: theme.textColor, + icon: theme.iconColor, + background: theme.backgroundColor, + border: theme.borderColor, + editor: theme.editor, + syntax: { + primary: { + value: theme.syntax.primary.color.value, + type: "color", + }, + comment: { + value: theme.syntax.comment.color.value, + type: "color", + }, + keyword: { + value: theme.syntax.keyword.color.value, + type: "color", + }, + function: { + value: theme.syntax.function.color.value, + type: "color", + }, + type: { + value: theme.syntax.type.color.value, + type: "color", + }, + variant: { + value: theme.syntax.variant.color.value, + type: "color", + }, + property: { + value: theme.syntax.property.color.value, + type: "color", + }, + enum: { + value: theme.syntax.enum.color.value, + type: "color", + }, + operator: { + value: theme.syntax.operator.color.value, + type: "color", + }, + string: { + value: theme.syntax.string.color.value, + type: "color", + }, + number: { + value: theme.syntax.number.color.value, + type: "color", + }, + boolean: { + value: theme.syntax.boolean.color.value, + type: "color", + }, + }, + player: theme.player, + shadowAlpha: theme.shadowAlpha, + }; +} + +let themes = [themeTokens(dark), themeTokens(light)]; + +// Create {theme}.json +const themePath = path.resolve(`${__dirname}/figma`); +themes.forEach((theme) => { + const tokenJSON = JSON.stringify(theme, null, 2); + //@ts-ignore //TODO: IDK what the hell TS wants me to do here + fs.writeFileSync(`${themePath}/${theme.meta.themeName}.json`, tokenJSON); +}); + +// Organize core tokens +const coreTokens = { + color: { + ...colors, + }, + text: { + family: fontFamilies, + weight: fontWeights, + }, + size: fontSizes, +}; + +// Create core.json +const corePath = path.resolve(`${__dirname}/figma/core.json`); +const coreTokenJSON = JSON.stringify(coreTokens, null, 2); +fs.writeFileSync(corePath, coreTokenJSON); diff --git a/styles/figma/core.json b/styles/figma/core.json new file mode 100644 index 0000000000000000000000000000000000000000..77dabe6b4e4462acc636427c388d161bb3c54a33 --- /dev/null +++ b/styles/figma/core.json @@ -0,0 +1,1155 @@ +{ + "color": { + "neutral": { + "0": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "25": { + "value": "#f8f8f8", + "step": 25, + "type": "color" + }, + "50": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "75": { + "value": "#eaeaea", + "step": 75, + "type": "color" + }, + "100": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "125": { + "value": "#dcdcdc", + "step": 125, + "type": "color" + }, + "150": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + }, + "175": { + "value": "#cdcdcd", + "step": 175, + "type": "color" + }, + "200": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "225": { + "value": "#bfbfbf", + "step": 225, + "type": "color" + }, + "250": { + "value": "#b8b8b8", + "step": 250, + "type": "color" + }, + "275": { + "value": "#b1b1b1", + "step": 275, + "type": "color" + }, + "300": { + "value": "#aaaaaa", + "step": 300, + "type": "color" + }, + "325": { + "value": "#a3a3a3", + "step": 325, + "type": "color" + }, + "350": { + "value": "#9c9c9c", + "step": 350, + "type": "color" + }, + "375": { + "value": "#959595", + "step": 375, + "type": "color" + }, + "400": { + "value": "#8e8e8e", + "step": 400, + "type": "color" + }, + "425": { + "value": "#878787", + "step": 425, + "type": "color" + }, + "450": { + "value": "#808080", + "step": 450, + "type": "color" + }, + "475": { + "value": "#787878", + "step": 475, + "type": "color" + }, + "500": { + "value": "#717171", + "step": 500, + "type": "color" + }, + "525": { + "value": "#6a6a6a", + "step": 525, + "type": "color" + }, + "550": { + "value": "#636363", + "step": 550, + "type": "color" + }, + "575": { + "value": "#5c5c5c", + "step": 575, + "type": "color" + }, + "600": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "625": { + "value": "#4e4e4e", + "step": 625, + "type": "color" + }, + "650": { + "value": "#474747", + "step": 650, + "type": "color" + }, + "675": { + "value": "#404040", + "step": 675, + "type": "color" + }, + "700": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "725": { + "value": "#323232", + "step": 725, + "type": "color" + }, + "750": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "775": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "800": { + "value": "#1c1c1c", + "step": 800, + "type": "color" + }, + "825": { + "value": "#151515", + "step": 825, + "type": "color" + }, + "850": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "875": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "900": { + "value": "#000000", + "step": 900, + "type": "color" + } + }, + "rose": { + "0": { + "value": "#feecef", + "step": 0, + "type": "color" + }, + "100": { + "value": "#f13455", + "step": 100, + "type": "color" + }, + "200": { + "value": "#eb2245", + "step": 200, + "type": "color" + }, + "300": { + "value": "#e7183b", + "step": 300, + "type": "color" + }, + "400": { + "value": "#da193a", + "step": 400, + "type": "color" + }, + "500": { + "value": "#d01939", + "step": 500, + "type": "color" + }, + "600": { + "value": "#c81a37", + "step": 600, + "type": "color" + }, + "700": { + "value": "#c01a36", + "step": 700, + "type": "color" + }, + "800": { + "value": "#ba1a36", + "step": 800, + "type": "color" + }, + "900": { + "value": "#b41a35", + "step": 900, + "type": "color" + } + }, + "red": { + "0": { + "value": "#feecec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#ec3939", + "step": 100, + "type": "color" + }, + "200": { + "value": "#e72727", + "step": 200, + "type": "color" + }, + "300": { + "value": "#e31c1c", + "step": 300, + "type": "color" + }, + "400": { + "value": "#d71c1c", + "step": 400, + "type": "color" + }, + "500": { + "value": "#cd1c1c", + "step": 500, + "type": "color" + }, + "600": { + "value": "#c51c1c", + "step": 600, + "type": "color" + }, + "700": { + "value": "#be1c1c", + "step": 700, + "type": "color" + }, + "800": { + "value": "#b81c1c", + "step": 800, + "type": "color" + }, + "900": { + "value": "#b21c1c", + "step": 900, + "type": "color" + } + }, + "orange": { + "0": { + "value": "#fef3ec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#f66e0f", + "step": 100, + "type": "color" + }, + "200": { + "value": "#e5660f", + "step": 200, + "type": "color" + }, + "300": { + "value": "#d66211", + "step": 300, + "type": "color" + }, + "400": { + "value": "#cc5f13", + "step": 400, + "type": "color" + }, + "500": { + "value": "#c45c14", + "step": 500, + "type": "color" + }, + "600": { + "value": "#bc5a15", + "step": 600, + "type": "color" + }, + "700": { + "value": "#b65816", + "step": 700, + "type": "color" + }, + "800": { + "value": "#b15617", + "step": 800, + "type": "color" + }, + "900": { + "value": "#ac5517", + "step": 900, + "type": "color" + } + }, + "amber": { + "0": { + "value": "#fef7ec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#eb980d", + "step": 100, + "type": "color" + }, + "200": { + "value": "#d88e10", + "step": 200, + "type": "color" + }, + "300": { + "value": "#cc8712", + "step": 300, + "type": "color" + }, + "400": { + "value": "#c38214", + "step": 400, + "type": "color" + }, + "500": { + "value": "#bb7e15", + "step": 500, + "type": "color" + }, + "600": { + "value": "#b57a16", + "step": 600, + "type": "color" + }, + "700": { + "value": "#b07717", + "step": 700, + "type": "color" + }, + "800": { + "value": "#ab7517", + "step": 800, + "type": "color" + }, + "900": { + "value": "#a77218", + "step": 900, + "type": "color" + } + }, + "yellow": { + "0": { + "value": "#fef9ec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#e0ac0b", + "step": 100, + "type": "color" + }, + "200": { + "value": "#cfa00f", + "step": 200, + "type": "color" + }, + "300": { + "value": "#c49811", + "step": 300, + "type": "color" + }, + "400": { + "value": "#bc9212", + "step": 400, + "type": "color" + }, + "500": { + "value": "#b68e14", + "step": 500, + "type": "color" + }, + "600": { + "value": "#b08a15", + "step": 600, + "type": "color" + }, + "700": { + "value": "#ac8615", + "step": 700, + "type": "color" + }, + "800": { + "value": "#a88316", + "step": 800, + "type": "color" + }, + "900": { + "value": "#a48117", + "step": 900, + "type": "color" + } + }, + "lime": { + "0": { + "value": "#f7feec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#80c517", + "step": 100, + "type": "color" + }, + "200": { + "value": "#7aba18", + "step": 200, + "type": "color" + }, + "300": { + "value": "#76b318", + "step": 300, + "type": "color" + }, + "400": { + "value": "#72ad19", + "step": 400, + "type": "color" + }, + "500": { + "value": "#70a919", + "step": 500, + "type": "color" + }, + "600": { + "value": "#6ea519", + "step": 600, + "type": "color" + }, + "700": { + "value": "#6ca219", + "step": 700, + "type": "color" + }, + "800": { + "value": "#6a9f1a", + "step": 800, + "type": "color" + }, + "900": { + "value": "#699c1a", + "step": 900, + "type": "color" + } + }, + "green": { + "0": { + "value": "#ecfef2", + "step": 0, + "type": "color" + }, + "100": { + "value": "#21bf5b", + "step": 100, + "type": "color" + }, + "200": { + "value": "#20b557", + "step": 200, + "type": "color" + }, + "300": { + "value": "#1faf54", + "step": 300, + "type": "color" + }, + "400": { + "value": "#1faa52", + "step": 400, + "type": "color" + }, + "500": { + "value": "#1ea650", + "step": 500, + "type": "color" + }, + "600": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "700": { + "value": "#1da04d", + "step": 700, + "type": "color" + }, + "800": { + "value": "#1d9d4c", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1d9b4b", + "step": 900, + "type": "color" + } + }, + "emerald": { + "0": { + "value": "#ecfef8", + "step": 0, + "type": "color" + }, + "100": { + "value": "#11b47e", + "step": 100, + "type": "color" + }, + "200": { + "value": "#13ac79", + "step": 200, + "type": "color" + }, + "300": { + "value": "#14a776", + "step": 300, + "type": "color" + }, + "400": { + "value": "#15a374", + "step": 400, + "type": "color" + }, + "500": { + "value": "#16a072", + "step": 500, + "type": "color" + }, + "600": { + "value": "#169d70", + "step": 600, + "type": "color" + }, + "700": { + "value": "#179b6f", + "step": 700, + "type": "color" + }, + "800": { + "value": "#17996e", + "step": 800, + "type": "color" + }, + "900": { + "value": "#18976c", + "step": 900, + "type": "color" + } + }, + "teal": { + "0": { + "value": "#ecfefc", + "step": 0, + "type": "color" + }, + "100": { + "value": "#15b3a2", + "step": 100, + "type": "color" + }, + "200": { + "value": "#16ab9b", + "step": 200, + "type": "color" + }, + "300": { + "value": "#17a696", + "step": 300, + "type": "color" + }, + "400": { + "value": "#17a293", + "step": 400, + "type": "color" + }, + "500": { + "value": "#189f90", + "step": 500, + "type": "color" + }, + "600": { + "value": "#189d8e", + "step": 600, + "type": "color" + }, + "700": { + "value": "#189a8c", + "step": 700, + "type": "color" + }, + "800": { + "value": "#19988a", + "step": 800, + "type": "color" + }, + "900": { + "value": "#199788", + "step": 900, + "type": "color" + } + }, + "cyan": { + "0": { + "value": "#ecfcfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#09b5cc", + "step": 100, + "type": "color" + }, + "200": { + "value": "#0daabf", + "step": 200, + "type": "color" + }, + "300": { + "value": "#0fa3b7", + "step": 300, + "type": "color" + }, + "400": { + "value": "#119eb1", + "step": 400, + "type": "color" + }, + "500": { + "value": "#1299ac", + "step": 500, + "type": "color" + }, + "600": { + "value": "#1396a8", + "step": 600, + "type": "color" + }, + "700": { + "value": "#1493a4", + "step": 700, + "type": "color" + }, + "800": { + "value": "#1590a1", + "step": 800, + "type": "color" + }, + "900": { + "value": "#168e9e", + "step": 900, + "type": "color" + } + }, + "sky": { + "0": { + "value": "#ecf8fe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#109fdf", + "step": 100, + "type": "color" + }, + "200": { + "value": "#1394cf", + "step": 200, + "type": "color" + }, + "300": { + "value": "#148dc4", + "step": 300, + "type": "color" + }, + "400": { + "value": "#1588bc", + "step": 400, + "type": "color" + }, + "500": { + "value": "#1684b6", + "step": 500, + "type": "color" + }, + "600": { + "value": "#1780b0", + "step": 600, + "type": "color" + }, + "700": { + "value": "#177dac", + "step": 700, + "type": "color" + }, + "800": { + "value": "#187ba8", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1878a4", + "step": 900, + "type": "color" + } + }, + "blue": { + "0": { + "value": "#ecf3fe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "200": { + "value": "#1f6eed", + "step": 200, + "type": "color" + }, + "300": { + "value": "#1666e7", + "step": 300, + "type": "color" + }, + "400": { + "value": "#1762db", + "step": 400, + "type": "color" + }, + "500": { + "value": "#185fd0", + "step": 500, + "type": "color" + }, + "600": { + "value": "#195cc8", + "step": 600, + "type": "color" + }, + "700": { + "value": "#1959c0", + "step": 700, + "type": "color" + }, + "800": { + "value": "#1957ba", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1a55b4", + "step": 900, + "type": "color" + } + }, + "indigo": { + "0": { + "value": "#ececfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#5558ee", + "step": 100, + "type": "color" + }, + "200": { + "value": "#3d41e9", + "step": 200, + "type": "color" + }, + "300": { + "value": "#2e32e5", + "step": 300, + "type": "color" + }, + "400": { + "value": "#2327e2", + "step": 400, + "type": "color" + }, + "500": { + "value": "#1e22db", + "step": 500, + "type": "color" + }, + "600": { + "value": "#1e22d1", + "step": 600, + "type": "color" + }, + "700": { + "value": "#1e21c9", + "step": 700, + "type": "color" + }, + "800": { + "value": "#1e21c1", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1d20bb", + "step": 900, + "type": "color" + } + }, + "violet": { + "0": { + "value": "#f1ecfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#804ef3", + "step": 100, + "type": "color" + }, + "200": { + "value": "#6e37ee", + "step": 200, + "type": "color" + }, + "300": { + "value": "#6329e9", + "step": 300, + "type": "color" + }, + "400": { + "value": "#5a1ee6", + "step": 400, + "type": "color" + }, + "500": { + "value": "#551bde", + "step": 500, + "type": "color" + }, + "600": { + "value": "#531bd4", + "step": 600, + "type": "color" + }, + "700": { + "value": "#501bcb", + "step": 700, + "type": "color" + }, + "800": { + "value": "#4e1bc3", + "step": 800, + "type": "color" + }, + "900": { + "value": "#4c1bbc", + "step": 900, + "type": "color" + } + }, + "purple": { + "0": { + "value": "#f5ecfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#a048f4", + "step": 100, + "type": "color" + }, + "200": { + "value": "#9332ee", + "step": 200, + "type": "color" + }, + "300": { + "value": "#8a24ea", + "step": 300, + "type": "color" + }, + "400": { + "value": "#831ae7", + "step": 400, + "type": "color" + }, + "500": { + "value": "#7d19dc", + "step": 500, + "type": "color" + }, + "600": { + "value": "#781ad2", + "step": 600, + "type": "color" + }, + "700": { + "value": "#741ac9", + "step": 700, + "type": "color" + }, + "800": { + "value": "#701bc2", + "step": 800, + "type": "color" + }, + "900": { + "value": "#6d1bbb", + "step": 900, + "type": "color" + } + }, + "fuschia": { + "0": { + "value": "#fdecfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#d63be2", + "step": 100, + "type": "color" + }, + "200": { + "value": "#d12ade", + "step": 200, + "type": "color" + }, + "300": { + "value": "#ca23d6", + "step": 300, + "type": "color" + }, + "400": { + "value": "#c122cc", + "step": 400, + "type": "color" + }, + "500": { + "value": "#b921c4", + "step": 500, + "type": "color" + }, + "600": { + "value": "#b320bd", + "step": 600, + "type": "color" + }, + "700": { + "value": "#ad20b7", + "step": 700, + "type": "color" + }, + "800": { + "value": "#a81fb2", + "step": 800, + "type": "color" + }, + "900": { + "value": "#a41ead", + "step": 900, + "type": "color" + } + }, + "pink": { + "0": { + "value": "#feecf5", + "step": 0, + "type": "color" + }, + "100": { + "value": "#e93d92", + "step": 100, + "type": "color" + }, + "200": { + "value": "#e42a87", + "step": 200, + "type": "color" + }, + "300": { + "value": "#e11e7f", + "step": 300, + "type": "color" + }, + "400": { + "value": "#d51e79", + "step": 400, + "type": "color" + }, + "500": { + "value": "#cc1e75", + "step": 500, + "type": "color" + }, + "600": { + "value": "#c41e71", + "step": 600, + "type": "color" + }, + "700": { + "value": "#bd1d6d", + "step": 700, + "type": "color" + }, + "800": { + "value": "#b71d6a", + "step": 800, + "type": "color" + }, + "900": { + "value": "#b21d67", + "step": 900, + "type": "color" + } + } + }, + "text": { + "family": { + "sans": { + "value": "Zed Sans", + "type": "fontFamily" + }, + "mono": { + "value": "Zed Mono", + "type": "fontFamily" + } + }, + "weight": { + "thin": { + "value": "thin", + "type": "fontWeight" + }, + "extra_light": { + "value": "extra_light", + "type": "fontWeight" + }, + "light": { + "value": "light", + "type": "fontWeight" + }, + "normal": { + "value": "normal", + "type": "fontWeight" + }, + "medium": { + "value": "medium", + "type": "fontWeight" + }, + "semibold": { + "value": "semibold", + "type": "fontWeight" + }, + "bold": { + "value": "bold", + "type": "fontWeight" + }, + "extra_bold": { + "value": "extra_bold", + "type": "fontWeight" + }, + "black": { + "value": "black", + "type": "fontWeight" + } + } + }, + "size": { + "3xs": { + "value": 8, + "type": "fontSize" + }, + "2xs": { + "value": 10, + "type": "fontSize" + }, + "xs": { + "value": 12, + "type": "fontSize" + }, + "sm": { + "value": 14, + "type": "fontSize" + }, + "md": { + "value": 16, + "type": "fontSize" + }, + "lg": { + "value": 18, + "type": "fontSize" + }, + "xl": { + "value": 20, + "type": "fontSize" + } + } +} \ No newline at end of file diff --git a/styles/figma/dark.json b/styles/figma/dark.json new file mode 100644 index 0000000000000000000000000000000000000000..fadaf7c19e3459fb3b20cd9af5fc930a2231f010 --- /dev/null +++ b/styles/figma/dark.json @@ -0,0 +1,637 @@ +{ + "meta": { + "themeName": "dark" + }, + "text": { + "primary": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "secondary": { + "value": "#9c9c9c", + "step": 350, + "type": "color" + }, + "muted": { + "value": "#636363", + "step": 550, + "type": "color" + }, + "placeholder": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "active": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "feature": { + "value": "#1684b6", + "step": 500, + "type": "color" + }, + "ok": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "error": { + "value": "#d71c1c", + "step": 400, + "type": "color" + }, + "warning": { + "value": "#cc8712", + "step": 300, + "type": "color" + }, + "info": { + "value": "#185fd0", + "step": 500, + "type": "color" + } + }, + "icon": { + "primary": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "secondary": { + "value": "#9c9c9c", + "step": 350, + "type": "color" + }, + "muted": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "placeholder": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "active": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "feature": { + "value": "#1684b6", + "step": 500, + "type": "color" + }, + "ok": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "error": { + "value": "#cd1c1c", + "step": 500, + "type": "color" + }, + "warning": { + "value": "#c38214", + "step": 400, + "type": "color" + }, + "info": { + "value": "#195cc8", + "step": 600, + "type": "color" + } + }, + "background": { + "100": { + "base": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "hovered": { + "value": "#323232", + "step": 725, + "type": "color" + }, + "active": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "focused": { + "value": "#404040", + "step": 675, + "type": "color" + } + }, + "300": { + "base": { + "value": "#1c1c1c", + "step": 800, + "type": "color" + }, + "hovered": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "active": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "focused": { + "value": "#323232", + "step": 725, + "type": "color" + } + }, + "500": { + "base": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "hovered": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "active": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "focused": { + "value": "#151515", + "step": 825, + "type": "color" + } + }, + "ok": { + "base": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "hovered": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "active": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "focused": { + "value": "#1ea34f", + "step": 600, + "type": "color" + } + }, + "error": { + "base": { + "value": "#d71c1c", + "step": 400, + "type": "color" + }, + "hovered": { + "value": "#d71c1c", + "step": 400, + "type": "color" + }, + "active": { + "value": "#d71c1c", + "step": 400, + "type": "color" + }, + "focused": { + "value": "#d71c1c", + "step": 400, + "type": "color" + } + }, + "warning": { + "base": { + "value": "#cc8712", + "step": 300, + "type": "color" + }, + "hovered": { + "value": "#cc8712", + "step": 300, + "type": "color" + }, + "active": { + "value": "#cc8712", + "step": 300, + "type": "color" + }, + "focused": { + "value": "#cc8712", + "step": 300, + "type": "color" + } + }, + "info": { + "base": { + "value": "#185fd0", + "step": 500, + "type": "color" + }, + "hovered": { + "value": "#185fd0", + "step": 500, + "type": "color" + }, + "active": { + "value": "#185fd0", + "step": 500, + "type": "color" + }, + "focused": { + "value": "#185fd0", + "step": 500, + "type": "color" + } + } + }, + "border": { + "primary": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "secondary": { + "value": "#151515", + "step": 825, + "type": "color" + }, + "muted": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "focused": { + "value": "#717171", + "step": 500, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "ok": { + "value": "#1ea650", + "step": 500, + "type": "color" + }, + "error": { + "value": "#cd1c1c", + "step": 500, + "type": "color" + }, + "warning": { + "value": "#bb7e15", + "step": 500, + "type": "color" + }, + "info": { + "value": "#185fd0", + "step": 500, + "type": "color" + } + }, + "editor": { + "background": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "indent_guide": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "indent_guide_active": { + "value": "#151515", + "step": 825, + "type": "color" + }, + "line": { + "active": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "highlighted": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "inserted": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "deleted": { + "value": "#d71c1c", + "step": 400, + "type": "color" + }, + "modified": { + "value": "#185fd0", + "step": 500, + "type": "color" + } + }, + "highlight": { + "selection": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "occurrence": { + "value": "#1e22db", + "step": 500, + "type": "color" + }, + "activeOccurrence": { + "value": "#2327e2", + "step": 400, + "type": "color" + }, + "matchingBracket": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "match": { + "value": "#70a919", + "step": 500, + "type": "color" + }, + "activeMatch": { + "value": "#72ad19", + "step": 400, + "type": "color" + }, + "related": { + "value": "#151515", + "step": 825, + "type": "color" + } + }, + "gutter": { + "primary": { + "value": "#636363", + "step": 550, + "type": "color" + }, + "active": { + "value": "#ffffff", + "step": 0, + "type": "color" + } + } + }, + "syntax": { + "primary": { + "value": "#f1f1f1", + "type": "color" + }, + "comment": { + "value": "#7aba18", + "type": "color" + }, + "keyword": { + "value": "#1588bc", + "type": "color" + }, + "function": { + "value": "#cfa00f", + "type": "color" + }, + "type": { + "value": "#17a696", + "type": "color" + }, + "variant": { + "value": "#17a696", + "type": "color" + }, + "property": { + "value": "#148dc4", + "type": "color" + }, + "enum": { + "value": "#1588bc", + "type": "color" + }, + "operator": { + "value": "#1588bc", + "type": "color" + }, + "string": { + "value": "#d66211", + "type": "color" + }, + "number": { + "value": "#d5d5d5", + "type": "color" + }, + "boolean": { + "value": "#d5d5d5", + "type": "color" + } + }, + "player": { + "1": { + "baseColor": { + "value": "#195cc8", + "step": 600, + "type": "color" + }, + "cursorColor": { + "value": "#195cc8", + "step": 600, + "type": "color" + }, + "selectionColor": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#195cc8", + "step": 600, + "type": "color" + } + }, + "2": { + "baseColor": { + "value": "#70a919", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#70a919", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#80c517", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#70a919", + "step": 500, + "type": "color" + } + }, + "3": { + "baseColor": { + "value": "#1e22db", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#1e22db", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#5558ee", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#1e22db", + "step": 500, + "type": "color" + } + }, + "4": { + "baseColor": { + "value": "#c45c14", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#c45c14", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#f66e0f", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#c45c14", + "step": 500, + "type": "color" + } + }, + "5": { + "baseColor": { + "value": "#7d19dc", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#7d19dc", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#a048f4", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#7d19dc", + "step": 500, + "type": "color" + } + }, + "6": { + "baseColor": { + "value": "#17a293", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#17a293", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#15b3a2", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#17a293", + "step": 400, + "type": "color" + } + }, + "7": { + "baseColor": { + "value": "#d51e79", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#d51e79", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#e93d92", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#d51e79", + "step": 400, + "type": "color" + } + }, + "8": { + "baseColor": { + "value": "#bc9212", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#bc9212", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#e0ac0b", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#bc9212", + "step": 400, + "type": "color" + } + } + }, + "shadowAlpha": { + "value": 0.32, + "type": "number" + } +} \ No newline at end of file diff --git a/styles/figma/light.json b/styles/figma/light.json new file mode 100644 index 0000000000000000000000000000000000000000..415ab40933c5be2c343b8174c95c9e9917e76675 --- /dev/null +++ b/styles/figma/light.json @@ -0,0 +1,637 @@ +{ + "meta": { + "themeName": "light" + }, + "text": { + "primary": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "secondary": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "muted": { + "value": "#808080", + "step": 450, + "type": "color" + }, + "placeholder": { + "value": "#aaaaaa", + "step": 300, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "feature": { + "value": "#185fd0", + "step": 500, + "type": "color" + }, + "ok": { + "value": "#1ea650", + "step": 500, + "type": "color" + }, + "error": { + "value": "#cd1c1c", + "step": 500, + "type": "color" + }, + "warning": { + "value": "#b68e14", + "step": 500, + "type": "color" + }, + "info": { + "value": "#185fd0", + "step": 500, + "type": "color" + } + }, + "icon": { + "primary": { + "value": "#aaaaaa", + "step": 300, + "type": "color" + }, + "secondary": { + "value": "#717171", + "step": 500, + "type": "color" + }, + "muted": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "placeholder": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "feature": { + "value": "#1780b0", + "step": 600, + "type": "color" + }, + "ok": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "error": { + "value": "#c51c1c", + "step": 600, + "type": "color" + }, + "warning": { + "value": "#bc9212", + "step": 400, + "type": "color" + }, + "info": { + "value": "#195cc8", + "step": 600, + "type": "color" + } + }, + "background": { + "100": { + "base": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + }, + "active": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "focused": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + } + }, + "300": { + "base": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "hovered": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "active": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + }, + "focused": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + } + }, + "500": { + "base": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "hovered": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "active": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + } + }, + "ok": { + "base": { + "value": "#21bf5b", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#21bf5b", + "step": 100, + "type": "color" + }, + "active": { + "value": "#21bf5b", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#21bf5b", + "step": 100, + "type": "color" + } + }, + "error": { + "base": { + "value": "#ec3939", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#ec3939", + "step": 100, + "type": "color" + }, + "active": { + "value": "#ec3939", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#ec3939", + "step": 100, + "type": "color" + } + }, + "warning": { + "base": { + "value": "#e0ac0b", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#e0ac0b", + "step": 100, + "type": "color" + }, + "active": { + "value": "#e0ac0b", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#e0ac0b", + "step": 100, + "type": "color" + } + }, + "info": { + "base": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "active": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#307af3", + "step": 100, + "type": "color" + } + } + }, + "border": { + "primary": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "secondary": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "muted": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "focused": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "active": { + "value": "#b8b8b8", + "step": 250, + "type": "color" + }, + "ok": { + "value": "#20b557", + "step": 200, + "type": "color" + }, + "error": { + "value": "#e72727", + "step": 200, + "type": "color" + }, + "warning": { + "value": "#cfa00f", + "step": 200, + "type": "color" + }, + "info": { + "value": "#1f6eed", + "step": 200, + "type": "color" + } + }, + "editor": { + "background": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "indent_guide": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "indent_guide_active": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "line": { + "active": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "highlighted": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "inserted": { + "value": "#21bf5b", + "step": 100, + "type": "color" + }, + "deleted": { + "value": "#ec3939", + "step": 100, + "type": "color" + }, + "modified": { + "value": "#307af3", + "step": 100, + "type": "color" + } + }, + "highlight": { + "selection": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "occurrence": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "activeOccurrence": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "matchingBracket": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "match": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "activeMatch": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "related": { + "value": "#ffffff", + "step": 0, + "type": "color" + } + }, + "gutter": { + "primary": { + "value": "#808080", + "step": 450, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + } + } + }, + "syntax": { + "primary": { + "value": "#2b2b2b", + "type": "color" + }, + "comment": { + "value": "#7aba18", + "type": "color" + }, + "keyword": { + "value": "#1588bc", + "type": "color" + }, + "function": { + "value": "#cfa00f", + "type": "color" + }, + "type": { + "value": "#17a696", + "type": "color" + }, + "variant": { + "value": "#17a696", + "type": "color" + }, + "property": { + "value": "#148dc4", + "type": "color" + }, + "enum": { + "value": "#1588bc", + "type": "color" + }, + "operator": { + "value": "#1588bc", + "type": "color" + }, + "string": { + "value": "#d66211", + "type": "color" + }, + "number": { + "value": "#d5d5d5", + "type": "color" + }, + "boolean": { + "value": "#d5d5d5", + "type": "color" + } + }, + "player": { + "1": { + "baseColor": { + "value": "#195cc8", + "step": 600, + "type": "color" + }, + "cursorColor": { + "value": "#185fd0", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#185fd0", + "step": 500, + "type": "color" + } + }, + "2": { + "baseColor": { + "value": "#70a919", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#70a919", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#80c517", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#70a919", + "step": 500, + "type": "color" + } + }, + "3": { + "baseColor": { + "value": "#1e22db", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#1e22db", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#5558ee", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#1e22db", + "step": 500, + "type": "color" + } + }, + "4": { + "baseColor": { + "value": "#c45c14", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#c45c14", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#f66e0f", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#c45c14", + "step": 500, + "type": "color" + } + }, + "5": { + "baseColor": { + "value": "#7d19dc", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#7d19dc", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#a048f4", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#7d19dc", + "step": 500, + "type": "color" + } + }, + "6": { + "baseColor": { + "value": "#17a293", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#17a293", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#15b3a2", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#17a293", + "step": 400, + "type": "color" + } + }, + "7": { + "baseColor": { + "value": "#d51e79", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#d51e79", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#e93d92", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#d51e79", + "step": 400, + "type": "color" + } + }, + "8": { + "baseColor": { + "value": "#bc9212", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#bc9212", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#e0ac0b", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#bc9212", + "step": 400, + "type": "color" + } + } + }, + "shadowAlpha": { + "value": 0.12, + "type": "number" + } +} \ No newline at end of file From d029a5c376231751e65ccb5e4e09a5a378cf3044 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sun, 3 Apr 2022 13:37:47 -0400 Subject: [PATCH 28/71] Fix incorrect ramp preset values in `color.ts` - Regenerate themes and tokens as well --- crates/zed/assets/themes/dark.json | 94 +++++----- crates/zed/assets/themes/light.json | 88 ++++----- styles/figma/core.json | 272 ++++++++++++++-------------- styles/figma/dark.json | 158 ++++++++-------- styles/figma/light.json | 150 +++++++-------- styles/utils/color.ts | 4 +- 6 files changed, 383 insertions(+), 383 deletions(-) diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json index 25568bf17c9dafaf92beb11be5e4514377f57e76..da7fa4650ee609d46ce2eacf5dcf8eb4a3f8088c 100644 --- a/crates/zed/assets/themes/dark.json +++ b/crates/zed/assets/themes/dark.json @@ -18,7 +18,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#1684b6", + "color": "#2db4f3", "weight": "bold", "size": 14 } @@ -38,7 +38,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#1684b6", + "color": "#2db4f3", "weight": "bold", "size": 14 }, @@ -70,8 +70,8 @@ "size": 14 }, "selection": { - "cursor": "#195cc8", - "selection": "#307af3" + "cursor": "#4287f6", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", @@ -111,8 +111,8 @@ "background": "#1c1c1c", "icon_close": "#555555", "icon_close_active": "#ffffff", - "icon_conflict": "#c38214", - "icon_dirty": "#195cc8", + "icon_conflict": "#f7b241", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { @@ -137,8 +137,8 @@ "background": "#000000", "icon_close": "#555555", "icon_close_active": "#ffffff", - "icon_conflict": "#c38214", - "icon_dirty": "#195cc8", + "icon_conflict": "#f7b241", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { @@ -289,7 +289,7 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#cc8712", + "color": "#f8c570", "size": 13 } }, @@ -329,11 +329,11 @@ "background": "#000000", "active_line_background": "#0e0e0e", "code_actions_indicator": "#9c9c9c", - "diff_background_deleted": "#d71c1c", - "diff_background_inserted": "#1ea34f", - "document_highlight_read_background": "#1e22db", - "document_highlight_write_background": "#1e22db", - "error_color": "#d71c1c", + "diff_background_deleted": "#f78c8c", + "diff_background_inserted": "#22c55e", + "document_highlight_read_background": "#777af4", + "document_highlight_write_background": "#777af4", + "error_color": "#f78c8c", "gutter_background": "#000000", "gutter_padding_factor": 2.5, "highlighted_line_background": "#070707", @@ -342,37 +342,37 @@ "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { - "cursor": "#195cc8", - "selection": "#307af3" + "cursor": "#4287f6", + "selection": "#d0e2fd" }, "guest_selections": [ { - "cursor": "#70a919", - "selection": "#80c517" + "cursor": "#87d116", + "selection": "#dbf9ac" }, { - "cursor": "#1e22db", - "selection": "#5558ee" + "cursor": "#777af4", + "selection": "#d4d5fd" }, { - "cursor": "#c45c14", - "selection": "#f66e0f" + "cursor": "#f98a3d", + "selection": "#fde0cd" }, { - "cursor": "#7d19dc", - "selection": "#a048f4" + "cursor": "#b671f8", + "selection": "#e9d4fd" }, { - "cursor": "#17a293", - "selection": "#15b3a2" + "cursor": "#16ddc7", + "selection": "#b4faf2" }, { - "cursor": "#d51e79", - "selection": "#e93d92" + "cursor": "#f58ac0", + "selection": "#fcd4e8" }, { - "cursor": "#bc9212", - "selection": "#e0ac0b" + "cursor": "#f6bc09", + "selection": "#fceabc" } ], "autocomplete": { @@ -406,7 +406,7 @@ "left": -14 }, "match_highlight": { - "color": "#1588bc", + "color": "#59c3f5", "weight": "normal" }, "selected_item": { @@ -481,12 +481,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#d71c1c", + "color": "#f78c8c", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#d71c1c", + "color": "#f78c8c", "size": 14, "weight": "bold" } @@ -504,12 +504,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#cc8712", + "color": "#f8c570", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#cc8712", + "color": "#f8c570", "size": 14, "weight": "bold" } @@ -527,12 +527,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14, "weight": "bold" } @@ -550,12 +550,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14, "weight": "bold" } @@ -929,8 +929,8 @@ "size": 14 }, "selection": { - "cursor": "#195cc8", - "selection": "#307af3" + "cursor": "#4287f6", + "selection": "#d0e2fd" }, "border": { "color": "#151515", @@ -1067,7 +1067,7 @@ } }, "search": { - "match_background": "#70a919", + "match_background": "#87d116", "tab_icon_spacing": 4, "tab_icon_width": 14, "active_hovered_option_button": { @@ -1123,8 +1123,8 @@ "size": 16 }, "selection": { - "cursor": "#195cc8", - "selection": "#307af3" + "cursor": "#4287f6", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", @@ -1177,8 +1177,8 @@ "size": 16 }, "selection": { - "cursor": "#195cc8", - "selection": "#307af3" + "cursor": "#4287f6", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", @@ -1186,7 +1186,7 @@ "size": 16 }, "border": { - "color": "#cd1c1c", + "color": "#f47171", "width": 1 }, "margin": { diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json index 76fe01501d181cdcbdea018c21357a2c65a728ab..dcff3352f75703a64030db29cde7797dd038c432 100644 --- a/crates/zed/assets/themes/light.json +++ b/crates/zed/assets/themes/light.json @@ -18,7 +18,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "weight": "bold", "size": 14 } @@ -38,7 +38,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "weight": "bold", "size": 14 }, @@ -70,8 +70,8 @@ "size": 14 }, "selection": { - "cursor": "#185fd0", - "selection": "#307af3" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", @@ -111,8 +111,8 @@ "background": "#f1f1f1", "icon_close": "#555555", "icon_close_active": "#000000", - "icon_conflict": "#bc9212", - "icon_dirty": "#195cc8", + "icon_conflict": "#f6bc09", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { @@ -137,8 +137,8 @@ "background": "#ffffff", "icon_close": "#555555", "icon_close_active": "#000000", - "icon_conflict": "#bc9212", - "icon_dirty": "#195cc8", + "icon_conflict": "#f6bc09", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { @@ -289,7 +289,7 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#b68e14", + "color": "#e5af09", "size": 13 } }, @@ -329,11 +329,11 @@ "background": "#ffffff", "active_line_background": "#e3e3e3", "code_actions_indicator": "#717171", - "diff_background_deleted": "#ec3939", - "diff_background_inserted": "#21bf5b", + "diff_background_deleted": "#fdd4d4", + "diff_background_inserted": "#befad2", "document_highlight_read_background": "#e3e3e3", "document_highlight_write_background": "#e3e3e3", - "error_color": "#cd1c1c", + "error_color": "#f47171", "gutter_background": "#ffffff", "gutter_padding_factor": 2.5, "highlighted_line_background": "#e3e3e3", @@ -342,37 +342,37 @@ "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { - "cursor": "#185fd0", - "selection": "#307af3" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "guest_selections": [ { - "cursor": "#70a919", - "selection": "#80c517" + "cursor": "#87d116", + "selection": "#dbf9ac" }, { - "cursor": "#1e22db", - "selection": "#5558ee" + "cursor": "#777af4", + "selection": "#d4d5fd" }, { - "cursor": "#c45c14", - "selection": "#f66e0f" + "cursor": "#f98a3d", + "selection": "#fde0cd" }, { - "cursor": "#7d19dc", - "selection": "#a048f4" + "cursor": "#b671f8", + "selection": "#e9d4fd" }, { - "cursor": "#17a293", - "selection": "#15b3a2" + "cursor": "#16ddc7", + "selection": "#b4faf2" }, { - "cursor": "#d51e79", - "selection": "#e93d92" + "cursor": "#f58ac0", + "selection": "#fcd4e8" }, { - "cursor": "#bc9212", - "selection": "#e0ac0b" + "cursor": "#f6bc09", + "selection": "#fceabc" } ], "autocomplete": { @@ -406,7 +406,7 @@ "left": -14 }, "match_highlight": { - "color": "#1588bc", + "color": "#59c3f5", "weight": "normal" }, "selected_item": { @@ -481,12 +481,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#cd1c1c", + "color": "#f47171", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#cd1c1c", + "color": "#f47171", "size": 14, "weight": "bold" } @@ -504,12 +504,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#b68e14", + "color": "#e5af09", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#b68e14", + "color": "#e5af09", "size": 14, "weight": "bold" } @@ -527,12 +527,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14, "weight": "bold" } @@ -550,12 +550,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14, "weight": "bold" } @@ -929,8 +929,8 @@ "size": 14 }, "selection": { - "cursor": "#185fd0", - "selection": "#307af3" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "border": { "color": "#e3e3e3", @@ -1123,8 +1123,8 @@ "size": 16 }, "selection": { - "cursor": "#185fd0", - "selection": "#307af3" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", @@ -1177,8 +1177,8 @@ "size": 16 }, "selection": { - "cursor": "#185fd0", - "selection": "#307af3" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", @@ -1186,7 +1186,7 @@ "size": 16 }, "border": { - "color": "#e72727", + "color": "#fbbdbd", "width": 1 }, "margin": { diff --git a/styles/figma/core.json b/styles/figma/core.json index 77dabe6b4e4462acc636427c388d161bb3c54a33..b3e13f1c7a9f4e048bf7065278ebc1527c4a11cc 100644 --- a/styles/figma/core.json +++ b/styles/figma/core.json @@ -194,42 +194,42 @@ "type": "color" }, "100": { - "value": "#f13455", + "value": "#fdd5db", "step": 100, "type": "color" }, "200": { - "value": "#eb2245", + "value": "#fbbdc8", "step": 200, "type": "color" }, "300": { - "value": "#e7183b", + "value": "#faa4b3", "step": 300, "type": "color" }, "400": { - "value": "#da193a", + "value": "#f98a9d", "step": 400, "type": "color" }, "500": { - "value": "#d01939", + "value": "#f76e86", "step": 500, "type": "color" }, "600": { - "value": "#c81a37", + "value": "#f54c69", "step": 600, "type": "color" }, "700": { - "value": "#c01a36", + "value": "#ec2548", "step": 700, "type": "color" }, "800": { - "value": "#ba1a36", + "value": "#d21939", "step": 800, "type": "color" }, @@ -246,42 +246,42 @@ "type": "color" }, "100": { - "value": "#ec3939", + "value": "#fdd4d4", "step": 100, "type": "color" }, "200": { - "value": "#e72727", + "value": "#fbbdbd", "step": 200, "type": "color" }, "300": { - "value": "#e31c1c", + "value": "#f9a5a5", "step": 300, "type": "color" }, "400": { - "value": "#d71c1c", + "value": "#f78c8c", "step": 400, "type": "color" }, "500": { - "value": "#cd1c1c", + "value": "#f47171", "step": 500, "type": "color" }, "600": { - "value": "#c51c1c", + "value": "#f15252", "step": 600, "type": "color" }, "700": { - "value": "#be1c1c", + "value": "#e82c2c", "step": 700, "type": "color" }, "800": { - "value": "#b81c1c", + "value": "#d11c1c", "step": 800, "type": "color" }, @@ -298,42 +298,42 @@ "type": "color" }, "100": { - "value": "#f66e0f", + "value": "#fde0cd", "step": 100, "type": "color" }, "200": { - "value": "#e5660f", + "value": "#fbccac", "step": 200, "type": "color" }, "300": { - "value": "#d66211", + "value": "#fab78b", "step": 300, "type": "color" }, "400": { - "value": "#cc5f13", + "value": "#faa266", "step": 400, "type": "color" }, "500": { - "value": "#c45c14", + "value": "#f98a3d", "step": 500, "type": "color" }, "600": { - "value": "#bc5a15", + "value": "#f77113", "step": 600, "type": "color" }, "700": { - "value": "#b65816", + "value": "#e0650f", "step": 700, "type": "color" }, "800": { - "value": "#b15617", + "value": "#c65d14", "step": 800, "type": "color" }, @@ -350,42 +350,42 @@ "type": "color" }, "100": { - "value": "#eb980d", + "value": "#fce7c4", "step": 100, "type": "color" }, "200": { - "value": "#d88e10", + "value": "#fad69d", "step": 200, "type": "color" }, "300": { - "value": "#cc8712", + "value": "#f8c570", "step": 300, "type": "color" }, "400": { - "value": "#c38214", + "value": "#f7b241", "step": 400, "type": "color" }, "500": { - "value": "#bb7e15", + "value": "#f59f0c", "step": 500, "type": "color" }, "600": { - "value": "#b57a16", + "value": "#e1930e", "step": 600, "type": "color" }, "700": { - "value": "#b07717", + "value": "#cd8812", "step": 700, "type": "color" }, "800": { - "value": "#ab7517", + "value": "#ba7d15", "step": 800, "type": "color" }, @@ -402,42 +402,42 @@ "type": "color" }, "100": { - "value": "#e0ac0b", + "value": "#fceabc", "step": 100, "type": "color" }, "200": { - "value": "#cfa00f", + "value": "#fadc89", "step": 200, "type": "color" }, "300": { - "value": "#c49811", + "value": "#f8cc4e", "step": 300, "type": "color" }, "400": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" }, "500": { - "value": "#b68e14", + "value": "#e5af09", "step": 500, "type": "color" }, "600": { - "value": "#b08a15", + "value": "#d4a30d", "step": 600, "type": "color" }, "700": { - "value": "#ac8615", + "value": "#c49811", "step": 700, "type": "color" }, "800": { - "value": "#a88316", + "value": "#b48d14", "step": 800, "type": "color" }, @@ -454,42 +454,42 @@ "type": "color" }, "100": { - "value": "#80c517", + "value": "#dbf9ac", "step": 100, "type": "color" }, "200": { - "value": "#7aba18", + "value": "#bdf36b", "step": 200, "type": "color" }, "300": { - "value": "#76b318", + "value": "#9feb2b", "step": 300, "type": "color" }, "400": { - "value": "#72ad19", + "value": "#90df17", "step": 400, "type": "color" }, "500": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" }, "600": { - "value": "#6ea519", + "value": "#7fc417", "step": 600, "type": "color" }, "700": { - "value": "#6ca219", + "value": "#78b618", "step": 700, "type": "color" }, "800": { - "value": "#6a9f1a", + "value": "#70aa19", "step": 800, "type": "color" }, @@ -506,42 +506,42 @@ "type": "color" }, "100": { - "value": "#21bf5b", + "value": "#befad2", "step": 100, "type": "color" }, "200": { - "value": "#20b557", + "value": "#8ff4b2", "step": 200, "type": "color" }, "300": { - "value": "#1faf54", + "value": "#60ec92", "step": 300, "type": "color" }, "400": { - "value": "#1faa52", + "value": "#34e173", "step": 400, "type": "color" }, "500": { - "value": "#1ea650", + "value": "#23d464", "step": 500, "type": "color" }, "600": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "700": { - "value": "#1da04d", + "value": "#20b658", "step": 700, "type": "color" }, "800": { - "value": "#1d9d4c", + "value": "#1ea851", "step": 800, "type": "color" }, @@ -558,42 +558,42 @@ "type": "color" }, "100": { - "value": "#11b47e", + "value": "#b3fbe3", "step": 100, "type": "color" }, "200": { - "value": "#13ac79", + "value": "#72f6ca", "step": 200, "type": "color" }, "300": { - "value": "#14a776", + "value": "#1feda9", "step": 300, "type": "color" }, "400": { - "value": "#15a374", + "value": "#12e09b", "step": 400, "type": "color" }, "500": { - "value": "#16a072", + "value": "#11d091", "step": 500, "type": "color" }, "600": { - "value": "#169d70", + "value": "#11c287", "step": 600, "type": "color" }, "700": { - "value": "#179b6f", + "value": "#11b37e", "step": 700, "type": "color" }, "800": { - "value": "#17996e", + "value": "#15a575", "step": 800, "type": "color" }, @@ -610,42 +610,42 @@ "type": "color" }, "100": { - "value": "#15b3a2", + "value": "#b4faf2", "step": 100, "type": "color" }, "200": { - "value": "#16ab9b", + "value": "#73f4e6", "step": 200, "type": "color" }, "300": { - "value": "#17a696", + "value": "#26ebd5", "step": 300, "type": "color" }, "400": { - "value": "#17a293", + "value": "#16ddc7", "step": 400, "type": "color" }, "500": { - "value": "#189f90", + "value": "#15cfba", "step": 500, "type": "color" }, "600": { - "value": "#189d8e", + "value": "#15c1ae", "step": 600, "type": "color" }, "700": { - "value": "#189a8c", + "value": "#15b2a1", "step": 700, "type": "color" }, "800": { - "value": "#19988a", + "value": "#17a495", "step": 800, "type": "color" }, @@ -662,42 +662,42 @@ "type": "color" }, "100": { - "value": "#09b5cc", + "value": "#bcf5fc", "step": 100, "type": "color" }, "200": { - "value": "#0daabf", + "value": "#86edfa", "step": 200, "type": "color" }, "300": { - "value": "#0fa3b7", + "value": "#41e3f8", "step": 300, "type": "color" }, "400": { - "value": "#119eb1", + "value": "#07d5f1", "step": 400, "type": "color" }, "500": { - "value": "#1299ac", + "value": "#07c7e1", "step": 500, "type": "color" }, "600": { - "value": "#1396a8", + "value": "#07b8d0", "step": 600, "type": "color" }, "700": { - "value": "#1493a4", + "value": "#0daabf", "step": 700, "type": "color" }, "800": { - "value": "#1590a1", + "value": "#119bae", "step": 800, "type": "color" }, @@ -714,42 +714,42 @@ "type": "color" }, "100": { - "value": "#109fdf", + "value": "#caecfc", "step": 100, "type": "color" }, "200": { - "value": "#1394cf", + "value": "#a6defa", "step": 200, "type": "color" }, "300": { - "value": "#148dc4", + "value": "#81d2f8", "step": 300, "type": "color" }, "400": { - "value": "#1588bc", + "value": "#59c3f5", "step": 400, "type": "color" }, "500": { - "value": "#1684b6", + "value": "#2db4f3", "step": 500, "type": "color" }, "600": { - "value": "#1780b0", + "value": "#0ea5e8", "step": 600, "type": "color" }, "700": { - "value": "#177dac", + "value": "#1296d1", "step": 700, "type": "color" }, "800": { - "value": "#187ba8", + "value": "#1686ba", "step": 800, "type": "color" }, @@ -766,42 +766,42 @@ "type": "color" }, "100": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, "200": { - "value": "#1f6eed", + "value": "#b4cffb", "step": 200, "type": "color" }, "300": { - "value": "#1666e7", + "value": "#99befa", "step": 300, "type": "color" }, "400": { - "value": "#1762db", + "value": "#7cacf9", "step": 400, "type": "color" }, "500": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" }, "600": { - "value": "#195cc8", + "value": "#4287f6", "step": 600, "type": "color" }, "700": { - "value": "#1959c0", + "value": "#2774f0", "step": 700, "type": "color" }, "800": { - "value": "#1957ba", + "value": "#1762db", "step": 800, "type": "color" }, @@ -818,42 +818,42 @@ "type": "color" }, "100": { - "value": "#5558ee", + "value": "#d4d5fd", "step": 100, "type": "color" }, "200": { - "value": "#3d41e9", + "value": "#bebefb", "step": 200, "type": "color" }, "300": { - "value": "#2e32e5", + "value": "#a7a8f9", "step": 300, "type": "color" }, "400": { - "value": "#2327e2", + "value": "#8f90f6", "step": 400, "type": "color" }, "500": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" }, "600": { - "value": "#1e22d1", + "value": "#5f62f0", "step": 600, "type": "color" }, "700": { - "value": "#1e21c9", + "value": "#464aeb", "step": 700, "type": "color" }, "800": { - "value": "#1e21c1", + "value": "#292de4", "step": 800, "type": "color" }, @@ -870,42 +870,42 @@ "type": "color" }, "100": { - "value": "#804ef3", + "value": "#e0d5fd", "step": 100, "type": "color" }, "200": { - "value": "#6e37ee", + "value": "#cfbcfb", "step": 200, "type": "color" }, "300": { - "value": "#6329e9", + "value": "#bda4fa", "step": 300, "type": "color" }, "400": { - "value": "#5a1ee6", + "value": "#ad8cf9", "step": 400, "type": "color" }, "500": { - "value": "#551bde", + "value": "#9b73f7", "step": 500, "type": "color" }, "600": { - "value": "#531bd4", + "value": "#8959f6", "step": 600, "type": "color" }, "700": { - "value": "#501bcb", + "value": "#7540f0", "step": 700, "type": "color" }, "800": { - "value": "#4e1bc3", + "value": "#5e22e7", "step": 800, "type": "color" }, @@ -922,42 +922,42 @@ "type": "color" }, "100": { - "value": "#a048f4", + "value": "#e9d4fd", "step": 100, "type": "color" }, "200": { - "value": "#9332ee", + "value": "#dcbcfc", "step": 200, "type": "color" }, "300": { - "value": "#8a24ea", + "value": "#d0a4fa", "step": 300, "type": "color" }, "400": { - "value": "#831ae7", + "value": "#c38bf9", "step": 400, "type": "color" }, "500": { - "value": "#7d19dc", + "value": "#b671f8", "step": 500, "type": "color" }, "600": { - "value": "#781ad2", + "value": "#a856f7", "step": 600, "type": "color" }, "700": { - "value": "#741ac9", + "value": "#9739f1", "step": 700, "type": "color" }, "800": { - "value": "#701bc2", + "value": "#831ae6", "step": 800, "type": "color" }, @@ -974,42 +974,42 @@ "type": "color" }, "100": { - "value": "#d63be2", + "value": "#fad4fc", "step": 100, "type": "color" }, "200": { - "value": "#d12ade", + "value": "#f6bbfa", "step": 200, "type": "color" }, "300": { - "value": "#ca23d6", + "value": "#f1a2f7", "step": 300, "type": "color" }, "400": { - "value": "#c122cc", + "value": "#ec8af3", "step": 400, "type": "color" }, "500": { - "value": "#b921c4", + "value": "#e56fee", "step": 500, "type": "color" }, "600": { - "value": "#b320bd", + "value": "#dd51e7", "step": 600, "type": "color" }, "700": { - "value": "#ad20b7", + "value": "#d32edf", "step": 700, "type": "color" }, "800": { - "value": "#a81fb2", + "value": "#bc21c8", "step": 800, "type": "color" }, @@ -1026,42 +1026,42 @@ "type": "color" }, "100": { - "value": "#e93d92", + "value": "#fcd4e8", "step": 100, "type": "color" }, "200": { - "value": "#e42a87", + "value": "#fbbcdb", "step": 200, "type": "color" }, "300": { - "value": "#e11e7f", + "value": "#f8a5ce", "step": 300, "type": "color" }, "400": { - "value": "#d51e79", + "value": "#f58ac0", "step": 400, "type": "color" }, "500": { - "value": "#cc1e75", + "value": "#f26fb0", "step": 500, "type": "color" }, "600": { - "value": "#c41e71", + "value": "#ee519e", "step": 600, "type": "color" }, "700": { - "value": "#bd1d6d", + "value": "#e52e89", "step": 700, "type": "color" }, "800": { - "value": "#b71d6a", + "value": "#ce1e76", "step": 800, "type": "color" }, diff --git a/styles/figma/dark.json b/styles/figma/dark.json index fadaf7c19e3459fb3b20cd9af5fc930a2231f010..568f53b8154003fb1805de4c2ae420f0f2a94e89 100644 --- a/styles/figma/dark.json +++ b/styles/figma/dark.json @@ -29,27 +29,27 @@ "type": "color" }, "feature": { - "value": "#1684b6", + "value": "#2db4f3", "step": 500, "type": "color" }, "ok": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "error": { - "value": "#d71c1c", + "value": "#f78c8c", "step": 400, "type": "color" }, "warning": { - "value": "#cc8712", + "value": "#f8c570", "step": 300, "type": "color" }, "info": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" } @@ -81,27 +81,27 @@ "type": "color" }, "feature": { - "value": "#1684b6", + "value": "#2db4f3", "step": 500, "type": "color" }, "ok": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "error": { - "value": "#cd1c1c", + "value": "#f47171", "step": 500, "type": "color" }, "warning": { - "value": "#c38214", + "value": "#f7b241", "step": 400, "type": "color" }, "info": { - "value": "#195cc8", + "value": "#4287f6", "step": 600, "type": "color" } @@ -175,88 +175,88 @@ }, "ok": { "base": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "hovered": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "active": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "focused": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" } }, "error": { "base": { - "value": "#d71c1c", + "value": "#f78c8c", "step": 400, "type": "color" }, "hovered": { - "value": "#d71c1c", + "value": "#f78c8c", "step": 400, "type": "color" }, "active": { - "value": "#d71c1c", + "value": "#f78c8c", "step": 400, "type": "color" }, "focused": { - "value": "#d71c1c", + "value": "#f78c8c", "step": 400, "type": "color" } }, "warning": { "base": { - "value": "#cc8712", + "value": "#f8c570", "step": 300, "type": "color" }, "hovered": { - "value": "#cc8712", + "value": "#f8c570", "step": 300, "type": "color" }, "active": { - "value": "#cc8712", + "value": "#f8c570", "step": 300, "type": "color" }, "focused": { - "value": "#cc8712", + "value": "#f8c570", "step": 300, "type": "color" } }, "info": { "base": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" }, "hovered": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" }, "active": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" }, "focused": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" } @@ -289,22 +289,22 @@ "type": "color" }, "ok": { - "value": "#1ea650", + "value": "#23d464", "step": 500, "type": "color" }, "error": { - "value": "#cd1c1c", + "value": "#f47171", "step": 500, "type": "color" }, "warning": { - "value": "#bb7e15", + "value": "#f59f0c", "step": 500, "type": "color" }, "info": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" } @@ -337,34 +337,34 @@ "type": "color" }, "inserted": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "deleted": { - "value": "#d71c1c", + "value": "#f78c8c", "step": 400, "type": "color" }, "modified": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" } }, "highlight": { "selection": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, "occurrence": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" }, "activeOccurrence": { - "value": "#2327e2", + "value": "#8f90f6", "step": 400, "type": "color" }, @@ -374,12 +374,12 @@ "type": "color" }, "match": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" }, "activeMatch": { - "value": "#72ad19", + "value": "#90df17", "step": 400, "type": "color" }, @@ -408,39 +408,39 @@ "type": "color" }, "comment": { - "value": "#7aba18", + "value": "#bdf36b", "type": "color" }, "keyword": { - "value": "#1588bc", + "value": "#59c3f5", "type": "color" }, "function": { - "value": "#cfa00f", + "value": "#fadc89", "type": "color" }, "type": { - "value": "#17a696", + "value": "#26ebd5", "type": "color" }, "variant": { - "value": "#17a696", + "value": "#26ebd5", "type": "color" }, "property": { - "value": "#148dc4", + "value": "#81d2f8", "type": "color" }, "enum": { - "value": "#1588bc", + "value": "#59c3f5", "type": "color" }, "operator": { - "value": "#1588bc", + "value": "#59c3f5", "type": "color" }, "string": { - "value": "#d66211", + "value": "#fab78b", "type": "color" }, "number": { @@ -455,176 +455,176 @@ "player": { "1": { "baseColor": { - "value": "#195cc8", + "value": "#4287f6", "step": 600, "type": "color" }, "cursorColor": { - "value": "#195cc8", + "value": "#4287f6", "step": 600, "type": "color" }, "selectionColor": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, "borderColor": { - "value": "#195cc8", + "value": "#4287f6", "step": 600, "type": "color" } }, "2": { "baseColor": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" }, "cursorColor": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" }, "selectionColor": { - "value": "#80c517", + "value": "#dbf9ac", "step": 100, "type": "color" }, "borderColor": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" } }, "3": { "baseColor": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" }, "cursorColor": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" }, "selectionColor": { - "value": "#5558ee", + "value": "#d4d5fd", "step": 100, "type": "color" }, "borderColor": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" } }, "4": { "baseColor": { - "value": "#c45c14", + "value": "#f98a3d", "step": 500, "type": "color" }, "cursorColor": { - "value": "#c45c14", + "value": "#f98a3d", "step": 500, "type": "color" }, "selectionColor": { - "value": "#f66e0f", + "value": "#fde0cd", "step": 100, "type": "color" }, "borderColor": { - "value": "#c45c14", + "value": "#f98a3d", "step": 500, "type": "color" } }, "5": { "baseColor": { - "value": "#7d19dc", + "value": "#b671f8", "step": 500, "type": "color" }, "cursorColor": { - "value": "#7d19dc", + "value": "#b671f8", "step": 500, "type": "color" }, "selectionColor": { - "value": "#a048f4", + "value": "#e9d4fd", "step": 100, "type": "color" }, "borderColor": { - "value": "#7d19dc", + "value": "#b671f8", "step": 500, "type": "color" } }, "6": { "baseColor": { - "value": "#17a293", + "value": "#16ddc7", "step": 400, "type": "color" }, "cursorColor": { - "value": "#17a293", + "value": "#16ddc7", "step": 400, "type": "color" }, "selectionColor": { - "value": "#15b3a2", + "value": "#b4faf2", "step": 100, "type": "color" }, "borderColor": { - "value": "#17a293", + "value": "#16ddc7", "step": 400, "type": "color" } }, "7": { "baseColor": { - "value": "#d51e79", + "value": "#f58ac0", "step": 400, "type": "color" }, "cursorColor": { - "value": "#d51e79", + "value": "#f58ac0", "step": 400, "type": "color" }, "selectionColor": { - "value": "#e93d92", + "value": "#fcd4e8", "step": 100, "type": "color" }, "borderColor": { - "value": "#d51e79", + "value": "#f58ac0", "step": 400, "type": "color" } }, "8": { "baseColor": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" }, "cursorColor": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" }, "selectionColor": { - "value": "#e0ac0b", + "value": "#fceabc", "step": 100, "type": "color" }, "borderColor": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" } diff --git a/styles/figma/light.json b/styles/figma/light.json index 415ab40933c5be2c343b8174c95c9e9917e76675..c8ef9e5dcd69332fc33abda730f08b7f7190d574 100644 --- a/styles/figma/light.json +++ b/styles/figma/light.json @@ -29,27 +29,27 @@ "type": "color" }, "feature": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" }, "ok": { - "value": "#1ea650", + "value": "#23d464", "step": 500, "type": "color" }, "error": { - "value": "#cd1c1c", + "value": "#f47171", "step": 500, "type": "color" }, "warning": { - "value": "#b68e14", + "value": "#e5af09", "step": 500, "type": "color" }, "info": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" } @@ -81,27 +81,27 @@ "type": "color" }, "feature": { - "value": "#1780b0", + "value": "#0ea5e8", "step": 600, "type": "color" }, "ok": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "error": { - "value": "#c51c1c", + "value": "#f15252", "step": 600, "type": "color" }, "warning": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" }, "info": { - "value": "#195cc8", + "value": "#4287f6", "step": 600, "type": "color" } @@ -175,88 +175,88 @@ }, "ok": { "base": { - "value": "#21bf5b", + "value": "#befad2", "step": 100, "type": "color" }, "hovered": { - "value": "#21bf5b", + "value": "#befad2", "step": 100, "type": "color" }, "active": { - "value": "#21bf5b", + "value": "#befad2", "step": 100, "type": "color" }, "focused": { - "value": "#21bf5b", + "value": "#befad2", "step": 100, "type": "color" } }, "error": { "base": { - "value": "#ec3939", + "value": "#fdd4d4", "step": 100, "type": "color" }, "hovered": { - "value": "#ec3939", + "value": "#fdd4d4", "step": 100, "type": "color" }, "active": { - "value": "#ec3939", + "value": "#fdd4d4", "step": 100, "type": "color" }, "focused": { - "value": "#ec3939", + "value": "#fdd4d4", "step": 100, "type": "color" } }, "warning": { "base": { - "value": "#e0ac0b", + "value": "#fceabc", "step": 100, "type": "color" }, "hovered": { - "value": "#e0ac0b", + "value": "#fceabc", "step": 100, "type": "color" }, "active": { - "value": "#e0ac0b", + "value": "#fceabc", "step": 100, "type": "color" }, "focused": { - "value": "#e0ac0b", + "value": "#fceabc", "step": 100, "type": "color" } }, "info": { "base": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, "hovered": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, "active": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, "focused": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" } @@ -289,22 +289,22 @@ "type": "color" }, "ok": { - "value": "#20b557", + "value": "#8ff4b2", "step": 200, "type": "color" }, "error": { - "value": "#e72727", + "value": "#fbbdbd", "step": 200, "type": "color" }, "warning": { - "value": "#cfa00f", + "value": "#fadc89", "step": 200, "type": "color" }, "info": { - "value": "#1f6eed", + "value": "#b4cffb", "step": 200, "type": "color" } @@ -337,24 +337,24 @@ "type": "color" }, "inserted": { - "value": "#21bf5b", + "value": "#befad2", "step": 100, "type": "color" }, "deleted": { - "value": "#ec3939", + "value": "#fdd4d4", "step": 100, "type": "color" }, "modified": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" } }, "highlight": { "selection": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, @@ -408,39 +408,39 @@ "type": "color" }, "comment": { - "value": "#7aba18", + "value": "#bdf36b", "type": "color" }, "keyword": { - "value": "#1588bc", + "value": "#59c3f5", "type": "color" }, "function": { - "value": "#cfa00f", + "value": "#fadc89", "type": "color" }, "type": { - "value": "#17a696", + "value": "#26ebd5", "type": "color" }, "variant": { - "value": "#17a696", + "value": "#26ebd5", "type": "color" }, "property": { - "value": "#148dc4", + "value": "#81d2f8", "type": "color" }, "enum": { - "value": "#1588bc", + "value": "#59c3f5", "type": "color" }, "operator": { - "value": "#1588bc", + "value": "#59c3f5", "type": "color" }, "string": { - "value": "#d66211", + "value": "#fab78b", "type": "color" }, "number": { @@ -455,176 +455,176 @@ "player": { "1": { "baseColor": { - "value": "#195cc8", + "value": "#4287f6", "step": 600, "type": "color" }, "cursorColor": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" }, "selectionColor": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, "borderColor": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" } }, "2": { "baseColor": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" }, "cursorColor": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" }, "selectionColor": { - "value": "#80c517", + "value": "#dbf9ac", "step": 100, "type": "color" }, "borderColor": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" } }, "3": { "baseColor": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" }, "cursorColor": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" }, "selectionColor": { - "value": "#5558ee", + "value": "#d4d5fd", "step": 100, "type": "color" }, "borderColor": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" } }, "4": { "baseColor": { - "value": "#c45c14", + "value": "#f98a3d", "step": 500, "type": "color" }, "cursorColor": { - "value": "#c45c14", + "value": "#f98a3d", "step": 500, "type": "color" }, "selectionColor": { - "value": "#f66e0f", + "value": "#fde0cd", "step": 100, "type": "color" }, "borderColor": { - "value": "#c45c14", + "value": "#f98a3d", "step": 500, "type": "color" } }, "5": { "baseColor": { - "value": "#7d19dc", + "value": "#b671f8", "step": 500, "type": "color" }, "cursorColor": { - "value": "#7d19dc", + "value": "#b671f8", "step": 500, "type": "color" }, "selectionColor": { - "value": "#a048f4", + "value": "#e9d4fd", "step": 100, "type": "color" }, "borderColor": { - "value": "#7d19dc", + "value": "#b671f8", "step": 500, "type": "color" } }, "6": { "baseColor": { - "value": "#17a293", + "value": "#16ddc7", "step": 400, "type": "color" }, "cursorColor": { - "value": "#17a293", + "value": "#16ddc7", "step": 400, "type": "color" }, "selectionColor": { - "value": "#15b3a2", + "value": "#b4faf2", "step": 100, "type": "color" }, "borderColor": { - "value": "#17a293", + "value": "#16ddc7", "step": 400, "type": "color" } }, "7": { "baseColor": { - "value": "#d51e79", + "value": "#f58ac0", "step": 400, "type": "color" }, "cursorColor": { - "value": "#d51e79", + "value": "#f58ac0", "step": 400, "type": "color" }, "selectionColor": { - "value": "#e93d92", + "value": "#fcd4e8", "step": 100, "type": "color" }, "borderColor": { - "value": "#d51e79", + "value": "#f58ac0", "step": 400, "type": "color" } }, "8": { "baseColor": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" }, "cursorColor": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" }, "selectionColor": { - "value": "#e0ac0b", + "value": "#fceabc", "step": 100, "type": "color" }, "borderColor": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" } diff --git a/styles/utils/color.ts b/styles/utils/color.ts index c7506f696d4cebd54ebc2045be2b7dc9d14f2c7b..156fc5ba41b2bbf0cfc9dd8080db9bf6cd6c320d 100644 --- a/styles/utils/color.ts +++ b/styles/utils/color.ts @@ -22,8 +22,8 @@ export function colorRamp( .scale([startColor, color, endColor]) .domain([0, 0.5, 1]) .mode("hsl") - .gamma(0.2) - // .correctLightness(true) + .gamma(1) + .correctLightness(true) .padding([0, 0.15]); } From 2d51b103d2c1b25c6d848ff98625dccacf09684c Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sun, 3 Apr 2022 15:03:38 -0400 Subject: [PATCH 29/71] Add a combined `tokens.json` for Figma Tokens - Having individual json files for themes and core is useful for copy+pasting while exploring changes - Figma github sync requires a single json file to pull down --- styles/buildFigmaTokens.ts | 42 +- styles/figma/tokens.json | 2431 ++++++++++++++++++++++++++++++++++++ 2 files changed, 2460 insertions(+), 13 deletions(-) create mode 100644 styles/figma/tokens.json diff --git a/styles/buildFigmaTokens.ts b/styles/buildFigmaTokens.ts index 6b3285e58e24c7f0fefa67a40c512202fdbe4c5b..bb77046e85c53007c272ac791e104b9a908fd80d 100644 --- a/styles/buildFigmaTokens.ts +++ b/styles/buildFigmaTokens.ts @@ -5,8 +5,13 @@ import light from "./themes/light"; import Theme from "./themes/theme"; import { colors, fontFamilies, fontSizes, fontWeights } from "./tokens"; +let themes = [ + dark, + light +]; + // Organize theme tokens -function themeTokens(theme: Theme): Object { +function themeTokens(theme: Theme) { return { meta: { themeName: theme.name, @@ -71,16 +76,6 @@ function themeTokens(theme: Theme): Object { }; } -let themes = [themeTokens(dark), themeTokens(light)]; - -// Create {theme}.json -const themePath = path.resolve(`${__dirname}/figma`); -themes.forEach((theme) => { - const tokenJSON = JSON.stringify(theme, null, 2); - //@ts-ignore //TODO: IDK what the hell TS wants me to do here - fs.writeFileSync(`${themePath}/${theme.meta.themeName}.json`, tokenJSON); -}); - // Organize core tokens const coreTokens = { color: { @@ -93,7 +88,28 @@ const coreTokens = { size: fontSizes, }; +const combinedTokens = { + core: coreTokens, + dark: themeTokens(dark), + light: themeTokens(light) +} + // Create core.json const corePath = path.resolve(`${__dirname}/figma/core.json`); -const coreTokenJSON = JSON.stringify(coreTokens, null, 2); -fs.writeFileSync(corePath, coreTokenJSON); +const coreJSON = JSON.stringify(coreTokens, null, 2); +fs.writeFileSync(corePath, coreJSON); +console.log(`- Core: core.json created`); + +// Create {theme}.json +const themePath = path.resolve(`${__dirname}/figma`); +themes.forEach((theme) => { + const tokenJSON = JSON.stringify(themeTokens(theme), null, 2); + fs.writeFileSync(`${themePath}/${theme.name}.json`, tokenJSON); + console.log(`- Theme: ${theme.name}.json created`); +}); + +// Create combined tokens.json +const combinedPath = path.resolve(`${__dirname}/figma/tokens.json`); +const combinedJSON = JSON.stringify(combinedTokens, null, 2); +fs.writeFileSync(combinedPath, combinedJSON); +console.log(`- Combined: tokens.json created`); \ No newline at end of file diff --git a/styles/figma/tokens.json b/styles/figma/tokens.json new file mode 100644 index 0000000000000000000000000000000000000000..cffc3ed16de7a4dec1fa38fa2026243c81629055 --- /dev/null +++ b/styles/figma/tokens.json @@ -0,0 +1,2431 @@ +{ + "core": { + "color": { + "neutral": { + "0": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "25": { + "value": "#f8f8f8", + "step": 25, + "type": "color" + }, + "50": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "75": { + "value": "#eaeaea", + "step": 75, + "type": "color" + }, + "100": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "125": { + "value": "#dcdcdc", + "step": 125, + "type": "color" + }, + "150": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + }, + "175": { + "value": "#cdcdcd", + "step": 175, + "type": "color" + }, + "200": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "225": { + "value": "#bfbfbf", + "step": 225, + "type": "color" + }, + "250": { + "value": "#b8b8b8", + "step": 250, + "type": "color" + }, + "275": { + "value": "#b1b1b1", + "step": 275, + "type": "color" + }, + "300": { + "value": "#aaaaaa", + "step": 300, + "type": "color" + }, + "325": { + "value": "#a3a3a3", + "step": 325, + "type": "color" + }, + "350": { + "value": "#9c9c9c", + "step": 350, + "type": "color" + }, + "375": { + "value": "#959595", + "step": 375, + "type": "color" + }, + "400": { + "value": "#8e8e8e", + "step": 400, + "type": "color" + }, + "425": { + "value": "#878787", + "step": 425, + "type": "color" + }, + "450": { + "value": "#808080", + "step": 450, + "type": "color" + }, + "475": { + "value": "#787878", + "step": 475, + "type": "color" + }, + "500": { + "value": "#717171", + "step": 500, + "type": "color" + }, + "525": { + "value": "#6a6a6a", + "step": 525, + "type": "color" + }, + "550": { + "value": "#636363", + "step": 550, + "type": "color" + }, + "575": { + "value": "#5c5c5c", + "step": 575, + "type": "color" + }, + "600": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "625": { + "value": "#4e4e4e", + "step": 625, + "type": "color" + }, + "650": { + "value": "#474747", + "step": 650, + "type": "color" + }, + "675": { + "value": "#404040", + "step": 675, + "type": "color" + }, + "700": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "725": { + "value": "#323232", + "step": 725, + "type": "color" + }, + "750": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "775": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "800": { + "value": "#1c1c1c", + "step": 800, + "type": "color" + }, + "825": { + "value": "#151515", + "step": 825, + "type": "color" + }, + "850": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "875": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "900": { + "value": "#000000", + "step": 900, + "type": "color" + } + }, + "rose": { + "0": { + "value": "#feecef", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fdd5db", + "step": 100, + "type": "color" + }, + "200": { + "value": "#fbbdc8", + "step": 200, + "type": "color" + }, + "300": { + "value": "#faa4b3", + "step": 300, + "type": "color" + }, + "400": { + "value": "#f98a9d", + "step": 400, + "type": "color" + }, + "500": { + "value": "#f76e86", + "step": 500, + "type": "color" + }, + "600": { + "value": "#f54c69", + "step": 600, + "type": "color" + }, + "700": { + "value": "#ec2548", + "step": 700, + "type": "color" + }, + "800": { + "value": "#d21939", + "step": 800, + "type": "color" + }, + "900": { + "value": "#b41a35", + "step": 900, + "type": "color" + } + }, + "red": { + "0": { + "value": "#feecec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fdd4d4", + "step": 100, + "type": "color" + }, + "200": { + "value": "#fbbdbd", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f9a5a5", + "step": 300, + "type": "color" + }, + "400": { + "value": "#f78c8c", + "step": 400, + "type": "color" + }, + "500": { + "value": "#f47171", + "step": 500, + "type": "color" + }, + "600": { + "value": "#f15252", + "step": 600, + "type": "color" + }, + "700": { + "value": "#e82c2c", + "step": 700, + "type": "color" + }, + "800": { + "value": "#d11c1c", + "step": 800, + "type": "color" + }, + "900": { + "value": "#b21c1c", + "step": 900, + "type": "color" + } + }, + "orange": { + "0": { + "value": "#fef3ec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fde0cd", + "step": 100, + "type": "color" + }, + "200": { + "value": "#fbccac", + "step": 200, + "type": "color" + }, + "300": { + "value": "#fab78b", + "step": 300, + "type": "color" + }, + "400": { + "value": "#faa266", + "step": 400, + "type": "color" + }, + "500": { + "value": "#f98a3d", + "step": 500, + "type": "color" + }, + "600": { + "value": "#f77113", + "step": 600, + "type": "color" + }, + "700": { + "value": "#e0650f", + "step": 700, + "type": "color" + }, + "800": { + "value": "#c65d14", + "step": 800, + "type": "color" + }, + "900": { + "value": "#ac5517", + "step": 900, + "type": "color" + } + }, + "amber": { + "0": { + "value": "#fef7ec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fce7c4", + "step": 100, + "type": "color" + }, + "200": { + "value": "#fad69d", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f8c570", + "step": 300, + "type": "color" + }, + "400": { + "value": "#f7b241", + "step": 400, + "type": "color" + }, + "500": { + "value": "#f59f0c", + "step": 500, + "type": "color" + }, + "600": { + "value": "#e1930e", + "step": 600, + "type": "color" + }, + "700": { + "value": "#cd8812", + "step": 700, + "type": "color" + }, + "800": { + "value": "#ba7d15", + "step": 800, + "type": "color" + }, + "900": { + "value": "#a77218", + "step": 900, + "type": "color" + } + }, + "yellow": { + "0": { + "value": "#fef9ec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fceabc", + "step": 100, + "type": "color" + }, + "200": { + "value": "#fadc89", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f8cc4e", + "step": 300, + "type": "color" + }, + "400": { + "value": "#f6bc09", + "step": 400, + "type": "color" + }, + "500": { + "value": "#e5af09", + "step": 500, + "type": "color" + }, + "600": { + "value": "#d4a30d", + "step": 600, + "type": "color" + }, + "700": { + "value": "#c49811", + "step": 700, + "type": "color" + }, + "800": { + "value": "#b48d14", + "step": 800, + "type": "color" + }, + "900": { + "value": "#a48117", + "step": 900, + "type": "color" + } + }, + "lime": { + "0": { + "value": "#f7feec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#dbf9ac", + "step": 100, + "type": "color" + }, + "200": { + "value": "#bdf36b", + "step": 200, + "type": "color" + }, + "300": { + "value": "#9feb2b", + "step": 300, + "type": "color" + }, + "400": { + "value": "#90df17", + "step": 400, + "type": "color" + }, + "500": { + "value": "#87d116", + "step": 500, + "type": "color" + }, + "600": { + "value": "#7fc417", + "step": 600, + "type": "color" + }, + "700": { + "value": "#78b618", + "step": 700, + "type": "color" + }, + "800": { + "value": "#70aa19", + "step": 800, + "type": "color" + }, + "900": { + "value": "#699c1a", + "step": 900, + "type": "color" + } + }, + "green": { + "0": { + "value": "#ecfef2", + "step": 0, + "type": "color" + }, + "100": { + "value": "#befad2", + "step": 100, + "type": "color" + }, + "200": { + "value": "#8ff4b2", + "step": 200, + "type": "color" + }, + "300": { + "value": "#60ec92", + "step": 300, + "type": "color" + }, + "400": { + "value": "#34e173", + "step": 400, + "type": "color" + }, + "500": { + "value": "#23d464", + "step": 500, + "type": "color" + }, + "600": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "700": { + "value": "#20b658", + "step": 700, + "type": "color" + }, + "800": { + "value": "#1ea851", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1d9b4b", + "step": 900, + "type": "color" + } + }, + "emerald": { + "0": { + "value": "#ecfef8", + "step": 0, + "type": "color" + }, + "100": { + "value": "#b3fbe3", + "step": 100, + "type": "color" + }, + "200": { + "value": "#72f6ca", + "step": 200, + "type": "color" + }, + "300": { + "value": "#1feda9", + "step": 300, + "type": "color" + }, + "400": { + "value": "#12e09b", + "step": 400, + "type": "color" + }, + "500": { + "value": "#11d091", + "step": 500, + "type": "color" + }, + "600": { + "value": "#11c287", + "step": 600, + "type": "color" + }, + "700": { + "value": "#11b37e", + "step": 700, + "type": "color" + }, + "800": { + "value": "#15a575", + "step": 800, + "type": "color" + }, + "900": { + "value": "#18976c", + "step": 900, + "type": "color" + } + }, + "teal": { + "0": { + "value": "#ecfefc", + "step": 0, + "type": "color" + }, + "100": { + "value": "#b4faf2", + "step": 100, + "type": "color" + }, + "200": { + "value": "#73f4e6", + "step": 200, + "type": "color" + }, + "300": { + "value": "#26ebd5", + "step": 300, + "type": "color" + }, + "400": { + "value": "#16ddc7", + "step": 400, + "type": "color" + }, + "500": { + "value": "#15cfba", + "step": 500, + "type": "color" + }, + "600": { + "value": "#15c1ae", + "step": 600, + "type": "color" + }, + "700": { + "value": "#15b2a1", + "step": 700, + "type": "color" + }, + "800": { + "value": "#17a495", + "step": 800, + "type": "color" + }, + "900": { + "value": "#199788", + "step": 900, + "type": "color" + } + }, + "cyan": { + "0": { + "value": "#ecfcfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#bcf5fc", + "step": 100, + "type": "color" + }, + "200": { + "value": "#86edfa", + "step": 200, + "type": "color" + }, + "300": { + "value": "#41e3f8", + "step": 300, + "type": "color" + }, + "400": { + "value": "#07d5f1", + "step": 400, + "type": "color" + }, + "500": { + "value": "#07c7e1", + "step": 500, + "type": "color" + }, + "600": { + "value": "#07b8d0", + "step": 600, + "type": "color" + }, + "700": { + "value": "#0daabf", + "step": 700, + "type": "color" + }, + "800": { + "value": "#119bae", + "step": 800, + "type": "color" + }, + "900": { + "value": "#168e9e", + "step": 900, + "type": "color" + } + }, + "sky": { + "0": { + "value": "#ecf8fe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#caecfc", + "step": 100, + "type": "color" + }, + "200": { + "value": "#a6defa", + "step": 200, + "type": "color" + }, + "300": { + "value": "#81d2f8", + "step": 300, + "type": "color" + }, + "400": { + "value": "#59c3f5", + "step": 400, + "type": "color" + }, + "500": { + "value": "#2db4f3", + "step": 500, + "type": "color" + }, + "600": { + "value": "#0ea5e8", + "step": 600, + "type": "color" + }, + "700": { + "value": "#1296d1", + "step": 700, + "type": "color" + }, + "800": { + "value": "#1686ba", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1878a4", + "step": 900, + "type": "color" + } + }, + "blue": { + "0": { + "value": "#ecf3fe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "200": { + "value": "#b4cffb", + "step": 200, + "type": "color" + }, + "300": { + "value": "#99befa", + "step": 300, + "type": "color" + }, + "400": { + "value": "#7cacf9", + "step": 400, + "type": "color" + }, + "500": { + "value": "#6099f7", + "step": 500, + "type": "color" + }, + "600": { + "value": "#4287f6", + "step": 600, + "type": "color" + }, + "700": { + "value": "#2774f0", + "step": 700, + "type": "color" + }, + "800": { + "value": "#1762db", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1a55b4", + "step": 900, + "type": "color" + } + }, + "indigo": { + "0": { + "value": "#ececfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#d4d5fd", + "step": 100, + "type": "color" + }, + "200": { + "value": "#bebefb", + "step": 200, + "type": "color" + }, + "300": { + "value": "#a7a8f9", + "step": 300, + "type": "color" + }, + "400": { + "value": "#8f90f6", + "step": 400, + "type": "color" + }, + "500": { + "value": "#777af4", + "step": 500, + "type": "color" + }, + "600": { + "value": "#5f62f0", + "step": 600, + "type": "color" + }, + "700": { + "value": "#464aeb", + "step": 700, + "type": "color" + }, + "800": { + "value": "#292de4", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1d20bb", + "step": 900, + "type": "color" + } + }, + "violet": { + "0": { + "value": "#f1ecfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#e0d5fd", + "step": 100, + "type": "color" + }, + "200": { + "value": "#cfbcfb", + "step": 200, + "type": "color" + }, + "300": { + "value": "#bda4fa", + "step": 300, + "type": "color" + }, + "400": { + "value": "#ad8cf9", + "step": 400, + "type": "color" + }, + "500": { + "value": "#9b73f7", + "step": 500, + "type": "color" + }, + "600": { + "value": "#8959f6", + "step": 600, + "type": "color" + }, + "700": { + "value": "#7540f0", + "step": 700, + "type": "color" + }, + "800": { + "value": "#5e22e7", + "step": 800, + "type": "color" + }, + "900": { + "value": "#4c1bbc", + "step": 900, + "type": "color" + } + }, + "purple": { + "0": { + "value": "#f5ecfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#e9d4fd", + "step": 100, + "type": "color" + }, + "200": { + "value": "#dcbcfc", + "step": 200, + "type": "color" + }, + "300": { + "value": "#d0a4fa", + "step": 300, + "type": "color" + }, + "400": { + "value": "#c38bf9", + "step": 400, + "type": "color" + }, + "500": { + "value": "#b671f8", + "step": 500, + "type": "color" + }, + "600": { + "value": "#a856f7", + "step": 600, + "type": "color" + }, + "700": { + "value": "#9739f1", + "step": 700, + "type": "color" + }, + "800": { + "value": "#831ae6", + "step": 800, + "type": "color" + }, + "900": { + "value": "#6d1bbb", + "step": 900, + "type": "color" + } + }, + "fuschia": { + "0": { + "value": "#fdecfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fad4fc", + "step": 100, + "type": "color" + }, + "200": { + "value": "#f6bbfa", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f1a2f7", + "step": 300, + "type": "color" + }, + "400": { + "value": "#ec8af3", + "step": 400, + "type": "color" + }, + "500": { + "value": "#e56fee", + "step": 500, + "type": "color" + }, + "600": { + "value": "#dd51e7", + "step": 600, + "type": "color" + }, + "700": { + "value": "#d32edf", + "step": 700, + "type": "color" + }, + "800": { + "value": "#bc21c8", + "step": 800, + "type": "color" + }, + "900": { + "value": "#a41ead", + "step": 900, + "type": "color" + } + }, + "pink": { + "0": { + "value": "#feecf5", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fcd4e8", + "step": 100, + "type": "color" + }, + "200": { + "value": "#fbbcdb", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f8a5ce", + "step": 300, + "type": "color" + }, + "400": { + "value": "#f58ac0", + "step": 400, + "type": "color" + }, + "500": { + "value": "#f26fb0", + "step": 500, + "type": "color" + }, + "600": { + "value": "#ee519e", + "step": 600, + "type": "color" + }, + "700": { + "value": "#e52e89", + "step": 700, + "type": "color" + }, + "800": { + "value": "#ce1e76", + "step": 800, + "type": "color" + }, + "900": { + "value": "#b21d67", + "step": 900, + "type": "color" + } + } + }, + "text": { + "family": { + "sans": { + "value": "Zed Sans", + "type": "fontFamily" + }, + "mono": { + "value": "Zed Mono", + "type": "fontFamily" + } + }, + "weight": { + "thin": { + "value": "thin", + "type": "fontWeight" + }, + "extra_light": { + "value": "extra_light", + "type": "fontWeight" + }, + "light": { + "value": "light", + "type": "fontWeight" + }, + "normal": { + "value": "normal", + "type": "fontWeight" + }, + "medium": { + "value": "medium", + "type": "fontWeight" + }, + "semibold": { + "value": "semibold", + "type": "fontWeight" + }, + "bold": { + "value": "bold", + "type": "fontWeight" + }, + "extra_bold": { + "value": "extra_bold", + "type": "fontWeight" + }, + "black": { + "value": "black", + "type": "fontWeight" + } + } + }, + "size": { + "3xs": { + "value": 8, + "type": "fontSize" + }, + "2xs": { + "value": 10, + "type": "fontSize" + }, + "xs": { + "value": 12, + "type": "fontSize" + }, + "sm": { + "value": 14, + "type": "fontSize" + }, + "md": { + "value": 16, + "type": "fontSize" + }, + "lg": { + "value": 18, + "type": "fontSize" + }, + "xl": { + "value": 20, + "type": "fontSize" + } + } + }, + "dark": { + "meta": { + "themeName": "dark" + }, + "text": { + "primary": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "secondary": { + "value": "#9c9c9c", + "step": 350, + "type": "color" + }, + "muted": { + "value": "#636363", + "step": 550, + "type": "color" + }, + "placeholder": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "active": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "feature": { + "value": "#2db4f3", + "step": 500, + "type": "color" + }, + "ok": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "error": { + "value": "#f78c8c", + "step": 400, + "type": "color" + }, + "warning": { + "value": "#f8c570", + "step": 300, + "type": "color" + }, + "info": { + "value": "#6099f7", + "step": 500, + "type": "color" + } + }, + "icon": { + "primary": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "secondary": { + "value": "#9c9c9c", + "step": 350, + "type": "color" + }, + "muted": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "placeholder": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "active": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "feature": { + "value": "#2db4f3", + "step": 500, + "type": "color" + }, + "ok": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "error": { + "value": "#f47171", + "step": 500, + "type": "color" + }, + "warning": { + "value": "#f7b241", + "step": 400, + "type": "color" + }, + "info": { + "value": "#4287f6", + "step": 600, + "type": "color" + } + }, + "background": { + "100": { + "base": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "hovered": { + "value": "#323232", + "step": 725, + "type": "color" + }, + "active": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "focused": { + "value": "#404040", + "step": 675, + "type": "color" + } + }, + "300": { + "base": { + "value": "#1c1c1c", + "step": 800, + "type": "color" + }, + "hovered": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "active": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "focused": { + "value": "#323232", + "step": 725, + "type": "color" + } + }, + "500": { + "base": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "hovered": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "active": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "focused": { + "value": "#151515", + "step": 825, + "type": "color" + } + }, + "ok": { + "base": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "hovered": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "active": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "focused": { + "value": "#22c55e", + "step": 600, + "type": "color" + } + }, + "error": { + "base": { + "value": "#f78c8c", + "step": 400, + "type": "color" + }, + "hovered": { + "value": "#f78c8c", + "step": 400, + "type": "color" + }, + "active": { + "value": "#f78c8c", + "step": 400, + "type": "color" + }, + "focused": { + "value": "#f78c8c", + "step": 400, + "type": "color" + } + }, + "warning": { + "base": { + "value": "#f8c570", + "step": 300, + "type": "color" + }, + "hovered": { + "value": "#f8c570", + "step": 300, + "type": "color" + }, + "active": { + "value": "#f8c570", + "step": 300, + "type": "color" + }, + "focused": { + "value": "#f8c570", + "step": 300, + "type": "color" + } + }, + "info": { + "base": { + "value": "#6099f7", + "step": 500, + "type": "color" + }, + "hovered": { + "value": "#6099f7", + "step": 500, + "type": "color" + }, + "active": { + "value": "#6099f7", + "step": 500, + "type": "color" + }, + "focused": { + "value": "#6099f7", + "step": 500, + "type": "color" + } + } + }, + "border": { + "primary": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "secondary": { + "value": "#151515", + "step": 825, + "type": "color" + }, + "muted": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "focused": { + "value": "#717171", + "step": 500, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "ok": { + "value": "#23d464", + "step": 500, + "type": "color" + }, + "error": { + "value": "#f47171", + "step": 500, + "type": "color" + }, + "warning": { + "value": "#f59f0c", + "step": 500, + "type": "color" + }, + "info": { + "value": "#6099f7", + "step": 500, + "type": "color" + } + }, + "editor": { + "background": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "indent_guide": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "indent_guide_active": { + "value": "#151515", + "step": 825, + "type": "color" + }, + "line": { + "active": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "highlighted": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "inserted": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "deleted": { + "value": "#f78c8c", + "step": 400, + "type": "color" + }, + "modified": { + "value": "#6099f7", + "step": 500, + "type": "color" + } + }, + "highlight": { + "selection": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "occurrence": { + "value": "#777af4", + "step": 500, + "type": "color" + }, + "activeOccurrence": { + "value": "#8f90f6", + "step": 400, + "type": "color" + }, + "matchingBracket": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "match": { + "value": "#87d116", + "step": 500, + "type": "color" + }, + "activeMatch": { + "value": "#90df17", + "step": 400, + "type": "color" + }, + "related": { + "value": "#151515", + "step": 825, + "type": "color" + } + }, + "gutter": { + "primary": { + "value": "#636363", + "step": 550, + "type": "color" + }, + "active": { + "value": "#ffffff", + "step": 0, + "type": "color" + } + } + }, + "syntax": { + "primary": { + "value": "#f1f1f1", + "type": "color" + }, + "comment": { + "value": "#bdf36b", + "type": "color" + }, + "keyword": { + "value": "#59c3f5", + "type": "color" + }, + "function": { + "value": "#fadc89", + "type": "color" + }, + "type": { + "value": "#26ebd5", + "type": "color" + }, + "variant": { + "value": "#26ebd5", + "type": "color" + }, + "property": { + "value": "#81d2f8", + "type": "color" + }, + "enum": { + "value": "#59c3f5", + "type": "color" + }, + "operator": { + "value": "#59c3f5", + "type": "color" + }, + "string": { + "value": "#fab78b", + "type": "color" + }, + "number": { + "value": "#d5d5d5", + "type": "color" + }, + "boolean": { + "value": "#d5d5d5", + "type": "color" + } + }, + "player": { + "1": { + "baseColor": { + "value": "#4287f6", + "step": 600, + "type": "color" + }, + "cursorColor": { + "value": "#4287f6", + "step": 600, + "type": "color" + }, + "selectionColor": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#4287f6", + "step": 600, + "type": "color" + } + }, + "2": { + "baseColor": { + "value": "#87d116", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#87d116", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#dbf9ac", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#87d116", + "step": 500, + "type": "color" + } + }, + "3": { + "baseColor": { + "value": "#777af4", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#777af4", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#d4d5fd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#777af4", + "step": 500, + "type": "color" + } + }, + "4": { + "baseColor": { + "value": "#f98a3d", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#f98a3d", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#fde0cd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#f98a3d", + "step": 500, + "type": "color" + } + }, + "5": { + "baseColor": { + "value": "#b671f8", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#b671f8", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#e9d4fd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#b671f8", + "step": 500, + "type": "color" + } + }, + "6": { + "baseColor": { + "value": "#16ddc7", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#16ddc7", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#b4faf2", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#16ddc7", + "step": 400, + "type": "color" + } + }, + "7": { + "baseColor": { + "value": "#f58ac0", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#f58ac0", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#fcd4e8", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#f58ac0", + "step": 400, + "type": "color" + } + }, + "8": { + "baseColor": { + "value": "#f6bc09", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#f6bc09", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#fceabc", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#f6bc09", + "step": 400, + "type": "color" + } + } + }, + "shadowAlpha": { + "value": 0.32, + "type": "number" + } + }, + "light": { + "meta": { + "themeName": "light" + }, + "text": { + "primary": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "secondary": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "muted": { + "value": "#808080", + "step": 450, + "type": "color" + }, + "placeholder": { + "value": "#aaaaaa", + "step": 300, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "feature": { + "value": "#6099f7", + "step": 500, + "type": "color" + }, + "ok": { + "value": "#23d464", + "step": 500, + "type": "color" + }, + "error": { + "value": "#f47171", + "step": 500, + "type": "color" + }, + "warning": { + "value": "#e5af09", + "step": 500, + "type": "color" + }, + "info": { + "value": "#6099f7", + "step": 500, + "type": "color" + } + }, + "icon": { + "primary": { + "value": "#aaaaaa", + "step": 300, + "type": "color" + }, + "secondary": { + "value": "#717171", + "step": 500, + "type": "color" + }, + "muted": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "placeholder": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "feature": { + "value": "#0ea5e8", + "step": 600, + "type": "color" + }, + "ok": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "error": { + "value": "#f15252", + "step": 600, + "type": "color" + }, + "warning": { + "value": "#f6bc09", + "step": 400, + "type": "color" + }, + "info": { + "value": "#4287f6", + "step": 600, + "type": "color" + } + }, + "background": { + "100": { + "base": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + }, + "active": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "focused": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + } + }, + "300": { + "base": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "hovered": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "active": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + }, + "focused": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + } + }, + "500": { + "base": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "hovered": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "active": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + } + }, + "ok": { + "base": { + "value": "#befad2", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#befad2", + "step": 100, + "type": "color" + }, + "active": { + "value": "#befad2", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#befad2", + "step": 100, + "type": "color" + } + }, + "error": { + "base": { + "value": "#fdd4d4", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#fdd4d4", + "step": 100, + "type": "color" + }, + "active": { + "value": "#fdd4d4", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#fdd4d4", + "step": 100, + "type": "color" + } + }, + "warning": { + "base": { + "value": "#fceabc", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#fceabc", + "step": 100, + "type": "color" + }, + "active": { + "value": "#fceabc", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#fceabc", + "step": 100, + "type": "color" + } + }, + "info": { + "base": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "active": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + } + } + }, + "border": { + "primary": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "secondary": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "muted": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "focused": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "active": { + "value": "#b8b8b8", + "step": 250, + "type": "color" + }, + "ok": { + "value": "#8ff4b2", + "step": 200, + "type": "color" + }, + "error": { + "value": "#fbbdbd", + "step": 200, + "type": "color" + }, + "warning": { + "value": "#fadc89", + "step": 200, + "type": "color" + }, + "info": { + "value": "#b4cffb", + "step": 200, + "type": "color" + } + }, + "editor": { + "background": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "indent_guide": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "indent_guide_active": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "line": { + "active": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "highlighted": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "inserted": { + "value": "#befad2", + "step": 100, + "type": "color" + }, + "deleted": { + "value": "#fdd4d4", + "step": 100, + "type": "color" + }, + "modified": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + } + }, + "highlight": { + "selection": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "occurrence": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "activeOccurrence": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "matchingBracket": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "match": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "activeMatch": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "related": { + "value": "#ffffff", + "step": 0, + "type": "color" + } + }, + "gutter": { + "primary": { + "value": "#808080", + "step": 450, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + } + } + }, + "syntax": { + "primary": { + "value": "#2b2b2b", + "type": "color" + }, + "comment": { + "value": "#bdf36b", + "type": "color" + }, + "keyword": { + "value": "#59c3f5", + "type": "color" + }, + "function": { + "value": "#fadc89", + "type": "color" + }, + "type": { + "value": "#26ebd5", + "type": "color" + }, + "variant": { + "value": "#26ebd5", + "type": "color" + }, + "property": { + "value": "#81d2f8", + "type": "color" + }, + "enum": { + "value": "#59c3f5", + "type": "color" + }, + "operator": { + "value": "#59c3f5", + "type": "color" + }, + "string": { + "value": "#fab78b", + "type": "color" + }, + "number": { + "value": "#d5d5d5", + "type": "color" + }, + "boolean": { + "value": "#d5d5d5", + "type": "color" + } + }, + "player": { + "1": { + "baseColor": { + "value": "#4287f6", + "step": 600, + "type": "color" + }, + "cursorColor": { + "value": "#6099f7", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#6099f7", + "step": 500, + "type": "color" + } + }, + "2": { + "baseColor": { + "value": "#87d116", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#87d116", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#dbf9ac", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#87d116", + "step": 500, + "type": "color" + } + }, + "3": { + "baseColor": { + "value": "#777af4", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#777af4", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#d4d5fd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#777af4", + "step": 500, + "type": "color" + } + }, + "4": { + "baseColor": { + "value": "#f98a3d", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#f98a3d", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#fde0cd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#f98a3d", + "step": 500, + "type": "color" + } + }, + "5": { + "baseColor": { + "value": "#b671f8", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#b671f8", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#e9d4fd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#b671f8", + "step": 500, + "type": "color" + } + }, + "6": { + "baseColor": { + "value": "#16ddc7", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#16ddc7", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#b4faf2", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#16ddc7", + "step": 400, + "type": "color" + } + }, + "7": { + "baseColor": { + "value": "#f58ac0", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#f58ac0", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#fcd4e8", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#f58ac0", + "step": 400, + "type": "color" + } + }, + "8": { + "baseColor": { + "value": "#f6bc09", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#f6bc09", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#fceabc", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#f6bc09", + "step": 400, + "type": "color" + } + } + }, + "shadowAlpha": { + "value": 0.12, + "type": "number" + } + } +} \ No newline at end of file From b6f85e4895d79bb94cb2b6a2bd0333df4a6c5d77 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sun, 3 Apr 2022 21:15:14 -0400 Subject: [PATCH 30/71] Update dark, light themes. --- crates/zed/assets/themes/dark.json | 130 +++++++++++++++---------- crates/zed/assets/themes/light.json | 142 +++++++++++++++++----------- styles/styleTree/editor.ts | 20 +++- styles/styleTree/workspace.ts | 2 +- styles/themes/dark.ts | 48 +++++----- styles/themes/light.ts | 38 ++++---- styles/utils/color.ts | 6 +- 7 files changed, 228 insertions(+), 158 deletions(-) diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json index da7fa4650ee609d46ce2eacf5dcf8eb4a3f8088c..1334a65727f8d099b5bc363fd0e432ef828808ba 100644 --- a/crates/zed/assets/themes/dark.json +++ b/crates/zed/assets/themes/dark.json @@ -18,7 +18,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#2db4f3", + "color": "#1096d3", "weight": "bold", "size": 14 } @@ -38,7 +38,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#2db4f3", + "color": "#1096d3", "weight": "bold", "size": 14 }, @@ -70,8 +70,8 @@ "size": 14 }, "selection": { - "cursor": "#4287f6", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#103063" }, "text": { "family": "Zed Mono", @@ -111,8 +111,8 @@ "background": "#1c1c1c", "icon_close": "#555555", "icon_close_active": "#ffffff", - "icon_conflict": "#f7b241", - "icon_dirty": "#4287f6", + "icon_conflict": "#f6a724", + "icon_dirty": "#135acd", "icon_width": 8, "spacing": 10, "text": { @@ -137,8 +137,8 @@ "background": "#000000", "icon_close": "#555555", "icon_close_active": "#ffffff", - "icon_conflict": "#f7b241", - "icon_dirty": "#4287f6", + "icon_conflict": "#f6a724", + "icon_dirty": "#135acd", "icon_width": 8, "spacing": 10, "text": { @@ -289,7 +289,7 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#f7bb57", "size": 13 } }, @@ -297,7 +297,7 @@ "height": 34, "background": "#000000", "border": { - "color": "#070707", + "color": "#151515", "width": 1, "bottom": true }, @@ -325,54 +325,54 @@ } }, "editor": { - "text_color": "#f1f1f1", + "text_color": "#d5d5d5", "background": "#000000", "active_line_background": "#0e0e0e", "code_actions_indicator": "#9c9c9c", - "diff_background_deleted": "#f78c8c", - "diff_background_inserted": "#22c55e", - "document_highlight_read_background": "#777af4", - "document_highlight_write_background": "#777af4", - "error_color": "#f78c8c", + "diff_background_deleted": "#f15656", + "diff_background_inserted": "#1b9447", + "document_highlight_read_background": "#2b2b2b", + "document_highlight_write_background": "#2b2b2b", + "error_color": "#f15656", "gutter_background": "#000000", - "gutter_padding_factor": 2.5, + "gutter_padding_factor": 3.5, "highlighted_line_background": "#070707", "line_number": "#636363", "line_number_active": "#ffffff", "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { - "cursor": "#4287f6", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#103063" }, "guest_selections": [ { - "cursor": "#87d116", - "selection": "#dbf9ac" + "cursor": "#79ba16", + "selection": "#38530f" }, { - "cursor": "#777af4", - "selection": "#d4d5fd" + "cursor": "#484bed", + "selection": "#121269" }, { - "cursor": "#f98a3d", - "selection": "#fde0cd" + "cursor": "#ee670a", + "selection": "#5d2f0e" }, { - "cursor": "#b671f8", - "selection": "#e9d4fd" + "cursor": "#993bf3", + "selection": "#3e1169" }, { - "cursor": "#16ddc7", - "selection": "#b4faf2" + "cursor": "#16d6c1", + "selection": "#0e4f48" }, { - "cursor": "#f58ac0", - "selection": "#fcd4e8" + "cursor": "#ef59a3", + "selection": "#fbc6e1" }, { - "cursor": "#f6bc09", - "selection": "#fceabc" + "cursor": "#f7bf17", + "selection": "#fce9b7" } ], "autocomplete": { @@ -406,7 +406,7 @@ "left": -14 }, "match_highlight": { - "color": "#59c3f5", + "color": "#4f8ff7", "weight": "normal" }, "selected_item": { @@ -481,12 +481,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#f78c8c", + "color": "#f15656", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#f78c8c", + "color": "#f15656", "size": 14, "weight": "bold" } @@ -504,12 +504,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#f7bb57", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#f7bb57", "size": 14, "weight": "bold" } @@ -527,12 +527,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14, "weight": "bold" } @@ -550,12 +550,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14, "weight": "bold" } @@ -653,7 +653,35 @@ } } }, - "syntax": {} + "syntax": { + "keyword": "#4f8ff7", + "function": "#f9da82", + "string": "#f99d5f", + "type": "#3eeeda", + "number": "#aeef4b", + "comment": "#aaaaaa", + "property": "#4f8ff7", + "variant": "#53c1f5", + "constant": "#d5d5d5", + "title": { + "color": "#de900c", + "weight": "bold" + }, + "emphasis": "#1096d3", + "emphasis_strong": { + "color": "#1096d3", + "weight": "bold" + }, + "link_uri": { + "color": "#79ba16", + "underline": true + }, + "link_text": { + "color": "#ee670a", + "italic": true + }, + "list_marker": "#20b0f2" + } }, "project_diagnostics": { "tab_icon_spacing": 4, @@ -929,8 +957,8 @@ "size": 14 }, "selection": { - "cursor": "#4287f6", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#103063" }, "border": { "color": "#151515", @@ -1067,7 +1095,7 @@ } }, "search": { - "match_background": "#87d116", + "match_background": "#0a2633", "tab_icon_spacing": 4, "tab_icon_width": 14, "active_hovered_option_button": { @@ -1123,8 +1151,8 @@ "size": 16 }, "selection": { - "cursor": "#4287f6", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#103063" }, "text": { "family": "Zed Mono", @@ -1177,8 +1205,8 @@ "size": 16 }, "selection": { - "cursor": "#4287f6", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#103063" }, "text": { "family": "Zed Mono", @@ -1186,7 +1214,7 @@ "size": 16 }, "border": { - "color": "#f47171", + "color": "#eb2d2d", "width": 1 }, "margin": { diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json index dcff3352f75703a64030db29cde7797dd038c432..283b3b10b32e3886fe15736e8e6d9cbb7091e3a5 100644 --- a/crates/zed/assets/themes/light.json +++ b/crates/zed/assets/themes/light.json @@ -18,7 +18,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "weight": "bold", "size": 14 } @@ -38,7 +38,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "weight": "bold", "size": 14 }, @@ -70,8 +70,8 @@ "size": 14 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#c5dafc" }, "text": { "family": "Zed Mono", @@ -111,8 +111,8 @@ "background": "#f1f1f1", "icon_close": "#555555", "icon_close_active": "#000000", - "icon_conflict": "#f6bc09", - "icon_dirty": "#4287f6", + "icon_conflict": "#f7bf17", + "icon_dirty": "#135acd", "icon_width": 8, "spacing": 10, "text": { @@ -137,8 +137,8 @@ "background": "#ffffff", "icon_close": "#555555", "icon_close_active": "#000000", - "icon_conflict": "#f6bc09", - "icon_dirty": "#4287f6", + "icon_conflict": "#f7bf17", + "icon_dirty": "#135acd", "icon_width": 8, "spacing": 10, "text": { @@ -289,7 +289,7 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#e5af09", + "color": "#d3a20b", "size": 13 } }, @@ -297,7 +297,7 @@ "height": 34, "background": "#ffffff", "border": { - "color": "#c6c6c6", + "color": "#e3e3e3", "width": 1, "bottom": true }, @@ -327,52 +327,52 @@ "editor": { "text_color": "#2b2b2b", "background": "#ffffff", - "active_line_background": "#e3e3e3", + "active_line_background": "#f1f1f1", "code_actions_indicator": "#717171", - "diff_background_deleted": "#fdd4d4", - "diff_background_inserted": "#befad2", - "document_highlight_read_background": "#e3e3e3", - "document_highlight_write_background": "#e3e3e3", - "error_color": "#f47171", + "diff_background_deleted": "#fcc6c6", + "diff_background_inserted": "#b7f9ce", + "document_highlight_read_background": "#f1f1f1", + "document_highlight_write_background": "#f1f1f1", + "error_color": "#eb2d2d", "gutter_background": "#ffffff", - "gutter_padding_factor": 2.5, - "highlighted_line_background": "#e3e3e3", - "line_number": "#808080", + "gutter_padding_factor": 3.5, + "highlighted_line_background": "#f1f1f1", + "line_number": "#aaaaaa", "line_number_active": "#000000", "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#c5dafc" }, "guest_selections": [ { - "cursor": "#87d116", - "selection": "#dbf9ac" + "cursor": "#79ba16", + "selection": "#dffab5" }, { - "cursor": "#777af4", - "selection": "#d4d5fd" + "cursor": "#484bed", + "selection": "#cdcdfc" }, { - "cursor": "#f98a3d", - "selection": "#fde0cd" + "cursor": "#ee670a", + "selection": "#fcd6bd" }, { - "cursor": "#b671f8", - "selection": "#e9d4fd" + "cursor": "#993bf3", + "selection": "#e4cbfc" }, { - "cursor": "#16ddc7", - "selection": "#b4faf2" + "cursor": "#16d6c1", + "selection": "#b1faf2" }, { - "cursor": "#f58ac0", - "selection": "#fcd4e8" + "cursor": "#ef59a3", + "selection": "#fbc6e1" }, { - "cursor": "#f6bc09", - "selection": "#fceabc" + "cursor": "#f7bf17", + "selection": "#fce9b7" } ], "autocomplete": { @@ -400,13 +400,13 @@ "right": 6, "top": 2 }, - "background": "#f1f1f1" + "background": "#f8f8f8" }, "margin": { "left": -14 }, "match_highlight": { - "color": "#59c3f5", + "color": "#103063", "weight": "normal" }, "selected_item": { @@ -417,7 +417,7 @@ "right": 6, "top": 2 }, - "background": "#e3e3e3" + "background": "#f1f1f1" } }, "diagnostic_header": { @@ -453,7 +453,7 @@ } }, "diagnostic_path_header": { - "background": "#e3e3e3", + "background": "#f1f1f1", "text_scale_factor": 0.857, "filename": { "family": "Zed Mono", @@ -481,12 +481,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#f47171", + "color": "#eb2d2d", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#f47171", + "color": "#eb2d2d", "size": 14, "weight": "bold" } @@ -504,12 +504,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#e5af09", + "color": "#d3a20b", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#e5af09", + "color": "#d3a20b", "size": 14, "weight": "bold" } @@ -527,12 +527,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14, "weight": "bold" } @@ -550,12 +550,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14, "weight": "bold" } @@ -653,7 +653,35 @@ } } }, - "syntax": {} + "syntax": { + "keyword": "#103063", + "function": "#1b9447", + "string": "#bb550e", + "type": "#138a7d", + "number": "#14a898", + "comment": "#555555", + "property": "#134697", + "variant": "#1179a8", + "constant": "#393939", + "title": { + "color": "#1096d3", + "weight": "bold" + }, + "emphasis": "#2472f2", + "emphasis_strong": { + "color": "#2472f2", + "weight": "bold" + }, + "link_uri": { + "color": "#14a898", + "underline": true + }, + "link_text": { + "color": "#ee670a", + "italic": true + }, + "list_marker": "#20b0f2" + } }, "project_diagnostics": { "tab_icon_spacing": 4, @@ -929,8 +957,8 @@ "size": 14 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#c5dafc" }, "border": { "color": "#e3e3e3", @@ -1022,7 +1050,7 @@ "padding": { "left": 8 }, - "background": "#e3e3e3", + "background": "#f1f1f1", "corner_radius": 6 }, "unshared_project": { @@ -1062,7 +1090,7 @@ "padding": { "left": 8 }, - "background": "#e3e3e3", + "background": "#f1f1f1", "corner_radius": 6 } }, @@ -1123,8 +1151,8 @@ "size": 16 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#c5dafc" }, "text": { "family": "Zed Mono", @@ -1177,8 +1205,8 @@ "size": 16 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#c5dafc" }, "text": { "family": "Zed Mono", @@ -1186,7 +1214,7 @@ "size": 16 }, "border": { - "color": "#fbbdbd", + "color": "#f9a0a0", "width": 1 }, "margin": { diff --git a/styles/styleTree/editor.ts b/styles/styleTree/editor.ts index e760ecec6a57997c48238e0fdeb16d457c2c3e69..23c1e67ac6e6c1dcc75e1d638e760184bfc66e0f 100644 --- a/styles/styleTree/editor.ts +++ b/styles/styleTree/editor.ts @@ -49,7 +49,7 @@ export default function editor(theme: Theme) { documentHighlightWriteBackground: theme.editor.highlight.occurrence.value, errorColor: theme.textColor.error.value, gutterBackground: backgroundColor(theme, 500), - gutterPaddingFactor: 2.5, + gutterPaddingFactor: 3.5, highlightedLineBackground: theme.editor.line.highlighted.value, lineNumber: theme.editor.gutter.primary.value, lineNumberActive: theme.editor.gutter.active.value, @@ -129,7 +129,21 @@ export default function editor(theme: Theme) { invalidInformationDiagnostic: diagnostic(theme, "muted"), invalidWarningDiagnostic: diagnostic(theme, "muted"), syntax: { - - } + keyword: theme.syntax.keyword.color.value, + function: theme.syntax.function.color.value, + string: theme.syntax.string.color.value, + type: theme.syntax.type.color.value, + number: theme.syntax.number.color.value, + comment: theme.syntax.comment.color.value, + property: theme.syntax.property.color.value, + variant: theme.syntax.variant.color.value, + constant: theme.syntax.constant.color.value, + title: { color: theme.syntax.title.color.value, weight: "bold" }, + emphasis: theme.textColor.feature.value, + "emphasis.strong": { color: theme.textColor.feature.value, weight: "bold" }, + link_uri: { color: theme.syntax.linkUrl.color.value, underline: true }, + link_text: { color: theme.syntax.linkText.color.value, italic: true }, + list_marker: theme.syntax.listMarker.color.value, + }, }; } diff --git a/styles/styleTree/workspace.ts b/styles/styleTree/workspace.ts index 4349ba0ab6861080a146e6d25b8be9d6af801d71..030f8edc95e758b574b2df7378acc1bbf498ad3f 100644 --- a/styles/styleTree/workspace.ts +++ b/styles/styleTree/workspace.ts @@ -135,7 +135,7 @@ export default function workspace(theme: Theme) { toolbar: { height: 34, background: backgroundColor(theme, 500), - border: border(theme, "primary", { bottom: true }), + border: border(theme, "secondary", { bottom: true }), itemSpacing: 8, padding: { left: 16, right: 8, top: 4, bottom: 4 }, }, diff --git a/styles/themes/dark.ts b/styles/themes/dark.ts index 3cb3b653b4a6407d197049b0baf1ff72997b02c7..3351d3d3fab34f33e033eb610f701555da34f4b2 100644 --- a/styles/themes/dark.ts +++ b/styles/themes/dark.ts @@ -88,39 +88,39 @@ const iconColor = { const player = { 1: { - baseColor: colors.blue[600], - cursorColor: colors.blue[600], - selectionColor: colors.blue[100], - borderColor: colors.blue[600], + baseColor: colors.blue[500], + cursorColor: colors.blue[500], + selectionColor: colors.blue[800], + borderColor: colors.blue[800], }, 2: { baseColor: colors.lime[500], cursorColor: colors.lime[500], - selectionColor: colors.lime[100], + selectionColor: colors.lime[800], borderColor: colors.lime[500], }, 3: { baseColor: colors.indigo[500], cursorColor: colors.indigo[500], - selectionColor: colors.indigo[100], + selectionColor: colors.indigo[800], borderColor: colors.indigo[500], }, 4: { baseColor: colors.orange[500], cursorColor: colors.orange[500], - selectionColor: colors.orange[100], + selectionColor: colors.orange[800], borderColor: colors.orange[500], }, 5: { baseColor: colors.purple[500], cursorColor: colors.purple[500], - selectionColor: colors.purple[100], + selectionColor: colors.purple[800], borderColor: colors.purple[500], }, 6: { baseColor: colors.teal[400], cursorColor: colors.teal[400], - selectionColor: colors.teal[100], + selectionColor: colors.teal[800], borderColor: colors.teal[400], }, 7: { @@ -151,11 +151,11 @@ const editor = { }, highlight: { selection: player[1].selectionColor, - occurrence: colors.indigo[500], // TODO: Why does indigo[500], indigo[100], and indigo[900] all give me the same color? @kethku - activeOccurrence: colors.indigo[400], // TODO: We don't seem to be using this right now in rust + occurrence: colors.neutral[750], + activeOccurrence: colors.neutral[700], matchingBracket: backgroundColor[500].active, - match: colors.lime[500], - activeMatch: colors.lime[400], + match: colors.sky[900], + activeMatch: colors.sky[800], related: backgroundColor[500].focused, }, gutter: { @@ -166,15 +166,15 @@ const editor = { const syntax: Syntax = { primary: { - color: textColor.primary, + color: colors.neutral[150], weight: fontWeights.normal, }, comment: { - color: colors.lime[200], + color: colors.neutral[300], weight: fontWeights.normal, }, punctuation: { - color: textColor.primary, + color: colors.neutral[200], weight: fontWeights.normal, }, constant: { @@ -182,7 +182,7 @@ const syntax: Syntax = { weight: fontWeights.normal, }, keyword: { - color: colors.sky[400], + color: colors.blue[400], weight: fontWeights.normal, }, function: { @@ -194,19 +194,19 @@ const syntax: Syntax = { weight: fontWeights.normal, }, variant: { - color: colors.teal[300], + color: colors.sky[300], weight: fontWeights.normal, }, property: { - color: colors.sky[300], + color: colors.blue[400], weight: fontWeights.normal, }, enum: { - color: colors.sky[400], + color: colors.orange[500], weight: fontWeights.normal, }, operator: { - color: colors.sky[400], + color: colors.orange[500], weight: fontWeights.normal, }, string: { @@ -214,11 +214,11 @@ const syntax: Syntax = { weight: fontWeights.normal, }, number: { - color: colors.neutral[150], + color: colors.lime[300], weight: fontWeights.normal, }, boolean: { - color: colors.neutral[150], + color: colors.lime[300], weight: fontWeights.normal, }, predictive: { @@ -226,7 +226,7 @@ const syntax: Syntax = { weight: fontWeights.normal, }, title: { - color: colors.sky[500], + color: colors.amber[500], weight: fontWeights.bold, }, emphasis: { diff --git a/styles/themes/light.ts b/styles/themes/light.ts index ee94e18b19869727eae1c973d908ed3202282c77..649fd719a8f75bd47e4c07e8744a4863ae1f5d9f 100644 --- a/styles/themes/light.ts +++ b/styles/themes/light.ts @@ -18,9 +18,9 @@ const backgroundColor = { }, 500: { base: colors.neutral[0], - hovered: colors.neutral[50], - active: colors.neutral[100], - focused: colors.neutral[50], + hovered: colors.neutral[25], + active: colors.neutral[50], + focused: colors.neutral[75], }, ok: { base: colors.green[100], @@ -159,66 +159,66 @@ const editor = { related: colors.neutral[0], }, gutter: { - primary: textColor.muted, + primary: colors.neutral[300], active: textColor.active, }, }; const syntax: Syntax = { primary: { - color: textColor.primary, + color: colors.neutral[750], weight: fontWeights.normal, }, comment: { - color: colors.lime[200], + color: colors.neutral[600], weight: fontWeights.normal, }, punctuation: { - color: textColor.primary, + color: colors.neutral[700], weight: fontWeights.normal, }, constant: { - color: colors.neutral[150], + color: colors.neutral[700], weight: fontWeights.normal, }, keyword: { - color: colors.sky[400], + color: colors.blue[800], weight: fontWeights.normal, }, function: { - color: colors.yellow[200], + color: colors.green[600], weight: fontWeights.normal, }, type: { - color: colors.teal[300], + color: colors.teal[600], weight: fontWeights.normal, }, variant: { - color: colors.teal[300], + color: colors.sky[600], weight: fontWeights.normal, }, property: { - color: colors.sky[300], + color: colors.blue[700], weight: fontWeights.normal, }, enum: { - color: colors.sky[400], + color: colors.orange[600], weight: fontWeights.normal, }, operator: { - color: colors.sky[400], + color: colors.orange[600], weight: fontWeights.normal, }, string: { - color: colors.orange[300], + color: colors.orange[600], weight: fontWeights.normal, }, number: { - color: colors.neutral[150], + color: colors.teal[500], weight: fontWeights.normal, }, boolean: { - color: colors.neutral[150], + color: colors.amber[600], weight: fontWeights.normal, }, predictive: { @@ -238,7 +238,7 @@ const syntax: Syntax = { weight: fontWeights.bold, }, linkUrl: { - color: colors.lime[500], + color: colors.teal[500], weight: fontWeights.normal, // TODO: add underline }, diff --git a/styles/utils/color.ts b/styles/utils/color.ts index 156fc5ba41b2bbf0cfc9dd8080db9bf6cd6c320d..e69d903a431cdef0dc9acdc3f76eb8b535d519f4 100644 --- a/styles/utils/color.ts +++ b/styles/utils/color.ts @@ -17,14 +17,14 @@ export function colorRamp( } else { let hue = Math.round(chroma(color).hsl()[0]); let startColor = chroma.hsl(hue, 0.88, 0.96); - let endColor = chroma.hsl(hue, 0.68, 0.32); + let endColor = chroma.hsl(hue, 0.68, 0.12); scale = chroma .scale([startColor, color, endColor]) .domain([0, 0.5, 1]) .mode("hsl") .gamma(1) - .correctLightness(true) - .padding([0, 0.15]); + // .correctLightness(true) + .padding([0, 0]); } const ramp: ColorRamp = {}; From 2aebb04a8482e842daf018dfec8c7f0edc9fa6a6 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Tue, 29 Mar 2022 13:08:00 -0600 Subject: [PATCH 31/71] Start on TypeScript-based styling system Co-Authored-By: Nate Butler <1714999+iamnbutler@users.noreply.github.com> --- .gitignore | 1 + styles/app.ts | 632 +++++++++++++++++++++++++++++++++++++++ styles/components.ts | 62 ++++ styles/core.ts | 38 +++ styles/package-lock.json | 28 ++ styles/package.json | 14 + styles/selector-modal.ts | 59 ++++ styles/theme.ts | 121 ++++++++ 8 files changed, 955 insertions(+) create mode 100644 styles/app.ts create mode 100644 styles/components.ts create mode 100644 styles/core.ts create mode 100644 styles/package-lock.json create mode 100644 styles/package.json create mode 100644 styles/selector-modal.ts create mode 100644 styles/theme.ts diff --git a/.gitignore b/.gitignore index e88434ce4e718285669691175d297842a3b16b33..140053fc2c507f788748b43136b1eaa5c52680da 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /zed.xcworkspace .DS_Store /script/node_modules +/styles/node_modules /crates/server/.env.toml /crates/server/static/styles.css /vendor/bin diff --git a/styles/app.ts b/styles/app.ts new file mode 100644 index 0000000000000000000000000000000000000000..a7ae4348bea1d2e0861d0d4a957cd6eb7a3c7adf --- /dev/null +++ b/styles/app.ts @@ -0,0 +1,632 @@ +import { selectorModal } from "./selector-modal"; +import Theme from "./theme"; + +export default function app(theme: Theme): Object { + return { + selector: selectorModal(theme), + workspace: { + background: "$surface.500", + leaderBorderOpacity: 0.7, + leader_border_width: 2.0, + active_tab: { + background: "$surface.300", + extends: "$workspace.tab", + text: "$text.primary", + border: { + bottom: false, + }, + }, + left_sidebar: { + extends: "$workspace.sidebar", + border: { + color: "$border.primary", + right: true, + width: 1, + }, + }, + pane_divider: { + color: "$border.primary", + width: 1, + }, + right_sidebar: { + extends: "$workspace.sidebar", + border: { + color: "$border.primary", + left: true, + width: 1, + }, + }, + sidebar: { + width: 30, + active_item: { + extends: "$workspace.sidebar.item", + icon_color: "$text.primary.color", + }, + border: { + color: "$border.primary", + right: true, + width: 1, + }, + item: { + height: "$workspace.tab.height", + icon_color: "$text.muted.color", + icon_size: 18, + }, + resize_handle: { + background: "$border.primary", + padding: { + left: 1, + }, + }, + }, + status_bar: { + cursor_position: "$text.muted", + diagnostic_message: "$text.muted", + height: 24, + item_spacing: 8, + lsp_message: "$text.muted", + padding: { + left: 6, + right: 6, + }, + }, + tab: { + height: 34, + icon_close: "$text.muted.color", + icon_close_active: "$text.primary.color", + icon_conflict: "$status.warn", + icon_dirty: "$status.info", + icon_width: 8, + spacing: 10, + text: "$text.muted", + border: { + bottom: true, + color: "$border.primary", + left: true, + overlay: true, + width: 1, + }, + padding: { + left: 12, + right: 12, + }, + }, + titlebar: { + avatar_width: 18, + height: 32, + share_icon_active_color: "$text.primary.color", + share_icon_color: "$text.muted.color", + title: "$text.primary", + avatar: { + corner_radius: 10, + border: { + color: "#00000088", + width: 1, + }, + }, + avatar_ribbon: { + background: "#ff0000", + height: 3, + width: 12, + }, + border: { + bottom: true, + color: "$border.primary", + width: 1, + }, + hovered_sign_in_prompt: { + color: "$text.secondary.color", + extends: "$workspace.titlebar.sign_in_prompt", + }, + offline_icon: { + color: "$text.muted.color", + width: 16, + padding: { + right: 4, + }, + }, + outdated_warning: { + extends: "$text.muted", + size: 13, + }, + sign_in_prompt: { + extends: "$text.muted", + size: 13, + underline: true, + padding: { + right: 8, + }, + }, + }, + toolbar: { + height: 44, + }, + }, + chat_panel: { + extends: "$panel", + channel_name: { + extends: "$text.primary", + weight: "bold", + }, + channel_name_hash: { + text: "$text.muted", + padding: { + right: 8, + }, + }, + channel_select: { + active_item: { + extends: "$chat_panel.channel_select.item", + name: "$text.primary", + }, + header: { + extends: "$chat_panel.channel_select.active_item", + padding: { + bottom: 4, + left: 0, + }, + }, + hovered_active_item: { + extends: "$chat_panel.channel_select.hovered_item", + name: "$text.primary", + }, + hovered_item: { + background: "$state.hover", + corner_radius: 6, + extends: "$chat_panel.channel_select.item", + }, + item: { + name: "$text.secondary", + padding: 4, + hash: { + extends: "$text.muted", + margin: { + right: 8, + }, + }, + }, + menu: { + background: "$surface.500", + corner_radius: 6, + padding: 4, + border: { + color: "$border.primary", + width: 1, + }, + shadow: { + blur: 16, + color: "$shadow.0", + offset: [0, 2], + }, + }, + }, + hovered_sign_in_prompt: { + color: "$text.secondary.color", + extends: "$chat_panel.sign_in_prompt", + }, + input_editor: { + background: "$surface.300", + corner_radius: 6, + placeholder_text: "$text.muted", + selection: "$selection.host", + text: "$text.primary", + border: { + color: "$border.primary", + width: 1, + }, + padding: { + bottom: 7, + left: 8, + right: 8, + top: 7, + }, + }, + message: { + body: "$text.secondary", + timestamp: "$text.muted", + padding: { + bottom: 6, + }, + sender: { + extends: "$text.primary", + weight: "bold", + margin: { + right: 8, + }, + }, + }, + pending_message: { + extends: "$chat_panel.message", + body: { + color: "$text.muted.color", + }, + sender: { + color: "$text.muted.color", + }, + timestamp: { + color: "$text.muted.color", + }, + }, + sign_in_prompt: { + extends: "$text.primary", + underline: true, + }, + }, + contacts_panel: { + extends: "$panel", + host_row_height: 28, + tree_branch_color: "$surface.100", + tree_branch_width: 1, + host_avatar: { + corner_radius: 10, + width: 18, + }, + host_username: { + extends: "$text.primary", + padding: { + left: 8, + }, + }, + hovered_shared_project: { + background: "$state.hover", + corner_radius: 6, + extends: "$contacts_panel.shared_project", + }, + hovered_unshared_project: { + background: "$state.hover", + corner_radius: 6, + extends: "$contacts_panel.unshared_project", + }, + project: { + guest_avatar_spacing: 4, + height: 24, + guest_avatar: { + corner_radius: 8, + width: 14, + }, + name: { + extends: "$text.secondary", + margin: { + right: 6, + }, + }, + padding: { + left: 8, + }, + }, + shared_project: { + extends: "$contacts_panel.project", + name: { + color: "$text.primary.color", + }, + }, + unshared_project: { + extends: "$contacts_panel.project", + }, + }, + editor: { + active_line_background: "$state.active_line", + background: "$surface.300", + code_actions_indicator: "$text.muted.color", + diff_background_deleted: "$state.deleted_line", + diff_background_inserted: "$state.inserted_line", + document_highlight_read_background: "#99999920", + document_highlight_write_background: "#99999916", + error_color: "$status.bad", + guest_selections: "$selection.guests", + gutter_background: "$surface.300", + gutter_padding_factor: 2.5, + highlighted_line_background: "$state.highlighted_line", + line_number: "$text.muted.color", + line_number_active: "$text.primary.color", + rename_fade: 0.6, + selection: "$selection.host", + text_color: "$text.secondary.color", + unnecessary_code_fade: 0.5, + autocomplete: { + background: "$surface.100", + corner_radius: 6, + padding: 6, + border: { + color: "$border.secondary", + width: 2, + }, + hovered_item: { + background: "$state.hover", + extends: "$editor.autocomplete.item", + }, + item: { + corner_radius: 6, + padding: { + bottom: 2, + left: 6, + right: 6, + top: 2, + }, + }, + margin: { + left: -14, + }, + match_highlight: { + color: "$editor.syntax.keyword.color", + weight: "$editor.syntax.keyword.weight", + }, + selected_item: { + background: "$state.selected", + extends: "$editor.autocomplete.item", + }, + }, + diagnostic_header: { + background: "$editor.background", + icon_width_factor: 1.5, + text_scale_factor: 0.857, + border: { + bottom: true, + color: "$border.secondary", + top: true, + width: 1, + }, + code: { + extends: "$text.muted", + size: 14, + margin: { + left: 10, + }, + }, + message: { + highlight_text: { + extends: "$text.primary", + size: 14, + weight: "bold", + }, + text: { + extends: "$text.secondary", + size: 14, + }, + }, + }, + diagnostic_path_header: { + background: "$state.active_line", + text_scale_factor: 0.857, + filename: { + extends: "$text.primary", + size: 14, + }, + path: { + extends: "$text.muted", + size: 14, + margin: { + left: 12, + }, + }, + }, + error_diagnostic: { + text_scale_factor: 0.857, + header: { + border: { + color: "$border.primary", + top: true, + width: 1, + }, + }, + message: { + highlight_text: { + color: "$status.bad", + extends: "$text.secondary", + size: 14, + weight: "bold", + }, + text: { + color: "$status.bad", + extends: "$text.secondary", + size: 14, + }, + }, + }, + hint_diagnostic: { + extends: "$editor.error_diagnostic", + message: { + highlight_text: { + color: "$status.info", + }, + text: { + color: "$status.info", + }, + }, + }, + information_diagnostic: { + extends: "$editor.error_diagnostic", + message: { + highlight_text: { + color: "$status.info", + }, + text: { + color: "$status.info", + }, + }, + }, + invalid_error_diagnostic: { + extends: "$editor.error_diagnostic", + message: { + highlight_text: { + color: "$text.muted.color", + }, + text: { + color: "$text.muted.color", + }, + }, + }, + invalid_hint_diagnostic: { + extends: "$editor.hint_diagnostic", + message: { + highlight_text: { + color: "$text.muted.color", + }, + text: { + color: "$text.muted.color", + }, + }, + }, + invalid_information_diagnostic: { + extends: "$editor.information_diagnostic", + message: { + highlight_text: { + color: "$text.muted.color", + }, + text: { + color: "$text.muted.color", + }, + }, + }, + invalid_warning_diagnostic: { + extends: "$editor.warning_diagnostic", + message: { + highlight_text: { + color: "$text.muted.color", + }, + text: { + color: "$text.muted.color", + }, + }, + }, + warning_diagnostic: { + extends: "$editor.error_diagnostic", + message: { + highlight_text: { + color: "$status.warn", + }, + text: { + color: "$status.warn", + }, + }, + }, + }, + project_diagnostics: { + background: "$surface.300", + tab_icon_spacing: 4, + tab_icon_width: 13, + tab_summary_spacing: 10, + empty_message: { + extends: "$text.primary", + size: 18, + }, + status_bar_item: { + extends: "$text.muted", + margin: { + right: 10, + }, + }, + }, + project_panel: { + extends: "$panel", + entry: { + height: 22, + icon_color: "$text.muted.color", + icon_size: 8, + icon_spacing: 8, + text: "$text.secondary", + }, + hovered_entry: { + background: "$state.hover", + extends: "$project_panel.entry", + }, + hovered_selected_entry: { + extends: "$project_panel.hovered_entry", + text: { + extends: "$text.primary", + }, + }, + padding: { + top: 6, + }, + selected_entry: { + extends: "$project_panel.entry", + text: { + extends: "$text.primary", + }, + }, + }, + search: { + background: "$surface.300", + match_background: "$state.highlighted_line", + tab_icon_spacing: 4, + tab_icon_width: 14, + active_hovered_option_button: { + background: "$surface.100", + extends: "$search.option_button", + }, + active_option_button: { + background: "$surface.100", + extends: "$search.option_button", + }, + editor: { + background: "$surface.500", + corner_radius: 6, + max_width: 400, + placeholder_text: "$text.muted", + selection: "$selection.host", + text: "$text.primary", + border: { + color: "$border.primary", + width: 1, + }, + margin: { + bottom: 5, + left: 5, + right: 5, + top: 5, + }, + padding: { + bottom: 3, + left: 13, + right: 13, + top: 3, + }, + }, + hovered_option_button: { + background: "$surface.100", + extends: "$search.option_button", + }, + invalid_editor: { + extends: "$search.editor", + border: { + color: "$status.bad", + width: 1, + }, + }, + match_index: { + extends: "$text.secondary", + padding: 6, + }, + option_button: { + background: "$surface.300", + corner_radius: 6, + extends: "$text.secondary", + border: { + color: "$border.primary", + width: 1, + }, + margin: { + left: 1, + right: 1, + }, + padding: { + bottom: 1, + left: 6, + right: 6, + top: 1, + }, + }, + option_button_group: { + padding: { + left: 2, + right: 2, + }, + }, + results_status: { + extends: "$text.primary", + size: 18, + }, + }, + }; +} diff --git a/styles/components.ts b/styles/components.ts new file mode 100644 index 0000000000000000000000000000000000000000..226d1d9e374274ce82938f85c1a73d0c669a468c --- /dev/null +++ b/styles/components.ts @@ -0,0 +1,62 @@ +import chroma from "chroma-js"; +import core, { Color } from "./core"; +import Theme, { BackgroundColor, Weight } from "./theme"; + +export function text( + theme: Theme, + fontFamily: keyof typeof core.fontFamily, + color: keyof Theme["textColor"], + properties?: { size?: keyof typeof core["fontSize"]; weight?: Weight } +) { + const sizeKey = properties.size || fontFamily === "sans" ? "sm" : "md"; + const size = core.fontSize[sizeKey].value; + + return { + family: core.fontFamily[fontFamily], + color: theme.textColor[color].value, + ...properties, + size, + }; +} + +export function border(theme: Theme, color: keyof Theme["borderColor"]) { + return { + color: theme.borderColor[color].value, + width: 1, + }; +} + +export interface Player { + selection: { + cursor: Color; + selection: Color; + }; +} + +export function player( + theme: Theme, + playerNumber: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 +): Player { + return { + selection: { + cursor: theme.player[playerNumber].cursorColor.value, + selection: theme.player[playerNumber].selectionColor.value, + }, + }; +} + +export function backgroundColor( + theme: Theme, + name: keyof Theme["backgroundColor"], + state?: keyof BackgroundColor +): Color { + return theme.backgroundColor[name][state || "base"].value; +} + +export function shadow(theme) { + return { + blur: 16, + color: chroma("black").alpha(theme.shadowAlpha.value).hex(), + offset: [0, 2], + }; +} diff --git a/styles/core.ts b/styles/core.ts new file mode 100644 index 0000000000000000000000000000000000000000..6c63b2285ea0406363f05938e956029db5cc39dd --- /dev/null +++ b/styles/core.ts @@ -0,0 +1,38 @@ +export type Color = string; + +export default { + fontFamily: { + sans: "Zed Sans", + mono: "Zed Mono", + }, + fontSize: { + "3xs": { + value: "8", + type: "fontSizes", + }, + "2xs": { + value: "10", + type: "fontSizes", + }, + xs: { + value: "12", + type: "fontSizes", + }, + sm: { + value: "14", + type: "fontSizes", + }, + md: { + value: "16", + type: "fontSizes", + }, + lg: { + value: "18", + type: "fontSizes", + }, + xl: { + value: "20", + type: "fontSizes", + }, + }, +}; diff --git a/styles/package-lock.json b/styles/package-lock.json new file mode 100644 index 0000000000000000000000000000000000000000..3abb465628bd5400de8fccf399c5e62025600ab1 --- /dev/null +++ b/styles/package-lock.json @@ -0,0 +1,28 @@ +{ + "name": "styles", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "styles", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "chroma-js": "^2.4.2" + } + }, + "node_modules/chroma-js": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", + "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" + } + }, + "dependencies": { + "chroma-js": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", + "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" + } + } +} diff --git a/styles/package.json b/styles/package.json new file mode 100644 index 0000000000000000000000000000000000000000..92f0546c561f768847c081fca7465d28822798ff --- /dev/null +++ b/styles/package.json @@ -0,0 +1,14 @@ +{ + "name": "styles", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "chroma-js": "^2.4.2" + } +} diff --git a/styles/selector-modal.ts b/styles/selector-modal.ts new file mode 100644 index 0000000000000000000000000000000000000000..f7101c915138e61d6147f4f12e82e58310ae9637 --- /dev/null +++ b/styles/selector-modal.ts @@ -0,0 +1,59 @@ +import { backgroundColor, border, player, shadow, text } from "./components"; +import Theme from "./theme"; + +export function selectorModal(theme: Theme): Object { + const item = { + padding: { + bottom: 4, + left: 16, + right: 16, + top: 4, + }, + cornerRadius: 6, + text: text(theme, "sans", "secondary"), + highlightText: text(theme, "sans", "feature", { weight: "bold" }), + }; + + const activeItem = { + ...item, + background: backgroundColor(theme, 500, "active"), + text: text(theme, "sans", "primary"), + }; + + return { + background: backgroundColor(theme, 500), + cornerRadius: 6, + padding: 8, + item, + activeItem, + border: border(theme, "primary"), + empty: { + text: text(theme, "sans", "muted"), + padding: { + bottom: 4, + left: 16, + right: 16, + top: 8, + }, + }, + inputEditor: { + background: backgroundColor(theme, 300), + corner_radius: 6, + placeholderText: text(theme, "sans", "placeholder"), + selection: player(theme, 1).selection, + text: text(theme, "mono", "primary"), + border: border(theme, "primary"), + padding: { + bottom: 7, + left: 16, + right: 16, + top: 7, + }, + }, + margin: { + bottom: 52, + top: 52, + }, + shadow: shadow(theme), + }; +} diff --git a/styles/theme.ts b/styles/theme.ts new file mode 100644 index 0000000000000000000000000000000000000000..5363a8c01c08697f90fa9a37ffba2c6d50305c5c --- /dev/null +++ b/styles/theme.ts @@ -0,0 +1,121 @@ +export type Color = string; +export type Weight = + | "thin" + | "extra_light" + | "light" + | "normal" + | "medium" + | "semibold" + | "bold" + | "extra_bold" + | "black"; + +interface SyntaxHighlightStyle { + color: { value: Color }; + weight: { value: Weight }; +} + +interface Player { + baseColor: { + value: Color; + }; + cursorColor: { + value: Color; + }; + selectionColor: { + value: Color; + }; + borderColor: { + value: Color; + }; +} + +export interface BackgroundColor { + base: { + value: Color; + }; + hover: { + value: Color; + }; + active: { + value: Color; + }; + focused: { + value: Color; + }; +} + +export default interface Theme { + backgroundColor: { + 100: BackgroundColor; + 300: BackgroundColor; + 500: BackgroundColor; + }; + borderColor: { + primary: { + value: Color; + }; + secondary: { + value: Color; + }; + muted: { + value: Color; + }; + focused: { + value: Color; + }; + active: { + value: Color; + }; + }; + textColor: { + primary: { + value: Color; + }; + secondary: { + value: Color; + }; + muted: { + value: Color; + }; + placeholder: { + value: Color; + }; + active: { + value: Color; + }; + feature: { + value: Color; + }; + }; + syntax: { + primary: SyntaxHighlightStyle; + comment: SyntaxHighlightStyle; + punctuation: SyntaxHighlightStyle; + constant: SyntaxHighlightStyle; + keyword: SyntaxHighlightStyle; + function: SyntaxHighlightStyle; + type: SyntaxHighlightStyle; + variant: SyntaxHighlightStyle; + property: SyntaxHighlightStyle; + enum: SyntaxHighlightStyle; + operator: SyntaxHighlightStyle; + string: SyntaxHighlightStyle; + number: SyntaxHighlightStyle; + boolean: SyntaxHighlightStyle; + predictive: SyntaxHighlightStyle; + }; + player: { + 1: Player; + 2: Player; + 3: Player; + 4: Player; + 5: Player; + 6: Player; + 7: Player; + 8: Player; + }; + shadowAlpha: { + value: number; + }; +} From bfce4a61041e7353492cd5f6ca61d235addb142a Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Tue, 29 Mar 2022 15:33:03 -0400 Subject: [PATCH 32/71] WIP: Add `rose` color tokens to `core.ts` --- styles/core.ts | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/styles/core.ts b/styles/core.ts index 6c63b2285ea0406363f05938e956029db5cc39dd..164b6dba003b391e73717d232fb8b9c94ecbcba2 100644 --- a/styles/core.ts +++ b/styles/core.ts @@ -1,6 +1,51 @@ +import chroma from "chroma-js"; + export type Color = string; +function getColorRamp(colorName, baseColor, steps = 10) { + let hsl = chroma(baseColor).hsl(); + let h = Math.round(hsl[0]); + let lightColor = chroma.hsl(h, 0.88, 0.96).hex(); + let darkColor = chroma.hsl(h, 0.68, 0.32).hex(); + + let ramp = chroma + .scale([lightColor, baseColor, darkColor]) + .domain([0, 0.5, 1]) + .mode("hsl") + .gamma(1) + .correctLightness(true) + .padding([0, 0.15]) + .colors(steps); + + let tokens = {}; + let token = {}; + let colorNumber = 0; + + for (let i = 0; i < steps; i++) { + if (i !== 0) { + colorNumber = i * 100; + } + + token = { + [`${colorName}_${colorNumber}`]: { + value: ramp[i].value, + rootValue: baseColor, + step: i, + type: "color", + }, + }; + + Object.assign(token, tokens); + } + + return tokens; +} + export default { + color: { + rose: getColorRamp("rose", "#F43F5E", 10), + }, + fontFamily: { sans: "Zed Sans", mono: "Zed Mono", From 1f71e742c5834ac08a58e4be014df92d238554c3 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Tue, 29 Mar 2022 17:10:46 -0400 Subject: [PATCH 33/71] WIP: Color WIP --- styles/core.color.ts | 93 ++++++++++++++++++++++++++++++++++++++++++++ styles/core.ts | 45 +-------------------- 2 files changed, 95 insertions(+), 43 deletions(-) create mode 100644 styles/core.color.ts diff --git a/styles/core.color.ts b/styles/core.color.ts new file mode 100644 index 0000000000000000000000000000000000000000..004e7209a2c124bfa74bfaec6d598389e187d9ad --- /dev/null +++ b/styles/core.color.ts @@ -0,0 +1,93 @@ +import chroma from "chroma-js"; + +export type Color = string; + +function returnTokens( + colorName: string, + ramp: Array, // help, have no clue on type here +) { + let tokens = {}; + let token = {}; + let colorNumber = 0; + let increment = 0; + + for (let i = 0; i < ramp.len; i++) { + if (i > 11 ) { + increment = 50; + } else { + increment = 100; + } + + if (i !== 0) { + colorNumber = i * increment; + } + + token = { + [`${colorName}_${colorNumber}`]: { + value: ramp[i].value, + step: i, + type: "color", + }, + }; + + Object.assign(token, tokens); + } + return tokens; +} + +function oneColorRamp( + colorName: string, + baseColor: string, + steps: number = 10 +) { + let hsl = chroma(baseColor).hsl(); + let h = Math.round(hsl[0]); + let lightColor = chroma.hsl(h, 0.88, 0.96).hex(); + let darkColor = chroma.hsl(h, 0.68, 0.32).hex(); + + let ramp = chroma + .scale([lightColor, baseColor, darkColor]) + .domain([0, 0.5, 1]) + .mode("hsl") + .gamma(1) + .correctLightness(true) + .padding([0, 0.15]) + .colors(steps) + .hex(); + + return returnTokens(colorName, ramp); +} + +function colorRamp( + colorName: string, + startColor: string, + endColor: string, + steps: number +) { + let ramp = chroma.scale([startColor, endColor]).mode("hsl").colors(steps).hex(); + + return returnTokens(colorName, ramp); +} + +export default { + color: { + neutral: colorRamp("neutral", "black", "white", 21), // colorName, startColor, endColor, steps + rose: oneColorRamp("rose", "#F43F5EFF"), // colorName, baseColor, steps(optional) + red: oneColorRamp("red", "#EF4444FF"), + orange: oneColorRamp("orange", "#F97316FF"), + amber: oneColorRamp("amber", "#F59E0BFF"), + yellow: oneColorRamp("yellow", "#EAB308FF"), + lime: oneColorRamp("lime", "#84CC16FF"), + green: oneColorRamp("green", "#22C55EFF"), + emerald: oneColorRamp("emerald", "#10B981FF"), + teal: oneColorRamp("teal", "#14B8A6FF"), + cyan: oneColorRamp("cyan", "#06BBD4FF"), + sky: oneColorRamp("sky", "#0EA5E9FF"), + blue: oneColorRamp("blue", "#3B82F6FF"), + indigo: oneColorRamp("indigo", "#6366F1FF"), + violet: oneColorRamp("violet", "#8B5CF6FF"), + purple: oneColorRamp("purple", "#A855F7FF"), + fuschia: oneColorRamp("fuschia", "#D946E4FF"), + pink: oneColorRamp("pink", "#EC4899FF"), + }, +}; diff --git a/styles/core.ts b/styles/core.ts index 164b6dba003b391e73717d232fb8b9c94ecbcba2..6444ef9a1c96b26c85ec5181871005650443ce22 100644 --- a/styles/core.ts +++ b/styles/core.ts @@ -1,50 +1,9 @@ -import chroma from "chroma-js"; +import color from "./core.color"; export type Color = string; -function getColorRamp(colorName, baseColor, steps = 10) { - let hsl = chroma(baseColor).hsl(); - let h = Math.round(hsl[0]); - let lightColor = chroma.hsl(h, 0.88, 0.96).hex(); - let darkColor = chroma.hsl(h, 0.68, 0.32).hex(); - - let ramp = chroma - .scale([lightColor, baseColor, darkColor]) - .domain([0, 0.5, 1]) - .mode("hsl") - .gamma(1) - .correctLightness(true) - .padding([0, 0.15]) - .colors(steps); - - let tokens = {}; - let token = {}; - let colorNumber = 0; - - for (let i = 0; i < steps; i++) { - if (i !== 0) { - colorNumber = i * 100; - } - - token = { - [`${colorName}_${colorNumber}`]: { - value: ramp[i].value, - rootValue: baseColor, - step: i, - type: "color", - }, - }; - - Object.assign(token, tokens); - } - - return tokens; -} - export default { - color: { - rose: getColorRamp("rose", "#F43F5E", 10), - }, + color: color, fontFamily: { sans: "Zed Sans", From 8b33a58076e5a0c2b41a58f2e34d5c9a6ebe5310 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Tue, 29 Mar 2022 16:28:19 -0600 Subject: [PATCH 34/71] Express workspace in terms of new components Co-Authored-By: Nate Butler <1714999+iamnbutler@users.noreply.github.com> --- styles/app.ts | 155 +++------------------------------------ styles/components.ts | 23 +++++- styles/core.color.ts | 93 ----------------------- styles/core.ts | 26 +++++-- styles/lib.ts | 44 +++++++++++ styles/package-lock.json | 11 +++ styles/package.json | 1 + styles/selector-modal.ts | 2 +- styles/theme.ts | 46 ++++++++++++ styles/workspace.ts | 133 +++++++++++++++++++++++++++++++++ 10 files changed, 288 insertions(+), 246 deletions(-) delete mode 100644 styles/core.color.ts create mode 100644 styles/lib.ts create mode 100644 styles/workspace.ts diff --git a/styles/app.ts b/styles/app.ts index a7ae4348bea1d2e0861d0d4a957cd6eb7a3c7adf..4f40577ae9ada410e9cab6c76bfb950660b6b94b 100644 --- a/styles/app.ts +++ b/styles/app.ts @@ -1,147 +1,12 @@ -import { selectorModal } from "./selector-modal"; +import { backgroundColor } from "./components"; +import selectorModal from "./selector-modal"; +import workspace from "./workspace"; import Theme from "./theme"; export default function app(theme: Theme): Object { return { selector: selectorModal(theme), - workspace: { - background: "$surface.500", - leaderBorderOpacity: 0.7, - leader_border_width: 2.0, - active_tab: { - background: "$surface.300", - extends: "$workspace.tab", - text: "$text.primary", - border: { - bottom: false, - }, - }, - left_sidebar: { - extends: "$workspace.sidebar", - border: { - color: "$border.primary", - right: true, - width: 1, - }, - }, - pane_divider: { - color: "$border.primary", - width: 1, - }, - right_sidebar: { - extends: "$workspace.sidebar", - border: { - color: "$border.primary", - left: true, - width: 1, - }, - }, - sidebar: { - width: 30, - active_item: { - extends: "$workspace.sidebar.item", - icon_color: "$text.primary.color", - }, - border: { - color: "$border.primary", - right: true, - width: 1, - }, - item: { - height: "$workspace.tab.height", - icon_color: "$text.muted.color", - icon_size: 18, - }, - resize_handle: { - background: "$border.primary", - padding: { - left: 1, - }, - }, - }, - status_bar: { - cursor_position: "$text.muted", - diagnostic_message: "$text.muted", - height: 24, - item_spacing: 8, - lsp_message: "$text.muted", - padding: { - left: 6, - right: 6, - }, - }, - tab: { - height: 34, - icon_close: "$text.muted.color", - icon_close_active: "$text.primary.color", - icon_conflict: "$status.warn", - icon_dirty: "$status.info", - icon_width: 8, - spacing: 10, - text: "$text.muted", - border: { - bottom: true, - color: "$border.primary", - left: true, - overlay: true, - width: 1, - }, - padding: { - left: 12, - right: 12, - }, - }, - titlebar: { - avatar_width: 18, - height: 32, - share_icon_active_color: "$text.primary.color", - share_icon_color: "$text.muted.color", - title: "$text.primary", - avatar: { - corner_radius: 10, - border: { - color: "#00000088", - width: 1, - }, - }, - avatar_ribbon: { - background: "#ff0000", - height: 3, - width: 12, - }, - border: { - bottom: true, - color: "$border.primary", - width: 1, - }, - hovered_sign_in_prompt: { - color: "$text.secondary.color", - extends: "$workspace.titlebar.sign_in_prompt", - }, - offline_icon: { - color: "$text.muted.color", - width: 16, - padding: { - right: 4, - }, - }, - outdated_warning: { - extends: "$text.muted", - size: 13, - }, - sign_in_prompt: { - extends: "$text.muted", - size: 13, - underline: true, - padding: { - right: 8, - }, - }, - }, - toolbar: { - height: 44, - }, - }, + workspace: workspace(theme), chat_panel: { extends: "$panel", channel_name: { @@ -205,7 +70,7 @@ export default function app(theme: Theme): Object { extends: "$chat_panel.sign_in_prompt", }, input_editor: { - background: "$surface.300", + background: backgroundColor(theme, 300), corner_radius: 6, placeholder_text: "$text.muted", selection: "$selection.host", @@ -306,7 +171,7 @@ export default function app(theme: Theme): Object { }, editor: { active_line_background: "$state.active_line", - background: "$surface.300", + background: backgroundColor(theme, 300), code_actions_indicator: "$text.muted.color", diff_background_deleted: "$state.deleted_line", diff_background_inserted: "$state.inserted_line", @@ -314,7 +179,7 @@ export default function app(theme: Theme): Object { document_highlight_write_background: "#99999916", error_color: "$status.bad", guest_selections: "$selection.guests", - gutter_background: "$surface.300", + gutter_background: backgroundColor(theme, 300), gutter_padding_factor: 2.5, highlighted_line_background: "$state.highlighted_line", line_number: "$text.muted.color", @@ -502,7 +367,7 @@ export default function app(theme: Theme): Object { }, }, project_diagnostics: { - background: "$surface.300", + background: backgroundColor(theme, 300), tab_icon_spacing: 4, tab_icon_width: 13, tab_summary_spacing: 10, @@ -547,7 +412,7 @@ export default function app(theme: Theme): Object { }, }, search: { - background: "$surface.300", + background: backgroundColor(theme, 300), match_background: "$state.highlighted_line", tab_icon_spacing: 4, tab_icon_width: 14, @@ -599,7 +464,7 @@ export default function app(theme: Theme): Object { padding: 6, }, option_button: { - background: "$surface.300", + background: backgroundColor(theme, 300), corner_radius: 6, extends: "$text.secondary", border: { diff --git a/styles/components.ts b/styles/components.ts index 226d1d9e374274ce82938f85c1a73d0c669a468c..9cc58046ffba77646dc07342b1485e0877305f69 100644 --- a/styles/components.ts +++ b/styles/components.ts @@ -1,5 +1,6 @@ import chroma from "chroma-js"; -import core, { Color } from "./core"; +import core from "./core"; +import { Color } from "./lib"; import Theme, { BackgroundColor, Weight } from "./theme"; export function text( @@ -19,13 +20,31 @@ export function text( }; } -export function border(theme: Theme, color: keyof Theme["borderColor"]) { +export interface BorderOptions { + width?: number; + top?: boolean; + bottom?: boolean; + left?: boolean; + right?: boolean; + overlay?: boolean; +} + +export function border( + theme: Theme, + color: keyof Theme["borderColor"], + options?: BorderOptions +) { return { color: theme.borderColor[color].value, width: 1, + ...options, }; } +export function iconColor(theme: Theme, color: keyof Theme["iconColor"]) { + return theme.iconColor[color].value; +} + export interface Player { selection: { cursor: Color; diff --git a/styles/core.color.ts b/styles/core.color.ts deleted file mode 100644 index 004e7209a2c124bfa74bfaec6d598389e187d9ad..0000000000000000000000000000000000000000 --- a/styles/core.color.ts +++ /dev/null @@ -1,93 +0,0 @@ -import chroma from "chroma-js"; - -export type Color = string; - -function returnTokens( - colorName: string, - ramp: Array, // help, have no clue on type here -) { - let tokens = {}; - let token = {}; - let colorNumber = 0; - let increment = 0; - - for (let i = 0; i < ramp.len; i++) { - if (i > 11 ) { - increment = 50; - } else { - increment = 100; - } - - if (i !== 0) { - colorNumber = i * increment; - } - - token = { - [`${colorName}_${colorNumber}`]: { - value: ramp[i].value, - step: i, - type: "color", - }, - }; - - Object.assign(token, tokens); - } - return tokens; -} - -function oneColorRamp( - colorName: string, - baseColor: string, - steps: number = 10 -) { - let hsl = chroma(baseColor).hsl(); - let h = Math.round(hsl[0]); - let lightColor = chroma.hsl(h, 0.88, 0.96).hex(); - let darkColor = chroma.hsl(h, 0.68, 0.32).hex(); - - let ramp = chroma - .scale([lightColor, baseColor, darkColor]) - .domain([0, 0.5, 1]) - .mode("hsl") - .gamma(1) - .correctLightness(true) - .padding([0, 0.15]) - .colors(steps) - .hex(); - - return returnTokens(colorName, ramp); -} - -function colorRamp( - colorName: string, - startColor: string, - endColor: string, - steps: number -) { - let ramp = chroma.scale([startColor, endColor]).mode("hsl").colors(steps).hex(); - - return returnTokens(colorName, ramp); -} - -export default { - color: { - neutral: colorRamp("neutral", "black", "white", 21), // colorName, startColor, endColor, steps - rose: oneColorRamp("rose", "#F43F5EFF"), // colorName, baseColor, steps(optional) - red: oneColorRamp("red", "#EF4444FF"), - orange: oneColorRamp("orange", "#F97316FF"), - amber: oneColorRamp("amber", "#F59E0BFF"), - yellow: oneColorRamp("yellow", "#EAB308FF"), - lime: oneColorRamp("lime", "#84CC16FF"), - green: oneColorRamp("green", "#22C55EFF"), - emerald: oneColorRamp("emerald", "#10B981FF"), - teal: oneColorRamp("teal", "#14B8A6FF"), - cyan: oneColorRamp("cyan", "#06BBD4FF"), - sky: oneColorRamp("sky", "#0EA5E9FF"), - blue: oneColorRamp("blue", "#3B82F6FF"), - indigo: oneColorRamp("indigo", "#6366F1FF"), - violet: oneColorRamp("violet", "#8B5CF6FF"), - purple: oneColorRamp("purple", "#A855F7FF"), - fuschia: oneColorRamp("fuschia", "#D946E4FF"), - pink: oneColorRamp("pink", "#EC4899FF"), - }, -}; diff --git a/styles/core.ts b/styles/core.ts index 6444ef9a1c96b26c85ec5181871005650443ce22..e9e81982e456c0ffe151b83ac36767d62140c6ba 100644 --- a/styles/core.ts +++ b/styles/core.ts @@ -1,10 +1,6 @@ -import color from "./core.color"; - -export type Color = string; +import { colorRamp } from "./lib"; export default { - color: color, - fontFamily: { sans: "Zed Sans", mono: "Zed Mono", @@ -39,4 +35,24 @@ export default { type: "fontSizes", }, }, + color: { + neutral: colorRamp(["black", "white"], { steps: 21, increment: 50 }), + rose: colorRamp("#F43F5EFF"), + red: colorRamp("#EF4444FF"), + orange: colorRamp("#F97316FF"), + amber: colorRamp("#F59E0BFF"), + yellow: colorRamp("#EAB308FF"), + lime: colorRamp("#84CC16FF"), + green: colorRamp("#22C55EFF"), + emerald: colorRamp("#10B981FF"), + teal: colorRamp("#14B8A6FF"), + cyan: colorRamp("#06BBD4FF"), + sky: colorRamp("#0EA5E9FF"), + blue: colorRamp("#3B82F6FF"), + indigo: colorRamp("#6366F1FF"), + violet: colorRamp("#8B5CF6FF"), + purple: colorRamp("#A855F7FF"), + fuschia: colorRamp("#D946E4FF"), + pink: colorRamp("#EC4899FF"), + }, }; diff --git a/styles/lib.ts b/styles/lib.ts new file mode 100644 index 0000000000000000000000000000000000000000..b59f4fa69479a1f886229afe1953284f6626f9d8 --- /dev/null +++ b/styles/lib.ts @@ -0,0 +1,44 @@ +import chroma, { Scale } from "chroma-js"; + +export type Color = string; +export type ColorRampStep = { value: Color; type: "color"; step: number }; +export type ColorRamp = { + [index: number]: ColorRampStep; +}; + +export function colorRamp( + color: Color | [Color, Color], + options?: { steps?: number; increment?: number } +): ColorRamp { + let scale: Scale; + if (Array.isArray(color)) { + const [startColor, endColor] = color; + scale = chroma.scale([startColor, endColor]); + } else { + let hue = Math.round(chroma(color).hsl()[0]); + let startColor = chroma.hsl(hue, 0.88, 0.96); + let endColor = chroma.hsl(hue, 0.68, 0.32); + scale = chroma + .scale([startColor, color, endColor]) + .domain([0, 0.5, 1]) + .mode("hsl") + .gamma(1) + .correctLightness(true) + .padding([0, 0.15]); + } + + const ramp: ColorRamp = {}; + const steps = options?.steps || 10; + const increment = options?.increment || 100; + + scale.colors(steps, "hex").forEach((color, ix) => { + const step = ix * increment; + ramp[step] = { + value: color, + step, + type: "color", + }; + }); + + return ramp; +} diff --git a/styles/package-lock.json b/styles/package-lock.json index 3abb465628bd5400de8fccf399c5e62025600ab1..7b8503bf720d572d64bb9179a78489beaa068cb4 100644 --- a/styles/package-lock.json +++ b/styles/package-lock.json @@ -9,9 +9,15 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "@types/chroma-js": "^2.1.3", "chroma-js": "^2.4.2" } }, + "node_modules/@types/chroma-js": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", + "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" + }, "node_modules/chroma-js": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", @@ -19,6 +25,11 @@ } }, "dependencies": { + "@types/chroma-js": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", + "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" + }, "chroma-js": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", diff --git a/styles/package.json b/styles/package.json index 92f0546c561f768847c081fca7465d28822798ff..c66da8718b6d4f2047cbc4e7580036946dab1fb8 100644 --- a/styles/package.json +++ b/styles/package.json @@ -9,6 +9,7 @@ "author": "", "license": "ISC", "dependencies": { + "@types/chroma-js": "^2.1.3", "chroma-js": "^2.4.2" } } diff --git a/styles/selector-modal.ts b/styles/selector-modal.ts index f7101c915138e61d6147f4f12e82e58310ae9637..ddba32683a976153eac6fc0f49f6a5df9a835a1f 100644 --- a/styles/selector-modal.ts +++ b/styles/selector-modal.ts @@ -1,7 +1,7 @@ import { backgroundColor, border, player, shadow, text } from "./components"; import Theme from "./theme"; -export function selectorModal(theme: Theme): Object { +export default function selectorModal(theme: Theme): Object { const item = { padding: { bottom: 4, diff --git a/styles/theme.ts b/styles/theme.ts index 5363a8c01c08697f90fa9a37ffba2c6d50305c5c..ddfa6414f49e5e94236f3c2d316896869f832986 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -1,3 +1,5 @@ +import { colorRamp } from "./lib"; + export type Color = string; export type Weight = | "thin" @@ -87,6 +89,50 @@ export default interface Theme { feature: { value: Color; }; + ok: { + value: Color; + }; + error: { + value: Color; + }; + warning: { + value: Color; + }; + info: { + value: Color; + }; + }; + iconColor: { + primary: { + value: Color; + }; + secondary: { + value: Color; + }; + muted: { + value: Color; + }; + placeholder: { + value: Color; + }; + active: { + value: Color; + }; + feature: { + value: Color; + }; + ok: { + value: Color; + }; + error: { + value: Color; + }; + warning: { + value: Color; + }; + info: { + value: Color; + }; }; syntax: { primary: SyntaxHighlightStyle; diff --git a/styles/workspace.ts b/styles/workspace.ts new file mode 100644 index 0000000000000000000000000000000000000000..5ecb3a378c8d1a5acedc5100203c9b9306e36dca --- /dev/null +++ b/styles/workspace.ts @@ -0,0 +1,133 @@ +import { backgroundColor, border, iconColor, text } from "./components"; +import Theme from "./theme"; + +export default function workspace(theme: Theme) { + const signInPrompt = { + ...text(theme, "sans", "secondary"), + size: 13, + underline: true, + padding: { + right: 8, + }, + }; + + const tab = { + height: 34, + iconClose: iconColor(theme, "secondary"), + iconCloseActive: iconColor(theme, "active"), + iconConflict: iconColor(theme, "warning"), + iconDirty: iconColor(theme, "info"), + iconWidth: 8, + spacing: 10, + text: text(theme, "mono", "secondary"), + border: border(theme, "primary", { + left: true, + bottom: true, + overlay: true, + }), + padding: { + left: 12, + right: 12, + }, + }; + + const activeTab = { + ...tab, + background: backgroundColor(theme, 300), + text: text(theme, "mono", "primary"), + border: { + ...tab.border, + bottom: false, + }, + }; + + const sidebarItem = { + height: "$workspace.tab.height", + iconColor: "$text.muted.color", + iconSize: 18, + }; + const sidebar = { + width: 30, + border: border(theme, "primary", { right: true }), + item: sidebarItem, + activeItem: { + ...sidebarItem, + iconColor: iconColor(theme, "primary"), + }, + resizeHandle: { + background: border(theme, "primary").color, + padding: { + left: 1, + }, + }, + }; + + return { + background: backgroundColor(theme, 500), + leaderBorderOpacity: 0.7, + leaderBorderWidth: 2.0, + tab, + activeTab, + leftSidebar: { + ...sidebar, + border: border(theme, "primary", { right: true }), + }, + rightSidebar: { + ...sidebar, + border: border(theme, "primary", { left: true }), + }, + paneDivider: { + color: border(theme, "primary").color, + width: 1, + }, + status_bar: { + height: 24, + itemSpacing: 8, + padding: { + left: 6, + right: 6, + }, + cursorPosition: text(theme, "sans", "muted"), + diagnosticMessage: text(theme, "sans", "muted"), + lspMessage: text(theme, "sans", "muted"), + }, + titlebar: { + avatarWidth: 18, + height: 32, + shareIconColor: iconColor(theme, "secondary"), + shareIconActiveColor: iconColor(theme, "active"), + title: text(theme, "sans", "primary"), + avatar: { + cornerRadius: 10, + border: { + color: "#00000088", + width: 1, + }, + }, + avatarRibbon: { + height: 3, + width: 12, + }, + border: border(theme, "primary", { bottom: true }), + signInPrompt, + hoveredSignInPrompt: { + ...signInPrompt, + ...text(theme, "mono", "active"), + }, + offlineIcon: { + color: iconColor(theme, "muted"), + width: 16, + padding: { + right: 4, + }, + }, + outdatedWarning: { + ...text(theme, "sans", "muted"), + size: 13, + }, + }, + toolbar: { + height: 44, + }, + }; +} From cb3c111401b5ed438733826d7cc850ff5f9bfd62 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Wed, 30 Mar 2022 17:59:35 -0600 Subject: [PATCH 35/71] Convert editor styles to TypeScript --- styles/app.ts | 201 +------------------------------------------ styles/components.ts | 4 +- styles/editor.ts | 143 ++++++++++++++++++++++++++++++ styles/theme.ts | 65 ++++++++++++++ 4 files changed, 214 insertions(+), 199 deletions(-) create mode 100644 styles/editor.ts diff --git a/styles/app.ts b/styles/app.ts index 4f40577ae9ada410e9cab6c76bfb950660b6b94b..a421da8f07dc854931d64268d84ae2cf9f4ec5e3 100644 --- a/styles/app.ts +++ b/styles/app.ts @@ -1,13 +1,15 @@ import { backgroundColor } from "./components"; import selectorModal from "./selector-modal"; import workspace from "./workspace"; +import editor from "./editor"; import Theme from "./theme"; export default function app(theme: Theme): Object { return { selector: selectorModal(theme), workspace: workspace(theme), - chat_panel: { + editor: editor(theme), + chatPanel: { extends: "$panel", channel_name: { extends: "$text.primary", @@ -169,203 +171,6 @@ export default function app(theme: Theme): Object { extends: "$contacts_panel.project", }, }, - editor: { - active_line_background: "$state.active_line", - background: backgroundColor(theme, 300), - code_actions_indicator: "$text.muted.color", - diff_background_deleted: "$state.deleted_line", - diff_background_inserted: "$state.inserted_line", - document_highlight_read_background: "#99999920", - document_highlight_write_background: "#99999916", - error_color: "$status.bad", - guest_selections: "$selection.guests", - gutter_background: backgroundColor(theme, 300), - gutter_padding_factor: 2.5, - highlighted_line_background: "$state.highlighted_line", - line_number: "$text.muted.color", - line_number_active: "$text.primary.color", - rename_fade: 0.6, - selection: "$selection.host", - text_color: "$text.secondary.color", - unnecessary_code_fade: 0.5, - autocomplete: { - background: "$surface.100", - corner_radius: 6, - padding: 6, - border: { - color: "$border.secondary", - width: 2, - }, - hovered_item: { - background: "$state.hover", - extends: "$editor.autocomplete.item", - }, - item: { - corner_radius: 6, - padding: { - bottom: 2, - left: 6, - right: 6, - top: 2, - }, - }, - margin: { - left: -14, - }, - match_highlight: { - color: "$editor.syntax.keyword.color", - weight: "$editor.syntax.keyword.weight", - }, - selected_item: { - background: "$state.selected", - extends: "$editor.autocomplete.item", - }, - }, - diagnostic_header: { - background: "$editor.background", - icon_width_factor: 1.5, - text_scale_factor: 0.857, - border: { - bottom: true, - color: "$border.secondary", - top: true, - width: 1, - }, - code: { - extends: "$text.muted", - size: 14, - margin: { - left: 10, - }, - }, - message: { - highlight_text: { - extends: "$text.primary", - size: 14, - weight: "bold", - }, - text: { - extends: "$text.secondary", - size: 14, - }, - }, - }, - diagnostic_path_header: { - background: "$state.active_line", - text_scale_factor: 0.857, - filename: { - extends: "$text.primary", - size: 14, - }, - path: { - extends: "$text.muted", - size: 14, - margin: { - left: 12, - }, - }, - }, - error_diagnostic: { - text_scale_factor: 0.857, - header: { - border: { - color: "$border.primary", - top: true, - width: 1, - }, - }, - message: { - highlight_text: { - color: "$status.bad", - extends: "$text.secondary", - size: 14, - weight: "bold", - }, - text: { - color: "$status.bad", - extends: "$text.secondary", - size: 14, - }, - }, - }, - hint_diagnostic: { - extends: "$editor.error_diagnostic", - message: { - highlight_text: { - color: "$status.info", - }, - text: { - color: "$status.info", - }, - }, - }, - information_diagnostic: { - extends: "$editor.error_diagnostic", - message: { - highlight_text: { - color: "$status.info", - }, - text: { - color: "$status.info", - }, - }, - }, - invalid_error_diagnostic: { - extends: "$editor.error_diagnostic", - message: { - highlight_text: { - color: "$text.muted.color", - }, - text: { - color: "$text.muted.color", - }, - }, - }, - invalid_hint_diagnostic: { - extends: "$editor.hint_diagnostic", - message: { - highlight_text: { - color: "$text.muted.color", - }, - text: { - color: "$text.muted.color", - }, - }, - }, - invalid_information_diagnostic: { - extends: "$editor.information_diagnostic", - message: { - highlight_text: { - color: "$text.muted.color", - }, - text: { - color: "$text.muted.color", - }, - }, - }, - invalid_warning_diagnostic: { - extends: "$editor.warning_diagnostic", - message: { - highlight_text: { - color: "$text.muted.color", - }, - text: { - color: "$text.muted.color", - }, - }, - }, - warning_diagnostic: { - extends: "$editor.error_diagnostic", - message: { - highlight_text: { - color: "$status.warn", - }, - text: { - color: "$status.warn", - }, - }, - }, - }, project_diagnostics: { background: backgroundColor(theme, 300), tab_icon_spacing: 4, diff --git a/styles/components.ts b/styles/components.ts index 9cc58046ffba77646dc07342b1485e0877305f69..14becaf2af30e94d4c6d3a0250b0e3f3aab52faf 100644 --- a/styles/components.ts +++ b/styles/components.ts @@ -3,10 +3,12 @@ import core from "./core"; import { Color } from "./lib"; import Theme, { BackgroundColor, Weight } from "./theme"; +export type TextColor = keyof Theme["textColor"]; + export function text( theme: Theme, fontFamily: keyof typeof core.fontFamily, - color: keyof Theme["textColor"], + color: TextColor, properties?: { size?: keyof typeof core["fontSize"]; weight?: Weight } ) { const sizeKey = properties.size || fontFamily === "sans" ? "sm" : "md"; diff --git a/styles/editor.ts b/styles/editor.ts new file mode 100644 index 0000000000000000000000000000000000000000..9edfdc4716bea35b4c7e3cf83967383b4f6a3850 --- /dev/null +++ b/styles/editor.ts @@ -0,0 +1,143 @@ +import { + backgroundColor, + border, + iconColor, + player, + text, + TextColor, +} from "./components"; +import Theme from "./theme"; + +export default function editor(theme: Theme) { + const autocompleteItem = { + cornerRadius: 6, + padding: { + bottom: 2, + left: 6, + right: 6, + top: 2, + }, + }; + + function diagnostic(theme: Theme, color: TextColor) { + return { + textScaleFactor: 0.857, + header: { + border: border(theme, "primary", { + top: true, + }), + }, + message: { + text: { + ...text(theme, "sans", color), + size: 14, + }, + highlightText: { + ...text(theme, "sans", color, { weight: "bold" }), + size: 14, + }, + }, + }; + } + + return { + textColor: theme.textColor.secondary.value, + background: backgroundColor(theme, 300), + activeLineBackground: theme.editor.line.active.value, + codeActionsIndicator: iconColor(theme, "secondary"), + diffBackgroundDeleted: backgroundColor(theme, "error"), + diffBackgroundInserted: backgroundColor(theme, "ok"), + documentHighlightReadBackground: theme.editor.highlight.occurrence.value, + documentHighlightWriteBackground: theme.editor.highlight.occurrence.value, + errorColor: theme.textColor.error, + gutterBackground: backgroundColor(theme, 300), + gutterPaddingFactor: 2.5, + highlightedLineBackground: theme.editor.line.highlighted.value, + lineNumber: theme.editor.gutter.primary.value, + lineNumberActive: theme.editor.gutter.active, + renameFade: 0.6, + unnecessaryCodeFade: 0.5, + selection: player(theme, 1).selection, + guestSelections: [ + player(theme, 2).selection, + player(theme, 3).selection, + player(theme, 4).selection, + player(theme, 5).selection, + player(theme, 6).selection, + player(theme, 7).selection, + player(theme, 8).selection, + ], + autocomplete: { + background: backgroundColor(theme, 100), + cornerRadius: 6, + padding: 6, + border: border(theme, "secondary"), + item: autocompleteItem, + hoveredItem: { + ...autocompleteItem, + background: backgroundColor(theme, 100, "hover"), + }, + margin: { + left: -14, + }, + matchHighlight: { + color: theme.syntax.keyword.color.value, + weight: theme.syntax.keyword.weight.value, + }, + selectedItem: { + ...autocompleteItem, + background: backgroundColor(theme, 100, "active"), + }, + }, + diagnosticHeader: { + background: theme.editor.background.value, + iconWidthFactor: 1.5, + textScaleFactor: 0.857, + border: border(theme, "secondary", { + bottom: true, + top: true, + }), + code: { + ...text(theme, "mono", "muted"), + size: 14, + margin: { + left: 10, + }, + }, + message: { + highlightText: { + ...text(theme, "sans", "primary"), + size: 14, + weight: "bold", + }, + text: { + ...text(theme, "sans", "secondary"), + size: 14, + }, + }, + }, + diagnosticPathHeader: { + background: theme.editor.line.active, + textScaleFactor: 0.857, + filename: { + ...text(theme, "mono", "primary"), + size: 14, + }, + path: { + ...text(theme, "mono", "muted"), + size: 14, + margin: { + left: 12, + }, + }, + }, + errorDiagnostic: diagnostic(theme, "error"), + warningDiagnostic: diagnostic(theme, "warning"), + informationDiagnostic: diagnostic(theme, "info"), + hintDiagnostic: diagnostic(theme, "info"), + invalidErrorDiagnostic: diagnostic(theme, "muted"), + invalidHintDiagnostic: diagnostic(theme, "muted"), + invalidInformationDiagnostic: diagnostic(theme, "muted"), + invalidWarningDiagnostic: diagnostic(theme, "muted"), + }; +} diff --git a/styles/theme.ts b/styles/theme.ts index ddfa6414f49e5e94236f3c2d316896869f832986..5220c962c9d2032d35b15e32d12547f92d4c4679 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -52,6 +52,10 @@ export default interface Theme { 100: BackgroundColor; 300: BackgroundColor; 500: BackgroundColor; + ok: BackgroundColor; + error: BackgroundColor; + warning: BackgroundColor; + info: BackgroundColor; }; borderColor: { primary: { @@ -134,6 +138,66 @@ export default interface Theme { value: Color; }; }; + editor: { + background: { + value: Color; + }; + indent_guide: { + value: Color; + }; + indent_guide_active: { + value: Color; + }; + line: { + active: { + value: Color; + }; + highlighted: { + value: Color; + }; + inserted: { + value: Color; + }; + deleted: { + value: Color; + }; + modified: { + value: Color; + }; + }; + highlight: { + selection: { + value: Color; + }; + occurrence: { + value: Color; + }; + activeOccurrence: { + value: Color; + }; + matchingBracket: { + value: Color; + }; + match: { + value: Color; + }; + activeMatch: { + value: Color; + }; + related: { + value: Color; + }; + }; + gutter: { + primary: { + value: Color; + }; + active: { + value: Color; + }; + }; + }; + syntax: { primary: SyntaxHighlightStyle; comment: SyntaxHighlightStyle; @@ -151,6 +215,7 @@ export default interface Theme { boolean: SyntaxHighlightStyle; predictive: SyntaxHighlightStyle; }; + player: { 1: Player; 2: Player; From 189db6311cdd13f3286652dedb831b33014492ed Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Wed, 30 Mar 2022 18:26:47 -0600 Subject: [PATCH 36/71] Convert project panel styles --- styles/app.ts | 180 +++++++++++++++++----------------------- styles/editor.ts | 38 +++------ styles/project-panel.ts | 32 +++++++ styles/theme.ts | 4 +- 4 files changed, 124 insertions(+), 130 deletions(-) create mode 100644 styles/project-panel.ts diff --git a/styles/app.ts b/styles/app.ts index a421da8f07dc854931d64268d84ae2cf9f4ec5e3..ae0f0717bb5dc13e20db348d36bdeb1d562e0885 100644 --- a/styles/app.ts +++ b/styles/app.ts @@ -1,46 +1,67 @@ -import { backgroundColor } from "./components"; +import { backgroundColor, text } from "./components"; import selectorModal from "./selector-modal"; import workspace from "./workspace"; import editor from "./editor"; import Theme from "./theme"; +import projectPanel from "./project-panel"; + +export const panel = { + padding: { top: 12, left: 12, bottom: 12, right: 12 }, +}; export default function app(theme: Theme): Object { return { selector: selectorModal(theme), workspace: workspace(theme), editor: editor(theme), + projectDiagnostics: { + background: backgroundColor(theme, 300), + tabIconSpacing: 4, + tabIconWidth: 13, + tabSummarySpacing: 10, + emptyMessage: { + ...text(theme, "sans", "primary", { size: "lg" }), + }, + statusBarItem: { + ...text(theme, "sans", "muted"), + margin: { + right: 10, + }, + }, + }, + projectPanel: projectPanel(theme), chatPanel: { extends: "$panel", - channel_name: { + channelName: { extends: "$text.primary", weight: "bold", }, - channel_name_hash: { + channelNameHash: { text: "$text.muted", padding: { right: 8, }, }, - channel_select: { - active_item: { - extends: "$chat_panel.channel_select.item", + channelSelect: { + activeItem: { + extends: "$chatPanel.channel_select.item", name: "$text.primary", }, header: { - extends: "$chat_panel.channel_select.active_item", + extends: "$chat_panel.channel_select.activeItem", padding: { bottom: 4, left: 0, }, }, - hovered_active_item: { - extends: "$chat_panel.channel_select.hovered_item", + hoveredActiveItem: { + extends: "$chatPanel.channelSelect.hoveredItem", name: "$text.primary", }, - hovered_item: { + hoveredItem: { background: "$state.hover", - corner_radius: 6, - extends: "$chat_panel.channel_select.item", + cornerRadius: 6, + extends: "$chat_panel.channelSelect.item", }, item: { name: "$text.secondary", @@ -54,7 +75,7 @@ export default function app(theme: Theme): Object { }, menu: { background: "$surface.500", - corner_radius: 6, + cornerRadius: 6, padding: 4, border: { color: "$border.primary", @@ -67,14 +88,14 @@ export default function app(theme: Theme): Object { }, }, }, - hovered_sign_in_prompt: { + hoveredSignInPrompt: { color: "$text.secondary.color", - extends: "$chat_panel.sign_in_prompt", + extends: "$chatPanel.signInPrompt", }, - input_editor: { + inputEditor: { background: backgroundColor(theme, 300), - corner_radius: 6, - placeholder_text: "$text.muted", + cornerRadius: 6, + placeholderText: "$text.muted", selection: "$selection.host", text: "$text.primary", border: { @@ -102,8 +123,8 @@ export default function app(theme: Theme): Object { }, }, }, - pending_message: { - extends: "$chat_panel.message", + pendingMessage: { + extends: "$chatPanel.message", body: { color: "$text.muted.color", }, @@ -114,41 +135,41 @@ export default function app(theme: Theme): Object { color: "$text.muted.color", }, }, - sign_in_prompt: { + signInPrompt: { extends: "$text.primary", underline: true, }, }, - contacts_panel: { + contactsPanel: { extends: "$panel", - host_row_height: 28, - tree_branch_color: "$surface.100", - tree_branch_width: 1, - host_avatar: { - corner_radius: 10, + hostRowHeight: 28, + treeBranchColor: "$surface.100", + treeBranchWidth: 1, + hostAvatar: { + cornerRadius: 10, width: 18, }, - host_username: { + hostUsername: { extends: "$text.primary", padding: { left: 8, }, }, - hovered_shared_project: { + hoveredSharedProject: { background: "$state.hover", - corner_radius: 6, - extends: "$contacts_panel.shared_project", + cornerRadius: 6, + extends: "$contacts_panel.sharedProject", }, - hovered_unshared_project: { + hoveredUnsharedProject: { background: "$state.hover", - corner_radius: 6, - extends: "$contacts_panel.unshared_project", + cornerRadius: 6, + extends: "$contacts_panel.unsharedProject", }, project: { - guest_avatar_spacing: 4, + guestAvatarSpacing: 4, height: 24, - guest_avatar: { - corner_radius: 8, + guestAvatar: { + cornerRadius: 8, width: 14, }, name: { @@ -161,79 +182,34 @@ export default function app(theme: Theme): Object { left: 8, }, }, - shared_project: { - extends: "$contacts_panel.project", + sharedProject: { + extends: "$contactsPanel.project", name: { color: "$text.primary.color", }, }, - unshared_project: { - extends: "$contacts_panel.project", - }, - }, - project_diagnostics: { - background: backgroundColor(theme, 300), - tab_icon_spacing: 4, - tab_icon_width: 13, - tab_summary_spacing: 10, - empty_message: { - extends: "$text.primary", - size: 18, - }, - status_bar_item: { - extends: "$text.muted", - margin: { - right: 10, - }, - }, - }, - project_panel: { - extends: "$panel", - entry: { - height: 22, - icon_color: "$text.muted.color", - icon_size: 8, - icon_spacing: 8, - text: "$text.secondary", - }, - hovered_entry: { - background: "$state.hover", - extends: "$project_panel.entry", - }, - hovered_selected_entry: { - extends: "$project_panel.hovered_entry", - text: { - extends: "$text.primary", - }, - }, - padding: { - top: 6, - }, - selected_entry: { - extends: "$project_panel.entry", - text: { - extends: "$text.primary", - }, + unsharedProject: { + extends: "$contactsPanel.project", }, }, search: { background: backgroundColor(theme, 300), - match_background: "$state.highlighted_line", - tab_icon_spacing: 4, - tab_icon_width: 14, - active_hovered_option_button: { + matchBackground: "$state.highlightedLine", + tabIconSpacing: 4, + tabIconWidth: 14, + activeHoveredOptionButton: { background: "$surface.100", extends: "$search.option_button", }, - active_option_button: { + activeOptionButton: { background: "$surface.100", extends: "$search.option_button", }, editor: { background: "$surface.500", - corner_radius: 6, - max_width: 400, - placeholder_text: "$text.muted", + cornerRadius: 6, + maxWidth: 400, + placeholderText: "$text.muted", selection: "$selection.host", text: "$text.primary", border: { @@ -253,24 +229,24 @@ export default function app(theme: Theme): Object { top: 3, }, }, - hovered_option_button: { + hoveredOptionButton: { background: "$surface.100", - extends: "$search.option_button", + extends: "$search.optionButton", }, - invalid_editor: { + invalidEditor: { extends: "$search.editor", border: { color: "$status.bad", width: 1, }, }, - match_index: { + matchIndex: { extends: "$text.secondary", padding: 6, }, - option_button: { + optionButton: { background: backgroundColor(theme, 300), - corner_radius: 6, + cornerRadius: 6, extends: "$text.secondary", border: { color: "$border.primary", @@ -287,13 +263,13 @@ export default function app(theme: Theme): Object { top: 1, }, }, - option_button_group: { + optionButtonGroup: { padding: { left: 2, right: 2, }, }, - results_status: { + resultsStatus: { extends: "$text.primary", size: 18, }, diff --git a/styles/editor.ts b/styles/editor.ts index 9edfdc4716bea35b4c7e3cf83967383b4f6a3850..ea7012d2092ebd0d7df324762f4703693b32a89d 100644 --- a/styles/editor.ts +++ b/styles/editor.ts @@ -28,14 +28,11 @@ export default function editor(theme: Theme) { }), }, message: { - text: { - ...text(theme, "sans", color), - size: 14, - }, - highlightText: { - ...text(theme, "sans", color, { weight: "bold" }), - size: 14, - }, + text: text(theme, "sans", color, { size: "sm" }), + highlightText: text(theme, "sans", color, { + size: "sm", + weight: "bold", + }), }, }; } @@ -75,7 +72,7 @@ export default function editor(theme: Theme) { item: autocompleteItem, hoveredItem: { ...autocompleteItem, - background: backgroundColor(theme, 100, "hover"), + background: backgroundColor(theme, 100, "hovered"), }, margin: { left: -14, @@ -98,34 +95,25 @@ export default function editor(theme: Theme) { top: true, }), code: { - ...text(theme, "mono", "muted"), - size: 14, + ...text(theme, "mono", "muted", { size: "sm" }), margin: { left: 10, }, }, message: { - highlightText: { - ...text(theme, "sans", "primary"), - size: 14, + highlightText: text(theme, "sans", "primary", { + size: "sm", weight: "bold", - }, - text: { - ...text(theme, "sans", "secondary"), - size: 14, - }, + }), + text: text(theme, "sans", "secondary", { size: "sm" }), }, }, diagnosticPathHeader: { background: theme.editor.line.active, textScaleFactor: 0.857, - filename: { - ...text(theme, "mono", "primary"), - size: 14, - }, + filename: text(theme, "mono", "primary", { size: "sm" }), path: { - ...text(theme, "mono", "muted"), - size: 14, + ...text(theme, "mono", "muted", { size: "sm" }), margin: { left: 12, }, diff --git a/styles/project-panel.ts b/styles/project-panel.ts new file mode 100644 index 0000000000000000000000000000000000000000..343e11b96b6e8adb3c6bd223a71de3e6d7d05f40 --- /dev/null +++ b/styles/project-panel.ts @@ -0,0 +1,32 @@ +import { panel } from "./app"; +import { backgroundColor, iconColor, text, TextColor } from "./components"; +import Theme from "./theme"; +import { Color } from "./lib"; + +export default function projectPanel(theme: Theme) { + function entry(theme: Theme, textColor: TextColor, background?: Color) { + return { + height: 22, + background, + iconColor: iconColor(theme, "muted"), + iconSize: 8, + iconSpacing: 8, + text: text(theme, "mono", textColor), + }; + } + + return { + ...panel, + entry: entry(theme, "secondary"), + hoveredEntry: entry( + theme, + "secondary", + backgroundColor(theme, 300, "hovered") + ), + selectedEntry: entry(theme, "primary"), + hoveredSelectedEntry: entry(theme, "primary", "hovered"), + padding: { + top: 6, + }, + }; +} diff --git a/styles/theme.ts b/styles/theme.ts index 5220c962c9d2032d35b15e32d12547f92d4c4679..27f578f4366bacae8fdc5d4dc366375532e7f2b8 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -1,5 +1,3 @@ -import { colorRamp } from "./lib"; - export type Color = string; export type Weight = | "thin" @@ -36,7 +34,7 @@ export interface BackgroundColor { base: { value: Color; }; - hover: { + hovered: { value: Color; }; active: { From 70b15e4c909b8723442b6d6ec1dc61d2aab2803f Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Wed, 30 Mar 2022 18:45:34 -0600 Subject: [PATCH 37/71] Convert chat panel --- styles/app.ts | 112 +------------------------------------------ styles/chat-panel.ts | 108 +++++++++++++++++++++++++++++++++++++++++ styles/components.ts | 8 +++- 3 files changed, 116 insertions(+), 112 deletions(-) create mode 100644 styles/chat-panel.ts diff --git a/styles/app.ts b/styles/app.ts index ae0f0717bb5dc13e20db348d36bdeb1d562e0885..5f2993d30a68cad4410992387bf65a6d76c72a34 100644 --- a/styles/app.ts +++ b/styles/app.ts @@ -4,6 +4,7 @@ import workspace from "./workspace"; import editor from "./editor"; import Theme from "./theme"; import projectPanel from "./project-panel"; +import chatPanel from "./chat-panel"; export const panel = { padding: { top: 12, left: 12, bottom: 12, right: 12 }, @@ -30,116 +31,7 @@ export default function app(theme: Theme): Object { }, }, projectPanel: projectPanel(theme), - chatPanel: { - extends: "$panel", - channelName: { - extends: "$text.primary", - weight: "bold", - }, - channelNameHash: { - text: "$text.muted", - padding: { - right: 8, - }, - }, - channelSelect: { - activeItem: { - extends: "$chatPanel.channel_select.item", - name: "$text.primary", - }, - header: { - extends: "$chat_panel.channel_select.activeItem", - padding: { - bottom: 4, - left: 0, - }, - }, - hoveredActiveItem: { - extends: "$chatPanel.channelSelect.hoveredItem", - name: "$text.primary", - }, - hoveredItem: { - background: "$state.hover", - cornerRadius: 6, - extends: "$chat_panel.channelSelect.item", - }, - item: { - name: "$text.secondary", - padding: 4, - hash: { - extends: "$text.muted", - margin: { - right: 8, - }, - }, - }, - menu: { - background: "$surface.500", - cornerRadius: 6, - padding: 4, - border: { - color: "$border.primary", - width: 1, - }, - shadow: { - blur: 16, - color: "$shadow.0", - offset: [0, 2], - }, - }, - }, - hoveredSignInPrompt: { - color: "$text.secondary.color", - extends: "$chatPanel.signInPrompt", - }, - inputEditor: { - background: backgroundColor(theme, 300), - cornerRadius: 6, - placeholderText: "$text.muted", - selection: "$selection.host", - text: "$text.primary", - border: { - color: "$border.primary", - width: 1, - }, - padding: { - bottom: 7, - left: 8, - right: 8, - top: 7, - }, - }, - message: { - body: "$text.secondary", - timestamp: "$text.muted", - padding: { - bottom: 6, - }, - sender: { - extends: "$text.primary", - weight: "bold", - margin: { - right: 8, - }, - }, - }, - pendingMessage: { - extends: "$chatPanel.message", - body: { - color: "$text.muted.color", - }, - sender: { - color: "$text.muted.color", - }, - timestamp: { - color: "$text.muted.color", - }, - }, - signInPrompt: { - extends: "$text.primary", - underline: true, - }, - }, + chatPanel: chatPanel(theme), contactsPanel: { extends: "$panel", hostRowHeight: 28, diff --git a/styles/chat-panel.ts b/styles/chat-panel.ts new file mode 100644 index 0000000000000000000000000000000000000000..c6bf0148ea4c5d9345c29d5df94c978588e4fd0d --- /dev/null +++ b/styles/chat-panel.ts @@ -0,0 +1,108 @@ +import { panel } from "./app"; +import { + backgroundColor, + border, + player, + shadow, + text, + TextColor, +} from "./components"; +import Theme from "./theme"; + +export default function chatPanel(theme: Theme) { + function channelSelectItem( + theme: Theme, + textColor: TextColor, + hovered: boolean + ) { + return { + name: text(theme, "sans", textColor), + padding: 4, + hash: { + ...text(theme, "sans", "muted"), + margin: { + right: 8, + }, + }, + background: hovered ? backgroundColor(theme, 300, "hovered") : undefined, + cornerRadius: hovered ? 6 : 0, + }; + } + + const message = { + body: text(theme, "sans", "secondary"), + timestamp: text(theme, "sans", "muted"), + padding: { + bottom: 6, + }, + sender: { + ...text(theme, "sans", "primary", { weight: "bold" }), + margin: { + right: 8, + }, + }, + }; + + return { + ...panel, + channelName: text(theme, "sans", "primary", { weight: "bold" }), + channelNameHash: { + ...text(theme, "sans", "muted"), + padding: { + right: 8, + }, + }, + channelSelect: { + header: { + ...channelSelectItem(theme, "primary", false), + padding: { + bottom: 4, + left: 0, + }, + }, + item: channelSelectItem(theme, "secondary", false), + hoveredItem: channelSelectItem(theme, "secondary", true), + activeItem: channelSelectItem(theme, "primary", false), + hoveredActiveItem: channelSelectItem(theme, "primary", true), + menu: { + background: backgroundColor(theme, 500), + cornerRadius: 6, + padding: 4, + border: border(theme, "primary"), + shadow: shadow(theme), + }, + }, + signInPrompt: text(theme, "sans", "secondary", { underline: true }), + hoveredSignInPrompt: text(theme, "sans", "primary", { underline: true }), + message, + pendingMessage: { + ...message, + body: { + ...message.body, + color: theme.textColor.muted.value, + }, + sender: { + ...message.sender, + color: theme.textColor.muted.value, + }, + timestamp: { + ...message.timestamp, + color: theme.textColor.muted.value, + }, + }, + inputEditor: { + background: backgroundColor(theme, 300), + cornerRadius: 6, + text: text(theme, "mono", "primary"), + placeholderText: text(theme, "mono", "muted"), + selection: player(theme, 1).selection, + border: border(theme, "primary"), + padding: { + bottom: 7, + left: 8, + right: 8, + top: 7, + }, + }, + }; +} diff --git a/styles/components.ts b/styles/components.ts index 14becaf2af30e94d4c6d3a0250b0e3f3aab52faf..28d883927bb8f7d6f333a1cf8e45c1149910ba63 100644 --- a/styles/components.ts +++ b/styles/components.ts @@ -9,7 +9,11 @@ export function text( theme: Theme, fontFamily: keyof typeof core.fontFamily, color: TextColor, - properties?: { size?: keyof typeof core["fontSize"]; weight?: Weight } + properties?: { + size?: keyof typeof core["fontSize"]; + weight?: Weight; + underline?: boolean; + } ) { const sizeKey = properties.size || fontFamily === "sans" ? "sm" : "md"; const size = core.fontSize[sizeKey].value; @@ -74,7 +78,7 @@ export function backgroundColor( return theme.backgroundColor[name][state || "base"].value; } -export function shadow(theme) { +export function shadow(theme: Theme) { return { blur: 16, color: chroma("black").alpha(theme.shadowAlpha.value).hex(), From d88e20477df2cffa2b10b64dc65ce68066fd40f7 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 31 Mar 2022 01:38:18 -0400 Subject: [PATCH 38/71] Update app.ts, editor.ts --- styles/app.ts | 63 +++++++++++++++++++------------------------- styles/components.ts | 4 +++ styles/editor.ts | 4 +-- styles/theme.ts | 12 +++++++++ styles/workspace.ts | 4 +-- 5 files changed, 47 insertions(+), 40 deletions(-) diff --git a/styles/app.ts b/styles/app.ts index 5f2993d30a68cad4410992387bf65a6d76c72a34..11e476baf73ec97e010288edcad2ce730299833b 100644 --- a/styles/app.ts +++ b/styles/app.ts @@ -1,10 +1,10 @@ -import { backgroundColor, text } from "./components"; -import selectorModal from "./selector-modal"; -import workspace from "./workspace"; +import chatPanel from "./chat-panel"; +import { backgroundColor, border, borderColor, player, text } from "./components"; import editor from "./editor"; -import Theme from "./theme"; import projectPanel from "./project-panel"; -import chatPanel from "./chat-panel"; +import selectorModal from "./selector-modal"; +import Theme from "./theme"; +import workspace from "./workspace"; export const panel = { padding: { top: 12, left: 12, bottom: 12, right: 12 }, @@ -35,27 +35,27 @@ export default function app(theme: Theme): Object { contactsPanel: { extends: "$panel", hostRowHeight: 28, - treeBranchColor: "$surface.100", + treeBranchColor: borderColor(theme, "muted"), treeBranchWidth: 1, hostAvatar: { cornerRadius: 10, width: 18, }, hostUsername: { - extends: "$text.primary", + ...text(theme, "mono", "muted"), padding: { left: 8, }, }, hoveredSharedProject: { - background: "$state.hover", - cornerRadius: 6, extends: "$contacts_panel.sharedProject", + background: theme.editor.line.active.value, + cornerRadius: 6, }, hoveredUnsharedProject: { - background: "$state.hover", - cornerRadius: 6, extends: "$contacts_panel.unsharedProject", + background: theme.editor.line.active.value, + cornerRadius: 6, }, project: { guestAvatarSpacing: 4, @@ -65,7 +65,7 @@ export default function app(theme: Theme): Object { width: 14, }, name: { - extends: "$text.secondary", + extends: text(theme, "mono", "secondary"), margin: { right: 6, }, @@ -77,7 +77,7 @@ export default function app(theme: Theme): Object { sharedProject: { extends: "$contactsPanel.project", name: { - color: "$text.primary.color", + color: text(theme, "mono", "primary"), }, }, unsharedProject: { @@ -86,28 +86,25 @@ export default function app(theme: Theme): Object { }, search: { background: backgroundColor(theme, 300), - matchBackground: "$state.highlightedLine", + matchBackground: theme.editor.highlight.match, tabIconSpacing: 4, tabIconWidth: 14, activeHoveredOptionButton: { - background: "$surface.100", extends: "$search.option_button", + background: backgroundColor(theme, 100), }, activeOptionButton: { - background: "$surface.100", extends: "$search.option_button", + background: backgroundColor(theme, 100), }, editor: { - background: "$surface.500", + background: backgroundColor(theme, 500), cornerRadius: 6, maxWidth: 400, - placeholderText: "$text.muted", - selection: "$selection.host", - text: "$text.primary", - border: { - color: "$border.primary", - width: 1, - }, + placeholderText: text(theme, "mono", "placeholder"), + selection: player(theme, 1).selection, + text: text(theme, "mono", "primary"), + border: border(theme, "primary"), margin: { bottom: 5, left: 5, @@ -122,28 +119,22 @@ export default function app(theme: Theme): Object { }, }, hoveredOptionButton: { - background: "$surface.100", extends: "$search.optionButton", + background: backgroundColor(theme, 100), }, invalidEditor: { extends: "$search.editor", - border: { - color: "$status.bad", - width: 1, - }, + border: border(theme, "error"), }, matchIndex: { - extends: "$text.secondary", + ...text(theme, "mono", "secondary"), padding: 6, }, optionButton: { + ...text(theme, "mono", "secondary"), background: backgroundColor(theme, 300), cornerRadius: 6, - extends: "$text.secondary", - border: { - color: "$border.primary", - width: 1, - }, + border: border(theme, "primary"), margin: { left: 1, right: 1, @@ -162,7 +153,7 @@ export default function app(theme: Theme): Object { }, }, resultsStatus: { - extends: "$text.primary", + ...text(theme, "mono", "primary"), size: 18, }, }, diff --git a/styles/components.ts b/styles/components.ts index 28d883927bb8f7d6f333a1cf8e45c1149910ba63..c8b2f87638a004365596f0ec11bab644580ed255 100644 --- a/styles/components.ts +++ b/styles/components.ts @@ -47,6 +47,10 @@ export function border( }; } +export function borderColor(theme: Theme, color: keyof Theme["borderColor"]) { + return theme.borderColor[color].value; +} + export function iconColor(theme: Theme, color: keyof Theme["iconColor"]) { return theme.iconColor[color].value; } diff --git a/styles/editor.ts b/styles/editor.ts index ea7012d2092ebd0d7df324762f4703693b32a89d..a27464eee2182ecfb0633623ff4e773cfb85b35d 100644 --- a/styles/editor.ts +++ b/styles/editor.ts @@ -4,7 +4,7 @@ import { iconColor, player, text, - TextColor, + TextColor } from "./components"; import Theme from "./theme"; @@ -89,7 +89,7 @@ export default function editor(theme: Theme) { diagnosticHeader: { background: theme.editor.background.value, iconWidthFactor: 1.5, - textScaleFactor: 0.857, + textScaleFactor: 0.857, // NateQ: Will we need dynamic sizing for text? If so let's create tokens for these. border: border(theme, "secondary", { bottom: true, top: true, diff --git a/styles/theme.ts b/styles/theme.ts index 27f578f4366bacae8fdc5d4dc366375532e7f2b8..9d297d552d38b21154a77b2eed22d49a1ce2a247 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -71,6 +71,18 @@ export default interface Theme { active: { value: Color; }; + ok: { + value: Color; + }; + error: { + value: Color; + }; + warning: { + value: Color; + }; + info: { + value: Color; + }; }; textColor: { primary: { diff --git a/styles/workspace.ts b/styles/workspace.ts index 5ecb3a378c8d1a5acedc5100203c9b9306e36dca..1a50fe9ee1c248de6d48a9521efa9f9cc8f82fbb 100644 --- a/styles/workspace.ts +++ b/styles/workspace.ts @@ -42,8 +42,8 @@ export default function workspace(theme: Theme) { }; const sidebarItem = { - height: "$workspace.tab.height", - iconColor: "$text.muted.color", + height: 32, + iconColor: iconColor(theme, "secondary"), iconSize: 18, }; const sidebar = { From c008e65de6cfdae9b1a3f3fc73c53aeef1f790c6 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 31 Mar 2022 11:27:02 -0400 Subject: [PATCH 39/71] Extract `search` from `app` - Also update border to use borderColor( ) --- styles/app.ts | 79 +++---------------------------------------- styles/components.ts | 2 +- styles/search.ts | 80 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 76 deletions(-) create mode 100644 styles/search.ts diff --git a/styles/app.ts b/styles/app.ts index 11e476baf73ec97e010288edcad2ce730299833b..a65442db0737630f77d1de92d921d934ed4a8804 100644 --- a/styles/app.ts +++ b/styles/app.ts @@ -1,7 +1,8 @@ import chatPanel from "./chat-panel"; -import { backgroundColor, border, borderColor, player, text } from "./components"; +import { backgroundColor, borderColor, text } from "./components"; import editor from "./editor"; import projectPanel from "./project-panel"; +import search from "./search"; import selectorModal from "./selector-modal"; import Theme from "./theme"; import workspace from "./workspace"; @@ -33,7 +34,7 @@ export default function app(theme: Theme): Object { projectPanel: projectPanel(theme), chatPanel: chatPanel(theme), contactsPanel: { - extends: "$panel", + ...panel, hostRowHeight: 28, treeBranchColor: borderColor(theme, "muted"), treeBranchWidth: 1, @@ -84,78 +85,6 @@ export default function app(theme: Theme): Object { extends: "$contactsPanel.project", }, }, - search: { - background: backgroundColor(theme, 300), - matchBackground: theme.editor.highlight.match, - tabIconSpacing: 4, - tabIconWidth: 14, - activeHoveredOptionButton: { - extends: "$search.option_button", - background: backgroundColor(theme, 100), - }, - activeOptionButton: { - extends: "$search.option_button", - background: backgroundColor(theme, 100), - }, - editor: { - background: backgroundColor(theme, 500), - cornerRadius: 6, - maxWidth: 400, - placeholderText: text(theme, "mono", "placeholder"), - selection: player(theme, 1).selection, - text: text(theme, "mono", "primary"), - border: border(theme, "primary"), - margin: { - bottom: 5, - left: 5, - right: 5, - top: 5, - }, - padding: { - bottom: 3, - left: 13, - right: 13, - top: 3, - }, - }, - hoveredOptionButton: { - extends: "$search.optionButton", - background: backgroundColor(theme, 100), - }, - invalidEditor: { - extends: "$search.editor", - border: border(theme, "error"), - }, - matchIndex: { - ...text(theme, "mono", "secondary"), - padding: 6, - }, - optionButton: { - ...text(theme, "mono", "secondary"), - background: backgroundColor(theme, 300), - cornerRadius: 6, - border: border(theme, "primary"), - margin: { - left: 1, - right: 1, - }, - padding: { - bottom: 1, - left: 6, - right: 6, - top: 1, - }, - }, - optionButtonGroup: { - padding: { - left: 2, - right: 2, - }, - }, - resultsStatus: { - ...text(theme, "mono", "primary"), - size: 18, - }, - }, + search: search(theme), }; } diff --git a/styles/components.ts b/styles/components.ts index c8b2f87638a004365596f0ec11bab644580ed255..590c1b5eea9f6779dee0c2697a781d36b3edee60 100644 --- a/styles/components.ts +++ b/styles/components.ts @@ -41,7 +41,7 @@ export function border( options?: BorderOptions ) { return { - color: theme.borderColor[color].value, + color: borderColor(theme, color), width: 1, ...options, }; diff --git a/styles/search.ts b/styles/search.ts new file mode 100644 index 0000000000000000000000000000000000000000..ced2266ea73480da11f880d4c56b4a65aa83f12c --- /dev/null +++ b/styles/search.ts @@ -0,0 +1,80 @@ +import { backgroundColor, border, player, text } from "./components"; +import Theme from "./theme"; + +export default function search(theme: Theme) { + const optionButton = { + ...text(theme, "mono", "secondary"), + background: backgroundColor(theme, 300), + cornerRadius: 6, + border: border(theme, "primary"), + margin: { + left: 1, + right: 1, + }, + padding: { + bottom: 1, + left: 6, + right: 6, + top: 1, + }, + }; + + return { + background: backgroundColor(theme, 300), + matchBackground: theme.editor.highlight.match, + tabIconSpacing: 4, + tabIconWidth: 14, + activeHoveredOptionButton: { + ...optionButton, + background: backgroundColor(theme, 100), + }, + activeOptionButton: { + ...optionButton, + background: backgroundColor(theme, 100), + }, + editor: { + background: backgroundColor(theme, 500), + cornerRadius: 6, + maxWidth: 400, + placeholderText: text(theme, "mono", "placeholder"), + selection: player(theme, 1).selection, + text: text(theme, "mono", "primary"), + border: border(theme, "primary"), + margin: { + bottom: 5, + left: 5, + right: 5, + top: 5, + }, + padding: { + bottom: 3, + left: 13, + right: 13, + top: 3, + }, + }, + hoveredOptionButton: { + ...optionButton, + background: backgroundColor(theme, 100), + }, + invalidEditor: { + extends: "$search.editor", + border: border(theme, "error"), + }, + matchIndex: { + ...text(theme, "mono", "secondary"), + padding: 6, + }, + optionButton, + optionButtonGroup: { + padding: { + left: 2, + right: 2, + }, + }, + resultsStatus: { + ...text(theme, "mono", "primary"), + size: 18, + }, + }; +} From ae8b610d85aac1d46782113ee1ad38a0650279af Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 31 Mar 2022 19:10:44 -0400 Subject: [PATCH 40/71] WIP: Scaffold tokens in dark.ts, no real values yet. --- styles/dark.ts | 438 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 438 insertions(+) create mode 100644 styles/dark.ts diff --git a/styles/dark.ts b/styles/dark.ts new file mode 100644 index 0000000000000000000000000000000000000000..019f50e40cec8ede5e62d2db37e97e691fbce8d6 --- /dev/null +++ b/styles/dark.ts @@ -0,0 +1,438 @@ +import Theme from "./theme"; + +export default function dark(): Theme { + return { + backgroundColor: { + 100: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + 300: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + 500: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + ok: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + error: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + warning: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + info: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + }, + borderColor: { + primary: { + value: "#000000", + }, + secondary: { + value: "#000000", + }, + muted: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + active: { + value: "#000000", + }, + ok: { + value: "#000000", + }, + error: { + value: "#000000", + }, + warning: { + value: "#000000", + }, + info: { + value: "#000000", + }, + }, + textColor: { + primary: { + value: "#000000", + }, + secondary: { + value: "#000000", + }, + muted: { + value: "#000000", + }, + placeholder: { + value: "#000000", + }, + active: { + value: "#000000", + }, + feature: { + value: "#000000", + }, + ok: { + value: "#000000", + }, + error: { + value: "#000000", + }, + warning: { + value: "#000000", + }, + info: { + value: "#000000", + }, + }, + iconColor: { + primary: { + value: "#000000", + }, + secondary: { + value: "#000000", + }, + muted: { + value: "#000000", + }, + placeholder: { + value: "#000000", + }, + active: { + value: "#000000", + }, + feature: { + value: "#000000", + }, + ok: { + value: "#000000", + }, + error: { + value: "#000000", + }, + warning: { + value: "#000000", + }, + info: { + value: "#000000", + }, + }, + editor: { + background: { + value: "#000000", + }, + indent_guide: { + value: "#000000", + }, + indent_guide_active: { + value: "#000000", + }, + line: { + active: { + value: "#000000", + }, + highlighted: { + value: "#000000", + }, + inserted: { + value: "#000000", + }, + deleted: { + value: "#000000", + }, + modified: { + value: "#000000", + }, + }, + highlight: { + selection: { + value: "#000000", + }, + occurrence: { + value: "#000000", + }, + activeOccurrence: { + value: "#000000", + }, + matchingBracket: { + value: "#000000", + }, + match: { + value: "#000000", + }, + activeMatch: { + value: "#000000", + }, + related: { + value: "#000000", + }, + }, + gutter: { + primary: { + value: "#000000", + }, + active: { + value: "#000000", + }, + }, + }, + + syntax: { + primary: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + comment: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + punctuation: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + constant: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + keyword: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + function: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + type: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + variant: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + property: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + enum: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + operator: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + string: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + number: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + boolean: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + predictive: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + }, + player: { + 1: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + 2: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + 3: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + 4: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + 5: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + 6: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + 7: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + 8: { + baseColor: { + value: "#000000", + }, + cursorColor: { + value: "#000000", + }, + selectionColor: { + value: "#000000", + }, + borderColor: { + value: "#000000", + }, + }, + }, + shadowAlpha: { + value: 0.32, + }, + }; +} \ No newline at end of file From 083c1f7c0ea8fe94a794d31f3a583566fc8db905 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 31 Mar 2022 20:32:47 -0400 Subject: [PATCH 41/71] WIP for keith --- styles/dark.ts | 880 +++++++++++++++++++++++++------------------------ 1 file changed, 449 insertions(+), 431 deletions(-) diff --git a/styles/dark.ts b/styles/dark.ts index 019f50e40cec8ede5e62d2db37e97e691fbce8d6..efd2d3b8a49b1b43c53b8ee782d13615c0f3e0d2 100644 --- a/styles/dark.ts +++ b/styles/dark.ts @@ -1,438 +1,456 @@ +import core from "./core"; import Theme from "./theme"; -export default function dark(): Theme { - return { - backgroundColor: { - 100: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - }, - 300: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - }, - 500: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - }, - ok: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - }, - error: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - }, - warning: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - }, - info: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - }, +const backgroundColor = { + 100: { + base: { + value: core.color.neutral[999].value, }, - borderColor: { - primary: { - value: "#000000", - }, - secondary: { - value: "#000000", - }, - muted: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - active: { - value: "#000000", - }, - ok: { - value: "#000000", - }, - error: { - value: "#000000", - }, - warning: { - value: "#000000", - }, - info: { - value: "#000000", - }, - }, - textColor: { - primary: { - value: "#000000", - }, - secondary: { - value: "#000000", - }, - muted: { - value: "#000000", - }, - placeholder: { - value: "#000000", - }, - active: { - value: "#000000", - }, - feature: { - value: "#000000", - }, - ok: { - value: "#000000", - }, - error: { - value: "#000000", - }, - warning: { - value: "#000000", - }, - info: { - value: "#000000", - }, - }, - iconColor: { - primary: { - value: "#000000", - }, - secondary: { - value: "#000000", - }, - muted: { - value: "#000000", - }, - placeholder: { - value: "#000000", - }, - active: { - value: "#000000", - }, - feature: { - value: "#000000", - }, - ok: { - value: "#000000", - }, - error: { - value: "#000000", - }, - warning: { - value: "#000000", - }, - info: { - value: "#000000", - }, - }, - editor: { - background: { - value: "#000000", - }, - indent_guide: { - value: "#000000", - }, - indent_guide_active: { - value: "#000000", - }, - line: { - active: { - value: "#000000", - }, - highlighted: { - value: "#000000", - }, - inserted: { - value: "#000000", - }, - deleted: { - value: "#000000", - }, - modified: { - value: "#000000", - }, - }, - highlight: { - selection: { - value: "#000000", - }, - occurrence: { - value: "#000000", - }, - activeOccurrence: { - value: "#000000", - }, - matchingBracket: { - value: "#000000", - }, - match: { - value: "#000000", - }, - activeMatch: { - value: "#000000", - }, - related: { - value: "#000000", - }, - }, - gutter: { - primary: { - value: "#000000", - }, - active: { - value: "#000000", - }, - }, + hovered: { + value: core.color.neutral[999].value, + }, + active: { + value: core.color.neutral[999].value, + }, + focused: { + value: core.color.neutral[999].value, + }, + }, + 300: { + base: { + value: core.color.neutral[999].value, + }, + hovered: { + value: core.color.neutral[999].value, + }, + active: { + value: core.color.neutral[999].value, + }, + focused: { + value: core.color.neutral[999].value, + }, + }, + 500: { + base: { + value: core.color.neutral[999].value, + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + ok: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + error: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + warning: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + info: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, +}; - syntax: { - primary: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - comment: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - punctuation: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - constant: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - keyword: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - function: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - type: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - variant: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - property: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - enum: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - operator: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - string: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - number: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - boolean: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - predictive: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - }, - player: { - 1: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - 2: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - 3: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - 4: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - 5: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - 6: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - 7: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - 8: { - baseColor: { - value: "#000000", - }, - cursorColor: { - value: "#000000", - }, - selectionColor: { - value: "#000000", - }, - borderColor: { - value: "#000000", - }, - }, - }, - shadowAlpha: { - value: 0.32, +const borderColor = { + primary: { + value: "#000000", + }, + secondary: { + value: "#000000", + }, + muted: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + active: { + value: "#000000", + }, + ok: { + value: "#000000", + }, + error: { + value: "#000000", + }, + warning: { + value: "#000000", + }, + info: { + value: "#000000", + }, +}; + +const textColor = { + primary: { + value: core.color.neutral[150].value, + }, + secondary: { + value: core.color.neutral[350].value, + }, + muted: { + value: core.color.neutral[550].value, + }, + placeholder: { + value: core.color.neutral[750].value, + }, + active: { + value: core.color.neutral[0].value, + }, + feature: { + //TODO: (design) define feature and it's correct value + value: core.color.sky[500].value, + }, + ok: { + value: core.color.green[600].value, + }, + error: { + value: core.color.red[400].value, + }, + warning: { + value: core.color.amber[300].value, + }, + info: { + value: core.color.blue[500].value, + }, +}; + +const iconColor = { + primary: { + value: core.color.neutral[300].value, + }, + secondary: { + value: core.color.neutral[500].value, + }, + muted: { + value: core.color.neutral[600].value, + }, + placeholder: { + value: core.color.neutral[700].value, + }, + active: { + value: core.color.neutral[50].value, + }, + feature: { + //TODO: (design) define feature and it's correct value + value: core.color.sky[500].value, + }, + ok: { + value: core.color.green[600].value, + }, + error: { + value: core.color.red[400].value, + }, + warning: { + value: core.color.amber[300].value, + }, + info: { + value: core.color.blue[500].value, + }, +}; + +const editor = { + background: { + value: backgroundColor[500].base.value, + }, + indent_guide: { + value: core.color.neutral[999].value, + }, + indent_guide_active: { + value: core.color.neutral[999].value, + }, + line: { + active: { + value: core.color.neutral[999].value, + }, + highlighted: { + value: core.color.neutral[999].value, + }, + inserted: { + value: core.color.neutral[999].value, + }, + deleted: { + value: core.color.neutral[999].value, }, + modified: { + value: core.color.neutral[999].value, + }, + }, + highlight: { + selection: { + value: core.color.neutral[999].value, + }, + occurrence: { + value: core.color.neutral[999].value, + }, + activeOccurrence: { + value: core.color.neutral[999].value, + }, + matchingBracket: { + value: core.color.neutral[999].value, + }, + match: { + value: core.color.neutral[999].value, + }, + activeMatch: { + value: core.color.neutral[999].value, + }, + related: { + value: core.color.neutral[999].value, + }, + }, + gutter: { + primary: { + value: core.color.neutral[999].value, + }, + active: { + value: core.color.neutral[999].value, + }, + }, +}; + +const syntax = { + primary: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + comment: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + punctuation: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + constant: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + keyword: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + function: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + type: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + variant: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + property: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + enum: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + operator: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + string: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + number: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + boolean: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, + predictive: { + color: { value: "000000" }, + weight: { value: "normal" }, + }, +}; + +const player = { + 1: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 2: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 3: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 4: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 5: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 6: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 7: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 8: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, +}; + +const shadowAlpha = { + value: 0.32, +}; + +export default function dark(): Theme { + return { + backgroundColor, + borderColor, + textColor, + iconColor, + editor, + syntax, + player, + shadowAlpha, }; -} \ No newline at end of file +} From 210eb2f6b141cfdbf7bb47a0cc74a25a7925a2ad Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Thu, 31 Mar 2022 17:51:25 -0700 Subject: [PATCH 42/71] wip --- message.txt | 1672 ++++++++++++++++++++++++++++++++++++++++++++++++ styles/dark.ts | 780 +++++++++++----------- 2 files changed, 2063 insertions(+), 389 deletions(-) create mode 100644 message.txt diff --git a/message.txt b/message.txt new file mode 100644 index 0000000000000000000000000000000000000000..f086360d37f8ee060cb030b5f2026d7a81f4864c --- /dev/null +++ b/message.txt @@ -0,0 +1,1672 @@ +{ + "core": { + "color": { + "neutral": { + "0": { + "value": "#FFFFFF", + "type": "color" + }, + "50": { + "value": "#F8F8F8", + "type": "color" + }, + "100": { + "value": "#F0F0F0", + "type": "color" + }, + "150": { + "value": "#E1E1E1", + "type": "color" + }, + "200": { + "value": "#D2D2D2", + "type": "color" + }, + "250": { + "value": "#C3C3C3", + "type": "color" + }, + "300": { + "value": "#B4B4B4", + "type": "color" + }, + "350": { + "value": "#A5A5A5", + "type": "color" + }, + "400": { + "value": "#969696", + "type": "color" + }, + "450": { + "value": "#878787", + "type": "color" + }, + "500": { + "value": "#787878", + "type": "color" + }, + "550": { + "value": "#696969", + "type": "color" + }, + "600": { + "value": "#5A5A5A", + "type": "color" + }, + "650": { + "value": "#4B4B4B", + "type": "color" + }, + "700": { + "value": "#3C3C3C", + "type": "color" + }, + "750": { + "value": "#262626", + "type": "color" + }, + "800": { + "value": "#1E1E1E", + "type": "color" + }, + "850": { + "value": "#0F0F0F", + "type": "color" + }, + "900": { + "value": "#000000", + "type": "color" + } + }, + "steel": { + "0": { + "value": "#F8FAFC", + "type": "color" + }, + "100": { + "value": "#F1F5F9", + "type": "color" + }, + "200": { + "value": "#E2E8F0", + "type": "color" + }, + "300": { + "value": "#CBD5E1", + "type": "color" + }, + "400": { + "value": "#94A3BA", + "type": "color" + }, + "500": { + "value": "#64748B", + "type": "color" + }, + "600": { + "value": "#475569", + "type": "color" + }, + "700": { + "value": "#334155", + "type": "color" + }, + "800": { + "value": "#1E293B", + "type": "color" + }, + "900": { + "value": "#0F172A", + "type": "color" + } + }, + "gray": { + "0": { + "value": "#FAFAFA", + "type": "color" + }, + "100": { + "value": "#F4F4F5", + "type": "color" + }, + "200": { + "value": "#E4E4E7", + "type": "color" + }, + "300": { + "value": "#D4D4D8", + "type": "color" + }, + "400": { + "value": "#A1A1AA", + "type": "color" + }, + "500": { + "value": "#71717A", + "type": "color" + }, + "600": { + "value": "#52525B", + "type": "color" + }, + "700": { + "value": "#3F3F46", + "type": "color" + }, + "800": { + "value": "#27272A", + "type": "color" + }, + "900": { + "value": "#18181B", + "type": "color" + } + }, + "rose": { + "0": { + "value": "#FFF1F2", + "type": "color" + }, + "100": { + "value": "#FFE4E6", + "type": "color" + }, + "200": { + "value": "#FECDD3", + "type": "color" + }, + "300": { + "value": "#FDA4AF", + "type": "color" + }, + "400": { + "value": "#FB7185", + "type": "color" + }, + "500": { + "value": "#F43F5E", + "type": "color" + }, + "600": { + "value": "#E11D48", + "type": "color" + }, + "700": { + "value": "#BE123C", + "type": "color" + }, + "800": { + "value": "#9F1239", + "type": "color" + }, + "900": { + "value": "#881337", + "type": "color" + } + }, + "red": { + "0": { + "value": "#FEF2F2", + "type": "color" + }, + "100": { + "value": "#FEE2E2", + "type": "color" + }, + "200": { + "value": "#FECACA", + "type": "color" + }, + "300": { + "value": "#FCA5A5", + "type": "color" + }, + "400": { + "value": "#F87171", + "type": "color" + }, + "500": { + "value": "#EF4444", + "type": "color" + }, + "600": { + "value": "#DC2626", + "type": "color" + }, + "700": { + "value": "#B91C1C", + "type": "color" + }, + "800": { + "value": "#991B1B", + "type": "color" + }, + "900": { + "value": "#7F1D1D", + "type": "color" + } + }, + "orange": { + "0": { + "value": "#FFF7ED", + "type": "color" + }, + "100": { + "value": "#FFEDD5", + "type": "color" + }, + "200": { + "value": "#FED7AA", + "type": "color" + }, + "300": { + "value": "#FDBA74", + "type": "color" + }, + "400": { + "value": "#FB923C", + "type": "color" + }, + "500": { + "value": "#F97316", + "type": "color" + }, + "600": { + "value": "#EA580C", + "type": "color" + }, + "700": { + "value": "#C2410C", + "type": "color" + }, + "800": { + "value": "#9A3412", + "type": "color" + }, + "900": { + "value": "#7C2D12", + "type": "color" + } + }, + "amber": { + "0": { + "value": "#FFFBEB", + "type": "color" + }, + "100": { + "value": "#FEF3C7", + "type": "color" + }, + "200": { + "value": "#FDE68A", + "type": "color" + }, + "300": { + "value": "#FCD34D", + "type": "color" + }, + "400": { + "value": "#FBBF24", + "type": "color" + }, + "500": { + "value": "#F59E0B", + "type": "color" + }, + "600": { + "value": "#D97706", + "type": "color" + }, + "700": { + "value": "#B45309", + "type": "color" + }, + "800": { + "value": "#92400E", + "type": "color" + }, + "900": { + "value": "#78350F", + "type": "color" + } + }, + "yellow": { + "0": { + "value": "#FEFCE8", + "type": "color" + }, + "100": { + "value": "#FEF9C3", + "type": "color" + }, + "200": { + "value": "#FEF08A", + "type": "color" + }, + "300": { + "value": "#FDE047", + "type": "color" + }, + "400": { + "value": "#FACC15", + "type": "color" + }, + "500": { + "value": "#EAB308", + "type": "color" + }, + "600": { + "value": "#CA8A04", + "type": "color" + }, + "700": { + "value": "#A16207", + "type": "color" + }, + "800": { + "value": "#854D0E", + "type": "color" + }, + "900": { + "value": "#713F12", + "type": "color" + } + }, + "lime": { + "0": { + "value": "#F7FEE7", + "type": "color" + }, + "100": { + "value": "#ECFCCB", + "type": "color" + }, + "200": { + "value": "#D9F99D", + "type": "color" + }, + "300": { + "value": "#BEF264", + "type": "color" + }, + "400": { + "value": "#A3E635", + "type": "color" + }, + "500": { + "value": "#84CC16", + "type": "color" + }, + "600": { + "value": "#65A30D", + "type": "color" + }, + "700": { + "value": "#4D7C0F", + "type": "color" + }, + "800": { + "value": "#3F6212", + "type": "color" + }, + "900": { + "value": "#365314", + "type": "color" + } + }, + "green": { + "0": { + "value": "#F0FDF4", + "type": "color" + }, + "100": { + "value": "#DCFCE7", + "type": "color" + }, + "200": { + "value": "#BBF7D0", + "type": "color" + }, + "300": { + "value": "#86EFAC", + "type": "color" + }, + "400": { + "value": "#4ADE80", + "type": "color" + }, + "500": { + "value": "#22C55E", + "type": "color" + }, + "600": { + "value": "#16A34A", + "type": "color" + }, + "700": { + "value": "#15803D", + "type": "color" + }, + "800": { + "value": "#166534", + "type": "color" + }, + "900": { + "value": "#14532D", + "type": "color" + } + }, + "emerald": { + "0": { + "value": "#ECFDF5", + "type": "color" + }, + "100": { + "value": "#D1FAE5", + "type": "color" + }, + "200": { + "value": "#A7F3D0", + "type": "color" + }, + "300": { + "value": "#6EE7B7", + "type": "color" + }, + "400": { + "value": "#34D399", + "type": "color" + }, + "500": { + "value": "#10B981", + "type": "color" + }, + "600": { + "value": "#059669", + "type": "color" + }, + "700": { + "value": "#047857", + "type": "color" + }, + "800": { + "value": "#065F46", + "type": "color" + }, + "900": { + "value": "#064E3B", + "type": "color" + } + }, + "teal": { + "0": { + "value": "#F0FDFA", + "type": "color" + }, + "100": { + "value": "#CCFBF1", + "type": "color" + }, + "200": { + "value": "#99F6E4", + "type": "color" + }, + "300": { + "value": "#5EEAD4", + "type": "color" + }, + "400": { + "value": "#2DD4BF", + "type": "color" + }, + "500": { + "value": "#14B8A6", + "type": "color" + }, + "600": { + "value": "#0D9488", + "type": "color" + }, + "700": { + "value": "#0F766E", + "type": "color" + }, + "800": { + "value": "#115E59", + "type": "color" + }, + "900": { + "value": "#134E4A", + "type": "color" + } + }, + "cyan": { + "0": { + "value": "#ECFEFF", + "type": "color" + }, + "100": { + "value": "#CFFAFE", + "type": "color" + }, + "200": { + "value": "#A5F3FC", + "type": "color" + }, + "300": { + "value": "#67E8F9", + "type": "color" + }, + "400": { + "value": "#22D3EE", + "type": "color" + }, + "500": { + "value": "#06BBD4", + "type": "color" + }, + "600": { + "value": "#0891B2", + "type": "color" + }, + "700": { + "value": "#0E7490", + "type": "color" + }, + "800": { + "value": "#155E75", + "type": "color" + }, + "900": { + "value": "#164E63", + "type": "color" + } + }, + "sky": { + "0": { + "value": "#F0F9FF", + "type": "color" + }, + "100": { + "value": "#E0F2FE", + "type": "color" + }, + "200": { + "value": "#BAE6FD", + "type": "color" + }, + "300": { + "value": "#7DD3FC", + "type": "color" + }, + "400": { + "value": "#38BDF8", + "type": "color" + }, + "500": { + "value": "#0EA5E9", + "type": "color" + }, + "600": { + "value": "#0284C7", + "type": "color" + }, + "700": { + "value": "#0369A1", + "type": "color" + }, + "800": { + "value": "#075985", + "type": "color" + }, + "900": { + "value": "#0C4A6E", + "type": "color" + } + }, + "blue": { + "0": { + "value": "#EFF6FF", + "type": "color" + }, + "100": { + "value": "#DBEAFE", + "type": "color" + }, + "200": { + "value": "#BFDBFE", + "type": "color" + }, + "300": { + "value": "#93C5FD", + "type": "color" + }, + "400": { + "value": "#60A5FA", + "type": "color" + }, + "500": { + "value": "#3B82F6", + "type": "color" + }, + "600": { + "value": "#2563EB", + "type": "color" + }, + "700": { + "value": "#1D4ED8", + "type": "color" + }, + "800": { + "value": "#1E40A4", + "type": "color" + }, + "900": { + "value": "#1E3A8A", + "type": "color" + } + }, + "indigo": { + "0": { + "value": "#EEF2FF", + "type": "color" + }, + "100": { + "value": "#E0E7FF", + "type": "color" + }, + "200": { + "value": "#C7D2FE", + "type": "color" + }, + "300": { + "value": "#A5B4FC", + "type": "color" + }, + "400": { + "value": "#818CF8", + "type": "color" + }, + "500": { + "value": "#6366F1", + "type": "color" + }, + "600": { + "value": "#4F46E5", + "type": "color" + }, + "700": { + "value": "#4338CA", + "type": "color" + }, + "800": { + "value": "#3730A3", + "type": "color" + }, + "900": { + "value": "#312E81", + "type": "color" + } + }, + "violet": { + "0": { + "value": "#F5F3FF", + "type": "color" + }, + "100": { + "value": "#EDE9FE", + "type": "color" + }, + "200": { + "value": "#DDD6FE", + "type": "color" + }, + "300": { + "value": "#C4B5FD", + "type": "color" + }, + "400": { + "value": "#A78BFA", + "type": "color" + }, + "500": { + "value": "#8B5CF6", + "type": "color" + }, + "600": { + "value": "#7C3AED", + "type": "color" + }, + "700": { + "value": "#6D28D9", + "type": "color" + }, + "800": { + "value": "#5B21B6", + "type": "color" + }, + "900": { + "value": "#4C1D95", + "type": "color" + } + }, + "purple": { + "0": { + "value": "#FAF5FF", + "type": "color" + }, + "100": { + "value": "#F3E8FF", + "type": "color" + }, + "200": { + "value": "#E9D5FF", + "type": "color" + }, + "300": { + "value": "#D8B4FE", + "type": "color" + }, + "400": { + "value": "#C084FC", + "type": "color" + }, + "500": { + "value": "#A855F7", + "type": "color" + }, + "600": { + "value": "#9333EA", + "type": "color" + }, + "700": { + "value": "#7E22CE", + "type": "color" + }, + "800": { + "value": "#6B21A8", + "type": "color" + }, + "900": { + "value": "#581C87", + "type": "color" + } + }, + "fuschia": { + "0": { + "value": "#FDF4FF", + "type": "color" + }, + "100": { + "value": "#FAE8FF", + "type": "color" + }, + "200": { + "value": "#F5D0FE", + "type": "color" + }, + "300": { + "value": "#F0ABFC", + "type": "color" + }, + "400": { + "value": "#E879F9", + "type": "color" + }, + "500": { + "value": "#D946E4", + "type": "color" + }, + "600": { + "value": "#C026D3", + "type": "color" + }, + "700": { + "value": "#A21CAF", + "type": "color" + }, + "800": { + "value": "#86198F", + "type": "color" + }, + "900": { + "value": "#701A75", + "type": "color" + } + }, + "pink": { + "0": { + "value": "#FDF2F8", + "type": "color" + }, + "100": { + "value": "#FCE7F3", + "type": "color" + }, + "200": { + "value": "#FBCFE8", + "type": "color" + }, + "300": { + "value": "#F988D4", + "type": "color" + }, + "400": { + "value": "#F472B6", + "type": "color" + }, + "500": { + "value": "#EC4899", + "type": "color" + }, + "600": { + "value": "#DB2777", + "type": "color" + }, + "700": { + "value": "#BE185D", + "type": "color" + }, + "800": { + "value": "#9D174D", + "type": "color" + }, + "900": { + "value": "#831843", + "type": "color" + } + } + }, + "font-weight": { + "normal": { + "100": { + "value": "Thin", + "type": "fontWeights" + }, + "200": { + "value": "Light", + "type": "fontWeights" + }, + "400": { + "value": "Regular", + "type": "fontWeights" + }, + "500": { + "value": "Semibold", + "type": "fontWeights" + }, + "600": { + "value": "Bold", + "type": "fontWeights" + }, + "800": { + "value": "Heavy", + "type": "fontWeights" + } + }, + "normal-bold": { + "100": { + "value": "Thin", + "type": "fontWeights" + }, + "200": { + "value": "Light", + "type": "fontWeights" + }, + "400": { + "value": "Regular", + "type": "fontWeights" + }, + "500": { + "value": "Semibold", + "type": "fontWeights" + }, + "600": { + "value": "Bold", + "type": "fontWeights" + }, + "800": { + "value": "Heavy", + "type": "fontWeights" + } + }, + "italic": { + "100": { + "value": "Thin Italic", + "type": "fontWeights" + }, + "200": { + "value": "Light", + "type": "fontWeights" + }, + "400": { + "value": "Regular", + "type": "fontWeights" + }, + "500": { + "value": "Semibold", + "type": "fontWeights" + }, + "600": { + "value": "Bold", + "type": "fontWeights" + }, + "800": { + "value": "Heavy", + "type": "fontWeights" + } + }, + "italic-bold": { + "100": { + "value": "Thin Italic", + "type": "fontWeights" + }, + "200": { + "value": "Light", + "type": "fontWeights" + }, + "400": { + "value": "Regular", + "type": "fontWeights" + }, + "500": { + "value": "Semibold", + "type": "fontWeights" + }, + "600": { + "value": "Bold", + "type": "fontWeights" + }, + "800": { + "value": "Heavy", + "type": "fontWeights" + } + } + }, + "font-family": { + "zed-mono": { + "value": "Zed Mono", + "type": "fontFamilies" + }, + "zed-sans": { + "value": "Zed Sans", + "type": "fontFamilies" + } + }, + "font-size": { + "3xs": { + "value": "8", + "type": "fontSizes" + }, + "2xs": { + "value": "10", + "type": "fontSizes" + }, + "xs": { + "value": "12", + "type": "fontSizes" + }, + "sm": { + "value": "14", + "type": "fontSizes" + }, + "base": { + "value": "16", + "type": "fontSizes" + }, + "lg": { + "value": "18", + "type": "fontSizes" + }, + "xl": { + "value": "20", + "type": "fontSizes" + } + }, + "leading": { + "xs": { + "value": "16", + "type": "lineHeights" + }, + "sm": { + "value": "20", + "type": "lineHeights" + }, + "base": { + "value": "24", + "type": "lineHeights" + }, + "lg": { + "value": "26", + "type": "lineHeights" + }, + "xl": { + "value": "28", + "type": "lineHeights" + }, + "2xl": { + "value": "30", + "type": "lineHeights" + } + }, + "text-decoration": { + "none": { + "value": "none", + "type": "textDecoration" + } + }, + "ui-text": { + "normal": { + "base": { + "value": { + "fontFamily": "{font-family.zed-sans}", + "fontWeight": "$font-weight.normal.400", + "lineHeight": "{leading.sm}", + "fontSize": "{font-size.sm}", + "letterSpacing": "{letter-spacing.base}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "{text-decoration.none}" + }, + "type": "typography", + "bold": { + "value": { + "fontFamily": "$text.family.zed-sans", + "fontWeight": "$text.weight.bold", + "lineHeight": "$text.leading.base", + "fontSize": "$text.size.xs", + "letterSpacing": "$text.tracking.default", + "paragraphSpacing": "$text.paragraphSpacing.0", + "textCase": "$text.case.default", + "decoration": "$text.decoration.none", + "textDecoration": "$text.decoration.none" + }, + "type": "typography" + } + }, + "sm": { + "value": { + "fontFamily": "{font-family.zed-sans}", + "fontWeight": "$font-weight.normal.400", + "lineHeight": "{leading.xs}", + "fontSize": "{font-size.xs}", + "letterSpacing": "{letter-spacing.base}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "{text-decoration.none}" + }, + "type": "typography", + "bold": { + "value": { + "fontFamily": "$text.family.zed-sans", + "fontWeight": "$text.weight.bold", + "lineHeight": "$text.leading.base", + "fontSize": "$text.size.xs", + "letterSpacing": "$text.tracking.default", + "paragraphSpacing": "$text.paragraphSpacing.0", + "textCase": "$text.case.default", + "decoration": "$text.decoration.none", + "textDecoration": "$text.decoration.none" + }, + "type": "typography" + } + } + }, + "bold": { + "base": { + "value": { + "fontFamily": "{font-family.zed-sans}", + "fontWeight": "$font-weight.normal.600", + "lineHeight": "{leading.base}", + "fontSize": "{font-size.sm}", + "letterSpacing": "{letter-spacing.sm}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "{text-decoration.none}" + }, + "type": "typography" + }, + "sm": { + "value": { + "fontFamily": "{font-family.zed-sans}", + "fontWeight": "$font-weight.normal.600", + "lineHeight": "{leading.xs}", + "fontSize": "{font-size.xs}", + "letterSpacing": "{letter-spacing.base}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "{text-decoration.none}" + }, + "type": "typography" + } + } + }, + "buffer-text": { + "normal": { + "xs": { + "value": { + "fontFamily": "{font-family.zed-mono}", + "fontWeight": "$font-weight.normal.400", + "lineHeight": "{leading.xs}", + "fontSize": "{font-size.xs}", + "letterSpacing": "{letter-spacing.base}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "{text-decoration.none}" + }, + "type": "typography" + }, + "sm": { + "value": { + "fontFamily": "{font-family.zed-mono}", + "fontWeight": "$font-weight.normal.400", + "lineHeight": "{leading.sm}", + "fontSize": "{font-size.sm}", + "letterSpacing": "{letter-spacing.base}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "{text-decoration.none}" + }, + "type": "typography" + }, + "base": { + "value": { + "fontFamily": "{font-family.zed-mono}", + "fontWeight": "$font-weight.normal.400", + "lineHeight": "{leading.lg}", + "fontSize": "{font-size.base}", + "letterSpacing": "{letter-spacing.base}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "$text.decoration.default" + }, + "type": "typography" + }, + "lg": { + "value": { + "fontFamily": "{font-family.zed-mono}", + "fontWeight": "$font-weight.normal.400", + "lineHeight": "{leading.lg}", + "fontSize": "{font-size.lg}", + "letterSpacing": "{letter-spacing.base}", + "paragraphSpacing": "{paragraph-spacing.default}", + "textCase": "{text-case.default}", + "decoration": "{text-decoration.none}", + "textDecoration": "$text.decoration.default" + }, + "type": "typography" + } + } + }, + "letter-spacing": { + "tight": { + "value": "-0.05", + "type": "letterSpacing" + }, + "base": { + "value": "0%", + "type": "letterSpacing" + }, + "wide": { + "value": "0.05", + "type": "letterSpacing" + } + }, + "paragraph-spacing": { + "default": { + "value": "0", + "type": "paragraphSpacing" + } + }, + "text-case": { + "default": { + "value": "none", + "type": "textCase" + }, + "lowercase": { + "value": "lowercase", + "type": "textCase" + }, + "uppercase": { + "value": "uppercase", + "type": "textCase" + } + }, + "space": { + "s-0": { + "value": "0", + "type": "spacing" + }, + "s-4": { + "value": "{var.base}", + "type": "spacing" + }, + "s-8": { + "value": "{var.base} * 2", + "type": "spacing" + }, + "s-12": { + "value": "{var.base} * 3", + "type": "spacing" + }, + "s-16": { + "value": "{var.base} * 4", + "type": "spacing" + } + }, + "internal": { + "mac-os": { + "red": { + "value": "#FF5E57", + "type": "color" + }, + "yellow": { + "value": "#FFBB2E", + "type": "color" + }, + "green": { + "value": "#38C149", + "type": "color" + } + } + }, + "border-radius": { + "xs": { + "value": "2", + "type": "borderRadius" + }, + "sm": { + "value": "4", + "type": "borderRadius" + }, + "base": { + "value": "6", + "type": "borderRadius" + }, + "lg": { + "value": "8", + "type": "borderRadius" + }, + "xl": { + "value": "10", + "type": "borderRadius" + } + }, + "border-width": { + "base": { + "value": "1", + "type": "borderWidth" + } + }, + "elevation": { + "300": { + "value": { + "x": "0", + "y": "4", + "blur": "12", + "spread": "0", + "color": "rgba({color.neutral.900}, {shadow.base})", + "type": "dropShadow" + }, + "type": "boxShadow" + } + }, + "var": { + "base": { + "value": "4", + "type": "other" + } + } + }, + "dark": { + "text-color": { + "primary": { + "value": "{color.neutral.150}", + "type": "color" + }, + "secondary": { + "value": "{color.neutral.350}", + "type": "color" + }, + "muted": { + "value": "{color.neutral.550}", + "type": "color" + }, + "minimal": { + "value": "{color.neutral.750}", + "type": "color" + }, + "active": { + "value": "{color.neutral.0}", + "type": "color" + }, + "disabled": { + "value": "{color.neutral.650}", + "type": "color" + }, + "positive": { + "value": "{color.green.600}", + "type": "color" + }, + "negative": { + "value": "{color.red.400}", + "type": "color" + }, + "warning": { + "value": "{color.amber.300}", + "type": "color" + }, + "info": { + "value": "{color.blue.500}", + "type": "color" + } + }, + "icon-color": { + "primary": { + "value": "{text.secondary}", + "type": "color" + }, + "secondary": { + "value": "{text.muted}", + "type": "color" + }, + "active": { + "value": "{text.active}", + "type": "color" + }, + "disabled": { + "value": "{text.disabled}", + "type": "color" + }, + "positive": { + "value": "{color.green.600}", + "type": "color" + }, + "negative": { + "value": "{color.red.400}", + "type": "color" + }, + "warning": { + "value": "{color.amber.300}", + "type": "color" + }, + "info": { + "value": "{color.blue.500}", + "type": "color" + } + }, + "icon-size": { + "default": { + "value": "16", + "type": "size" + } + }, + "background-color": { + "100": { + "value": "{color.neutral.750}", + "type": "color", + "description": "The app background. Used for title-bar, other daylight." + }, + "300": { + "value": "{color.neutral.800}", + "type": "color", + "description": "The primary surface layer. Used for tabs, panels, pop-overs, etc." + }, + "500": { + "value": "{color.neutral.900}", + "type": "color", + "description": "Used for the buffer background and active buffer tabs." + }, + "active": { + "value": "rgba({icon.active}}, 0.1)", + "type": "color" + }, + "focused": { + "value": "// wip", + "type": "color" + }, + "disabled": { + "value": "// wip", + "type": "color" + }, + "positive": { + "value": "{color.green.600}", + "type": "color" + }, + "negative": { + "value": "{color.red.400}", + "type": "color" + }, + "warning": { + "value": "{color.amber.300}", + "type": "color" + }, + "info": { + "value": "{color.blue.500}", + "type": "color" + } + }, + "border-color": { + "default": { + "value": "{color.neutral.850}", + "type": "color" + }, + "secondary": { + "value": "{color.neutral.700}", + "type": "color" + }, + "minimal": { + "value": "{color.neutral.750}", + "type": "color" + }, + "active": { + "value": "{color.neutral.500}", + "type": "color" + }, + "focused": { + "value": "{color.neutral.100}", + "type": "color" + } + }, + "editor": { + "background-color": { + "value": "{surface.500}", + "type": "color" + }, + "indent-guide": { + "value": "{icon.disabled}", + "type": "color" + }, + "indent-guide-active": { + "value": "{icon.secondary}", + "type": "color" + }, + "highlight": { + "active-line": { + "value": "rgba({color.neutral.0}, 0.08)", + "type": "color" + }, + "selection": { + "value": "{player.selection.one}", + "type": "color" + }, + "folded-line": { + "value": "rgba({surface.500}, 0.03)", + "type": "color" + }, + "occurrence": { + "value": "rgba({text.active}, 0.15)", + "type": "color" + }, + "matching-bracket": { + "value": "rgba({color.indigo.500}, 0.8)", + "type": "color" + }, + "match": { + "value": "rgba({color.blue.500},0.5)", + "type": "color" + }, + "active-match": { + "value": "rgba({color.blue.500},0.8)", + "type": "color" + } + }, + "gutter": { + "primary": { + "value": "{text.muted}", + "type": "color" + }, + "active": { + "value": "{text.active}", + "type": "color" + } + }, + "syntax": { + "primary": { + "value": "{text.primary}", + "type": "color" + }, + "comment": { + "value": "{color.lime.200}", + "type": "color" + }, + "punctuation": { + "value": "{text.secondary}", + "type": "color" + }, + "constant": { + "value": "{syntax.primary}", + "type": "color" + }, + "keyword": { + "value": "{color.sky.400}", + "type": "color" + }, + "function": { + "value": "{color.yellow.200}", + "type": "color" + }, + "type": { + "value": "{color.teal.300}", + "type": "color" + }, + "variant": { + "value": "{syntax.type}", + "type": "color" + }, + "property": { + "value": "{color.sky.300}", + "type": "color" + }, + "enum": { + "value": "{syntax.operator}", + "type": "color" + }, + "operator": { + "value": "{syntax.keyword}", + "type": "color" + }, + "string": { + "value": "{color.orange.300}", + "type": "color" + }, + "number": { + "value": "{syntax.primary}", + "type": "color" + }, + "boolean": { + "value": "{syntax.number}", + "type": "color" + }, + "predictive": { + "value": "{text.muted}", + "type": "color" + } + } + }, + "player": { + "color": { + "1": { + "value": "{color.blue.600}", + "type": "color" + }, + "2": { + "value": "{color.indigo.500}", + "type": "color" + }, + "3": { + "value": "{color.green.500}", + "type": "color" + }, + "4": { + "value": "{color.orange.500}", + "type": "color" + }, + "5": { + "value": "{color.purple.500}", + "type": "color" + }, + "6": { + "value": "{color.teal.400}", + "type": "color" + }, + "7": { + "value": "{color.pink.400}", + "type": "color" + }, + "8": { + "value": "{color.yellow.400}", + "type": "color" + } + }, + "selection": { + "1": { + "value": "rgba({color.blue.600},0.1)", + "type": "color" + }, + "2": { + "value": "rgba({color.indigo.500}, 0.1)", + "type": "color" + }, + "3": { + "value": "rgba({color.green.500}, 0.1)", + "type": "color" + }, + "4": { + "value": "rgba({color.orange.500}, 0.15)", + "type": "color" + }, + "5": { + "value": "rgba({color.purple.500}, 0.1)", + "type": "color" + }, + "6": { + "value": "rgba({color.teal.400}, 0.1)", + "type": "color" + }, + "7": { + "value": "rgba({color.pink.400}, 0.1)", + "type": "color" + }, + "8": { + "value": "rgba({color.yellow.400}, 0.15)", + "type": "color" + } + } + }, + "shadow": { + "base": { + "value": "0.36", + "type": "opacity" + } + } + } +} \ No newline at end of file diff --git a/styles/dark.ts b/styles/dark.ts index efd2d3b8a49b1b43c53b8ee782d13615c0f3e0d2..bfcac3db816697fdb537860e7ed8a4e981ccd860 100644 --- a/styles/dark.ts +++ b/styles/dark.ts @@ -2,455 +2,457 @@ import core from "./core"; import Theme from "./theme"; const backgroundColor = { - 100: { - base: { - value: core.color.neutral[999].value, + 100: { + base: { + value: core.color.neutral[999].value, + }, + hovered: { + value: core.color.neutral[999].value, + }, + active: { + value: core.color.neutral[999].value, + }, + focused: { + value: core.color.neutral[999].value, + }, + }, + 300: { + base: { + value: core.color.neutral[999].value, + }, + hovered: { + value: core.color.neutral[999].value, + }, + active: { + value: core.color.neutral[999].value, + }, + focused: { + value: core.color.neutral[999].value, + }, + }, + 500: { + base: { + value: core.color.neutral[999].value, + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + ok: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + error: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + warning: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, + }, + info: { + base: { + value: "#000000", + }, + hovered: { + value: "#000000", + }, + active: { + value: "#000000", + }, + focused: { + value: "#000000", + }, }, - hovered: { - value: core.color.neutral[999].value, - }, - active: { - value: core.color.neutral[999].value, - }, - focused: { - value: core.color.neutral[999].value, - }, - }, - 300: { - base: { - value: core.color.neutral[999].value, +}; + +const borderColor = { + primary: { + value: "#000000", }, - hovered: { - value: core.color.neutral[999].value, + secondary: { + value: "#000000", }, - active: { - value: core.color.neutral[999].value, + muted: { + value: "#000000", }, focused: { - value: core.color.neutral[999].value, - }, - }, - 500: { - base: { - value: core.color.neutral[999].value, - }, - hovered: { - value: "#000000", + value: "#000000", }, active: { - value: "#000000", - }, - focused: { - value: "#000000", + value: "#000000", }, - }, - ok: { - base: { - value: "#000000", + ok: { + value: "#000000", }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", + error: { + value: "#000000", }, - }, - error: { - base: { - value: "#000000", + warning: { + value: "#000000", }, - hovered: { - value: "#000000", + info: { + value: "#000000", }, - active: { - value: "#000000", +}; + +const textColor = { + primary: { + value: core.color.neutral[150].value, }, - focused: { - value: "#000000", + secondary: { + value: core.color.neutral[350].value, }, - }, - warning: { - base: { - value: "#000000", + muted: { + value: core.color.neutral[550].value, }, - hovered: { - value: "#000000", + placeholder: { + value: core.color.neutral[750].value, }, active: { - value: "#000000", + value: core.color.neutral[0].value, }, - focused: { - value: "#000000", + feature: { + //TODO: (design) define feature and it's correct value + value: core.color.sky[500].value, }, - }, - info: { - base: { - value: "#000000", + ok: { + value: core.color.green[600].value, }, - hovered: { - value: "#000000", + error: { + value: core.color.red[400].value, }, - active: { - value: "#000000", + warning: { + value: core.color.amber[300].value, }, - focused: { - value: "#000000", + info: { + value: core.color.blue[500].value, }, - }, -}; - -const borderColor = { - primary: { - value: "#000000", - }, - secondary: { - value: "#000000", - }, - muted: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - active: { - value: "#000000", - }, - ok: { - value: "#000000", - }, - error: { - value: "#000000", - }, - warning: { - value: "#000000", - }, - info: { - value: "#000000", - }, -}; - -const textColor = { - primary: { - value: core.color.neutral[150].value, - }, - secondary: { - value: core.color.neutral[350].value, - }, - muted: { - value: core.color.neutral[550].value, - }, - placeholder: { - value: core.color.neutral[750].value, - }, - active: { - value: core.color.neutral[0].value, - }, - feature: { - //TODO: (design) define feature and it's correct value - value: core.color.sky[500].value, - }, - ok: { - value: core.color.green[600].value, - }, - error: { - value: core.color.red[400].value, - }, - warning: { - value: core.color.amber[300].value, - }, - info: { - value: core.color.blue[500].value, - }, }; const iconColor = { - primary: { - value: core.color.neutral[300].value, - }, - secondary: { - value: core.color.neutral[500].value, - }, - muted: { - value: core.color.neutral[600].value, - }, - placeholder: { - value: core.color.neutral[700].value, - }, - active: { - value: core.color.neutral[50].value, - }, - feature: { - //TODO: (design) define feature and it's correct value - value: core.color.sky[500].value, - }, - ok: { - value: core.color.green[600].value, - }, - error: { - value: core.color.red[400].value, - }, - warning: { - value: core.color.amber[300].value, - }, - info: { - value: core.color.blue[500].value, - }, -}; - -const editor = { - background: { - value: backgroundColor[500].base.value, - }, - indent_guide: { - value: core.color.neutral[999].value, - }, - indent_guide_active: { - value: core.color.neutral[999].value, - }, - line: { - active: { - value: core.color.neutral[999].value, - }, - highlighted: { - value: core.color.neutral[999].value, - }, - inserted: { - value: core.color.neutral[999].value, - }, - deleted: { - value: core.color.neutral[999].value, - }, - modified: { - value: core.color.neutral[999].value, + primary: { + value: core.color.neutral[300].value, }, - }, - highlight: { - selection: { - value: core.color.neutral[999].value, + secondary: { + value: core.color.neutral[500].value, }, - occurrence: { - value: core.color.neutral[999].value, + muted: { + value: core.color.neutral[600].value, }, - activeOccurrence: { - value: core.color.neutral[999].value, + placeholder: { + value: core.color.neutral[700].value, }, - matchingBracket: { - value: core.color.neutral[999].value, + active: { + value: core.color.neutral[50].value, }, - match: { - value: core.color.neutral[999].value, + feature: { + //TODO: (design) define feature and it's correct value + value: core.color.sky[500].value, }, - activeMatch: { - value: core.color.neutral[999].value, + ok: { + value: core.color.green[600].value, }, - related: { - value: core.color.neutral[999].value, + error: { + value: core.color.red[400].value, }, - }, - gutter: { - primary: { - value: core.color.neutral[999].value, + warning: { + value: core.color.amber[300].value, }, - active: { - value: core.color.neutral[999].value, + info: { + value: core.color.blue[500].value, }, - }, }; -const syntax = { - primary: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - comment: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - punctuation: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - constant: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - keyword: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - function: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - type: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - variant: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - property: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - enum: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - operator: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - string: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - number: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - boolean: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, - predictive: { - color: { value: "000000" }, - weight: { value: "normal" }, - }, +const editor = { + background: { + value: backgroundColor[500].base.value, + }, + indent_guide: { + value: core.color.neutral[999].value, + }, + indent_guide_active: { + value: core.color.neutral[999].value, + }, + line: { + active: { + value: core.color.neutral[999].value, + }, + highlighted: { + value: core.color.neutral[999].value, + }, + inserted: { + value: core.color.neutral[999].value, + }, + deleted: { + value: core.color.neutral[999].value, + }, + modified: { + value: core.color.neutral[999].value, + }, + }, + highlight: { + selection: { + value: core.color.neutral[999].value, + }, + occurrence: { + value: core.color.neutral[999].value, + }, + activeOccurrence: { + value: core.color.neutral[999].value, + }, + matchingBracket: { + value: core.color.neutral[999].value, + }, + match: { + value: core.color.neutral[999].value, + }, + activeMatch: { + value: core.color.neutral[999].value, + }, + related: { + value: core.color.neutral[999].value, + }, + }, + gutter: { + primary: { + value: core.color.neutral[999].value, + }, + active: { + value: core.color.neutral[999].value, + }, + }, }; -const player = { - 1: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, - }, - 2: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, - }, - 3: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, - }, - 4: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, - }, - 5: { - baseColor: { - value: core.color.neutral[999].value, +const syntax = { + primary: { + color: { + value: core.color.neutral[150] + }, + weight: { value: "normal" }, }, - cursorColor: { - value: core.color.neutral[999].value, + comment: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - selectionColor: { - value: core.color.neutral[999].value, + punctuation: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - borderColor: { - value: core.color.neutral[999].value, + constant: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - }, - 6: { - baseColor: { - value: core.color.neutral[999].value, + keyword: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - cursorColor: { - value: core.color.neutral[999].value, + function: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - selectionColor: { - value: core.color.neutral[999].value, + type: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - borderColor: { - value: core.color.neutral[999].value, + variant: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - }, - 7: { - baseColor: { - value: core.color.neutral[999].value, + property: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - cursorColor: { - value: core.color.neutral[999].value, + enum: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - selectionColor: { - value: core.color.neutral[999].value, + operator: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - borderColor: { - value: core.color.neutral[999].value, + string: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - }, - 8: { - baseColor: { - value: core.color.neutral[999].value, + number: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - cursorColor: { - value: core.color.neutral[999].value, + boolean: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - selectionColor: { - value: core.color.neutral[999].value, + predictive: { + color: { value: "000000" }, + weight: { value: "normal" }, }, - borderColor: { - value: core.color.neutral[999].value, +}; + +const player = { + 1: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 2: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 3: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 4: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 5: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 6: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 7: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, + }, + 8: { + baseColor: { + value: core.color.neutral[999].value, + }, + cursorColor: { + value: core.color.neutral[999].value, + }, + selectionColor: { + value: core.color.neutral[999].value, + }, + borderColor: { + value: core.color.neutral[999].value, + }, }, - }, }; const shadowAlpha = { - value: 0.32, + value: 0.32, }; export default function dark(): Theme { - return { - backgroundColor, - borderColor, - textColor, - iconColor, - editor, - syntax, - player, - shadowAlpha, - }; + return { + backgroundColor, + borderColor, + textColor, + iconColor, + editor, + syntax, + player, + shadowAlpha, + }; } From f11e0aeda936b60ff42578e82a4a6cca43eb5813 Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Thu, 31 Mar 2022 19:05:21 -0700 Subject: [PATCH 43/71] wip --- styles/core.ts | 102 +++++------ styles/dark.ts | 462 +++++++++++++----------------------------------- styles/theme.ts | 358 ++++++++++++++----------------------- 3 files changed, 307 insertions(+), 615 deletions(-) diff --git a/styles/core.ts b/styles/core.ts index e9e81982e456c0ffe151b83ac36767d62140c6ba..49e376b4ebf81968b2681179be46b3c5b27055b6 100644 --- a/styles/core.ts +++ b/styles/core.ts @@ -1,58 +1,58 @@ import { colorRamp } from "./lib"; export default { - fontFamily: { - sans: "Zed Sans", - mono: "Zed Mono", - }, - fontSize: { - "3xs": { - value: "8", - type: "fontSizes", + fontFamily: { + sans: "Zed Sans", + mono: "Zed Mono", }, - "2xs": { - value: "10", - type: "fontSizes", + fontSize: { + "3xs": { + value: "8", + type: "fontSizes", + }, + "2xs": { + value: "10", + type: "fontSizes", + }, + xs: { + value: "12", + type: "fontSizes", + }, + sm: { + value: "14", + type: "fontSizes", + }, + md: { + value: "16", + type: "fontSizes", + }, + lg: { + value: "18", + type: "fontSizes", + }, + xl: { + value: "20", + type: "fontSizes", + }, }, - xs: { - value: "12", - type: "fontSizes", + color: { + neutral: colorRamp(["black", "white"], { steps: 21, increment: 50 }), + rose: colorRamp("#F43F5EFF"), + red: colorRamp("#EF4444FF"), + orange: colorRamp("#F97316FF"), + amber: colorRamp("#F59E0BFF"), + yellow: colorRamp("#EAB308FF"), + lime: colorRamp("#84CC16FF"), + green: colorRamp("#22C55EFF"), + emerald: colorRamp("#10B981FF"), + teal: colorRamp("#14B8A6FF"), + cyan: colorRamp("#06BBD4FF"), + sky: colorRamp("#0EA5E9FF"), + blue: colorRamp("#3B82F6FF"), + indigo: colorRamp("#6366F1FF"), + violet: colorRamp("#8B5CF6FF"), + purple: colorRamp("#A855F7FF"), + fuschia: colorRamp("#D946E4FF"), + pink: colorRamp("#EC4899FF"), }, - sm: { - value: "14", - type: "fontSizes", - }, - md: { - value: "16", - type: "fontSizes", - }, - lg: { - value: "18", - type: "fontSizes", - }, - xl: { - value: "20", - type: "fontSizes", - }, - }, - color: { - neutral: colorRamp(["black", "white"], { steps: 21, increment: 50 }), - rose: colorRamp("#F43F5EFF"), - red: colorRamp("#EF4444FF"), - orange: colorRamp("#F97316FF"), - amber: colorRamp("#F59E0BFF"), - yellow: colorRamp("#EAB308FF"), - lime: colorRamp("#84CC16FF"), - green: colorRamp("#22C55EFF"), - emerald: colorRamp("#10B981FF"), - teal: colorRamp("#14B8A6FF"), - cyan: colorRamp("#06BBD4FF"), - sky: colorRamp("#0EA5E9FF"), - blue: colorRamp("#3B82F6FF"), - indigo: colorRamp("#6366F1FF"), - violet: colorRamp("#8B5CF6FF"), - purple: colorRamp("#A855F7FF"), - fuschia: colorRamp("#D946E4FF"), - pink: colorRamp("#EC4899FF"), - }, }; diff --git a/styles/dark.ts b/styles/dark.ts index bfcac3db816697fdb537860e7ed8a4e981ccd860..5b60bd0316a53fc24a830e23d428088675ac45de 100644 --- a/styles/dark.ts +++ b/styles/dark.ts @@ -1,442 +1,230 @@ import core from "./core"; import Theme from "./theme"; +const { color } = core; + const backgroundColor = { 100: { - base: { - value: core.color.neutral[999].value, - }, - hovered: { - value: core.color.neutral[999].value, - }, - active: { - value: core.color.neutral[999].value, - }, - focused: { - value: core.color.neutral[999].value, - }, + base: color.neutral[750], + hovered: color.neutral[750], + active: color.neutral[750], + focused: color.neutral[750], }, 300: { - base: { - value: core.color.neutral[999].value, - }, - hovered: { - value: core.color.neutral[999].value, - }, - active: { - value: core.color.neutral[999].value, - }, - focused: { - value: core.color.neutral[999].value, - }, + base: color.neutral[800], + hovered: color.neutral[800], + active: color.neutral[800], + focused: color.neutral[800], }, 500: { - base: { - value: core.color.neutral[999].value, - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, + base: color.neutral[900], + hovered: color.neutral[900], + active: color.neutral[900], + focused: color.neutral[900], }, ok: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, + base: color.green[600], + hovered: color.green[600], + active: color.green[600], + focused: color.green[600], }, error: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, + base: color.red[400], + hovered: color.red[400], + active: color.red[400], + focused: color.red[400], }, warning: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, + base: color.amber[300], + hovered: color.amber[300], + active: color.amber[300], + focused: color.amber[300], }, info: { - base: { - value: "#000000", - }, - hovered: { - value: "#000000", - }, - active: { - value: "#000000", - }, - focused: { - value: "#000000", - }, + base: color.blue[500], + hovered: color.blue[500], + active: color.blue[500], + focused: color.blue[500], }, }; const borderColor = { - primary: { - value: "#000000", - }, - secondary: { - value: "#000000", - }, - muted: { - value: "#000000", - }, - focused: { - value: "#000000", - }, - active: { - value: "#000000", - }, - ok: { - value: "#000000", - }, - error: { - value: "#000000", - }, - warning: { - value: "#000000", - }, - info: { - value: "#000000", - }, + primary: color.neutral[850], + secondary: color.neutral[700], + muted: color.neutral[750], + focused: color.neutral[100], + active: color.neutral[500], + ok: color.neutral[999], + error: color.neutral[999], + warning: color.neutral[999], + info: color.neutral[999], }; const textColor = { - primary: { - value: core.color.neutral[150].value, - }, - secondary: { - value: core.color.neutral[350].value, - }, - muted: { - value: core.color.neutral[550].value, - }, - placeholder: { - value: core.color.neutral[750].value, - }, - active: { - value: core.color.neutral[0].value, - }, - feature: { - //TODO: (design) define feature and it's correct value - value: core.color.sky[500].value, - }, - ok: { - value: core.color.green[600].value, - }, - error: { - value: core.color.red[400].value, - }, - warning: { - value: core.color.amber[300].value, - }, - info: { - value: core.color.blue[500].value, - }, + primary: color.neutral[150], + secondary: color.neutral[350], + muted: color.neutral[550], + placeholder: color.neutral[750], + active: color.neutral[0], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], }; const iconColor = { - primary: { - value: core.color.neutral[300].value, - }, - secondary: { - value: core.color.neutral[500].value, - }, - muted: { - value: core.color.neutral[600].value, - }, - placeholder: { - value: core.color.neutral[700].value, - }, - active: { - value: core.color.neutral[50].value, - }, - feature: { - //TODO: (design) define feature and it's correct value - value: core.color.sky[500].value, - }, - ok: { - value: core.color.green[600].value, - }, - error: { - value: core.color.red[400].value, - }, - warning: { - value: core.color.amber[300].value, - }, - info: { - value: core.color.blue[500].value, - }, + primary: color.neutral[300], + secondary: color.neutral[500], + muted: color.neutral[600], + placeholder: color.neutral[700], + active: color.neutral[50], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], }; const editor = { - background: { - value: backgroundColor[500].base.value, - }, - indent_guide: { - value: core.color.neutral[999].value, - }, - indent_guide_active: { - value: core.color.neutral[999].value, - }, + background: backgroundColor[500].base, + indent_guide: color.neutral[999], + indent_guide_active: color.neutral[999], line: { - active: { - value: core.color.neutral[999].value, - }, - highlighted: { - value: core.color.neutral[999].value, - }, - inserted: { - value: core.color.neutral[999].value, - }, - deleted: { - value: core.color.neutral[999].value, - }, - modified: { - value: core.color.neutral[999].value, - }, + active: color.neutral[999], + highlighted: color.neutral[999], + inserted: color.neutral[999], + deleted: color.neutral[999], + modified: color.neutral[999], }, highlight: { - selection: { - value: core.color.neutral[999].value, - }, - occurrence: { - value: core.color.neutral[999].value, - }, - activeOccurrence: { - value: core.color.neutral[999].value, - }, - matchingBracket: { - value: core.color.neutral[999].value, - }, - match: { - value: core.color.neutral[999].value, - }, - activeMatch: { - value: core.color.neutral[999].value, - }, - related: { - value: core.color.neutral[999].value, - }, + selection: color.neutral[999], + occurrence: color.neutral[999], + activeOccurrence: color.neutral[999], + matchingBracket: color.neutral[999], + match: color.neutral[999], + activeMatch: color.neutral[999], + related: color.neutral[999], }, gutter: { - primary: { - value: core.color.neutral[999].value, - }, - active: { - value: core.color.neutral[999].value, - }, + primary: color.neutral[999], + active: color.neutral[999], }, }; const syntax = { primary: { - color: { - value: core.color.neutral[150] - }, + color: textColor.primary, weight: { value: "normal" }, }, comment: { - color: { value: "000000" }, + color: color.lime[200], weight: { value: "normal" }, }, punctuation: { - color: { value: "000000" }, + color: textColor.primary, weight: { value: "normal" }, }, constant: { - color: { value: "000000" }, + color: color.neutral[150], weight: { value: "normal" }, }, keyword: { - color: { value: "000000" }, + color: color.sky[400], weight: { value: "normal" }, }, function: { - color: { value: "000000" }, + color: color.yellow[200], weight: { value: "normal" }, }, type: { - color: { value: "000000" }, + color: color.teal[300], weight: { value: "normal" }, }, variant: { - color: { value: "000000" }, + color: color.teal[300], weight: { value: "normal" }, }, property: { - color: { value: "000000" }, + color: color.sky[300], weight: { value: "normal" }, }, enum: { - color: { value: "000000" }, + color: color.sky[400], weight: { value: "normal" }, }, operator: { - color: { value: "000000" }, + color: color.sky[400], weight: { value: "normal" }, }, string: { - color: { value: "000000" }, + color: color.orange[300], weight: { value: "normal" }, }, number: { - color: { value: "000000" }, + color: color.neutral[150], weight: { value: "normal" }, }, boolean: { - color: { value: "000000" }, + color: color.neutral[150], weight: { value: "normal" }, }, predictive: { - color: { value: "000000" }, + color: textColor.muted, weight: { value: "normal" }, }, }; const player = { 1: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.blue[600], + cursorColor: color.blue[600], + selectionColor: color.blue[600], + borderColor: color.blue[600], }, 2: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.indigo[500], + cursorColor: color.indigo[500], + selectionColor: color.indigo[500], + borderColor: color.indigo[500], }, 3: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.green[500], + cursorColor: color.green[500], + selectionColor: color.green[500], + borderColor: color.green[500], }, 4: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.orange[500], + cursorColor: color.orange[500], + selectionColor: color.orange[500], + borderColor: color.orange[500], }, 5: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.purple[500], + cursorColor: color.purple[500], + selectionColor: color.purple[500], + borderColor: color.purple[500], }, 6: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.teal[400], + cursorColor: color.teal[400], + selectionColor: color.teal[400], + borderColor: color.teal[400], }, 7: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.pink[400], + cursorColor: color.pink[400], + selectionColor: color.pink[400], + borderColor: color.pink[400], }, 8: { - baseColor: { - value: core.color.neutral[999].value, - }, - cursorColor: { - value: core.color.neutral[999].value, - }, - selectionColor: { - value: core.color.neutral[999].value, - }, - borderColor: { - value: core.color.neutral[999].value, - }, + baseColor: color.yellow[400], + cursorColor: color.yellow[400], + selectionColor: color.yellow[400], + borderColor: color.yellow[400], }, }; diff --git a/styles/theme.ts b/styles/theme.ts index 9d297d552d38b21154a77b2eed22d49a1ce2a247..9d70ea0227053f81e48d2e3359379db635bed7c8 100644 --- a/styles/theme.ts +++ b/styles/theme.ts @@ -1,242 +1,146 @@ +export interface NumberToken { + value: number, + type: "number" +} + export type Color = string; +export interface ColorToken { + value: Color; + type: "color"; + step?: number +} export type Weight = - | "thin" - | "extra_light" - | "light" - | "normal" - | "medium" - | "semibold" - | "bold" - | "extra_bold" - | "black"; + | "thin" + | "extra_light" + | "light" + | "normal" + | "medium" + | "semibold" + | "bold" + | "extra_bold" + | "black"; +export interface WeightToken { + value: Weight, + type: "fontWeight" +} -interface SyntaxHighlightStyle { - color: { value: Color }; - weight: { value: Weight }; +export interface SyntaxHighlightStyle { + color: ColorToken; + weight: WeightToken; } -interface Player { - baseColor: { - value: Color; - }; - cursorColor: { - value: Color; - }; - selectionColor: { - value: Color; - }; - borderColor: { - value: Color; - }; +export interface Player { + baseColor: ColorToken; + cursorColor: ColorToken; + selectionColor: ColorToken; + borderColor: ColorToken; } export interface BackgroundColor { - base: { - value: Color; - }; - hovered: { - value: Color; - }; - active: { - value: Color; - }; - focused: { - value: Color; - }; + base: ColorToken; + hovered: ColorToken; + active: ColorToken; + focused: ColorToken; } export default interface Theme { - backgroundColor: { - 100: BackgroundColor; - 300: BackgroundColor; - 500: BackgroundColor; - ok: BackgroundColor; - error: BackgroundColor; - warning: BackgroundColor; - info: BackgroundColor; - }; - borderColor: { - primary: { - value: Color; - }; - secondary: { - value: Color; - }; - muted: { - value: Color; - }; - focused: { - value: Color; - }; - active: { - value: Color; - }; - ok: { - value: Color; - }; - error: { - value: Color; - }; - warning: { - value: Color; - }; - info: { - value: Color; - }; - }; - textColor: { - primary: { - value: Color; - }; - secondary: { - value: Color; - }; - muted: { - value: Color; + backgroundColor: { + 100: BackgroundColor; + 300: BackgroundColor; + 500: BackgroundColor; + ok: BackgroundColor; + error: BackgroundColor; + warning: BackgroundColor; + info: BackgroundColor; + }; + borderColor: { + primary: ColorToken; + secondary: ColorToken; + muted: ColorToken; + focused: ColorToken; + active: ColorToken; + ok: ColorToken; + error: ColorToken; + warning: ColorToken; + info: ColorToken; + }; + textColor: { + primary: ColorToken; + secondary: ColorToken; + muted: ColorToken; + placeholder: ColorToken; + active: ColorToken; + feature: ColorToken; + ok: ColorToken; + error: ColorToken; + warning: ColorToken; + info: ColorToken; + }; + iconColor: { + primary: ColorToken; + secondary: ColorToken; + muted: ColorToken; + placeholder: ColorToken; + active: ColorToken; + feature: ColorToken; + ok: ColorToken; + error: ColorToken; + warning: ColorToken; + info: ColorToken; + }; + editor: { + background: ColorToken; + indent_guide: ColorToken; + indent_guide_active: ColorToken; + line: { + active: ColorToken; + highlighted: ColorToken; + inserted: ColorToken; + deleted: ColorToken; + modified: ColorToken; + }; + highlight: { + selection: ColorToken; + occurrence: ColorToken; + activeOccurrence: ColorToken; + matchingBracket: ColorToken; + match: ColorToken; + activeMatch: ColorToken; + related: ColorToken; + }; + gutter: { + primary: ColorToken; + active: ColorToken; + }; }; - placeholder: { - value: Color; - }; - active: { - value: Color; - }; - feature: { - value: Color; - }; - ok: { - value: Color; - }; - error: { - value: Color; - }; - warning: { - value: Color; - }; - info: { - value: Color; - }; - }; - iconColor: { - primary: { - value: Color; - }; - secondary: { - value: Color; - }; - muted: { - value: Color; - }; - placeholder: { - value: Color; - }; - active: { - value: Color; - }; - feature: { - value: Color; - }; - ok: { - value: Color; - }; - error: { - value: Color; - }; - warning: { - value: Color; - }; - info: { - value: Color; - }; - }; - editor: { - background: { - value: Color; - }; - indent_guide: { - value: Color; - }; - indent_guide_active: { - value: Color; - }; - line: { - active: { - value: Color; - }; - highlighted: { - value: Color; - }; - inserted: { - value: Color; - }; - deleted: { - value: Color; - }; - modified: { - value: Color; - }; - }; - highlight: { - selection: { - value: Color; - }; - occurrence: { - value: Color; - }; - activeOccurrence: { - value: Color; - }; - matchingBracket: { - value: Color; - }; - match: { - value: Color; - }; - activeMatch: { - value: Color; - }; - related: { - value: Color; - }; - }; - gutter: { - primary: { - value: Color; - }; - active: { - value: Color; - }; - }; - }; - syntax: { - primary: SyntaxHighlightStyle; - comment: SyntaxHighlightStyle; - punctuation: SyntaxHighlightStyle; - constant: SyntaxHighlightStyle; - keyword: SyntaxHighlightStyle; - function: SyntaxHighlightStyle; - type: SyntaxHighlightStyle; - variant: SyntaxHighlightStyle; - property: SyntaxHighlightStyle; - enum: SyntaxHighlightStyle; - operator: SyntaxHighlightStyle; - string: SyntaxHighlightStyle; - number: SyntaxHighlightStyle; - boolean: SyntaxHighlightStyle; - predictive: SyntaxHighlightStyle; - }; + syntax: { + primary: SyntaxHighlightStyle; + comment: SyntaxHighlightStyle; + punctuation: SyntaxHighlightStyle; + constant: SyntaxHighlightStyle; + keyword: SyntaxHighlightStyle; + function: SyntaxHighlightStyle; + type: SyntaxHighlightStyle; + variant: SyntaxHighlightStyle; + property: SyntaxHighlightStyle; + enum: SyntaxHighlightStyle; + operator: SyntaxHighlightStyle; + string: SyntaxHighlightStyle; + number: SyntaxHighlightStyle; + boolean: SyntaxHighlightStyle; + predictive: SyntaxHighlightStyle; + }; - player: { - 1: Player; - 2: Player; - 3: Player; - 4: Player; - 5: Player; - 6: Player; - 7: Player; - 8: Player; - }; - shadowAlpha: { - value: number; - }; + player: { + 1: Player; + 2: Player; + 3: Player; + 4: Player; + 5: Player; + 6: Player; + 7: Player; + 8: Player; + }; + shadowAlpha: NumberToken; } From bfeb6abb4bedfbb414841b41a72cd435b11b8379 Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Thu, 31 Mar 2022 20:27:25 -0700 Subject: [PATCH 44/71] Finish dark.ts initial port and restructure files to get ready for build script Build script currently fails to type check. Not sure whats going on. Will fix in the morning. Co-authored-by: Nate Butler --- styles/.gitignore | 1 + styles/buildStyleTree.ts | 11 + styles/{ => styleTree}/app.ts | 0 .../{chat-panel.ts => styleTree/chatPanel.ts} | 0 styles/{ => styleTree}/components.ts | 6 +- styles/{ => styleTree}/editor.ts | 0 .../projectPanel.ts} | 4 +- styles/{ => styleTree}/search.ts | 0 .../selectorModal.ts} | 0 styles/{ => styleTree}/workspace.ts | 0 styles/{ => themes}/dark.ts | 197 +++++++------- styles/themes/light.ts | 251 ++++++++++++++++++ styles/{ => themes}/theme.ts | 36 +-- styles/{ => tokens}/core.ts | 2 +- styles/{lib.ts => utils/color.ts} | 0 15 files changed, 388 insertions(+), 120 deletions(-) create mode 100644 styles/.gitignore create mode 100644 styles/buildStyleTree.ts rename styles/{ => styleTree}/app.ts (100%) rename styles/{chat-panel.ts => styleTree/chatPanel.ts} (100%) rename styles/{ => styleTree}/components.ts (92%) rename styles/{ => styleTree}/editor.ts (100%) rename styles/{project-panel.ts => styleTree/projectPanel.ts} (90%) rename styles/{ => styleTree}/search.ts (100%) rename styles/{selector-modal.ts => styleTree/selectorModal.ts} (100%) rename styles/{ => styleTree}/workspace.ts (100%) rename styles/{ => themes}/dark.ts (71%) create mode 100644 styles/themes/light.ts rename styles/{ => themes}/theme.ts (82%) rename styles/{ => tokens}/core.ts (97%) rename styles/{lib.ts => utils/color.ts} (100%) diff --git a/styles/.gitignore b/styles/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..c2658d7d1b31848c3b71960543cb0368e56cd4c7 --- /dev/null +++ b/styles/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/styles/buildStyleTree.ts b/styles/buildStyleTree.ts new file mode 100644 index 0000000000000000000000000000000000000000..6fa1c1576d96f312c79b52d15ce2429f3902ff8a --- /dev/null +++ b/styles/buildStyleTree.ts @@ -0,0 +1,11 @@ +import dark from "./themes/dark"; +import light from "./themes/light"; +import app from "./styleTree/app"; + +for (let theme of [dark, light]) { + let styleTree = app(theme); + + let styleTreeJson = JSON.stringify(styleTree); + console.log(styleTreeJson); + // TODO: Write style tree json to zed crate assets folder +} \ No newline at end of file diff --git a/styles/app.ts b/styles/styleTree/app.ts similarity index 100% rename from styles/app.ts rename to styles/styleTree/app.ts diff --git a/styles/chat-panel.ts b/styles/styleTree/chatPanel.ts similarity index 100% rename from styles/chat-panel.ts rename to styles/styleTree/chatPanel.ts diff --git a/styles/components.ts b/styles/styleTree/components.ts similarity index 92% rename from styles/components.ts rename to styles/styleTree/components.ts index 590c1b5eea9f6779dee0c2697a781d36b3edee60..b54956facccc3874998176870498368dbe8b5b56 100644 --- a/styles/components.ts +++ b/styles/styleTree/components.ts @@ -1,7 +1,7 @@ import chroma from "chroma-js"; -import core from "./core"; -import { Color } from "./lib"; -import Theme, { BackgroundColor, Weight } from "./theme"; +import core from "../tokens/core"; +import { Color } from "../utils/color"; +import Theme, { BackgroundColor, Weight } from "../themes/theme"; export type TextColor = keyof Theme["textColor"]; diff --git a/styles/editor.ts b/styles/styleTree/editor.ts similarity index 100% rename from styles/editor.ts rename to styles/styleTree/editor.ts diff --git a/styles/project-panel.ts b/styles/styleTree/projectPanel.ts similarity index 90% rename from styles/project-panel.ts rename to styles/styleTree/projectPanel.ts index 343e11b96b6e8adb3c6bd223a71de3e6d7d05f40..3b5fba8853da3799e69be735447e615341ef8391 100644 --- a/styles/project-panel.ts +++ b/styles/styleTree/projectPanel.ts @@ -1,7 +1,7 @@ import { panel } from "./app"; import { backgroundColor, iconColor, text, TextColor } from "./components"; -import Theme from "./theme"; -import { Color } from "./lib"; +import Theme from "../themes/theme"; +import { Color } from "../utils/color"; export default function projectPanel(theme: Theme) { function entry(theme: Theme, textColor: TextColor, background?: Color) { diff --git a/styles/search.ts b/styles/styleTree/search.ts similarity index 100% rename from styles/search.ts rename to styles/styleTree/search.ts diff --git a/styles/selector-modal.ts b/styles/styleTree/selectorModal.ts similarity index 100% rename from styles/selector-modal.ts rename to styles/styleTree/selectorModal.ts diff --git a/styles/workspace.ts b/styles/styleTree/workspace.ts similarity index 100% rename from styles/workspace.ts rename to styles/styleTree/workspace.ts diff --git a/styles/dark.ts b/styles/themes/dark.ts similarity index 71% rename from styles/dark.ts rename to styles/themes/dark.ts index 5b60bd0316a53fc24a830e23d428088675ac45de..098677a1e91c898e1e57624fa28a39fe9bbafee9 100644 --- a/styles/dark.ts +++ b/styles/themes/dark.ts @@ -1,5 +1,5 @@ -import core from "./core"; -import Theme from "./theme"; +import core from "../tokens/core"; +import Theme, { NumberToken, Syntax } from "./theme"; const { color } = core; @@ -88,159 +88,162 @@ const iconColor = { info: color.blue[500], }; +const player = { + 1: { + baseColor: color.blue[600], + cursorColor: color.blue[600], + selectionColor: color.blue[600], + borderColor: color.blue[600], + }, + 2: { + baseColor: color.indigo[500], + cursorColor: color.indigo[500], + selectionColor: color.indigo[500], + borderColor: color.indigo[500], + }, + 3: { + baseColor: color.green[500], + cursorColor: color.green[500], + selectionColor: color.green[500], + borderColor: color.green[500], + }, + 4: { + baseColor: color.orange[500], + cursorColor: color.orange[500], + selectionColor: color.orange[500], + borderColor: color.orange[500], + }, + 5: { + baseColor: color.purple[500], + cursorColor: color.purple[500], + selectionColor: color.purple[500], + borderColor: color.purple[500], + }, + 6: { + baseColor: color.teal[400], + cursorColor: color.teal[400], + selectionColor: color.teal[400], + borderColor: color.teal[400], + }, + 7: { + baseColor: color.pink[400], + cursorColor: color.pink[400], + selectionColor: color.pink[400], + borderColor: color.pink[400], + }, + 8: { + baseColor: color.yellow[400], + cursorColor: color.yellow[400], + selectionColor: color.yellow[400], + borderColor: color.yellow[400], + }, +}; + +// TODO: Fixup const editor = { background: backgroundColor[500].base, - indent_guide: color.neutral[999], - indent_guide_active: color.neutral[999], + indent_guide: borderColor.muted, + indent_guide_active: borderColor.secondary, line: { - active: color.neutral[999], - highlighted: color.neutral[999], - inserted: color.neutral[999], - deleted: color.neutral[999], - modified: color.neutral[999], + active: color.neutral[0], + highlighted: color.neutral[0], + inserted: backgroundColor.ok.active, + deleted: backgroundColor.error.active, + modified: backgroundColor.info.active, }, highlight: { - selection: color.neutral[999], - occurrence: color.neutral[999], - activeOccurrence: color.neutral[999], - matchingBracket: color.neutral[999], - match: color.neutral[999], - activeMatch: color.neutral[999], - related: color.neutral[999], + selection: player[1].selectionColor, + occurrence: backgroundColor[500].active, + activeOccurrence: color.neutral[0], + matchingBracket: color.neutral[0], + match: color.neutral[0], + activeMatch: color.neutral[0], + related: color.neutral[0], }, gutter: { - primary: color.neutral[999], - active: color.neutral[999], + primary: color.neutral[0], + active: color.neutral[0], }, }; -const syntax = { +const syntax: Syntax = { primary: { color: textColor.primary, - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, comment: { color: color.lime[200], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, punctuation: { color: textColor.primary, - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, constant: { color: color.neutral[150], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, keyword: { color: color.sky[400], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, function: { color: color.yellow[200], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, type: { color: color.teal[300], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, variant: { color: color.teal[300], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, property: { color: color.sky[300], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, enum: { color: color.sky[400], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, operator: { color: color.sky[400], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, string: { color: color.orange[300], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, number: { color: color.neutral[150], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, boolean: { color: color.neutral[150], - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, predictive: { color: textColor.muted, - weight: { value: "normal" }, + weight: { value: "normal", type: "fontWeight" }, }, }; -const player = { - 1: { - baseColor: color.blue[600], - cursorColor: color.blue[600], - selectionColor: color.blue[600], - borderColor: color.blue[600], - }, - 2: { - baseColor: color.indigo[500], - cursorColor: color.indigo[500], - selectionColor: color.indigo[500], - borderColor: color.indigo[500], - }, - 3: { - baseColor: color.green[500], - cursorColor: color.green[500], - selectionColor: color.green[500], - borderColor: color.green[500], - }, - 4: { - baseColor: color.orange[500], - cursorColor: color.orange[500], - selectionColor: color.orange[500], - borderColor: color.orange[500], - }, - 5: { - baseColor: color.purple[500], - cursorColor: color.purple[500], - selectionColor: color.purple[500], - borderColor: color.purple[500], - }, - 6: { - baseColor: color.teal[400], - cursorColor: color.teal[400], - selectionColor: color.teal[400], - borderColor: color.teal[400], - }, - 7: { - baseColor: color.pink[400], - cursorColor: color.pink[400], - selectionColor: color.pink[400], - borderColor: color.pink[400], - }, - 8: { - baseColor: color.yellow[400], - cursorColor: color.yellow[400], - selectionColor: color.yellow[400], - borderColor: color.yellow[400], - }, +const shadowAlpha: NumberToken = { + value: 0.32, + type: "number" }; -const shadowAlpha = { - value: 0.32, +const theme: Theme = { + name: "dark", + backgroundColor, + borderColor, + textColor, + iconColor, + editor, + syntax, + player, + shadowAlpha, }; -export default function dark(): Theme { - return { - backgroundColor, - borderColor, - textColor, - iconColor, - editor, - syntax, - player, - shadowAlpha, - }; -} +export default theme; \ No newline at end of file diff --git a/styles/themes/light.ts b/styles/themes/light.ts new file mode 100644 index 0000000000000000000000000000000000000000..20760427f273e93d72c2cf7cee6a8c0f6ae7192d --- /dev/null +++ b/styles/themes/light.ts @@ -0,0 +1,251 @@ +import core from "../tokens/core"; +import Theme, { NumberToken, Syntax } from "./theme"; + +const { color } = core; + +// TODO: Replace with light values + +const backgroundColor = { + 100: { + base: color.neutral[750], + hovered: color.neutral[750], + active: color.neutral[750], + focused: color.neutral[750], + }, + 300: { + base: color.neutral[800], + hovered: color.neutral[800], + active: color.neutral[800], + focused: color.neutral[800], + }, + 500: { + base: color.neutral[900], + hovered: color.neutral[900], + active: color.neutral[900], + focused: color.neutral[900], + }, + ok: { + base: color.green[600], + hovered: color.green[600], + active: color.green[600], + focused: color.green[600], + }, + error: { + base: color.red[400], + hovered: color.red[400], + active: color.red[400], + focused: color.red[400], + }, + warning: { + base: color.amber[300], + hovered: color.amber[300], + active: color.amber[300], + focused: color.amber[300], + }, + info: { + base: color.blue[500], + hovered: color.blue[500], + active: color.blue[500], + focused: color.blue[500], + }, +}; + +const borderColor = { + primary: color.neutral[850], + secondary: color.neutral[700], + muted: color.neutral[750], + focused: color.neutral[100], + active: color.neutral[500], + ok: color.neutral[999], + error: color.neutral[999], + warning: color.neutral[999], + info: color.neutral[999], +}; + +const textColor = { + primary: color.neutral[150], + secondary: color.neutral[350], + muted: color.neutral[550], + placeholder: color.neutral[750], + active: color.neutral[0], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], +}; + +const iconColor = { + primary: color.neutral[300], + secondary: color.neutral[500], + muted: color.neutral[600], + placeholder: color.neutral[700], + active: color.neutral[50], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], +}; + +const player = { + 1: { + baseColor: color.blue[600], + cursorColor: color.blue[600], + selectionColor: color.blue[600], + borderColor: color.blue[600], + }, + 2: { + baseColor: color.indigo[500], + cursorColor: color.indigo[500], + selectionColor: color.indigo[500], + borderColor: color.indigo[500], + }, + 3: { + baseColor: color.green[500], + cursorColor: color.green[500], + selectionColor: color.green[500], + borderColor: color.green[500], + }, + 4: { + baseColor: color.orange[500], + cursorColor: color.orange[500], + selectionColor: color.orange[500], + borderColor: color.orange[500], + }, + 5: { + baseColor: color.purple[500], + cursorColor: color.purple[500], + selectionColor: color.purple[500], + borderColor: color.purple[500], + }, + 6: { + baseColor: color.teal[400], + cursorColor: color.teal[400], + selectionColor: color.teal[400], + borderColor: color.teal[400], + }, + 7: { + baseColor: color.pink[400], + cursorColor: color.pink[400], + selectionColor: color.pink[400], + borderColor: color.pink[400], + }, + 8: { + baseColor: color.yellow[400], + cursorColor: color.yellow[400], + selectionColor: color.yellow[400], + borderColor: color.yellow[400], + }, +}; + +// TODO: Fixup +const editor = { + background: backgroundColor[500].base, + indent_guide: borderColor.muted, + indent_guide_active: borderColor.secondary, + line: { + active: color.neutral[0], + highlighted: color.neutral[0], + inserted: backgroundColor.ok.active, + deleted: backgroundColor.error.active, + modified: backgroundColor.info.active, + }, + highlight: { + selection: player[1].selectionColor, + occurrence: backgroundColor[500].active, + activeOccurrence: color.neutral[0], + matchingBracket: color.neutral[0], + match: color.neutral[0], + activeMatch: color.neutral[0], + related: color.neutral[0], + }, + gutter: { + primary: color.neutral[0], + active: color.neutral[0], + }, +}; + +const syntax: Syntax = { + primary: { + color: textColor.primary, + weight: { value: "normal", type: "fontWeight" }, + }, + comment: { + color: color.lime[200], + weight: { value: "normal", type: "fontWeight" }, + }, + punctuation: { + color: textColor.primary, + weight: { value: "normal", type: "fontWeight" }, + }, + constant: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + keyword: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + function: { + color: color.yellow[200], + weight: { value: "normal", type: "fontWeight" }, + }, + type: { + color: color.teal[300], + weight: { value: "normal", type: "fontWeight" }, + }, + variant: { + color: color.teal[300], + weight: { value: "normal", type: "fontWeight" }, + }, + property: { + color: color.sky[300], + weight: { value: "normal", type: "fontWeight" }, + }, + enum: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + operator: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + string: { + color: color.orange[300], + weight: { value: "normal", type: "fontWeight" }, + }, + number: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + boolean: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + predictive: { + color: textColor.muted, + weight: { value: "normal", type: "fontWeight" }, + }, +}; + +const shadowAlpha: NumberToken = { + value: 0.32, + type: "number" +}; + +const theme: Theme = { + name: "light", + backgroundColor, + borderColor, + textColor, + iconColor, + editor, + syntax, + player, + shadowAlpha, +}; + +export default theme; diff --git a/styles/theme.ts b/styles/themes/theme.ts similarity index 82% rename from styles/theme.ts rename to styles/themes/theme.ts index 9d70ea0227053f81e48d2e3359379db635bed7c8..e319f510c7daa52c64caefc3d8d2c8c7bfde4221 100644 --- a/styles/theme.ts +++ b/styles/themes/theme.ts @@ -43,6 +43,24 @@ export interface BackgroundColor { focused: ColorToken; } +export interface Syntax { + primary: SyntaxHighlightStyle; + comment: SyntaxHighlightStyle; + punctuation: SyntaxHighlightStyle; + constant: SyntaxHighlightStyle; + keyword: SyntaxHighlightStyle; + function: SyntaxHighlightStyle; + type: SyntaxHighlightStyle; + variant: SyntaxHighlightStyle; + property: SyntaxHighlightStyle; + enum: SyntaxHighlightStyle; + operator: SyntaxHighlightStyle; + string: SyntaxHighlightStyle; + number: SyntaxHighlightStyle; + boolean: SyntaxHighlightStyle; + predictive: SyntaxHighlightStyle; +}; + export default interface Theme { backgroundColor: { 100: BackgroundColor; @@ -114,23 +132,7 @@ export default interface Theme { }; }; - syntax: { - primary: SyntaxHighlightStyle; - comment: SyntaxHighlightStyle; - punctuation: SyntaxHighlightStyle; - constant: SyntaxHighlightStyle; - keyword: SyntaxHighlightStyle; - function: SyntaxHighlightStyle; - type: SyntaxHighlightStyle; - variant: SyntaxHighlightStyle; - property: SyntaxHighlightStyle; - enum: SyntaxHighlightStyle; - operator: SyntaxHighlightStyle; - string: SyntaxHighlightStyle; - number: SyntaxHighlightStyle; - boolean: SyntaxHighlightStyle; - predictive: SyntaxHighlightStyle; - }; + syntax: Syntax, player: { 1: Player; diff --git a/styles/core.ts b/styles/tokens/core.ts similarity index 97% rename from styles/core.ts rename to styles/tokens/core.ts index 49e376b4ebf81968b2681179be46b3c5b27055b6..38bfe82e28129954a2f5602038d575a3cfbb94af 100644 --- a/styles/core.ts +++ b/styles/tokens/core.ts @@ -1,4 +1,4 @@ -import { colorRamp } from "./lib"; +import { colorRamp } from "../utils/color"; export default { fontFamily: { diff --git a/styles/lib.ts b/styles/utils/color.ts similarity index 100% rename from styles/lib.ts rename to styles/utils/color.ts From 43a7cadf5bf2c3c7cad3c3fd9a04e153728ff452 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 31 Mar 2022 23:42:45 -0400 Subject: [PATCH 45/71] Type `name` --- styles/themes/theme.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/styles/themes/theme.ts b/styles/themes/theme.ts index e319f510c7daa52c64caefc3d8d2c8c7bfde4221..a7760459897b0bedec0d87512e669d1d7ae0a3b4 100644 --- a/styles/themes/theme.ts +++ b/styles/themes/theme.ts @@ -62,6 +62,7 @@ export interface Syntax { }; export default interface Theme { + name: string; backgroundColor: { 100: BackgroundColor; 300: BackgroundColor; From 211c473d32c0e09f8855d2d504cb1a356d3e58a1 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Thu, 31 Mar 2022 23:43:01 -0400 Subject: [PATCH 46/71] Update renamed/moved imports --- styles/styleTree/app.ts | 8 ++++---- styles/styleTree/chatPanel.ts | 4 ++-- styles/styleTree/components.ts | 2 +- styles/styleTree/editor.ts | 2 +- styles/styleTree/search.ts | 2 +- styles/styleTree/selectorModal.ts | 2 +- styles/styleTree/workspace.ts | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/styles/styleTree/app.ts b/styles/styleTree/app.ts index a65442db0737630f77d1de92d921d934ed4a8804..c7edfdc2701f06e6cb1b41beb779ad6bc0aca75b 100644 --- a/styles/styleTree/app.ts +++ b/styles/styleTree/app.ts @@ -1,10 +1,10 @@ -import chatPanel from "./chat-panel"; +import Theme from "../themes/theme"; +import chatPanel from "./chatPanel"; import { backgroundColor, borderColor, text } from "./components"; import editor from "./editor"; -import projectPanel from "./project-panel"; +import projectPanel from "./projectPanel"; import search from "./search"; -import selectorModal from "./selector-modal"; -import Theme from "./theme"; +import selectorModal from "./selectorModal"; import workspace from "./workspace"; export const panel = { diff --git a/styles/styleTree/chatPanel.ts b/styles/styleTree/chatPanel.ts index c6bf0148ea4c5d9345c29d5df94c978588e4fd0d..ea9a8ffe22a83e2b7135bc886273f2da2d7c1502 100644 --- a/styles/styleTree/chatPanel.ts +++ b/styles/styleTree/chatPanel.ts @@ -1,3 +1,4 @@ +import Theme from "../themes/theme"; import { panel } from "./app"; import { backgroundColor, @@ -5,9 +6,8 @@ import { player, shadow, text, - TextColor, + TextColor } from "./components"; -import Theme from "./theme"; export default function chatPanel(theme: Theme) { function channelSelectItem( diff --git a/styles/styleTree/components.ts b/styles/styleTree/components.ts index b54956facccc3874998176870498368dbe8b5b56..8038cdcd3b37494e1217fc4557090cb7bfe01378 100644 --- a/styles/styleTree/components.ts +++ b/styles/styleTree/components.ts @@ -1,7 +1,7 @@ import chroma from "chroma-js"; +import Theme, { BackgroundColor, Weight } from "../themes/theme"; import core from "../tokens/core"; import { Color } from "../utils/color"; -import Theme, { BackgroundColor, Weight } from "../themes/theme"; export type TextColor = keyof Theme["textColor"]; diff --git a/styles/styleTree/editor.ts b/styles/styleTree/editor.ts index a27464eee2182ecfb0633623ff4e773cfb85b35d..5d800881e2750942c2b7d6f1113df203aff97fb3 100644 --- a/styles/styleTree/editor.ts +++ b/styles/styleTree/editor.ts @@ -1,3 +1,4 @@ +import Theme from "../themes/theme"; import { backgroundColor, border, @@ -6,7 +7,6 @@ import { text, TextColor } from "./components"; -import Theme from "./theme"; export default function editor(theme: Theme) { const autocompleteItem = { diff --git a/styles/styleTree/search.ts b/styles/styleTree/search.ts index ced2266ea73480da11f880d4c56b4a65aa83f12c..fd2fd2568156f31a877de40773b9382eb5a8e6ca 100644 --- a/styles/styleTree/search.ts +++ b/styles/styleTree/search.ts @@ -1,5 +1,5 @@ +import Theme from "../themes/theme"; import { backgroundColor, border, player, text } from "./components"; -import Theme from "./theme"; export default function search(theme: Theme) { const optionButton = { diff --git a/styles/styleTree/selectorModal.ts b/styles/styleTree/selectorModal.ts index ddba32683a976153eac6fc0f49f6a5df9a835a1f..fdebe712fa0f1650a3fe4411b4579aa30bb44e2e 100644 --- a/styles/styleTree/selectorModal.ts +++ b/styles/styleTree/selectorModal.ts @@ -1,5 +1,5 @@ +import Theme from "../themes/theme"; import { backgroundColor, border, player, shadow, text } from "./components"; -import Theme from "./theme"; export default function selectorModal(theme: Theme): Object { const item = { diff --git a/styles/styleTree/workspace.ts b/styles/styleTree/workspace.ts index 1a50fe9ee1c248de6d48a9521efa9f9cc8f82fbb..e8232442b6f01ec2d0e3486509218f4b4c9e7562 100644 --- a/styles/styleTree/workspace.ts +++ b/styles/styleTree/workspace.ts @@ -1,5 +1,5 @@ +import Theme from "../themes/theme"; import { backgroundColor, border, iconColor, text } from "./components"; -import Theme from "./theme"; export default function workspace(theme: Theme) { const signInPrompt = { From 70a783c8d103461d720c332f78054168486ab99b Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 1 Apr 2022 08:25:58 -0600 Subject: [PATCH 47/71] Fix TS compile error --- styles/styleTree/components.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/styles/styleTree/components.ts b/styles/styleTree/components.ts index 8038cdcd3b37494e1217fc4557090cb7bfe01378..55a64cb1ecb4ec8f60878d9e795f671a9a5cfede 100644 --- a/styles/styleTree/components.ts +++ b/styles/styleTree/components.ts @@ -15,7 +15,7 @@ export function text( underline?: boolean; } ) { - const sizeKey = properties.size || fontFamily === "sans" ? "sm" : "md"; + const sizeKey = properties?.size || fontFamily === "sans" ? "sm" : "md"; const size = core.fontSize[sizeKey].value; return { From d2a070c345d338a46d968d61a6ee0115629f9698 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 1 Apr 2022 09:45:11 -0600 Subject: [PATCH 48/71] Write theme JSON files from buildThemes script Co-Authored-By: Nate Butler <1714999+iamnbutler@users.noreply.github.com> --- script/build-themes | 7 + styles/buildStyleTree.ts | 11 - styles/buildThemes.ts | 17 ++ styles/package-lock.json | 279 ++++++++++++++++++++- styles/package.json | 7 +- styles/themes/dark.ts | 432 ++++++++++++++++----------------- styles/themes/light.ts | 430 ++++++++++++++++---------------- styles/tsconfig.json | 12 + styles/utils/decamelizeTree.ts | 21 ++ 9 files changed, 771 insertions(+), 445 deletions(-) create mode 100755 script/build-themes delete mode 100644 styles/buildStyleTree.ts create mode 100644 styles/buildThemes.ts create mode 100644 styles/tsconfig.json create mode 100644 styles/utils/decamelizeTree.ts diff --git a/script/build-themes b/script/build-themes new file mode 100755 index 0000000000000000000000000000000000000000..aef3a4250cdac8a3934938e812d5c7602d388731 --- /dev/null +++ b/script/build-themes @@ -0,0 +1,7 @@ +#!/bin/bash + +set -e + +cd styles +npm install +npm run build diff --git a/styles/buildStyleTree.ts b/styles/buildStyleTree.ts deleted file mode 100644 index 6fa1c1576d96f312c79b52d15ce2429f3902ff8a..0000000000000000000000000000000000000000 --- a/styles/buildStyleTree.ts +++ /dev/null @@ -1,11 +0,0 @@ -import dark from "./themes/dark"; -import light from "./themes/light"; -import app from "./styleTree/app"; - -for (let theme of [dark, light]) { - let styleTree = app(theme); - - let styleTreeJson = JSON.stringify(styleTree); - console.log(styleTreeJson); - // TODO: Write style tree json to zed crate assets folder -} \ No newline at end of file diff --git a/styles/buildThemes.ts b/styles/buildThemes.ts new file mode 100644 index 0000000000000000000000000000000000000000..ced82e98664980b3d1af9f50d8f4f8f498f59d49 --- /dev/null +++ b/styles/buildThemes.ts @@ -0,0 +1,17 @@ +import * as fs from "fs"; +import * as path from "path"; +import dark from "./themes/dark"; +import light from "./themes/light"; +import app from "./styleTree/app"; +import decamelizeTree from "./utils/decamelizeTree"; + +const themes = [dark, light]; +for (let theme of themes) { + let styleTree = decamelizeTree(app(theme)); + let styleTreeJSON = JSON.stringify(styleTree, null, 2); + let outPath = path.resolve( + `${__dirname}/../crates/zed/assets/themes/${theme.name}.json` + ); + fs.writeFileSync(outPath, styleTreeJSON); + console.log(`Generated ${outPath}`); +} diff --git a/styles/package-lock.json b/styles/package-lock.json index 7b8503bf720d572d64bb9179a78489beaa068cb4..582f1c84968a5c1a25ddac5fd3c21ba907353c6d 100644 --- a/styles/package-lock.json +++ b/styles/package-lock.json @@ -10,30 +10,307 @@ "license": "ISC", "dependencies": { "@types/chroma-js": "^2.1.3", - "chroma-js": "^2.4.2" + "@types/node": "^17.0.23", + "case-anything": "^2.1.10", + "chroma-js": "^2.4.2", + "ts-node": "^10.7.0" } }, + "node_modules/@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "dependencies": { + "@cspotcode/source-map-consumer": "0.8.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" + }, "node_modules/@types/chroma-js": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" }, + "node_modules/@types/node": { + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + }, + "node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/case-anything": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", + "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, "node_modules/chroma-js": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/ts-node": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", + "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "dependencies": { + "@cspotcode/source-map-support": "0.7.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.0", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/typescript": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", + "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==" + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } } }, "dependencies": { + "@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==" + }, + "@cspotcode/source-map-support": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "requires": { + "@cspotcode/source-map-consumer": "0.8.0" + } + }, + "@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" + }, + "@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" + }, + "@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" + }, + "@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" + }, "@types/chroma-js": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" }, + "@types/node": { + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + }, + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "case-anything": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", + "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==" + }, "chroma-js": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "ts-node": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", + "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "requires": { + "@cspotcode/source-map-support": "0.7.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.0", + "yn": "3.1.1" + } + }, + "typescript": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "peer": true + }, + "v8-compile-cache-lib": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", + "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==" + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" } } } diff --git a/styles/package.json b/styles/package.json index c66da8718b6d4f2047cbc4e7580036946dab1fb8..c270bba0e1563cee758bbf5a02fb9fc1848b37ae 100644 --- a/styles/package.json +++ b/styles/package.json @@ -4,12 +4,15 @@ "description": "", "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "build": "ts-node buildThemes.ts" }, "author": "", "license": "ISC", "dependencies": { "@types/chroma-js": "^2.1.3", - "chroma-js": "^2.4.2" + "@types/node": "^17.0.23", + "case-anything": "^2.1.10", + "chroma-js": "^2.4.2", + "ts-node": "^10.7.0" } } diff --git a/styles/themes/dark.ts b/styles/themes/dark.ts index 098677a1e91c898e1e57624fa28a39fe9bbafee9..42f80cf4c670deda733f434c3cbab691239f5396 100644 --- a/styles/themes/dark.ts +++ b/styles/themes/dark.ts @@ -4,246 +4,246 @@ import Theme, { NumberToken, Syntax } from "./theme"; const { color } = core; const backgroundColor = { - 100: { - base: color.neutral[750], - hovered: color.neutral[750], - active: color.neutral[750], - focused: color.neutral[750], - }, - 300: { - base: color.neutral[800], - hovered: color.neutral[800], - active: color.neutral[800], - focused: color.neutral[800], - }, - 500: { - base: color.neutral[900], - hovered: color.neutral[900], - active: color.neutral[900], - focused: color.neutral[900], - }, - ok: { - base: color.green[600], - hovered: color.green[600], - active: color.green[600], - focused: color.green[600], - }, - error: { - base: color.red[400], - hovered: color.red[400], - active: color.red[400], - focused: color.red[400], - }, - warning: { - base: color.amber[300], - hovered: color.amber[300], - active: color.amber[300], - focused: color.amber[300], - }, - info: { - base: color.blue[500], - hovered: color.blue[500], - active: color.blue[500], - focused: color.blue[500], - }, + 100: { + base: color.neutral[750], + hovered: color.neutral[750], + active: color.neutral[750], + focused: color.neutral[750], + }, + 300: { + base: color.neutral[800], + hovered: color.neutral[800], + active: color.neutral[800], + focused: color.neutral[800], + }, + 500: { + base: color.neutral[900], + hovered: color.neutral[900], + active: color.neutral[900], + focused: color.neutral[900], + }, + ok: { + base: color.green[600], + hovered: color.green[600], + active: color.green[600], + focused: color.green[600], + }, + error: { + base: color.red[400], + hovered: color.red[400], + active: color.red[400], + focused: color.red[400], + }, + warning: { + base: color.amber[300], + hovered: color.amber[300], + active: color.amber[300], + focused: color.amber[300], + }, + info: { + base: color.blue[500], + hovered: color.blue[500], + active: color.blue[500], + focused: color.blue[500], + }, }; const borderColor = { - primary: color.neutral[850], - secondary: color.neutral[700], - muted: color.neutral[750], - focused: color.neutral[100], - active: color.neutral[500], - ok: color.neutral[999], - error: color.neutral[999], - warning: color.neutral[999], - info: color.neutral[999], + primary: color.neutral[850], + secondary: color.neutral[700], + muted: color.neutral[750], + focused: color.neutral[100], + active: color.neutral[500], + ok: color.neutral[1000], + error: color.neutral[1000], + warning: color.neutral[1000], + info: color.neutral[1000], }; const textColor = { - primary: color.neutral[150], - secondary: color.neutral[350], - muted: color.neutral[550], - placeholder: color.neutral[750], - active: color.neutral[0], - //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + primary: color.neutral[150], + secondary: color.neutral[350], + muted: color.neutral[550], + placeholder: color.neutral[750], + active: color.neutral[0], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], }; const iconColor = { - primary: color.neutral[300], - secondary: color.neutral[500], - muted: color.neutral[600], - placeholder: color.neutral[700], - active: color.neutral[50], - //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + primary: color.neutral[300], + secondary: color.neutral[500], + muted: color.neutral[600], + placeholder: color.neutral[700], + active: color.neutral[50], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], }; const player = { - 1: { - baseColor: color.blue[600], - cursorColor: color.blue[600], - selectionColor: color.blue[600], - borderColor: color.blue[600], - }, - 2: { - baseColor: color.indigo[500], - cursorColor: color.indigo[500], - selectionColor: color.indigo[500], - borderColor: color.indigo[500], - }, - 3: { - baseColor: color.green[500], - cursorColor: color.green[500], - selectionColor: color.green[500], - borderColor: color.green[500], - }, - 4: { - baseColor: color.orange[500], - cursorColor: color.orange[500], - selectionColor: color.orange[500], - borderColor: color.orange[500], - }, - 5: { - baseColor: color.purple[500], - cursorColor: color.purple[500], - selectionColor: color.purple[500], - borderColor: color.purple[500], - }, - 6: { - baseColor: color.teal[400], - cursorColor: color.teal[400], - selectionColor: color.teal[400], - borderColor: color.teal[400], - }, - 7: { - baseColor: color.pink[400], - cursorColor: color.pink[400], - selectionColor: color.pink[400], - borderColor: color.pink[400], - }, - 8: { - baseColor: color.yellow[400], - cursorColor: color.yellow[400], - selectionColor: color.yellow[400], - borderColor: color.yellow[400], - }, + 1: { + baseColor: color.blue[600], + cursorColor: color.blue[600], + selectionColor: color.blue[600], + borderColor: color.blue[600], + }, + 2: { + baseColor: color.indigo[500], + cursorColor: color.indigo[500], + selectionColor: color.indigo[500], + borderColor: color.indigo[500], + }, + 3: { + baseColor: color.green[500], + cursorColor: color.green[500], + selectionColor: color.green[500], + borderColor: color.green[500], + }, + 4: { + baseColor: color.orange[500], + cursorColor: color.orange[500], + selectionColor: color.orange[500], + borderColor: color.orange[500], + }, + 5: { + baseColor: color.purple[500], + cursorColor: color.purple[500], + selectionColor: color.purple[500], + borderColor: color.purple[500], + }, + 6: { + baseColor: color.teal[400], + cursorColor: color.teal[400], + selectionColor: color.teal[400], + borderColor: color.teal[400], + }, + 7: { + baseColor: color.pink[400], + cursorColor: color.pink[400], + selectionColor: color.pink[400], + borderColor: color.pink[400], + }, + 8: { + baseColor: color.yellow[400], + cursorColor: color.yellow[400], + selectionColor: color.yellow[400], + borderColor: color.yellow[400], + }, }; // TODO: Fixup const editor = { - background: backgroundColor[500].base, - indent_guide: borderColor.muted, - indent_guide_active: borderColor.secondary, - line: { - active: color.neutral[0], - highlighted: color.neutral[0], - inserted: backgroundColor.ok.active, - deleted: backgroundColor.error.active, - modified: backgroundColor.info.active, - }, - highlight: { - selection: player[1].selectionColor, - occurrence: backgroundColor[500].active, - activeOccurrence: color.neutral[0], - matchingBracket: color.neutral[0], - match: color.neutral[0], - activeMatch: color.neutral[0], - related: color.neutral[0], - }, - gutter: { - primary: color.neutral[0], - active: color.neutral[0], - }, + background: backgroundColor[500].base, + indent_guide: borderColor.muted, + indent_guide_active: borderColor.secondary, + line: { + active: color.neutral[0], + highlighted: color.neutral[0], + inserted: backgroundColor.ok.active, + deleted: backgroundColor.error.active, + modified: backgroundColor.info.active, + }, + highlight: { + selection: player[1].selectionColor, + occurrence: backgroundColor[500].active, + activeOccurrence: color.neutral[0], + matchingBracket: color.neutral[0], + match: color.neutral[0], + activeMatch: color.neutral[0], + related: color.neutral[0], + }, + gutter: { + primary: color.neutral[0], + active: color.neutral[0], + }, }; const syntax: Syntax = { - primary: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, - }, - comment: { - color: color.lime[200], - weight: { value: "normal", type: "fontWeight" }, - }, - punctuation: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, - }, - constant: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - keyword: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - function: { - color: color.yellow[200], - weight: { value: "normal", type: "fontWeight" }, - }, - type: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, - }, - variant: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, - }, - property: { - color: color.sky[300], - weight: { value: "normal", type: "fontWeight" }, - }, - enum: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - operator: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - string: { - color: color.orange[300], - weight: { value: "normal", type: "fontWeight" }, - }, - number: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - boolean: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - predictive: { - color: textColor.muted, - weight: { value: "normal", type: "fontWeight" }, - }, + primary: { + color: textColor.primary, + weight: { value: "normal", type: "fontWeight" }, + }, + comment: { + color: color.lime[200], + weight: { value: "normal", type: "fontWeight" }, + }, + punctuation: { + color: textColor.primary, + weight: { value: "normal", type: "fontWeight" }, + }, + constant: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + keyword: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + function: { + color: color.yellow[200], + weight: { value: "normal", type: "fontWeight" }, + }, + type: { + color: color.teal[300], + weight: { value: "normal", type: "fontWeight" }, + }, + variant: { + color: color.teal[300], + weight: { value: "normal", type: "fontWeight" }, + }, + property: { + color: color.sky[300], + weight: { value: "normal", type: "fontWeight" }, + }, + enum: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + operator: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + string: { + color: color.orange[300], + weight: { value: "normal", type: "fontWeight" }, + }, + number: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + boolean: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + predictive: { + color: textColor.muted, + weight: { value: "normal", type: "fontWeight" }, + }, }; const shadowAlpha: NumberToken = { - value: 0.32, - type: "number" + value: 0.32, + type: "number", }; const theme: Theme = { - name: "dark", - backgroundColor, - borderColor, - textColor, - iconColor, - editor, - syntax, - player, - shadowAlpha, + name: "dark", + backgroundColor, + borderColor, + textColor, + iconColor, + editor, + syntax, + player, + shadowAlpha, }; -export default theme; \ No newline at end of file +export default theme; diff --git a/styles/themes/light.ts b/styles/themes/light.ts index 20760427f273e93d72c2cf7cee6a8c0f6ae7192d..7a9bf1b552650b81288e70acc6c7500c80a8246b 100644 --- a/styles/themes/light.ts +++ b/styles/themes/light.ts @@ -6,246 +6,246 @@ const { color } = core; // TODO: Replace with light values const backgroundColor = { - 100: { - base: color.neutral[750], - hovered: color.neutral[750], - active: color.neutral[750], - focused: color.neutral[750], - }, - 300: { - base: color.neutral[800], - hovered: color.neutral[800], - active: color.neutral[800], - focused: color.neutral[800], - }, - 500: { - base: color.neutral[900], - hovered: color.neutral[900], - active: color.neutral[900], - focused: color.neutral[900], - }, - ok: { - base: color.green[600], - hovered: color.green[600], - active: color.green[600], - focused: color.green[600], - }, - error: { - base: color.red[400], - hovered: color.red[400], - active: color.red[400], - focused: color.red[400], - }, - warning: { - base: color.amber[300], - hovered: color.amber[300], - active: color.amber[300], - focused: color.amber[300], - }, - info: { - base: color.blue[500], - hovered: color.blue[500], - active: color.blue[500], - focused: color.blue[500], - }, + 100: { + base: color.neutral[750], + hovered: color.neutral[750], + active: color.neutral[750], + focused: color.neutral[750], + }, + 300: { + base: color.neutral[800], + hovered: color.neutral[800], + active: color.neutral[800], + focused: color.neutral[800], + }, + 500: { + base: color.neutral[900], + hovered: color.neutral[900], + active: color.neutral[900], + focused: color.neutral[900], + }, + ok: { + base: color.green[600], + hovered: color.green[600], + active: color.green[600], + focused: color.green[600], + }, + error: { + base: color.red[400], + hovered: color.red[400], + active: color.red[400], + focused: color.red[400], + }, + warning: { + base: color.amber[300], + hovered: color.amber[300], + active: color.amber[300], + focused: color.amber[300], + }, + info: { + base: color.blue[500], + hovered: color.blue[500], + active: color.blue[500], + focused: color.blue[500], + }, }; const borderColor = { - primary: color.neutral[850], - secondary: color.neutral[700], - muted: color.neutral[750], - focused: color.neutral[100], - active: color.neutral[500], - ok: color.neutral[999], - error: color.neutral[999], - warning: color.neutral[999], - info: color.neutral[999], + primary: color.neutral[850], + secondary: color.neutral[700], + muted: color.neutral[750], + focused: color.neutral[100], + active: color.neutral[500], + ok: color.neutral[1000], + error: color.neutral[1000], + warning: color.neutral[1000], + info: color.neutral[1000], }; const textColor = { - primary: color.neutral[150], - secondary: color.neutral[350], - muted: color.neutral[550], - placeholder: color.neutral[750], - active: color.neutral[0], - //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + primary: color.neutral[150], + secondary: color.neutral[350], + muted: color.neutral[550], + placeholder: color.neutral[750], + active: color.neutral[0], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], }; const iconColor = { - primary: color.neutral[300], - secondary: color.neutral[500], - muted: color.neutral[600], - placeholder: color.neutral[700], - active: color.neutral[50], - //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + primary: color.neutral[300], + secondary: color.neutral[500], + muted: color.neutral[600], + placeholder: color.neutral[700], + active: color.neutral[50], + //TODO: (design) define feature and it's correct value + feature: color.sky[500], + ok: color.green[600], + error: color.red[400], + warning: color.amber[300], + info: color.blue[500], }; const player = { - 1: { - baseColor: color.blue[600], - cursorColor: color.blue[600], - selectionColor: color.blue[600], - borderColor: color.blue[600], - }, - 2: { - baseColor: color.indigo[500], - cursorColor: color.indigo[500], - selectionColor: color.indigo[500], - borderColor: color.indigo[500], - }, - 3: { - baseColor: color.green[500], - cursorColor: color.green[500], - selectionColor: color.green[500], - borderColor: color.green[500], - }, - 4: { - baseColor: color.orange[500], - cursorColor: color.orange[500], - selectionColor: color.orange[500], - borderColor: color.orange[500], - }, - 5: { - baseColor: color.purple[500], - cursorColor: color.purple[500], - selectionColor: color.purple[500], - borderColor: color.purple[500], - }, - 6: { - baseColor: color.teal[400], - cursorColor: color.teal[400], - selectionColor: color.teal[400], - borderColor: color.teal[400], - }, - 7: { - baseColor: color.pink[400], - cursorColor: color.pink[400], - selectionColor: color.pink[400], - borderColor: color.pink[400], - }, - 8: { - baseColor: color.yellow[400], - cursorColor: color.yellow[400], - selectionColor: color.yellow[400], - borderColor: color.yellow[400], - }, + 1: { + baseColor: color.blue[600], + cursorColor: color.blue[600], + selectionColor: color.blue[600], + borderColor: color.blue[600], + }, + 2: { + baseColor: color.indigo[500], + cursorColor: color.indigo[500], + selectionColor: color.indigo[500], + borderColor: color.indigo[500], + }, + 3: { + baseColor: color.green[500], + cursorColor: color.green[500], + selectionColor: color.green[500], + borderColor: color.green[500], + }, + 4: { + baseColor: color.orange[500], + cursorColor: color.orange[500], + selectionColor: color.orange[500], + borderColor: color.orange[500], + }, + 5: { + baseColor: color.purple[500], + cursorColor: color.purple[500], + selectionColor: color.purple[500], + borderColor: color.purple[500], + }, + 6: { + baseColor: color.teal[400], + cursorColor: color.teal[400], + selectionColor: color.teal[400], + borderColor: color.teal[400], + }, + 7: { + baseColor: color.pink[400], + cursorColor: color.pink[400], + selectionColor: color.pink[400], + borderColor: color.pink[400], + }, + 8: { + baseColor: color.yellow[400], + cursorColor: color.yellow[400], + selectionColor: color.yellow[400], + borderColor: color.yellow[400], + }, }; // TODO: Fixup const editor = { - background: backgroundColor[500].base, - indent_guide: borderColor.muted, - indent_guide_active: borderColor.secondary, - line: { - active: color.neutral[0], - highlighted: color.neutral[0], - inserted: backgroundColor.ok.active, - deleted: backgroundColor.error.active, - modified: backgroundColor.info.active, - }, - highlight: { - selection: player[1].selectionColor, - occurrence: backgroundColor[500].active, - activeOccurrence: color.neutral[0], - matchingBracket: color.neutral[0], - match: color.neutral[0], - activeMatch: color.neutral[0], - related: color.neutral[0], - }, - gutter: { - primary: color.neutral[0], - active: color.neutral[0], - }, + background: backgroundColor[500].base, + indent_guide: borderColor.muted, + indent_guide_active: borderColor.secondary, + line: { + active: color.neutral[0], + highlighted: color.neutral[0], + inserted: backgroundColor.ok.active, + deleted: backgroundColor.error.active, + modified: backgroundColor.info.active, + }, + highlight: { + selection: player[1].selectionColor, + occurrence: backgroundColor[500].active, + activeOccurrence: color.neutral[0], + matchingBracket: color.neutral[0], + match: color.neutral[0], + activeMatch: color.neutral[0], + related: color.neutral[0], + }, + gutter: { + primary: color.neutral[0], + active: color.neutral[0], + }, }; const syntax: Syntax = { - primary: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, - }, - comment: { - color: color.lime[200], - weight: { value: "normal", type: "fontWeight" }, - }, - punctuation: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, - }, - constant: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - keyword: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - function: { - color: color.yellow[200], - weight: { value: "normal", type: "fontWeight" }, - }, - type: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, - }, - variant: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, - }, - property: { - color: color.sky[300], - weight: { value: "normal", type: "fontWeight" }, - }, - enum: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - operator: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - string: { - color: color.orange[300], - weight: { value: "normal", type: "fontWeight" }, - }, - number: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - boolean: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - predictive: { - color: textColor.muted, - weight: { value: "normal", type: "fontWeight" }, - }, + primary: { + color: textColor.primary, + weight: { value: "normal", type: "fontWeight" }, + }, + comment: { + color: color.lime[200], + weight: { value: "normal", type: "fontWeight" }, + }, + punctuation: { + color: textColor.primary, + weight: { value: "normal", type: "fontWeight" }, + }, + constant: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + keyword: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + function: { + color: color.yellow[200], + weight: { value: "normal", type: "fontWeight" }, + }, + type: { + color: color.teal[300], + weight: { value: "normal", type: "fontWeight" }, + }, + variant: { + color: color.teal[300], + weight: { value: "normal", type: "fontWeight" }, + }, + property: { + color: color.sky[300], + weight: { value: "normal", type: "fontWeight" }, + }, + enum: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + operator: { + color: color.sky[400], + weight: { value: "normal", type: "fontWeight" }, + }, + string: { + color: color.orange[300], + weight: { value: "normal", type: "fontWeight" }, + }, + number: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + boolean: { + color: color.neutral[150], + weight: { value: "normal", type: "fontWeight" }, + }, + predictive: { + color: textColor.muted, + weight: { value: "normal", type: "fontWeight" }, + }, }; const shadowAlpha: NumberToken = { - value: 0.32, - type: "number" + value: 0.32, + type: "number", }; const theme: Theme = { - name: "light", - backgroundColor, - borderColor, - textColor, - iconColor, - editor, - syntax, - player, - shadowAlpha, + name: "light", + backgroundColor, + borderColor, + textColor, + iconColor, + editor, + syntax, + player, + shadowAlpha, }; export default theme; diff --git a/styles/tsconfig.json b/styles/tsconfig.json new file mode 100644 index 0000000000000000000000000000000000000000..3dfbcc715ef17318d9267709bb8f25a8b91ecac0 --- /dev/null +++ b/styles/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "target": "es2015", + "module": "commonjs", + "esModuleInterop": true, + "noImplicitAny": true, + "removeComments": true, + "preserveConstEnums": true, + "sourceMap": true + }, + "exclude": ["node_modules"] + } \ No newline at end of file diff --git a/styles/utils/decamelizeTree.ts b/styles/utils/decamelizeTree.ts new file mode 100644 index 0000000000000000000000000000000000000000..d606902082e974b6cb7b0602e06cc32b0a9e1b5f --- /dev/null +++ b/styles/utils/decamelizeTree.ts @@ -0,0 +1,21 @@ +import { snakeCase } from "case-anything"; + +export default function decamelizeTree(object: { [key: string]: any }) { + const snakeObject: { [key: string]: any } = {}; + for (const key in object) { + snakeObject[snakeCase(key)] = decamelizeValue(object[key]); + } + return snakeObject; +} + +function decamelizeValue(value: any): any { + if (typeof value === "object") { + if (Array.isArray(value)) { + return value.map(decamelizeValue); + } else { + return decamelizeTree(value); + } + } else { + return value; + } +} From 371ea7c5529aa670e9b5aded82b2762be6073a38 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 1 Apr 2022 09:56:50 -0600 Subject: [PATCH 49/71] Update style tree based on changes to _base.toml from main Co-Authored-By: Nate Butler <1714999+iamnbutler@users.noreply.github.com> --- styles/styleTree/search.ts | 15 ++++++--------- styles/styleTree/workspace.ts | 10 +++++++++- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/styles/styleTree/search.ts b/styles/styleTree/search.ts index fd2fd2568156f31a877de40773b9382eb5a8e6ca..7ba04cd688e01f5b3a4f47b35311195fde73fefb 100644 --- a/styles/styleTree/search.ts +++ b/styles/styleTree/search.ts @@ -20,7 +20,6 @@ export default function search(theme: Theme) { }; return { - background: backgroundColor(theme, 300), matchBackground: theme.editor.highlight.match, tabIconSpacing: 4, tabIconWidth: 14, @@ -35,22 +34,20 @@ export default function search(theme: Theme) { editor: { background: backgroundColor(theme, 500), cornerRadius: 6, - maxWidth: 400, + minWidth: 200, + maxWidth: 500, placeholderText: text(theme, "mono", "placeholder"), selection: player(theme, 1).selection, text: text(theme, "mono", "primary"), border: border(theme, "primary"), margin: { - bottom: 5, - left: 5, right: 5, - top: 5, }, padding: { - bottom: 3, - left: 13, - right: 13, top: 3, + bottom: 3, + left: 14, + right: 14, }, }, hoveredOptionButton: { @@ -62,7 +59,7 @@ export default function search(theme: Theme) { border: border(theme, "error"), }, matchIndex: { - ...text(theme, "mono", "secondary"), + ...text(theme, "mono", "muted"), padding: 6, }, optionButton, diff --git a/styles/styleTree/workspace.ts b/styles/styleTree/workspace.ts index e8232442b6f01ec2d0e3486509218f4b4c9e7562..148db089183e77274a81a122d6f02d920b640237 100644 --- a/styles/styleTree/workspace.ts +++ b/styles/styleTree/workspace.ts @@ -127,7 +127,15 @@ export default function workspace(theme: Theme) { }, }, toolbar: { - height: 44, + height: 34, + background: backgroundColor(theme, 300), + border: border(theme, "primary", { bottom: true }), + itemSpacing: 8, + padding: { left: 16, right: 8, top: 4, bottom: 4 }, + }, + breadcrumbs: { + ...text(theme, "mono", "secondary"), + padding: { left: 6 }, }, }; } From 391aed3d66c194e5c66781fdec736c577a0c347e Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 1 Apr 2022 11:45:08 -0600 Subject: [PATCH 50/71] Start loading new theme JSON format instead of TOML Replaced remaining extends with javascript object extension. Moved tokens/core.ts to tokens.ts and massaged the types to make it more obvious when types don't match up. Co-authored-by: Nathan Sobo --- crates/theme/src/resolution.rs | 497 ----------- crates/theme/src/theme.rs | 3 +- crates/theme/src/theme_registry.rs | 234 +---- crates/zed/assets/themes/_base.toml | 411 --------- crates/zed/assets/themes/black.toml | 67 -- crates/zed/assets/themes/dark.json | 1245 +++++++++++++++++++++++++++ crates/zed/assets/themes/dark.toml | 67 -- crates/zed/assets/themes/light.json | 1245 +++++++++++++++++++++++++++ crates/zed/assets/themes/light.toml | 67 -- crates/zed/src/zed.rs | 3 +- styles/buildThemes.ts | 14 +- styles/styleTree/app.ts | 106 +-- styles/styleTree/components.ts | 14 +- styles/styleTree/contactsPanel.ts | 61 ++ styles/styleTree/editor.ts | 245 +++--- styles/styleTree/projectPanel.ts | 6 +- styles/styleTree/search.ts | 44 +- styles/styleTree/workspace.ts | 5 + styles/themes/dark.ts | 462 +++++----- styles/themes/light.ts | 300 ++++--- styles/themes/theme.ts | 37 +- styles/tokens.ts | 102 +++ styles/tokens/core.ts | 58 -- 23 files changed, 3284 insertions(+), 2009 deletions(-) delete mode 100644 crates/theme/src/resolution.rs delete mode 100644 crates/zed/assets/themes/_base.toml delete mode 100644 crates/zed/assets/themes/black.toml create mode 100644 crates/zed/assets/themes/dark.json delete mode 100644 crates/zed/assets/themes/dark.toml create mode 100644 crates/zed/assets/themes/light.json delete mode 100644 crates/zed/assets/themes/light.toml create mode 100644 styles/styleTree/contactsPanel.ts create mode 100644 styles/tokens.ts delete mode 100644 styles/tokens/core.ts diff --git a/crates/theme/src/resolution.rs b/crates/theme/src/resolution.rs deleted file mode 100644 index acebf72b86120065cb8587d05c2a8db92a00cced..0000000000000000000000000000000000000000 --- a/crates/theme/src/resolution.rs +++ /dev/null @@ -1,497 +0,0 @@ -use anyhow::{anyhow, Result}; -use indexmap::IndexMap; -use serde_json::Value; -use std::{ - cell::RefCell, - mem, - rc::{Rc, Weak}, -}; - -pub fn resolve_references(value: Value) -> Result { - let tree = Tree::from_json(value)?; - tree.resolve()?; - tree.to_json() -} - -#[derive(Clone)] -enum Node { - Reference { - path: String, - parent: Option>>, - }, - Object { - base: Option, - children: IndexMap, - resolved: bool, - parent: Option>>, - }, - Array { - children: Vec, - resolved: bool, - parent: Option>>, - }, - String { - value: String, - parent: Option>>, - }, - Number { - value: serde_json::Number, - parent: Option>>, - }, - Bool { - value: bool, - parent: Option>>, - }, - Null { - parent: Option>>, - }, -} - -#[derive(Clone)] -struct Tree(Rc>); - -impl Tree { - pub fn new(node: Node) -> Self { - Self(Rc::new(RefCell::new(node))) - } - - fn from_json(value: Value) -> Result { - match value { - Value::String(value) => { - if let Some(path) = value.strip_prefix("$") { - Ok(Self::new(Node::Reference { - path: path.to_string(), - parent: None, - })) - } else { - Ok(Self::new(Node::String { - value, - parent: None, - })) - } - } - Value::Number(value) => Ok(Self::new(Node::Number { - value, - parent: None, - })), - Value::Bool(value) => Ok(Self::new(Node::Bool { - value, - parent: None, - })), - Value::Null => Ok(Self::new(Node::Null { parent: None })), - Value::Object(object) => { - let tree = Self::new(Node::Object { - base: Default::default(), - children: Default::default(), - resolved: false, - parent: None, - }); - let mut children = IndexMap::new(); - let mut resolved = true; - let mut base = None; - for (key, value) in object.into_iter() { - let value = if key == "extends" { - if value.is_string() { - if let Value::String(value) = value { - base = value.strip_prefix("$").map(str::to_string); - resolved = false; - Self::new(Node::String { - value, - parent: None, - }) - } else { - unreachable!() - } - } else { - Tree::from_json(value)? - } - } else { - Tree::from_json(value)? - }; - value - .0 - .borrow_mut() - .set_parent(Some(Rc::downgrade(&tree.0))); - resolved &= value.is_resolved(); - children.insert(key.clone(), value); - } - - *tree.0.borrow_mut() = Node::Object { - base, - children, - resolved, - parent: None, - }; - Ok(tree) - } - Value::Array(elements) => { - let tree = Self::new(Node::Array { - children: Default::default(), - resolved: false, - parent: None, - }); - - let mut children = Vec::new(); - let mut resolved = true; - for element in elements { - let child = Tree::from_json(element)?; - child - .0 - .borrow_mut() - .set_parent(Some(Rc::downgrade(&tree.0))); - resolved &= child.is_resolved(); - children.push(child); - } - - *tree.0.borrow_mut() = Node::Array { - children, - resolved, - parent: None, - }; - Ok(tree) - } - } - } - - fn to_json(&self) -> Result { - match &*self.0.borrow() { - Node::Reference { .. } => Err(anyhow!("unresolved tree")), - Node::String { value, .. } => Ok(Value::String(value.clone())), - Node::Number { value, .. } => Ok(Value::Number(value.clone())), - Node::Bool { value, .. } => Ok(Value::Bool(*value)), - Node::Null { .. } => Ok(Value::Null), - Node::Object { children, .. } => { - let mut json_children = serde_json::Map::new(); - for (key, value) in children { - json_children.insert(key.clone(), value.to_json()?); - } - Ok(Value::Object(json_children)) - } - Node::Array { children, .. } => { - let mut json_children = Vec::new(); - for child in children { - json_children.push(child.to_json()?); - } - Ok(Value::Array(json_children)) - } - } - } - - fn parent(&self) -> Option { - match &*self.0.borrow() { - Node::Reference { parent, .. } - | Node::Object { parent, .. } - | Node::Array { parent, .. } - | Node::String { parent, .. } - | Node::Number { parent, .. } - | Node::Bool { parent, .. } - | Node::Null { parent } => parent.as_ref().and_then(|p| p.upgrade()).map(Tree), - } - } - - fn get(&self, path: &str) -> Result> { - let mut tree = self.clone(); - for component in path.split('.') { - let node = tree.0.borrow(); - match &*node { - Node::Object { children, .. } => { - if let Some(subtree) = children.get(component).cloned() { - drop(node); - tree = subtree; - } else { - return Err(anyhow!( - "key \"{}\" does not exist in path \"{}\"", - component, - path - )); - } - } - Node::Reference { .. } => return Ok(None), - Node::Array { .. } - | Node::String { .. } - | Node::Number { .. } - | Node::Bool { .. } - | Node::Null { .. } => { - return Err(anyhow!( - "key \"{}\" in path \"{}\" is not an object", - component, - path - )) - } - } - } - - Ok(Some(tree)) - } - - fn is_resolved(&self) -> bool { - match &*self.0.borrow() { - Node::Reference { .. } => false, - Node::Object { resolved, .. } | Node::Array { resolved, .. } => *resolved, - Node::String { .. } | Node::Number { .. } | Node::Bool { .. } | Node::Null { .. } => { - true - } - } - } - - fn update_resolved(&self) { - match &mut *self.0.borrow_mut() { - Node::Object { - resolved, - base, - children, - .. - } => { - *resolved = base.is_none() && children.values().all(|c| c.is_resolved()); - } - Node::Array { - resolved, children, .. - } => { - *resolved = children.iter().all(|c| c.is_resolved()); - } - _ => {} - } - } - - pub fn resolve(&self) -> Result<()> { - let mut unresolved = vec![self.clone()]; - let mut made_progress = true; - - while made_progress && !unresolved.is_empty() { - made_progress = false; - for mut tree in mem::take(&mut unresolved) { - made_progress |= tree.resolve_subtree(self, &mut unresolved)?; - if tree.is_resolved() { - while let Some(parent) = tree.parent() { - parent.update_resolved(); - if !parent.is_resolved() { - break; - } - tree = parent; - } - } - } - } - - if unresolved.is_empty() { - Ok(()) - } else { - Err(anyhow!("tree contains cycles")) - } - } - - fn resolve_subtree(&self, root: &Tree, unresolved: &mut Vec) -> Result { - let node = self.0.borrow(); - match &*node { - Node::Reference { path, parent } => { - if let Some(subtree) = root.get(&path)? { - if subtree.is_resolved() { - let parent = parent.clone(); - drop(node); - let mut new_node = subtree.0.borrow().clone(); - new_node.set_parent(parent); - *self.0.borrow_mut() = new_node; - Ok(true) - } else { - unresolved.push(self.clone()); - Ok(false) - } - } else { - unresolved.push(self.clone()); - Ok(false) - } - } - Node::Object { - base, - children, - resolved, - .. - } => { - if *resolved { - Ok(false) - } else { - let mut made_progress = false; - let mut children_resolved = true; - for child in children.values() { - made_progress |= child.resolve_subtree(root, unresolved)?; - children_resolved &= child.is_resolved(); - } - - if children_resolved { - let mut has_base = false; - let mut resolved_base = None; - if let Some(base) = base { - has_base = true; - if let Some(base) = root.get(base)? { - if base.is_resolved() { - resolved_base = Some(base); - } - } - } - - drop(node); - - if let Some(base) = resolved_base.as_ref() { - self.extend_from(&base); - made_progress = true; - } - - if let Node::Object { resolved, base, .. } = &mut *self.0.borrow_mut() { - if has_base { - if resolved_base.is_some() { - base.take(); - *resolved = true; - } else { - unresolved.push(self.clone()); - } - } else { - *resolved = true; - } - } - } else if base.is_some() { - unresolved.push(self.clone()); - } - - Ok(made_progress) - } - } - Node::Array { - children, resolved, .. - } => { - if *resolved { - Ok(false) - } else { - let mut made_progress = false; - let mut children_resolved = true; - for child in children.iter() { - made_progress |= child.resolve_subtree(root, unresolved)?; - children_resolved &= child.is_resolved(); - } - - if children_resolved { - drop(node); - - if let Node::Array { resolved, .. } = &mut *self.0.borrow_mut() { - *resolved = true; - } - } - - Ok(made_progress) - } - } - Node::String { .. } | Node::Number { .. } | Node::Bool { .. } | Node::Null { .. } => { - Ok(false) - } - } - } - - fn extend_from(&self, base: &Tree) { - if Rc::ptr_eq(&self.0, &base.0) { - return; - } - - if let ( - Node::Object { children, .. }, - Node::Object { - children: base_children, - .. - }, - ) = (&mut *self.0.borrow_mut(), &*base.0.borrow()) - { - for (key, base_value) in base_children { - if let Some(value) = children.get(key) { - value.extend_from(base_value); - } else { - let base_value = base_value.clone(); - base_value - .0 - .borrow_mut() - .set_parent(Some(Rc::downgrade(&self.0))); - children.insert(key.clone(), base_value); - } - } - } - } -} - -impl Node { - fn set_parent(&mut self, new_parent: Option>>) { - match self { - Node::Reference { parent, .. } - | Node::Object { parent, .. } - | Node::Array { parent, .. } - | Node::String { parent, .. } - | Node::Number { parent, .. } - | Node::Bool { parent, .. } - | Node::Null { parent } => *parent = new_parent, - } - } -} - -#[cfg(test)] -mod test { - use super::*; - - #[test] - fn test_references() { - let json = serde_json::json!({ - "a": { - "extends": "$g", - "x": "$b.d" - }, - "b": { - "c": "$a", - "d": "$e.f" - }, - "e": { - "extends": "$a", - "f": "1" - }, - "g": { - "h": 2 - } - }); - - assert_eq!( - resolve_references(json).unwrap(), - serde_json::json!({ - "a": { - "extends": "$g", - "x": "1", - "h": 2 - }, - "b": { - "c": { - "extends": "$g", - "x": "1", - "h": 2 - }, - "d": "1" - }, - "e": { - "extends": "$a", - "f": "1", - "x": "1", - "h": 2 - }, - "g": { - "h": 2 - } - }) - ) - } - - #[test] - fn test_cycles() { - let json = serde_json::json!({ - "a": { - "b": "$c.d" - }, - "c": { - "d": "$a.b", - }, - }); - - assert!(resolve_references(json).is_err()); - } -} diff --git a/crates/theme/src/theme.rs b/crates/theme/src/theme.rs index 8fa15a92359c18ff7986978d66088c4f6a9332c1..b3c239b4b9f119159f76a3ed23ec477069c6bbd8 100644 --- a/crates/theme/src/theme.rs +++ b/crates/theme/src/theme.rs @@ -1,4 +1,3 @@ -mod resolution; mod theme_registry; use gpui::{ @@ -12,7 +11,7 @@ use std::{collections::HashMap, sync::Arc}; pub use theme_registry::*; -pub const DEFAULT_THEME_NAME: &'static str = "black"; +pub const DEFAULT_THEME_NAME: &'static str = "dark"; #[derive(Deserialize, Default)] pub struct Theme { diff --git a/crates/theme/src/theme_registry.rs b/crates/theme/src/theme_registry.rs index c3910dc4d28f6877b326b4fda36e59d2922db17c..219828b65083b08f1d7d0a105831acfc27bdf50a 100644 --- a/crates/theme/src/theme_registry.rs +++ b/crates/theme/src/theme_registry.rs @@ -1,8 +1,8 @@ -use crate::{resolution::resolve_references, Theme}; +use crate::Theme; use anyhow::{Context, Result}; use gpui::{fonts, AssetSource, FontCache}; use parking_lot::Mutex; -use serde_json::{Map, Value}; +use serde_json::Value; use std::{collections::HashMap, sync::Arc}; pub struct ThemeRegistry { @@ -25,12 +25,8 @@ impl ThemeRegistry { pub fn list(&self) -> impl Iterator { self.assets.list("themes/").into_iter().filter_map(|path| { let filename = path.strip_prefix("themes/")?; - let theme_name = filename.strip_suffix(".toml")?; - if theme_name.starts_with('_') { - None - } else { - Some(theme_name.to_string()) - } + let theme_name = filename.strip_suffix(".json")?; + Some(theme_name.to_string()) }) } @@ -44,9 +40,14 @@ impl ThemeRegistry { return Ok(theme.clone()); } - let theme_data = self.load(name, true)?; + let asset_path = format!("themes/{}.json", name); + let theme_json = self + .assets + .load(&asset_path) + .with_context(|| format!("failed to load theme file {}", asset_path))?; + let mut theme: Theme = fonts::with_font_cache(self.font_cache.clone(), || { - serde_path_to_error::deserialize(theme_data.as_ref()) + serde_path_to_error::deserialize(&mut serde_json::Deserializer::from_slice(&theme_json)) })?; theme.name = name.into(); @@ -54,217 +55,4 @@ impl ThemeRegistry { self.themes.lock().insert(name.to_string(), theme.clone()); Ok(theme) } - - fn load(&self, name: &str, evaluate_references: bool) -> Result> { - if let Some(data) = self.theme_data.lock().get(name) { - return Ok(data.clone()); - } - - let asset_path = format!("themes/{}.toml", name); - let source_code = self - .assets - .load(&asset_path) - .with_context(|| format!("failed to load theme file {}", asset_path))?; - - let mut theme_data: Map = toml::from_slice(source_code.as_ref()) - .with_context(|| format!("failed to parse {}.toml", name))?; - - // If this theme extends another base theme, deeply merge it into the base theme's data - if let Some(base_name) = theme_data - .get("extends") - .and_then(|name| name.as_str()) - .map(str::to_string) - { - let base_theme_data = self - .load(&base_name, false) - .with_context(|| format!("failed to load base theme {}", base_name))? - .as_ref() - .clone(); - if let Value::Object(mut base_theme_object) = base_theme_data { - deep_merge_json(&mut base_theme_object, theme_data); - theme_data = base_theme_object; - } - } - - let mut theme_data = Value::Object(theme_data); - - // Find all of the key path references in the object, and then sort them according - // to their dependencies. - if evaluate_references { - theme_data = resolve_references(theme_data)?; - } - - let result = Arc::new(theme_data); - self.theme_data - .lock() - .insert(name.to_string(), result.clone()); - - Ok(result) - } -} - -fn deep_merge_json(base: &mut Map, extension: Map) { - for (key, extension_value) in extension { - if let Value::Object(extension_object) = extension_value { - if let Some(base_object) = base.get_mut(&key).and_then(|value| value.as_object_mut()) { - deep_merge_json(base_object, extension_object); - } else { - base.insert(key, Value::Object(extension_object)); - } - } else { - base.insert(key, extension_value); - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - use anyhow::anyhow; - use gpui::MutableAppContext; - - #[gpui::test] - fn test_theme_extension(cx: &mut MutableAppContext) { - let assets = TestAssets(&[ - ( - "themes/_base.toml", - r##" - [ui.active_tab] - extends = "$ui.tab" - border.color = "#666666" - text = "$text_colors.bright" - - [ui.tab] - extends = "$ui.element" - text = "$text_colors.dull" - - [ui.element] - background = "#111111" - border = {width = 2.0, color = "#00000000"} - - [editor] - background = "#222222" - default_text = "$text_colors.regular" - "##, - ), - ( - "themes/light.toml", - r##" - extends = "_base" - - [text_colors] - bright = "#ffffff" - regular = "#eeeeee" - dull = "#dddddd" - - [editor] - background = "#232323" - "##, - ), - ]); - - let registry = ThemeRegistry::new(assets, cx.font_cache().clone()); - let theme_data = registry.load("light", true).unwrap(); - - assert_eq!( - theme_data.as_ref(), - &serde_json::json!({ - "ui": { - "active_tab": { - "background": "#111111", - "border": { - "width": 2.0, - "color": "#666666" - }, - "extends": "$ui.tab", - "text": "#ffffff" - }, - "tab": { - "background": "#111111", - "border": { - "width": 2.0, - "color": "#00000000" - }, - "extends": "$ui.element", - "text": "#dddddd" - }, - "element": { - "background": "#111111", - "border": { - "width": 2.0, - "color": "#00000000" - } - } - }, - "editor": { - "background": "#232323", - "default_text": "#eeeeee" - }, - "extends": "_base", - "text_colors": { - "bright": "#ffffff", - "regular": "#eeeeee", - "dull": "#dddddd" - } - }) - ); - } - - #[gpui::test] - fn test_nested_extension(cx: &mut MutableAppContext) { - let assets = TestAssets(&[( - "themes/theme.toml", - r##" - [a] - text = { extends = "$text.0" } - - [b] - extends = "$a" - text = { extends = "$text.1" } - - [text] - 0 = { color = "red" } - 1 = { color = "blue" } - "##, - )]); - - let registry = ThemeRegistry::new(assets, cx.font_cache().clone()); - let theme_data = registry.load("theme", true).unwrap(); - assert_eq!( - theme_data - .get("b") - .unwrap() - .get("text") - .unwrap() - .get("color") - .unwrap(), - "blue" - ); - } - - struct TestAssets(&'static [(&'static str, &'static str)]); - - impl AssetSource for TestAssets { - fn load(&self, path: &str) -> Result> { - if let Some(row) = self.0.iter().find(|e| e.0 == path) { - Ok(row.1.as_bytes().into()) - } else { - Err(anyhow!("no such path {}", path)) - } - } - - fn list(&self, prefix: &str) -> Vec> { - self.0 - .iter() - .copied() - .filter_map(|(path, _)| { - if path.starts_with(prefix) { - Some(path.into()) - } else { - None - } - }) - .collect() - } - } } diff --git a/crates/zed/assets/themes/_base.toml b/crates/zed/assets/themes/_base.toml deleted file mode 100644 index 7f235cbf48e322fc60f1cebee27e7d15a53d7014..0000000000000000000000000000000000000000 --- a/crates/zed/assets/themes/_base.toml +++ /dev/null @@ -1,411 +0,0 @@ -[text] -base = { family = "Zed Sans", size = 14 } - -[workspace] -background = "$surface.0" -pane_divider = { width = 1, color = "$border.0" } -leader_border_opacity = 0.7 -leader_border_width = 2.0 - -[workspace.titlebar] -height = 32 -border = { width = 1, bottom = true, color = "$border.0" } -title = "$text.0" -avatar_width = 18 -avatar = { corner_radius = 10, border = { width = 1, color = "#00000088" } } -avatar_ribbon = { background = "#ff0000", height = 3, width = 12 } -outdated_warning = { extends = "$text.2", size = 13 } -share_icon_color = "$text.2.color" -share_icon_active_color = "$text.0.color" - -[workspace.titlebar.sign_in_prompt] -extends = "$text.2" -size = 13 -underline = true -padding = { right = 8 } - -[workspace.titlebar.hovered_sign_in_prompt] -extends = "$workspace.titlebar.sign_in_prompt" -color = "$text.1.color" - -[workspace.titlebar.offline_icon] -padding = { right = 4 } -width = 16 -color = "$text.2.color" - -[workspace.tab] -height = 34 -text = "$text.2" -padding = { left = 12, right = 12 } -icon_width = 8 -spacing = 10 -icon_close = "$text.2.color" -icon_close_active = "$text.0.color" -icon_dirty = "$status.info" -icon_conflict = "$status.warn" -border = { left = true, bottom = true, width = 1, color = "$border.0", overlay = true } - -[workspace.active_tab] -extends = "$workspace.tab" -border.bottom = false -background = "$surface.1" -text = "$text.0" - -[workspace.sidebar] -width = 30 -border = { right = true, width = 1, color = "$border.0" } - -[workspace.sidebar.resize_handle] -padding = { left = 1 } -background = "$border.0" - -[workspace.sidebar.item] -icon_color = "$text.2.color" -icon_size = 18 -height = "$workspace.tab.height" - -[workspace.sidebar.active_item] -extends = "$workspace.sidebar.item" -icon_color = "$text.0.color" - -[workspace.left_sidebar] -extends = "$workspace.sidebar" -border = { width = 1, color = "$border.0", right = true } - -[workspace.right_sidebar] -extends = "$workspace.sidebar" -border = { width = 1, color = "$border.0", left = true } - -[workspace.status_bar] -padding = { left = 6, right = 6 } -height = 24 -item_spacing = 8 -cursor_position = "$text.2" -diagnostic_message = "$text.2" -lsp_message = "$text.2" - -[workspace.toolbar] -background = "$surface.1" -border = { color = "$border.0", width = 1, left = false, right = false, bottom = true, top = false } -height = 34 -item_spacing = 8 -padding = { left = 16, right = 8, top = 4, bottom = 4 } - -[breadcrumbs] -extends = "$text.1" -padding = { left = 6 } - -[panel] -padding = { top = 12, left = 12, bottom = 12, right = 12 } - -[chat_panel] -extends = "$panel" -channel_name = { extends = "$text.0", weight = "bold" } -channel_name_hash = { text = "$text.2", padding.right = 8 } - -[chat_panel.message] -body = "$text.1" -sender = { extends = "$text.0", weight = "bold", margin.right = 8 } -timestamp = "$text.2" -padding.bottom = 6 - -[chat_panel.pending_message] -extends = "$chat_panel.message" -body = { color = "$text.3.color" } -sender = { color = "$text.3.color" } -timestamp = { color = "$text.3.color" } - -[chat_panel.channel_select.item] -padding = 4 -name = "$text.1" -hash = { extends = "$text.2", margin.right = 8 } - -[chat_panel.channel_select.hovered_item] -extends = "$chat_panel.channel_select.item" -background = "$state.hover" -corner_radius = 6 - -[chat_panel.channel_select.active_item] -extends = "$chat_panel.channel_select.item" -name = "$text.0" - -[chat_panel.channel_select.hovered_active_item] -extends = "$chat_panel.channel_select.hovered_item" -name = "$text.0" - -[chat_panel.channel_select.header] -extends = "$chat_panel.channel_select.active_item" -padding.bottom = 4 -padding.left = 0 - -[chat_panel.channel_select.menu] -padding = 4 -corner_radius = 6 -border = { color = "$border.0", width = 1 } -background = "$surface.0" -shadow = { offset = [0, 2], blur = 16, color = "$shadow.0" } - -[chat_panel.input_editor] -background = "$surface.1" -corner_radius = 6 -padding = { left = 8, right = 8, top = 7, bottom = 7 } -text = "$text.0" -placeholder_text = "$text.2" -selection = "$selection.host" -border = { width = 1, color = "$border.0" } - -[chat_panel.sign_in_prompt] -extends = "$text.0" -underline = true - -[chat_panel.hovered_sign_in_prompt] -extends = "$chat_panel.sign_in_prompt" -color = "$text.1.color" - -[contacts_panel] -extends = "$panel" -host_row_height = 28 -host_avatar = { corner_radius = 10, width = 18 } -host_username = { extends = "$text.0", padding.left = 8 } -tree_branch_width = 1 -tree_branch_color = "$surface.2" - -[contacts_panel.project] -height = 24 -padding = { left = 8 } -guest_avatar = { corner_radius = 8, width = 14 } -guest_avatar_spacing = 4 - -[contacts_panel.project.name] -extends = "$text.1" -margin = { right = 6 } - -[contacts_panel.unshared_project] -extends = "$contacts_panel.project" - -[contacts_panel.hovered_unshared_project] -extends = "$contacts_panel.unshared_project" -background = "$state.hover" -corner_radius = 6 - -[contacts_panel.shared_project] -extends = "$contacts_panel.project" -name.color = "$text.0.color" - -[contacts_panel.hovered_shared_project] -extends = "$contacts_panel.shared_project" -background = "$state.hover" -corner_radius = 6 - -[project_panel] -extends = "$panel" -padding.top = 6 # ($workspace.tab.height - $project_panel.entry.height) / 2 - -[project_panel.entry] -text = "$text.1" -height = 22 -icon_color = "$text.3.color" -icon_size = 8 -icon_spacing = 8 - -[project_panel.hovered_entry] -extends = "$project_panel.entry" -background = "$state.hover" - -[project_panel.selected_entry] -extends = "$project_panel.entry" -text = { extends = "$text.0" } - -[project_panel.hovered_selected_entry] -extends = "$project_panel.hovered_entry" -text = { extends = "$text.0" } - -[selector] -background = "$surface.0" -padding = 8 -margin = { top = 52, bottom = 52 } -corner_radius = 6 -shadow = { offset = [0, 2], blur = 16, color = "$shadow.0" } -border = { width = 1, color = "$border.0" } - -[selector.input_editor] -background = "$surface.1" -corner_radius = 6 -padding = { left = 16, right = 16, top = 7, bottom = 7 } -text = "$text.0" -placeholder_text = "$text.2" -selection = "$selection.host" -border = { width = 1, color = "$border.0" } - -[selector.empty] -text = "$text.2" -padding = { left = 16, right = 16, top = 8, bottom = 4 } - -[selector.item] -text = "$text.1" -highlight_text = { extends = "$text.base", color = "$editor.syntax.keyword.color", weight = "$editor.syntax.keyword.weight" } -padding = { left = 16, right = 16, top = 4, bottom = 4 } -corner_radius = 6 - -[selector.active_item] -extends = "$selector.item" -background = "$state.hover" -text = "$text.0" - -[editor] -text_color = "$text.1.color" -background = "$surface.1" -gutter_background = "$surface.1" -gutter_padding_factor = 2.5 -active_line_background = "$state.active_line" -highlighted_line_background = "$state.highlighted_line" -rename_fade = 0.6 -unnecessary_code_fade = 0.5 -document_highlight_read_background = "#99999920" -document_highlight_write_background = "#99999916" -diff_background_deleted = "$state.deleted_line" -diff_background_inserted = "$state.inserted_line" -line_number = "$text.2.color" -line_number_active = "$text.0.color" -selection = "$selection.host" -guest_selections = "$selection.guests" -error_color = "$status.bad" -code_actions_indicator = "$text.3.color" - -[editor.diagnostic_path_header] -background = "$state.active_line" -filename = { extends = "$text.0", size = 14 } -path = { extends = "$text.2", size = 14, margin.left = 12 } -text_scale_factor = 0.857 - -[editor.diagnostic_header] -background = "$editor.background" -border = { width = 1, top = true, bottom = true, color = "$border.1" } -code = { extends = "$text.2", size = 14, margin.left = 10 } -icon_width_factor = 1.5 -text_scale_factor = 0.857 - -[editor.diagnostic_header.message] -text = { extends = "$text.1", size = 14 } -highlight_text = { extends = "$text.0", size = 14, weight = "bold" } - -[editor.error_diagnostic] -header.border = { width = 1, top = true, color = "$border.0" } -text_scale_factor = 0.857 - -[editor.error_diagnostic.message] -text = { extends = "$text.1", size = 14, color = "$status.bad" } -highlight_text = { extends = "$text.1", size = 14, color = "$status.bad", weight = "bold" } - -[editor.warning_diagnostic] -extends = "$editor.error_diagnostic" -message.text.color = "$status.warn" -message.highlight_text.color = "$status.warn" - -[editor.information_diagnostic] -extends = "$editor.error_diagnostic" -message.text.color = "$status.info" -message.highlight_text.color = "$status.info" - -[editor.hint_diagnostic] -extends = "$editor.error_diagnostic" -message.text.color = "$status.info" -message.highlight_text.color = "$status.info" - -[editor.invalid_error_diagnostic] -extends = "$editor.error_diagnostic" -message.text.color = "$text.3.color" -message.highlight_text.color = "$text.3.color" - -[editor.invalid_warning_diagnostic] -extends = "$editor.warning_diagnostic" -message.text.color = "$text.3.color" -message.highlight_text.color = "$text.3.color" - -[editor.invalid_information_diagnostic] -extends = "$editor.information_diagnostic" -message.text.color = "$text.3.color" -message.highlight_text.color = "$text.3.color" - -[editor.invalid_hint_diagnostic] -extends = "$editor.hint_diagnostic" -message.text.color = "$text.3.color" -message.highlight_text.color = "$text.3.color" - -[editor.autocomplete] -background = "$surface.2" -border = { width = 2, color = "$border.1" } -corner_radius = 6 -padding = 6 -match_highlight = { color = "$editor.syntax.keyword.color", weight = "$editor.syntax.keyword.weight" } -margin.left = -14 - -[editor.autocomplete.item] -padding = { left = 6, right = 6, top = 2, bottom = 2 } -corner_radius = 6 - -[editor.autocomplete.selected_item] -extends = "$editor.autocomplete.item" -background = "$state.selected" - -[editor.autocomplete.hovered_item] -extends = "$editor.autocomplete.item" -background = "$state.hover" - -[project_diagnostics] -background = "$surface.1" -empty_message = { extends = "$text.0", size = 18 } -status_bar_item = { extends = "$text.2", margin.right = 10 } -tab_icon_width = 13 -tab_icon_spacing = 4 -tab_summary_spacing = 10 - -[search] -match_background = "$state.highlighted_line" -results_status = { extends = "$text.0", size = 18 } -tab_icon_width = 14 -tab_icon_spacing = 4 - -[search.option_button] -extends = "$text.1" -padding = { left = 6, right = 6, top = 1, bottom = 1 } -corner_radius = 6 -background = "$surface.1" -border = { width = 1, color = "$border.0" } -margin.left = 1 -margin.right = 1 - -[search.option_button_group] -padding = { left = 2, right = 2 } - -[search.active_option_button] -extends = "$search.option_button" -background = "$surface.2" - -[search.hovered_option_button] -extends = "$search.option_button" -background = "$surface.2" - -[search.active_hovered_option_button] -extends = "$search.option_button" -background = "$surface.2" - -[search.match_index] -extends = "$text.2" -padding = 6 - -[search.editor] -min_width = 200 -max_width = 500 -background = "$surface.0" -corner_radius = 6 -padding = { left = 14, right = 14, top = 3, bottom = 3 } -margin = { right = 5 } -text = "$text.0" -placeholder_text = "$text.2" -selection = "$selection.host" -border = { width = 1, color = "$border.0" } - -[search.invalid_editor] -extends = "$search.editor" -border = { width = 1, color = "$status.bad" } diff --git a/crates/zed/assets/themes/black.toml b/crates/zed/assets/themes/black.toml deleted file mode 100644 index 34de16627ec3b5c0e9313f1d784881b322ade52e..0000000000000000000000000000000000000000 --- a/crates/zed/assets/themes/black.toml +++ /dev/null @@ -1,67 +0,0 @@ -extends = "_base" - -[surface] -0 = "#222222" -1 = "#0f0b0c" -2 = "#131415" - -[border] -0 = "#000000B2" -1 = "#FFFFFF20" - -[text] -0 = { extends = "$text.base", color = "#ffffff" } -1 = { extends = "$text.base", color = "#b3b3b3" } -2 = { extends = "$text.base", color = "#7b7d80" } -3 = { extends = "$text.base", color = "#66686A" } - -[shadow] -0 = "#00000052" - -[selection] -host = { selection = "#3B57BC55", cursor = "$text.0.color" } -guests = [ - { selection = "#FDF35133", cursor = "#FDF351" }, - { selection = "#4EACAD33", cursor = "#4EACAD" }, - { selection = "#D0453B33", cursor = "#D0453B" }, - { selection = "#3B874B33", cursor = "#3B874B" }, - { selection = "#BD7CB433", cursor = "#BD7CB4" }, - { selection = "#EE823133", cursor = "#EE8231" }, - { selection = "#5A2B9233", cursor = "#5A2B92" }, -] - -[status] -good = "#4fac63" -info = "#3c5dd4" -warn = "#faca50" -bad = "#b7372e" - -[state] -active_line = "#161313" -highlighted_line = "#faca5033" -deleted_line = "#dd000036" -inserted_line = "#00dd0036" -hover = "#00000033" -selected = "#00000088" - -[editor.syntax] -keyword = { color = "#0086c0", weight = "bold" } -function = "#dcdcaa" -string = "#cb8f77" -type = "#4ec9b0" -number = "#b5cea8" -comment = "#6a9955" -property = "#4e94ce" -variant = "#4fc1ff" -constant = "#9cdcfe" -title = { color = "#9cdcfe", weight = "bold" } -emphasis = "#4ec9b0" -"emphasis.strong" = { color = "#4ec9b0", weight = "bold" } -link_uri = { color = "#6a9955", underline = true } -link_text = { color = "#cb8f77", italic = true } -list_marker = "#4e94ce" - -[workspace.disconnected_overlay] -extends = "$text.base" -color = "#ffffff" -background = "#000000aa" diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json new file mode 100644 index 0000000000000000000000000000000000000000..65bf78b140ff3c94c298982cf2b3a6f6b8210609 --- /dev/null +++ b/crates/zed/assets/themes/dark.json @@ -0,0 +1,1245 @@ +{ + "selector": { + "background": "#e6e6e6", + "corner_radius": 6, + "padding": 8, + "item": { + "padding": { + "bottom": 4, + "left": 16, + "right": 16, + "top": 4 + }, + "corner_radius": 6, + "text": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#2db4f3", + "weight": "bold", + "size": 14 + } + }, + "active_item": { + "padding": { + "bottom": 4, + "left": 16, + "right": 16, + "top": 4 + }, + "corner_radius": 6, + "text": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#2db4f3", + "weight": "bold", + "size": 14 + }, + "background": "#e6e6e6" + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "empty": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "padding": { + "bottom": 4, + "left": 16, + "right": 16, + "top": 8 + } + }, + "input_editor": { + "background": "#cccccc", + "corner_radius": 6, + "placeholder_text": { + "family": "Zed Sans", + "color": "#bfbfbf", + "size": 14 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "padding": { + "bottom": 7, + "left": 16, + "right": 16, + "top": 7 + } + }, + "margin": { + "bottom": 52, + "top": 52 + }, + "shadow": { + "blur": 16, + "color": "#00000052", + "offset": [ + 0, + 2 + ] + } + }, + "workspace": { + "background": "#e6e6e6", + "leader_border_opacity": 0.7, + "leader_border_width": 2, + "tab": { + "height": 34, + "icon_close": "#808080", + "icon_close_active": "#0d0d0d", + "icon_conflict": "#f8c570", + "icon_dirty": "#6099f7", + "icon_width": 8, + "spacing": 10, + "text": { + "family": "Zed Mono", + "color": "#595959", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1, + "left": true, + "bottom": true, + "overlay": true + }, + "padding": { + "left": 12, + "right": 12 + } + }, + "active_tab": { + "height": 34, + "icon_close": "#808080", + "icon_close_active": "#0d0d0d", + "icon_conflict": "#f8c570", + "icon_dirty": "#6099f7", + "icon_width": 8, + "spacing": 10, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1, + "left": true, + "bottom": false, + "overlay": true + }, + "padding": { + "left": 12, + "right": 12 + }, + "background": "#cccccc" + }, + "left_sidebar": { + "width": 30, + "border": { + "color": "#d9d9d9", + "width": 1, + "right": true + }, + "item": { + "height": 32, + "icon_color": "#808080", + "icon_size": 18 + }, + "active_item": { + "height": 32, + "icon_color": "#4d4d4d", + "icon_size": 18 + }, + "resize_handle": { + "background": "#d9d9d9", + "padding": { + "left": 1 + } + } + }, + "right_sidebar": { + "width": 30, + "border": { + "color": "#d9d9d9", + "width": 1, + "left": true + }, + "item": { + "height": 32, + "icon_color": "#808080", + "icon_size": 18 + }, + "active_item": { + "height": 32, + "icon_color": "#4d4d4d", + "icon_size": 18 + }, + "resize_handle": { + "background": "#d9d9d9", + "padding": { + "left": 1 + } + } + }, + "pane_divider": { + "color": "#d9d9d9", + "width": 1 + }, + "status_bar": { + "height": 24, + "item_spacing": 8, + "padding": { + "left": 6, + "right": 6 + }, + "cursor_position": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "diagnostic_message": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "lsp_message": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + } + }, + "titlebar": { + "avatar_width": 18, + "height": 32, + "share_icon_color": "#808080", + "share_icon_active_color": "#0d0d0d", + "title": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "avatar": { + "corner_radius": 10, + "border": { + "color": "#00000088", + "width": 1 + } + }, + "avatar_ribbon": { + "height": 3, + "width": 12 + }, + "border": { + "color": "#d9d9d9", + "width": 1, + "bottom": true + }, + "sign_in_prompt": { + "family": "Zed Sans", + "color": "#595959", + "size": 13, + "underline": true, + "padding": { + "right": 8 + } + }, + "hovered_sign_in_prompt": { + "family": "Zed Mono", + "color": "#000000", + "size": 16, + "underline": true, + "padding": { + "right": 8 + } + }, + "offline_icon": { + "color": "#999999", + "width": 16, + "padding": { + "right": 4 + } + }, + "outdated_warning": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 13 + } + }, + "toolbar": { + "height": 34, + "background": "#cccccc", + "border": { + "color": "#d9d9d9", + "width": 1, + "bottom": true + }, + "item_spacing": 8, + "padding": { + "left": 16, + "right": 8, + "top": 4, + "bottom": 4 + } + }, + "breadcrumbs": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "padding": { + "left": 6 + } + }, + "disconnected_overlay": { + "family": "Zed Sans", + "color": "#ffffff", + "size": 14, + "background": "#000000aa" + } + }, + "editor": { + "text_color": "#595959", + "background": "#cccccc", + "active_line_background": "#000000", + "code_actions_indicator": "#808080", + "diff_background_deleted": "#f78c8c", + "diff_background_inserted": "#22c55e", + "document_highlight_read_background": "#e6e6e6", + "document_highlight_write_background": "#e6e6e6", + "error_color": "#f78c8c", + "gutter_background": "#cccccc", + "gutter_padding_factor": 2.5, + "highlighted_line_background": "#000000", + "line_number": "#000000", + "line_number_active": "#000000", + "rename_fade": 0.6, + "unnecessary_code_fade": 0.5, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "guest_selections": [ + { + "cursor": "#777af4", + "selection": "#777af4" + }, + { + "cursor": "#23d464", + "selection": "#23d464" + }, + { + "cursor": "#f98a3d", + "selection": "#f98a3d" + }, + { + "cursor": "#b671f8", + "selection": "#b671f8" + }, + { + "cursor": "#16ddc7", + "selection": "#16ddc7" + }, + { + "cursor": "#f58ac0", + "selection": "#f58ac0" + }, + { + "cursor": "#f6bc09", + "selection": "#f6bc09" + } + ], + "autocomplete": { + "background": "#bfbfbf", + "corner_radius": 6, + "padding": 6, + "border": { + "color": "#b3b3b3", + "width": 1 + }, + "item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + } + }, + "hovered_item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + }, + "background": "#bfbfbf" + }, + "margin": { + "left": -14 + }, + "match_highlight": { + "color": "#59c3f5", + "weight": "normal" + }, + "selected_item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + }, + "background": "#bfbfbf" + } + }, + "diagnostic_header": { + "background": "#e6e6e6", + "icon_width_factor": 1.5, + "text_scale_factor": 0.857, + "border": { + "color": "#b3b3b3", + "width": 1, + "bottom": true, + "top": true + }, + "code": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 14, + "margin": { + "left": 10 + } + }, + "message": { + "highlight_text": { + "family": "Zed Sans", + "color": "#262626", + "size": 14, + "weight": "bold" + }, + "text": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + } + } + }, + "diagnostic_path_header": { + "background": "#000000", + "text_scale_factor": 0.857, + "filename": { + "family": "Zed Mono", + "color": "#262626", + "size": 14 + }, + "path": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 14, + "margin": { + "left": 12 + } + } + }, + "error_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#f78c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#f78c8c", + "size": 14, + "weight": "bold" + } + } + }, + "warning_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#f8c570", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#f8c570", + "size": 14, + "weight": "bold" + } + } + }, + "information_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14, + "weight": "bold" + } + } + }, + "hint_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_error_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_hint_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_information_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_warning_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "syntax": {} + }, + "project_diagnostics": { + "background": "#cccccc", + "tab_icon_spacing": 4, + "tab_icon_width": 13, + "tab_summary_spacing": 10, + "empty_message": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "status_bar_item": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 10 + } + } + }, + "project_panel": { + "padding": { + "top": 6 + }, + "entry": { + "height": 22, + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#595959", + "size": 16 + } + }, + "hovered_entry": { + "height": 22, + "background": "#cccccc", + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#595959", + "size": 16 + } + }, + "selected_entry": { + "height": 22, + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + } + }, + "hovered_selected_entry": { + "height": 22, + "background": "#cccccc", + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + } + } + }, + "chat_panel": { + "padding": { + "top": 12, + "left": 12, + "bottom": 12, + "right": 12 + }, + "channel_name": { + "family": "Zed Sans", + "color": "#262626", + "weight": "bold", + "size": 14 + }, + "channel_name_hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "padding": { + "right": 8 + } + }, + "channel_select": { + "header": { + "name": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "padding": { + "bottom": 4, + "left": 0 + }, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "item": { + "name": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "hovered_item": { + "name": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "background": "#cccccc", + "corner_radius": 6 + }, + "active_item": { + "name": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "hovered_active_item": { + "name": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "background": "#cccccc", + "corner_radius": 6 + }, + "menu": { + "background": "#e6e6e6", + "corner_radius": 6, + "padding": 4, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "shadow": { + "blur": 16, + "color": "#00000052", + "offset": [ + 0, + 2 + ] + } + } + }, + "sign_in_prompt": { + "family": "Zed Sans", + "color": "#595959", + "underline": true, + "size": 14 + }, + "hovered_sign_in_prompt": { + "family": "Zed Sans", + "color": "#262626", + "underline": true, + "size": 14 + }, + "message": { + "body": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "timestamp": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "padding": { + "bottom": 6 + }, + "sender": { + "family": "Zed Sans", + "color": "#262626", + "weight": "bold", + "size": 14, + "margin": { + "right": 8 + } + } + }, + "pending_message": { + "body": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "timestamp": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "padding": { + "bottom": 6 + }, + "sender": { + "family": "Zed Sans", + "color": "#8c8c8c", + "weight": "bold", + "size": 14, + "margin": { + "right": 8 + } + } + }, + "input_editor": { + "background": "#cccccc", + "corner_radius": 6, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "placeholder_text": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 16 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "padding": { + "bottom": 7, + "left": 8, + "right": 8, + "top": 7 + } + } + }, + "contacts_panel": { + "padding": { + "top": 12, + "left": 12, + "bottom": 12, + "right": 12 + }, + "host_row_height": 28, + "tree_branch_color": "#bfbfbf", + "tree_branch_width": 1, + "host_avatar": { + "corner_radius": 10, + "width": 18 + }, + "host_username": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 16, + "padding": { + "left": 8 + } + }, + "project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + } + }, + "shared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#262626", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + } + }, + "hovered_shared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#262626", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + }, + "background": "#000000", + "corner_radius": 6 + }, + "unshared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + } + }, + "hovered_unshared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + }, + "background": "#000000", + "corner_radius": 6 + } + }, + "search": { + "match_background": "#000000", + "tab_icon_spacing": 4, + "tab_icon_width": 14, + "active_hovered_option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#bfbfbf", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "active_option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#bfbfbf", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "editor": { + "background": "#e6e6e6", + "corner_radius": 6, + "min_width": 200, + "max_width": 500, + "placeholder_text": { + "family": "Zed Mono", + "color": "#bfbfbf", + "size": 16 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "right": 5 + }, + "padding": { + "top": 3, + "bottom": 3, + "left": 14, + "right": 14 + } + }, + "hovered_option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#bfbfbf", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "invalid_editor": { + "background": "#e6e6e6", + "corner_radius": 6, + "min_width": 200, + "max_width": 500, + "placeholder_text": { + "family": "Zed Mono", + "color": "#bfbfbf", + "size": 16 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#ffffff", + "width": 1 + }, + "margin": { + "right": 5 + }, + "padding": { + "top": 3, + "bottom": 3, + "left": 14, + "right": 14 + } + }, + "match_index": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 16, + "padding": 6 + }, + "option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#cccccc", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "option_button_group": { + "padding": { + "left": 2, + "right": 2 + } + }, + "results_status": { + "family": "Zed Mono", + "color": "#262626", + "size": 18 + } + }, + "breadcrumbs": { + "family": "Zed Sans", + "color": "#262626", + "size": 14, + "padding": { + "left": 6 + } + } +} \ No newline at end of file diff --git a/crates/zed/assets/themes/dark.toml b/crates/zed/assets/themes/dark.toml deleted file mode 100644 index fa673ac446426fed977dcf34abaa5361754e4db0..0000000000000000000000000000000000000000 --- a/crates/zed/assets/themes/dark.toml +++ /dev/null @@ -1,67 +0,0 @@ -extends = "_base" - -[surface] -0 = "#283340" -1 = "#1C2733" -2 = "#1C2733" - -[border] -0 = "#1B222B" -1 = "#FFFFFF20" - -[text] -0 = { extends = "$text.base", color = "#FFFFFF" } -1 = { extends = "$text.base", color = "#CDD1E2" } -2 = { extends = "$text.base", color = "#9BA8BE" } -3 = { extends = "$text.base", color = "#6E7483" } - -[shadow] -0 = "#00000052" - -[selection] -host = { selection = "#3B57BC55", cursor = "$text.0.color" } -guests = [ - { selection = "#FDF35133", cursor = "#FDF351" }, - { selection = "#4EACAD33", cursor = "#4EACAD" }, - { selection = "#D0453B33", cursor = "#D0453B" }, - { selection = "#3B874B33", cursor = "#3B874B" }, - { selection = "#BD7CB433", cursor = "#BD7CB4" }, - { selection = "#EE823133", cursor = "#EE8231" }, - { selection = "#5A2B9233", cursor = "#5A2B92" }, -] - -[status] -good = "#4fac63" -info = "#3c5dd4" -warn = "#faca50" -bad = "#b7372e" - -[state] -active_line = "#00000022" -highlighted_line = "#faca5033" -deleted_line = "#dd000036" -inserted_line = "#00dd0036" -hover = "#00000033" -selected = "#00000088" - -[editor.syntax] -keyword = { color = "#0086c0", weight = "bold" } -function = "#dcdcaa" -string = "#cb8f77" -type = "#4ec9b0" -number = "#b5cea8" -comment = "#6a9955" -property = "#4e94ce" -variant = "#4fc1ff" -constant = "#9cdcfe" -title = { color = "#9cdcfe", weight = "bold" } -emphasis = "#4ec9b0" -"emphasis.strong" = { color = "#4ec9b0", weight = "bold" } -link_uri = { color = "#6a9955", underline = true } -link_text = { color = "#cb8f77", italic = true } -list_marker = "#4e94ce" - -[workspace.disconnected_overlay] -extends = "$text.base" -color = "#ffffff" -background = "#000000aa" diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json new file mode 100644 index 0000000000000000000000000000000000000000..65bf78b140ff3c94c298982cf2b3a6f6b8210609 --- /dev/null +++ b/crates/zed/assets/themes/light.json @@ -0,0 +1,1245 @@ +{ + "selector": { + "background": "#e6e6e6", + "corner_radius": 6, + "padding": 8, + "item": { + "padding": { + "bottom": 4, + "left": 16, + "right": 16, + "top": 4 + }, + "corner_radius": 6, + "text": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#2db4f3", + "weight": "bold", + "size": 14 + } + }, + "active_item": { + "padding": { + "bottom": 4, + "left": 16, + "right": 16, + "top": 4 + }, + "corner_radius": 6, + "text": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#2db4f3", + "weight": "bold", + "size": 14 + }, + "background": "#e6e6e6" + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "empty": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "padding": { + "bottom": 4, + "left": 16, + "right": 16, + "top": 8 + } + }, + "input_editor": { + "background": "#cccccc", + "corner_radius": 6, + "placeholder_text": { + "family": "Zed Sans", + "color": "#bfbfbf", + "size": 14 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "padding": { + "bottom": 7, + "left": 16, + "right": 16, + "top": 7 + } + }, + "margin": { + "bottom": 52, + "top": 52 + }, + "shadow": { + "blur": 16, + "color": "#00000052", + "offset": [ + 0, + 2 + ] + } + }, + "workspace": { + "background": "#e6e6e6", + "leader_border_opacity": 0.7, + "leader_border_width": 2, + "tab": { + "height": 34, + "icon_close": "#808080", + "icon_close_active": "#0d0d0d", + "icon_conflict": "#f8c570", + "icon_dirty": "#6099f7", + "icon_width": 8, + "spacing": 10, + "text": { + "family": "Zed Mono", + "color": "#595959", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1, + "left": true, + "bottom": true, + "overlay": true + }, + "padding": { + "left": 12, + "right": 12 + } + }, + "active_tab": { + "height": 34, + "icon_close": "#808080", + "icon_close_active": "#0d0d0d", + "icon_conflict": "#f8c570", + "icon_dirty": "#6099f7", + "icon_width": 8, + "spacing": 10, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1, + "left": true, + "bottom": false, + "overlay": true + }, + "padding": { + "left": 12, + "right": 12 + }, + "background": "#cccccc" + }, + "left_sidebar": { + "width": 30, + "border": { + "color": "#d9d9d9", + "width": 1, + "right": true + }, + "item": { + "height": 32, + "icon_color": "#808080", + "icon_size": 18 + }, + "active_item": { + "height": 32, + "icon_color": "#4d4d4d", + "icon_size": 18 + }, + "resize_handle": { + "background": "#d9d9d9", + "padding": { + "left": 1 + } + } + }, + "right_sidebar": { + "width": 30, + "border": { + "color": "#d9d9d9", + "width": 1, + "left": true + }, + "item": { + "height": 32, + "icon_color": "#808080", + "icon_size": 18 + }, + "active_item": { + "height": 32, + "icon_color": "#4d4d4d", + "icon_size": 18 + }, + "resize_handle": { + "background": "#d9d9d9", + "padding": { + "left": 1 + } + } + }, + "pane_divider": { + "color": "#d9d9d9", + "width": 1 + }, + "status_bar": { + "height": 24, + "item_spacing": 8, + "padding": { + "left": 6, + "right": 6 + }, + "cursor_position": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "diagnostic_message": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "lsp_message": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + } + }, + "titlebar": { + "avatar_width": 18, + "height": 32, + "share_icon_color": "#808080", + "share_icon_active_color": "#0d0d0d", + "title": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "avatar": { + "corner_radius": 10, + "border": { + "color": "#00000088", + "width": 1 + } + }, + "avatar_ribbon": { + "height": 3, + "width": 12 + }, + "border": { + "color": "#d9d9d9", + "width": 1, + "bottom": true + }, + "sign_in_prompt": { + "family": "Zed Sans", + "color": "#595959", + "size": 13, + "underline": true, + "padding": { + "right": 8 + } + }, + "hovered_sign_in_prompt": { + "family": "Zed Mono", + "color": "#000000", + "size": 16, + "underline": true, + "padding": { + "right": 8 + } + }, + "offline_icon": { + "color": "#999999", + "width": 16, + "padding": { + "right": 4 + } + }, + "outdated_warning": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 13 + } + }, + "toolbar": { + "height": 34, + "background": "#cccccc", + "border": { + "color": "#d9d9d9", + "width": 1, + "bottom": true + }, + "item_spacing": 8, + "padding": { + "left": 16, + "right": 8, + "top": 4, + "bottom": 4 + } + }, + "breadcrumbs": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "padding": { + "left": 6 + } + }, + "disconnected_overlay": { + "family": "Zed Sans", + "color": "#ffffff", + "size": 14, + "background": "#000000aa" + } + }, + "editor": { + "text_color": "#595959", + "background": "#cccccc", + "active_line_background": "#000000", + "code_actions_indicator": "#808080", + "diff_background_deleted": "#f78c8c", + "diff_background_inserted": "#22c55e", + "document_highlight_read_background": "#e6e6e6", + "document_highlight_write_background": "#e6e6e6", + "error_color": "#f78c8c", + "gutter_background": "#cccccc", + "gutter_padding_factor": 2.5, + "highlighted_line_background": "#000000", + "line_number": "#000000", + "line_number_active": "#000000", + "rename_fade": 0.6, + "unnecessary_code_fade": 0.5, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "guest_selections": [ + { + "cursor": "#777af4", + "selection": "#777af4" + }, + { + "cursor": "#23d464", + "selection": "#23d464" + }, + { + "cursor": "#f98a3d", + "selection": "#f98a3d" + }, + { + "cursor": "#b671f8", + "selection": "#b671f8" + }, + { + "cursor": "#16ddc7", + "selection": "#16ddc7" + }, + { + "cursor": "#f58ac0", + "selection": "#f58ac0" + }, + { + "cursor": "#f6bc09", + "selection": "#f6bc09" + } + ], + "autocomplete": { + "background": "#bfbfbf", + "corner_radius": 6, + "padding": 6, + "border": { + "color": "#b3b3b3", + "width": 1 + }, + "item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + } + }, + "hovered_item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + }, + "background": "#bfbfbf" + }, + "margin": { + "left": -14 + }, + "match_highlight": { + "color": "#59c3f5", + "weight": "normal" + }, + "selected_item": { + "corner_radius": 6, + "padding": { + "bottom": 2, + "left": 6, + "right": 6, + "top": 2 + }, + "background": "#bfbfbf" + } + }, + "diagnostic_header": { + "background": "#e6e6e6", + "icon_width_factor": 1.5, + "text_scale_factor": 0.857, + "border": { + "color": "#b3b3b3", + "width": 1, + "bottom": true, + "top": true + }, + "code": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 14, + "margin": { + "left": 10 + } + }, + "message": { + "highlight_text": { + "family": "Zed Sans", + "color": "#262626", + "size": 14, + "weight": "bold" + }, + "text": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + } + } + }, + "diagnostic_path_header": { + "background": "#000000", + "text_scale_factor": 0.857, + "filename": { + "family": "Zed Mono", + "color": "#262626", + "size": 14 + }, + "path": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 14, + "margin": { + "left": 12 + } + } + }, + "error_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#f78c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#f78c8c", + "size": 14, + "weight": "bold" + } + } + }, + "warning_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#f8c570", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#f8c570", + "size": 14, + "weight": "bold" + } + } + }, + "information_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14, + "weight": "bold" + } + } + }, + "hint_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#6099f7", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_error_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_hint_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_information_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "invalid_warning_diagnostic": { + "text_scale_factor": 0.857, + "header": { + "border": { + "color": "#d9d9d9", + "width": 1, + "top": true + } + }, + "message": { + "text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "highlight_text": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "weight": "bold" + } + } + }, + "syntax": {} + }, + "project_diagnostics": { + "background": "#cccccc", + "tab_icon_spacing": 4, + "tab_icon_width": 13, + "tab_summary_spacing": 10, + "empty_message": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "status_bar_item": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 10 + } + } + }, + "project_panel": { + "padding": { + "top": 6 + }, + "entry": { + "height": 22, + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#595959", + "size": 16 + } + }, + "hovered_entry": { + "height": 22, + "background": "#cccccc", + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#595959", + "size": 16 + } + }, + "selected_entry": { + "height": 22, + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + } + }, + "hovered_selected_entry": { + "height": 22, + "background": "#cccccc", + "icon_color": "#999999", + "icon_size": 8, + "icon_spacing": 8, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + } + } + }, + "chat_panel": { + "padding": { + "top": 12, + "left": 12, + "bottom": 12, + "right": 12 + }, + "channel_name": { + "family": "Zed Sans", + "color": "#262626", + "weight": "bold", + "size": 14 + }, + "channel_name_hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "padding": { + "right": 8 + } + }, + "channel_select": { + "header": { + "name": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "padding": { + "bottom": 4, + "left": 0 + }, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "item": { + "name": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "hovered_item": { + "name": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "background": "#cccccc", + "corner_radius": 6 + }, + "active_item": { + "name": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "corner_radius": 0 + }, + "hovered_active_item": { + "name": { + "family": "Zed Sans", + "color": "#262626", + "size": 14 + }, + "padding": 4, + "hash": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14, + "margin": { + "right": 8 + } + }, + "background": "#cccccc", + "corner_radius": 6 + }, + "menu": { + "background": "#e6e6e6", + "corner_radius": 6, + "padding": 4, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "shadow": { + "blur": 16, + "color": "#00000052", + "offset": [ + 0, + 2 + ] + } + } + }, + "sign_in_prompt": { + "family": "Zed Sans", + "color": "#595959", + "underline": true, + "size": 14 + }, + "hovered_sign_in_prompt": { + "family": "Zed Sans", + "color": "#262626", + "underline": true, + "size": 14 + }, + "message": { + "body": { + "family": "Zed Sans", + "color": "#595959", + "size": 14 + }, + "timestamp": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "padding": { + "bottom": 6 + }, + "sender": { + "family": "Zed Sans", + "color": "#262626", + "weight": "bold", + "size": 14, + "margin": { + "right": 8 + } + } + }, + "pending_message": { + "body": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "timestamp": { + "family": "Zed Sans", + "color": "#8c8c8c", + "size": 14 + }, + "padding": { + "bottom": 6 + }, + "sender": { + "family": "Zed Sans", + "color": "#8c8c8c", + "weight": "bold", + "size": 14, + "margin": { + "right": 8 + } + } + }, + "input_editor": { + "background": "#cccccc", + "corner_radius": 6, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "placeholder_text": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 16 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "padding": { + "bottom": 7, + "left": 8, + "right": 8, + "top": 7 + } + } + }, + "contacts_panel": { + "padding": { + "top": 12, + "left": 12, + "bottom": 12, + "right": 12 + }, + "host_row_height": 28, + "tree_branch_color": "#bfbfbf", + "tree_branch_width": 1, + "host_avatar": { + "corner_radius": 10, + "width": 18 + }, + "host_username": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 16, + "padding": { + "left": 8 + } + }, + "project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + } + }, + "shared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#262626", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + } + }, + "hovered_shared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#262626", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + }, + "background": "#000000", + "corner_radius": 6 + }, + "unshared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + } + }, + "hovered_unshared_project": { + "guest_avatar_spacing": 4, + "height": 24, + "guest_avatar": { + "corner_radius": 8, + "width": 14 + }, + "name": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "margin": { + "right": 6 + } + }, + "padding": { + "left": 8 + }, + "background": "#000000", + "corner_radius": 6 + } + }, + "search": { + "match_background": "#000000", + "tab_icon_spacing": 4, + "tab_icon_width": 14, + "active_hovered_option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#bfbfbf", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "active_option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#bfbfbf", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "editor": { + "background": "#e6e6e6", + "corner_radius": 6, + "min_width": 200, + "max_width": 500, + "placeholder_text": { + "family": "Zed Mono", + "color": "#bfbfbf", + "size": 16 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "right": 5 + }, + "padding": { + "top": 3, + "bottom": 3, + "left": 14, + "right": 14 + } + }, + "hovered_option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#bfbfbf", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "invalid_editor": { + "background": "#e6e6e6", + "corner_radius": 6, + "min_width": 200, + "max_width": 500, + "placeholder_text": { + "family": "Zed Mono", + "color": "#bfbfbf", + "size": 16 + }, + "selection": { + "cursor": "#4287f6", + "selection": "#4287f6" + }, + "text": { + "family": "Zed Mono", + "color": "#262626", + "size": 16 + }, + "border": { + "color": "#ffffff", + "width": 1 + }, + "margin": { + "right": 5 + }, + "padding": { + "top": 3, + "bottom": 3, + "left": 14, + "right": 14 + } + }, + "match_index": { + "family": "Zed Mono", + "color": "#8c8c8c", + "size": 16, + "padding": 6 + }, + "option_button": { + "family": "Zed Mono", + "color": "#595959", + "size": 16, + "background": "#cccccc", + "corner_radius": 6, + "border": { + "color": "#d9d9d9", + "width": 1 + }, + "margin": { + "left": 1, + "right": 1 + }, + "padding": { + "bottom": 1, + "left": 6, + "right": 6, + "top": 1 + } + }, + "option_button_group": { + "padding": { + "left": 2, + "right": 2 + } + }, + "results_status": { + "family": "Zed Mono", + "color": "#262626", + "size": 18 + } + }, + "breadcrumbs": { + "family": "Zed Sans", + "color": "#262626", + "size": 14, + "padding": { + "left": 6 + } + } +} \ No newline at end of file diff --git a/crates/zed/assets/themes/light.toml b/crates/zed/assets/themes/light.toml deleted file mode 100644 index 2884515e09f41fc1ade19d886604e6af5ff2a1ae..0000000000000000000000000000000000000000 --- a/crates/zed/assets/themes/light.toml +++ /dev/null @@ -1,67 +0,0 @@ -extends = "_base" - -[surface] -0 = "#EAEAEB" -1 = "#FAFAFA" -2 = "#FFFFFF" - -[border] -0 = "#DDDDDC" -1 = "#0000000F" - -[text] -0 = { extends = "$text.base", color = "#000000" } -1 = { extends = "$text.base", color = "#29292B" } -2 = { extends = "$text.base", color = "#7E7E83" } -3 = { extends = "$text.base", color = "#939393" } - -[shadow] -0 = "#0000000D" - -[selection] -host = { selection = "#3B57BC55", cursor = "$text.0.color" } -guests = [ - { selection = "#D0453B33", cursor = "#D0453B" }, - { selection = "#3B874B33", cursor = "#3B874B" }, - { selection = "#BD7CB433", cursor = "#BD7CB4" }, - { selection = "#EE823133", cursor = "#EE8231" }, - { selection = "#5A2B9233", cursor = "#5A2B92" }, - { selection = "#FDF35133", cursor = "#FDF351" }, - { selection = "#4EACAD33", cursor = "#4EACAD" }, -] - -[status] -good = "#4fac63" -info = "#3c5dd4" -warn = "#faca50" -bad = "#b7372e" - -[state] -active_line = "#00000008" -highlighted_line = "#faca5033" -deleted_line = "#dd000036" -inserted_line = "#00dd0036" -hover = "#0000000D" -selected = "#0000001c" - -[editor.syntax] -keyword = { color = "#0000fa", weight = "bold" } -function = "#795e26" -string = "#a82121" -type = "#267f29" -number = "#b5cea8" -comment = "#6a9955" -property = "#4e94ce" -variant = "#4fc1ff" -constant = "#5a9ccc" -title = { color = "#5a9ccc", weight = "bold" } -emphasis = "#267f29" -"emphasis.strong" = { color = "#267f29", weight = "bold" } -link_uri = { color = "#6a9955", underline = true } -link_text = { color = "#a82121", italic = true } -list_marker = "#4e94ce" - -[workspace.disconnected_overlay] -extends = "$text.base" -color = "#ffffff" -background = "#000000cc" diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index aec0bc533e4a1842789b813c4fc060eaa334e165..dd4268fd76902294345138e4c9d340378c894434 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -988,7 +988,8 @@ mod tests { lazy_static::lazy_static! { static ref DEFAULT_THEME: parking_lot::Mutex>> = Default::default(); static ref FONTS: Vec>> = vec![ - Assets.load("fonts/zed-sans/zed-sans-extended.ttf").unwrap().to_vec().into() + Assets.load("fonts/zed-sans/zed-sans-extended.ttf").unwrap().to_vec().into(), + Assets.load("fonts/zed-mono/zed-mono-extended.ttf").unwrap().to_vec().into(), ]; } diff --git a/styles/buildThemes.ts b/styles/buildThemes.ts index ced82e98664980b3d1af9f50d8f4f8f498f59d49..d67860cee66a0ec7abd7d37da8b10f0a6c930488 100644 --- a/styles/buildThemes.ts +++ b/styles/buildThemes.ts @@ -7,11 +7,11 @@ import decamelizeTree from "./utils/decamelizeTree"; const themes = [dark, light]; for (let theme of themes) { - let styleTree = decamelizeTree(app(theme)); - let styleTreeJSON = JSON.stringify(styleTree, null, 2); - let outPath = path.resolve( - `${__dirname}/../crates/zed/assets/themes/${theme.name}.json` - ); - fs.writeFileSync(outPath, styleTreeJSON); - console.log(`Generated ${outPath}`); + let styleTree = decamelizeTree(app(theme)); + let styleTreeJSON = JSON.stringify(styleTree, null, 2); + let outPath = path.resolve( + `${__dirname}/../crates/zed/assets/themes/${theme.name}.json` + ); + fs.writeFileSync(outPath, styleTreeJSON); + console.log(`Generated ${outPath}`); } diff --git a/styles/styleTree/app.ts b/styles/styleTree/app.ts index c7edfdc2701f06e6cb1b41beb779ad6bc0aca75b..d26ada4fc9bc6ebab7c63255245ff003dfae0640 100644 --- a/styles/styleTree/app.ts +++ b/styles/styleTree/app.ts @@ -1,6 +1,7 @@ import Theme from "../themes/theme"; import chatPanel from "./chatPanel"; import { backgroundColor, borderColor, text } from "./components"; +import contactsPanel from "./contactsPanel"; import editor from "./editor"; import projectPanel from "./projectPanel"; import search from "./search"; @@ -8,83 +9,38 @@ import selectorModal from "./selectorModal"; import workspace from "./workspace"; export const panel = { - padding: { top: 12, left: 12, bottom: 12, right: 12 }, + padding: { top: 12, left: 12, bottom: 12, right: 12 }, }; export default function app(theme: Theme): Object { - return { - selector: selectorModal(theme), - workspace: workspace(theme), - editor: editor(theme), - projectDiagnostics: { - background: backgroundColor(theme, 300), - tabIconSpacing: 4, - tabIconWidth: 13, - tabSummarySpacing: 10, - emptyMessage: { - ...text(theme, "sans", "primary", { size: "lg" }), - }, - statusBarItem: { - ...text(theme, "sans", "muted"), - margin: { - right: 10, + return { + selector: selectorModal(theme), + workspace: workspace(theme), + editor: editor(theme), + projectDiagnostics: { + background: backgroundColor(theme, 300), + tabIconSpacing: 4, + tabIconWidth: 13, + tabSummarySpacing: 10, + emptyMessage: { + ...text(theme, "sans", "primary", { size: "lg" }), + }, + statusBarItem: { + ...text(theme, "sans", "muted"), + margin: { + right: 10, + }, + }, }, - }, - }, - projectPanel: projectPanel(theme), - chatPanel: chatPanel(theme), - contactsPanel: { - ...panel, - hostRowHeight: 28, - treeBranchColor: borderColor(theme, "muted"), - treeBranchWidth: 1, - hostAvatar: { - cornerRadius: 10, - width: 18, - }, - hostUsername: { - ...text(theme, "mono", "muted"), - padding: { - left: 8, - }, - }, - hoveredSharedProject: { - extends: "$contacts_panel.sharedProject", - background: theme.editor.line.active.value, - cornerRadius: 6, - }, - hoveredUnsharedProject: { - extends: "$contacts_panel.unsharedProject", - background: theme.editor.line.active.value, - cornerRadius: 6, - }, - project: { - guestAvatarSpacing: 4, - height: 24, - guestAvatar: { - cornerRadius: 8, - width: 14, - }, - name: { - extends: text(theme, "mono", "secondary"), - margin: { - right: 6, - }, - }, - padding: { - left: 8, - }, - }, - sharedProject: { - extends: "$contactsPanel.project", - name: { - color: text(theme, "mono", "primary"), - }, - }, - unsharedProject: { - extends: "$contactsPanel.project", - }, - }, - search: search(theme), - }; + projectPanel: projectPanel(theme), + chatPanel: chatPanel(theme), + contactsPanel: contactsPanel(theme), + search: search(theme), + breadcrumbs: { + ...text(theme, "sans", "primary"), + padding: { + left: 6, + }, + } + }; } diff --git a/styles/styleTree/components.ts b/styles/styleTree/components.ts index 55a64cb1ecb4ec8f60878d9e795f671a9a5cfede..205fd9b26200510d7adeb4f226ed893e8a17bbaa 100644 --- a/styles/styleTree/components.ts +++ b/styles/styleTree/components.ts @@ -1,25 +1,25 @@ import chroma from "chroma-js"; -import Theme, { BackgroundColor, Weight } from "../themes/theme"; -import core from "../tokens/core"; +import Theme, { BackgroundColor } from "../themes/theme"; +import { fontFamilies, fontSizes, FontWeight } from "../tokens"; import { Color } from "../utils/color"; export type TextColor = keyof Theme["textColor"]; export function text( theme: Theme, - fontFamily: keyof typeof core.fontFamily, + fontFamily: keyof typeof fontFamilies, color: TextColor, properties?: { - size?: keyof typeof core["fontSize"]; - weight?: Weight; + size?: keyof typeof fontSizes; + weight?: FontWeight; underline?: boolean; } ) { const sizeKey = properties?.size || fontFamily === "sans" ? "sm" : "md"; - const size = core.fontSize[sizeKey].value; + const size = fontSizes[sizeKey].value; return { - family: core.fontFamily[fontFamily], + family: fontFamilies[fontFamily].value, color: theme.textColor[color].value, ...properties, size, diff --git a/styles/styleTree/contactsPanel.ts b/styles/styleTree/contactsPanel.ts new file mode 100644 index 0000000000000000000000000000000000000000..9b88a35f13692712cd61c89d4af75476d7bb49c6 --- /dev/null +++ b/styles/styleTree/contactsPanel.ts @@ -0,0 +1,61 @@ +import Theme from "../themes/theme"; +import { panel } from "./app"; +import { borderColor, text } from "./components"; + +export default function(theme: Theme) { + const project = { + guestAvatarSpacing: 4, + height: 24, + guestAvatar: { + cornerRadius: 8, + width: 14, + }, + name: { + ...text(theme, "mono", "secondary"), + margin: { + right: 6, + }, + }, + padding: { + left: 8, + }, + }; + + const sharedProject = { + ...project, + name: { + ...project.name, + ...text(theme, "mono", "primary"), + }, + }; + + return { + ...panel, + hostRowHeight: 28, + treeBranchColor: borderColor(theme, "muted"), + treeBranchWidth: 1, + hostAvatar: { + cornerRadius: 10, + width: 18, + }, + hostUsername: { + ...text(theme, "mono", "muted"), + padding: { + left: 8, + }, + }, + project, + sharedProject, + hoveredSharedProject: { + ...sharedProject, + background: theme.editor.line.active.value, + cornerRadius: 6, + }, + unsharedProject: project, + hoveredUnsharedProject: { + ...project, + background: theme.editor.line.active.value, + cornerRadius: 6, + }, + } +} \ No newline at end of file diff --git a/styles/styleTree/editor.ts b/styles/styleTree/editor.ts index 5d800881e2750942c2b7d6f1113df203aff97fb3..ebc53b405875dab197a3c95d5373732050e9a7a0 100644 --- a/styles/styleTree/editor.ts +++ b/styles/styleTree/editor.ts @@ -1,131 +1,134 @@ import Theme from "../themes/theme"; import { - backgroundColor, - border, - iconColor, - player, - text, - TextColor + backgroundColor, + border, + iconColor, + player, + text, + TextColor, } from "./components"; export default function editor(theme: Theme) { - const autocompleteItem = { - cornerRadius: 6, - padding: { - bottom: 2, - left: 6, - right: 6, - top: 2, - }, - }; - - function diagnostic(theme: Theme, color: TextColor) { - return { - textScaleFactor: 0.857, - header: { - border: border(theme, "primary", { - top: true, - }), - }, - message: { - text: text(theme, "sans", color, { size: "sm" }), - highlightText: text(theme, "sans", color, { - size: "sm", - weight: "bold", - }), - }, + const autocompleteItem = { + cornerRadius: 6, + padding: { + bottom: 2, + left: 6, + right: 6, + top: 2, + }, }; - } - return { - textColor: theme.textColor.secondary.value, - background: backgroundColor(theme, 300), - activeLineBackground: theme.editor.line.active.value, - codeActionsIndicator: iconColor(theme, "secondary"), - diffBackgroundDeleted: backgroundColor(theme, "error"), - diffBackgroundInserted: backgroundColor(theme, "ok"), - documentHighlightReadBackground: theme.editor.highlight.occurrence.value, - documentHighlightWriteBackground: theme.editor.highlight.occurrence.value, - errorColor: theme.textColor.error, - gutterBackground: backgroundColor(theme, 300), - gutterPaddingFactor: 2.5, - highlightedLineBackground: theme.editor.line.highlighted.value, - lineNumber: theme.editor.gutter.primary.value, - lineNumberActive: theme.editor.gutter.active, - renameFade: 0.6, - unnecessaryCodeFade: 0.5, - selection: player(theme, 1).selection, - guestSelections: [ - player(theme, 2).selection, - player(theme, 3).selection, - player(theme, 4).selection, - player(theme, 5).selection, - player(theme, 6).selection, - player(theme, 7).selection, - player(theme, 8).selection, - ], - autocomplete: { - background: backgroundColor(theme, 100), - cornerRadius: 6, - padding: 6, - border: border(theme, "secondary"), - item: autocompleteItem, - hoveredItem: { - ...autocompleteItem, - background: backgroundColor(theme, 100, "hovered"), - }, - margin: { - left: -14, - }, - matchHighlight: { - color: theme.syntax.keyword.color.value, - weight: theme.syntax.keyword.weight.value, - }, - selectedItem: { - ...autocompleteItem, - background: backgroundColor(theme, 100, "active"), - }, - }, - diagnosticHeader: { - background: theme.editor.background.value, - iconWidthFactor: 1.5, - textScaleFactor: 0.857, // NateQ: Will we need dynamic sizing for text? If so let's create tokens for these. - border: border(theme, "secondary", { - bottom: true, - top: true, - }), - code: { - ...text(theme, "mono", "muted", { size: "sm" }), - margin: { - left: 10, + function diagnostic(theme: Theme, color: TextColor) { + return { + textScaleFactor: 0.857, + header: { + border: border(theme, "primary", { + top: true, + }), + }, + message: { + text: text(theme, "sans", color, { size: "sm" }), + highlightText: text(theme, "sans", color, { + size: "sm", + weight: "bold", + }), + }, + }; + } + + return { + textColor: theme.textColor.secondary.value, + background: backgroundColor(theme, 300), + activeLineBackground: theme.editor.line.active.value, + codeActionsIndicator: iconColor(theme, "secondary"), + diffBackgroundDeleted: backgroundColor(theme, "error"), + diffBackgroundInserted: backgroundColor(theme, "ok"), + documentHighlightReadBackground: theme.editor.highlight.occurrence.value, + documentHighlightWriteBackground: theme.editor.highlight.occurrence.value, + errorColor: theme.textColor.error.value, + gutterBackground: backgroundColor(theme, 300), + gutterPaddingFactor: 2.5, + highlightedLineBackground: theme.editor.line.highlighted.value, + lineNumber: theme.editor.gutter.primary.value, + lineNumberActive: theme.editor.gutter.active.value, + renameFade: 0.6, + unnecessaryCodeFade: 0.5, + selection: player(theme, 1).selection, + guestSelections: [ + player(theme, 2).selection, + player(theme, 3).selection, + player(theme, 4).selection, + player(theme, 5).selection, + player(theme, 6).selection, + player(theme, 7).selection, + player(theme, 8).selection, + ], + autocomplete: { + background: backgroundColor(theme, 100), + cornerRadius: 6, + padding: 6, + border: border(theme, "secondary"), + item: autocompleteItem, + hoveredItem: { + ...autocompleteItem, + background: backgroundColor(theme, 100, "hovered"), + }, + margin: { + left: -14, + }, + matchHighlight: { + color: theme.syntax.keyword.color.value, + weight: theme.syntax.keyword.weight.value, + }, + selectedItem: { + ...autocompleteItem, + background: backgroundColor(theme, 100, "active"), + }, + }, + diagnosticHeader: { + background: theme.editor.background.value, + iconWidthFactor: 1.5, + textScaleFactor: 0.857, // NateQ: Will we need dynamic sizing for text? If so let's create tokens for these. + border: border(theme, "secondary", { + bottom: true, + top: true, + }), + code: { + ...text(theme, "mono", "muted", { size: "sm" }), + margin: { + left: 10, + }, + }, + message: { + highlightText: text(theme, "sans", "primary", { + size: "sm", + weight: "bold", + }), + text: text(theme, "sans", "secondary", { size: "sm" }), + }, }, - }, - message: { - highlightText: text(theme, "sans", "primary", { - size: "sm", - weight: "bold", - }), - text: text(theme, "sans", "secondary", { size: "sm" }), - }, - }, - diagnosticPathHeader: { - background: theme.editor.line.active, - textScaleFactor: 0.857, - filename: text(theme, "mono", "primary", { size: "sm" }), - path: { - ...text(theme, "mono", "muted", { size: "sm" }), - margin: { - left: 12, + diagnosticPathHeader: { + background: theme.editor.line.active.value, + textScaleFactor: 0.857, + filename: text(theme, "mono", "primary", { size: "sm" }), + path: { + ...text(theme, "mono", "muted", { size: "sm" }), + margin: { + left: 12, + }, + }, }, - }, - }, - errorDiagnostic: diagnostic(theme, "error"), - warningDiagnostic: diagnostic(theme, "warning"), - informationDiagnostic: diagnostic(theme, "info"), - hintDiagnostic: diagnostic(theme, "info"), - invalidErrorDiagnostic: diagnostic(theme, "muted"), - invalidHintDiagnostic: diagnostic(theme, "muted"), - invalidInformationDiagnostic: diagnostic(theme, "muted"), - invalidWarningDiagnostic: diagnostic(theme, "muted"), - }; + errorDiagnostic: diagnostic(theme, "error"), + warningDiagnostic: diagnostic(theme, "warning"), + informationDiagnostic: diagnostic(theme, "info"), + hintDiagnostic: diagnostic(theme, "info"), + invalidErrorDiagnostic: diagnostic(theme, "muted"), + invalidHintDiagnostic: diagnostic(theme, "muted"), + invalidInformationDiagnostic: diagnostic(theme, "muted"), + invalidWarningDiagnostic: diagnostic(theme, "muted"), + syntax: { + + } + }; } diff --git a/styles/styleTree/projectPanel.ts b/styles/styleTree/projectPanel.ts index 3b5fba8853da3799e69be735447e615341ef8391..cd6fb49b3ada1db47b3dd15637cb1a4a6c5ee516 100644 --- a/styles/styleTree/projectPanel.ts +++ b/styles/styleTree/projectPanel.ts @@ -24,7 +24,11 @@ export default function projectPanel(theme: Theme) { backgroundColor(theme, 300, "hovered") ), selectedEntry: entry(theme, "primary"), - hoveredSelectedEntry: entry(theme, "primary", "hovered"), + hoveredSelectedEntry: entry( + theme, + "primary", + backgroundColor(theme, 300, "hovered") + ), padding: { top: 6, }, diff --git a/styles/styleTree/search.ts b/styles/styleTree/search.ts index 7ba04cd688e01f5b3a4f47b35311195fde73fefb..42b639f57a39d355c8dbf461fb29e64ee71dec2f 100644 --- a/styles/styleTree/search.ts +++ b/styles/styleTree/search.ts @@ -19,8 +19,28 @@ export default function search(theme: Theme) { }, }; + const editor = { + background: backgroundColor(theme, 500), + cornerRadius: 6, + minWidth: 200, + maxWidth: 500, + placeholderText: text(theme, "mono", "placeholder"), + selection: player(theme, 1).selection, + text: text(theme, "mono", "primary"), + border: border(theme, "primary"), + margin: { + right: 5, + }, + padding: { + top: 3, + bottom: 3, + left: 14, + right: 14, + }, + }; + return { - matchBackground: theme.editor.highlight.match, + matchBackground: theme.editor.highlight.match.value, tabIconSpacing: 4, tabIconWidth: 14, activeHoveredOptionButton: { @@ -31,31 +51,13 @@ export default function search(theme: Theme) { ...optionButton, background: backgroundColor(theme, 100), }, - editor: { - background: backgroundColor(theme, 500), - cornerRadius: 6, - minWidth: 200, - maxWidth: 500, - placeholderText: text(theme, "mono", "placeholder"), - selection: player(theme, 1).selection, - text: text(theme, "mono", "primary"), - border: border(theme, "primary"), - margin: { - right: 5, - }, - padding: { - top: 3, - bottom: 3, - left: 14, - right: 14, - }, - }, + editor, hoveredOptionButton: { ...optionButton, background: backgroundColor(theme, 100), }, invalidEditor: { - extends: "$search.editor", + ...editor, border: border(theme, "error"), }, matchIndex: { diff --git a/styles/styleTree/workspace.ts b/styles/styleTree/workspace.ts index 148db089183e77274a81a122d6f02d920b640237..7e71eaad2a8e258e5aed2476af0b68fbf9c7ba4b 100644 --- a/styles/styleTree/workspace.ts +++ b/styles/styleTree/workspace.ts @@ -137,5 +137,10 @@ export default function workspace(theme: Theme) { ...text(theme, "mono", "secondary"), padding: { left: 6 }, }, + disconnectedOverlay: { + ...text(theme, "sans", "primary"), + color: "#ffffff", + background: "#000000aa", + }, }; } diff --git a/styles/themes/dark.ts b/styles/themes/dark.ts index 42f80cf4c670deda733f434c3cbab691239f5396..2cadf24601f47cc1172c4d9be753cc80c3a9f20c 100644 --- a/styles/themes/dark.ts +++ b/styles/themes/dark.ts @@ -1,249 +1,273 @@ -import core from "../tokens/core"; -import Theme, { NumberToken, Syntax } from "./theme"; - -const { color } = core; +import { colors, fontWeights, NumberToken } from "../tokens"; +import Theme, { Syntax } from "./theme"; const backgroundColor = { - 100: { - base: color.neutral[750], - hovered: color.neutral[750], - active: color.neutral[750], - focused: color.neutral[750], - }, - 300: { - base: color.neutral[800], - hovered: color.neutral[800], - active: color.neutral[800], - focused: color.neutral[800], - }, - 500: { - base: color.neutral[900], - hovered: color.neutral[900], - active: color.neutral[900], - focused: color.neutral[900], - }, - ok: { - base: color.green[600], - hovered: color.green[600], - active: color.green[600], - focused: color.green[600], - }, - error: { - base: color.red[400], - hovered: color.red[400], - active: color.red[400], - focused: color.red[400], - }, - warning: { - base: color.amber[300], - hovered: color.amber[300], - active: color.amber[300], - focused: color.amber[300], - }, - info: { - base: color.blue[500], - hovered: color.blue[500], - active: color.blue[500], - focused: color.blue[500], - }, + 100: { + base: colors.neutral[750], + hovered: colors.neutral[750], + active: colors.neutral[750], + focused: colors.neutral[750], + }, + 300: { + base: colors.neutral[800], + hovered: colors.neutral[800], + active: colors.neutral[800], + focused: colors.neutral[800], + }, + 500: { + base: colors.neutral[900], + hovered: colors.neutral[900], + active: colors.neutral[900], + focused: colors.neutral[900], + }, + ok: { + base: colors.green[600], + hovered: colors.green[600], + active: colors.green[600], + focused: colors.green[600], + }, + error: { + base: colors.red[400], + hovered: colors.red[400], + active: colors.red[400], + focused: colors.red[400], + }, + warning: { + base: colors.amber[300], + hovered: colors.amber[300], + active: colors.amber[300], + focused: colors.amber[300], + }, + info: { + base: colors.blue[500], + hovered: colors.blue[500], + active: colors.blue[500], + focused: colors.blue[500], + }, }; const borderColor = { - primary: color.neutral[850], - secondary: color.neutral[700], - muted: color.neutral[750], - focused: color.neutral[100], - active: color.neutral[500], - ok: color.neutral[1000], - error: color.neutral[1000], - warning: color.neutral[1000], - info: color.neutral[1000], + primary: colors.neutral[850], + secondary: colors.neutral[700], + muted: colors.neutral[750], + focused: colors.neutral[100], + active: colors.neutral[500], + ok: colors.neutral[1000], + error: colors.neutral[1000], + warning: colors.neutral[1000], + info: colors.neutral[1000], }; const textColor = { - primary: color.neutral[150], - secondary: color.neutral[350], - muted: color.neutral[550], - placeholder: color.neutral[750], - active: color.neutral[0], - //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + primary: colors.neutral[150], + secondary: colors.neutral[350], + muted: colors.neutral[550], + placeholder: colors.neutral[750], + active: colors.neutral[0], + //TODO: (design) define feature and it's correct value + feature: colors.sky[500], + ok: colors.green[600], + error: colors.red[400], + warning: colors.amber[300], + info: colors.blue[500], }; const iconColor = { - primary: color.neutral[300], - secondary: color.neutral[500], - muted: color.neutral[600], - placeholder: color.neutral[700], - active: color.neutral[50], - //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + primary: colors.neutral[300], + secondary: colors.neutral[500], + muted: colors.neutral[600], + placeholder: colors.neutral[700], + active: colors.neutral[50], + //TODO: (design) define feature and it's correct value + feature: colors.sky[500], + ok: colors.green[600], + error: colors.red[400], + warning: colors.amber[300], + info: colors.blue[500], }; const player = { - 1: { - baseColor: color.blue[600], - cursorColor: color.blue[600], - selectionColor: color.blue[600], - borderColor: color.blue[600], - }, - 2: { - baseColor: color.indigo[500], - cursorColor: color.indigo[500], - selectionColor: color.indigo[500], - borderColor: color.indigo[500], - }, - 3: { - baseColor: color.green[500], - cursorColor: color.green[500], - selectionColor: color.green[500], - borderColor: color.green[500], - }, - 4: { - baseColor: color.orange[500], - cursorColor: color.orange[500], - selectionColor: color.orange[500], - borderColor: color.orange[500], - }, - 5: { - baseColor: color.purple[500], - cursorColor: color.purple[500], - selectionColor: color.purple[500], - borderColor: color.purple[500], - }, - 6: { - baseColor: color.teal[400], - cursorColor: color.teal[400], - selectionColor: color.teal[400], - borderColor: color.teal[400], - }, - 7: { - baseColor: color.pink[400], - cursorColor: color.pink[400], - selectionColor: color.pink[400], - borderColor: color.pink[400], - }, - 8: { - baseColor: color.yellow[400], - cursorColor: color.yellow[400], - selectionColor: color.yellow[400], - borderColor: color.yellow[400], - }, + 1: { + baseColor: colors.blue[600], + cursorColor: colors.blue[600], + selectionColor: colors.blue[600], + borderColor: colors.blue[600], + }, + 2: { + baseColor: colors.indigo[500], + cursorColor: colors.indigo[500], + selectionColor: colors.indigo[500], + borderColor: colors.indigo[500], + }, + 3: { + baseColor: colors.green[500], + cursorColor: colors.green[500], + selectionColor: colors.green[500], + borderColor: colors.green[500], + }, + 4: { + baseColor: colors.orange[500], + cursorColor: colors.orange[500], + selectionColor: colors.orange[500], + borderColor: colors.orange[500], + }, + 5: { + baseColor: colors.purple[500], + cursorColor: colors.purple[500], + selectionColor: colors.purple[500], + borderColor: colors.purple[500], + }, + 6: { + baseColor: colors.teal[400], + cursorColor: colors.teal[400], + selectionColor: colors.teal[400], + borderColor: colors.teal[400], + }, + 7: { + baseColor: colors.pink[400], + cursorColor: colors.pink[400], + selectionColor: colors.pink[400], + borderColor: colors.pink[400], + }, + 8: { + baseColor: colors.yellow[400], + cursorColor: colors.yellow[400], + selectionColor: colors.yellow[400], + borderColor: colors.yellow[400], + }, }; // TODO: Fixup const editor = { - background: backgroundColor[500].base, - indent_guide: borderColor.muted, - indent_guide_active: borderColor.secondary, - line: { - active: color.neutral[0], - highlighted: color.neutral[0], - inserted: backgroundColor.ok.active, - deleted: backgroundColor.error.active, - modified: backgroundColor.info.active, - }, - highlight: { - selection: player[1].selectionColor, - occurrence: backgroundColor[500].active, - activeOccurrence: color.neutral[0], - matchingBracket: color.neutral[0], - match: color.neutral[0], - activeMatch: color.neutral[0], - related: color.neutral[0], - }, - gutter: { - primary: color.neutral[0], - active: color.neutral[0], - }, + background: backgroundColor[500].base, + indent_guide: borderColor.muted, + indent_guide_active: borderColor.secondary, + line: { + active: colors.neutral[0], + highlighted: colors.neutral[0], + inserted: backgroundColor.ok.active, + deleted: backgroundColor.error.active, + modified: backgroundColor.info.active, + }, + highlight: { + selection: player[1].selectionColor, + occurrence: backgroundColor[500].active, + activeOccurrence: colors.neutral[0], + matchingBracket: colors.neutral[0], + match: colors.neutral[0], + activeMatch: colors.neutral[0], + related: colors.neutral[0], + }, + gutter: { + primary: colors.neutral[0], + active: colors.neutral[0], + }, }; const syntax: Syntax = { - primary: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, - }, - comment: { - color: color.lime[200], - weight: { value: "normal", type: "fontWeight" }, - }, - punctuation: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, - }, - constant: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - keyword: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - function: { - color: color.yellow[200], - weight: { value: "normal", type: "fontWeight" }, - }, - type: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, - }, - variant: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, - }, - property: { - color: color.sky[300], - weight: { value: "normal", type: "fontWeight" }, - }, - enum: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - operator: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, - }, - string: { - color: color.orange[300], - weight: { value: "normal", type: "fontWeight" }, - }, - number: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - boolean: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, - }, - predictive: { - color: textColor.muted, - weight: { value: "normal", type: "fontWeight" }, - }, + primary: { + color: textColor.primary, + weight: fontWeights.normal, + }, + comment: { + color: colors.lime[200], + weight: fontWeights.normal, + }, + punctuation: { + color: textColor.primary, + weight: fontWeights.normal, + }, + constant: { + color: colors.neutral[150], + weight: fontWeights.normal, + }, + keyword: { + color: colors.sky[400], + weight: fontWeights.normal, + }, + function: { + color: colors.yellow[200], + weight: fontWeights.normal, + }, + type: { + color: colors.teal[300], + weight: fontWeights.normal, + }, + variant: { + color: colors.teal[300], + weight: fontWeights.normal, + }, + property: { + color: colors.sky[300], + weight: fontWeights.normal, + }, + enum: { + color: colors.sky[400], + weight: fontWeights.normal, + }, + operator: { + color: colors.sky[400], + weight: fontWeights.normal, + }, + string: { + color: colors.orange[300], + weight: fontWeights.normal, + }, + number: { + color: colors.neutral[150], + weight: fontWeights.normal, + }, + boolean: { + color: colors.neutral[150], + weight: fontWeights.normal, + }, + predictive: { + color: textColor.muted, + weight: fontWeights.normal, + }, + title: { + color: colors.sky[500], + weight: fontWeights.bold, + }, + emphasis: { + color: textColor.active, + weight: fontWeights.normal, + }, + emphasisStrong: { + color: textColor.active, + weight: fontWeights.bold, + }, + linkUrl: { + color: colors.lime[500], + weight: fontWeights.normal, + // TODO: add underline + }, + linkText: { + color: colors.orange[500], + weight: fontWeights.normal, + // TODO: add italic + }, + listMarker: { + color: colors.sky[400], + weight: fontWeights.normal, + } }; const shadowAlpha: NumberToken = { - value: 0.32, - type: "number", + value: 0.32, + type: "number", }; const theme: Theme = { - name: "dark", - backgroundColor, - borderColor, - textColor, - iconColor, - editor, - syntax, - player, - shadowAlpha, + name: "dark", + backgroundColor, + borderColor, + textColor, + iconColor, + editor, + syntax, + player, + shadowAlpha, }; export default theme; diff --git a/styles/themes/light.ts b/styles/themes/light.ts index 7a9bf1b552650b81288e70acc6c7500c80a8246b..acb704de74b99b91c2b41a739c751003670c5864 100644 --- a/styles/themes/light.ts +++ b/styles/themes/light.ts @@ -1,143 +1,141 @@ -import core from "../tokens/core"; -import Theme, { NumberToken, Syntax } from "./theme"; - -const { color } = core; +import { colors, fontWeights, NumberToken } from "../tokens"; +import Theme, { Syntax } from "./theme"; // TODO: Replace with light values const backgroundColor = { 100: { - base: color.neutral[750], - hovered: color.neutral[750], - active: color.neutral[750], - focused: color.neutral[750], + base: colors.neutral[750], + hovered: colors.neutral[750], + active: colors.neutral[750], + focused: colors.neutral[750], }, 300: { - base: color.neutral[800], - hovered: color.neutral[800], - active: color.neutral[800], - focused: color.neutral[800], + base: colors.neutral[800], + hovered: colors.neutral[800], + active: colors.neutral[800], + focused: colors.neutral[800], }, 500: { - base: color.neutral[900], - hovered: color.neutral[900], - active: color.neutral[900], - focused: color.neutral[900], + base: colors.neutral[900], + hovered: colors.neutral[900], + active: colors.neutral[900], + focused: colors.neutral[900], }, ok: { - base: color.green[600], - hovered: color.green[600], - active: color.green[600], - focused: color.green[600], + base: colors.green[600], + hovered: colors.green[600], + active: colors.green[600], + focused: colors.green[600], }, error: { - base: color.red[400], - hovered: color.red[400], - active: color.red[400], - focused: color.red[400], + base: colors.red[400], + hovered: colors.red[400], + active: colors.red[400], + focused: colors.red[400], }, warning: { - base: color.amber[300], - hovered: color.amber[300], - active: color.amber[300], - focused: color.amber[300], + base: colors.amber[300], + hovered: colors.amber[300], + active: colors.amber[300], + focused: colors.amber[300], }, info: { - base: color.blue[500], - hovered: color.blue[500], - active: color.blue[500], - focused: color.blue[500], + base: colors.blue[500], + hovered: colors.blue[500], + active: colors.blue[500], + focused: colors.blue[500], }, }; const borderColor = { - primary: color.neutral[850], - secondary: color.neutral[700], - muted: color.neutral[750], - focused: color.neutral[100], - active: color.neutral[500], - ok: color.neutral[1000], - error: color.neutral[1000], - warning: color.neutral[1000], - info: color.neutral[1000], + primary: colors.neutral[850], + secondary: colors.neutral[700], + muted: colors.neutral[750], + focused: colors.neutral[100], + active: colors.neutral[500], + ok: colors.neutral[1000], + error: colors.neutral[1000], + warning: colors.neutral[1000], + info: colors.neutral[1000], }; const textColor = { - primary: color.neutral[150], - secondary: color.neutral[350], - muted: color.neutral[550], - placeholder: color.neutral[750], - active: color.neutral[0], + primary: colors.neutral[150], + secondary: colors.neutral[350], + muted: colors.neutral[550], + placeholder: colors.neutral[750], + active: colors.neutral[0], //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + feature: colors.sky[500], + ok: colors.green[600], + error: colors.red[400], + warning: colors.amber[300], + info: colors.blue[500], }; const iconColor = { - primary: color.neutral[300], - secondary: color.neutral[500], - muted: color.neutral[600], - placeholder: color.neutral[700], - active: color.neutral[50], + primary: colors.neutral[300], + secondary: colors.neutral[500], + muted: colors.neutral[600], + placeholder: colors.neutral[700], + active: colors.neutral[50], //TODO: (design) define feature and it's correct value - feature: color.sky[500], - ok: color.green[600], - error: color.red[400], - warning: color.amber[300], - info: color.blue[500], + feature: colors.sky[500], + ok: colors.green[600], + error: colors.red[400], + warning: colors.amber[300], + info: colors.blue[500], }; const player = { 1: { - baseColor: color.blue[600], - cursorColor: color.blue[600], - selectionColor: color.blue[600], - borderColor: color.blue[600], + baseColor: colors.blue[600], + cursorColor: colors.blue[600], + selectionColor: colors.blue[600], + borderColor: colors.blue[600], }, 2: { - baseColor: color.indigo[500], - cursorColor: color.indigo[500], - selectionColor: color.indigo[500], - borderColor: color.indigo[500], + baseColor: colors.indigo[500], + cursorColor: colors.indigo[500], + selectionColor: colors.indigo[500], + borderColor: colors.indigo[500], }, 3: { - baseColor: color.green[500], - cursorColor: color.green[500], - selectionColor: color.green[500], - borderColor: color.green[500], + baseColor: colors.green[500], + cursorColor: colors.green[500], + selectionColor: colors.green[500], + borderColor: colors.green[500], }, 4: { - baseColor: color.orange[500], - cursorColor: color.orange[500], - selectionColor: color.orange[500], - borderColor: color.orange[500], + baseColor: colors.orange[500], + cursorColor: colors.orange[500], + selectionColor: colors.orange[500], + borderColor: colors.orange[500], }, 5: { - baseColor: color.purple[500], - cursorColor: color.purple[500], - selectionColor: color.purple[500], - borderColor: color.purple[500], + baseColor: colors.purple[500], + cursorColor: colors.purple[500], + selectionColor: colors.purple[500], + borderColor: colors.purple[500], }, 6: { - baseColor: color.teal[400], - cursorColor: color.teal[400], - selectionColor: color.teal[400], - borderColor: color.teal[400], + baseColor: colors.teal[400], + cursorColor: colors.teal[400], + selectionColor: colors.teal[400], + borderColor: colors.teal[400], }, 7: { - baseColor: color.pink[400], - cursorColor: color.pink[400], - selectionColor: color.pink[400], - borderColor: color.pink[400], + baseColor: colors.pink[400], + cursorColor: colors.pink[400], + selectionColor: colors.pink[400], + borderColor: colors.pink[400], }, 8: { - baseColor: color.yellow[400], - cursorColor: color.yellow[400], - selectionColor: color.yellow[400], - borderColor: color.yellow[400], + baseColor: colors.yellow[400], + cursorColor: colors.yellow[400], + selectionColor: colors.yellow[400], + borderColor: colors.yellow[400], }, }; @@ -147,88 +145,114 @@ const editor = { indent_guide: borderColor.muted, indent_guide_active: borderColor.secondary, line: { - active: color.neutral[0], - highlighted: color.neutral[0], - inserted: backgroundColor.ok.active, - deleted: backgroundColor.error.active, - modified: backgroundColor.info.active, + active: colors.neutral[0], + highlighted: colors.neutral[0], + inserted: backgroundColor.ok.active, + deleted: backgroundColor.error.active, + modified: backgroundColor.info.active, }, highlight: { - selection: player[1].selectionColor, - occurrence: backgroundColor[500].active, - activeOccurrence: color.neutral[0], - matchingBracket: color.neutral[0], - match: color.neutral[0], - activeMatch: color.neutral[0], - related: color.neutral[0], + selection: player[1].selectionColor, + occurrence: backgroundColor[500].active, + activeOccurrence: colors.neutral[0], + matchingBracket: colors.neutral[0], + match: colors.neutral[0], + activeMatch: colors.neutral[0], + related: colors.neutral[0], }, gutter: { - primary: color.neutral[0], - active: color.neutral[0], + primary: colors.neutral[0], + active: colors.neutral[0], }, }; const syntax: Syntax = { primary: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, + color: textColor.primary, + weight: fontWeights.normal, }, comment: { - color: color.lime[200], - weight: { value: "normal", type: "fontWeight" }, + color: colors.lime[200], + weight: fontWeights.normal, }, punctuation: { - color: textColor.primary, - weight: { value: "normal", type: "fontWeight" }, + color: textColor.primary, + weight: fontWeights.normal, }, constant: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, + color: colors.neutral[150], + weight: fontWeights.normal, }, keyword: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, + color: colors.sky[400], + weight: fontWeights.normal, }, function: { - color: color.yellow[200], - weight: { value: "normal", type: "fontWeight" }, + color: colors.yellow[200], + weight: fontWeights.normal, }, type: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, + color: colors.teal[300], + weight: fontWeights.normal, }, variant: { - color: color.teal[300], - weight: { value: "normal", type: "fontWeight" }, + color: colors.teal[300], + weight: fontWeights.normal, }, property: { - color: color.sky[300], - weight: { value: "normal", type: "fontWeight" }, + color: colors.sky[300], + weight: fontWeights.normal, }, enum: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, + color: colors.sky[400], + weight: fontWeights.normal, }, operator: { - color: color.sky[400], - weight: { value: "normal", type: "fontWeight" }, + color: colors.sky[400], + weight: fontWeights.normal, }, string: { - color: color.orange[300], - weight: { value: "normal", type: "fontWeight" }, + color: colors.orange[300], + weight: fontWeights.normal, }, number: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, + color: colors.neutral[150], + weight: fontWeights.normal, }, boolean: { - color: color.neutral[150], - weight: { value: "normal", type: "fontWeight" }, + color: colors.neutral[150], + weight: fontWeights.normal, }, predictive: { - color: textColor.muted, - weight: { value: "normal", type: "fontWeight" }, - }, + color: textColor.muted, + weight: fontWeights.normal, + }, + title: { + color: colors.sky[500], + weight: fontWeights.bold, + }, + emphasis: { + color: textColor.active, + weight: fontWeights.normal, + }, + emphasisStrong: { + color: textColor.active, + weight: fontWeights.bold, + }, + linkUrl: { + color: colors.lime[500], + weight: fontWeights.normal, + // TODO: add underline + }, + linkText: { + color: colors.orange[500], + weight: fontWeights.normal, + // TODO: add italic + }, + listMarker: { + color: colors.sky[400], + weight: fontWeights.normal, + } }; const shadowAlpha: NumberToken = { diff --git a/styles/themes/theme.ts b/styles/themes/theme.ts index a7760459897b0bedec0d87512e669d1d7ae0a3b4..f95d58e49484aea340693ff289f19cb8cf8a4b0a 100644 --- a/styles/themes/theme.ts +++ b/styles/themes/theme.ts @@ -1,32 +1,8 @@ -export interface NumberToken { - value: number, - type: "number" -} - -export type Color = string; -export interface ColorToken { - value: Color; - type: "color"; - step?: number -} -export type Weight = - | "thin" - | "extra_light" - | "light" - | "normal" - | "medium" - | "semibold" - | "bold" - | "extra_bold" - | "black"; -export interface WeightToken { - value: Weight, - type: "fontWeight" -} +import { FontWeightToken, ColorToken, NumberToken } from "../tokens"; export interface SyntaxHighlightStyle { color: ColorToken; - weight: WeightToken; + weight: FontWeightToken; } export interface Player { @@ -43,7 +19,7 @@ export interface BackgroundColor { focused: ColorToken; } -export interface Syntax { +export interface Syntax { primary: SyntaxHighlightStyle; comment: SyntaxHighlightStyle; punctuation: SyntaxHighlightStyle; @@ -59,6 +35,13 @@ export interface Syntax { number: SyntaxHighlightStyle; boolean: SyntaxHighlightStyle; predictive: SyntaxHighlightStyle; + // TODO: Either move the following or rename + title: SyntaxHighlightStyle; + emphasis: SyntaxHighlightStyle; + emphasisStrong: SyntaxHighlightStyle; + linkUrl: SyntaxHighlightStyle; + linkText: SyntaxHighlightStyle; + listMarker: SyntaxHighlightStyle; }; export default interface Theme { diff --git a/styles/tokens.ts b/styles/tokens.ts new file mode 100644 index 0000000000000000000000000000000000000000..1e0df5032d09ee72ce31fc2b9de256174b6bf905 --- /dev/null +++ b/styles/tokens.ts @@ -0,0 +1,102 @@ +import { colorRamp } from "./utils/color"; + +interface Token { + value: V, + type: T +} + +export type FontFamily = string; +export type FontFamilyToken = Token; +function fontFamily(value: FontFamily): FontFamilyToken { + return { + value, + type: "fontFamily" + } +} +export const fontFamilies = { + sans: fontFamily("Zed Sans"), + mono: fontFamily("Zed Mono"), +} + +export type FontSize = number; +export type FontSizeToken = Token; +function fontSize(value: FontSize) { + return { + value, + type: "fontSize" + }; +} +export const fontSizes = { + "3xs": fontSize(8), + "2xs": fontSize(10), + xs: fontSize(12), + sm: fontSize(14), + md: fontSize(16), + lg: fontSize(18), + xl: fontSize(20), +}; + +export type FontWeight = + | "thin" + | "extra_light" + | "light" + | "normal" + | "medium" + | "semibold" + | "bold" + | "extra_bold" + | "black"; +export type FontWeightToken = Token; +function fontWeight(value: FontWeight): FontWeightToken { + return { + value, + type: "fontWeight" + }; +} +export const fontWeights = { + "thin": fontWeight("thin"), + "extra_light": fontWeight("extra_light"), + "light": fontWeight("light"), + "normal": fontWeight("normal"), + "medium": fontWeight("medium"), + "semibold": fontWeight("semibold"), + "bold": fontWeight("bold"), + "extra_bold": fontWeight("extra_bold"), + "black": fontWeight("black"), +} + +export type Color = string; +export interface ColorToken { + value: Color, + type: "color", + step?: number, +} +export const colors = { + neutral: colorRamp(["black", "white"], { steps: 21, increment: 50 }), + rose: colorRamp("#F43F5EFF"), + red: colorRamp("#EF4444FF"), + orange: colorRamp("#F97316FF"), + amber: colorRamp("#F59E0BFF"), + yellow: colorRamp("#EAB308FF"), + lime: colorRamp("#84CC16FF"), + green: colorRamp("#22C55EFF"), + emerald: colorRamp("#10B981FF"), + teal: colorRamp("#14B8A6FF"), + cyan: colorRamp("#06BBD4FF"), + sky: colorRamp("#0EA5E9FF"), + blue: colorRamp("#3B82F6FF"), + indigo: colorRamp("#6366F1FF"), + violet: colorRamp("#8B5CF6FF"), + purple: colorRamp("#A855F7FF"), + fuschia: colorRamp("#D946E4FF"), + pink: colorRamp("#EC4899FF"), +} + +export type NumberToken = Token; + +export default { + fontFamilies, + fontSizes, + fontWeights, + colors, +}; diff --git a/styles/tokens/core.ts b/styles/tokens/core.ts deleted file mode 100644 index 38bfe82e28129954a2f5602038d575a3cfbb94af..0000000000000000000000000000000000000000 --- a/styles/tokens/core.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { colorRamp } from "../utils/color"; - -export default { - fontFamily: { - sans: "Zed Sans", - mono: "Zed Mono", - }, - fontSize: { - "3xs": { - value: "8", - type: "fontSizes", - }, - "2xs": { - value: "10", - type: "fontSizes", - }, - xs: { - value: "12", - type: "fontSizes", - }, - sm: { - value: "14", - type: "fontSizes", - }, - md: { - value: "16", - type: "fontSizes", - }, - lg: { - value: "18", - type: "fontSizes", - }, - xl: { - value: "20", - type: "fontSizes", - }, - }, - color: { - neutral: colorRamp(["black", "white"], { steps: 21, increment: 50 }), - rose: colorRamp("#F43F5EFF"), - red: colorRamp("#EF4444FF"), - orange: colorRamp("#F97316FF"), - amber: colorRamp("#F59E0BFF"), - yellow: colorRamp("#EAB308FF"), - lime: colorRamp("#84CC16FF"), - green: colorRamp("#22C55EFF"), - emerald: colorRamp("#10B981FF"), - teal: colorRamp("#14B8A6FF"), - cyan: colorRamp("#06BBD4FF"), - sky: colorRamp("#0EA5E9FF"), - blue: colorRamp("#3B82F6FF"), - indigo: colorRamp("#6366F1FF"), - violet: colorRamp("#8B5CF6FF"), - purple: colorRamp("#A855F7FF"), - fuschia: colorRamp("#D946E4FF"), - pink: colorRamp("#EC4899FF"), - }, -}; From c812adde7f893b932fcd7fc7df401c5a83515ea4 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Fri, 1 Apr 2022 22:39:18 -0400 Subject: [PATCH 51/71] Add "npm run watch" command to live reload changes --- styles/nodemon.json | 6 + styles/package-lock.json | 2501 ++++++++++++++++++++++++++++++++++++-- styles/package.json | 6 +- 3 files changed, 2398 insertions(+), 115 deletions(-) create mode 100644 styles/nodemon.json diff --git a/styles/nodemon.json b/styles/nodemon.json new file mode 100644 index 0000000000000000000000000000000000000000..24022a55ad3aa2137a6fec03cdc1c97fa4e59e76 --- /dev/null +++ b/styles/nodemon.json @@ -0,0 +1,6 @@ +{ + "watch": ["./**/*"], + "ext": "ts", + "ignore": [], + "exec": "ts-node buildThemes.ts" +} \ No newline at end of file diff --git a/styles/package-lock.json b/styles/package-lock.json index 582f1c84968a5c1a25ddac5fd3c21ba907353c6d..43c9b19ea1224415c654186ed6203c48e776e2da 100644 --- a/styles/package-lock.json +++ b/styles/package-lock.json @@ -12,7 +12,10 @@ "@types/chroma-js": "^2.1.3", "@types/node": "^17.0.23", "case-anything": "^2.1.10", - "chroma-js": "^2.4.2", + "chroma-js": "^2.4.2" + }, + "devDependencies": { + "nodemon": "^2.0.15", "ts-node": "^10.7.0" } }, @@ -20,6 +23,7 @@ "version": "0.8.0", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "dev": true, "engines": { "node": ">= 12" } @@ -28,6 +32,7 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "dev": true, "dependencies": { "@cspotcode/source-map-consumer": "0.8.0" }, @@ -35,25 +40,50 @@ "node": ">=12" } }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true }, "node_modules/@tsconfig/node12": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true }, "node_modules/@tsconfig/node14": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true }, "node_modules/@tsconfig/node16": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true }, "node_modules/@types/chroma-js": { "version": "2.1.3", @@ -65,10 +95,17 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, "node_modules/acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -80,14 +117,175 @@ "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, "engines": { "node": ">=0.4.0" } }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/case-anything": { "version": "2.1.10", @@ -100,186 +298,2136 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/chroma-js": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, "engines": { "node": ">=0.3.1" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "node_modules/ts-node": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", - "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, "dependencies": { - "@cspotcode/source-map-support": "0.7.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.0", - "yn": "3.1.1" + "is-obj": "^2.0.0" }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "engines": { + "node": ">=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + "engines": { + "node": ">=6" } }, - "node_modules/typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" }, "engines": { - "node": ">=4.2.0" + "node": ">= 6" } }, - "node_modules/v8-compile-cache-lib": { + "node_modules/global-dirs": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", - "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==" + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, "engines": { - "node": ">=6" + "node": ">=8.6" } - } - }, - "dependencies": { - "@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==" }, - "@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", - "requires": { - "@cspotcode/source-map-consumer": "0.8.0" + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" } }, - "@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true }, - "@tsconfig/node14": { + "node_modules/ignore-by-default": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true }, - "@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "engines": { + "node": ">=4" + } }, - "@types/chroma-js": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", - "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } }, - "@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nodemon": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", + "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/ts-node": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", + "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "0.7.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.0", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", + "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", + "dev": true + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + } + }, + "dependencies": { + "@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "dev": true, + "requires": { + "@cspotcode/source-map-consumer": "0.8.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true + }, + "@types/chroma-js": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", + "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" + }, + "@types/node": { + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" }, - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } }, "arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true }, "case-anything": { "version": "2.1.10", "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==" }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, "chroma-js": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, "create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "requires": { + "ini": "2.0.0" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } }, "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "nodemon": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", + "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "dev": true, + "requires": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + } }, "ts-node": { "version": "10.7.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "dev": true, "requires": { "@cspotcode/source-map-support": "0.7.0", "@tsconfig/node10": "^1.0.7", @@ -296,21 +2444,146 @@ "yn": "3.1.1" } }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, "typescript": { "version": "4.6.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "dev": true, "peer": true }, + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, "v8-compile-cache-lib": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", - "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==" + "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", + "dev": true + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true } } } diff --git a/styles/package.json b/styles/package.json index c270bba0e1563cee758bbf5a02fb9fc1848b37ae..8576a35d34956a0dd438e35f6989dd9b68b217c2 100644 --- a/styles/package.json +++ b/styles/package.json @@ -4,7 +4,8 @@ "description": "", "main": "index.js", "scripts": { - "build": "ts-node buildThemes.ts" + "build": "ts-node buildThemes.ts", + "watch": "nodemon" }, "author": "", "license": "ISC", @@ -14,5 +15,8 @@ "case-anything": "^2.1.10", "chroma-js": "^2.4.2", "ts-node": "^10.7.0" + }, + "devDependencies": { + "nodemon": "^2.0.15" } } From 381d50bac62fee058721839a2e983b35445a1ad6 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Fri, 1 Apr 2022 23:58:04 -0400 Subject: [PATCH 52/71] WIP --- crates/zed/assets/themes/dark.json | 351 ++++++++++++------------ crates/zed/assets/themes/light.json | 411 ++++++++++++++-------------- styles/buildThemes.ts | 2 +- styles/styleTree/chatPanel.ts | 8 +- styles/styleTree/editor.ts | 14 +- styles/styleTree/projectPanel.ts | 7 +- styles/styleTree/workspace.ts | 29 +- styles/themes/dark.ts | 24 +- styles/themes/light.ts | 288 ++++++++++--------- styles/themes/theme.ts | 2 +- styles/tokens.ts | 2 +- 11 files changed, 576 insertions(+), 562 deletions(-) diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json index 65bf78b140ff3c94c298982cf2b3a6f6b8210609..fd11fc6c3a64a6fd6d878b935941d21960c12f37 100644 --- a/crates/zed/assets/themes/dark.json +++ b/crates/zed/assets/themes/dark.json @@ -1,6 +1,6 @@ { "selector": { - "background": "#e6e6e6", + "background": "#000000", "corner_radius": 6, "padding": 8, "item": { @@ -13,12 +13,12 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#595959", + "color": "#9c9c9c", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#2db4f3", + "color": "#90df17", "weight": "bold", "size": 14 } @@ -33,25 +33,25 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#2db4f3", + "color": "#90df17", "weight": "bold", "size": 14 }, - "background": "#e6e6e6" + "background": "#000000" }, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "empty": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "padding": { @@ -62,11 +62,11 @@ } }, "input_editor": { - "background": "#cccccc", + "background": "#1c1c1c", "corner_radius": 6, "placeholder_text": { "family": "Zed Sans", - "color": "#bfbfbf", + "color": "#2b2b2b", "size": 14 }, "selection": { @@ -75,11 +75,11 @@ }, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 16 }, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "padding": { @@ -103,24 +103,25 @@ } }, "workspace": { - "background": "#e6e6e6", + "background": "#1c1c1c", "leader_border_opacity": 0.7, "leader_border_width": 2, "tab": { - "height": 34, - "icon_close": "#808080", - "icon_close_active": "#0d0d0d", - "icon_conflict": "#f8c570", - "icon_dirty": "#6099f7", + "height": 32, + "background": "#1c1c1c", + "icon_close": "#717171", + "icon_close_active": "#f1f1f1", + "icon_conflict": "#f7b241", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { "family": "Zed Mono", - "color": "#595959", - "size": 16 + "color": "#9c9c9c", + "size": 14 }, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "left": true, "bottom": true, @@ -132,20 +133,21 @@ } }, "active_tab": { - "height": 34, - "icon_close": "#808080", - "icon_close_active": "#0d0d0d", - "icon_conflict": "#f8c570", - "icon_dirty": "#6099f7", + "height": 32, + "background": "#000000", + "icon_close": "#717171", + "icon_close_active": "#f1f1f1", + "icon_conflict": "#f7b241", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { "family": "Zed Mono", - "color": "#262626", - "size": 16 + "color": "#ffffff", + "size": 14 }, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "left": true, "bottom": false, @@ -154,28 +156,28 @@ "padding": { "left": 12, "right": 12 - }, - "background": "#cccccc" + } }, "left_sidebar": { "width": 30, + "background": "#1c1c1c", "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "right": true }, "item": { "height": 32, - "icon_color": "#808080", + "icon_color": "#717171", "icon_size": 18 }, "active_item": { "height": 32, - "icon_color": "#4d4d4d", + "icon_color": "#f1f1f1", "icon_size": 18 }, "resize_handle": { - "background": "#d9d9d9", + "background": "#0e0e0e", "padding": { "left": 1 } @@ -183,30 +185,31 @@ }, "right_sidebar": { "width": 30, + "background": "#1c1c1c", "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "left": true }, "item": { "height": 32, - "icon_color": "#808080", + "icon_color": "#717171", "icon_size": 18 }, "active_item": { "height": 32, - "icon_color": "#4d4d4d", + "icon_color": "#f1f1f1", "icon_size": 18 }, "resize_handle": { - "background": "#d9d9d9", + "background": "#0e0e0e", "padding": { "left": 1 } } }, "pane_divider": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "status_bar": { @@ -218,28 +221,29 @@ }, "cursor_position": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "diagnostic_message": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "lsp_message": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 } }, "titlebar": { "avatar_width": 18, "height": 32, - "share_icon_color": "#808080", - "share_icon_active_color": "#0d0d0d", + "background": "#393939", + "share_icon_color": "#717171", + "share_icon_active_color": "#f1f1f1", "title": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14 }, "avatar": { @@ -254,13 +258,13 @@ "width": 12 }, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "bottom": true }, "sign_in_prompt": { "family": "Zed Sans", - "color": "#595959", + "color": "#9c9c9c", "size": 13, "underline": true, "padding": { @@ -269,15 +273,15 @@ }, "hovered_sign_in_prompt": { "family": "Zed Mono", - "color": "#000000", - "size": 16, + "color": "#ffffff", + "size": 13, "underline": true, "padding": { "right": 8 } }, "offline_icon": { - "color": "#999999", + "color": "#717171", "width": 16, "padding": { "right": 4 @@ -285,15 +289,15 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#f8c570", "size": 13 } }, "toolbar": { "height": 34, - "background": "#cccccc", + "background": "#000000", "border": { - "color": "#d9d9d9", + "color": "#2b2b2b", "width": 1, "bottom": true }, @@ -307,7 +311,7 @@ }, "breadcrumbs": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, "padding": { "left": 6 @@ -321,20 +325,20 @@ } }, "editor": { - "text_color": "#595959", - "background": "#cccccc", - "active_line_background": "#000000", - "code_actions_indicator": "#808080", + "text_color": "#9c9c9c", + "background": "#000000", + "active_line_background": "#ffffff", + "code_actions_indicator": "#717171", "diff_background_deleted": "#f78c8c", "diff_background_inserted": "#22c55e", - "document_highlight_read_background": "#e6e6e6", - "document_highlight_write_background": "#e6e6e6", + "document_highlight_read_background": "#000000", + "document_highlight_write_background": "#000000", "error_color": "#f78c8c", - "gutter_background": "#cccccc", + "gutter_background": "#000000", "gutter_padding_factor": 2.5, - "highlighted_line_background": "#000000", - "line_number": "#000000", - "line_number_active": "#000000", + "highlighted_line_background": "#ffffff", + "line_number": "#ffffff", + "line_number_active": "#ffffff", "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { @@ -372,11 +376,11 @@ } ], "autocomplete": { - "background": "#bfbfbf", + "background": "#000000", "corner_radius": 6, "padding": 6, "border": { - "color": "#b3b3b3", + "color": "#393939", "width": 1 }, "item": { @@ -396,7 +400,7 @@ "right": 6, "top": 2 }, - "background": "#bfbfbf" + "background": "#000000" }, "margin": { "left": -14 @@ -413,22 +417,22 @@ "right": 6, "top": 2 }, - "background": "#bfbfbf" + "background": "#000000" } }, "diagnostic_header": { - "background": "#e6e6e6", + "background": "#1c1c1c", "icon_width_factor": 1.5, "text_scale_factor": 0.857, "border": { - "color": "#b3b3b3", + "color": "#393939", "width": 1, "bottom": true, "top": true }, "code": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "left": 10 @@ -437,28 +441,28 @@ "message": { "highlight_text": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14, "weight": "bold" }, "text": { "family": "Zed Sans", - "color": "#595959", + "color": "#9c9c9c", "size": 14 } } }, "diagnostic_path_header": { - "background": "#000000", + "background": "#ffffff", "text_scale_factor": 0.857, "filename": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 14 }, "path": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "left": 12 @@ -469,7 +473,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -492,7 +496,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -515,7 +519,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -538,7 +542,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -561,7 +565,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -569,12 +573,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "weight": "bold" } @@ -584,7 +588,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -592,12 +596,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "weight": "bold" } @@ -607,7 +611,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -615,12 +619,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "weight": "bold" } @@ -630,7 +634,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1, "top": true } @@ -638,12 +642,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "weight": "bold" } @@ -652,18 +656,18 @@ "syntax": {} }, "project_diagnostics": { - "background": "#cccccc", + "background": "#1c1c1c", "tab_icon_spacing": 4, "tab_icon_width": 13, "tab_summary_spacing": 10, "empty_message": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14 }, "status_bar_item": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "right": 10 @@ -672,52 +676,53 @@ }, "project_panel": { "padding": { - "top": 6 + "top": 6, + "left": 12 }, "entry": { "height": 22, - "icon_color": "#999999", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#595959", - "size": 16 + "color": "#9c9c9c", + "size": 14 } }, "hovered_entry": { "height": 22, - "background": "#cccccc", - "icon_color": "#999999", + "background": "#1c1c1c", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#595959", - "size": 16 + "color": "#9c9c9c", + "size": 14 } }, "selected_entry": { "height": 22, - "icon_color": "#999999", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#262626", - "size": 16 + "color": "#d5d5d5", + "size": 14 } }, "hovered_selected_entry": { "height": 22, - "background": "#cccccc", - "icon_color": "#999999", + "background": "#1c1c1c", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#262626", - "size": 16 + "color": "#d5d5d5", + "size": 14 } } }, @@ -730,13 +735,13 @@ }, "channel_name": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "weight": "bold", "size": 14 }, "channel_name_hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "padding": { "right": 8 @@ -746,7 +751,7 @@ "header": { "name": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14 }, "padding": { @@ -755,7 +760,7 @@ }, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "right": 8 @@ -766,13 +771,13 @@ "item": { "name": { "family": "Zed Sans", - "color": "#595959", + "color": "#9c9c9c", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "right": 8 @@ -783,31 +788,31 @@ "hovered_item": { "name": { "family": "Zed Sans", - "color": "#595959", + "color": "#9c9c9c", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "right": 8 } }, - "background": "#cccccc", + "background": "#1c1c1c", "corner_radius": 6 }, "active_item": { "name": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "right": 8 @@ -818,27 +823,27 @@ "hovered_active_item": { "name": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14, "margin": { "right": 8 } }, - "background": "#cccccc", + "background": "#1c1c1c", "corner_radius": 6 }, "menu": { - "background": "#e6e6e6", + "background": "#000000", "corner_radius": 6, "padding": 4, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "shadow": { @@ -853,25 +858,25 @@ }, "sign_in_prompt": { "family": "Zed Sans", - "color": "#595959", + "color": "#9c9c9c", "underline": true, "size": 14 }, "hovered_sign_in_prompt": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "underline": true, "size": 14 }, "message": { "body": { "family": "Zed Sans", - "color": "#595959", + "color": "#9c9c9c", "size": 14 }, "timestamp": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "padding": { @@ -879,7 +884,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "weight": "bold", "size": 14, "margin": { @@ -890,12 +895,12 @@ "pending_message": { "body": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "timestamp": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "size": 14 }, "padding": { @@ -903,7 +908,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#636363", "weight": "bold", "size": 14, "margin": { @@ -912,24 +917,24 @@ } }, "input_editor": { - "background": "#cccccc", + "background": "#000000", "corner_radius": 6, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 16 }, "placeholder_text": { "family": "Zed Mono", - "color": "#8c8c8c", - "size": 16 + "color": "#2b2b2b", + "size": 14 }, "selection": { "cursor": "#4287f6", "selection": "#4287f6" }, "border": { - "color": "#d9d9d9", + "color": "#393939", "width": 1 }, "padding": { @@ -948,7 +953,7 @@ "right": 12 }, "host_row_height": 28, - "tree_branch_color": "#bfbfbf", + "tree_branch_color": "#2b2b2b", "tree_branch_width": 1, "host_avatar": { "corner_radius": 10, @@ -956,7 +961,7 @@ }, "host_username": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#636363", "size": 16, "padding": { "left": 8 @@ -971,7 +976,7 @@ }, "name": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, "margin": { "right": 6 @@ -990,7 +995,7 @@ }, "name": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 16, "margin": { "right": 6 @@ -1009,7 +1014,7 @@ }, "name": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 16, "margin": { "right": 6 @@ -1018,7 +1023,7 @@ "padding": { "left": 8 }, - "background": "#000000", + "background": "#ffffff", "corner_radius": 6 }, "unshared_project": { @@ -1030,7 +1035,7 @@ }, "name": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, "margin": { "right": 6 @@ -1049,7 +1054,7 @@ }, "name": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, "margin": { "right": 6 @@ -1058,22 +1063,22 @@ "padding": { "left": 8 }, - "background": "#000000", + "background": "#ffffff", "corner_radius": 6 } }, "search": { - "match_background": "#000000", + "match_background": "#ffffff", "tab_icon_spacing": 4, "tab_icon_width": 14, "active_hovered_option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, - "background": "#bfbfbf", + "background": "#393939", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "margin": { @@ -1089,12 +1094,12 @@ }, "active_option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, - "background": "#bfbfbf", + "background": "#393939", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "margin": { @@ -1109,13 +1114,13 @@ } }, "editor": { - "background": "#e6e6e6", + "background": "#000000", "corner_radius": 6, "min_width": 200, "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#bfbfbf", + "color": "#2b2b2b", "size": 16 }, "selection": { @@ -1124,11 +1129,11 @@ }, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 16 }, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "margin": { @@ -1143,12 +1148,12 @@ }, "hovered_option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, - "background": "#bfbfbf", + "background": "#393939", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "margin": { @@ -1163,13 +1168,13 @@ } }, "invalid_editor": { - "background": "#e6e6e6", + "background": "#000000", "corner_radius": 6, "min_width": 200, "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#bfbfbf", + "color": "#2b2b2b", "size": 16 }, "selection": { @@ -1178,11 +1183,11 @@ }, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 16 }, "border": { - "color": "#ffffff", + "color": "#f47171", "width": 1 }, "margin": { @@ -1197,18 +1202,18 @@ }, "match_index": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#636363", "size": 16, "padding": 6 }, "option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#9c9c9c", "size": 16, - "background": "#cccccc", + "background": "#1c1c1c", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#0e0e0e", "width": 1 }, "margin": { @@ -1230,13 +1235,13 @@ }, "results_status": { "family": "Zed Mono", - "color": "#262626", + "color": "#d5d5d5", "size": 18 } }, "breadcrumbs": { "family": "Zed Sans", - "color": "#262626", + "color": "#d5d5d5", "size": 14, "padding": { "left": 6 diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json index 65bf78b140ff3c94c298982cf2b3a6f6b8210609..219f958e876dcb36abd4edf2e2986c7fb26f32c3 100644 --- a/crates/zed/assets/themes/light.json +++ b/crates/zed/assets/themes/light.json @@ -1,6 +1,6 @@ { "selector": { - "background": "#e6e6e6", + "background": "#ffffff", "corner_radius": 6, "padding": 8, "item": { @@ -13,12 +13,12 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#595959", + "color": "#393939", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#2db4f3", + "color": "#4287f6", "weight": "bold", "size": 14 } @@ -33,25 +33,25 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#2db4f3", + "color": "#4287f6", "weight": "bold", "size": 14 }, - "background": "#e6e6e6" + "background": "#e3e3e3" }, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "empty": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "padding": { @@ -62,24 +62,24 @@ } }, "input_editor": { - "background": "#cccccc", + "background": "#f1f1f1", "corner_radius": 6, "placeholder_text": { "family": "Zed Sans", - "color": "#bfbfbf", + "color": "#717171", "size": 14 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 16 }, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "padding": { @@ -95,7 +95,7 @@ }, "shadow": { "blur": 16, - "color": "#00000052", + "color": "#0000001f", "offset": [ 0, 2 @@ -103,24 +103,25 @@ } }, "workspace": { - "background": "#e6e6e6", + "background": "#f1f1f1", "leader_border_opacity": 0.7, "leader_border_width": 2, "tab": { - "height": 34, - "icon_close": "#808080", - "icon_close_active": "#0d0d0d", - "icon_conflict": "#f8c570", - "icon_dirty": "#6099f7", + "height": 32, + "background": "#f1f1f1", + "icon_close": "#717171", + "icon_close_active": "#000000", + "icon_conflict": "#f6bc09", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { "family": "Zed Mono", - "color": "#595959", - "size": 16 + "color": "#393939", + "size": 14 }, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "left": true, "bottom": true, @@ -132,20 +133,21 @@ } }, "active_tab": { - "height": 34, - "icon_close": "#808080", - "icon_close_active": "#0d0d0d", - "icon_conflict": "#f8c570", - "icon_dirty": "#6099f7", + "height": 32, + "background": "#ffffff", + "icon_close": "#717171", + "icon_close_active": "#000000", + "icon_conflict": "#f6bc09", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { "family": "Zed Mono", - "color": "#262626", - "size": 16 + "color": "#000000", + "size": 14 }, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "left": true, "bottom": false, @@ -154,28 +156,28 @@ "padding": { "left": 12, "right": 12 - }, - "background": "#cccccc" + } }, "left_sidebar": { "width": 30, + "background": "#f1f1f1", "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "right": true }, "item": { "height": 32, - "icon_color": "#808080", + "icon_color": "#717171", "icon_size": 18 }, "active_item": { "height": 32, - "icon_color": "#4d4d4d", + "icon_color": "#000000", "icon_size": 18 }, "resize_handle": { - "background": "#d9d9d9", + "background": "#c6c6c6", "padding": { "left": 1 } @@ -183,30 +185,31 @@ }, "right_sidebar": { "width": 30, + "background": "#f1f1f1", "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "left": true }, "item": { "height": 32, - "icon_color": "#808080", + "icon_color": "#717171", "icon_size": 18 }, "active_item": { "height": 32, - "icon_color": "#4d4d4d", + "icon_color": "#000000", "icon_size": 18 }, "resize_handle": { - "background": "#d9d9d9", + "background": "#c6c6c6", "padding": { "left": 1 } } }, "pane_divider": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "status_bar": { @@ -218,28 +221,29 @@ }, "cursor_position": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "diagnostic_message": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "lsp_message": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 } }, "titlebar": { "avatar_width": 18, "height": 32, - "share_icon_color": "#808080", - "share_icon_active_color": "#0d0d0d", + "background": "#e3e3e3", + "share_icon_color": "#717171", + "share_icon_active_color": "#000000", "title": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14 }, "avatar": { @@ -254,13 +258,13 @@ "width": 12 }, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "bottom": true }, "sign_in_prompt": { "family": "Zed Sans", - "color": "#595959", + "color": "#393939", "size": 13, "underline": true, "padding": { @@ -270,14 +274,14 @@ "hovered_sign_in_prompt": { "family": "Zed Mono", "color": "#000000", - "size": 16, + "size": 13, "underline": true, "padding": { "right": 8 } }, "offline_icon": { - "color": "#999999", + "color": "#717171", "width": 16, "padding": { "right": 4 @@ -285,15 +289,15 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#b48d14", "size": 13 } }, "toolbar": { "height": 34, - "background": "#cccccc", + "background": "#ffffff", "border": { - "color": "#d9d9d9", + "color": "#f1f1f1", "width": 1, "bottom": true }, @@ -307,7 +311,7 @@ }, "breadcrumbs": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, "padding": { "left": 6 @@ -315,68 +319,68 @@ }, "disconnected_overlay": { "family": "Zed Sans", - "color": "#ffffff", + "color": "#000000", "size": 14, "background": "#000000aa" } }, "editor": { - "text_color": "#595959", - "background": "#cccccc", - "active_line_background": "#000000", - "code_actions_indicator": "#808080", - "diff_background_deleted": "#f78c8c", - "diff_background_inserted": "#22c55e", - "document_highlight_read_background": "#e6e6e6", - "document_highlight_write_background": "#e6e6e6", - "error_color": "#f78c8c", - "gutter_background": "#cccccc", + "text_color": "#393939", + "background": "#ffffff", + "active_line_background": "#ffffff", + "code_actions_indicator": "#717171", + "diff_background_deleted": "#fdd4d4", + "diff_background_inserted": "#befad2", + "document_highlight_read_background": "#e3e3e3", + "document_highlight_write_background": "#e3e3e3", + "error_color": "#d11c1c", + "gutter_background": "#ffffff", "gutter_padding_factor": 2.5, - "highlighted_line_background": "#000000", - "line_number": "#000000", - "line_number_active": "#000000", + "highlighted_line_background": "#ffffff", + "line_number": "#ffffff", + "line_number_active": "#ffffff", "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "guest_selections": [ { "cursor": "#777af4", - "selection": "#777af4" + "selection": "#d4d5fd" }, { "cursor": "#23d464", - "selection": "#23d464" + "selection": "#befad2" }, { "cursor": "#f98a3d", - "selection": "#f98a3d" + "selection": "#fde0cd" }, { "cursor": "#b671f8", - "selection": "#b671f8" + "selection": "#e9d4fd" }, { "cursor": "#16ddc7", - "selection": "#16ddc7" + "selection": "#b4faf2" }, { "cursor": "#f58ac0", - "selection": "#f58ac0" + "selection": "#fcd4e8" }, { "cursor": "#f6bc09", - "selection": "#f6bc09" + "selection": "#fceabc" } ], "autocomplete": { - "background": "#bfbfbf", + "background": "#ffffff", "corner_radius": 6, "padding": 6, "border": { - "color": "#b3b3b3", + "color": "#e3e3e3", "width": 1 }, "item": { @@ -396,7 +400,7 @@ "right": 6, "top": 2 }, - "background": "#bfbfbf" + "background": "#f1f1f1" }, "margin": { "left": -14 @@ -413,22 +417,22 @@ "right": 6, "top": 2 }, - "background": "#bfbfbf" + "background": "#e3e3e3" } }, "diagnostic_header": { - "background": "#e6e6e6", + "background": "#f1f1f1", "icon_width_factor": 1.5, "text_scale_factor": 0.857, "border": { - "color": "#b3b3b3", + "color": "#e3e3e3", "width": 1, "bottom": true, "top": true }, "code": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "left": 10 @@ -437,28 +441,28 @@ "message": { "highlight_text": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14, "weight": "bold" }, "text": { "family": "Zed Sans", - "color": "#595959", + "color": "#393939", "size": 14 } } }, "diagnostic_path_header": { - "background": "#000000", + "background": "#ffffff", "text_scale_factor": 0.857, "filename": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 14 }, "path": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "left": 12 @@ -469,7 +473,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -477,12 +481,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#f78c8c", + "color": "#d11c1c", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#f78c8c", + "color": "#d11c1c", "size": 14, "weight": "bold" } @@ -492,7 +496,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -500,12 +504,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#b48d14", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#b48d14", "size": 14, "weight": "bold" } @@ -515,7 +519,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -523,12 +527,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#1762db", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#1762db", "size": 14, "weight": "bold" } @@ -538,7 +542,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -546,12 +550,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#1762db", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#1762db", "size": 14, "weight": "bold" } @@ -561,7 +565,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -569,12 +573,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "weight": "bold" } @@ -584,7 +588,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -592,12 +596,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "weight": "bold" } @@ -607,7 +611,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -615,12 +619,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "weight": "bold" } @@ -630,7 +634,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1, "top": true } @@ -638,12 +642,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "weight": "bold" } @@ -652,18 +656,18 @@ "syntax": {} }, "project_diagnostics": { - "background": "#cccccc", + "background": "#f1f1f1", "tab_icon_spacing": 4, "tab_icon_width": 13, "tab_summary_spacing": 10, "empty_message": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14 }, "status_bar_item": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "right": 10 @@ -672,52 +676,53 @@ }, "project_panel": { "padding": { - "top": 6 + "top": 6, + "left": 12 }, "entry": { "height": 22, - "icon_color": "#999999", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#595959", - "size": 16 + "color": "#393939", + "size": 14 } }, "hovered_entry": { "height": 22, - "background": "#cccccc", - "icon_color": "#999999", + "background": "#e3e3e3", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#595959", - "size": 16 + "color": "#393939", + "size": 14 } }, "selected_entry": { "height": 22, - "icon_color": "#999999", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#262626", - "size": 16 + "color": "#1c1c1c", + "size": 14 } }, "hovered_selected_entry": { "height": 22, - "background": "#cccccc", - "icon_color": "#999999", + "background": "#e3e3e3", + "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#262626", - "size": 16 + "color": "#1c1c1c", + "size": 14 } } }, @@ -730,13 +735,13 @@ }, "channel_name": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "weight": "bold", "size": 14 }, "channel_name_hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "padding": { "right": 8 @@ -746,7 +751,7 @@ "header": { "name": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14 }, "padding": { @@ -755,7 +760,7 @@ }, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "right": 8 @@ -766,13 +771,13 @@ "item": { "name": { "family": "Zed Sans", - "color": "#595959", + "color": "#393939", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "right": 8 @@ -783,31 +788,31 @@ "hovered_item": { "name": { "family": "Zed Sans", - "color": "#595959", + "color": "#393939", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "right": 8 } }, - "background": "#cccccc", + "background": "#e3e3e3", "corner_radius": 6 }, "active_item": { "name": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "right": 8 @@ -818,32 +823,32 @@ "hovered_active_item": { "name": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14, "margin": { "right": 8 } }, - "background": "#cccccc", + "background": "#e3e3e3", "corner_radius": 6 }, "menu": { - "background": "#e6e6e6", + "background": "#ffffff", "corner_radius": 6, "padding": 4, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "shadow": { "blur": 16, - "color": "#00000052", + "color": "#0000001f", "offset": [ 0, 2 @@ -853,25 +858,25 @@ }, "sign_in_prompt": { "family": "Zed Sans", - "color": "#595959", + "color": "#393939", "underline": true, "size": 14 }, "hovered_sign_in_prompt": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "underline": true, "size": 14 }, "message": { "body": { "family": "Zed Sans", - "color": "#595959", + "color": "#393939", "size": 14 }, "timestamp": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "padding": { @@ -879,7 +884,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "weight": "bold", "size": 14, "margin": { @@ -890,12 +895,12 @@ "pending_message": { "body": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "timestamp": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "size": 14 }, "padding": { @@ -903,7 +908,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#8c8c8c", + "color": "#555555", "weight": "bold", "size": 14, "margin": { @@ -912,24 +917,24 @@ } }, "input_editor": { - "background": "#cccccc", + "background": "#ffffff", "corner_radius": 6, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 16 }, "placeholder_text": { "family": "Zed Mono", - "color": "#8c8c8c", - "size": 16 + "color": "#717171", + "size": 14 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "border": { - "color": "#d9d9d9", + "color": "#e3e3e3", "width": 1 }, "padding": { @@ -948,7 +953,7 @@ "right": 12 }, "host_row_height": 28, - "tree_branch_color": "#bfbfbf", + "tree_branch_color": "#f1f1f1", "tree_branch_width": 1, "host_avatar": { "corner_radius": 10, @@ -956,7 +961,7 @@ }, "host_username": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#555555", "size": 16, "padding": { "left": 8 @@ -971,7 +976,7 @@ }, "name": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, "margin": { "right": 6 @@ -990,7 +995,7 @@ }, "name": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 16, "margin": { "right": 6 @@ -1009,7 +1014,7 @@ }, "name": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 16, "margin": { "right": 6 @@ -1018,7 +1023,7 @@ "padding": { "left": 8 }, - "background": "#000000", + "background": "#ffffff", "corner_radius": 6 }, "unshared_project": { @@ -1030,7 +1035,7 @@ }, "name": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, "margin": { "right": 6 @@ -1049,7 +1054,7 @@ }, "name": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, "margin": { "right": 6 @@ -1058,22 +1063,22 @@ "padding": { "left": 8 }, - "background": "#000000", + "background": "#ffffff", "corner_radius": 6 } }, "search": { - "match_background": "#000000", + "match_background": "#ffffff", "tab_icon_spacing": 4, "tab_icon_width": 14, "active_hovered_option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, - "background": "#bfbfbf", + "background": "#e3e3e3", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "margin": { @@ -1089,12 +1094,12 @@ }, "active_option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, - "background": "#bfbfbf", + "background": "#e3e3e3", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "margin": { @@ -1109,26 +1114,26 @@ } }, "editor": { - "background": "#e6e6e6", + "background": "#ffffff", "corner_radius": 6, "min_width": 200, "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#bfbfbf", + "color": "#717171", "size": 16 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 16 }, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "margin": { @@ -1143,12 +1148,12 @@ }, "hovered_option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, - "background": "#bfbfbf", + "background": "#e3e3e3", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "margin": { @@ -1163,26 +1168,26 @@ } }, "invalid_editor": { - "background": "#e6e6e6", + "background": "#ffffff", "corner_radius": 6, "min_width": 200, "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#bfbfbf", + "color": "#717171", "size": 16 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 16 }, "border": { - "color": "#ffffff", + "color": "#fbbdbd", "width": 1 }, "margin": { @@ -1197,18 +1202,18 @@ }, "match_index": { "family": "Zed Mono", - "color": "#8c8c8c", + "color": "#555555", "size": 16, "padding": 6 }, "option_button": { "family": "Zed Mono", - "color": "#595959", + "color": "#393939", "size": 16, - "background": "#cccccc", + "background": "#f1f1f1", "corner_radius": 6, "border": { - "color": "#d9d9d9", + "color": "#c6c6c6", "width": 1 }, "margin": { @@ -1230,13 +1235,13 @@ }, "results_status": { "family": "Zed Mono", - "color": "#262626", + "color": "#1c1c1c", "size": 18 } }, "breadcrumbs": { "family": "Zed Sans", - "color": "#262626", + "color": "#1c1c1c", "size": 14, "padding": { "left": 6 diff --git a/styles/buildThemes.ts b/styles/buildThemes.ts index d67860cee66a0ec7abd7d37da8b10f0a6c930488..9128eff45d46a0a11b9a8ddb04013b3b59faf87a 100644 --- a/styles/buildThemes.ts +++ b/styles/buildThemes.ts @@ -1,8 +1,8 @@ import * as fs from "fs"; import * as path from "path"; +import app from "./styleTree/app"; import dark from "./themes/dark"; import light from "./themes/light"; -import app from "./styleTree/app"; import decamelizeTree from "./utils/decamelizeTree"; const themes = [dark, light]; diff --git a/styles/styleTree/chatPanel.ts b/styles/styleTree/chatPanel.ts index ea9a8ffe22a83e2b7135bc886273f2da2d7c1502..69b5f3baa0d74c03e4ff5e0a81ff4fc6616afdfc 100644 --- a/styles/styleTree/chatPanel.ts +++ b/styles/styleTree/chatPanel.ts @@ -31,7 +31,7 @@ export default function chatPanel(theme: Theme) { const message = { body: text(theme, "sans", "secondary"), - timestamp: text(theme, "sans", "muted"), + timestamp: text(theme, "sans", "muted", { size: "sm" }), padding: { bottom: 6, }, @@ -91,12 +91,12 @@ export default function chatPanel(theme: Theme) { }, }, inputEditor: { - background: backgroundColor(theme, 300), + background: backgroundColor(theme, 500), cornerRadius: 6, text: text(theme, "mono", "primary"), - placeholderText: text(theme, "mono", "muted"), + placeholderText: text(theme, "mono", "placeholder", { size: "sm" }), selection: player(theme, 1).selection, - border: border(theme, "primary"), + border: border(theme, "secondary"), padding: { bottom: 7, left: 8, diff --git a/styles/styleTree/editor.ts b/styles/styleTree/editor.ts index ebc53b405875dab197a3c95d5373732050e9a7a0..eb379ce520bfb5b53b85e5d8e28be639d598a6f9 100644 --- a/styles/styleTree/editor.ts +++ b/styles/styleTree/editor.ts @@ -5,7 +5,7 @@ import { iconColor, player, text, - TextColor, + TextColor } from "./components"; export default function editor(theme: Theme) { @@ -39,7 +39,7 @@ export default function editor(theme: Theme) { return { textColor: theme.textColor.secondary.value, - background: backgroundColor(theme, 300), + background: backgroundColor(theme, 500), activeLineBackground: theme.editor.line.active.value, codeActionsIndicator: iconColor(theme, "secondary"), diffBackgroundDeleted: backgroundColor(theme, "error"), @@ -47,7 +47,7 @@ export default function editor(theme: Theme) { documentHighlightReadBackground: theme.editor.highlight.occurrence.value, documentHighlightWriteBackground: theme.editor.highlight.occurrence.value, errorColor: theme.textColor.error.value, - gutterBackground: backgroundColor(theme, 300), + gutterBackground: backgroundColor(theme, 500), gutterPaddingFactor: 2.5, highlightedLineBackground: theme.editor.line.highlighted.value, lineNumber: theme.editor.gutter.primary.value, @@ -65,14 +65,14 @@ export default function editor(theme: Theme) { player(theme, 8).selection, ], autocomplete: { - background: backgroundColor(theme, 100), + background: backgroundColor(theme, 500), cornerRadius: 6, padding: 6, border: border(theme, "secondary"), item: autocompleteItem, hoveredItem: { ...autocompleteItem, - background: backgroundColor(theme, 100, "hovered"), + background: backgroundColor(theme, 500, "hovered"), }, margin: { left: -14, @@ -83,11 +83,11 @@ export default function editor(theme: Theme) { }, selectedItem: { ...autocompleteItem, - background: backgroundColor(theme, 100, "active"), + background: backgroundColor(theme, 500, "active"), }, }, diagnosticHeader: { - background: theme.editor.background.value, + background: backgroundColor(theme, 300), iconWidthFactor: 1.5, textScaleFactor: 0.857, // NateQ: Will we need dynamic sizing for text? If so let's create tokens for these. border: border(theme, "secondary", { diff --git a/styles/styleTree/projectPanel.ts b/styles/styleTree/projectPanel.ts index cd6fb49b3ada1db47b3dd15637cb1a4a6c5ee516..e27cd94414a031f64dbc0ee5e232d2666944462a 100644 --- a/styles/styleTree/projectPanel.ts +++ b/styles/styleTree/projectPanel.ts @@ -1,7 +1,7 @@ -import { panel } from "./app"; -import { backgroundColor, iconColor, text, TextColor } from "./components"; import Theme from "../themes/theme"; import { Color } from "../utils/color"; +import { panel } from "./app"; +import { backgroundColor, iconColor, text, TextColor } from "./components"; export default function projectPanel(theme: Theme) { function entry(theme: Theme, textColor: TextColor, background?: Color) { @@ -11,7 +11,7 @@ export default function projectPanel(theme: Theme) { iconColor: iconColor(theme, "muted"), iconSize: 8, iconSpacing: 8, - text: text(theme, "mono", textColor), + text: text(theme, "mono", textColor, { size: "sm" }), }; } @@ -31,6 +31,7 @@ export default function projectPanel(theme: Theme) { ), padding: { top: 6, + left: 12, }, }; } diff --git a/styles/styleTree/workspace.ts b/styles/styleTree/workspace.ts index 7e71eaad2a8e258e5aed2476af0b68fbf9c7ba4b..a734528d744c21896cb73c090b482615bb3544b3 100644 --- a/styles/styleTree/workspace.ts +++ b/styles/styleTree/workspace.ts @@ -12,14 +12,15 @@ export default function workspace(theme: Theme) { }; const tab = { - height: 34, + height: 32, + background: backgroundColor(theme, 300), iconClose: iconColor(theme, "secondary"), iconCloseActive: iconColor(theme, "active"), iconConflict: iconColor(theme, "warning"), iconDirty: iconColor(theme, "info"), iconWidth: 8, spacing: 10, - text: text(theme, "mono", "secondary"), + text: text(theme, "mono", "secondary", { size: "sm" }), border: border(theme, "primary", { left: true, bottom: true, @@ -33,8 +34,8 @@ export default function workspace(theme: Theme) { const activeTab = { ...tab, - background: backgroundColor(theme, 300), - text: text(theme, "mono", "primary"), + background: backgroundColor(theme, 500), + text: text(theme, "mono", "active", { size: "sm" }), border: { ...tab.border, bottom: false, @@ -48,11 +49,12 @@ export default function workspace(theme: Theme) { }; const sidebar = { width: 30, + background: backgroundColor(theme, 300), border: border(theme, "primary", { right: true }), item: sidebarItem, activeItem: { ...sidebarItem, - iconColor: iconColor(theme, "primary"), + iconColor: iconColor(theme, "active"), }, resizeHandle: { background: border(theme, "primary").color, @@ -63,7 +65,7 @@ export default function workspace(theme: Theme) { }; return { - background: backgroundColor(theme, 500), + background: backgroundColor(theme, 300), leaderBorderOpacity: 0.7, leaderBorderWidth: 2.0, tab, @@ -94,6 +96,7 @@ export default function workspace(theme: Theme) { titlebar: { avatarWidth: 18, height: 32, + background: backgroundColor(theme, 100), shareIconColor: iconColor(theme, "secondary"), shareIconActiveColor: iconColor(theme, "active"), title: text(theme, "sans", "primary"), @@ -107,29 +110,32 @@ export default function workspace(theme: Theme) { avatarRibbon: { height: 3, width: 12, + // TODO: The background for this ideally should be + // set with a token, not hardcoded in rust }, border: border(theme, "primary", { bottom: true }), signInPrompt, hoveredSignInPrompt: { ...signInPrompt, ...text(theme, "mono", "active"), + size: 13, }, offlineIcon: { - color: iconColor(theme, "muted"), + color: iconColor(theme, "secondary"), width: 16, padding: { right: 4, }, }, outdatedWarning: { - ...text(theme, "sans", "muted"), + ...text(theme, "sans", "warning"), size: 13, }, }, toolbar: { height: 34, - background: backgroundColor(theme, 300), - border: border(theme, "primary", { bottom: true }), + background: backgroundColor(theme, 500), + border: border(theme, "muted", { bottom: true }), itemSpacing: 8, padding: { left: 16, right: 8, top: 4, bottom: 4 }, }, @@ -138,8 +144,7 @@ export default function workspace(theme: Theme) { padding: { left: 6 }, }, disconnectedOverlay: { - ...text(theme, "sans", "primary"), - color: "#ffffff", + ...text(theme, "sans", "active"), background: "#000000aa", }, }; diff --git a/styles/themes/dark.ts b/styles/themes/dark.ts index 2cadf24601f47cc1172c4d9be753cc80c3a9f20c..f8e0c0fcb6b00e157bf577fca2024ca286561c5d 100644 --- a/styles/themes/dark.ts +++ b/styles/themes/dark.ts @@ -3,10 +3,10 @@ import Theme, { Syntax } from "./theme"; const backgroundColor = { 100: { - base: colors.neutral[750], - hovered: colors.neutral[750], - active: colors.neutral[750], - focused: colors.neutral[750], + base: colors.neutral[700], + hovered: colors.neutral[700], + active: colors.neutral[700], + focused: colors.neutral[700], }, 300: { base: colors.neutral[800], @@ -52,10 +52,10 @@ const borderColor = { muted: colors.neutral[750], focused: colors.neutral[100], active: colors.neutral[500], - ok: colors.neutral[1000], - error: colors.neutral[1000], - warning: colors.neutral[1000], - info: colors.neutral[1000], + ok: colors.green[500], + error: colors.red[500], + warning: colors.amber[500], + info: colors.blue[500], }; const textColor = { @@ -65,7 +65,7 @@ const textColor = { placeholder: colors.neutral[750], active: colors.neutral[0], //TODO: (design) define feature and it's correct value - feature: colors.sky[500], + feature: colors.lime[400], ok: colors.green[600], error: colors.red[400], warning: colors.amber[300], @@ -81,9 +81,9 @@ const iconColor = { //TODO: (design) define feature and it's correct value feature: colors.sky[500], ok: colors.green[600], - error: colors.red[400], - warning: colors.amber[300], - info: colors.blue[500], + error: colors.red[500], + warning: colors.amber[400], + info: colors.blue[600], }; const player = { diff --git a/styles/themes/light.ts b/styles/themes/light.ts index acb704de74b99b91c2b41a739c751003670c5864..c543c78a302e3579970998ad1fb23847b1e1f694 100644 --- a/styles/themes/light.ts +++ b/styles/themes/light.ts @@ -5,73 +5,72 @@ import Theme, { Syntax } from "./theme"; const backgroundColor = { 100: { - base: colors.neutral[750], - hovered: colors.neutral[750], - active: colors.neutral[750], - focused: colors.neutral[750], + base: colors.neutral[100], + hovered: colors.neutral[150], + active: colors.neutral[200], + focused: colors.neutral[150], }, 300: { - base: colors.neutral[800], - hovered: colors.neutral[800], - active: colors.neutral[800], - focused: colors.neutral[800], + base: colors.neutral[50], + hovered: colors.neutral[100], + active: colors.neutral[150], + focused: colors.neutral[100], }, 500: { - base: colors.neutral[900], - hovered: colors.neutral[900], - active: colors.neutral[900], - focused: colors.neutral[900], + base: colors.neutral[0], + hovered: colors.neutral[50], + active: colors.neutral[100], + focused: colors.neutral[50], }, ok: { - base: colors.green[600], - hovered: colors.green[600], - active: colors.green[600], - focused: colors.green[600], + base: colors.green[100], + hovered: colors.green[100], + active: colors.green[100], + focused: colors.green[100], }, error: { - base: colors.red[400], - hovered: colors.red[400], - active: colors.red[400], - focused: colors.red[400], + base: colors.red[100], + hovered: colors.red[100], + active: colors.red[100], + focused: colors.red[100], }, warning: { - base: colors.amber[300], - hovered: colors.amber[300], - active: colors.amber[300], - focused: colors.amber[300], + base: colors.yellow[100], + hovered: colors.yellow[100], + active: colors.yellow[100], + focused: colors.yellow[100], }, info: { - base: colors.blue[500], - hovered: colors.blue[500], - active: colors.blue[500], - focused: colors.blue[500], + base: colors.blue[100], + hovered: colors.blue[100], + active: colors.blue[100], + focused: colors.blue[100], }, }; const borderColor = { - primary: colors.neutral[850], - secondary: colors.neutral[700], - muted: colors.neutral[750], + primary: colors.neutral[200], + secondary: colors.neutral[100], + muted: colors.neutral[50], focused: colors.neutral[100], - active: colors.neutral[500], - ok: colors.neutral[1000], - error: colors.neutral[1000], - warning: colors.neutral[1000], - info: colors.neutral[1000], + active: colors.neutral[250], + ok: colors.green[200], + error: colors.red[200], + warning: colors.yellow[200], + info: colors.blue[200], }; const textColor = { - primary: colors.neutral[150], - secondary: colors.neutral[350], - muted: colors.neutral[550], - placeholder: colors.neutral[750], - active: colors.neutral[0], - //TODO: (design) define feature and it's correct value - feature: colors.sky[500], - ok: colors.green[600], - error: colors.red[400], - warning: colors.amber[300], - info: colors.blue[500], + primary: colors.neutral[800], + secondary: colors.neutral[700], + muted: colors.neutral[600], + placeholder: colors.neutral[500], + active: colors.neutral[900], + feature: colors.blue[600], + ok: colors.green[800], + error: colors.red[800], + warning: colors.yellow[800], + info: colors.blue[800], }; const iconColor = { @@ -79,63 +78,62 @@ const iconColor = { secondary: colors.neutral[500], muted: colors.neutral[600], placeholder: colors.neutral[700], - active: colors.neutral[50], - //TODO: (design) define feature and it's correct value - feature: colors.sky[500], + active: colors.neutral[900], + feature: colors.sky[600], ok: colors.green[600], - error: colors.red[400], - warning: colors.amber[300], - info: colors.blue[500], + error: colors.red[600], + warning: colors.yellow[400], + info: colors.blue[600], }; const player = { 1: { - baseColor: colors.blue[600], - cursorColor: colors.blue[600], - selectionColor: colors.blue[600], - borderColor: colors.blue[600], + baseColor: colors.blue[600], + cursorColor: colors.blue[500], + selectionColor: colors.blue[100], + borderColor: colors.blue[500], }, 2: { - baseColor: colors.indigo[500], - cursorColor: colors.indigo[500], - selectionColor: colors.indigo[500], - borderColor: colors.indigo[500], + baseColor: colors.indigo[500], + cursorColor: colors.indigo[500], + selectionColor: colors.indigo[100], + borderColor: colors.indigo[500], }, 3: { - baseColor: colors.green[500], - cursorColor: colors.green[500], - selectionColor: colors.green[500], - borderColor: colors.green[500], + baseColor: colors.green[500], + cursorColor: colors.green[500], + selectionColor: colors.green[100], + borderColor: colors.green[500], }, 4: { - baseColor: colors.orange[500], - cursorColor: colors.orange[500], - selectionColor: colors.orange[500], - borderColor: colors.orange[500], + baseColor: colors.orange[500], + cursorColor: colors.orange[500], + selectionColor: colors.orange[100], + borderColor: colors.orange[500], }, 5: { - baseColor: colors.purple[500], - cursorColor: colors.purple[500], - selectionColor: colors.purple[500], - borderColor: colors.purple[500], + baseColor: colors.purple[500], + cursorColor: colors.purple[500], + selectionColor: colors.purple[100], + borderColor: colors.purple[500], }, 6: { - baseColor: colors.teal[400], - cursorColor: colors.teal[400], - selectionColor: colors.teal[400], - borderColor: colors.teal[400], + baseColor: colors.teal[400], + cursorColor: colors.teal[400], + selectionColor: colors.teal[100], + borderColor: colors.teal[400], }, 7: { - baseColor: colors.pink[400], - cursorColor: colors.pink[400], - selectionColor: colors.pink[400], - borderColor: colors.pink[400], + baseColor: colors.pink[400], + cursorColor: colors.pink[400], + selectionColor: colors.pink[100], + borderColor: colors.pink[400], }, 8: { - baseColor: colors.yellow[400], - cursorColor: colors.yellow[400], - selectionColor: colors.yellow[400], - borderColor: colors.yellow[400], + baseColor: colors.yellow[400], + cursorColor: colors.yellow[400], + selectionColor: colors.yellow[100], + borderColor: colors.yellow[400], }, }; @@ -145,118 +143,118 @@ const editor = { indent_guide: borderColor.muted, indent_guide_active: borderColor.secondary, line: { - active: colors.neutral[0], - highlighted: colors.neutral[0], - inserted: backgroundColor.ok.active, - deleted: backgroundColor.error.active, - modified: backgroundColor.info.active, + active: colors.neutral[0], + highlighted: colors.neutral[0], + inserted: backgroundColor.ok.active, + deleted: backgroundColor.error.active, + modified: backgroundColor.info.active, }, highlight: { - selection: player[1].selectionColor, - occurrence: backgroundColor[500].active, - activeOccurrence: colors.neutral[0], - matchingBracket: colors.neutral[0], - match: colors.neutral[0], - activeMatch: colors.neutral[0], - related: colors.neutral[0], + selection: player[1].selectionColor, + occurrence: backgroundColor[500].active, + activeOccurrence: colors.neutral[0], + matchingBracket: colors.neutral[0], + match: colors.neutral[0], + activeMatch: colors.neutral[0], + related: colors.neutral[0], }, gutter: { - primary: colors.neutral[0], - active: colors.neutral[0], + primary: colors.neutral[0], + active: colors.neutral[0], }, }; const syntax: Syntax = { primary: { - color: textColor.primary, - weight: fontWeights.normal, + color: textColor.primary, + weight: fontWeights.normal, }, comment: { - color: colors.lime[200], - weight: fontWeights.normal, + color: colors.lime[200], + weight: fontWeights.normal, }, punctuation: { - color: textColor.primary, - weight: fontWeights.normal, + color: textColor.primary, + weight: fontWeights.normal, }, constant: { - color: colors.neutral[150], - weight: fontWeights.normal, + color: colors.neutral[150], + weight: fontWeights.normal, }, keyword: { - color: colors.sky[400], - weight: fontWeights.normal, + color: colors.sky[400], + weight: fontWeights.normal, }, function: { - color: colors.yellow[200], - weight: fontWeights.normal, + color: colors.yellow[200], + weight: fontWeights.normal, }, type: { - color: colors.teal[300], - weight: fontWeights.normal, + color: colors.teal[300], + weight: fontWeights.normal, }, variant: { - color: colors.teal[300], - weight: fontWeights.normal, + color: colors.teal[300], + weight: fontWeights.normal, }, property: { - color: colors.sky[300], - weight: fontWeights.normal, + color: colors.sky[300], + weight: fontWeights.normal, }, enum: { - color: colors.sky[400], - weight: fontWeights.normal, + color: colors.sky[400], + weight: fontWeights.normal, }, operator: { - color: colors.sky[400], - weight: fontWeights.normal, + color: colors.sky[400], + weight: fontWeights.normal, }, string: { - color: colors.orange[300], - weight: fontWeights.normal, + color: colors.orange[300], + weight: fontWeights.normal, }, number: { - color: colors.neutral[150], - weight: fontWeights.normal, + color: colors.neutral[150], + weight: fontWeights.normal, }, boolean: { - color: colors.neutral[150], - weight: fontWeights.normal, + color: colors.neutral[150], + weight: fontWeights.normal, }, predictive: { - color: textColor.muted, - weight: fontWeights.normal, + color: textColor.muted, + weight: fontWeights.normal, }, title: { - color: colors.sky[500], - weight: fontWeights.bold, + color: colors.sky[500], + weight: fontWeights.bold, }, emphasis: { - color: textColor.active, - weight: fontWeights.normal, + color: textColor.active, + weight: fontWeights.normal, }, emphasisStrong: { - color: textColor.active, - weight: fontWeights.bold, + color: textColor.active, + weight: fontWeights.bold, }, linkUrl: { - color: colors.lime[500], - weight: fontWeights.normal, - // TODO: add underline + color: colors.lime[500], + weight: fontWeights.normal, + // TODO: add underline }, linkText: { - color: colors.orange[500], - weight: fontWeights.normal, - // TODO: add italic + color: colors.orange[500], + weight: fontWeights.normal, + // TODO: add italic }, listMarker: { - color: colors.sky[400], - weight: fontWeights.normal, - } + color: colors.sky[400], + weight: fontWeights.normal, + }, }; const shadowAlpha: NumberToken = { - value: 0.32, + value: 0.12, type: "number", }; diff --git a/styles/themes/theme.ts b/styles/themes/theme.ts index f95d58e49484aea340693ff289f19cb8cf8a4b0a..7f8305c1d539d24fe50f23d650844c0670506dc1 100644 --- a/styles/themes/theme.ts +++ b/styles/themes/theme.ts @@ -1,4 +1,4 @@ -import { FontWeightToken, ColorToken, NumberToken } from "../tokens"; +import { ColorToken, FontWeightToken, NumberToken } from "../tokens"; export interface SyntaxHighlightStyle { color: ColorToken; diff --git a/styles/tokens.ts b/styles/tokens.ts index 1e0df5032d09ee72ce31fc2b9de256174b6bf905..63c19a9d6439a77db5d1d9cd7924966e117a931a 100644 --- a/styles/tokens.ts +++ b/styles/tokens.ts @@ -72,7 +72,7 @@ export interface ColorToken { step?: number, } export const colors = { - neutral: colorRamp(["black", "white"], { steps: 21, increment: 50 }), + neutral: colorRamp(["white", "black"], { steps: 19, increment: 50 }), rose: colorRamp("#F43F5EFF"), red: colorRamp("#EF4444FF"), orange: colorRamp("#F97316FF"), From bfde9dca4e0dc1b50f2eb0927efcc6b7985e9dc3 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Fri, 1 Apr 2022 23:59:20 -0400 Subject: [PATCH 53/71] Add greg to .zed.toml --- .zed.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.zed.toml b/.zed.toml index 0cbe5c59a550cbdae9b8d016123ef315bbd0e18e..fae32125f4f236c7bc99f57f5bf9e6e041984069 100644 --- a/.zed.toml +++ b/.zed.toml @@ -1 +1 @@ -collaborators = ["nathansobo", "as-cii", "maxbrunsfeld", "iamnbutler", "Kethku"] +collaborators = ["nathansobo", "as-cii", "maxbrunsfeld", "iamnbutler", "gibusu", "Kethku"] From c374fd2f548471b587f33ff9d04e21a373cdd1fd Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sat, 2 Apr 2022 01:05:28 -0400 Subject: [PATCH 54/71] WIP --- crates/zed/assets/themes/dark.json | 157 +++++++++--------- crates/zed/assets/themes/light.json | 245 ++++++++++++++-------------- styles/styleTree/app.ts | 3 +- styles/styleTree/editor.ts | 3 +- styles/themes/dark.ts | 54 +++--- styles/themes/light.ts | 38 ++--- styles/utils/color.ts | 4 +- 7 files changed, 251 insertions(+), 253 deletions(-) diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json index fd11fc6c3a64a6fd6d878b935941d21960c12f37..0abf380cc18fc7ecb252d8d062b2ff53aeb4ad7c 100644 --- a/crates/zed/assets/themes/dark.json +++ b/crates/zed/assets/themes/dark.json @@ -18,7 +18,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#90df17", + "color": "#72ad19", "weight": "bold", "size": 14 } @@ -33,16 +33,16 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#90df17", + "color": "#72ad19", "weight": "bold", "size": 14 }, - "background": "#000000" + "background": "#1c1c1c" }, "border": { "color": "#0e0e0e", @@ -70,12 +70,12 @@ "size": 14 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#195cc8", + "selection": "#307af3" }, "text": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 16 }, "border": { @@ -111,8 +111,8 @@ "background": "#1c1c1c", "icon_close": "#717171", "icon_close_active": "#f1f1f1", - "icon_conflict": "#f7b241", - "icon_dirty": "#4287f6", + "icon_conflict": "#c38214", + "icon_dirty": "#195cc8", "icon_width": 8, "spacing": 10, "text": { @@ -137,8 +137,8 @@ "background": "#000000", "icon_close": "#717171", "icon_close_active": "#f1f1f1", - "icon_conflict": "#f7b241", - "icon_dirty": "#4287f6", + "icon_conflict": "#c38214", + "icon_dirty": "#195cc8", "icon_width": 8, "spacing": 10, "text": { @@ -243,7 +243,7 @@ "share_icon_active_color": "#f1f1f1", "title": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 }, "avatar": { @@ -289,7 +289,7 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#cc8712", "size": 13 } }, @@ -325,54 +325,54 @@ } }, "editor": { - "text_color": "#9c9c9c", + "text_color": "#e3e3e3", "background": "#000000", - "active_line_background": "#ffffff", + "active_line_background": "#1c1c1c", "code_actions_indicator": "#717171", - "diff_background_deleted": "#f78c8c", - "diff_background_inserted": "#22c55e", - "document_highlight_read_background": "#000000", - "document_highlight_write_background": "#000000", - "error_color": "#f78c8c", + "diff_background_deleted": "#d71c1c", + "diff_background_inserted": "#1ea34f", + "document_highlight_read_background": "#1e22db", + "document_highlight_write_background": "#1e22db", + "error_color": "#d71c1c", "gutter_background": "#000000", "gutter_padding_factor": 2.5, - "highlighted_line_background": "#ffffff", - "line_number": "#ffffff", + "highlighted_line_background": "#0e0e0e", + "line_number": "#636363", "line_number_active": "#ffffff", "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#195cc8", + "selection": "#307af3" }, "guest_selections": [ { - "cursor": "#777af4", - "selection": "#777af4" + "cursor": "#70a919", + "selection": "#80c517" }, { - "cursor": "#23d464", - "selection": "#23d464" + "cursor": "#1e22db", + "selection": "#5558ee" }, { - "cursor": "#f98a3d", - "selection": "#f98a3d" + "cursor": "#c45c14", + "selection": "#f66e0f" }, { - "cursor": "#b671f8", - "selection": "#b671f8" + "cursor": "#7d19dc", + "selection": "#a048f4" }, { - "cursor": "#16ddc7", - "selection": "#16ddc7" + "cursor": "#17a293", + "selection": "#15b3a2" }, { - "cursor": "#f58ac0", - "selection": "#f58ac0" + "cursor": "#d51e79", + "selection": "#e93d92" }, { - "cursor": "#f6bc09", - "selection": "#f6bc09" + "cursor": "#bc9212", + "selection": "#e0ac0b" } ], "autocomplete": { @@ -400,13 +400,13 @@ "right": 6, "top": 2 }, - "background": "#000000" + "background": "#0e0e0e" }, "margin": { "left": -14 }, "match_highlight": { - "color": "#59c3f5", + "color": "#1588bc", "weight": "normal" }, "selected_item": { @@ -417,7 +417,7 @@ "right": 6, "top": 2 }, - "background": "#000000" + "background": "#1c1c1c" } }, "diagnostic_header": { @@ -441,7 +441,7 @@ "message": { "highlight_text": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14, "weight": "bold" }, @@ -453,11 +453,11 @@ } }, "diagnostic_path_header": { - "background": "#ffffff", + "background": "#1c1c1c", "text_scale_factor": 0.857, "filename": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 }, "path": { @@ -481,12 +481,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#f78c8c", + "color": "#d71c1c", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#f78c8c", + "color": "#d71c1c", "size": 14, "weight": "bold" } @@ -504,12 +504,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#cc8712", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#cc8712", "size": 14, "weight": "bold" } @@ -527,12 +527,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#185fd0", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#185fd0", "size": 14, "weight": "bold" } @@ -550,12 +550,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#185fd0", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#185fd0", "size": 14, "weight": "bold" } @@ -656,13 +656,12 @@ "syntax": {} }, "project_diagnostics": { - "background": "#1c1c1c", "tab_icon_spacing": 4, "tab_icon_width": 13, "tab_summary_spacing": 10, "empty_message": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 }, "status_bar_item": { @@ -709,7 +708,7 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 } }, @@ -721,7 +720,7 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 } } @@ -735,7 +734,7 @@ }, "channel_name": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "weight": "bold", "size": 14 }, @@ -751,7 +750,7 @@ "header": { "name": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 }, "padding": { @@ -806,7 +805,7 @@ "active_item": { "name": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 }, "padding": 4, @@ -823,7 +822,7 @@ "hovered_active_item": { "name": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14 }, "padding": 4, @@ -864,7 +863,7 @@ }, "hovered_sign_in_prompt": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "underline": true, "size": 14 }, @@ -884,7 +883,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "weight": "bold", "size": 14, "margin": { @@ -921,7 +920,7 @@ "corner_radius": 6, "text": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 16 }, "placeholder_text": { @@ -930,8 +929,8 @@ "size": 14 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#195cc8", + "selection": "#307af3" }, "border": { "color": "#393939", @@ -995,7 +994,7 @@ }, "name": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 16, "margin": { "right": 6 @@ -1014,7 +1013,7 @@ }, "name": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 16, "margin": { "right": 6 @@ -1023,7 +1022,7 @@ "padding": { "left": 8 }, - "background": "#ffffff", + "background": "#1c1c1c", "corner_radius": 6 }, "unshared_project": { @@ -1063,12 +1062,12 @@ "padding": { "left": 8 }, - "background": "#ffffff", + "background": "#1c1c1c", "corner_radius": 6 } }, "search": { - "match_background": "#ffffff", + "match_background": "#70a919", "tab_icon_spacing": 4, "tab_icon_width": 14, "active_hovered_option_button": { @@ -1124,12 +1123,12 @@ "size": 16 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#195cc8", + "selection": "#307af3" }, "text": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 16 }, "border": { @@ -1178,16 +1177,16 @@ "size": 16 }, "selection": { - "cursor": "#4287f6", - "selection": "#4287f6" + "cursor": "#195cc8", + "selection": "#307af3" }, "text": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 16 }, "border": { - "color": "#f47171", + "color": "#cd1c1c", "width": 1 }, "margin": { @@ -1235,13 +1234,13 @@ }, "results_status": { "family": "Zed Mono", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 18 } }, "breadcrumbs": { "family": "Zed Sans", - "color": "#d5d5d5", + "color": "#e3e3e3", "size": 14, "padding": { "left": 6 diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json index 219f958e876dcb36abd4edf2e2986c7fb26f32c3..1024764540e55f20505b6864ca6bdddd95881edd 100644 --- a/crates/zed/assets/themes/light.json +++ b/crates/zed/assets/themes/light.json @@ -13,12 +13,12 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#393939", + "color": "#555555", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#4287f6", + "color": "#185fd0", "weight": "bold", "size": 14 } @@ -33,12 +33,12 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#4287f6", + "color": "#185fd0", "weight": "bold", "size": 14 }, @@ -51,7 +51,7 @@ "empty": { "text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "padding": { @@ -66,16 +66,16 @@ "corner_radius": 6, "placeholder_text": { "family": "Zed Sans", - "color": "#717171", + "color": "#aaaaaa", "size": 14 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#185fd0", + "selection": "#307af3" }, "text": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 16 }, "border": { @@ -111,13 +111,13 @@ "background": "#f1f1f1", "icon_close": "#717171", "icon_close_active": "#000000", - "icon_conflict": "#f6bc09", - "icon_dirty": "#4287f6", + "icon_conflict": "#bc9212", + "icon_dirty": "#195cc8", "icon_width": 8, "spacing": 10, "text": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 14 }, "border": { @@ -137,8 +137,8 @@ "background": "#ffffff", "icon_close": "#717171", "icon_close_active": "#000000", - "icon_conflict": "#f6bc09", - "icon_dirty": "#4287f6", + "icon_conflict": "#bc9212", + "icon_dirty": "#195cc8", "icon_width": 8, "spacing": 10, "text": { @@ -221,17 +221,17 @@ }, "cursor_position": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "diagnostic_message": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "lsp_message": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 } }, @@ -243,7 +243,7 @@ "share_icon_active_color": "#000000", "title": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 }, "avatar": { @@ -264,7 +264,7 @@ }, "sign_in_prompt": { "family": "Zed Sans", - "color": "#393939", + "color": "#555555", "size": 13, "underline": true, "padding": { @@ -289,7 +289,7 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#b48d14", + "color": "#b68e14", "size": 13 } }, @@ -311,7 +311,7 @@ }, "breadcrumbs": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "padding": { "left": 6 @@ -325,54 +325,54 @@ } }, "editor": { - "text_color": "#393939", + "text_color": "#2b2b2b", "background": "#ffffff", - "active_line_background": "#ffffff", + "active_line_background": "#e3e3e3", "code_actions_indicator": "#717171", - "diff_background_deleted": "#fdd4d4", - "diff_background_inserted": "#befad2", + "diff_background_deleted": "#ec3939", + "diff_background_inserted": "#21bf5b", "document_highlight_read_background": "#e3e3e3", "document_highlight_write_background": "#e3e3e3", - "error_color": "#d11c1c", + "error_color": "#cd1c1c", "gutter_background": "#ffffff", "gutter_padding_factor": 2.5, - "highlighted_line_background": "#ffffff", - "line_number": "#ffffff", - "line_number_active": "#ffffff", + "highlighted_line_background": "#e3e3e3", + "line_number": "#808080", + "line_number_active": "#000000", "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#185fd0", + "selection": "#307af3" }, "guest_selections": [ { - "cursor": "#777af4", - "selection": "#d4d5fd" + "cursor": "#70a919", + "selection": "#80c517" }, { - "cursor": "#23d464", - "selection": "#befad2" + "cursor": "#1e22db", + "selection": "#5558ee" }, { - "cursor": "#f98a3d", - "selection": "#fde0cd" + "cursor": "#c45c14", + "selection": "#f66e0f" }, { - "cursor": "#b671f8", - "selection": "#e9d4fd" + "cursor": "#7d19dc", + "selection": "#a048f4" }, { - "cursor": "#16ddc7", - "selection": "#b4faf2" + "cursor": "#17a293", + "selection": "#15b3a2" }, { - "cursor": "#f58ac0", - "selection": "#fcd4e8" + "cursor": "#d51e79", + "selection": "#e93d92" }, { - "cursor": "#f6bc09", - "selection": "#fceabc" + "cursor": "#bc9212", + "selection": "#e0ac0b" } ], "autocomplete": { @@ -406,7 +406,7 @@ "left": -14 }, "match_highlight": { - "color": "#59c3f5", + "color": "#1588bc", "weight": "normal" }, "selected_item": { @@ -432,7 +432,7 @@ }, "code": { "family": "Zed Mono", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "left": 10 @@ -441,28 +441,28 @@ "message": { "highlight_text": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14, "weight": "bold" }, "text": { "family": "Zed Sans", - "color": "#393939", + "color": "#555555", "size": 14 } } }, "diagnostic_path_header": { - "background": "#ffffff", + "background": "#e3e3e3", "text_scale_factor": 0.857, "filename": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 }, "path": { "family": "Zed Mono", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "left": 12 @@ -481,12 +481,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#d11c1c", + "color": "#cd1c1c", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#d11c1c", + "color": "#cd1c1c", "size": 14, "weight": "bold" } @@ -504,12 +504,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#b48d14", + "color": "#b68e14", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#b48d14", + "color": "#b68e14", "size": 14, "weight": "bold" } @@ -527,12 +527,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#1762db", + "color": "#185fd0", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#1762db", + "color": "#185fd0", "size": 14, "weight": "bold" } @@ -550,12 +550,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#1762db", + "color": "#185fd0", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#1762db", + "color": "#185fd0", "size": 14, "weight": "bold" } @@ -573,12 +573,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "weight": "bold" } @@ -596,12 +596,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "weight": "bold" } @@ -619,12 +619,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "weight": "bold" } @@ -642,12 +642,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "weight": "bold" } @@ -656,18 +656,17 @@ "syntax": {} }, "project_diagnostics": { - "background": "#f1f1f1", "tab_icon_spacing": 4, "tab_icon_width": 13, "tab_summary_spacing": 10, "empty_message": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 }, "status_bar_item": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "right": 10 @@ -686,7 +685,7 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 14 } }, @@ -698,7 +697,7 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 14 } }, @@ -709,7 +708,7 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 } }, @@ -721,7 +720,7 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 } } @@ -735,13 +734,13 @@ }, "channel_name": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "weight": "bold", "size": 14 }, "channel_name_hash": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "padding": { "right": 8 @@ -751,7 +750,7 @@ "header": { "name": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 }, "padding": { @@ -760,7 +759,7 @@ }, "hash": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "right": 8 @@ -771,13 +770,13 @@ "item": { "name": { "family": "Zed Sans", - "color": "#393939", + "color": "#555555", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "right": 8 @@ -788,13 +787,13 @@ "hovered_item": { "name": { "family": "Zed Sans", - "color": "#393939", + "color": "#555555", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "right": 8 @@ -806,13 +805,13 @@ "active_item": { "name": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "right": 8 @@ -823,13 +822,13 @@ "hovered_active_item": { "name": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14, "margin": { "right": 8 @@ -858,25 +857,25 @@ }, "sign_in_prompt": { "family": "Zed Sans", - "color": "#393939", + "color": "#555555", "underline": true, "size": 14 }, "hovered_sign_in_prompt": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "underline": true, "size": 14 }, "message": { "body": { "family": "Zed Sans", - "color": "#393939", + "color": "#555555", "size": 14 }, "timestamp": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "padding": { @@ -884,7 +883,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "weight": "bold", "size": 14, "margin": { @@ -895,12 +894,12 @@ "pending_message": { "body": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "timestamp": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "size": 14 }, "padding": { @@ -908,7 +907,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#555555", + "color": "#808080", "weight": "bold", "size": 14, "margin": { @@ -921,17 +920,17 @@ "corner_radius": 6, "text": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 16 }, "placeholder_text": { "family": "Zed Mono", - "color": "#717171", + "color": "#aaaaaa", "size": 14 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#185fd0", + "selection": "#307af3" }, "border": { "color": "#e3e3e3", @@ -961,7 +960,7 @@ }, "host_username": { "family": "Zed Mono", - "color": "#555555", + "color": "#808080", "size": 16, "padding": { "left": 8 @@ -976,7 +975,7 @@ }, "name": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "margin": { "right": 6 @@ -995,7 +994,7 @@ }, "name": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 16, "margin": { "right": 6 @@ -1014,7 +1013,7 @@ }, "name": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 16, "margin": { "right": 6 @@ -1023,7 +1022,7 @@ "padding": { "left": 8 }, - "background": "#ffffff", + "background": "#e3e3e3", "corner_radius": 6 }, "unshared_project": { @@ -1035,7 +1034,7 @@ }, "name": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "margin": { "right": 6 @@ -1054,7 +1053,7 @@ }, "name": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "margin": { "right": 6 @@ -1063,7 +1062,7 @@ "padding": { "left": 8 }, - "background": "#ffffff", + "background": "#e3e3e3", "corner_radius": 6 } }, @@ -1073,7 +1072,7 @@ "tab_icon_width": 14, "active_hovered_option_button": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "background": "#e3e3e3", "corner_radius": 6, @@ -1094,7 +1093,7 @@ }, "active_option_button": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "background": "#e3e3e3", "corner_radius": 6, @@ -1120,16 +1119,16 @@ "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#717171", + "color": "#aaaaaa", "size": 16 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#185fd0", + "selection": "#307af3" }, "text": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 16 }, "border": { @@ -1148,7 +1147,7 @@ }, "hovered_option_button": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "background": "#e3e3e3", "corner_radius": 6, @@ -1174,20 +1173,20 @@ "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#717171", + "color": "#aaaaaa", "size": 16 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#185fd0", + "selection": "#307af3" }, "text": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 16 }, "border": { - "color": "#fbbdbd", + "color": "#e72727", "width": 1 }, "margin": { @@ -1202,13 +1201,13 @@ }, "match_index": { "family": "Zed Mono", - "color": "#555555", + "color": "#808080", "size": 16, "padding": 6 }, "option_button": { "family": "Zed Mono", - "color": "#393939", + "color": "#555555", "size": 16, "background": "#f1f1f1", "corner_radius": 6, @@ -1235,13 +1234,13 @@ }, "results_status": { "family": "Zed Mono", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 18 } }, "breadcrumbs": { "family": "Zed Sans", - "color": "#1c1c1c", + "color": "#2b2b2b", "size": 14, "padding": { "left": 6 diff --git a/styles/styleTree/app.ts b/styles/styleTree/app.ts index d26ada4fc9bc6ebab7c63255245ff003dfae0640..10439b5a0056e8f8ac6ec29e10b4094f1aae26a8 100644 --- a/styles/styleTree/app.ts +++ b/styles/styleTree/app.ts @@ -1,6 +1,6 @@ import Theme from "../themes/theme"; import chatPanel from "./chatPanel"; -import { backgroundColor, borderColor, text } from "./components"; +import { text } from "./components"; import contactsPanel from "./contactsPanel"; import editor from "./editor"; import projectPanel from "./projectPanel"; @@ -18,7 +18,6 @@ export default function app(theme: Theme): Object { workspace: workspace(theme), editor: editor(theme), projectDiagnostics: { - background: backgroundColor(theme, 300), tabIconSpacing: 4, tabIconWidth: 13, tabSummarySpacing: 10, diff --git a/styles/styleTree/editor.ts b/styles/styleTree/editor.ts index eb379ce520bfb5b53b85e5d8e28be639d598a6f9..e760ecec6a57997c48238e0fdeb16d457c2c3e69 100644 --- a/styles/styleTree/editor.ts +++ b/styles/styleTree/editor.ts @@ -38,7 +38,8 @@ export default function editor(theme: Theme) { } return { - textColor: theme.textColor.secondary.value, + // textColor: theme.syntax.primary.color, + textColor: theme.syntax.primary.color.value, background: backgroundColor(theme, 500), activeLineBackground: theme.editor.line.active.value, codeActionsIndicator: iconColor(theme, "secondary"), diff --git a/styles/themes/dark.ts b/styles/themes/dark.ts index f8e0c0fcb6b00e157bf577fca2024ca286561c5d..fa05576cd2c3dd191385965c8d5ec9a1ceafc0b7 100644 --- a/styles/themes/dark.ts +++ b/styles/themes/dark.ts @@ -16,9 +16,9 @@ const backgroundColor = { }, 500: { base: colors.neutral[900], - hovered: colors.neutral[900], - active: colors.neutral[900], - focused: colors.neutral[900], + hovered: colors.neutral[850], + active: colors.neutral[800], + focused: colors.neutral[850], }, ok: { base: colors.green[600], @@ -59,7 +59,7 @@ const borderColor = { }; const textColor = { - primary: colors.neutral[150], + primary: colors.neutral[100], secondary: colors.neutral[350], muted: colors.neutral[550], placeholder: colors.neutral[750], @@ -90,49 +90,49 @@ const player = { 1: { baseColor: colors.blue[600], cursorColor: colors.blue[600], - selectionColor: colors.blue[600], + selectionColor: colors.blue[100], borderColor: colors.blue[600], }, 2: { + baseColor: colors.lime[500], + cursorColor: colors.lime[500], + selectionColor: colors.lime[100], + borderColor: colors.lime[500], + }, + 3: { baseColor: colors.indigo[500], cursorColor: colors.indigo[500], - selectionColor: colors.indigo[500], + selectionColor: colors.indigo[100], borderColor: colors.indigo[500], }, - 3: { - baseColor: colors.green[500], - cursorColor: colors.green[500], - selectionColor: colors.green[500], - borderColor: colors.green[500], - }, 4: { baseColor: colors.orange[500], cursorColor: colors.orange[500], - selectionColor: colors.orange[500], + selectionColor: colors.orange[100], borderColor: colors.orange[500], }, 5: { baseColor: colors.purple[500], cursorColor: colors.purple[500], - selectionColor: colors.purple[500], + selectionColor: colors.purple[100], borderColor: colors.purple[500], }, 6: { baseColor: colors.teal[400], cursorColor: colors.teal[400], - selectionColor: colors.teal[400], + selectionColor: colors.teal[100], borderColor: colors.teal[400], }, 7: { baseColor: colors.pink[400], cursorColor: colors.pink[400], - selectionColor: colors.pink[400], + selectionColor: colors.pink[100], borderColor: colors.pink[400], }, 8: { baseColor: colors.yellow[400], cursorColor: colors.yellow[400], - selectionColor: colors.yellow[400], + selectionColor: colors.yellow[100], borderColor: colors.yellow[400], }, }; @@ -143,24 +143,24 @@ const editor = { indent_guide: borderColor.muted, indent_guide_active: borderColor.secondary, line: { - active: colors.neutral[0], - highlighted: colors.neutral[0], + active: backgroundColor[500].active, + highlighted: backgroundColor[500].hovered, inserted: backgroundColor.ok.active, deleted: backgroundColor.error.active, modified: backgroundColor.info.active, }, highlight: { selection: player[1].selectionColor, - occurrence: backgroundColor[500].active, - activeOccurrence: colors.neutral[0], - matchingBracket: colors.neutral[0], - match: colors.neutral[0], - activeMatch: colors.neutral[0], - related: colors.neutral[0], + occurrence: colors.indigo[500], // TODO: Why does indigo[500], indigo[100], and indigo[900] all give me the same color? @kethku + activeOccurrence: colors.indigo[400], // TODO: We don't seem to be using this right now in rust + matchingBracket: backgroundColor[500].active, + match: colors.lime[500], + activeMatch: colors.lime[400], + related: backgroundColor[500].focused, }, gutter: { - primary: colors.neutral[0], - active: colors.neutral[0], + primary: textColor.muted, + active: textColor.active, }, }; diff --git a/styles/themes/light.ts b/styles/themes/light.ts index c543c78a302e3579970998ad1fb23847b1e1f694..ee94e18b19869727eae1c973d908ed3202282c77 100644 --- a/styles/themes/light.ts +++ b/styles/themes/light.ts @@ -61,16 +61,16 @@ const borderColor = { }; const textColor = { - primary: colors.neutral[800], - secondary: colors.neutral[700], - muted: colors.neutral[600], - placeholder: colors.neutral[500], + primary: colors.neutral[750], + secondary: colors.neutral[600], + muted: colors.neutral[450], + placeholder: colors.neutral[300], active: colors.neutral[900], - feature: colors.blue[600], - ok: colors.green[800], - error: colors.red[800], - warning: colors.yellow[800], - info: colors.blue[800], + feature: colors.blue[500], + ok: colors.green[500], + error: colors.red[500], + warning: colors.yellow[500], + info: colors.blue[500], }; const iconColor = { @@ -94,17 +94,17 @@ const player = { borderColor: colors.blue[500], }, 2: { + baseColor: colors.lime[500], + cursorColor: colors.lime[500], + selectionColor: colors.lime[100], + borderColor: colors.lime[500], + }, + 3: { baseColor: colors.indigo[500], cursorColor: colors.indigo[500], selectionColor: colors.indigo[100], borderColor: colors.indigo[500], }, - 3: { - baseColor: colors.green[500], - cursorColor: colors.green[500], - selectionColor: colors.green[100], - borderColor: colors.green[500], - }, 4: { baseColor: colors.orange[500], cursorColor: colors.orange[500], @@ -143,8 +143,8 @@ const editor = { indent_guide: borderColor.muted, indent_guide_active: borderColor.secondary, line: { - active: colors.neutral[0], - highlighted: colors.neutral[0], + active: backgroundColor[500].active, + highlighted: backgroundColor[500].active, inserted: backgroundColor.ok.active, deleted: backgroundColor.error.active, modified: backgroundColor.info.active, @@ -159,8 +159,8 @@ const editor = { related: colors.neutral[0], }, gutter: { - primary: colors.neutral[0], - active: colors.neutral[0], + primary: textColor.muted, + active: textColor.active, }, }; diff --git a/styles/utils/color.ts b/styles/utils/color.ts index b59f4fa69479a1f886229afe1953284f6626f9d8..1042899c737681ddc8e074b19723ed5ba3ad0117 100644 --- a/styles/utils/color.ts +++ b/styles/utils/color.ts @@ -22,8 +22,8 @@ export function colorRamp( .scale([startColor, color, endColor]) .domain([0, 0.5, 1]) .mode("hsl") - .gamma(1) - .correctLightness(true) + .gamma(0.2) + // .correctLightness(true) .padding([0, 0.15]); } From 631d8d034440c3e59410a1e59cf3bf51e0d12a86 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sun, 3 Apr 2022 01:04:34 -0400 Subject: [PATCH 55/71] Refined dark theme styles --- crates/zed/assets/themes/dark.json | 166 ++++++++++++++-------------- crates/zed/assets/themes/light.json | 14 +-- styles/buildThemes.ts | 3 + styles/styleTree/selectorModal.ts | 8 +- styles/styleTree/workspace.ts | 4 +- styles/themes/dark.ts | 38 +++---- styles/tokens.ts | 2 +- styles/utils/color.ts | 2 +- 8 files changed, 120 insertions(+), 117 deletions(-) diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json index 0abf380cc18fc7ecb252d8d062b2ff53aeb4ad7c..25568bf17c9dafaf92beb11be5e4514377f57e76 100644 --- a/crates/zed/assets/themes/dark.json +++ b/crates/zed/assets/themes/dark.json @@ -1,6 +1,6 @@ { "selector": { - "background": "#000000", + "background": "#1c1c1c", "corner_radius": 6, "padding": 8, "item": { @@ -18,7 +18,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#72ad19", + "color": "#1684b6", "weight": "bold", "size": 14 } @@ -33,19 +33,19 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#72ad19", + "color": "#1684b6", "weight": "bold", "size": 14 }, - "background": "#1c1c1c" + "background": "#2b2b2b" }, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "empty": { @@ -62,7 +62,7 @@ } }, "input_editor": { - "background": "#1c1c1c", + "background": "#000000", "corner_radius": 6, "placeholder_text": { "family": "Zed Sans", @@ -75,11 +75,11 @@ }, "text": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 16 }, "border": { - "color": "#0e0e0e", + "color": "#151515", "width": 1 }, "padding": { @@ -109,8 +109,8 @@ "tab": { "height": 32, "background": "#1c1c1c", - "icon_close": "#717171", - "icon_close_active": "#f1f1f1", + "icon_close": "#555555", + "icon_close_active": "#ffffff", "icon_conflict": "#c38214", "icon_dirty": "#195cc8", "icon_width": 8, @@ -121,7 +121,7 @@ "size": 14 }, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "left": true, "bottom": true, @@ -135,8 +135,8 @@ "active_tab": { "height": 32, "background": "#000000", - "icon_close": "#717171", - "icon_close_active": "#f1f1f1", + "icon_close": "#555555", + "icon_close_active": "#ffffff", "icon_conflict": "#c38214", "icon_dirty": "#195cc8", "icon_width": 8, @@ -147,7 +147,7 @@ "size": 14 }, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "left": true, "bottom": false, @@ -162,22 +162,22 @@ "width": 30, "background": "#1c1c1c", "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "right": true }, "item": { "height": 32, - "icon_color": "#717171", + "icon_color": "#9c9c9c", "icon_size": 18 }, "active_item": { "height": 32, - "icon_color": "#f1f1f1", + "icon_color": "#ffffff", "icon_size": 18 }, "resize_handle": { - "background": "#0e0e0e", + "background": "#070707", "padding": { "left": 1 } @@ -187,29 +187,29 @@ "width": 30, "background": "#1c1c1c", "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "left": true }, "item": { "height": 32, - "icon_color": "#717171", + "icon_color": "#9c9c9c", "icon_size": 18 }, "active_item": { "height": 32, - "icon_color": "#f1f1f1", + "icon_color": "#ffffff", "icon_size": 18 }, "resize_handle": { - "background": "#0e0e0e", + "background": "#070707", "padding": { "left": 1 } } }, "pane_divider": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "status_bar": { @@ -238,12 +238,12 @@ "titlebar": { "avatar_width": 18, "height": 32, - "background": "#393939", - "share_icon_color": "#717171", - "share_icon_active_color": "#f1f1f1", + "background": "#2b2b2b", + "share_icon_color": "#9c9c9c", + "share_icon_active_color": "#ffffff", "title": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 }, "avatar": { @@ -258,7 +258,7 @@ "width": 12 }, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "bottom": true }, @@ -281,7 +281,7 @@ } }, "offline_icon": { - "color": "#717171", + "color": "#9c9c9c", "width": 16, "padding": { "right": 4 @@ -297,7 +297,7 @@ "height": 34, "background": "#000000", "border": { - "color": "#2b2b2b", + "color": "#070707", "width": 1, "bottom": true }, @@ -325,10 +325,10 @@ } }, "editor": { - "text_color": "#e3e3e3", + "text_color": "#f1f1f1", "background": "#000000", - "active_line_background": "#1c1c1c", - "code_actions_indicator": "#717171", + "active_line_background": "#0e0e0e", + "code_actions_indicator": "#9c9c9c", "diff_background_deleted": "#d71c1c", "diff_background_inserted": "#1ea34f", "document_highlight_read_background": "#1e22db", @@ -336,7 +336,7 @@ "error_color": "#d71c1c", "gutter_background": "#000000", "gutter_padding_factor": 2.5, - "highlighted_line_background": "#0e0e0e", + "highlighted_line_background": "#070707", "line_number": "#636363", "line_number_active": "#ffffff", "rename_fade": 0.6, @@ -380,7 +380,7 @@ "corner_radius": 6, "padding": 6, "border": { - "color": "#393939", + "color": "#151515", "width": 1 }, "item": { @@ -400,7 +400,7 @@ "right": 6, "top": 2 }, - "background": "#0e0e0e" + "background": "#070707" }, "margin": { "left": -14 @@ -417,7 +417,7 @@ "right": 6, "top": 2 }, - "background": "#1c1c1c" + "background": "#0e0e0e" } }, "diagnostic_header": { @@ -425,7 +425,7 @@ "icon_width_factor": 1.5, "text_scale_factor": 0.857, "border": { - "color": "#393939", + "color": "#151515", "width": 1, "bottom": true, "top": true @@ -441,7 +441,7 @@ "message": { "highlight_text": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14, "weight": "bold" }, @@ -453,11 +453,11 @@ } }, "diagnostic_path_header": { - "background": "#1c1c1c", + "background": "#0e0e0e", "text_scale_factor": 0.857, "filename": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 }, "path": { @@ -473,7 +473,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -496,7 +496,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -519,7 +519,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -542,7 +542,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -565,7 +565,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -588,7 +588,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -611,7 +611,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -634,7 +634,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1, "top": true } @@ -661,7 +661,7 @@ "tab_summary_spacing": 10, "empty_message": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 }, "status_bar_item": { @@ -691,7 +691,7 @@ }, "hovered_entry": { "height": 22, - "background": "#1c1c1c", + "background": "#232323", "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, @@ -708,19 +708,19 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 } }, "hovered_selected_entry": { "height": 22, - "background": "#1c1c1c", + "background": "#232323", "icon_color": "#555555", "icon_size": 8, "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 } } @@ -734,7 +734,7 @@ }, "channel_name": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "weight": "bold", "size": 14 }, @@ -750,7 +750,7 @@ "header": { "name": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 }, "padding": { @@ -799,13 +799,13 @@ "right": 8 } }, - "background": "#1c1c1c", + "background": "#232323", "corner_radius": 6 }, "active_item": { "name": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 }, "padding": 4, @@ -822,7 +822,7 @@ "hovered_active_item": { "name": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14 }, "padding": 4, @@ -834,7 +834,7 @@ "right": 8 } }, - "background": "#1c1c1c", + "background": "#232323", "corner_radius": 6 }, "menu": { @@ -842,7 +842,7 @@ "corner_radius": 6, "padding": 4, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "shadow": { @@ -863,7 +863,7 @@ }, "hovered_sign_in_prompt": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "underline": true, "size": 14 }, @@ -883,7 +883,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "weight": "bold", "size": 14, "margin": { @@ -920,7 +920,7 @@ "corner_radius": 6, "text": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 16 }, "placeholder_text": { @@ -933,7 +933,7 @@ "selection": "#307af3" }, "border": { - "color": "#393939", + "color": "#151515", "width": 1 }, "padding": { @@ -952,7 +952,7 @@ "right": 12 }, "host_row_height": 28, - "tree_branch_color": "#2b2b2b", + "tree_branch_color": "#232323", "tree_branch_width": 1, "host_avatar": { "corner_radius": 10, @@ -994,7 +994,7 @@ }, "name": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 16, "margin": { "right": 6 @@ -1013,7 +1013,7 @@ }, "name": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 16, "margin": { "right": 6 @@ -1022,7 +1022,7 @@ "padding": { "left": 8 }, - "background": "#1c1c1c", + "background": "#0e0e0e", "corner_radius": 6 }, "unshared_project": { @@ -1062,7 +1062,7 @@ "padding": { "left": 8 }, - "background": "#1c1c1c", + "background": "#0e0e0e", "corner_radius": 6 } }, @@ -1074,10 +1074,10 @@ "family": "Zed Mono", "color": "#9c9c9c", "size": 16, - "background": "#393939", + "background": "#2b2b2b", "corner_radius": 6, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "margin": { @@ -1095,10 +1095,10 @@ "family": "Zed Mono", "color": "#9c9c9c", "size": 16, - "background": "#393939", + "background": "#2b2b2b", "corner_radius": 6, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "margin": { @@ -1128,11 +1128,11 @@ }, "text": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 16 }, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "margin": { @@ -1149,10 +1149,10 @@ "family": "Zed Mono", "color": "#9c9c9c", "size": 16, - "background": "#393939", + "background": "#2b2b2b", "corner_radius": 6, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "margin": { @@ -1182,7 +1182,7 @@ }, "text": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 16 }, "border": { @@ -1212,7 +1212,7 @@ "background": "#1c1c1c", "corner_radius": 6, "border": { - "color": "#0e0e0e", + "color": "#070707", "width": 1 }, "margin": { @@ -1234,13 +1234,13 @@ }, "results_status": { "family": "Zed Mono", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 18 } }, "breadcrumbs": { "family": "Zed Sans", - "color": "#e3e3e3", + "color": "#f1f1f1", "size": 14, "padding": { "left": 6 diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json index 1024764540e55f20505b6864ca6bdddd95881edd..76fe01501d181cdcbdea018c21357a2c65a728ab 100644 --- a/crates/zed/assets/themes/light.json +++ b/crates/zed/assets/themes/light.json @@ -1,6 +1,6 @@ { "selector": { - "background": "#ffffff", + "background": "#f1f1f1", "corner_radius": 6, "padding": 8, "item": { @@ -42,7 +42,7 @@ "weight": "bold", "size": 14 }, - "background": "#e3e3e3" + "background": "#d5d5d5" }, "border": { "color": "#c6c6c6", @@ -62,7 +62,7 @@ } }, "input_editor": { - "background": "#f1f1f1", + "background": "#ffffff", "corner_radius": 6, "placeholder_text": { "family": "Zed Sans", @@ -79,7 +79,7 @@ "size": 16 }, "border": { - "color": "#c6c6c6", + "color": "#e3e3e3", "width": 1 }, "padding": { @@ -109,7 +109,7 @@ "tab": { "height": 32, "background": "#f1f1f1", - "icon_close": "#717171", + "icon_close": "#555555", "icon_close_active": "#000000", "icon_conflict": "#bc9212", "icon_dirty": "#195cc8", @@ -135,7 +135,7 @@ "active_tab": { "height": 32, "background": "#ffffff", - "icon_close": "#717171", + "icon_close": "#555555", "icon_close_active": "#000000", "icon_conflict": "#bc9212", "icon_dirty": "#195cc8", @@ -297,7 +297,7 @@ "height": 34, "background": "#ffffff", "border": { - "color": "#f1f1f1", + "color": "#c6c6c6", "width": 1, "bottom": true }, diff --git a/styles/buildThemes.ts b/styles/buildThemes.ts index 9128eff45d46a0a11b9a8ddb04013b3b59faf87a..a1a07ecb2d7fa69cdb6d83c8024ec173b1e27127 100644 --- a/styles/buildThemes.ts +++ b/styles/buildThemes.ts @@ -3,6 +3,7 @@ import * as path from "path"; import app from "./styleTree/app"; import dark from "./themes/dark"; import light from "./themes/light"; +import { colors } from "./tokens"; import decamelizeTree from "./utils/decamelizeTree"; const themes = [dark, light]; @@ -14,4 +15,6 @@ for (let theme of themes) { ); fs.writeFileSync(outPath, styleTreeJSON); console.log(`Generated ${outPath}`); + + console.log(JSON.stringify(colors.indigo, null, 2)); } diff --git a/styles/styleTree/selectorModal.ts b/styles/styleTree/selectorModal.ts index fdebe712fa0f1650a3fe4411b4579aa30bb44e2e..47355cff116ff985ac62fd8d1665056422cfcd3c 100644 --- a/styles/styleTree/selectorModal.ts +++ b/styles/styleTree/selectorModal.ts @@ -16,12 +16,12 @@ export default function selectorModal(theme: Theme): Object { const activeItem = { ...item, - background: backgroundColor(theme, 500, "active"), + background: backgroundColor(theme, 300, "active"), text: text(theme, "sans", "primary"), }; return { - background: backgroundColor(theme, 500), + background: backgroundColor(theme, 300), cornerRadius: 6, padding: 8, item, @@ -37,12 +37,12 @@ export default function selectorModal(theme: Theme): Object { }, }, inputEditor: { - background: backgroundColor(theme, 300), + background: backgroundColor(theme, 500), corner_radius: 6, placeholderText: text(theme, "sans", "placeholder"), selection: player(theme, 1).selection, text: text(theme, "mono", "primary"), - border: border(theme, "primary"), + border: border(theme, "secondary"), padding: { bottom: 7, left: 16, diff --git a/styles/styleTree/workspace.ts b/styles/styleTree/workspace.ts index a734528d744c21896cb73c090b482615bb3544b3..4349ba0ab6861080a146e6d25b8be9d6af801d71 100644 --- a/styles/styleTree/workspace.ts +++ b/styles/styleTree/workspace.ts @@ -14,7 +14,7 @@ export default function workspace(theme: Theme) { const tab = { height: 32, background: backgroundColor(theme, 300), - iconClose: iconColor(theme, "secondary"), + iconClose: iconColor(theme, "muted"), iconCloseActive: iconColor(theme, "active"), iconConflict: iconColor(theme, "warning"), iconDirty: iconColor(theme, "info"), @@ -135,7 +135,7 @@ export default function workspace(theme: Theme) { toolbar: { height: 34, background: backgroundColor(theme, 500), - border: border(theme, "muted", { bottom: true }), + border: border(theme, "primary", { bottom: true }), itemSpacing: 8, padding: { left: 16, right: 8, top: 4, bottom: 4 }, }, diff --git a/styles/themes/dark.ts b/styles/themes/dark.ts index fa05576cd2c3dd191385965c8d5ec9a1ceafc0b7..3cb3b653b4a6407d197049b0baf1ff72997b02c7 100644 --- a/styles/themes/dark.ts +++ b/styles/themes/dark.ts @@ -3,22 +3,22 @@ import Theme, { Syntax } from "./theme"; const backgroundColor = { 100: { - base: colors.neutral[700], - hovered: colors.neutral[700], + base: colors.neutral[750], + hovered: colors.neutral[725], active: colors.neutral[700], - focused: colors.neutral[700], + focused: colors.neutral[675], }, 300: { base: colors.neutral[800], - hovered: colors.neutral[800], - active: colors.neutral[800], - focused: colors.neutral[800], + hovered: colors.neutral[775], + active: colors.neutral[750], + focused: colors.neutral[725], }, 500: { base: colors.neutral[900], - hovered: colors.neutral[850], - active: colors.neutral[800], - focused: colors.neutral[850], + hovered: colors.neutral[875], + active: colors.neutral[850], + focused: colors.neutral[825], }, ok: { base: colors.green[600], @@ -47,11 +47,11 @@ const backgroundColor = { }; const borderColor = { - primary: colors.neutral[850], - secondary: colors.neutral[700], - muted: colors.neutral[750], - focused: colors.neutral[100], - active: colors.neutral[500], + primary: colors.neutral[875], + secondary: colors.neutral[825], + muted: colors.neutral[775], + focused: colors.neutral[500], + active: colors.neutral[900], ok: colors.green[500], error: colors.red[500], warning: colors.amber[500], @@ -59,13 +59,13 @@ const borderColor = { }; const textColor = { - primary: colors.neutral[100], + primary: colors.neutral[50], secondary: colors.neutral[350], muted: colors.neutral[550], placeholder: colors.neutral[750], active: colors.neutral[0], //TODO: (design) define feature and it's correct value - feature: colors.lime[400], + feature: colors.sky[500], ok: colors.green[600], error: colors.red[400], warning: colors.amber[300], @@ -73,11 +73,11 @@ const textColor = { }; const iconColor = { - primary: colors.neutral[300], - secondary: colors.neutral[500], + primary: colors.neutral[200], + secondary: colors.neutral[350], muted: colors.neutral[600], placeholder: colors.neutral[700], - active: colors.neutral[50], + active: colors.neutral[0], //TODO: (design) define feature and it's correct value feature: colors.sky[500], ok: colors.green[600], diff --git a/styles/tokens.ts b/styles/tokens.ts index 63c19a9d6439a77db5d1d9cd7924966e117a931a..aa865ae6943603cda17dbac9f3a4a786cdc45367 100644 --- a/styles/tokens.ts +++ b/styles/tokens.ts @@ -72,7 +72,7 @@ export interface ColorToken { step?: number, } export const colors = { - neutral: colorRamp(["white", "black"], { steps: 19, increment: 50 }), + neutral: colorRamp(["white", "black"], { steps: 37, increment: 25 }), // (900/25) + 1 rose: colorRamp("#F43F5EFF"), red: colorRamp("#EF4444FF"), orange: colorRamp("#F97316FF"), diff --git a/styles/utils/color.ts b/styles/utils/color.ts index 1042899c737681ddc8e074b19723ed5ba3ad0117..c7506f696d4cebd54ebc2045be2b7dc9d14f2c7b 100644 --- a/styles/utils/color.ts +++ b/styles/utils/color.ts @@ -8,7 +8,7 @@ export type ColorRamp = { export function colorRamp( color: Color | [Color, Color], - options?: { steps?: number; increment?: number } + options?: { steps?: number; increment?: number; } ): ColorRamp { let scale: Scale; if (Array.isArray(color)) { From e0e9a145905299a9e0819b46c7e942596b9541c2 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sun, 3 Apr 2022 10:50:41 -0400 Subject: [PATCH 56/71] Remove leftover console.log --- styles/buildThemes.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/styles/buildThemes.ts b/styles/buildThemes.ts index a1a07ecb2d7fa69cdb6d83c8024ec173b1e27127..9128eff45d46a0a11b9a8ddb04013b3b59faf87a 100644 --- a/styles/buildThemes.ts +++ b/styles/buildThemes.ts @@ -3,7 +3,6 @@ import * as path from "path"; import app from "./styleTree/app"; import dark from "./themes/dark"; import light from "./themes/light"; -import { colors } from "./tokens"; import decamelizeTree from "./utils/decamelizeTree"; const themes = [dark, light]; @@ -15,6 +14,4 @@ for (let theme of themes) { ); fs.writeFileSync(outPath, styleTreeJSON); console.log(`Generated ${outPath}`); - - console.log(JSON.stringify(colors.indigo, null, 2)); } From 37441bf3420ddc24fa4b812abd0402d62fbbe564 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sun, 3 Apr 2022 13:30:59 -0400 Subject: [PATCH 57/71] Add basic support for exporting tokens to Figma Tokens. (#724) * WIP on figma token export * WIP Working export * Tidy up the figma tokens script * Correctly format theme json structure for Figma Tokens * Finish up themeTokens imports --- styles/buildFigmaTokens.ts | 99 ++++ styles/figma/core.json | 1155 ++++++++++++++++++++++++++++++++++++ styles/figma/dark.json | 637 ++++++++++++++++++++ styles/figma/light.json | 637 ++++++++++++++++++++ 4 files changed, 2528 insertions(+) create mode 100644 styles/buildFigmaTokens.ts create mode 100644 styles/figma/core.json create mode 100644 styles/figma/dark.json create mode 100644 styles/figma/light.json diff --git a/styles/buildFigmaTokens.ts b/styles/buildFigmaTokens.ts new file mode 100644 index 0000000000000000000000000000000000000000..6b3285e58e24c7f0fefa67a40c512202fdbe4c5b --- /dev/null +++ b/styles/buildFigmaTokens.ts @@ -0,0 +1,99 @@ +import * as fs from "fs"; +import * as path from "path"; +import dark from "./themes/dark"; +import light from "./themes/light"; +import Theme from "./themes/theme"; +import { colors, fontFamilies, fontSizes, fontWeights } from "./tokens"; + +// Organize theme tokens +function themeTokens(theme: Theme): Object { + return { + meta: { + themeName: theme.name, + }, + text: theme.textColor, + icon: theme.iconColor, + background: theme.backgroundColor, + border: theme.borderColor, + editor: theme.editor, + syntax: { + primary: { + value: theme.syntax.primary.color.value, + type: "color", + }, + comment: { + value: theme.syntax.comment.color.value, + type: "color", + }, + keyword: { + value: theme.syntax.keyword.color.value, + type: "color", + }, + function: { + value: theme.syntax.function.color.value, + type: "color", + }, + type: { + value: theme.syntax.type.color.value, + type: "color", + }, + variant: { + value: theme.syntax.variant.color.value, + type: "color", + }, + property: { + value: theme.syntax.property.color.value, + type: "color", + }, + enum: { + value: theme.syntax.enum.color.value, + type: "color", + }, + operator: { + value: theme.syntax.operator.color.value, + type: "color", + }, + string: { + value: theme.syntax.string.color.value, + type: "color", + }, + number: { + value: theme.syntax.number.color.value, + type: "color", + }, + boolean: { + value: theme.syntax.boolean.color.value, + type: "color", + }, + }, + player: theme.player, + shadowAlpha: theme.shadowAlpha, + }; +} + +let themes = [themeTokens(dark), themeTokens(light)]; + +// Create {theme}.json +const themePath = path.resolve(`${__dirname}/figma`); +themes.forEach((theme) => { + const tokenJSON = JSON.stringify(theme, null, 2); + //@ts-ignore //TODO: IDK what the hell TS wants me to do here + fs.writeFileSync(`${themePath}/${theme.meta.themeName}.json`, tokenJSON); +}); + +// Organize core tokens +const coreTokens = { + color: { + ...colors, + }, + text: { + family: fontFamilies, + weight: fontWeights, + }, + size: fontSizes, +}; + +// Create core.json +const corePath = path.resolve(`${__dirname}/figma/core.json`); +const coreTokenJSON = JSON.stringify(coreTokens, null, 2); +fs.writeFileSync(corePath, coreTokenJSON); diff --git a/styles/figma/core.json b/styles/figma/core.json new file mode 100644 index 0000000000000000000000000000000000000000..77dabe6b4e4462acc636427c388d161bb3c54a33 --- /dev/null +++ b/styles/figma/core.json @@ -0,0 +1,1155 @@ +{ + "color": { + "neutral": { + "0": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "25": { + "value": "#f8f8f8", + "step": 25, + "type": "color" + }, + "50": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "75": { + "value": "#eaeaea", + "step": 75, + "type": "color" + }, + "100": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "125": { + "value": "#dcdcdc", + "step": 125, + "type": "color" + }, + "150": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + }, + "175": { + "value": "#cdcdcd", + "step": 175, + "type": "color" + }, + "200": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "225": { + "value": "#bfbfbf", + "step": 225, + "type": "color" + }, + "250": { + "value": "#b8b8b8", + "step": 250, + "type": "color" + }, + "275": { + "value": "#b1b1b1", + "step": 275, + "type": "color" + }, + "300": { + "value": "#aaaaaa", + "step": 300, + "type": "color" + }, + "325": { + "value": "#a3a3a3", + "step": 325, + "type": "color" + }, + "350": { + "value": "#9c9c9c", + "step": 350, + "type": "color" + }, + "375": { + "value": "#959595", + "step": 375, + "type": "color" + }, + "400": { + "value": "#8e8e8e", + "step": 400, + "type": "color" + }, + "425": { + "value": "#878787", + "step": 425, + "type": "color" + }, + "450": { + "value": "#808080", + "step": 450, + "type": "color" + }, + "475": { + "value": "#787878", + "step": 475, + "type": "color" + }, + "500": { + "value": "#717171", + "step": 500, + "type": "color" + }, + "525": { + "value": "#6a6a6a", + "step": 525, + "type": "color" + }, + "550": { + "value": "#636363", + "step": 550, + "type": "color" + }, + "575": { + "value": "#5c5c5c", + "step": 575, + "type": "color" + }, + "600": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "625": { + "value": "#4e4e4e", + "step": 625, + "type": "color" + }, + "650": { + "value": "#474747", + "step": 650, + "type": "color" + }, + "675": { + "value": "#404040", + "step": 675, + "type": "color" + }, + "700": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "725": { + "value": "#323232", + "step": 725, + "type": "color" + }, + "750": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "775": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "800": { + "value": "#1c1c1c", + "step": 800, + "type": "color" + }, + "825": { + "value": "#151515", + "step": 825, + "type": "color" + }, + "850": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "875": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "900": { + "value": "#000000", + "step": 900, + "type": "color" + } + }, + "rose": { + "0": { + "value": "#feecef", + "step": 0, + "type": "color" + }, + "100": { + "value": "#f13455", + "step": 100, + "type": "color" + }, + "200": { + "value": "#eb2245", + "step": 200, + "type": "color" + }, + "300": { + "value": "#e7183b", + "step": 300, + "type": "color" + }, + "400": { + "value": "#da193a", + "step": 400, + "type": "color" + }, + "500": { + "value": "#d01939", + "step": 500, + "type": "color" + }, + "600": { + "value": "#c81a37", + "step": 600, + "type": "color" + }, + "700": { + "value": "#c01a36", + "step": 700, + "type": "color" + }, + "800": { + "value": "#ba1a36", + "step": 800, + "type": "color" + }, + "900": { + "value": "#b41a35", + "step": 900, + "type": "color" + } + }, + "red": { + "0": { + "value": "#feecec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#ec3939", + "step": 100, + "type": "color" + }, + "200": { + "value": "#e72727", + "step": 200, + "type": "color" + }, + "300": { + "value": "#e31c1c", + "step": 300, + "type": "color" + }, + "400": { + "value": "#d71c1c", + "step": 400, + "type": "color" + }, + "500": { + "value": "#cd1c1c", + "step": 500, + "type": "color" + }, + "600": { + "value": "#c51c1c", + "step": 600, + "type": "color" + }, + "700": { + "value": "#be1c1c", + "step": 700, + "type": "color" + }, + "800": { + "value": "#b81c1c", + "step": 800, + "type": "color" + }, + "900": { + "value": "#b21c1c", + "step": 900, + "type": "color" + } + }, + "orange": { + "0": { + "value": "#fef3ec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#f66e0f", + "step": 100, + "type": "color" + }, + "200": { + "value": "#e5660f", + "step": 200, + "type": "color" + }, + "300": { + "value": "#d66211", + "step": 300, + "type": "color" + }, + "400": { + "value": "#cc5f13", + "step": 400, + "type": "color" + }, + "500": { + "value": "#c45c14", + "step": 500, + "type": "color" + }, + "600": { + "value": "#bc5a15", + "step": 600, + "type": "color" + }, + "700": { + "value": "#b65816", + "step": 700, + "type": "color" + }, + "800": { + "value": "#b15617", + "step": 800, + "type": "color" + }, + "900": { + "value": "#ac5517", + "step": 900, + "type": "color" + } + }, + "amber": { + "0": { + "value": "#fef7ec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#eb980d", + "step": 100, + "type": "color" + }, + "200": { + "value": "#d88e10", + "step": 200, + "type": "color" + }, + "300": { + "value": "#cc8712", + "step": 300, + "type": "color" + }, + "400": { + "value": "#c38214", + "step": 400, + "type": "color" + }, + "500": { + "value": "#bb7e15", + "step": 500, + "type": "color" + }, + "600": { + "value": "#b57a16", + "step": 600, + "type": "color" + }, + "700": { + "value": "#b07717", + "step": 700, + "type": "color" + }, + "800": { + "value": "#ab7517", + "step": 800, + "type": "color" + }, + "900": { + "value": "#a77218", + "step": 900, + "type": "color" + } + }, + "yellow": { + "0": { + "value": "#fef9ec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#e0ac0b", + "step": 100, + "type": "color" + }, + "200": { + "value": "#cfa00f", + "step": 200, + "type": "color" + }, + "300": { + "value": "#c49811", + "step": 300, + "type": "color" + }, + "400": { + "value": "#bc9212", + "step": 400, + "type": "color" + }, + "500": { + "value": "#b68e14", + "step": 500, + "type": "color" + }, + "600": { + "value": "#b08a15", + "step": 600, + "type": "color" + }, + "700": { + "value": "#ac8615", + "step": 700, + "type": "color" + }, + "800": { + "value": "#a88316", + "step": 800, + "type": "color" + }, + "900": { + "value": "#a48117", + "step": 900, + "type": "color" + } + }, + "lime": { + "0": { + "value": "#f7feec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#80c517", + "step": 100, + "type": "color" + }, + "200": { + "value": "#7aba18", + "step": 200, + "type": "color" + }, + "300": { + "value": "#76b318", + "step": 300, + "type": "color" + }, + "400": { + "value": "#72ad19", + "step": 400, + "type": "color" + }, + "500": { + "value": "#70a919", + "step": 500, + "type": "color" + }, + "600": { + "value": "#6ea519", + "step": 600, + "type": "color" + }, + "700": { + "value": "#6ca219", + "step": 700, + "type": "color" + }, + "800": { + "value": "#6a9f1a", + "step": 800, + "type": "color" + }, + "900": { + "value": "#699c1a", + "step": 900, + "type": "color" + } + }, + "green": { + "0": { + "value": "#ecfef2", + "step": 0, + "type": "color" + }, + "100": { + "value": "#21bf5b", + "step": 100, + "type": "color" + }, + "200": { + "value": "#20b557", + "step": 200, + "type": "color" + }, + "300": { + "value": "#1faf54", + "step": 300, + "type": "color" + }, + "400": { + "value": "#1faa52", + "step": 400, + "type": "color" + }, + "500": { + "value": "#1ea650", + "step": 500, + "type": "color" + }, + "600": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "700": { + "value": "#1da04d", + "step": 700, + "type": "color" + }, + "800": { + "value": "#1d9d4c", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1d9b4b", + "step": 900, + "type": "color" + } + }, + "emerald": { + "0": { + "value": "#ecfef8", + "step": 0, + "type": "color" + }, + "100": { + "value": "#11b47e", + "step": 100, + "type": "color" + }, + "200": { + "value": "#13ac79", + "step": 200, + "type": "color" + }, + "300": { + "value": "#14a776", + "step": 300, + "type": "color" + }, + "400": { + "value": "#15a374", + "step": 400, + "type": "color" + }, + "500": { + "value": "#16a072", + "step": 500, + "type": "color" + }, + "600": { + "value": "#169d70", + "step": 600, + "type": "color" + }, + "700": { + "value": "#179b6f", + "step": 700, + "type": "color" + }, + "800": { + "value": "#17996e", + "step": 800, + "type": "color" + }, + "900": { + "value": "#18976c", + "step": 900, + "type": "color" + } + }, + "teal": { + "0": { + "value": "#ecfefc", + "step": 0, + "type": "color" + }, + "100": { + "value": "#15b3a2", + "step": 100, + "type": "color" + }, + "200": { + "value": "#16ab9b", + "step": 200, + "type": "color" + }, + "300": { + "value": "#17a696", + "step": 300, + "type": "color" + }, + "400": { + "value": "#17a293", + "step": 400, + "type": "color" + }, + "500": { + "value": "#189f90", + "step": 500, + "type": "color" + }, + "600": { + "value": "#189d8e", + "step": 600, + "type": "color" + }, + "700": { + "value": "#189a8c", + "step": 700, + "type": "color" + }, + "800": { + "value": "#19988a", + "step": 800, + "type": "color" + }, + "900": { + "value": "#199788", + "step": 900, + "type": "color" + } + }, + "cyan": { + "0": { + "value": "#ecfcfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#09b5cc", + "step": 100, + "type": "color" + }, + "200": { + "value": "#0daabf", + "step": 200, + "type": "color" + }, + "300": { + "value": "#0fa3b7", + "step": 300, + "type": "color" + }, + "400": { + "value": "#119eb1", + "step": 400, + "type": "color" + }, + "500": { + "value": "#1299ac", + "step": 500, + "type": "color" + }, + "600": { + "value": "#1396a8", + "step": 600, + "type": "color" + }, + "700": { + "value": "#1493a4", + "step": 700, + "type": "color" + }, + "800": { + "value": "#1590a1", + "step": 800, + "type": "color" + }, + "900": { + "value": "#168e9e", + "step": 900, + "type": "color" + } + }, + "sky": { + "0": { + "value": "#ecf8fe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#109fdf", + "step": 100, + "type": "color" + }, + "200": { + "value": "#1394cf", + "step": 200, + "type": "color" + }, + "300": { + "value": "#148dc4", + "step": 300, + "type": "color" + }, + "400": { + "value": "#1588bc", + "step": 400, + "type": "color" + }, + "500": { + "value": "#1684b6", + "step": 500, + "type": "color" + }, + "600": { + "value": "#1780b0", + "step": 600, + "type": "color" + }, + "700": { + "value": "#177dac", + "step": 700, + "type": "color" + }, + "800": { + "value": "#187ba8", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1878a4", + "step": 900, + "type": "color" + } + }, + "blue": { + "0": { + "value": "#ecf3fe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "200": { + "value": "#1f6eed", + "step": 200, + "type": "color" + }, + "300": { + "value": "#1666e7", + "step": 300, + "type": "color" + }, + "400": { + "value": "#1762db", + "step": 400, + "type": "color" + }, + "500": { + "value": "#185fd0", + "step": 500, + "type": "color" + }, + "600": { + "value": "#195cc8", + "step": 600, + "type": "color" + }, + "700": { + "value": "#1959c0", + "step": 700, + "type": "color" + }, + "800": { + "value": "#1957ba", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1a55b4", + "step": 900, + "type": "color" + } + }, + "indigo": { + "0": { + "value": "#ececfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#5558ee", + "step": 100, + "type": "color" + }, + "200": { + "value": "#3d41e9", + "step": 200, + "type": "color" + }, + "300": { + "value": "#2e32e5", + "step": 300, + "type": "color" + }, + "400": { + "value": "#2327e2", + "step": 400, + "type": "color" + }, + "500": { + "value": "#1e22db", + "step": 500, + "type": "color" + }, + "600": { + "value": "#1e22d1", + "step": 600, + "type": "color" + }, + "700": { + "value": "#1e21c9", + "step": 700, + "type": "color" + }, + "800": { + "value": "#1e21c1", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1d20bb", + "step": 900, + "type": "color" + } + }, + "violet": { + "0": { + "value": "#f1ecfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#804ef3", + "step": 100, + "type": "color" + }, + "200": { + "value": "#6e37ee", + "step": 200, + "type": "color" + }, + "300": { + "value": "#6329e9", + "step": 300, + "type": "color" + }, + "400": { + "value": "#5a1ee6", + "step": 400, + "type": "color" + }, + "500": { + "value": "#551bde", + "step": 500, + "type": "color" + }, + "600": { + "value": "#531bd4", + "step": 600, + "type": "color" + }, + "700": { + "value": "#501bcb", + "step": 700, + "type": "color" + }, + "800": { + "value": "#4e1bc3", + "step": 800, + "type": "color" + }, + "900": { + "value": "#4c1bbc", + "step": 900, + "type": "color" + } + }, + "purple": { + "0": { + "value": "#f5ecfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#a048f4", + "step": 100, + "type": "color" + }, + "200": { + "value": "#9332ee", + "step": 200, + "type": "color" + }, + "300": { + "value": "#8a24ea", + "step": 300, + "type": "color" + }, + "400": { + "value": "#831ae7", + "step": 400, + "type": "color" + }, + "500": { + "value": "#7d19dc", + "step": 500, + "type": "color" + }, + "600": { + "value": "#781ad2", + "step": 600, + "type": "color" + }, + "700": { + "value": "#741ac9", + "step": 700, + "type": "color" + }, + "800": { + "value": "#701bc2", + "step": 800, + "type": "color" + }, + "900": { + "value": "#6d1bbb", + "step": 900, + "type": "color" + } + }, + "fuschia": { + "0": { + "value": "#fdecfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#d63be2", + "step": 100, + "type": "color" + }, + "200": { + "value": "#d12ade", + "step": 200, + "type": "color" + }, + "300": { + "value": "#ca23d6", + "step": 300, + "type": "color" + }, + "400": { + "value": "#c122cc", + "step": 400, + "type": "color" + }, + "500": { + "value": "#b921c4", + "step": 500, + "type": "color" + }, + "600": { + "value": "#b320bd", + "step": 600, + "type": "color" + }, + "700": { + "value": "#ad20b7", + "step": 700, + "type": "color" + }, + "800": { + "value": "#a81fb2", + "step": 800, + "type": "color" + }, + "900": { + "value": "#a41ead", + "step": 900, + "type": "color" + } + }, + "pink": { + "0": { + "value": "#feecf5", + "step": 0, + "type": "color" + }, + "100": { + "value": "#e93d92", + "step": 100, + "type": "color" + }, + "200": { + "value": "#e42a87", + "step": 200, + "type": "color" + }, + "300": { + "value": "#e11e7f", + "step": 300, + "type": "color" + }, + "400": { + "value": "#d51e79", + "step": 400, + "type": "color" + }, + "500": { + "value": "#cc1e75", + "step": 500, + "type": "color" + }, + "600": { + "value": "#c41e71", + "step": 600, + "type": "color" + }, + "700": { + "value": "#bd1d6d", + "step": 700, + "type": "color" + }, + "800": { + "value": "#b71d6a", + "step": 800, + "type": "color" + }, + "900": { + "value": "#b21d67", + "step": 900, + "type": "color" + } + } + }, + "text": { + "family": { + "sans": { + "value": "Zed Sans", + "type": "fontFamily" + }, + "mono": { + "value": "Zed Mono", + "type": "fontFamily" + } + }, + "weight": { + "thin": { + "value": "thin", + "type": "fontWeight" + }, + "extra_light": { + "value": "extra_light", + "type": "fontWeight" + }, + "light": { + "value": "light", + "type": "fontWeight" + }, + "normal": { + "value": "normal", + "type": "fontWeight" + }, + "medium": { + "value": "medium", + "type": "fontWeight" + }, + "semibold": { + "value": "semibold", + "type": "fontWeight" + }, + "bold": { + "value": "bold", + "type": "fontWeight" + }, + "extra_bold": { + "value": "extra_bold", + "type": "fontWeight" + }, + "black": { + "value": "black", + "type": "fontWeight" + } + } + }, + "size": { + "3xs": { + "value": 8, + "type": "fontSize" + }, + "2xs": { + "value": 10, + "type": "fontSize" + }, + "xs": { + "value": 12, + "type": "fontSize" + }, + "sm": { + "value": 14, + "type": "fontSize" + }, + "md": { + "value": 16, + "type": "fontSize" + }, + "lg": { + "value": 18, + "type": "fontSize" + }, + "xl": { + "value": 20, + "type": "fontSize" + } + } +} \ No newline at end of file diff --git a/styles/figma/dark.json b/styles/figma/dark.json new file mode 100644 index 0000000000000000000000000000000000000000..fadaf7c19e3459fb3b20cd9af5fc930a2231f010 --- /dev/null +++ b/styles/figma/dark.json @@ -0,0 +1,637 @@ +{ + "meta": { + "themeName": "dark" + }, + "text": { + "primary": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "secondary": { + "value": "#9c9c9c", + "step": 350, + "type": "color" + }, + "muted": { + "value": "#636363", + "step": 550, + "type": "color" + }, + "placeholder": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "active": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "feature": { + "value": "#1684b6", + "step": 500, + "type": "color" + }, + "ok": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "error": { + "value": "#d71c1c", + "step": 400, + "type": "color" + }, + "warning": { + "value": "#cc8712", + "step": 300, + "type": "color" + }, + "info": { + "value": "#185fd0", + "step": 500, + "type": "color" + } + }, + "icon": { + "primary": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "secondary": { + "value": "#9c9c9c", + "step": 350, + "type": "color" + }, + "muted": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "placeholder": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "active": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "feature": { + "value": "#1684b6", + "step": 500, + "type": "color" + }, + "ok": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "error": { + "value": "#cd1c1c", + "step": 500, + "type": "color" + }, + "warning": { + "value": "#c38214", + "step": 400, + "type": "color" + }, + "info": { + "value": "#195cc8", + "step": 600, + "type": "color" + } + }, + "background": { + "100": { + "base": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "hovered": { + "value": "#323232", + "step": 725, + "type": "color" + }, + "active": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "focused": { + "value": "#404040", + "step": 675, + "type": "color" + } + }, + "300": { + "base": { + "value": "#1c1c1c", + "step": 800, + "type": "color" + }, + "hovered": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "active": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "focused": { + "value": "#323232", + "step": 725, + "type": "color" + } + }, + "500": { + "base": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "hovered": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "active": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "focused": { + "value": "#151515", + "step": 825, + "type": "color" + } + }, + "ok": { + "base": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "hovered": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "active": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "focused": { + "value": "#1ea34f", + "step": 600, + "type": "color" + } + }, + "error": { + "base": { + "value": "#d71c1c", + "step": 400, + "type": "color" + }, + "hovered": { + "value": "#d71c1c", + "step": 400, + "type": "color" + }, + "active": { + "value": "#d71c1c", + "step": 400, + "type": "color" + }, + "focused": { + "value": "#d71c1c", + "step": 400, + "type": "color" + } + }, + "warning": { + "base": { + "value": "#cc8712", + "step": 300, + "type": "color" + }, + "hovered": { + "value": "#cc8712", + "step": 300, + "type": "color" + }, + "active": { + "value": "#cc8712", + "step": 300, + "type": "color" + }, + "focused": { + "value": "#cc8712", + "step": 300, + "type": "color" + } + }, + "info": { + "base": { + "value": "#185fd0", + "step": 500, + "type": "color" + }, + "hovered": { + "value": "#185fd0", + "step": 500, + "type": "color" + }, + "active": { + "value": "#185fd0", + "step": 500, + "type": "color" + }, + "focused": { + "value": "#185fd0", + "step": 500, + "type": "color" + } + } + }, + "border": { + "primary": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "secondary": { + "value": "#151515", + "step": 825, + "type": "color" + }, + "muted": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "focused": { + "value": "#717171", + "step": 500, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "ok": { + "value": "#1ea650", + "step": 500, + "type": "color" + }, + "error": { + "value": "#cd1c1c", + "step": 500, + "type": "color" + }, + "warning": { + "value": "#bb7e15", + "step": 500, + "type": "color" + }, + "info": { + "value": "#185fd0", + "step": 500, + "type": "color" + } + }, + "editor": { + "background": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "indent_guide": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "indent_guide_active": { + "value": "#151515", + "step": 825, + "type": "color" + }, + "line": { + "active": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "highlighted": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "inserted": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "deleted": { + "value": "#d71c1c", + "step": 400, + "type": "color" + }, + "modified": { + "value": "#185fd0", + "step": 500, + "type": "color" + } + }, + "highlight": { + "selection": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "occurrence": { + "value": "#1e22db", + "step": 500, + "type": "color" + }, + "activeOccurrence": { + "value": "#2327e2", + "step": 400, + "type": "color" + }, + "matchingBracket": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "match": { + "value": "#70a919", + "step": 500, + "type": "color" + }, + "activeMatch": { + "value": "#72ad19", + "step": 400, + "type": "color" + }, + "related": { + "value": "#151515", + "step": 825, + "type": "color" + } + }, + "gutter": { + "primary": { + "value": "#636363", + "step": 550, + "type": "color" + }, + "active": { + "value": "#ffffff", + "step": 0, + "type": "color" + } + } + }, + "syntax": { + "primary": { + "value": "#f1f1f1", + "type": "color" + }, + "comment": { + "value": "#7aba18", + "type": "color" + }, + "keyword": { + "value": "#1588bc", + "type": "color" + }, + "function": { + "value": "#cfa00f", + "type": "color" + }, + "type": { + "value": "#17a696", + "type": "color" + }, + "variant": { + "value": "#17a696", + "type": "color" + }, + "property": { + "value": "#148dc4", + "type": "color" + }, + "enum": { + "value": "#1588bc", + "type": "color" + }, + "operator": { + "value": "#1588bc", + "type": "color" + }, + "string": { + "value": "#d66211", + "type": "color" + }, + "number": { + "value": "#d5d5d5", + "type": "color" + }, + "boolean": { + "value": "#d5d5d5", + "type": "color" + } + }, + "player": { + "1": { + "baseColor": { + "value": "#195cc8", + "step": 600, + "type": "color" + }, + "cursorColor": { + "value": "#195cc8", + "step": 600, + "type": "color" + }, + "selectionColor": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#195cc8", + "step": 600, + "type": "color" + } + }, + "2": { + "baseColor": { + "value": "#70a919", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#70a919", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#80c517", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#70a919", + "step": 500, + "type": "color" + } + }, + "3": { + "baseColor": { + "value": "#1e22db", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#1e22db", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#5558ee", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#1e22db", + "step": 500, + "type": "color" + } + }, + "4": { + "baseColor": { + "value": "#c45c14", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#c45c14", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#f66e0f", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#c45c14", + "step": 500, + "type": "color" + } + }, + "5": { + "baseColor": { + "value": "#7d19dc", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#7d19dc", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#a048f4", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#7d19dc", + "step": 500, + "type": "color" + } + }, + "6": { + "baseColor": { + "value": "#17a293", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#17a293", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#15b3a2", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#17a293", + "step": 400, + "type": "color" + } + }, + "7": { + "baseColor": { + "value": "#d51e79", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#d51e79", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#e93d92", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#d51e79", + "step": 400, + "type": "color" + } + }, + "8": { + "baseColor": { + "value": "#bc9212", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#bc9212", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#e0ac0b", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#bc9212", + "step": 400, + "type": "color" + } + } + }, + "shadowAlpha": { + "value": 0.32, + "type": "number" + } +} \ No newline at end of file diff --git a/styles/figma/light.json b/styles/figma/light.json new file mode 100644 index 0000000000000000000000000000000000000000..415ab40933c5be2c343b8174c95c9e9917e76675 --- /dev/null +++ b/styles/figma/light.json @@ -0,0 +1,637 @@ +{ + "meta": { + "themeName": "light" + }, + "text": { + "primary": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "secondary": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "muted": { + "value": "#808080", + "step": 450, + "type": "color" + }, + "placeholder": { + "value": "#aaaaaa", + "step": 300, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "feature": { + "value": "#185fd0", + "step": 500, + "type": "color" + }, + "ok": { + "value": "#1ea650", + "step": 500, + "type": "color" + }, + "error": { + "value": "#cd1c1c", + "step": 500, + "type": "color" + }, + "warning": { + "value": "#b68e14", + "step": 500, + "type": "color" + }, + "info": { + "value": "#185fd0", + "step": 500, + "type": "color" + } + }, + "icon": { + "primary": { + "value": "#aaaaaa", + "step": 300, + "type": "color" + }, + "secondary": { + "value": "#717171", + "step": 500, + "type": "color" + }, + "muted": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "placeholder": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "feature": { + "value": "#1780b0", + "step": 600, + "type": "color" + }, + "ok": { + "value": "#1ea34f", + "step": 600, + "type": "color" + }, + "error": { + "value": "#c51c1c", + "step": 600, + "type": "color" + }, + "warning": { + "value": "#bc9212", + "step": 400, + "type": "color" + }, + "info": { + "value": "#195cc8", + "step": 600, + "type": "color" + } + }, + "background": { + "100": { + "base": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + }, + "active": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "focused": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + } + }, + "300": { + "base": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "hovered": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "active": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + }, + "focused": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + } + }, + "500": { + "base": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "hovered": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "active": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + } + }, + "ok": { + "base": { + "value": "#21bf5b", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#21bf5b", + "step": 100, + "type": "color" + }, + "active": { + "value": "#21bf5b", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#21bf5b", + "step": 100, + "type": "color" + } + }, + "error": { + "base": { + "value": "#ec3939", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#ec3939", + "step": 100, + "type": "color" + }, + "active": { + "value": "#ec3939", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#ec3939", + "step": 100, + "type": "color" + } + }, + "warning": { + "base": { + "value": "#e0ac0b", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#e0ac0b", + "step": 100, + "type": "color" + }, + "active": { + "value": "#e0ac0b", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#e0ac0b", + "step": 100, + "type": "color" + } + }, + "info": { + "base": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "active": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#307af3", + "step": 100, + "type": "color" + } + } + }, + "border": { + "primary": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "secondary": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "muted": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "focused": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "active": { + "value": "#b8b8b8", + "step": 250, + "type": "color" + }, + "ok": { + "value": "#20b557", + "step": 200, + "type": "color" + }, + "error": { + "value": "#e72727", + "step": 200, + "type": "color" + }, + "warning": { + "value": "#cfa00f", + "step": 200, + "type": "color" + }, + "info": { + "value": "#1f6eed", + "step": 200, + "type": "color" + } + }, + "editor": { + "background": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "indent_guide": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "indent_guide_active": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "line": { + "active": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "highlighted": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "inserted": { + "value": "#21bf5b", + "step": 100, + "type": "color" + }, + "deleted": { + "value": "#ec3939", + "step": 100, + "type": "color" + }, + "modified": { + "value": "#307af3", + "step": 100, + "type": "color" + } + }, + "highlight": { + "selection": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "occurrence": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "activeOccurrence": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "matchingBracket": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "match": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "activeMatch": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "related": { + "value": "#ffffff", + "step": 0, + "type": "color" + } + }, + "gutter": { + "primary": { + "value": "#808080", + "step": 450, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + } + } + }, + "syntax": { + "primary": { + "value": "#2b2b2b", + "type": "color" + }, + "comment": { + "value": "#7aba18", + "type": "color" + }, + "keyword": { + "value": "#1588bc", + "type": "color" + }, + "function": { + "value": "#cfa00f", + "type": "color" + }, + "type": { + "value": "#17a696", + "type": "color" + }, + "variant": { + "value": "#17a696", + "type": "color" + }, + "property": { + "value": "#148dc4", + "type": "color" + }, + "enum": { + "value": "#1588bc", + "type": "color" + }, + "operator": { + "value": "#1588bc", + "type": "color" + }, + "string": { + "value": "#d66211", + "type": "color" + }, + "number": { + "value": "#d5d5d5", + "type": "color" + }, + "boolean": { + "value": "#d5d5d5", + "type": "color" + } + }, + "player": { + "1": { + "baseColor": { + "value": "#195cc8", + "step": 600, + "type": "color" + }, + "cursorColor": { + "value": "#185fd0", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#307af3", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#185fd0", + "step": 500, + "type": "color" + } + }, + "2": { + "baseColor": { + "value": "#70a919", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#70a919", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#80c517", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#70a919", + "step": 500, + "type": "color" + } + }, + "3": { + "baseColor": { + "value": "#1e22db", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#1e22db", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#5558ee", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#1e22db", + "step": 500, + "type": "color" + } + }, + "4": { + "baseColor": { + "value": "#c45c14", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#c45c14", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#f66e0f", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#c45c14", + "step": 500, + "type": "color" + } + }, + "5": { + "baseColor": { + "value": "#7d19dc", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#7d19dc", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#a048f4", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#7d19dc", + "step": 500, + "type": "color" + } + }, + "6": { + "baseColor": { + "value": "#17a293", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#17a293", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#15b3a2", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#17a293", + "step": 400, + "type": "color" + } + }, + "7": { + "baseColor": { + "value": "#d51e79", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#d51e79", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#e93d92", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#d51e79", + "step": 400, + "type": "color" + } + }, + "8": { + "baseColor": { + "value": "#bc9212", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#bc9212", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#e0ac0b", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#bc9212", + "step": 400, + "type": "color" + } + } + }, + "shadowAlpha": { + "value": 0.12, + "type": "number" + } +} \ No newline at end of file From 90df8a31e77c02e81bc55f45ba676a65e4c42f02 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sun, 3 Apr 2022 13:37:47 -0400 Subject: [PATCH 58/71] Fix incorrect ramp preset values in `color.ts` - Regenerate themes and tokens as well --- crates/zed/assets/themes/dark.json | 94 +++++----- crates/zed/assets/themes/light.json | 88 ++++----- styles/figma/core.json | 272 ++++++++++++++-------------- styles/figma/dark.json | 158 ++++++++-------- styles/figma/light.json | 150 +++++++-------- styles/utils/color.ts | 4 +- 6 files changed, 383 insertions(+), 383 deletions(-) diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json index 25568bf17c9dafaf92beb11be5e4514377f57e76..da7fa4650ee609d46ce2eacf5dcf8eb4a3f8088c 100644 --- a/crates/zed/assets/themes/dark.json +++ b/crates/zed/assets/themes/dark.json @@ -18,7 +18,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#1684b6", + "color": "#2db4f3", "weight": "bold", "size": 14 } @@ -38,7 +38,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#1684b6", + "color": "#2db4f3", "weight": "bold", "size": 14 }, @@ -70,8 +70,8 @@ "size": 14 }, "selection": { - "cursor": "#195cc8", - "selection": "#307af3" + "cursor": "#4287f6", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", @@ -111,8 +111,8 @@ "background": "#1c1c1c", "icon_close": "#555555", "icon_close_active": "#ffffff", - "icon_conflict": "#c38214", - "icon_dirty": "#195cc8", + "icon_conflict": "#f7b241", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { @@ -137,8 +137,8 @@ "background": "#000000", "icon_close": "#555555", "icon_close_active": "#ffffff", - "icon_conflict": "#c38214", - "icon_dirty": "#195cc8", + "icon_conflict": "#f7b241", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { @@ -289,7 +289,7 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#cc8712", + "color": "#f8c570", "size": 13 } }, @@ -329,11 +329,11 @@ "background": "#000000", "active_line_background": "#0e0e0e", "code_actions_indicator": "#9c9c9c", - "diff_background_deleted": "#d71c1c", - "diff_background_inserted": "#1ea34f", - "document_highlight_read_background": "#1e22db", - "document_highlight_write_background": "#1e22db", - "error_color": "#d71c1c", + "diff_background_deleted": "#f78c8c", + "diff_background_inserted": "#22c55e", + "document_highlight_read_background": "#777af4", + "document_highlight_write_background": "#777af4", + "error_color": "#f78c8c", "gutter_background": "#000000", "gutter_padding_factor": 2.5, "highlighted_line_background": "#070707", @@ -342,37 +342,37 @@ "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { - "cursor": "#195cc8", - "selection": "#307af3" + "cursor": "#4287f6", + "selection": "#d0e2fd" }, "guest_selections": [ { - "cursor": "#70a919", - "selection": "#80c517" + "cursor": "#87d116", + "selection": "#dbf9ac" }, { - "cursor": "#1e22db", - "selection": "#5558ee" + "cursor": "#777af4", + "selection": "#d4d5fd" }, { - "cursor": "#c45c14", - "selection": "#f66e0f" + "cursor": "#f98a3d", + "selection": "#fde0cd" }, { - "cursor": "#7d19dc", - "selection": "#a048f4" + "cursor": "#b671f8", + "selection": "#e9d4fd" }, { - "cursor": "#17a293", - "selection": "#15b3a2" + "cursor": "#16ddc7", + "selection": "#b4faf2" }, { - "cursor": "#d51e79", - "selection": "#e93d92" + "cursor": "#f58ac0", + "selection": "#fcd4e8" }, { - "cursor": "#bc9212", - "selection": "#e0ac0b" + "cursor": "#f6bc09", + "selection": "#fceabc" } ], "autocomplete": { @@ -406,7 +406,7 @@ "left": -14 }, "match_highlight": { - "color": "#1588bc", + "color": "#59c3f5", "weight": "normal" }, "selected_item": { @@ -481,12 +481,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#d71c1c", + "color": "#f78c8c", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#d71c1c", + "color": "#f78c8c", "size": 14, "weight": "bold" } @@ -504,12 +504,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#cc8712", + "color": "#f8c570", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#cc8712", + "color": "#f8c570", "size": 14, "weight": "bold" } @@ -527,12 +527,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14, "weight": "bold" } @@ -550,12 +550,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14, "weight": "bold" } @@ -929,8 +929,8 @@ "size": 14 }, "selection": { - "cursor": "#195cc8", - "selection": "#307af3" + "cursor": "#4287f6", + "selection": "#d0e2fd" }, "border": { "color": "#151515", @@ -1067,7 +1067,7 @@ } }, "search": { - "match_background": "#70a919", + "match_background": "#87d116", "tab_icon_spacing": 4, "tab_icon_width": 14, "active_hovered_option_button": { @@ -1123,8 +1123,8 @@ "size": 16 }, "selection": { - "cursor": "#195cc8", - "selection": "#307af3" + "cursor": "#4287f6", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", @@ -1177,8 +1177,8 @@ "size": 16 }, "selection": { - "cursor": "#195cc8", - "selection": "#307af3" + "cursor": "#4287f6", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", @@ -1186,7 +1186,7 @@ "size": 16 }, "border": { - "color": "#cd1c1c", + "color": "#f47171", "width": 1 }, "margin": { diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json index 76fe01501d181cdcbdea018c21357a2c65a728ab..dcff3352f75703a64030db29cde7797dd038c432 100644 --- a/crates/zed/assets/themes/light.json +++ b/crates/zed/assets/themes/light.json @@ -18,7 +18,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "weight": "bold", "size": 14 } @@ -38,7 +38,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "weight": "bold", "size": 14 }, @@ -70,8 +70,8 @@ "size": 14 }, "selection": { - "cursor": "#185fd0", - "selection": "#307af3" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", @@ -111,8 +111,8 @@ "background": "#f1f1f1", "icon_close": "#555555", "icon_close_active": "#000000", - "icon_conflict": "#bc9212", - "icon_dirty": "#195cc8", + "icon_conflict": "#f6bc09", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { @@ -137,8 +137,8 @@ "background": "#ffffff", "icon_close": "#555555", "icon_close_active": "#000000", - "icon_conflict": "#bc9212", - "icon_dirty": "#195cc8", + "icon_conflict": "#f6bc09", + "icon_dirty": "#4287f6", "icon_width": 8, "spacing": 10, "text": { @@ -289,7 +289,7 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#b68e14", + "color": "#e5af09", "size": 13 } }, @@ -329,11 +329,11 @@ "background": "#ffffff", "active_line_background": "#e3e3e3", "code_actions_indicator": "#717171", - "diff_background_deleted": "#ec3939", - "diff_background_inserted": "#21bf5b", + "diff_background_deleted": "#fdd4d4", + "diff_background_inserted": "#befad2", "document_highlight_read_background": "#e3e3e3", "document_highlight_write_background": "#e3e3e3", - "error_color": "#cd1c1c", + "error_color": "#f47171", "gutter_background": "#ffffff", "gutter_padding_factor": 2.5, "highlighted_line_background": "#e3e3e3", @@ -342,37 +342,37 @@ "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { - "cursor": "#185fd0", - "selection": "#307af3" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "guest_selections": [ { - "cursor": "#70a919", - "selection": "#80c517" + "cursor": "#87d116", + "selection": "#dbf9ac" }, { - "cursor": "#1e22db", - "selection": "#5558ee" + "cursor": "#777af4", + "selection": "#d4d5fd" }, { - "cursor": "#c45c14", - "selection": "#f66e0f" + "cursor": "#f98a3d", + "selection": "#fde0cd" }, { - "cursor": "#7d19dc", - "selection": "#a048f4" + "cursor": "#b671f8", + "selection": "#e9d4fd" }, { - "cursor": "#17a293", - "selection": "#15b3a2" + "cursor": "#16ddc7", + "selection": "#b4faf2" }, { - "cursor": "#d51e79", - "selection": "#e93d92" + "cursor": "#f58ac0", + "selection": "#fcd4e8" }, { - "cursor": "#bc9212", - "selection": "#e0ac0b" + "cursor": "#f6bc09", + "selection": "#fceabc" } ], "autocomplete": { @@ -406,7 +406,7 @@ "left": -14 }, "match_highlight": { - "color": "#1588bc", + "color": "#59c3f5", "weight": "normal" }, "selected_item": { @@ -481,12 +481,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#cd1c1c", + "color": "#f47171", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#cd1c1c", + "color": "#f47171", "size": 14, "weight": "bold" } @@ -504,12 +504,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#b68e14", + "color": "#e5af09", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#b68e14", + "color": "#e5af09", "size": 14, "weight": "bold" } @@ -527,12 +527,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14, "weight": "bold" } @@ -550,12 +550,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#185fd0", + "color": "#6099f7", "size": 14, "weight": "bold" } @@ -929,8 +929,8 @@ "size": 14 }, "selection": { - "cursor": "#185fd0", - "selection": "#307af3" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "border": { "color": "#e3e3e3", @@ -1123,8 +1123,8 @@ "size": 16 }, "selection": { - "cursor": "#185fd0", - "selection": "#307af3" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", @@ -1177,8 +1177,8 @@ "size": 16 }, "selection": { - "cursor": "#185fd0", - "selection": "#307af3" + "cursor": "#6099f7", + "selection": "#d0e2fd" }, "text": { "family": "Zed Mono", @@ -1186,7 +1186,7 @@ "size": 16 }, "border": { - "color": "#e72727", + "color": "#fbbdbd", "width": 1 }, "margin": { diff --git a/styles/figma/core.json b/styles/figma/core.json index 77dabe6b4e4462acc636427c388d161bb3c54a33..b3e13f1c7a9f4e048bf7065278ebc1527c4a11cc 100644 --- a/styles/figma/core.json +++ b/styles/figma/core.json @@ -194,42 +194,42 @@ "type": "color" }, "100": { - "value": "#f13455", + "value": "#fdd5db", "step": 100, "type": "color" }, "200": { - "value": "#eb2245", + "value": "#fbbdc8", "step": 200, "type": "color" }, "300": { - "value": "#e7183b", + "value": "#faa4b3", "step": 300, "type": "color" }, "400": { - "value": "#da193a", + "value": "#f98a9d", "step": 400, "type": "color" }, "500": { - "value": "#d01939", + "value": "#f76e86", "step": 500, "type": "color" }, "600": { - "value": "#c81a37", + "value": "#f54c69", "step": 600, "type": "color" }, "700": { - "value": "#c01a36", + "value": "#ec2548", "step": 700, "type": "color" }, "800": { - "value": "#ba1a36", + "value": "#d21939", "step": 800, "type": "color" }, @@ -246,42 +246,42 @@ "type": "color" }, "100": { - "value": "#ec3939", + "value": "#fdd4d4", "step": 100, "type": "color" }, "200": { - "value": "#e72727", + "value": "#fbbdbd", "step": 200, "type": "color" }, "300": { - "value": "#e31c1c", + "value": "#f9a5a5", "step": 300, "type": "color" }, "400": { - "value": "#d71c1c", + "value": "#f78c8c", "step": 400, "type": "color" }, "500": { - "value": "#cd1c1c", + "value": "#f47171", "step": 500, "type": "color" }, "600": { - "value": "#c51c1c", + "value": "#f15252", "step": 600, "type": "color" }, "700": { - "value": "#be1c1c", + "value": "#e82c2c", "step": 700, "type": "color" }, "800": { - "value": "#b81c1c", + "value": "#d11c1c", "step": 800, "type": "color" }, @@ -298,42 +298,42 @@ "type": "color" }, "100": { - "value": "#f66e0f", + "value": "#fde0cd", "step": 100, "type": "color" }, "200": { - "value": "#e5660f", + "value": "#fbccac", "step": 200, "type": "color" }, "300": { - "value": "#d66211", + "value": "#fab78b", "step": 300, "type": "color" }, "400": { - "value": "#cc5f13", + "value": "#faa266", "step": 400, "type": "color" }, "500": { - "value": "#c45c14", + "value": "#f98a3d", "step": 500, "type": "color" }, "600": { - "value": "#bc5a15", + "value": "#f77113", "step": 600, "type": "color" }, "700": { - "value": "#b65816", + "value": "#e0650f", "step": 700, "type": "color" }, "800": { - "value": "#b15617", + "value": "#c65d14", "step": 800, "type": "color" }, @@ -350,42 +350,42 @@ "type": "color" }, "100": { - "value": "#eb980d", + "value": "#fce7c4", "step": 100, "type": "color" }, "200": { - "value": "#d88e10", + "value": "#fad69d", "step": 200, "type": "color" }, "300": { - "value": "#cc8712", + "value": "#f8c570", "step": 300, "type": "color" }, "400": { - "value": "#c38214", + "value": "#f7b241", "step": 400, "type": "color" }, "500": { - "value": "#bb7e15", + "value": "#f59f0c", "step": 500, "type": "color" }, "600": { - "value": "#b57a16", + "value": "#e1930e", "step": 600, "type": "color" }, "700": { - "value": "#b07717", + "value": "#cd8812", "step": 700, "type": "color" }, "800": { - "value": "#ab7517", + "value": "#ba7d15", "step": 800, "type": "color" }, @@ -402,42 +402,42 @@ "type": "color" }, "100": { - "value": "#e0ac0b", + "value": "#fceabc", "step": 100, "type": "color" }, "200": { - "value": "#cfa00f", + "value": "#fadc89", "step": 200, "type": "color" }, "300": { - "value": "#c49811", + "value": "#f8cc4e", "step": 300, "type": "color" }, "400": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" }, "500": { - "value": "#b68e14", + "value": "#e5af09", "step": 500, "type": "color" }, "600": { - "value": "#b08a15", + "value": "#d4a30d", "step": 600, "type": "color" }, "700": { - "value": "#ac8615", + "value": "#c49811", "step": 700, "type": "color" }, "800": { - "value": "#a88316", + "value": "#b48d14", "step": 800, "type": "color" }, @@ -454,42 +454,42 @@ "type": "color" }, "100": { - "value": "#80c517", + "value": "#dbf9ac", "step": 100, "type": "color" }, "200": { - "value": "#7aba18", + "value": "#bdf36b", "step": 200, "type": "color" }, "300": { - "value": "#76b318", + "value": "#9feb2b", "step": 300, "type": "color" }, "400": { - "value": "#72ad19", + "value": "#90df17", "step": 400, "type": "color" }, "500": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" }, "600": { - "value": "#6ea519", + "value": "#7fc417", "step": 600, "type": "color" }, "700": { - "value": "#6ca219", + "value": "#78b618", "step": 700, "type": "color" }, "800": { - "value": "#6a9f1a", + "value": "#70aa19", "step": 800, "type": "color" }, @@ -506,42 +506,42 @@ "type": "color" }, "100": { - "value": "#21bf5b", + "value": "#befad2", "step": 100, "type": "color" }, "200": { - "value": "#20b557", + "value": "#8ff4b2", "step": 200, "type": "color" }, "300": { - "value": "#1faf54", + "value": "#60ec92", "step": 300, "type": "color" }, "400": { - "value": "#1faa52", + "value": "#34e173", "step": 400, "type": "color" }, "500": { - "value": "#1ea650", + "value": "#23d464", "step": 500, "type": "color" }, "600": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "700": { - "value": "#1da04d", + "value": "#20b658", "step": 700, "type": "color" }, "800": { - "value": "#1d9d4c", + "value": "#1ea851", "step": 800, "type": "color" }, @@ -558,42 +558,42 @@ "type": "color" }, "100": { - "value": "#11b47e", + "value": "#b3fbe3", "step": 100, "type": "color" }, "200": { - "value": "#13ac79", + "value": "#72f6ca", "step": 200, "type": "color" }, "300": { - "value": "#14a776", + "value": "#1feda9", "step": 300, "type": "color" }, "400": { - "value": "#15a374", + "value": "#12e09b", "step": 400, "type": "color" }, "500": { - "value": "#16a072", + "value": "#11d091", "step": 500, "type": "color" }, "600": { - "value": "#169d70", + "value": "#11c287", "step": 600, "type": "color" }, "700": { - "value": "#179b6f", + "value": "#11b37e", "step": 700, "type": "color" }, "800": { - "value": "#17996e", + "value": "#15a575", "step": 800, "type": "color" }, @@ -610,42 +610,42 @@ "type": "color" }, "100": { - "value": "#15b3a2", + "value": "#b4faf2", "step": 100, "type": "color" }, "200": { - "value": "#16ab9b", + "value": "#73f4e6", "step": 200, "type": "color" }, "300": { - "value": "#17a696", + "value": "#26ebd5", "step": 300, "type": "color" }, "400": { - "value": "#17a293", + "value": "#16ddc7", "step": 400, "type": "color" }, "500": { - "value": "#189f90", + "value": "#15cfba", "step": 500, "type": "color" }, "600": { - "value": "#189d8e", + "value": "#15c1ae", "step": 600, "type": "color" }, "700": { - "value": "#189a8c", + "value": "#15b2a1", "step": 700, "type": "color" }, "800": { - "value": "#19988a", + "value": "#17a495", "step": 800, "type": "color" }, @@ -662,42 +662,42 @@ "type": "color" }, "100": { - "value": "#09b5cc", + "value": "#bcf5fc", "step": 100, "type": "color" }, "200": { - "value": "#0daabf", + "value": "#86edfa", "step": 200, "type": "color" }, "300": { - "value": "#0fa3b7", + "value": "#41e3f8", "step": 300, "type": "color" }, "400": { - "value": "#119eb1", + "value": "#07d5f1", "step": 400, "type": "color" }, "500": { - "value": "#1299ac", + "value": "#07c7e1", "step": 500, "type": "color" }, "600": { - "value": "#1396a8", + "value": "#07b8d0", "step": 600, "type": "color" }, "700": { - "value": "#1493a4", + "value": "#0daabf", "step": 700, "type": "color" }, "800": { - "value": "#1590a1", + "value": "#119bae", "step": 800, "type": "color" }, @@ -714,42 +714,42 @@ "type": "color" }, "100": { - "value": "#109fdf", + "value": "#caecfc", "step": 100, "type": "color" }, "200": { - "value": "#1394cf", + "value": "#a6defa", "step": 200, "type": "color" }, "300": { - "value": "#148dc4", + "value": "#81d2f8", "step": 300, "type": "color" }, "400": { - "value": "#1588bc", + "value": "#59c3f5", "step": 400, "type": "color" }, "500": { - "value": "#1684b6", + "value": "#2db4f3", "step": 500, "type": "color" }, "600": { - "value": "#1780b0", + "value": "#0ea5e8", "step": 600, "type": "color" }, "700": { - "value": "#177dac", + "value": "#1296d1", "step": 700, "type": "color" }, "800": { - "value": "#187ba8", + "value": "#1686ba", "step": 800, "type": "color" }, @@ -766,42 +766,42 @@ "type": "color" }, "100": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, "200": { - "value": "#1f6eed", + "value": "#b4cffb", "step": 200, "type": "color" }, "300": { - "value": "#1666e7", + "value": "#99befa", "step": 300, "type": "color" }, "400": { - "value": "#1762db", + "value": "#7cacf9", "step": 400, "type": "color" }, "500": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" }, "600": { - "value": "#195cc8", + "value": "#4287f6", "step": 600, "type": "color" }, "700": { - "value": "#1959c0", + "value": "#2774f0", "step": 700, "type": "color" }, "800": { - "value": "#1957ba", + "value": "#1762db", "step": 800, "type": "color" }, @@ -818,42 +818,42 @@ "type": "color" }, "100": { - "value": "#5558ee", + "value": "#d4d5fd", "step": 100, "type": "color" }, "200": { - "value": "#3d41e9", + "value": "#bebefb", "step": 200, "type": "color" }, "300": { - "value": "#2e32e5", + "value": "#a7a8f9", "step": 300, "type": "color" }, "400": { - "value": "#2327e2", + "value": "#8f90f6", "step": 400, "type": "color" }, "500": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" }, "600": { - "value": "#1e22d1", + "value": "#5f62f0", "step": 600, "type": "color" }, "700": { - "value": "#1e21c9", + "value": "#464aeb", "step": 700, "type": "color" }, "800": { - "value": "#1e21c1", + "value": "#292de4", "step": 800, "type": "color" }, @@ -870,42 +870,42 @@ "type": "color" }, "100": { - "value": "#804ef3", + "value": "#e0d5fd", "step": 100, "type": "color" }, "200": { - "value": "#6e37ee", + "value": "#cfbcfb", "step": 200, "type": "color" }, "300": { - "value": "#6329e9", + "value": "#bda4fa", "step": 300, "type": "color" }, "400": { - "value": "#5a1ee6", + "value": "#ad8cf9", "step": 400, "type": "color" }, "500": { - "value": "#551bde", + "value": "#9b73f7", "step": 500, "type": "color" }, "600": { - "value": "#531bd4", + "value": "#8959f6", "step": 600, "type": "color" }, "700": { - "value": "#501bcb", + "value": "#7540f0", "step": 700, "type": "color" }, "800": { - "value": "#4e1bc3", + "value": "#5e22e7", "step": 800, "type": "color" }, @@ -922,42 +922,42 @@ "type": "color" }, "100": { - "value": "#a048f4", + "value": "#e9d4fd", "step": 100, "type": "color" }, "200": { - "value": "#9332ee", + "value": "#dcbcfc", "step": 200, "type": "color" }, "300": { - "value": "#8a24ea", + "value": "#d0a4fa", "step": 300, "type": "color" }, "400": { - "value": "#831ae7", + "value": "#c38bf9", "step": 400, "type": "color" }, "500": { - "value": "#7d19dc", + "value": "#b671f8", "step": 500, "type": "color" }, "600": { - "value": "#781ad2", + "value": "#a856f7", "step": 600, "type": "color" }, "700": { - "value": "#741ac9", + "value": "#9739f1", "step": 700, "type": "color" }, "800": { - "value": "#701bc2", + "value": "#831ae6", "step": 800, "type": "color" }, @@ -974,42 +974,42 @@ "type": "color" }, "100": { - "value": "#d63be2", + "value": "#fad4fc", "step": 100, "type": "color" }, "200": { - "value": "#d12ade", + "value": "#f6bbfa", "step": 200, "type": "color" }, "300": { - "value": "#ca23d6", + "value": "#f1a2f7", "step": 300, "type": "color" }, "400": { - "value": "#c122cc", + "value": "#ec8af3", "step": 400, "type": "color" }, "500": { - "value": "#b921c4", + "value": "#e56fee", "step": 500, "type": "color" }, "600": { - "value": "#b320bd", + "value": "#dd51e7", "step": 600, "type": "color" }, "700": { - "value": "#ad20b7", + "value": "#d32edf", "step": 700, "type": "color" }, "800": { - "value": "#a81fb2", + "value": "#bc21c8", "step": 800, "type": "color" }, @@ -1026,42 +1026,42 @@ "type": "color" }, "100": { - "value": "#e93d92", + "value": "#fcd4e8", "step": 100, "type": "color" }, "200": { - "value": "#e42a87", + "value": "#fbbcdb", "step": 200, "type": "color" }, "300": { - "value": "#e11e7f", + "value": "#f8a5ce", "step": 300, "type": "color" }, "400": { - "value": "#d51e79", + "value": "#f58ac0", "step": 400, "type": "color" }, "500": { - "value": "#cc1e75", + "value": "#f26fb0", "step": 500, "type": "color" }, "600": { - "value": "#c41e71", + "value": "#ee519e", "step": 600, "type": "color" }, "700": { - "value": "#bd1d6d", + "value": "#e52e89", "step": 700, "type": "color" }, "800": { - "value": "#b71d6a", + "value": "#ce1e76", "step": 800, "type": "color" }, diff --git a/styles/figma/dark.json b/styles/figma/dark.json index fadaf7c19e3459fb3b20cd9af5fc930a2231f010..568f53b8154003fb1805de4c2ae420f0f2a94e89 100644 --- a/styles/figma/dark.json +++ b/styles/figma/dark.json @@ -29,27 +29,27 @@ "type": "color" }, "feature": { - "value": "#1684b6", + "value": "#2db4f3", "step": 500, "type": "color" }, "ok": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "error": { - "value": "#d71c1c", + "value": "#f78c8c", "step": 400, "type": "color" }, "warning": { - "value": "#cc8712", + "value": "#f8c570", "step": 300, "type": "color" }, "info": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" } @@ -81,27 +81,27 @@ "type": "color" }, "feature": { - "value": "#1684b6", + "value": "#2db4f3", "step": 500, "type": "color" }, "ok": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "error": { - "value": "#cd1c1c", + "value": "#f47171", "step": 500, "type": "color" }, "warning": { - "value": "#c38214", + "value": "#f7b241", "step": 400, "type": "color" }, "info": { - "value": "#195cc8", + "value": "#4287f6", "step": 600, "type": "color" } @@ -175,88 +175,88 @@ }, "ok": { "base": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "hovered": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "active": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "focused": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" } }, "error": { "base": { - "value": "#d71c1c", + "value": "#f78c8c", "step": 400, "type": "color" }, "hovered": { - "value": "#d71c1c", + "value": "#f78c8c", "step": 400, "type": "color" }, "active": { - "value": "#d71c1c", + "value": "#f78c8c", "step": 400, "type": "color" }, "focused": { - "value": "#d71c1c", + "value": "#f78c8c", "step": 400, "type": "color" } }, "warning": { "base": { - "value": "#cc8712", + "value": "#f8c570", "step": 300, "type": "color" }, "hovered": { - "value": "#cc8712", + "value": "#f8c570", "step": 300, "type": "color" }, "active": { - "value": "#cc8712", + "value": "#f8c570", "step": 300, "type": "color" }, "focused": { - "value": "#cc8712", + "value": "#f8c570", "step": 300, "type": "color" } }, "info": { "base": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" }, "hovered": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" }, "active": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" }, "focused": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" } @@ -289,22 +289,22 @@ "type": "color" }, "ok": { - "value": "#1ea650", + "value": "#23d464", "step": 500, "type": "color" }, "error": { - "value": "#cd1c1c", + "value": "#f47171", "step": 500, "type": "color" }, "warning": { - "value": "#bb7e15", + "value": "#f59f0c", "step": 500, "type": "color" }, "info": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" } @@ -337,34 +337,34 @@ "type": "color" }, "inserted": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "deleted": { - "value": "#d71c1c", + "value": "#f78c8c", "step": 400, "type": "color" }, "modified": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" } }, "highlight": { "selection": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, "occurrence": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" }, "activeOccurrence": { - "value": "#2327e2", + "value": "#8f90f6", "step": 400, "type": "color" }, @@ -374,12 +374,12 @@ "type": "color" }, "match": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" }, "activeMatch": { - "value": "#72ad19", + "value": "#90df17", "step": 400, "type": "color" }, @@ -408,39 +408,39 @@ "type": "color" }, "comment": { - "value": "#7aba18", + "value": "#bdf36b", "type": "color" }, "keyword": { - "value": "#1588bc", + "value": "#59c3f5", "type": "color" }, "function": { - "value": "#cfa00f", + "value": "#fadc89", "type": "color" }, "type": { - "value": "#17a696", + "value": "#26ebd5", "type": "color" }, "variant": { - "value": "#17a696", + "value": "#26ebd5", "type": "color" }, "property": { - "value": "#148dc4", + "value": "#81d2f8", "type": "color" }, "enum": { - "value": "#1588bc", + "value": "#59c3f5", "type": "color" }, "operator": { - "value": "#1588bc", + "value": "#59c3f5", "type": "color" }, "string": { - "value": "#d66211", + "value": "#fab78b", "type": "color" }, "number": { @@ -455,176 +455,176 @@ "player": { "1": { "baseColor": { - "value": "#195cc8", + "value": "#4287f6", "step": 600, "type": "color" }, "cursorColor": { - "value": "#195cc8", + "value": "#4287f6", "step": 600, "type": "color" }, "selectionColor": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, "borderColor": { - "value": "#195cc8", + "value": "#4287f6", "step": 600, "type": "color" } }, "2": { "baseColor": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" }, "cursorColor": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" }, "selectionColor": { - "value": "#80c517", + "value": "#dbf9ac", "step": 100, "type": "color" }, "borderColor": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" } }, "3": { "baseColor": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" }, "cursorColor": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" }, "selectionColor": { - "value": "#5558ee", + "value": "#d4d5fd", "step": 100, "type": "color" }, "borderColor": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" } }, "4": { "baseColor": { - "value": "#c45c14", + "value": "#f98a3d", "step": 500, "type": "color" }, "cursorColor": { - "value": "#c45c14", + "value": "#f98a3d", "step": 500, "type": "color" }, "selectionColor": { - "value": "#f66e0f", + "value": "#fde0cd", "step": 100, "type": "color" }, "borderColor": { - "value": "#c45c14", + "value": "#f98a3d", "step": 500, "type": "color" } }, "5": { "baseColor": { - "value": "#7d19dc", + "value": "#b671f8", "step": 500, "type": "color" }, "cursorColor": { - "value": "#7d19dc", + "value": "#b671f8", "step": 500, "type": "color" }, "selectionColor": { - "value": "#a048f4", + "value": "#e9d4fd", "step": 100, "type": "color" }, "borderColor": { - "value": "#7d19dc", + "value": "#b671f8", "step": 500, "type": "color" } }, "6": { "baseColor": { - "value": "#17a293", + "value": "#16ddc7", "step": 400, "type": "color" }, "cursorColor": { - "value": "#17a293", + "value": "#16ddc7", "step": 400, "type": "color" }, "selectionColor": { - "value": "#15b3a2", + "value": "#b4faf2", "step": 100, "type": "color" }, "borderColor": { - "value": "#17a293", + "value": "#16ddc7", "step": 400, "type": "color" } }, "7": { "baseColor": { - "value": "#d51e79", + "value": "#f58ac0", "step": 400, "type": "color" }, "cursorColor": { - "value": "#d51e79", + "value": "#f58ac0", "step": 400, "type": "color" }, "selectionColor": { - "value": "#e93d92", + "value": "#fcd4e8", "step": 100, "type": "color" }, "borderColor": { - "value": "#d51e79", + "value": "#f58ac0", "step": 400, "type": "color" } }, "8": { "baseColor": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" }, "cursorColor": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" }, "selectionColor": { - "value": "#e0ac0b", + "value": "#fceabc", "step": 100, "type": "color" }, "borderColor": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" } diff --git a/styles/figma/light.json b/styles/figma/light.json index 415ab40933c5be2c343b8174c95c9e9917e76675..c8ef9e5dcd69332fc33abda730f08b7f7190d574 100644 --- a/styles/figma/light.json +++ b/styles/figma/light.json @@ -29,27 +29,27 @@ "type": "color" }, "feature": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" }, "ok": { - "value": "#1ea650", + "value": "#23d464", "step": 500, "type": "color" }, "error": { - "value": "#cd1c1c", + "value": "#f47171", "step": 500, "type": "color" }, "warning": { - "value": "#b68e14", + "value": "#e5af09", "step": 500, "type": "color" }, "info": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" } @@ -81,27 +81,27 @@ "type": "color" }, "feature": { - "value": "#1780b0", + "value": "#0ea5e8", "step": 600, "type": "color" }, "ok": { - "value": "#1ea34f", + "value": "#22c55e", "step": 600, "type": "color" }, "error": { - "value": "#c51c1c", + "value": "#f15252", "step": 600, "type": "color" }, "warning": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" }, "info": { - "value": "#195cc8", + "value": "#4287f6", "step": 600, "type": "color" } @@ -175,88 +175,88 @@ }, "ok": { "base": { - "value": "#21bf5b", + "value": "#befad2", "step": 100, "type": "color" }, "hovered": { - "value": "#21bf5b", + "value": "#befad2", "step": 100, "type": "color" }, "active": { - "value": "#21bf5b", + "value": "#befad2", "step": 100, "type": "color" }, "focused": { - "value": "#21bf5b", + "value": "#befad2", "step": 100, "type": "color" } }, "error": { "base": { - "value": "#ec3939", + "value": "#fdd4d4", "step": 100, "type": "color" }, "hovered": { - "value": "#ec3939", + "value": "#fdd4d4", "step": 100, "type": "color" }, "active": { - "value": "#ec3939", + "value": "#fdd4d4", "step": 100, "type": "color" }, "focused": { - "value": "#ec3939", + "value": "#fdd4d4", "step": 100, "type": "color" } }, "warning": { "base": { - "value": "#e0ac0b", + "value": "#fceabc", "step": 100, "type": "color" }, "hovered": { - "value": "#e0ac0b", + "value": "#fceabc", "step": 100, "type": "color" }, "active": { - "value": "#e0ac0b", + "value": "#fceabc", "step": 100, "type": "color" }, "focused": { - "value": "#e0ac0b", + "value": "#fceabc", "step": 100, "type": "color" } }, "info": { "base": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, "hovered": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, "active": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, "focused": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" } @@ -289,22 +289,22 @@ "type": "color" }, "ok": { - "value": "#20b557", + "value": "#8ff4b2", "step": 200, "type": "color" }, "error": { - "value": "#e72727", + "value": "#fbbdbd", "step": 200, "type": "color" }, "warning": { - "value": "#cfa00f", + "value": "#fadc89", "step": 200, "type": "color" }, "info": { - "value": "#1f6eed", + "value": "#b4cffb", "step": 200, "type": "color" } @@ -337,24 +337,24 @@ "type": "color" }, "inserted": { - "value": "#21bf5b", + "value": "#befad2", "step": 100, "type": "color" }, "deleted": { - "value": "#ec3939", + "value": "#fdd4d4", "step": 100, "type": "color" }, "modified": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" } }, "highlight": { "selection": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, @@ -408,39 +408,39 @@ "type": "color" }, "comment": { - "value": "#7aba18", + "value": "#bdf36b", "type": "color" }, "keyword": { - "value": "#1588bc", + "value": "#59c3f5", "type": "color" }, "function": { - "value": "#cfa00f", + "value": "#fadc89", "type": "color" }, "type": { - "value": "#17a696", + "value": "#26ebd5", "type": "color" }, "variant": { - "value": "#17a696", + "value": "#26ebd5", "type": "color" }, "property": { - "value": "#148dc4", + "value": "#81d2f8", "type": "color" }, "enum": { - "value": "#1588bc", + "value": "#59c3f5", "type": "color" }, "operator": { - "value": "#1588bc", + "value": "#59c3f5", "type": "color" }, "string": { - "value": "#d66211", + "value": "#fab78b", "type": "color" }, "number": { @@ -455,176 +455,176 @@ "player": { "1": { "baseColor": { - "value": "#195cc8", + "value": "#4287f6", "step": 600, "type": "color" }, "cursorColor": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" }, "selectionColor": { - "value": "#307af3", + "value": "#d0e2fd", "step": 100, "type": "color" }, "borderColor": { - "value": "#185fd0", + "value": "#6099f7", "step": 500, "type": "color" } }, "2": { "baseColor": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" }, "cursorColor": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" }, "selectionColor": { - "value": "#80c517", + "value": "#dbf9ac", "step": 100, "type": "color" }, "borderColor": { - "value": "#70a919", + "value": "#87d116", "step": 500, "type": "color" } }, "3": { "baseColor": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" }, "cursorColor": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" }, "selectionColor": { - "value": "#5558ee", + "value": "#d4d5fd", "step": 100, "type": "color" }, "borderColor": { - "value": "#1e22db", + "value": "#777af4", "step": 500, "type": "color" } }, "4": { "baseColor": { - "value": "#c45c14", + "value": "#f98a3d", "step": 500, "type": "color" }, "cursorColor": { - "value": "#c45c14", + "value": "#f98a3d", "step": 500, "type": "color" }, "selectionColor": { - "value": "#f66e0f", + "value": "#fde0cd", "step": 100, "type": "color" }, "borderColor": { - "value": "#c45c14", + "value": "#f98a3d", "step": 500, "type": "color" } }, "5": { "baseColor": { - "value": "#7d19dc", + "value": "#b671f8", "step": 500, "type": "color" }, "cursorColor": { - "value": "#7d19dc", + "value": "#b671f8", "step": 500, "type": "color" }, "selectionColor": { - "value": "#a048f4", + "value": "#e9d4fd", "step": 100, "type": "color" }, "borderColor": { - "value": "#7d19dc", + "value": "#b671f8", "step": 500, "type": "color" } }, "6": { "baseColor": { - "value": "#17a293", + "value": "#16ddc7", "step": 400, "type": "color" }, "cursorColor": { - "value": "#17a293", + "value": "#16ddc7", "step": 400, "type": "color" }, "selectionColor": { - "value": "#15b3a2", + "value": "#b4faf2", "step": 100, "type": "color" }, "borderColor": { - "value": "#17a293", + "value": "#16ddc7", "step": 400, "type": "color" } }, "7": { "baseColor": { - "value": "#d51e79", + "value": "#f58ac0", "step": 400, "type": "color" }, "cursorColor": { - "value": "#d51e79", + "value": "#f58ac0", "step": 400, "type": "color" }, "selectionColor": { - "value": "#e93d92", + "value": "#fcd4e8", "step": 100, "type": "color" }, "borderColor": { - "value": "#d51e79", + "value": "#f58ac0", "step": 400, "type": "color" } }, "8": { "baseColor": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" }, "cursorColor": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" }, "selectionColor": { - "value": "#e0ac0b", + "value": "#fceabc", "step": 100, "type": "color" }, "borderColor": { - "value": "#bc9212", + "value": "#f6bc09", "step": 400, "type": "color" } diff --git a/styles/utils/color.ts b/styles/utils/color.ts index c7506f696d4cebd54ebc2045be2b7dc9d14f2c7b..156fc5ba41b2bbf0cfc9dd8080db9bf6cd6c320d 100644 --- a/styles/utils/color.ts +++ b/styles/utils/color.ts @@ -22,8 +22,8 @@ export function colorRamp( .scale([startColor, color, endColor]) .domain([0, 0.5, 1]) .mode("hsl") - .gamma(0.2) - // .correctLightness(true) + .gamma(1) + .correctLightness(true) .padding([0, 0.15]); } From a3fc719a526e985d5f5296471751ac94b020f55e Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sun, 3 Apr 2022 15:03:38 -0400 Subject: [PATCH 59/71] Add a combined `tokens.json` for Figma Tokens - Having individual json files for themes and core is useful for copy+pasting while exploring changes - Figma github sync requires a single json file to pull down --- styles/buildFigmaTokens.ts | 42 +- styles/figma/tokens.json | 2431 ++++++++++++++++++++++++++++++++++++ 2 files changed, 2460 insertions(+), 13 deletions(-) create mode 100644 styles/figma/tokens.json diff --git a/styles/buildFigmaTokens.ts b/styles/buildFigmaTokens.ts index 6b3285e58e24c7f0fefa67a40c512202fdbe4c5b..bb77046e85c53007c272ac791e104b9a908fd80d 100644 --- a/styles/buildFigmaTokens.ts +++ b/styles/buildFigmaTokens.ts @@ -5,8 +5,13 @@ import light from "./themes/light"; import Theme from "./themes/theme"; import { colors, fontFamilies, fontSizes, fontWeights } from "./tokens"; +let themes = [ + dark, + light +]; + // Organize theme tokens -function themeTokens(theme: Theme): Object { +function themeTokens(theme: Theme) { return { meta: { themeName: theme.name, @@ -71,16 +76,6 @@ function themeTokens(theme: Theme): Object { }; } -let themes = [themeTokens(dark), themeTokens(light)]; - -// Create {theme}.json -const themePath = path.resolve(`${__dirname}/figma`); -themes.forEach((theme) => { - const tokenJSON = JSON.stringify(theme, null, 2); - //@ts-ignore //TODO: IDK what the hell TS wants me to do here - fs.writeFileSync(`${themePath}/${theme.meta.themeName}.json`, tokenJSON); -}); - // Organize core tokens const coreTokens = { color: { @@ -93,7 +88,28 @@ const coreTokens = { size: fontSizes, }; +const combinedTokens = { + core: coreTokens, + dark: themeTokens(dark), + light: themeTokens(light) +} + // Create core.json const corePath = path.resolve(`${__dirname}/figma/core.json`); -const coreTokenJSON = JSON.stringify(coreTokens, null, 2); -fs.writeFileSync(corePath, coreTokenJSON); +const coreJSON = JSON.stringify(coreTokens, null, 2); +fs.writeFileSync(corePath, coreJSON); +console.log(`- Core: core.json created`); + +// Create {theme}.json +const themePath = path.resolve(`${__dirname}/figma`); +themes.forEach((theme) => { + const tokenJSON = JSON.stringify(themeTokens(theme), null, 2); + fs.writeFileSync(`${themePath}/${theme.name}.json`, tokenJSON); + console.log(`- Theme: ${theme.name}.json created`); +}); + +// Create combined tokens.json +const combinedPath = path.resolve(`${__dirname}/figma/tokens.json`); +const combinedJSON = JSON.stringify(combinedTokens, null, 2); +fs.writeFileSync(combinedPath, combinedJSON); +console.log(`- Combined: tokens.json created`); \ No newline at end of file diff --git a/styles/figma/tokens.json b/styles/figma/tokens.json new file mode 100644 index 0000000000000000000000000000000000000000..cffc3ed16de7a4dec1fa38fa2026243c81629055 --- /dev/null +++ b/styles/figma/tokens.json @@ -0,0 +1,2431 @@ +{ + "core": { + "color": { + "neutral": { + "0": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "25": { + "value": "#f8f8f8", + "step": 25, + "type": "color" + }, + "50": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "75": { + "value": "#eaeaea", + "step": 75, + "type": "color" + }, + "100": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "125": { + "value": "#dcdcdc", + "step": 125, + "type": "color" + }, + "150": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + }, + "175": { + "value": "#cdcdcd", + "step": 175, + "type": "color" + }, + "200": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "225": { + "value": "#bfbfbf", + "step": 225, + "type": "color" + }, + "250": { + "value": "#b8b8b8", + "step": 250, + "type": "color" + }, + "275": { + "value": "#b1b1b1", + "step": 275, + "type": "color" + }, + "300": { + "value": "#aaaaaa", + "step": 300, + "type": "color" + }, + "325": { + "value": "#a3a3a3", + "step": 325, + "type": "color" + }, + "350": { + "value": "#9c9c9c", + "step": 350, + "type": "color" + }, + "375": { + "value": "#959595", + "step": 375, + "type": "color" + }, + "400": { + "value": "#8e8e8e", + "step": 400, + "type": "color" + }, + "425": { + "value": "#878787", + "step": 425, + "type": "color" + }, + "450": { + "value": "#808080", + "step": 450, + "type": "color" + }, + "475": { + "value": "#787878", + "step": 475, + "type": "color" + }, + "500": { + "value": "#717171", + "step": 500, + "type": "color" + }, + "525": { + "value": "#6a6a6a", + "step": 525, + "type": "color" + }, + "550": { + "value": "#636363", + "step": 550, + "type": "color" + }, + "575": { + "value": "#5c5c5c", + "step": 575, + "type": "color" + }, + "600": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "625": { + "value": "#4e4e4e", + "step": 625, + "type": "color" + }, + "650": { + "value": "#474747", + "step": 650, + "type": "color" + }, + "675": { + "value": "#404040", + "step": 675, + "type": "color" + }, + "700": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "725": { + "value": "#323232", + "step": 725, + "type": "color" + }, + "750": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "775": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "800": { + "value": "#1c1c1c", + "step": 800, + "type": "color" + }, + "825": { + "value": "#151515", + "step": 825, + "type": "color" + }, + "850": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "875": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "900": { + "value": "#000000", + "step": 900, + "type": "color" + } + }, + "rose": { + "0": { + "value": "#feecef", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fdd5db", + "step": 100, + "type": "color" + }, + "200": { + "value": "#fbbdc8", + "step": 200, + "type": "color" + }, + "300": { + "value": "#faa4b3", + "step": 300, + "type": "color" + }, + "400": { + "value": "#f98a9d", + "step": 400, + "type": "color" + }, + "500": { + "value": "#f76e86", + "step": 500, + "type": "color" + }, + "600": { + "value": "#f54c69", + "step": 600, + "type": "color" + }, + "700": { + "value": "#ec2548", + "step": 700, + "type": "color" + }, + "800": { + "value": "#d21939", + "step": 800, + "type": "color" + }, + "900": { + "value": "#b41a35", + "step": 900, + "type": "color" + } + }, + "red": { + "0": { + "value": "#feecec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fdd4d4", + "step": 100, + "type": "color" + }, + "200": { + "value": "#fbbdbd", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f9a5a5", + "step": 300, + "type": "color" + }, + "400": { + "value": "#f78c8c", + "step": 400, + "type": "color" + }, + "500": { + "value": "#f47171", + "step": 500, + "type": "color" + }, + "600": { + "value": "#f15252", + "step": 600, + "type": "color" + }, + "700": { + "value": "#e82c2c", + "step": 700, + "type": "color" + }, + "800": { + "value": "#d11c1c", + "step": 800, + "type": "color" + }, + "900": { + "value": "#b21c1c", + "step": 900, + "type": "color" + } + }, + "orange": { + "0": { + "value": "#fef3ec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fde0cd", + "step": 100, + "type": "color" + }, + "200": { + "value": "#fbccac", + "step": 200, + "type": "color" + }, + "300": { + "value": "#fab78b", + "step": 300, + "type": "color" + }, + "400": { + "value": "#faa266", + "step": 400, + "type": "color" + }, + "500": { + "value": "#f98a3d", + "step": 500, + "type": "color" + }, + "600": { + "value": "#f77113", + "step": 600, + "type": "color" + }, + "700": { + "value": "#e0650f", + "step": 700, + "type": "color" + }, + "800": { + "value": "#c65d14", + "step": 800, + "type": "color" + }, + "900": { + "value": "#ac5517", + "step": 900, + "type": "color" + } + }, + "amber": { + "0": { + "value": "#fef7ec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fce7c4", + "step": 100, + "type": "color" + }, + "200": { + "value": "#fad69d", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f8c570", + "step": 300, + "type": "color" + }, + "400": { + "value": "#f7b241", + "step": 400, + "type": "color" + }, + "500": { + "value": "#f59f0c", + "step": 500, + "type": "color" + }, + "600": { + "value": "#e1930e", + "step": 600, + "type": "color" + }, + "700": { + "value": "#cd8812", + "step": 700, + "type": "color" + }, + "800": { + "value": "#ba7d15", + "step": 800, + "type": "color" + }, + "900": { + "value": "#a77218", + "step": 900, + "type": "color" + } + }, + "yellow": { + "0": { + "value": "#fef9ec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fceabc", + "step": 100, + "type": "color" + }, + "200": { + "value": "#fadc89", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f8cc4e", + "step": 300, + "type": "color" + }, + "400": { + "value": "#f6bc09", + "step": 400, + "type": "color" + }, + "500": { + "value": "#e5af09", + "step": 500, + "type": "color" + }, + "600": { + "value": "#d4a30d", + "step": 600, + "type": "color" + }, + "700": { + "value": "#c49811", + "step": 700, + "type": "color" + }, + "800": { + "value": "#b48d14", + "step": 800, + "type": "color" + }, + "900": { + "value": "#a48117", + "step": 900, + "type": "color" + } + }, + "lime": { + "0": { + "value": "#f7feec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#dbf9ac", + "step": 100, + "type": "color" + }, + "200": { + "value": "#bdf36b", + "step": 200, + "type": "color" + }, + "300": { + "value": "#9feb2b", + "step": 300, + "type": "color" + }, + "400": { + "value": "#90df17", + "step": 400, + "type": "color" + }, + "500": { + "value": "#87d116", + "step": 500, + "type": "color" + }, + "600": { + "value": "#7fc417", + "step": 600, + "type": "color" + }, + "700": { + "value": "#78b618", + "step": 700, + "type": "color" + }, + "800": { + "value": "#70aa19", + "step": 800, + "type": "color" + }, + "900": { + "value": "#699c1a", + "step": 900, + "type": "color" + } + }, + "green": { + "0": { + "value": "#ecfef2", + "step": 0, + "type": "color" + }, + "100": { + "value": "#befad2", + "step": 100, + "type": "color" + }, + "200": { + "value": "#8ff4b2", + "step": 200, + "type": "color" + }, + "300": { + "value": "#60ec92", + "step": 300, + "type": "color" + }, + "400": { + "value": "#34e173", + "step": 400, + "type": "color" + }, + "500": { + "value": "#23d464", + "step": 500, + "type": "color" + }, + "600": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "700": { + "value": "#20b658", + "step": 700, + "type": "color" + }, + "800": { + "value": "#1ea851", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1d9b4b", + "step": 900, + "type": "color" + } + }, + "emerald": { + "0": { + "value": "#ecfef8", + "step": 0, + "type": "color" + }, + "100": { + "value": "#b3fbe3", + "step": 100, + "type": "color" + }, + "200": { + "value": "#72f6ca", + "step": 200, + "type": "color" + }, + "300": { + "value": "#1feda9", + "step": 300, + "type": "color" + }, + "400": { + "value": "#12e09b", + "step": 400, + "type": "color" + }, + "500": { + "value": "#11d091", + "step": 500, + "type": "color" + }, + "600": { + "value": "#11c287", + "step": 600, + "type": "color" + }, + "700": { + "value": "#11b37e", + "step": 700, + "type": "color" + }, + "800": { + "value": "#15a575", + "step": 800, + "type": "color" + }, + "900": { + "value": "#18976c", + "step": 900, + "type": "color" + } + }, + "teal": { + "0": { + "value": "#ecfefc", + "step": 0, + "type": "color" + }, + "100": { + "value": "#b4faf2", + "step": 100, + "type": "color" + }, + "200": { + "value": "#73f4e6", + "step": 200, + "type": "color" + }, + "300": { + "value": "#26ebd5", + "step": 300, + "type": "color" + }, + "400": { + "value": "#16ddc7", + "step": 400, + "type": "color" + }, + "500": { + "value": "#15cfba", + "step": 500, + "type": "color" + }, + "600": { + "value": "#15c1ae", + "step": 600, + "type": "color" + }, + "700": { + "value": "#15b2a1", + "step": 700, + "type": "color" + }, + "800": { + "value": "#17a495", + "step": 800, + "type": "color" + }, + "900": { + "value": "#199788", + "step": 900, + "type": "color" + } + }, + "cyan": { + "0": { + "value": "#ecfcfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#bcf5fc", + "step": 100, + "type": "color" + }, + "200": { + "value": "#86edfa", + "step": 200, + "type": "color" + }, + "300": { + "value": "#41e3f8", + "step": 300, + "type": "color" + }, + "400": { + "value": "#07d5f1", + "step": 400, + "type": "color" + }, + "500": { + "value": "#07c7e1", + "step": 500, + "type": "color" + }, + "600": { + "value": "#07b8d0", + "step": 600, + "type": "color" + }, + "700": { + "value": "#0daabf", + "step": 700, + "type": "color" + }, + "800": { + "value": "#119bae", + "step": 800, + "type": "color" + }, + "900": { + "value": "#168e9e", + "step": 900, + "type": "color" + } + }, + "sky": { + "0": { + "value": "#ecf8fe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#caecfc", + "step": 100, + "type": "color" + }, + "200": { + "value": "#a6defa", + "step": 200, + "type": "color" + }, + "300": { + "value": "#81d2f8", + "step": 300, + "type": "color" + }, + "400": { + "value": "#59c3f5", + "step": 400, + "type": "color" + }, + "500": { + "value": "#2db4f3", + "step": 500, + "type": "color" + }, + "600": { + "value": "#0ea5e8", + "step": 600, + "type": "color" + }, + "700": { + "value": "#1296d1", + "step": 700, + "type": "color" + }, + "800": { + "value": "#1686ba", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1878a4", + "step": 900, + "type": "color" + } + }, + "blue": { + "0": { + "value": "#ecf3fe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "200": { + "value": "#b4cffb", + "step": 200, + "type": "color" + }, + "300": { + "value": "#99befa", + "step": 300, + "type": "color" + }, + "400": { + "value": "#7cacf9", + "step": 400, + "type": "color" + }, + "500": { + "value": "#6099f7", + "step": 500, + "type": "color" + }, + "600": { + "value": "#4287f6", + "step": 600, + "type": "color" + }, + "700": { + "value": "#2774f0", + "step": 700, + "type": "color" + }, + "800": { + "value": "#1762db", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1a55b4", + "step": 900, + "type": "color" + } + }, + "indigo": { + "0": { + "value": "#ececfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#d4d5fd", + "step": 100, + "type": "color" + }, + "200": { + "value": "#bebefb", + "step": 200, + "type": "color" + }, + "300": { + "value": "#a7a8f9", + "step": 300, + "type": "color" + }, + "400": { + "value": "#8f90f6", + "step": 400, + "type": "color" + }, + "500": { + "value": "#777af4", + "step": 500, + "type": "color" + }, + "600": { + "value": "#5f62f0", + "step": 600, + "type": "color" + }, + "700": { + "value": "#464aeb", + "step": 700, + "type": "color" + }, + "800": { + "value": "#292de4", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1d20bb", + "step": 900, + "type": "color" + } + }, + "violet": { + "0": { + "value": "#f1ecfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#e0d5fd", + "step": 100, + "type": "color" + }, + "200": { + "value": "#cfbcfb", + "step": 200, + "type": "color" + }, + "300": { + "value": "#bda4fa", + "step": 300, + "type": "color" + }, + "400": { + "value": "#ad8cf9", + "step": 400, + "type": "color" + }, + "500": { + "value": "#9b73f7", + "step": 500, + "type": "color" + }, + "600": { + "value": "#8959f6", + "step": 600, + "type": "color" + }, + "700": { + "value": "#7540f0", + "step": 700, + "type": "color" + }, + "800": { + "value": "#5e22e7", + "step": 800, + "type": "color" + }, + "900": { + "value": "#4c1bbc", + "step": 900, + "type": "color" + } + }, + "purple": { + "0": { + "value": "#f5ecfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#e9d4fd", + "step": 100, + "type": "color" + }, + "200": { + "value": "#dcbcfc", + "step": 200, + "type": "color" + }, + "300": { + "value": "#d0a4fa", + "step": 300, + "type": "color" + }, + "400": { + "value": "#c38bf9", + "step": 400, + "type": "color" + }, + "500": { + "value": "#b671f8", + "step": 500, + "type": "color" + }, + "600": { + "value": "#a856f7", + "step": 600, + "type": "color" + }, + "700": { + "value": "#9739f1", + "step": 700, + "type": "color" + }, + "800": { + "value": "#831ae6", + "step": 800, + "type": "color" + }, + "900": { + "value": "#6d1bbb", + "step": 900, + "type": "color" + } + }, + "fuschia": { + "0": { + "value": "#fdecfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fad4fc", + "step": 100, + "type": "color" + }, + "200": { + "value": "#f6bbfa", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f1a2f7", + "step": 300, + "type": "color" + }, + "400": { + "value": "#ec8af3", + "step": 400, + "type": "color" + }, + "500": { + "value": "#e56fee", + "step": 500, + "type": "color" + }, + "600": { + "value": "#dd51e7", + "step": 600, + "type": "color" + }, + "700": { + "value": "#d32edf", + "step": 700, + "type": "color" + }, + "800": { + "value": "#bc21c8", + "step": 800, + "type": "color" + }, + "900": { + "value": "#a41ead", + "step": 900, + "type": "color" + } + }, + "pink": { + "0": { + "value": "#feecf5", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fcd4e8", + "step": 100, + "type": "color" + }, + "200": { + "value": "#fbbcdb", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f8a5ce", + "step": 300, + "type": "color" + }, + "400": { + "value": "#f58ac0", + "step": 400, + "type": "color" + }, + "500": { + "value": "#f26fb0", + "step": 500, + "type": "color" + }, + "600": { + "value": "#ee519e", + "step": 600, + "type": "color" + }, + "700": { + "value": "#e52e89", + "step": 700, + "type": "color" + }, + "800": { + "value": "#ce1e76", + "step": 800, + "type": "color" + }, + "900": { + "value": "#b21d67", + "step": 900, + "type": "color" + } + } + }, + "text": { + "family": { + "sans": { + "value": "Zed Sans", + "type": "fontFamily" + }, + "mono": { + "value": "Zed Mono", + "type": "fontFamily" + } + }, + "weight": { + "thin": { + "value": "thin", + "type": "fontWeight" + }, + "extra_light": { + "value": "extra_light", + "type": "fontWeight" + }, + "light": { + "value": "light", + "type": "fontWeight" + }, + "normal": { + "value": "normal", + "type": "fontWeight" + }, + "medium": { + "value": "medium", + "type": "fontWeight" + }, + "semibold": { + "value": "semibold", + "type": "fontWeight" + }, + "bold": { + "value": "bold", + "type": "fontWeight" + }, + "extra_bold": { + "value": "extra_bold", + "type": "fontWeight" + }, + "black": { + "value": "black", + "type": "fontWeight" + } + } + }, + "size": { + "3xs": { + "value": 8, + "type": "fontSize" + }, + "2xs": { + "value": 10, + "type": "fontSize" + }, + "xs": { + "value": 12, + "type": "fontSize" + }, + "sm": { + "value": 14, + "type": "fontSize" + }, + "md": { + "value": 16, + "type": "fontSize" + }, + "lg": { + "value": 18, + "type": "fontSize" + }, + "xl": { + "value": 20, + "type": "fontSize" + } + } + }, + "dark": { + "meta": { + "themeName": "dark" + }, + "text": { + "primary": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "secondary": { + "value": "#9c9c9c", + "step": 350, + "type": "color" + }, + "muted": { + "value": "#636363", + "step": 550, + "type": "color" + }, + "placeholder": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "active": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "feature": { + "value": "#2db4f3", + "step": 500, + "type": "color" + }, + "ok": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "error": { + "value": "#f78c8c", + "step": 400, + "type": "color" + }, + "warning": { + "value": "#f8c570", + "step": 300, + "type": "color" + }, + "info": { + "value": "#6099f7", + "step": 500, + "type": "color" + } + }, + "icon": { + "primary": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "secondary": { + "value": "#9c9c9c", + "step": 350, + "type": "color" + }, + "muted": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "placeholder": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "active": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "feature": { + "value": "#2db4f3", + "step": 500, + "type": "color" + }, + "ok": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "error": { + "value": "#f47171", + "step": 500, + "type": "color" + }, + "warning": { + "value": "#f7b241", + "step": 400, + "type": "color" + }, + "info": { + "value": "#4287f6", + "step": 600, + "type": "color" + } + }, + "background": { + "100": { + "base": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "hovered": { + "value": "#323232", + "step": 725, + "type": "color" + }, + "active": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "focused": { + "value": "#404040", + "step": 675, + "type": "color" + } + }, + "300": { + "base": { + "value": "#1c1c1c", + "step": 800, + "type": "color" + }, + "hovered": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "active": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "focused": { + "value": "#323232", + "step": 725, + "type": "color" + } + }, + "500": { + "base": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "hovered": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "active": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "focused": { + "value": "#151515", + "step": 825, + "type": "color" + } + }, + "ok": { + "base": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "hovered": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "active": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "focused": { + "value": "#22c55e", + "step": 600, + "type": "color" + } + }, + "error": { + "base": { + "value": "#f78c8c", + "step": 400, + "type": "color" + }, + "hovered": { + "value": "#f78c8c", + "step": 400, + "type": "color" + }, + "active": { + "value": "#f78c8c", + "step": 400, + "type": "color" + }, + "focused": { + "value": "#f78c8c", + "step": 400, + "type": "color" + } + }, + "warning": { + "base": { + "value": "#f8c570", + "step": 300, + "type": "color" + }, + "hovered": { + "value": "#f8c570", + "step": 300, + "type": "color" + }, + "active": { + "value": "#f8c570", + "step": 300, + "type": "color" + }, + "focused": { + "value": "#f8c570", + "step": 300, + "type": "color" + } + }, + "info": { + "base": { + "value": "#6099f7", + "step": 500, + "type": "color" + }, + "hovered": { + "value": "#6099f7", + "step": 500, + "type": "color" + }, + "active": { + "value": "#6099f7", + "step": 500, + "type": "color" + }, + "focused": { + "value": "#6099f7", + "step": 500, + "type": "color" + } + } + }, + "border": { + "primary": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "secondary": { + "value": "#151515", + "step": 825, + "type": "color" + }, + "muted": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "focused": { + "value": "#717171", + "step": 500, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "ok": { + "value": "#23d464", + "step": 500, + "type": "color" + }, + "error": { + "value": "#f47171", + "step": 500, + "type": "color" + }, + "warning": { + "value": "#f59f0c", + "step": 500, + "type": "color" + }, + "info": { + "value": "#6099f7", + "step": 500, + "type": "color" + } + }, + "editor": { + "background": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "indent_guide": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "indent_guide_active": { + "value": "#151515", + "step": 825, + "type": "color" + }, + "line": { + "active": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "highlighted": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "inserted": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "deleted": { + "value": "#f78c8c", + "step": 400, + "type": "color" + }, + "modified": { + "value": "#6099f7", + "step": 500, + "type": "color" + } + }, + "highlight": { + "selection": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "occurrence": { + "value": "#777af4", + "step": 500, + "type": "color" + }, + "activeOccurrence": { + "value": "#8f90f6", + "step": 400, + "type": "color" + }, + "matchingBracket": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "match": { + "value": "#87d116", + "step": 500, + "type": "color" + }, + "activeMatch": { + "value": "#90df17", + "step": 400, + "type": "color" + }, + "related": { + "value": "#151515", + "step": 825, + "type": "color" + } + }, + "gutter": { + "primary": { + "value": "#636363", + "step": 550, + "type": "color" + }, + "active": { + "value": "#ffffff", + "step": 0, + "type": "color" + } + } + }, + "syntax": { + "primary": { + "value": "#f1f1f1", + "type": "color" + }, + "comment": { + "value": "#bdf36b", + "type": "color" + }, + "keyword": { + "value": "#59c3f5", + "type": "color" + }, + "function": { + "value": "#fadc89", + "type": "color" + }, + "type": { + "value": "#26ebd5", + "type": "color" + }, + "variant": { + "value": "#26ebd5", + "type": "color" + }, + "property": { + "value": "#81d2f8", + "type": "color" + }, + "enum": { + "value": "#59c3f5", + "type": "color" + }, + "operator": { + "value": "#59c3f5", + "type": "color" + }, + "string": { + "value": "#fab78b", + "type": "color" + }, + "number": { + "value": "#d5d5d5", + "type": "color" + }, + "boolean": { + "value": "#d5d5d5", + "type": "color" + } + }, + "player": { + "1": { + "baseColor": { + "value": "#4287f6", + "step": 600, + "type": "color" + }, + "cursorColor": { + "value": "#4287f6", + "step": 600, + "type": "color" + }, + "selectionColor": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#4287f6", + "step": 600, + "type": "color" + } + }, + "2": { + "baseColor": { + "value": "#87d116", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#87d116", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#dbf9ac", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#87d116", + "step": 500, + "type": "color" + } + }, + "3": { + "baseColor": { + "value": "#777af4", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#777af4", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#d4d5fd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#777af4", + "step": 500, + "type": "color" + } + }, + "4": { + "baseColor": { + "value": "#f98a3d", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#f98a3d", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#fde0cd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#f98a3d", + "step": 500, + "type": "color" + } + }, + "5": { + "baseColor": { + "value": "#b671f8", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#b671f8", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#e9d4fd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#b671f8", + "step": 500, + "type": "color" + } + }, + "6": { + "baseColor": { + "value": "#16ddc7", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#16ddc7", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#b4faf2", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#16ddc7", + "step": 400, + "type": "color" + } + }, + "7": { + "baseColor": { + "value": "#f58ac0", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#f58ac0", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#fcd4e8", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#f58ac0", + "step": 400, + "type": "color" + } + }, + "8": { + "baseColor": { + "value": "#f6bc09", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#f6bc09", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#fceabc", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#f6bc09", + "step": 400, + "type": "color" + } + } + }, + "shadowAlpha": { + "value": 0.32, + "type": "number" + } + }, + "light": { + "meta": { + "themeName": "light" + }, + "text": { + "primary": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "secondary": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "muted": { + "value": "#808080", + "step": 450, + "type": "color" + }, + "placeholder": { + "value": "#aaaaaa", + "step": 300, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "feature": { + "value": "#6099f7", + "step": 500, + "type": "color" + }, + "ok": { + "value": "#23d464", + "step": 500, + "type": "color" + }, + "error": { + "value": "#f47171", + "step": 500, + "type": "color" + }, + "warning": { + "value": "#e5af09", + "step": 500, + "type": "color" + }, + "info": { + "value": "#6099f7", + "step": 500, + "type": "color" + } + }, + "icon": { + "primary": { + "value": "#aaaaaa", + "step": 300, + "type": "color" + }, + "secondary": { + "value": "#717171", + "step": 500, + "type": "color" + }, + "muted": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "placeholder": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + }, + "feature": { + "value": "#0ea5e8", + "step": 600, + "type": "color" + }, + "ok": { + "value": "#22c55e", + "step": 600, + "type": "color" + }, + "error": { + "value": "#f15252", + "step": 600, + "type": "color" + }, + "warning": { + "value": "#f6bc09", + "step": 400, + "type": "color" + }, + "info": { + "value": "#4287f6", + "step": 600, + "type": "color" + } + }, + "background": { + "100": { + "base": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + }, + "active": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "focused": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + } + }, + "300": { + "base": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "hovered": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "active": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + }, + "focused": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + } + }, + "500": { + "base": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "hovered": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "active": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + } + }, + "ok": { + "base": { + "value": "#befad2", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#befad2", + "step": 100, + "type": "color" + }, + "active": { + "value": "#befad2", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#befad2", + "step": 100, + "type": "color" + } + }, + "error": { + "base": { + "value": "#fdd4d4", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#fdd4d4", + "step": 100, + "type": "color" + }, + "active": { + "value": "#fdd4d4", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#fdd4d4", + "step": 100, + "type": "color" + } + }, + "warning": { + "base": { + "value": "#fceabc", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#fceabc", + "step": 100, + "type": "color" + }, + "active": { + "value": "#fceabc", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#fceabc", + "step": 100, + "type": "color" + } + }, + "info": { + "base": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "hovered": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "active": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "focused": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + } + } + }, + "border": { + "primary": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "secondary": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "muted": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "focused": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "active": { + "value": "#b8b8b8", + "step": 250, + "type": "color" + }, + "ok": { + "value": "#8ff4b2", + "step": 200, + "type": "color" + }, + "error": { + "value": "#fbbdbd", + "step": 200, + "type": "color" + }, + "warning": { + "value": "#fadc89", + "step": 200, + "type": "color" + }, + "info": { + "value": "#b4cffb", + "step": 200, + "type": "color" + } + }, + "editor": { + "background": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "indent_guide": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "indent_guide_active": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "line": { + "active": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "highlighted": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "inserted": { + "value": "#befad2", + "step": 100, + "type": "color" + }, + "deleted": { + "value": "#fdd4d4", + "step": 100, + "type": "color" + }, + "modified": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + } + }, + "highlight": { + "selection": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "occurrence": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "activeOccurrence": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "matchingBracket": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "match": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "activeMatch": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "related": { + "value": "#ffffff", + "step": 0, + "type": "color" + } + }, + "gutter": { + "primary": { + "value": "#808080", + "step": 450, + "type": "color" + }, + "active": { + "value": "#000000", + "step": 900, + "type": "color" + } + } + }, + "syntax": { + "primary": { + "value": "#2b2b2b", + "type": "color" + }, + "comment": { + "value": "#bdf36b", + "type": "color" + }, + "keyword": { + "value": "#59c3f5", + "type": "color" + }, + "function": { + "value": "#fadc89", + "type": "color" + }, + "type": { + "value": "#26ebd5", + "type": "color" + }, + "variant": { + "value": "#26ebd5", + "type": "color" + }, + "property": { + "value": "#81d2f8", + "type": "color" + }, + "enum": { + "value": "#59c3f5", + "type": "color" + }, + "operator": { + "value": "#59c3f5", + "type": "color" + }, + "string": { + "value": "#fab78b", + "type": "color" + }, + "number": { + "value": "#d5d5d5", + "type": "color" + }, + "boolean": { + "value": "#d5d5d5", + "type": "color" + } + }, + "player": { + "1": { + "baseColor": { + "value": "#4287f6", + "step": 600, + "type": "color" + }, + "cursorColor": { + "value": "#6099f7", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#d0e2fd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#6099f7", + "step": 500, + "type": "color" + } + }, + "2": { + "baseColor": { + "value": "#87d116", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#87d116", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#dbf9ac", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#87d116", + "step": 500, + "type": "color" + } + }, + "3": { + "baseColor": { + "value": "#777af4", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#777af4", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#d4d5fd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#777af4", + "step": 500, + "type": "color" + } + }, + "4": { + "baseColor": { + "value": "#f98a3d", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#f98a3d", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#fde0cd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#f98a3d", + "step": 500, + "type": "color" + } + }, + "5": { + "baseColor": { + "value": "#b671f8", + "step": 500, + "type": "color" + }, + "cursorColor": { + "value": "#b671f8", + "step": 500, + "type": "color" + }, + "selectionColor": { + "value": "#e9d4fd", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#b671f8", + "step": 500, + "type": "color" + } + }, + "6": { + "baseColor": { + "value": "#16ddc7", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#16ddc7", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#b4faf2", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#16ddc7", + "step": 400, + "type": "color" + } + }, + "7": { + "baseColor": { + "value": "#f58ac0", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#f58ac0", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#fcd4e8", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#f58ac0", + "step": 400, + "type": "color" + } + }, + "8": { + "baseColor": { + "value": "#f6bc09", + "step": 400, + "type": "color" + }, + "cursorColor": { + "value": "#f6bc09", + "step": 400, + "type": "color" + }, + "selectionColor": { + "value": "#fceabc", + "step": 100, + "type": "color" + }, + "borderColor": { + "value": "#f6bc09", + "step": 400, + "type": "color" + } + } + }, + "shadowAlpha": { + "value": 0.12, + "type": "number" + } + } +} \ No newline at end of file From 3dc99a874330b0a93afa5f41956b9e687e8a967d Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Sun, 3 Apr 2022 21:15:14 -0400 Subject: [PATCH 60/71] Update dark, light themes. --- crates/zed/assets/themes/dark.json | 130 +++++++++++++++---------- crates/zed/assets/themes/light.json | 142 +++++++++++++++++----------- styles/styleTree/editor.ts | 20 +++- styles/styleTree/workspace.ts | 2 +- styles/themes/dark.ts | 48 +++++----- styles/themes/light.ts | 38 ++++---- styles/utils/color.ts | 6 +- 7 files changed, 228 insertions(+), 158 deletions(-) diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json index da7fa4650ee609d46ce2eacf5dcf8eb4a3f8088c..1334a65727f8d099b5bc363fd0e432ef828808ba 100644 --- a/crates/zed/assets/themes/dark.json +++ b/crates/zed/assets/themes/dark.json @@ -18,7 +18,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#2db4f3", + "color": "#1096d3", "weight": "bold", "size": 14 } @@ -38,7 +38,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#2db4f3", + "color": "#1096d3", "weight": "bold", "size": 14 }, @@ -70,8 +70,8 @@ "size": 14 }, "selection": { - "cursor": "#4287f6", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#103063" }, "text": { "family": "Zed Mono", @@ -111,8 +111,8 @@ "background": "#1c1c1c", "icon_close": "#555555", "icon_close_active": "#ffffff", - "icon_conflict": "#f7b241", - "icon_dirty": "#4287f6", + "icon_conflict": "#f6a724", + "icon_dirty": "#135acd", "icon_width": 8, "spacing": 10, "text": { @@ -137,8 +137,8 @@ "background": "#000000", "icon_close": "#555555", "icon_close_active": "#ffffff", - "icon_conflict": "#f7b241", - "icon_dirty": "#4287f6", + "icon_conflict": "#f6a724", + "icon_dirty": "#135acd", "icon_width": 8, "spacing": 10, "text": { @@ -289,7 +289,7 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#f7bb57", "size": 13 } }, @@ -297,7 +297,7 @@ "height": 34, "background": "#000000", "border": { - "color": "#070707", + "color": "#151515", "width": 1, "bottom": true }, @@ -325,54 +325,54 @@ } }, "editor": { - "text_color": "#f1f1f1", + "text_color": "#d5d5d5", "background": "#000000", "active_line_background": "#0e0e0e", "code_actions_indicator": "#9c9c9c", - "diff_background_deleted": "#f78c8c", - "diff_background_inserted": "#22c55e", - "document_highlight_read_background": "#777af4", - "document_highlight_write_background": "#777af4", - "error_color": "#f78c8c", + "diff_background_deleted": "#f15656", + "diff_background_inserted": "#1b9447", + "document_highlight_read_background": "#2b2b2b", + "document_highlight_write_background": "#2b2b2b", + "error_color": "#f15656", "gutter_background": "#000000", - "gutter_padding_factor": 2.5, + "gutter_padding_factor": 3.5, "highlighted_line_background": "#070707", "line_number": "#636363", "line_number_active": "#ffffff", "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { - "cursor": "#4287f6", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#103063" }, "guest_selections": [ { - "cursor": "#87d116", - "selection": "#dbf9ac" + "cursor": "#79ba16", + "selection": "#38530f" }, { - "cursor": "#777af4", - "selection": "#d4d5fd" + "cursor": "#484bed", + "selection": "#121269" }, { - "cursor": "#f98a3d", - "selection": "#fde0cd" + "cursor": "#ee670a", + "selection": "#5d2f0e" }, { - "cursor": "#b671f8", - "selection": "#e9d4fd" + "cursor": "#993bf3", + "selection": "#3e1169" }, { - "cursor": "#16ddc7", - "selection": "#b4faf2" + "cursor": "#16d6c1", + "selection": "#0e4f48" }, { - "cursor": "#f58ac0", - "selection": "#fcd4e8" + "cursor": "#ef59a3", + "selection": "#fbc6e1" }, { - "cursor": "#f6bc09", - "selection": "#fceabc" + "cursor": "#f7bf17", + "selection": "#fce9b7" } ], "autocomplete": { @@ -406,7 +406,7 @@ "left": -14 }, "match_highlight": { - "color": "#59c3f5", + "color": "#4f8ff7", "weight": "normal" }, "selected_item": { @@ -481,12 +481,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#f78c8c", + "color": "#f15656", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#f78c8c", + "color": "#f15656", "size": 14, "weight": "bold" } @@ -504,12 +504,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#f7bb57", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#f8c570", + "color": "#f7bb57", "size": 14, "weight": "bold" } @@ -527,12 +527,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14, "weight": "bold" } @@ -550,12 +550,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14, "weight": "bold" } @@ -653,7 +653,35 @@ } } }, - "syntax": {} + "syntax": { + "keyword": "#4f8ff7", + "function": "#f9da82", + "string": "#f99d5f", + "type": "#3eeeda", + "number": "#aeef4b", + "comment": "#aaaaaa", + "property": "#4f8ff7", + "variant": "#53c1f5", + "constant": "#d5d5d5", + "title": { + "color": "#de900c", + "weight": "bold" + }, + "emphasis": "#1096d3", + "emphasis_strong": { + "color": "#1096d3", + "weight": "bold" + }, + "link_uri": { + "color": "#79ba16", + "underline": true + }, + "link_text": { + "color": "#ee670a", + "italic": true + }, + "list_marker": "#20b0f2" + } }, "project_diagnostics": { "tab_icon_spacing": 4, @@ -929,8 +957,8 @@ "size": 14 }, "selection": { - "cursor": "#4287f6", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#103063" }, "border": { "color": "#151515", @@ -1067,7 +1095,7 @@ } }, "search": { - "match_background": "#87d116", + "match_background": "#0a2633", "tab_icon_spacing": 4, "tab_icon_width": 14, "active_hovered_option_button": { @@ -1123,8 +1151,8 @@ "size": 16 }, "selection": { - "cursor": "#4287f6", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#103063" }, "text": { "family": "Zed Mono", @@ -1177,8 +1205,8 @@ "size": 16 }, "selection": { - "cursor": "#4287f6", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#103063" }, "text": { "family": "Zed Mono", @@ -1186,7 +1214,7 @@ "size": 16 }, "border": { - "color": "#f47171", + "color": "#eb2d2d", "width": 1 }, "margin": { diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json index dcff3352f75703a64030db29cde7797dd038c432..283b3b10b32e3886fe15736e8e6d9cbb7091e3a5 100644 --- a/crates/zed/assets/themes/light.json +++ b/crates/zed/assets/themes/light.json @@ -18,7 +18,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "weight": "bold", "size": 14 } @@ -38,7 +38,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "weight": "bold", "size": 14 }, @@ -70,8 +70,8 @@ "size": 14 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#c5dafc" }, "text": { "family": "Zed Mono", @@ -111,8 +111,8 @@ "background": "#f1f1f1", "icon_close": "#555555", "icon_close_active": "#000000", - "icon_conflict": "#f6bc09", - "icon_dirty": "#4287f6", + "icon_conflict": "#f7bf17", + "icon_dirty": "#135acd", "icon_width": 8, "spacing": 10, "text": { @@ -137,8 +137,8 @@ "background": "#ffffff", "icon_close": "#555555", "icon_close_active": "#000000", - "icon_conflict": "#f6bc09", - "icon_dirty": "#4287f6", + "icon_conflict": "#f7bf17", + "icon_dirty": "#135acd", "icon_width": 8, "spacing": 10, "text": { @@ -289,7 +289,7 @@ }, "outdated_warning": { "family": "Zed Sans", - "color": "#e5af09", + "color": "#d3a20b", "size": 13 } }, @@ -297,7 +297,7 @@ "height": 34, "background": "#ffffff", "border": { - "color": "#c6c6c6", + "color": "#e3e3e3", "width": 1, "bottom": true }, @@ -327,52 +327,52 @@ "editor": { "text_color": "#2b2b2b", "background": "#ffffff", - "active_line_background": "#e3e3e3", + "active_line_background": "#f1f1f1", "code_actions_indicator": "#717171", - "diff_background_deleted": "#fdd4d4", - "diff_background_inserted": "#befad2", - "document_highlight_read_background": "#e3e3e3", - "document_highlight_write_background": "#e3e3e3", - "error_color": "#f47171", + "diff_background_deleted": "#fcc6c6", + "diff_background_inserted": "#b7f9ce", + "document_highlight_read_background": "#f1f1f1", + "document_highlight_write_background": "#f1f1f1", + "error_color": "#eb2d2d", "gutter_background": "#ffffff", - "gutter_padding_factor": 2.5, - "highlighted_line_background": "#e3e3e3", - "line_number": "#808080", + "gutter_padding_factor": 3.5, + "highlighted_line_background": "#f1f1f1", + "line_number": "#aaaaaa", "line_number_active": "#000000", "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#c5dafc" }, "guest_selections": [ { - "cursor": "#87d116", - "selection": "#dbf9ac" + "cursor": "#79ba16", + "selection": "#dffab5" }, { - "cursor": "#777af4", - "selection": "#d4d5fd" + "cursor": "#484bed", + "selection": "#cdcdfc" }, { - "cursor": "#f98a3d", - "selection": "#fde0cd" + "cursor": "#ee670a", + "selection": "#fcd6bd" }, { - "cursor": "#b671f8", - "selection": "#e9d4fd" + "cursor": "#993bf3", + "selection": "#e4cbfc" }, { - "cursor": "#16ddc7", - "selection": "#b4faf2" + "cursor": "#16d6c1", + "selection": "#b1faf2" }, { - "cursor": "#f58ac0", - "selection": "#fcd4e8" + "cursor": "#ef59a3", + "selection": "#fbc6e1" }, { - "cursor": "#f6bc09", - "selection": "#fceabc" + "cursor": "#f7bf17", + "selection": "#fce9b7" } ], "autocomplete": { @@ -400,13 +400,13 @@ "right": 6, "top": 2 }, - "background": "#f1f1f1" + "background": "#f8f8f8" }, "margin": { "left": -14 }, "match_highlight": { - "color": "#59c3f5", + "color": "#103063", "weight": "normal" }, "selected_item": { @@ -417,7 +417,7 @@ "right": 6, "top": 2 }, - "background": "#e3e3e3" + "background": "#f1f1f1" } }, "diagnostic_header": { @@ -453,7 +453,7 @@ } }, "diagnostic_path_header": { - "background": "#e3e3e3", + "background": "#f1f1f1", "text_scale_factor": 0.857, "filename": { "family": "Zed Mono", @@ -481,12 +481,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#f47171", + "color": "#eb2d2d", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#f47171", + "color": "#eb2d2d", "size": 14, "weight": "bold" } @@ -504,12 +504,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#e5af09", + "color": "#d3a20b", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#e5af09", + "color": "#d3a20b", "size": 14, "weight": "bold" } @@ -527,12 +527,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14, "weight": "bold" } @@ -550,12 +550,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#6099f7", + "color": "#2472f2", "size": 14, "weight": "bold" } @@ -653,7 +653,35 @@ } } }, - "syntax": {} + "syntax": { + "keyword": "#103063", + "function": "#1b9447", + "string": "#bb550e", + "type": "#138a7d", + "number": "#14a898", + "comment": "#555555", + "property": "#134697", + "variant": "#1179a8", + "constant": "#393939", + "title": { + "color": "#1096d3", + "weight": "bold" + }, + "emphasis": "#2472f2", + "emphasis_strong": { + "color": "#2472f2", + "weight": "bold" + }, + "link_uri": { + "color": "#14a898", + "underline": true + }, + "link_text": { + "color": "#ee670a", + "italic": true + }, + "list_marker": "#20b0f2" + } }, "project_diagnostics": { "tab_icon_spacing": 4, @@ -929,8 +957,8 @@ "size": 14 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#c5dafc" }, "border": { "color": "#e3e3e3", @@ -1022,7 +1050,7 @@ "padding": { "left": 8 }, - "background": "#e3e3e3", + "background": "#f1f1f1", "corner_radius": 6 }, "unshared_project": { @@ -1062,7 +1090,7 @@ "padding": { "left": 8 }, - "background": "#e3e3e3", + "background": "#f1f1f1", "corner_radius": 6 } }, @@ -1123,8 +1151,8 @@ "size": 16 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#c5dafc" }, "text": { "family": "Zed Mono", @@ -1177,8 +1205,8 @@ "size": 16 }, "selection": { - "cursor": "#6099f7", - "selection": "#d0e2fd" + "cursor": "#2472f2", + "selection": "#c5dafc" }, "text": { "family": "Zed Mono", @@ -1186,7 +1214,7 @@ "size": 16 }, "border": { - "color": "#fbbdbd", + "color": "#f9a0a0", "width": 1 }, "margin": { diff --git a/styles/styleTree/editor.ts b/styles/styleTree/editor.ts index e760ecec6a57997c48238e0fdeb16d457c2c3e69..23c1e67ac6e6c1dcc75e1d638e760184bfc66e0f 100644 --- a/styles/styleTree/editor.ts +++ b/styles/styleTree/editor.ts @@ -49,7 +49,7 @@ export default function editor(theme: Theme) { documentHighlightWriteBackground: theme.editor.highlight.occurrence.value, errorColor: theme.textColor.error.value, gutterBackground: backgroundColor(theme, 500), - gutterPaddingFactor: 2.5, + gutterPaddingFactor: 3.5, highlightedLineBackground: theme.editor.line.highlighted.value, lineNumber: theme.editor.gutter.primary.value, lineNumberActive: theme.editor.gutter.active.value, @@ -129,7 +129,21 @@ export default function editor(theme: Theme) { invalidInformationDiagnostic: diagnostic(theme, "muted"), invalidWarningDiagnostic: diagnostic(theme, "muted"), syntax: { - - } + keyword: theme.syntax.keyword.color.value, + function: theme.syntax.function.color.value, + string: theme.syntax.string.color.value, + type: theme.syntax.type.color.value, + number: theme.syntax.number.color.value, + comment: theme.syntax.comment.color.value, + property: theme.syntax.property.color.value, + variant: theme.syntax.variant.color.value, + constant: theme.syntax.constant.color.value, + title: { color: theme.syntax.title.color.value, weight: "bold" }, + emphasis: theme.textColor.feature.value, + "emphasis.strong": { color: theme.textColor.feature.value, weight: "bold" }, + link_uri: { color: theme.syntax.linkUrl.color.value, underline: true }, + link_text: { color: theme.syntax.linkText.color.value, italic: true }, + list_marker: theme.syntax.listMarker.color.value, + }, }; } diff --git a/styles/styleTree/workspace.ts b/styles/styleTree/workspace.ts index 4349ba0ab6861080a146e6d25b8be9d6af801d71..030f8edc95e758b574b2df7378acc1bbf498ad3f 100644 --- a/styles/styleTree/workspace.ts +++ b/styles/styleTree/workspace.ts @@ -135,7 +135,7 @@ export default function workspace(theme: Theme) { toolbar: { height: 34, background: backgroundColor(theme, 500), - border: border(theme, "primary", { bottom: true }), + border: border(theme, "secondary", { bottom: true }), itemSpacing: 8, padding: { left: 16, right: 8, top: 4, bottom: 4 }, }, diff --git a/styles/themes/dark.ts b/styles/themes/dark.ts index 3cb3b653b4a6407d197049b0baf1ff72997b02c7..3351d3d3fab34f33e033eb610f701555da34f4b2 100644 --- a/styles/themes/dark.ts +++ b/styles/themes/dark.ts @@ -88,39 +88,39 @@ const iconColor = { const player = { 1: { - baseColor: colors.blue[600], - cursorColor: colors.blue[600], - selectionColor: colors.blue[100], - borderColor: colors.blue[600], + baseColor: colors.blue[500], + cursorColor: colors.blue[500], + selectionColor: colors.blue[800], + borderColor: colors.blue[800], }, 2: { baseColor: colors.lime[500], cursorColor: colors.lime[500], - selectionColor: colors.lime[100], + selectionColor: colors.lime[800], borderColor: colors.lime[500], }, 3: { baseColor: colors.indigo[500], cursorColor: colors.indigo[500], - selectionColor: colors.indigo[100], + selectionColor: colors.indigo[800], borderColor: colors.indigo[500], }, 4: { baseColor: colors.orange[500], cursorColor: colors.orange[500], - selectionColor: colors.orange[100], + selectionColor: colors.orange[800], borderColor: colors.orange[500], }, 5: { baseColor: colors.purple[500], cursorColor: colors.purple[500], - selectionColor: colors.purple[100], + selectionColor: colors.purple[800], borderColor: colors.purple[500], }, 6: { baseColor: colors.teal[400], cursorColor: colors.teal[400], - selectionColor: colors.teal[100], + selectionColor: colors.teal[800], borderColor: colors.teal[400], }, 7: { @@ -151,11 +151,11 @@ const editor = { }, highlight: { selection: player[1].selectionColor, - occurrence: colors.indigo[500], // TODO: Why does indigo[500], indigo[100], and indigo[900] all give me the same color? @kethku - activeOccurrence: colors.indigo[400], // TODO: We don't seem to be using this right now in rust + occurrence: colors.neutral[750], + activeOccurrence: colors.neutral[700], matchingBracket: backgroundColor[500].active, - match: colors.lime[500], - activeMatch: colors.lime[400], + match: colors.sky[900], + activeMatch: colors.sky[800], related: backgroundColor[500].focused, }, gutter: { @@ -166,15 +166,15 @@ const editor = { const syntax: Syntax = { primary: { - color: textColor.primary, + color: colors.neutral[150], weight: fontWeights.normal, }, comment: { - color: colors.lime[200], + color: colors.neutral[300], weight: fontWeights.normal, }, punctuation: { - color: textColor.primary, + color: colors.neutral[200], weight: fontWeights.normal, }, constant: { @@ -182,7 +182,7 @@ const syntax: Syntax = { weight: fontWeights.normal, }, keyword: { - color: colors.sky[400], + color: colors.blue[400], weight: fontWeights.normal, }, function: { @@ -194,19 +194,19 @@ const syntax: Syntax = { weight: fontWeights.normal, }, variant: { - color: colors.teal[300], + color: colors.sky[300], weight: fontWeights.normal, }, property: { - color: colors.sky[300], + color: colors.blue[400], weight: fontWeights.normal, }, enum: { - color: colors.sky[400], + color: colors.orange[500], weight: fontWeights.normal, }, operator: { - color: colors.sky[400], + color: colors.orange[500], weight: fontWeights.normal, }, string: { @@ -214,11 +214,11 @@ const syntax: Syntax = { weight: fontWeights.normal, }, number: { - color: colors.neutral[150], + color: colors.lime[300], weight: fontWeights.normal, }, boolean: { - color: colors.neutral[150], + color: colors.lime[300], weight: fontWeights.normal, }, predictive: { @@ -226,7 +226,7 @@ const syntax: Syntax = { weight: fontWeights.normal, }, title: { - color: colors.sky[500], + color: colors.amber[500], weight: fontWeights.bold, }, emphasis: { diff --git a/styles/themes/light.ts b/styles/themes/light.ts index ee94e18b19869727eae1c973d908ed3202282c77..649fd719a8f75bd47e4c07e8744a4863ae1f5d9f 100644 --- a/styles/themes/light.ts +++ b/styles/themes/light.ts @@ -18,9 +18,9 @@ const backgroundColor = { }, 500: { base: colors.neutral[0], - hovered: colors.neutral[50], - active: colors.neutral[100], - focused: colors.neutral[50], + hovered: colors.neutral[25], + active: colors.neutral[50], + focused: colors.neutral[75], }, ok: { base: colors.green[100], @@ -159,66 +159,66 @@ const editor = { related: colors.neutral[0], }, gutter: { - primary: textColor.muted, + primary: colors.neutral[300], active: textColor.active, }, }; const syntax: Syntax = { primary: { - color: textColor.primary, + color: colors.neutral[750], weight: fontWeights.normal, }, comment: { - color: colors.lime[200], + color: colors.neutral[600], weight: fontWeights.normal, }, punctuation: { - color: textColor.primary, + color: colors.neutral[700], weight: fontWeights.normal, }, constant: { - color: colors.neutral[150], + color: colors.neutral[700], weight: fontWeights.normal, }, keyword: { - color: colors.sky[400], + color: colors.blue[800], weight: fontWeights.normal, }, function: { - color: colors.yellow[200], + color: colors.green[600], weight: fontWeights.normal, }, type: { - color: colors.teal[300], + color: colors.teal[600], weight: fontWeights.normal, }, variant: { - color: colors.teal[300], + color: colors.sky[600], weight: fontWeights.normal, }, property: { - color: colors.sky[300], + color: colors.blue[700], weight: fontWeights.normal, }, enum: { - color: colors.sky[400], + color: colors.orange[600], weight: fontWeights.normal, }, operator: { - color: colors.sky[400], + color: colors.orange[600], weight: fontWeights.normal, }, string: { - color: colors.orange[300], + color: colors.orange[600], weight: fontWeights.normal, }, number: { - color: colors.neutral[150], + color: colors.teal[500], weight: fontWeights.normal, }, boolean: { - color: colors.neutral[150], + color: colors.amber[600], weight: fontWeights.normal, }, predictive: { @@ -238,7 +238,7 @@ const syntax: Syntax = { weight: fontWeights.bold, }, linkUrl: { - color: colors.lime[500], + color: colors.teal[500], weight: fontWeights.normal, // TODO: add underline }, diff --git a/styles/utils/color.ts b/styles/utils/color.ts index 156fc5ba41b2bbf0cfc9dd8080db9bf6cd6c320d..e69d903a431cdef0dc9acdc3f76eb8b535d519f4 100644 --- a/styles/utils/color.ts +++ b/styles/utils/color.ts @@ -17,14 +17,14 @@ export function colorRamp( } else { let hue = Math.round(chroma(color).hsl()[0]); let startColor = chroma.hsl(hue, 0.88, 0.96); - let endColor = chroma.hsl(hue, 0.68, 0.32); + let endColor = chroma.hsl(hue, 0.68, 0.12); scale = chroma .scale([startColor, color, endColor]) .domain([0, 0.5, 1]) .mode("hsl") .gamma(1) - .correctLightness(true) - .padding([0, 0.15]); + // .correctLightness(true) + .padding([0, 0]); } const ramp: ColorRamp = {}; From 05a05157faff225158b38431a4b83b5cebd1336c Mon Sep 17 00:00:00 2001 From: Keith Simmons Date: Mon, 4 Apr 2022 14:39:28 -0700 Subject: [PATCH 61/71] Move style source files to src and build to dist Co-authored-by: Nate Butler --- crates/editor/src/context_menu.rs | 272 + styles/buildFigmaTokens.ts | 115 - styles/dist/figma/core.json | 1155 +++++ styles/package-lock.json | 5156 +++++++++---------- styles/package.json | 39 +- styles/src/buildFigmaTokens.ts | 110 + styles/{ => src}/buildThemes.ts | 6 +- styles/{ => src}/figma/core.json | 0 styles/{ => src}/figma/dark.json | 192 +- styles/{ => src}/figma/light.json | 182 +- styles/{ => src}/figma/tokens.json | 678 +-- styles/{ => src}/styleTree/app.ts | 4 +- styles/src/styleTree/chatPanel.ts | 108 + styles/src/styleTree/components.ts | 96 + styles/{ => src}/styleTree/contactsPanel.ts | 0 styles/{ => src}/styleTree/editor.ts | 6 +- styles/src/styleTree/projectPanel.ts | 37 + styles/src/styleTree/search.ts | 79 + styles/src/styleTree/selectorModal.ts | 59 + styles/src/styleTree/workspace.ts | 151 + styles/{ => src}/themes/dark.ts | 74 +- styles/src/themes/light.ts | 228 + styles/{ => src}/themes/theme.ts | 14 + styles/{ => src}/tokens.ts | 0 styles/src/utils/color.ts | 52 + styles/src/utils/snakeCase.ts | 35 + styles/styleTree/chatPanel.ts | 108 - styles/styleTree/components.ts | 91 - styles/styleTree/projectPanel.ts | 37 - styles/styleTree/search.ts | 79 - styles/styleTree/selectorModal.ts | 59 - styles/styleTree/workspace.ts | 151 - styles/themes/light.ts | 273 - styles/utils/color.ts | 44 - styles/utils/decamelizeTree.ts | 21 - 35 files changed, 5541 insertions(+), 4170 deletions(-) create mode 100644 crates/editor/src/context_menu.rs delete mode 100644 styles/buildFigmaTokens.ts create mode 100644 styles/dist/figma/core.json create mode 100644 styles/src/buildFigmaTokens.ts rename styles/{ => src}/buildThemes.ts (70%) rename styles/{ => src}/figma/core.json (100%) rename styles/{ => src}/figma/dark.json (79%) rename styles/{ => src}/figma/light.json (80%) rename styles/{ => src}/figma/tokens.json (80%) rename styles/{ => src}/styleTree/app.ts (91%) create mode 100644 styles/src/styleTree/chatPanel.ts create mode 100644 styles/src/styleTree/components.ts rename styles/{ => src}/styleTree/contactsPanel.ts (100%) rename styles/{ => src}/styleTree/editor.ts (97%) create mode 100644 styles/src/styleTree/projectPanel.ts create mode 100644 styles/src/styleTree/search.ts create mode 100644 styles/src/styleTree/selectorModal.ts create mode 100644 styles/src/styleTree/workspace.ts rename styles/{ => src}/themes/dark.ts (74%) create mode 100644 styles/src/themes/light.ts rename styles/{ => src}/themes/theme.ts (88%) rename styles/{ => src}/tokens.ts (100%) create mode 100644 styles/src/utils/color.ts create mode 100644 styles/src/utils/snakeCase.ts delete mode 100644 styles/styleTree/chatPanel.ts delete mode 100644 styles/styleTree/components.ts delete mode 100644 styles/styleTree/projectPanel.ts delete mode 100644 styles/styleTree/search.ts delete mode 100644 styles/styleTree/selectorModal.ts delete mode 100644 styles/styleTree/workspace.ts delete mode 100644 styles/themes/light.ts delete mode 100644 styles/utils/color.ts delete mode 100644 styles/utils/decamelizeTree.ts diff --git a/crates/editor/src/context_menu.rs b/crates/editor/src/context_menu.rs new file mode 100644 index 0000000000000000000000000000000000000000..b1c4a1b51cbac521c0a3879501398ef1eb899b88 --- /dev/null +++ b/crates/editor/src/context_menu.rs @@ -0,0 +1,272 @@ +pub enum ContextMenu { + Completions(CompletionsMenu), + CodeActions(CodeActionsMenu), +} + +impl ContextMenu { + pub fn select_prev(&mut self, cx: &mut ViewContext) -> bool { + if self.visible() { + match self { + ContextMenu::Completions(menu) => menu.select_prev(cx), + ContextMenu::CodeActions(menu) => menu.select_prev(cx), + } + true + } else { + false + } + } + + pub fn select_next(&mut self, cx: &mut ViewContext) -> bool { + if self.visible() { + match self { + ContextMenu::Completions(menu) => menu.select_next(cx), + ContextMenu::CodeActions(menu) => menu.select_next(cx), + } + true + } else { + false + } + } + + pub fn visible(&self) -> bool { + match self { + ContextMenu::Completions(menu) => menu.visible(), + ContextMenu::CodeActions(menu) => menu.visible(), + } + } + + pub fn render( + &self, + cursor_position: DisplayPoint, + style: EditorStyle, + cx: &AppContext, + ) -> (DisplayPoint, ElementBox) { + match self { + ContextMenu::Completions(menu) => (cursor_position, menu.render(style, cx)), + ContextMenu::CodeActions(menu) => menu.render(cursor_position, style), + } + } +} + +struct CompletionsMenu { + id: CompletionId, + initial_position: Anchor, + buffer: ModelHandle, + completions: Arc<[Completion]>, + match_candidates: Vec, + matches: Arc<[StringMatch]>, + selected_item: usize, + list: UniformListState, +} + +impl CompletionsMenu { + fn select_prev(&mut self, cx: &mut ViewContext) { + if self.selected_item > 0 { + self.selected_item -= 1; + self.list.scroll_to(ScrollTarget::Show(self.selected_item)); + } + cx.notify(); + } + + fn select_next(&mut self, cx: &mut ViewContext) { + if self.selected_item + 1 < self.matches.len() { + self.selected_item += 1; + self.list.scroll_to(ScrollTarget::Show(self.selected_item)); + } + cx.notify(); + } + + fn visible(&self) -> bool { + !self.matches.is_empty() + } + + fn render(&self, style: EditorStyle, _: &AppContext) -> ElementBox { + enum CompletionTag {} + + let completions = self.completions.clone(); + let matches = self.matches.clone(); + let selected_item = self.selected_item; + let container_style = style.autocomplete.container; + UniformList::new(self.list.clone(), matches.len(), move |range, items, cx| { + let start_ix = range.start; + for (ix, mat) in matches[range].iter().enumerate() { + let completion = &completions[mat.candidate_id]; + let item_ix = start_ix + ix; + items.push( + MouseEventHandler::new::( + mat.candidate_id, + cx, + |state, _| { + let item_style = if item_ix == selected_item { + style.autocomplete.selected_item + } else if state.hovered { + style.autocomplete.hovered_item + } else { + style.autocomplete.item + }; + + Text::new(completion.label.text.clone(), style.text.clone()) + .with_soft_wrap(false) + .with_highlights(combine_syntax_and_fuzzy_match_highlights( + &completion.label.text, + style.text.color.into(), + styled_runs_for_code_label(&completion.label, &style.syntax), + &mat.positions, + )) + .contained() + .with_style(item_style) + .boxed() + }, + ) + .with_cursor_style(CursorStyle::PointingHand) + .on_mouse_down(move |cx| { + cx.dispatch_action(ConfirmCompletion(Some(item_ix))); + }) + .boxed(), + ); + } + }) + .with_width_from_item( + self.matches + .iter() + .enumerate() + .max_by_key(|(_, mat)| { + self.completions[mat.candidate_id] + .label + .text + .chars() + .count() + }) + .map(|(ix, _)| ix), + ) + .contained() + .with_style(container_style) + .boxed() + } + + pub async fn filter(&mut self, query: Option<&str>, executor: Arc) { + let mut matches = if let Some(query) = query { + fuzzy::match_strings( + &self.match_candidates, + query, + false, + 100, + &Default::default(), + executor, + ) + .await + } else { + self.match_candidates + .iter() + .enumerate() + .map(|(candidate_id, candidate)| StringMatch { + candidate_id, + score: Default::default(), + positions: Default::default(), + string: candidate.string.clone(), + }) + .collect() + }; + matches.sort_unstable_by_key(|mat| { + ( + Reverse(OrderedFloat(mat.score)), + self.completions[mat.candidate_id].sort_key(), + ) + }); + + for mat in &mut matches { + let filter_start = self.completions[mat.candidate_id].label.filter_range.start; + for position in &mut mat.positions { + *position += filter_start; + } + } + + self.matches = matches.into(); + } +} + +#[derive(Clone)] +struct CodeActionsMenu { + actions: Arc<[CodeAction]>, + buffer: ModelHandle, + selected_item: usize, + list: UniformListState, + deployed_from_indicator: bool, +} + +impl CodeActionsMenu { + fn select_prev(&mut self, cx: &mut ViewContext) { + if self.selected_item > 0 { + self.selected_item -= 1; + cx.notify() + } + } + + fn select_next(&mut self, cx: &mut ViewContext) { + if self.selected_item + 1 < self.actions.len() { + self.selected_item += 1; + cx.notify() + } + } + + fn visible(&self) -> bool { + !self.actions.is_empty() + } + + fn render( + &self, + mut cursor_position: DisplayPoint, + style: EditorStyle, + ) -> (DisplayPoint, ElementBox) { + enum ActionTag {} + + let container_style = style.autocomplete.container; + let actions = self.actions.clone(); + let selected_item = self.selected_item; + let element = + UniformList::new(self.list.clone(), actions.len(), move |range, items, cx| { + let start_ix = range.start; + for (ix, action) in actions[range].iter().enumerate() { + let item_ix = start_ix + ix; + items.push( + MouseEventHandler::new::(item_ix, cx, |state, _| { + let item_style = if item_ix == selected_item { + style.autocomplete.selected_item + } else if state.hovered { + style.autocomplete.hovered_item + } else { + style.autocomplete.item + }; + + Text::new(action.lsp_action.title.clone(), style.text.clone()) + .with_soft_wrap(false) + .contained() + .with_style(item_style) + .boxed() + }) + .with_cursor_style(CursorStyle::PointingHand) + .on_mouse_down(move |cx| { + cx.dispatch_action(ConfirmCodeAction(Some(item_ix))); + }) + .boxed(), + ); + } + }) + .with_width_from_item( + self.actions + .iter() + .enumerate() + .max_by_key(|(_, action)| action.lsp_action.title.chars().count()) + .map(|(ix, _)| ix), + ) + .contained() + .with_style(container_style) + .boxed(); + + if self.deployed_from_indicator { + *cursor_position.column_mut() = 0; + } + + (cursor_position, element) + } +} diff --git a/styles/buildFigmaTokens.ts b/styles/buildFigmaTokens.ts deleted file mode 100644 index bb77046e85c53007c272ac791e104b9a908fd80d..0000000000000000000000000000000000000000 --- a/styles/buildFigmaTokens.ts +++ /dev/null @@ -1,115 +0,0 @@ -import * as fs from "fs"; -import * as path from "path"; -import dark from "./themes/dark"; -import light from "./themes/light"; -import Theme from "./themes/theme"; -import { colors, fontFamilies, fontSizes, fontWeights } from "./tokens"; - -let themes = [ - dark, - light -]; - -// Organize theme tokens -function themeTokens(theme: Theme) { - return { - meta: { - themeName: theme.name, - }, - text: theme.textColor, - icon: theme.iconColor, - background: theme.backgroundColor, - border: theme.borderColor, - editor: theme.editor, - syntax: { - primary: { - value: theme.syntax.primary.color.value, - type: "color", - }, - comment: { - value: theme.syntax.comment.color.value, - type: "color", - }, - keyword: { - value: theme.syntax.keyword.color.value, - type: "color", - }, - function: { - value: theme.syntax.function.color.value, - type: "color", - }, - type: { - value: theme.syntax.type.color.value, - type: "color", - }, - variant: { - value: theme.syntax.variant.color.value, - type: "color", - }, - property: { - value: theme.syntax.property.color.value, - type: "color", - }, - enum: { - value: theme.syntax.enum.color.value, - type: "color", - }, - operator: { - value: theme.syntax.operator.color.value, - type: "color", - }, - string: { - value: theme.syntax.string.color.value, - type: "color", - }, - number: { - value: theme.syntax.number.color.value, - type: "color", - }, - boolean: { - value: theme.syntax.boolean.color.value, - type: "color", - }, - }, - player: theme.player, - shadowAlpha: theme.shadowAlpha, - }; -} - -// Organize core tokens -const coreTokens = { - color: { - ...colors, - }, - text: { - family: fontFamilies, - weight: fontWeights, - }, - size: fontSizes, -}; - -const combinedTokens = { - core: coreTokens, - dark: themeTokens(dark), - light: themeTokens(light) -} - -// Create core.json -const corePath = path.resolve(`${__dirname}/figma/core.json`); -const coreJSON = JSON.stringify(coreTokens, null, 2); -fs.writeFileSync(corePath, coreJSON); -console.log(`- Core: core.json created`); - -// Create {theme}.json -const themePath = path.resolve(`${__dirname}/figma`); -themes.forEach((theme) => { - const tokenJSON = JSON.stringify(themeTokens(theme), null, 2); - fs.writeFileSync(`${themePath}/${theme.name}.json`, tokenJSON); - console.log(`- Theme: ${theme.name}.json created`); -}); - -// Create combined tokens.json -const combinedPath = path.resolve(`${__dirname}/figma/tokens.json`); -const combinedJSON = JSON.stringify(combinedTokens, null, 2); -fs.writeFileSync(combinedPath, combinedJSON); -console.log(`- Combined: tokens.json created`); \ No newline at end of file diff --git a/styles/dist/figma/core.json b/styles/dist/figma/core.json new file mode 100644 index 0000000000000000000000000000000000000000..f44b1d210c30493ee350126c1272c64578edbd01 --- /dev/null +++ b/styles/dist/figma/core.json @@ -0,0 +1,1155 @@ +{ + "color": { + "neutral": { + "0": { + "value": "#ffffff", + "step": 0, + "type": "color" + }, + "25": { + "value": "#f8f8f8", + "step": 25, + "type": "color" + }, + "50": { + "value": "#f1f1f1", + "step": 50, + "type": "color" + }, + "75": { + "value": "#eaeaea", + "step": 75, + "type": "color" + }, + "100": { + "value": "#e3e3e3", + "step": 100, + "type": "color" + }, + "125": { + "value": "#dcdcdc", + "step": 125, + "type": "color" + }, + "150": { + "value": "#d5d5d5", + "step": 150, + "type": "color" + }, + "175": { + "value": "#cdcdcd", + "step": 175, + "type": "color" + }, + "200": { + "value": "#c6c6c6", + "step": 200, + "type": "color" + }, + "225": { + "value": "#bfbfbf", + "step": 225, + "type": "color" + }, + "250": { + "value": "#b8b8b8", + "step": 250, + "type": "color" + }, + "275": { + "value": "#b1b1b1", + "step": 275, + "type": "color" + }, + "300": { + "value": "#aaaaaa", + "step": 300, + "type": "color" + }, + "325": { + "value": "#a3a3a3", + "step": 325, + "type": "color" + }, + "350": { + "value": "#9c9c9c", + "step": 350, + "type": "color" + }, + "375": { + "value": "#959595", + "step": 375, + "type": "color" + }, + "400": { + "value": "#8e8e8e", + "step": 400, + "type": "color" + }, + "425": { + "value": "#878787", + "step": 425, + "type": "color" + }, + "450": { + "value": "#808080", + "step": 450, + "type": "color" + }, + "475": { + "value": "#787878", + "step": 475, + "type": "color" + }, + "500": { + "value": "#717171", + "step": 500, + "type": "color" + }, + "525": { + "value": "#6a6a6a", + "step": 525, + "type": "color" + }, + "550": { + "value": "#636363", + "step": 550, + "type": "color" + }, + "575": { + "value": "#5c5c5c", + "step": 575, + "type": "color" + }, + "600": { + "value": "#555555", + "step": 600, + "type": "color" + }, + "625": { + "value": "#4e4e4e", + "step": 625, + "type": "color" + }, + "650": { + "value": "#474747", + "step": 650, + "type": "color" + }, + "675": { + "value": "#404040", + "step": 675, + "type": "color" + }, + "700": { + "value": "#393939", + "step": 700, + "type": "color" + }, + "725": { + "value": "#323232", + "step": 725, + "type": "color" + }, + "750": { + "value": "#2b2b2b", + "step": 750, + "type": "color" + }, + "775": { + "value": "#232323", + "step": 775, + "type": "color" + }, + "800": { + "value": "#1c1c1c", + "step": 800, + "type": "color" + }, + "825": { + "value": "#151515", + "step": 825, + "type": "color" + }, + "850": { + "value": "#0e0e0e", + "step": 850, + "type": "color" + }, + "875": { + "value": "#070707", + "step": 875, + "type": "color" + }, + "900": { + "value": "#000000", + "step": 900, + "type": "color" + } + }, + "rose": { + "0": { + "value": "#feecef", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fcc5cf", + "step": 100, + "type": "color" + }, + "200": { + "value": "#fa9fae", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f8788e", + "step": 300, + "type": "color" + }, + "400": { + "value": "#f5526e", + "step": 400, + "type": "color" + }, + "500": { + "value": "#f0284a", + "step": 500, + "type": "color" + }, + "600": { + "value": "#cd1434", + "step": 600, + "type": "color" + }, + "700": { + "value": "#97142a", + "step": 700, + "type": "color" + }, + "800": { + "value": "#64101e", + "step": 800, + "type": "color" + }, + "900": { + "value": "#330a11", + "step": 900, + "type": "color" + } + }, + "red": { + "0": { + "value": "#feecec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fcc6c6", + "step": 100, + "type": "color" + }, + "200": { + "value": "#f9a0a0", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f57b7b", + "step": 300, + "type": "color" + }, + "400": { + "value": "#f15656", + "step": 400, + "type": "color" + }, + "500": { + "value": "#eb2d2d", + "step": 500, + "type": "color" + }, + "600": { + "value": "#c91818", + "step": 600, + "type": "color" + }, + "700": { + "value": "#951515", + "step": 700, + "type": "color" + }, + "800": { + "value": "#631111", + "step": 800, + "type": "color" + }, + "900": { + "value": "#330a0a", + "step": 900, + "type": "color" + } + }, + "orange": { + "0": { + "value": "#fef3ec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fcd6bd", + "step": 100, + "type": "color" + }, + "200": { + "value": "#fab98e", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f99d5f", + "step": 300, + "type": "color" + }, + "400": { + "value": "#f9812e", + "step": 400, + "type": "color" + }, + "500": { + "value": "#ee670a", + "step": 500, + "type": "color" + }, + "600": { + "value": "#bb550e", + "step": 600, + "type": "color" + }, + "700": { + "value": "#8b4210", + "step": 700, + "type": "color" + }, + "800": { + "value": "#5d2f0e", + "step": 800, + "type": "color" + }, + "900": { + "value": "#331b0a", + "step": 900, + "type": "color" + } + }, + "amber": { + "0": { + "value": "#fef7ec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fce2ba", + "step": 100, + "type": "color" + }, + "200": { + "value": "#f9ce89", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f7bb57", + "step": 300, + "type": "color" + }, + "400": { + "value": "#f6a724", + "step": 400, + "type": "color" + }, + "500": { + "value": "#de900c", + "step": 500, + "type": "color" + }, + "600": { + "value": "#b0740f", + "step": 600, + "type": "color" + }, + "700": { + "value": "#845910", + "step": 700, + "type": "color" + }, + "800": { + "value": "#5a3e0e", + "step": 800, + "type": "color" + }, + "900": { + "value": "#33240a", + "step": 900, + "type": "color" + } + }, + "yellow": { + "0": { + "value": "#fef9ec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fce9b7", + "step": 100, + "type": "color" + }, + "200": { + "value": "#f9da82", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f8cc4d", + "step": 300, + "type": "color" + }, + "400": { + "value": "#f7bf17", + "step": 400, + "type": "color" + }, + "500": { + "value": "#d3a20b", + "step": 500, + "type": "color" + }, + "600": { + "value": "#a8820e", + "step": 600, + "type": "color" + }, + "700": { + "value": "#7e630f", + "step": 700, + "type": "color" + }, + "800": { + "value": "#58460e", + "step": 800, + "type": "color" + }, + "900": { + "value": "#33290a", + "step": 900, + "type": "color" + } + }, + "lime": { + "0": { + "value": "#f7feec", + "step": 0, + "type": "color" + }, + "100": { + "value": "#dffab5", + "step": 100, + "type": "color" + }, + "200": { + "value": "#c7f57f", + "step": 200, + "type": "color" + }, + "300": { + "value": "#aeef4b", + "step": 300, + "type": "color" + }, + "400": { + "value": "#96e818", + "step": 400, + "type": "color" + }, + "500": { + "value": "#79ba16", + "step": 500, + "type": "color" + }, + "600": { + "value": "#639714", + "step": 600, + "type": "color" + }, + "700": { + "value": "#4e7412", + "step": 700, + "type": "color" + }, + "800": { + "value": "#38530f", + "step": 800, + "type": "color" + }, + "900": { + "value": "#23330a", + "step": 900, + "type": "color" + } + }, + "green": { + "0": { + "value": "#ecfef2", + "step": 0, + "type": "color" + }, + "100": { + "value": "#b7f9ce", + "step": 100, + "type": "color" + }, + "200": { + "value": "#84f2ab", + "step": 200, + "type": "color" + }, + "300": { + "value": "#54e989", + "step": 300, + "type": "color" + }, + "400": { + "value": "#27dd69", + "step": 400, + "type": "color" + }, + "500": { + "value": "#20b456", + "step": 500, + "type": "color" + }, + "600": { + "value": "#1b9447", + "step": 600, + "type": "color" + }, + "700": { + "value": "#157338", + "step": 700, + "type": "color" + }, + "800": { + "value": "#105328", + "step": 800, + "type": "color" + }, + "900": { + "value": "#0a3319", + "step": 900, + "type": "color" + } + }, + "emerald": { + "0": { + "value": "#ecfef8", + "step": 0, + "type": "color" + }, + "100": { + "value": "#b0fae1", + "step": 100, + "type": "color" + }, + "200": { + "value": "#74f6cb", + "step": 200, + "type": "color" + }, + "300": { + "value": "#39f0b3", + "step": 300, + "type": "color" + }, + "400": { + "value": "#12d796", + "step": 400, + "type": "color" + }, + "500": { + "value": "#10a977", + "step": 500, + "type": "color" + }, + "600": { + "value": "#118a62", + "step": 600, + "type": "color" + }, + "700": { + "value": "#106c4e", + "step": 700, + "type": "color" + }, + "800": { + "value": "#0d4f3a", + "step": 800, + "type": "color" + }, + "900": { + "value": "#0a3326", + "step": 900, + "type": "color" + } + }, + "teal": { + "0": { + "value": "#ecfefc", + "step": 0, + "type": "color" + }, + "100": { + "value": "#b1faf2", + "step": 100, + "type": "color" + }, + "200": { + "value": "#76f5e7", + "step": 200, + "type": "color" + }, + "300": { + "value": "#3eeeda", + "step": 300, + "type": "color" + }, + "400": { + "value": "#16d6c1", + "step": 400, + "type": "color" + }, + "500": { + "value": "#14a898", + "step": 500, + "type": "color" + }, + "600": { + "value": "#138a7d", + "step": 600, + "type": "color" + }, + "700": { + "value": "#116c62", + "step": 700, + "type": "color" + }, + "800": { + "value": "#0e4f48", + "step": 800, + "type": "color" + }, + "900": { + "value": "#0a332f", + "step": 900, + "type": "color" + } + }, + "cyan": { + "0": { + "value": "#ecfcfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#b2f3fb", + "step": 100, + "type": "color" + }, + "200": { + "value": "#78eaf9", + "step": 200, + "type": "color" + }, + "300": { + "value": "#3de2f8", + "step": 300, + "type": "color" + }, + "400": { + "value": "#07d5f1", + "step": 400, + "type": "color" + }, + "500": { + "value": "#09aac0", + "step": 500, + "type": "color" + }, + "600": { + "value": "#0c8a9a", + "step": 600, + "type": "color" + }, + "700": { + "value": "#0e6a75", + "step": 700, + "type": "color" + }, + "800": { + "value": "#0d4c53", + "step": 800, + "type": "color" + }, + "900": { + "value": "#0a2f33", + "step": 900, + "type": "color" + } + }, + "sky": { + "0": { + "value": "#ecf8fe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#b9e5fb", + "step": 100, + "type": "color" + }, + "200": { + "value": "#86d3f8", + "step": 200, + "type": "color" + }, + "300": { + "value": "#53c1f5", + "step": 300, + "type": "color" + }, + "400": { + "value": "#20b0f2", + "step": 400, + "type": "color" + }, + "500": { + "value": "#1096d3", + "step": 500, + "type": "color" + }, + "600": { + "value": "#1179a8", + "step": 600, + "type": "color" + }, + "700": { + "value": "#115c7f", + "step": 700, + "type": "color" + }, + "800": { + "value": "#0e4158", + "step": 800, + "type": "color" + }, + "900": { + "value": "#0a2633", + "step": 900, + "type": "color" + } + }, + "blue": { + "0": { + "value": "#ecf3fe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#c5dafc", + "step": 100, + "type": "color" + }, + "200": { + "value": "#9ec1fa", + "step": 200, + "type": "color" + }, + "300": { + "value": "#76a8f8", + "step": 300, + "type": "color" + }, + "400": { + "value": "#4f8ff7", + "step": 400, + "type": "color" + }, + "500": { + "value": "#2472f2", + "step": 500, + "type": "color" + }, + "600": { + "value": "#135acd", + "step": 600, + "type": "color" + }, + "700": { + "value": "#134697", + "step": 700, + "type": "color" + }, + "800": { + "value": "#103063", + "step": 800, + "type": "color" + }, + "900": { + "value": "#0a1a33", + "step": 900, + "type": "color" + } + }, + "indigo": { + "0": { + "value": "#ececfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#cdcdfc", + "step": 100, + "type": "color" + }, + "200": { + "value": "#aeaff9", + "step": 200, + "type": "color" + }, + "300": { + "value": "#9091f6", + "step": 300, + "type": "color" + }, + "400": { + "value": "#7274f3", + "step": 400, + "type": "color" + }, + "500": { + "value": "#484bed", + "step": 500, + "type": "color" + }, + "600": { + "value": "#1b1edc", + "step": 600, + "type": "color" + }, + "700": { + "value": "#1819a1", + "step": 700, + "type": "color" + }, + "800": { + "value": "#121269", + "step": 800, + "type": "color" + }, + "900": { + "value": "#0a0a33", + "step": 900, + "type": "color" + } + }, + "violet": { + "0": { + "value": "#f1ecfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#daccfc", + "step": 100, + "type": "color" + }, + "200": { + "value": "#c3acfb", + "step": 200, + "type": "color" + }, + "300": { + "value": "#ac8cf9", + "step": 300, + "type": "color" + }, + "400": { + "value": "#966cf7", + "step": 400, + "type": "color" + }, + "500": { + "value": "#7741f2", + "step": 500, + "type": "color" + }, + "600": { + "value": "#5316e0", + "step": 600, + "type": "color" + }, + "700": { + "value": "#3f15a3", + "step": 700, + "type": "color" + }, + "800": { + "value": "#2b116a", + "step": 800, + "type": "color" + }, + "900": { + "value": "#160a33", + "step": 900, + "type": "color" + } + }, + "purple": { + "0": { + "value": "#f5ecfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#e4cbfc", + "step": 100, + "type": "color" + }, + "200": { + "value": "#d2a9fb", + "step": 200, + "type": "color" + }, + "300": { + "value": "#c188f9", + "step": 300, + "type": "color" + }, + "400": { + "value": "#b066f8", + "step": 400, + "type": "color" + }, + "500": { + "value": "#993bf3", + "step": 500, + "type": "color" + }, + "600": { + "value": "#7b14dd", + "step": 600, + "type": "color" + }, + "700": { + "value": "#5c14a1", + "step": 700, + "type": "color" + }, + "800": { + "value": "#3e1169", + "step": 800, + "type": "color" + }, + "900": { + "value": "#1f0a33", + "step": 900, + "type": "color" + } + }, + "fuschia": { + "0": { + "value": "#fdecfe", + "step": 0, + "type": "color" + }, + "100": { + "value": "#f8c5fb", + "step": 100, + "type": "color" + }, + "200": { + "value": "#f19ff6", + "step": 200, + "type": "color" + }, + "300": { + "value": "#e87af0", + "step": 300, + "type": "color" + }, + "400": { + "value": "#de57e8", + "step": 400, + "type": "color" + }, + "500": { + "value": "#d430e0", + "step": 500, + "type": "color" + }, + "600": { + "value": "#b31fbc", + "step": 600, + "type": "color" + }, + "700": { + "value": "#87198e", + "step": 700, + "type": "color" + }, + "800": { + "value": "#5c1260", + "step": 800, + "type": "color" + }, + "900": { + "value": "#310a33", + "step": 900, + "type": "color" + } + }, + "pink": { + "0": { + "value": "#feecf5", + "step": 0, + "type": "color" + }, + "100": { + "value": "#fbc6e1", + "step": 100, + "type": "color" + }, + "200": { + "value": "#f8a1cc", + "step": 200, + "type": "color" + }, + "300": { + "value": "#f47db8", + "step": 300, + "type": "color" + }, + "400": { + "value": "#ef59a3", + "step": 400, + "type": "color" + }, + "500": { + "value": "#e8318c", + "step": 500, + "type": "color" + }, + "600": { + "value": "#c71a71", + "step": 600, + "type": "color" + }, + "700": { + "value": "#941756", + "step": 700, + "type": "color" + }, + "800": { + "value": "#63113b", + "step": 800, + "type": "color" + }, + "900": { + "value": "#330a1f", + "step": 900, + "type": "color" + } + } + }, + "text": { + "family": { + "sans": { + "value": "Zed Sans", + "type": "fontFamily" + }, + "mono": { + "value": "Zed Mono", + "type": "fontFamily" + } + }, + "weight": { + "thin": { + "value": "thin", + "type": "fontWeight" + }, + "extra_light": { + "value": "extra_light", + "type": "fontWeight" + }, + "light": { + "value": "light", + "type": "fontWeight" + }, + "normal": { + "value": "normal", + "type": "fontWeight" + }, + "medium": { + "value": "medium", + "type": "fontWeight" + }, + "semibold": { + "value": "semibold", + "type": "fontWeight" + }, + "bold": { + "value": "bold", + "type": "fontWeight" + }, + "extra_bold": { + "value": "extra_bold", + "type": "fontWeight" + }, + "black": { + "value": "black", + "type": "fontWeight" + } + } + }, + "size": { + "3xs": { + "value": 8, + "type": "fontSize" + }, + "2xs": { + "value": 10, + "type": "fontSize" + }, + "xs": { + "value": 12, + "type": "fontSize" + }, + "sm": { + "value": 14, + "type": "fontSize" + }, + "md": { + "value": 16, + "type": "fontSize" + }, + "lg": { + "value": 18, + "type": "fontSize" + }, + "xl": { + "value": 20, + "type": "fontSize" + } + } +} \ No newline at end of file diff --git a/styles/package-lock.json b/styles/package-lock.json index 43c9b19ea1224415c654186ed6203c48e776e2da..ade0a53052268990346f470de96522408fea5fd5 100644 --- a/styles/package-lock.json +++ b/styles/package-lock.json @@ -1,2589 +1,2589 @@ { - "name": "styles", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "styles", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "@types/chroma-js": "^2.1.3", - "@types/node": "^17.0.23", - "case-anything": "^2.1.10", - "chroma-js": "^2.4.2" - }, - "devDependencies": { - "nodemon": "^2.0.15", - "ts-node": "^10.7.0" - } - }, - "node_modules/@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-consumer": "0.8.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true - }, - "node_modules/@types/chroma-js": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", - "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" - }, - "node_modules/@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/case-anything": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", - "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==", - "engines": { - "node": ">=12.13" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chroma-js": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", - "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "dev": true - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/nodemon": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", - "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5", - "update-notifier": "^5.1.0" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "dependencies": { - "nopt": "~1.0.10" - }, - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/ts-node": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", - "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "0.7.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.0", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", - "dev": true, - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, - "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", - "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", - "dev": true - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - } - }, - "dependencies": { - "@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "dev": true - }, - "@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", - "dev": true, - "requires": { - "@cspotcode/source-map-consumer": "0.8.0" - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true - }, - "@types/chroma-js": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", - "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" - }, - "@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "requires": { - "string-width": "^4.1.0" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } + "name": "styles", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "styles", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@types/chroma-js": "^2.1.3", + "@types/node": "^17.0.23", + "case-anything": "^2.1.10", + "chroma-js": "^2.4.2" + }, + "devDependencies": { + "nodemon": "^2.0.15", + "ts-node": "^10.7.0" + } + }, + "node_modules/@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-consumer": "0.8.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true + }, + "node_modules/@types/chroma-js": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", + "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" + }, + "node_modules/@types/node": { + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/case-anything": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", + "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chroma-js": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", + "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nodemon": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", + "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/ts-node": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", + "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "0.7.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.0", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", + "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", + "dev": true + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } } - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true }, - "case-anything": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", - "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { + "dependencies": { + "@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "dev": true, + "requires": { + "@cspotcode/source-map-consumer": "0.8.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true + }, + "@types/chroma-js": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@types/chroma-js/-/chroma-js-2.1.3.tgz", + "integrity": "sha512-1xGPhoSGY1CPmXLCBcjVZSQinFjL26vlR8ZqprsBWiFyED4JacJJ9zHhh5aaUXqbY9B37mKQ73nlydVAXmr1+g==" + }, + "@types/node": { + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "case-anything": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", + "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chroma-js": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", + "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "requires": { + "ini": "2.0.0" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true + }, "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chroma-js": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz", - "integrity": "sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==" - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, - "requires": { - "ini": "2.0.0" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "requires": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - } - }, - "is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "requires": { - "package-json": "^6.3.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "nodemon": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", - "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", - "dev": true, - "requires": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5", - "update-notifier": "^5.1.0" - } - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, - "pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "requires": { - "escape-goat": "^2.0.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - } - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "requires": { - "nopt": "~1.0.10" - } - }, - "ts-node": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", - "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "0.7.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.0", - "yn": "3.1.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", - "dev": true, - "peer": true - }, - "undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, - "requires": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "nodemon": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", + "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "dev": true, + "requires": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + } + }, + "ts-node": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", + "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "0.7.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.0", + "yn": "3.1.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "dev": true, + "peer": true + }, + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "v8-compile-cache-lib": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", + "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", + "dev": true + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true } - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "requires": { - "prepend-http": "^2.0.0" - } - }, - "v8-compile-cache-lib": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", - "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", - "dev": true - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true } - } } diff --git a/styles/package.json b/styles/package.json index 8576a35d34956a0dd438e35f6989dd9b68b217c2..e11cb6108499c2ca4c4383caad9551f3ab98f581 100644 --- a/styles/package.json +++ b/styles/package.json @@ -1,22 +1,21 @@ { - "name": "styles", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "build": "ts-node buildThemes.ts", - "watch": "nodemon" - }, - "author": "", - "license": "ISC", - "dependencies": { - "@types/chroma-js": "^2.1.3", - "@types/node": "^17.0.23", - "case-anything": "^2.1.10", - "chroma-js": "^2.4.2", - "ts-node": "^10.7.0" - }, - "devDependencies": { - "nodemon": "^2.0.15" - } + "name": "styles", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "build-themes": "ts-node ./src/buildThemes.ts", + "build-figma": "ts-node ./src/buildFigmaTokens.ts", + "watch": "nodemon" + }, + "author": "", + "license": "ISC", + "dependencies": { + "@types/chroma-js": "^2.1.3", + "@types/node": "^17.0.23", + "case-anything": "^2.1.10", + "chroma-js": "^2.4.2", + "ts-node": "^10.7.0", + "nodemon": "^2.0.15" + } } diff --git a/styles/src/buildFigmaTokens.ts b/styles/src/buildFigmaTokens.ts new file mode 100644 index 0000000000000000000000000000000000000000..70704088a43f8cdf583f4995b56ad43e1c852fb4 --- /dev/null +++ b/styles/src/buildFigmaTokens.ts @@ -0,0 +1,110 @@ +import * as fs from "fs"; +import * as path from "path"; +import dark from "./themes/dark"; +import light from "./themes/light"; +import Theme from "./themes/theme"; +import { colors, fontFamilies, fontSizes, fontWeights } from "./tokens"; + +// Organize theme tokens +function themeTokens(theme: Theme) { + return { + meta: { + themeName: theme.name, + }, + text: theme.textColor, + icon: theme.iconColor, + background: theme.backgroundColor, + border: theme.borderColor, + editor: theme.editor, + syntax: { + primary: { + value: theme.syntax.primary.color.value, + type: "color", + }, + comment: { + value: theme.syntax.comment.color.value, + type: "color", + }, + keyword: { + value: theme.syntax.keyword.color.value, + type: "color", + }, + function: { + value: theme.syntax.function.color.value, + type: "color", + }, + type: { + value: theme.syntax.type.color.value, + type: "color", + }, + variant: { + value: theme.syntax.variant.color.value, + type: "color", + }, + property: { + value: theme.syntax.property.color.value, + type: "color", + }, + enum: { + value: theme.syntax.enum.color.value, + type: "color", + }, + operator: { + value: theme.syntax.operator.color.value, + type: "color", + }, + string: { + value: theme.syntax.string.color.value, + type: "color", + }, + number: { + value: theme.syntax.number.color.value, + type: "color", + }, + boolean: { + value: theme.syntax.boolean.color.value, + type: "color", + }, + }, + player: theme.player, + shadowAlpha: theme.shadowAlpha, + }; +} + +// Organize core tokens +const coreTokens = { + color: { + ...colors, + }, + text: { + family: fontFamilies, + weight: fontWeights, + }, + size: fontSizes, +}; + +const combinedTokens: any = { + core: coreTokens, +} + +// Create core.json +const corePath = path.resolve(`${__dirname}/../dist/figma/core.json`); +const coreJSON = JSON.stringify(coreTokens, null, 2); +fs.writeFileSync(corePath, coreJSON); +console.log(`- Core: core.json created`); + +// Create {theme}.json +let themes = [dark, light]; +const themePath = path.resolve(`${__dirname}/figma`); +themes.forEach((theme) => { + const tokenJSON = JSON.stringify(themeTokens(theme), null, 2); + fs.writeFileSync(`${themePath}/${theme.name}.json`, tokenJSON); + console.log(`- Theme: ${theme.name}.json created`); + combinedTokens[theme.name] = themeTokens(theme); +}); + +// Create combined tokens.json +const combinedPath = path.resolve(`${__dirname}/figma/tokens.json`); +const combinedJSON = JSON.stringify(combinedTokens, null, 2); +fs.writeFileSync(combinedPath, combinedJSON); +console.log(`- Combined: tokens.json created`); \ No newline at end of file diff --git a/styles/buildThemes.ts b/styles/src/buildThemes.ts similarity index 70% rename from styles/buildThemes.ts rename to styles/src/buildThemes.ts index 9128eff45d46a0a11b9a8ddb04013b3b59faf87a..8772b5fee2926739d6f6bb809ef3b7b3fc67fe7f 100644 --- a/styles/buildThemes.ts +++ b/styles/src/buildThemes.ts @@ -3,14 +3,14 @@ import * as path from "path"; import app from "./styleTree/app"; import dark from "./themes/dark"; import light from "./themes/light"; -import decamelizeTree from "./utils/decamelizeTree"; +import snakeCase from "./utils/snakeCase"; const themes = [dark, light]; for (let theme of themes) { - let styleTree = decamelizeTree(app(theme)); + let styleTree = snakeCase(app(theme)); let styleTreeJSON = JSON.stringify(styleTree, null, 2); let outPath = path.resolve( - `${__dirname}/../crates/zed/assets/themes/${theme.name}.json` + `${__dirname}/../../crates/zed/assets/themes/${theme.name}.json` ); fs.writeFileSync(outPath, styleTreeJSON); console.log(`Generated ${outPath}`); diff --git a/styles/figma/core.json b/styles/src/figma/core.json similarity index 100% rename from styles/figma/core.json rename to styles/src/figma/core.json diff --git a/styles/figma/dark.json b/styles/src/figma/dark.json similarity index 79% rename from styles/figma/dark.json rename to styles/src/figma/dark.json index 568f53b8154003fb1805de4c2ae420f0f2a94e89..28c27bfc23c2b520360f74634c6bd453643f58aa 100644 --- a/styles/figma/dark.json +++ b/styles/src/figma/dark.json @@ -29,27 +29,27 @@ "type": "color" }, "feature": { - "value": "#2db4f3", + "value": "#1096d3", "step": 500, "type": "color" }, "ok": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" }, "error": { - "value": "#f78c8c", + "value": "#f15656", "step": 400, "type": "color" }, "warning": { - "value": "#f8c570", + "value": "#f7bb57", "step": 300, "type": "color" }, "info": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" } @@ -81,27 +81,27 @@ "type": "color" }, "feature": { - "value": "#2db4f3", + "value": "#1096d3", "step": 500, "type": "color" }, "ok": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" }, "error": { - "value": "#f47171", + "value": "#eb2d2d", "step": 500, "type": "color" }, "warning": { - "value": "#f7b241", + "value": "#f6a724", "step": 400, "type": "color" }, "info": { - "value": "#4287f6", + "value": "#135acd", "step": 600, "type": "color" } @@ -175,88 +175,88 @@ }, "ok": { "base": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" }, "hovered": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" }, "active": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" }, "focused": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" } }, "error": { "base": { - "value": "#f78c8c", + "value": "#f15656", "step": 400, "type": "color" }, "hovered": { - "value": "#f78c8c", + "value": "#f15656", "step": 400, "type": "color" }, "active": { - "value": "#f78c8c", + "value": "#f15656", "step": 400, "type": "color" }, "focused": { - "value": "#f78c8c", + "value": "#f15656", "step": 400, "type": "color" } }, "warning": { "base": { - "value": "#f8c570", + "value": "#f7bb57", "step": 300, "type": "color" }, "hovered": { - "value": "#f8c570", + "value": "#f7bb57", "step": 300, "type": "color" }, "active": { - "value": "#f8c570", + "value": "#f7bb57", "step": 300, "type": "color" }, "focused": { - "value": "#f8c570", + "value": "#f7bb57", "step": 300, "type": "color" } }, "info": { "base": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" }, "hovered": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" }, "active": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" }, "focused": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" } @@ -289,22 +289,22 @@ "type": "color" }, "ok": { - "value": "#23d464", + "value": "#20b456", "step": 500, "type": "color" }, "error": { - "value": "#f47171", + "value": "#eb2d2d", "step": 500, "type": "color" }, "warning": { - "value": "#f59f0c", + "value": "#de900c", "step": 500, "type": "color" }, "info": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" } @@ -337,35 +337,35 @@ "type": "color" }, "inserted": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" }, "deleted": { - "value": "#f78c8c", + "value": "#f15656", "step": 400, "type": "color" }, "modified": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" } }, "highlight": { "selection": { - "value": "#d0e2fd", - "step": 100, + "value": "#103063", + "step": 800, "type": "color" }, "occurrence": { - "value": "#777af4", - "step": 500, + "value": "#2b2b2b", + "step": 750, "type": "color" }, "activeOccurrence": { - "value": "#8f90f6", - "step": 400, + "value": "#393939", + "step": 700, "type": "color" }, "matchingBracket": { @@ -374,13 +374,13 @@ "type": "color" }, "match": { - "value": "#87d116", - "step": 500, + "value": "#0a2633", + "step": 900, "type": "color" }, "activeMatch": { - "value": "#90df17", - "step": 400, + "value": "#0e4158", + "step": 800, "type": "color" }, "related": { @@ -404,227 +404,227 @@ }, "syntax": { "primary": { - "value": "#f1f1f1", + "value": "#d5d5d5", "type": "color" }, "comment": { - "value": "#bdf36b", + "value": "#aaaaaa", "type": "color" }, "keyword": { - "value": "#59c3f5", + "value": "#4f8ff7", "type": "color" }, "function": { - "value": "#fadc89", + "value": "#f9da82", "type": "color" }, "type": { - "value": "#26ebd5", + "value": "#3eeeda", "type": "color" }, "variant": { - "value": "#26ebd5", + "value": "#53c1f5", "type": "color" }, "property": { - "value": "#81d2f8", + "value": "#4f8ff7", "type": "color" }, "enum": { - "value": "#59c3f5", + "value": "#ee670a", "type": "color" }, "operator": { - "value": "#59c3f5", + "value": "#ee670a", "type": "color" }, "string": { - "value": "#fab78b", + "value": "#f99d5f", "type": "color" }, "number": { - "value": "#d5d5d5", + "value": "#aeef4b", "type": "color" }, "boolean": { - "value": "#d5d5d5", + "value": "#aeef4b", "type": "color" } }, "player": { "1": { "baseColor": { - "value": "#4287f6", - "step": 600, + "value": "#2472f2", + "step": 500, "type": "color" }, "cursorColor": { - "value": "#4287f6", - "step": 600, + "value": "#2472f2", + "step": 500, "type": "color" }, "selectionColor": { - "value": "#d0e2fd", - "step": 100, + "value": "#103063", + "step": 800, "type": "color" }, "borderColor": { - "value": "#4287f6", - "step": 600, + "value": "#103063", + "step": 800, "type": "color" } }, "2": { "baseColor": { - "value": "#87d116", + "value": "#79ba16", "step": 500, "type": "color" }, "cursorColor": { - "value": "#87d116", + "value": "#79ba16", "step": 500, "type": "color" }, "selectionColor": { - "value": "#dbf9ac", - "step": 100, + "value": "#38530f", + "step": 800, "type": "color" }, "borderColor": { - "value": "#87d116", + "value": "#79ba16", "step": 500, "type": "color" } }, "3": { "baseColor": { - "value": "#777af4", + "value": "#484bed", "step": 500, "type": "color" }, "cursorColor": { - "value": "#777af4", + "value": "#484bed", "step": 500, "type": "color" }, "selectionColor": { - "value": "#d4d5fd", - "step": 100, + "value": "#121269", + "step": 800, "type": "color" }, "borderColor": { - "value": "#777af4", + "value": "#484bed", "step": 500, "type": "color" } }, "4": { "baseColor": { - "value": "#f98a3d", + "value": "#ee670a", "step": 500, "type": "color" }, "cursorColor": { - "value": "#f98a3d", + "value": "#ee670a", "step": 500, "type": "color" }, "selectionColor": { - "value": "#fde0cd", - "step": 100, + "value": "#5d2f0e", + "step": 800, "type": "color" }, "borderColor": { - "value": "#f98a3d", + "value": "#ee670a", "step": 500, "type": "color" } }, "5": { "baseColor": { - "value": "#b671f8", + "value": "#993bf3", "step": 500, "type": "color" }, "cursorColor": { - "value": "#b671f8", + "value": "#993bf3", "step": 500, "type": "color" }, "selectionColor": { - "value": "#e9d4fd", - "step": 100, + "value": "#3e1169", + "step": 800, "type": "color" }, "borderColor": { - "value": "#b671f8", + "value": "#993bf3", "step": 500, "type": "color" } }, "6": { "baseColor": { - "value": "#16ddc7", + "value": "#16d6c1", "step": 400, "type": "color" }, "cursorColor": { - "value": "#16ddc7", + "value": "#16d6c1", "step": 400, "type": "color" }, "selectionColor": { - "value": "#b4faf2", - "step": 100, + "value": "#0e4f48", + "step": 800, "type": "color" }, "borderColor": { - "value": "#16ddc7", + "value": "#16d6c1", "step": 400, "type": "color" } }, "7": { "baseColor": { - "value": "#f58ac0", + "value": "#ef59a3", "step": 400, "type": "color" }, "cursorColor": { - "value": "#f58ac0", + "value": "#ef59a3", "step": 400, "type": "color" }, "selectionColor": { - "value": "#fcd4e8", + "value": "#fbc6e1", "step": 100, "type": "color" }, "borderColor": { - "value": "#f58ac0", + "value": "#ef59a3", "step": 400, "type": "color" } }, "8": { "baseColor": { - "value": "#f6bc09", + "value": "#f7bf17", "step": 400, "type": "color" }, "cursorColor": { - "value": "#f6bc09", + "value": "#f7bf17", "step": 400, "type": "color" }, "selectionColor": { - "value": "#fceabc", + "value": "#fce9b7", "step": 100, "type": "color" }, "borderColor": { - "value": "#f6bc09", + "value": "#f7bf17", "step": 400, "type": "color" } diff --git a/styles/figma/light.json b/styles/src/figma/light.json similarity index 80% rename from styles/figma/light.json rename to styles/src/figma/light.json index c8ef9e5dcd69332fc33abda730f08b7f7190d574..f4ed9e74013880772816eac62e9d934eb607c6c6 100644 --- a/styles/figma/light.json +++ b/styles/src/figma/light.json @@ -29,27 +29,27 @@ "type": "color" }, "feature": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" }, "ok": { - "value": "#23d464", + "value": "#20b456", "step": 500, "type": "color" }, "error": { - "value": "#f47171", + "value": "#eb2d2d", "step": 500, "type": "color" }, "warning": { - "value": "#e5af09", + "value": "#d3a20b", "step": 500, "type": "color" }, "info": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" } @@ -81,27 +81,27 @@ "type": "color" }, "feature": { - "value": "#0ea5e8", + "value": "#1179a8", "step": 600, "type": "color" }, "ok": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" }, "error": { - "value": "#f15252", + "value": "#c91818", "step": 600, "type": "color" }, "warning": { - "value": "#f6bc09", + "value": "#f7bf17", "step": 400, "type": "color" }, "info": { - "value": "#4287f6", + "value": "#135acd", "step": 600, "type": "color" } @@ -158,105 +158,105 @@ "type": "color" }, "hovered": { - "value": "#f1f1f1", - "step": 50, + "value": "#f8f8f8", + "step": 25, "type": "color" }, "active": { - "value": "#e3e3e3", - "step": 100, + "value": "#f1f1f1", + "step": 50, "type": "color" }, "focused": { - "value": "#f1f1f1", - "step": 50, + "value": "#eaeaea", + "step": 75, "type": "color" } }, "ok": { "base": { - "value": "#befad2", + "value": "#b7f9ce", "step": 100, "type": "color" }, "hovered": { - "value": "#befad2", + "value": "#b7f9ce", "step": 100, "type": "color" }, "active": { - "value": "#befad2", + "value": "#b7f9ce", "step": 100, "type": "color" }, "focused": { - "value": "#befad2", + "value": "#b7f9ce", "step": 100, "type": "color" } }, "error": { "base": { - "value": "#fdd4d4", + "value": "#fcc6c6", "step": 100, "type": "color" }, "hovered": { - "value": "#fdd4d4", + "value": "#fcc6c6", "step": 100, "type": "color" }, "active": { - "value": "#fdd4d4", + "value": "#fcc6c6", "step": 100, "type": "color" }, "focused": { - "value": "#fdd4d4", + "value": "#fcc6c6", "step": 100, "type": "color" } }, "warning": { "base": { - "value": "#fceabc", + "value": "#fce9b7", "step": 100, "type": "color" }, "hovered": { - "value": "#fceabc", + "value": "#fce9b7", "step": 100, "type": "color" }, "active": { - "value": "#fceabc", + "value": "#fce9b7", "step": 100, "type": "color" }, "focused": { - "value": "#fceabc", + "value": "#fce9b7", "step": 100, "type": "color" } }, "info": { "base": { - "value": "#d0e2fd", + "value": "#c5dafc", "step": 100, "type": "color" }, "hovered": { - "value": "#d0e2fd", + "value": "#c5dafc", "step": 100, "type": "color" }, "active": { - "value": "#d0e2fd", + "value": "#c5dafc", "step": 100, "type": "color" }, "focused": { - "value": "#d0e2fd", + "value": "#c5dafc", "step": 100, "type": "color" } @@ -289,22 +289,22 @@ "type": "color" }, "ok": { - "value": "#8ff4b2", + "value": "#84f2ab", "step": 200, "type": "color" }, "error": { - "value": "#fbbdbd", + "value": "#f9a0a0", "step": 200, "type": "color" }, "warning": { - "value": "#fadc89", + "value": "#f9da82", "step": 200, "type": "color" }, "info": { - "value": "#b4cffb", + "value": "#9ec1fa", "step": 200, "type": "color" } @@ -327,40 +327,40 @@ }, "line": { "active": { - "value": "#e3e3e3", - "step": 100, + "value": "#f1f1f1", + "step": 50, "type": "color" }, "highlighted": { - "value": "#e3e3e3", - "step": 100, + "value": "#f1f1f1", + "step": 50, "type": "color" }, "inserted": { - "value": "#befad2", + "value": "#b7f9ce", "step": 100, "type": "color" }, "deleted": { - "value": "#fdd4d4", + "value": "#fcc6c6", "step": 100, "type": "color" }, "modified": { - "value": "#d0e2fd", + "value": "#c5dafc", "step": 100, "type": "color" } }, "highlight": { "selection": { - "value": "#d0e2fd", + "value": "#c5dafc", "step": 100, "type": "color" }, "occurrence": { - "value": "#e3e3e3", - "step": 100, + "value": "#f1f1f1", + "step": 50, "type": "color" }, "activeOccurrence": { @@ -391,8 +391,8 @@ }, "gutter": { "primary": { - "value": "#808080", - "step": 450, + "value": "#aaaaaa", + "step": 300, "type": "color" }, "active": { @@ -408,223 +408,223 @@ "type": "color" }, "comment": { - "value": "#bdf36b", + "value": "#555555", "type": "color" }, "keyword": { - "value": "#59c3f5", + "value": "#103063", "type": "color" }, "function": { - "value": "#fadc89", + "value": "#1b9447", "type": "color" }, "type": { - "value": "#26ebd5", + "value": "#138a7d", "type": "color" }, "variant": { - "value": "#26ebd5", + "value": "#1179a8", "type": "color" }, "property": { - "value": "#81d2f8", + "value": "#134697", "type": "color" }, "enum": { - "value": "#59c3f5", + "value": "#bb550e", "type": "color" }, "operator": { - "value": "#59c3f5", + "value": "#bb550e", "type": "color" }, "string": { - "value": "#fab78b", + "value": "#bb550e", "type": "color" }, "number": { - "value": "#d5d5d5", + "value": "#14a898", "type": "color" }, "boolean": { - "value": "#d5d5d5", + "value": "#b0740f", "type": "color" } }, "player": { "1": { "baseColor": { - "value": "#4287f6", + "value": "#135acd", "step": 600, "type": "color" }, "cursorColor": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" }, "selectionColor": { - "value": "#d0e2fd", + "value": "#c5dafc", "step": 100, "type": "color" }, "borderColor": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" } }, "2": { "baseColor": { - "value": "#87d116", + "value": "#79ba16", "step": 500, "type": "color" }, "cursorColor": { - "value": "#87d116", + "value": "#79ba16", "step": 500, "type": "color" }, "selectionColor": { - "value": "#dbf9ac", + "value": "#dffab5", "step": 100, "type": "color" }, "borderColor": { - "value": "#87d116", + "value": "#79ba16", "step": 500, "type": "color" } }, "3": { "baseColor": { - "value": "#777af4", + "value": "#484bed", "step": 500, "type": "color" }, "cursorColor": { - "value": "#777af4", + "value": "#484bed", "step": 500, "type": "color" }, "selectionColor": { - "value": "#d4d5fd", + "value": "#cdcdfc", "step": 100, "type": "color" }, "borderColor": { - "value": "#777af4", + "value": "#484bed", "step": 500, "type": "color" } }, "4": { "baseColor": { - "value": "#f98a3d", + "value": "#ee670a", "step": 500, "type": "color" }, "cursorColor": { - "value": "#f98a3d", + "value": "#ee670a", "step": 500, "type": "color" }, "selectionColor": { - "value": "#fde0cd", + "value": "#fcd6bd", "step": 100, "type": "color" }, "borderColor": { - "value": "#f98a3d", + "value": "#ee670a", "step": 500, "type": "color" } }, "5": { "baseColor": { - "value": "#b671f8", + "value": "#993bf3", "step": 500, "type": "color" }, "cursorColor": { - "value": "#b671f8", + "value": "#993bf3", "step": 500, "type": "color" }, "selectionColor": { - "value": "#e9d4fd", + "value": "#e4cbfc", "step": 100, "type": "color" }, "borderColor": { - "value": "#b671f8", + "value": "#993bf3", "step": 500, "type": "color" } }, "6": { "baseColor": { - "value": "#16ddc7", + "value": "#16d6c1", "step": 400, "type": "color" }, "cursorColor": { - "value": "#16ddc7", + "value": "#16d6c1", "step": 400, "type": "color" }, "selectionColor": { - "value": "#b4faf2", + "value": "#b1faf2", "step": 100, "type": "color" }, "borderColor": { - "value": "#16ddc7", + "value": "#16d6c1", "step": 400, "type": "color" } }, "7": { "baseColor": { - "value": "#f58ac0", + "value": "#ef59a3", "step": 400, "type": "color" }, "cursorColor": { - "value": "#f58ac0", + "value": "#ef59a3", "step": 400, "type": "color" }, "selectionColor": { - "value": "#fcd4e8", + "value": "#fbc6e1", "step": 100, "type": "color" }, "borderColor": { - "value": "#f58ac0", + "value": "#ef59a3", "step": 400, "type": "color" } }, "8": { "baseColor": { - "value": "#f6bc09", + "value": "#f7bf17", "step": 400, "type": "color" }, "cursorColor": { - "value": "#f6bc09", + "value": "#f7bf17", "step": 400, "type": "color" }, "selectionColor": { - "value": "#fceabc", + "value": "#fce9b7", "step": 100, "type": "color" }, "borderColor": { - "value": "#f6bc09", + "value": "#f7bf17", "step": 400, "type": "color" } diff --git a/styles/figma/tokens.json b/styles/src/figma/tokens.json similarity index 80% rename from styles/figma/tokens.json rename to styles/src/figma/tokens.json index cffc3ed16de7a4dec1fa38fa2026243c81629055..79f3737ef6dea28f3e7cb823f1f2a42f129ee571 100644 --- a/styles/figma/tokens.json +++ b/styles/src/figma/tokens.json @@ -195,47 +195,47 @@ "type": "color" }, "100": { - "value": "#fdd5db", + "value": "#fcc5cf", "step": 100, "type": "color" }, "200": { - "value": "#fbbdc8", + "value": "#fa9fae", "step": 200, "type": "color" }, "300": { - "value": "#faa4b3", + "value": "#f8788e", "step": 300, "type": "color" }, "400": { - "value": "#f98a9d", + "value": "#f5526e", "step": 400, "type": "color" }, "500": { - "value": "#f76e86", + "value": "#f0284a", "step": 500, "type": "color" }, "600": { - "value": "#f54c69", + "value": "#cd1434", "step": 600, "type": "color" }, "700": { - "value": "#ec2548", + "value": "#97142a", "step": 700, "type": "color" }, "800": { - "value": "#d21939", + "value": "#64101e", "step": 800, "type": "color" }, "900": { - "value": "#b41a35", + "value": "#330a11", "step": 900, "type": "color" } @@ -247,47 +247,47 @@ "type": "color" }, "100": { - "value": "#fdd4d4", + "value": "#fcc6c6", "step": 100, "type": "color" }, "200": { - "value": "#fbbdbd", + "value": "#f9a0a0", "step": 200, "type": "color" }, "300": { - "value": "#f9a5a5", + "value": "#f57b7b", "step": 300, "type": "color" }, "400": { - "value": "#f78c8c", + "value": "#f15656", "step": 400, "type": "color" }, "500": { - "value": "#f47171", + "value": "#eb2d2d", "step": 500, "type": "color" }, "600": { - "value": "#f15252", + "value": "#c91818", "step": 600, "type": "color" }, "700": { - "value": "#e82c2c", + "value": "#951515", "step": 700, "type": "color" }, "800": { - "value": "#d11c1c", + "value": "#631111", "step": 800, "type": "color" }, "900": { - "value": "#b21c1c", + "value": "#330a0a", "step": 900, "type": "color" } @@ -299,47 +299,47 @@ "type": "color" }, "100": { - "value": "#fde0cd", + "value": "#fcd6bd", "step": 100, "type": "color" }, "200": { - "value": "#fbccac", + "value": "#fab98e", "step": 200, "type": "color" }, "300": { - "value": "#fab78b", + "value": "#f99d5f", "step": 300, "type": "color" }, "400": { - "value": "#faa266", + "value": "#f9812e", "step": 400, "type": "color" }, "500": { - "value": "#f98a3d", + "value": "#ee670a", "step": 500, "type": "color" }, "600": { - "value": "#f77113", + "value": "#bb550e", "step": 600, "type": "color" }, "700": { - "value": "#e0650f", + "value": "#8b4210", "step": 700, "type": "color" }, "800": { - "value": "#c65d14", + "value": "#5d2f0e", "step": 800, "type": "color" }, "900": { - "value": "#ac5517", + "value": "#331b0a", "step": 900, "type": "color" } @@ -351,47 +351,47 @@ "type": "color" }, "100": { - "value": "#fce7c4", + "value": "#fce2ba", "step": 100, "type": "color" }, "200": { - "value": "#fad69d", + "value": "#f9ce89", "step": 200, "type": "color" }, "300": { - "value": "#f8c570", + "value": "#f7bb57", "step": 300, "type": "color" }, "400": { - "value": "#f7b241", + "value": "#f6a724", "step": 400, "type": "color" }, "500": { - "value": "#f59f0c", + "value": "#de900c", "step": 500, "type": "color" }, "600": { - "value": "#e1930e", + "value": "#b0740f", "step": 600, "type": "color" }, "700": { - "value": "#cd8812", + "value": "#845910", "step": 700, "type": "color" }, "800": { - "value": "#ba7d15", + "value": "#5a3e0e", "step": 800, "type": "color" }, "900": { - "value": "#a77218", + "value": "#33240a", "step": 900, "type": "color" } @@ -403,47 +403,47 @@ "type": "color" }, "100": { - "value": "#fceabc", + "value": "#fce9b7", "step": 100, "type": "color" }, "200": { - "value": "#fadc89", + "value": "#f9da82", "step": 200, "type": "color" }, "300": { - "value": "#f8cc4e", + "value": "#f8cc4d", "step": 300, "type": "color" }, "400": { - "value": "#f6bc09", + "value": "#f7bf17", "step": 400, "type": "color" }, "500": { - "value": "#e5af09", + "value": "#d3a20b", "step": 500, "type": "color" }, "600": { - "value": "#d4a30d", + "value": "#a8820e", "step": 600, "type": "color" }, "700": { - "value": "#c49811", + "value": "#7e630f", "step": 700, "type": "color" }, "800": { - "value": "#b48d14", + "value": "#58460e", "step": 800, "type": "color" }, "900": { - "value": "#a48117", + "value": "#33290a", "step": 900, "type": "color" } @@ -455,47 +455,47 @@ "type": "color" }, "100": { - "value": "#dbf9ac", + "value": "#dffab5", "step": 100, "type": "color" }, "200": { - "value": "#bdf36b", + "value": "#c7f57f", "step": 200, "type": "color" }, "300": { - "value": "#9feb2b", + "value": "#aeef4b", "step": 300, "type": "color" }, "400": { - "value": "#90df17", + "value": "#96e818", "step": 400, "type": "color" }, "500": { - "value": "#87d116", + "value": "#79ba16", "step": 500, "type": "color" }, "600": { - "value": "#7fc417", + "value": "#639714", "step": 600, "type": "color" }, "700": { - "value": "#78b618", + "value": "#4e7412", "step": 700, "type": "color" }, "800": { - "value": "#70aa19", + "value": "#38530f", "step": 800, "type": "color" }, "900": { - "value": "#699c1a", + "value": "#23330a", "step": 900, "type": "color" } @@ -507,47 +507,47 @@ "type": "color" }, "100": { - "value": "#befad2", + "value": "#b7f9ce", "step": 100, "type": "color" }, "200": { - "value": "#8ff4b2", + "value": "#84f2ab", "step": 200, "type": "color" }, "300": { - "value": "#60ec92", + "value": "#54e989", "step": 300, "type": "color" }, "400": { - "value": "#34e173", + "value": "#27dd69", "step": 400, "type": "color" }, "500": { - "value": "#23d464", + "value": "#20b456", "step": 500, "type": "color" }, "600": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" }, "700": { - "value": "#20b658", + "value": "#157338", "step": 700, "type": "color" }, "800": { - "value": "#1ea851", + "value": "#105328", "step": 800, "type": "color" }, "900": { - "value": "#1d9b4b", + "value": "#0a3319", "step": 900, "type": "color" } @@ -559,47 +559,47 @@ "type": "color" }, "100": { - "value": "#b3fbe3", + "value": "#b0fae1", "step": 100, "type": "color" }, "200": { - "value": "#72f6ca", + "value": "#74f6cb", "step": 200, "type": "color" }, "300": { - "value": "#1feda9", + "value": "#39f0b3", "step": 300, "type": "color" }, "400": { - "value": "#12e09b", + "value": "#12d796", "step": 400, "type": "color" }, "500": { - "value": "#11d091", + "value": "#10a977", "step": 500, "type": "color" }, "600": { - "value": "#11c287", + "value": "#118a62", "step": 600, "type": "color" }, "700": { - "value": "#11b37e", + "value": "#106c4e", "step": 700, "type": "color" }, "800": { - "value": "#15a575", + "value": "#0d4f3a", "step": 800, "type": "color" }, "900": { - "value": "#18976c", + "value": "#0a3326", "step": 900, "type": "color" } @@ -611,47 +611,47 @@ "type": "color" }, "100": { - "value": "#b4faf2", + "value": "#b1faf2", "step": 100, "type": "color" }, "200": { - "value": "#73f4e6", + "value": "#76f5e7", "step": 200, "type": "color" }, "300": { - "value": "#26ebd5", + "value": "#3eeeda", "step": 300, "type": "color" }, "400": { - "value": "#16ddc7", + "value": "#16d6c1", "step": 400, "type": "color" }, "500": { - "value": "#15cfba", + "value": "#14a898", "step": 500, "type": "color" }, "600": { - "value": "#15c1ae", + "value": "#138a7d", "step": 600, "type": "color" }, "700": { - "value": "#15b2a1", + "value": "#116c62", "step": 700, "type": "color" }, "800": { - "value": "#17a495", + "value": "#0e4f48", "step": 800, "type": "color" }, "900": { - "value": "#199788", + "value": "#0a332f", "step": 900, "type": "color" } @@ -663,17 +663,17 @@ "type": "color" }, "100": { - "value": "#bcf5fc", + "value": "#b2f3fb", "step": 100, "type": "color" }, "200": { - "value": "#86edfa", + "value": "#78eaf9", "step": 200, "type": "color" }, "300": { - "value": "#41e3f8", + "value": "#3de2f8", "step": 300, "type": "color" }, @@ -683,27 +683,27 @@ "type": "color" }, "500": { - "value": "#07c7e1", + "value": "#09aac0", "step": 500, "type": "color" }, "600": { - "value": "#07b8d0", + "value": "#0c8a9a", "step": 600, "type": "color" }, "700": { - "value": "#0daabf", + "value": "#0e6a75", "step": 700, "type": "color" }, "800": { - "value": "#119bae", + "value": "#0d4c53", "step": 800, "type": "color" }, "900": { - "value": "#168e9e", + "value": "#0a2f33", "step": 900, "type": "color" } @@ -715,47 +715,47 @@ "type": "color" }, "100": { - "value": "#caecfc", + "value": "#b9e5fb", "step": 100, "type": "color" }, "200": { - "value": "#a6defa", + "value": "#86d3f8", "step": 200, "type": "color" }, "300": { - "value": "#81d2f8", + "value": "#53c1f5", "step": 300, "type": "color" }, "400": { - "value": "#59c3f5", + "value": "#20b0f2", "step": 400, "type": "color" }, "500": { - "value": "#2db4f3", + "value": "#1096d3", "step": 500, "type": "color" }, "600": { - "value": "#0ea5e8", + "value": "#1179a8", "step": 600, "type": "color" }, "700": { - "value": "#1296d1", + "value": "#115c7f", "step": 700, "type": "color" }, "800": { - "value": "#1686ba", + "value": "#0e4158", "step": 800, "type": "color" }, "900": { - "value": "#1878a4", + "value": "#0a2633", "step": 900, "type": "color" } @@ -767,47 +767,47 @@ "type": "color" }, "100": { - "value": "#d0e2fd", + "value": "#c5dafc", "step": 100, "type": "color" }, "200": { - "value": "#b4cffb", + "value": "#9ec1fa", "step": 200, "type": "color" }, "300": { - "value": "#99befa", + "value": "#76a8f8", "step": 300, "type": "color" }, "400": { - "value": "#7cacf9", + "value": "#4f8ff7", "step": 400, "type": "color" }, "500": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" }, "600": { - "value": "#4287f6", + "value": "#135acd", "step": 600, "type": "color" }, "700": { - "value": "#2774f0", + "value": "#134697", "step": 700, "type": "color" }, "800": { - "value": "#1762db", + "value": "#103063", "step": 800, "type": "color" }, "900": { - "value": "#1a55b4", + "value": "#0a1a33", "step": 900, "type": "color" } @@ -819,47 +819,47 @@ "type": "color" }, "100": { - "value": "#d4d5fd", + "value": "#cdcdfc", "step": 100, "type": "color" }, "200": { - "value": "#bebefb", + "value": "#aeaff9", "step": 200, "type": "color" }, "300": { - "value": "#a7a8f9", + "value": "#9091f6", "step": 300, "type": "color" }, "400": { - "value": "#8f90f6", + "value": "#7274f3", "step": 400, "type": "color" }, "500": { - "value": "#777af4", + "value": "#484bed", "step": 500, "type": "color" }, "600": { - "value": "#5f62f0", + "value": "#1b1edc", "step": 600, "type": "color" }, "700": { - "value": "#464aeb", + "value": "#1819a1", "step": 700, "type": "color" }, "800": { - "value": "#292de4", + "value": "#121269", "step": 800, "type": "color" }, "900": { - "value": "#1d20bb", + "value": "#0a0a33", "step": 900, "type": "color" } @@ -871,47 +871,47 @@ "type": "color" }, "100": { - "value": "#e0d5fd", + "value": "#daccfc", "step": 100, "type": "color" }, "200": { - "value": "#cfbcfb", + "value": "#c3acfb", "step": 200, "type": "color" }, "300": { - "value": "#bda4fa", + "value": "#ac8cf9", "step": 300, "type": "color" }, "400": { - "value": "#ad8cf9", + "value": "#966cf7", "step": 400, "type": "color" }, "500": { - "value": "#9b73f7", + "value": "#7741f2", "step": 500, "type": "color" }, "600": { - "value": "#8959f6", + "value": "#5316e0", "step": 600, "type": "color" }, "700": { - "value": "#7540f0", + "value": "#3f15a3", "step": 700, "type": "color" }, "800": { - "value": "#5e22e7", + "value": "#2b116a", "step": 800, "type": "color" }, "900": { - "value": "#4c1bbc", + "value": "#160a33", "step": 900, "type": "color" } @@ -923,47 +923,47 @@ "type": "color" }, "100": { - "value": "#e9d4fd", + "value": "#e4cbfc", "step": 100, "type": "color" }, "200": { - "value": "#dcbcfc", + "value": "#d2a9fb", "step": 200, "type": "color" }, "300": { - "value": "#d0a4fa", + "value": "#c188f9", "step": 300, "type": "color" }, "400": { - "value": "#c38bf9", + "value": "#b066f8", "step": 400, "type": "color" }, "500": { - "value": "#b671f8", + "value": "#993bf3", "step": 500, "type": "color" }, "600": { - "value": "#a856f7", + "value": "#7b14dd", "step": 600, "type": "color" }, "700": { - "value": "#9739f1", + "value": "#5c14a1", "step": 700, "type": "color" }, "800": { - "value": "#831ae6", + "value": "#3e1169", "step": 800, "type": "color" }, "900": { - "value": "#6d1bbb", + "value": "#1f0a33", "step": 900, "type": "color" } @@ -975,47 +975,47 @@ "type": "color" }, "100": { - "value": "#fad4fc", + "value": "#f8c5fb", "step": 100, "type": "color" }, "200": { - "value": "#f6bbfa", + "value": "#f19ff6", "step": 200, "type": "color" }, "300": { - "value": "#f1a2f7", + "value": "#e87af0", "step": 300, "type": "color" }, "400": { - "value": "#ec8af3", + "value": "#de57e8", "step": 400, "type": "color" }, "500": { - "value": "#e56fee", + "value": "#d430e0", "step": 500, "type": "color" }, "600": { - "value": "#dd51e7", + "value": "#b31fbc", "step": 600, "type": "color" }, "700": { - "value": "#d32edf", + "value": "#87198e", "step": 700, "type": "color" }, "800": { - "value": "#bc21c8", + "value": "#5c1260", "step": 800, "type": "color" }, "900": { - "value": "#a41ead", + "value": "#310a33", "step": 900, "type": "color" } @@ -1027,47 +1027,47 @@ "type": "color" }, "100": { - "value": "#fcd4e8", + "value": "#fbc6e1", "step": 100, "type": "color" }, "200": { - "value": "#fbbcdb", + "value": "#f8a1cc", "step": 200, "type": "color" }, "300": { - "value": "#f8a5ce", + "value": "#f47db8", "step": 300, "type": "color" }, "400": { - "value": "#f58ac0", + "value": "#ef59a3", "step": 400, "type": "color" }, "500": { - "value": "#f26fb0", + "value": "#e8318c", "step": 500, "type": "color" }, "600": { - "value": "#ee519e", + "value": "#c71a71", "step": 600, "type": "color" }, "700": { - "value": "#e52e89", + "value": "#941756", "step": 700, "type": "color" }, "800": { - "value": "#ce1e76", + "value": "#63113b", "step": 800, "type": "color" }, "900": { - "value": "#b21d67", + "value": "#330a1f", "step": 900, "type": "color" } @@ -1185,27 +1185,27 @@ "type": "color" }, "feature": { - "value": "#2db4f3", + "value": "#1096d3", "step": 500, "type": "color" }, "ok": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" }, "error": { - "value": "#f78c8c", + "value": "#f15656", "step": 400, "type": "color" }, "warning": { - "value": "#f8c570", + "value": "#f7bb57", "step": 300, "type": "color" }, "info": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" } @@ -1237,27 +1237,27 @@ "type": "color" }, "feature": { - "value": "#2db4f3", + "value": "#1096d3", "step": 500, "type": "color" }, "ok": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" }, "error": { - "value": "#f47171", + "value": "#eb2d2d", "step": 500, "type": "color" }, "warning": { - "value": "#f7b241", + "value": "#f6a724", "step": 400, "type": "color" }, "info": { - "value": "#4287f6", + "value": "#135acd", "step": 600, "type": "color" } @@ -1331,88 +1331,88 @@ }, "ok": { "base": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" }, "hovered": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" }, "active": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" }, "focused": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" } }, "error": { "base": { - "value": "#f78c8c", + "value": "#f15656", "step": 400, "type": "color" }, "hovered": { - "value": "#f78c8c", + "value": "#f15656", "step": 400, "type": "color" }, "active": { - "value": "#f78c8c", + "value": "#f15656", "step": 400, "type": "color" }, "focused": { - "value": "#f78c8c", + "value": "#f15656", "step": 400, "type": "color" } }, "warning": { "base": { - "value": "#f8c570", + "value": "#f7bb57", "step": 300, "type": "color" }, "hovered": { - "value": "#f8c570", + "value": "#f7bb57", "step": 300, "type": "color" }, "active": { - "value": "#f8c570", + "value": "#f7bb57", "step": 300, "type": "color" }, "focused": { - "value": "#f8c570", + "value": "#f7bb57", "step": 300, "type": "color" } }, "info": { "base": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" }, "hovered": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" }, "active": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" }, "focused": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" } @@ -1445,22 +1445,22 @@ "type": "color" }, "ok": { - "value": "#23d464", + "value": "#20b456", "step": 500, "type": "color" }, "error": { - "value": "#f47171", + "value": "#eb2d2d", "step": 500, "type": "color" }, "warning": { - "value": "#f59f0c", + "value": "#de900c", "step": 500, "type": "color" }, "info": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" } @@ -1493,35 +1493,35 @@ "type": "color" }, "inserted": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" }, "deleted": { - "value": "#f78c8c", + "value": "#f15656", "step": 400, "type": "color" }, "modified": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" } }, "highlight": { "selection": { - "value": "#d0e2fd", - "step": 100, + "value": "#103063", + "step": 800, "type": "color" }, "occurrence": { - "value": "#777af4", - "step": 500, + "value": "#2b2b2b", + "step": 750, "type": "color" }, "activeOccurrence": { - "value": "#8f90f6", - "step": 400, + "value": "#393939", + "step": 700, "type": "color" }, "matchingBracket": { @@ -1530,13 +1530,13 @@ "type": "color" }, "match": { - "value": "#87d116", - "step": 500, + "value": "#0a2633", + "step": 900, "type": "color" }, "activeMatch": { - "value": "#90df17", - "step": 400, + "value": "#0e4158", + "step": 800, "type": "color" }, "related": { @@ -1560,227 +1560,227 @@ }, "syntax": { "primary": { - "value": "#f1f1f1", + "value": "#d5d5d5", "type": "color" }, "comment": { - "value": "#bdf36b", + "value": "#aaaaaa", "type": "color" }, "keyword": { - "value": "#59c3f5", + "value": "#4f8ff7", "type": "color" }, "function": { - "value": "#fadc89", + "value": "#f9da82", "type": "color" }, "type": { - "value": "#26ebd5", + "value": "#3eeeda", "type": "color" }, "variant": { - "value": "#26ebd5", + "value": "#53c1f5", "type": "color" }, "property": { - "value": "#81d2f8", + "value": "#4f8ff7", "type": "color" }, "enum": { - "value": "#59c3f5", + "value": "#ee670a", "type": "color" }, "operator": { - "value": "#59c3f5", + "value": "#ee670a", "type": "color" }, "string": { - "value": "#fab78b", + "value": "#f99d5f", "type": "color" }, "number": { - "value": "#d5d5d5", + "value": "#aeef4b", "type": "color" }, "boolean": { - "value": "#d5d5d5", + "value": "#aeef4b", "type": "color" } }, "player": { "1": { "baseColor": { - "value": "#4287f6", - "step": 600, + "value": "#2472f2", + "step": 500, "type": "color" }, "cursorColor": { - "value": "#4287f6", - "step": 600, + "value": "#2472f2", + "step": 500, "type": "color" }, "selectionColor": { - "value": "#d0e2fd", - "step": 100, + "value": "#103063", + "step": 800, "type": "color" }, "borderColor": { - "value": "#4287f6", - "step": 600, + "value": "#103063", + "step": 800, "type": "color" } }, "2": { "baseColor": { - "value": "#87d116", + "value": "#79ba16", "step": 500, "type": "color" }, "cursorColor": { - "value": "#87d116", + "value": "#79ba16", "step": 500, "type": "color" }, "selectionColor": { - "value": "#dbf9ac", - "step": 100, + "value": "#38530f", + "step": 800, "type": "color" }, "borderColor": { - "value": "#87d116", + "value": "#79ba16", "step": 500, "type": "color" } }, "3": { "baseColor": { - "value": "#777af4", + "value": "#484bed", "step": 500, "type": "color" }, "cursorColor": { - "value": "#777af4", + "value": "#484bed", "step": 500, "type": "color" }, "selectionColor": { - "value": "#d4d5fd", - "step": 100, + "value": "#121269", + "step": 800, "type": "color" }, "borderColor": { - "value": "#777af4", + "value": "#484bed", "step": 500, "type": "color" } }, "4": { "baseColor": { - "value": "#f98a3d", + "value": "#ee670a", "step": 500, "type": "color" }, "cursorColor": { - "value": "#f98a3d", + "value": "#ee670a", "step": 500, "type": "color" }, "selectionColor": { - "value": "#fde0cd", - "step": 100, + "value": "#5d2f0e", + "step": 800, "type": "color" }, "borderColor": { - "value": "#f98a3d", + "value": "#ee670a", "step": 500, "type": "color" } }, "5": { "baseColor": { - "value": "#b671f8", + "value": "#993bf3", "step": 500, "type": "color" }, "cursorColor": { - "value": "#b671f8", + "value": "#993bf3", "step": 500, "type": "color" }, "selectionColor": { - "value": "#e9d4fd", - "step": 100, + "value": "#3e1169", + "step": 800, "type": "color" }, "borderColor": { - "value": "#b671f8", + "value": "#993bf3", "step": 500, "type": "color" } }, "6": { "baseColor": { - "value": "#16ddc7", + "value": "#16d6c1", "step": 400, "type": "color" }, "cursorColor": { - "value": "#16ddc7", + "value": "#16d6c1", "step": 400, "type": "color" }, "selectionColor": { - "value": "#b4faf2", - "step": 100, + "value": "#0e4f48", + "step": 800, "type": "color" }, "borderColor": { - "value": "#16ddc7", + "value": "#16d6c1", "step": 400, "type": "color" } }, "7": { "baseColor": { - "value": "#f58ac0", + "value": "#ef59a3", "step": 400, "type": "color" }, "cursorColor": { - "value": "#f58ac0", + "value": "#ef59a3", "step": 400, "type": "color" }, "selectionColor": { - "value": "#fcd4e8", + "value": "#fbc6e1", "step": 100, "type": "color" }, "borderColor": { - "value": "#f58ac0", + "value": "#ef59a3", "step": 400, "type": "color" } }, "8": { "baseColor": { - "value": "#f6bc09", + "value": "#f7bf17", "step": 400, "type": "color" }, "cursorColor": { - "value": "#f6bc09", + "value": "#f7bf17", "step": 400, "type": "color" }, "selectionColor": { - "value": "#fceabc", + "value": "#fce9b7", "step": 100, "type": "color" }, "borderColor": { - "value": "#f6bc09", + "value": "#f7bf17", "step": 400, "type": "color" } @@ -1822,27 +1822,27 @@ "type": "color" }, "feature": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" }, "ok": { - "value": "#23d464", + "value": "#20b456", "step": 500, "type": "color" }, "error": { - "value": "#f47171", + "value": "#eb2d2d", "step": 500, "type": "color" }, "warning": { - "value": "#e5af09", + "value": "#d3a20b", "step": 500, "type": "color" }, "info": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" } @@ -1874,27 +1874,27 @@ "type": "color" }, "feature": { - "value": "#0ea5e8", + "value": "#1179a8", "step": 600, "type": "color" }, "ok": { - "value": "#22c55e", + "value": "#1b9447", "step": 600, "type": "color" }, "error": { - "value": "#f15252", + "value": "#c91818", "step": 600, "type": "color" }, "warning": { - "value": "#f6bc09", + "value": "#f7bf17", "step": 400, "type": "color" }, "info": { - "value": "#4287f6", + "value": "#135acd", "step": 600, "type": "color" } @@ -1951,105 +1951,105 @@ "type": "color" }, "hovered": { - "value": "#f1f1f1", - "step": 50, + "value": "#f8f8f8", + "step": 25, "type": "color" }, "active": { - "value": "#e3e3e3", - "step": 100, + "value": "#f1f1f1", + "step": 50, "type": "color" }, "focused": { - "value": "#f1f1f1", - "step": 50, + "value": "#eaeaea", + "step": 75, "type": "color" } }, "ok": { "base": { - "value": "#befad2", + "value": "#b7f9ce", "step": 100, "type": "color" }, "hovered": { - "value": "#befad2", + "value": "#b7f9ce", "step": 100, "type": "color" }, "active": { - "value": "#befad2", + "value": "#b7f9ce", "step": 100, "type": "color" }, "focused": { - "value": "#befad2", + "value": "#b7f9ce", "step": 100, "type": "color" } }, "error": { "base": { - "value": "#fdd4d4", + "value": "#fcc6c6", "step": 100, "type": "color" }, "hovered": { - "value": "#fdd4d4", + "value": "#fcc6c6", "step": 100, "type": "color" }, "active": { - "value": "#fdd4d4", + "value": "#fcc6c6", "step": 100, "type": "color" }, "focused": { - "value": "#fdd4d4", + "value": "#fcc6c6", "step": 100, "type": "color" } }, "warning": { "base": { - "value": "#fceabc", + "value": "#fce9b7", "step": 100, "type": "color" }, "hovered": { - "value": "#fceabc", + "value": "#fce9b7", "step": 100, "type": "color" }, "active": { - "value": "#fceabc", + "value": "#fce9b7", "step": 100, "type": "color" }, "focused": { - "value": "#fceabc", + "value": "#fce9b7", "step": 100, "type": "color" } }, "info": { "base": { - "value": "#d0e2fd", + "value": "#c5dafc", "step": 100, "type": "color" }, "hovered": { - "value": "#d0e2fd", + "value": "#c5dafc", "step": 100, "type": "color" }, "active": { - "value": "#d0e2fd", + "value": "#c5dafc", "step": 100, "type": "color" }, "focused": { - "value": "#d0e2fd", + "value": "#c5dafc", "step": 100, "type": "color" } @@ -2082,22 +2082,22 @@ "type": "color" }, "ok": { - "value": "#8ff4b2", + "value": "#84f2ab", "step": 200, "type": "color" }, "error": { - "value": "#fbbdbd", + "value": "#f9a0a0", "step": 200, "type": "color" }, "warning": { - "value": "#fadc89", + "value": "#f9da82", "step": 200, "type": "color" }, "info": { - "value": "#b4cffb", + "value": "#9ec1fa", "step": 200, "type": "color" } @@ -2120,40 +2120,40 @@ }, "line": { "active": { - "value": "#e3e3e3", - "step": 100, + "value": "#f1f1f1", + "step": 50, "type": "color" }, "highlighted": { - "value": "#e3e3e3", - "step": 100, + "value": "#f1f1f1", + "step": 50, "type": "color" }, "inserted": { - "value": "#befad2", + "value": "#b7f9ce", "step": 100, "type": "color" }, "deleted": { - "value": "#fdd4d4", + "value": "#fcc6c6", "step": 100, "type": "color" }, "modified": { - "value": "#d0e2fd", + "value": "#c5dafc", "step": 100, "type": "color" } }, "highlight": { "selection": { - "value": "#d0e2fd", + "value": "#c5dafc", "step": 100, "type": "color" }, "occurrence": { - "value": "#e3e3e3", - "step": 100, + "value": "#f1f1f1", + "step": 50, "type": "color" }, "activeOccurrence": { @@ -2184,8 +2184,8 @@ }, "gutter": { "primary": { - "value": "#808080", - "step": 450, + "value": "#aaaaaa", + "step": 300, "type": "color" }, "active": { @@ -2201,223 +2201,223 @@ "type": "color" }, "comment": { - "value": "#bdf36b", + "value": "#555555", "type": "color" }, "keyword": { - "value": "#59c3f5", + "value": "#103063", "type": "color" }, "function": { - "value": "#fadc89", + "value": "#1b9447", "type": "color" }, "type": { - "value": "#26ebd5", + "value": "#138a7d", "type": "color" }, "variant": { - "value": "#26ebd5", + "value": "#1179a8", "type": "color" }, "property": { - "value": "#81d2f8", + "value": "#134697", "type": "color" }, "enum": { - "value": "#59c3f5", + "value": "#bb550e", "type": "color" }, "operator": { - "value": "#59c3f5", + "value": "#bb550e", "type": "color" }, "string": { - "value": "#fab78b", + "value": "#bb550e", "type": "color" }, "number": { - "value": "#d5d5d5", + "value": "#14a898", "type": "color" }, "boolean": { - "value": "#d5d5d5", + "value": "#b0740f", "type": "color" } }, "player": { "1": { "baseColor": { - "value": "#4287f6", + "value": "#135acd", "step": 600, "type": "color" }, "cursorColor": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" }, "selectionColor": { - "value": "#d0e2fd", + "value": "#c5dafc", "step": 100, "type": "color" }, "borderColor": { - "value": "#6099f7", + "value": "#2472f2", "step": 500, "type": "color" } }, "2": { "baseColor": { - "value": "#87d116", + "value": "#79ba16", "step": 500, "type": "color" }, "cursorColor": { - "value": "#87d116", + "value": "#79ba16", "step": 500, "type": "color" }, "selectionColor": { - "value": "#dbf9ac", + "value": "#dffab5", "step": 100, "type": "color" }, "borderColor": { - "value": "#87d116", + "value": "#79ba16", "step": 500, "type": "color" } }, "3": { "baseColor": { - "value": "#777af4", + "value": "#484bed", "step": 500, "type": "color" }, "cursorColor": { - "value": "#777af4", + "value": "#484bed", "step": 500, "type": "color" }, "selectionColor": { - "value": "#d4d5fd", + "value": "#cdcdfc", "step": 100, "type": "color" }, "borderColor": { - "value": "#777af4", + "value": "#484bed", "step": 500, "type": "color" } }, "4": { "baseColor": { - "value": "#f98a3d", + "value": "#ee670a", "step": 500, "type": "color" }, "cursorColor": { - "value": "#f98a3d", + "value": "#ee670a", "step": 500, "type": "color" }, "selectionColor": { - "value": "#fde0cd", + "value": "#fcd6bd", "step": 100, "type": "color" }, "borderColor": { - "value": "#f98a3d", + "value": "#ee670a", "step": 500, "type": "color" } }, "5": { "baseColor": { - "value": "#b671f8", + "value": "#993bf3", "step": 500, "type": "color" }, "cursorColor": { - "value": "#b671f8", + "value": "#993bf3", "step": 500, "type": "color" }, "selectionColor": { - "value": "#e9d4fd", + "value": "#e4cbfc", "step": 100, "type": "color" }, "borderColor": { - "value": "#b671f8", + "value": "#993bf3", "step": 500, "type": "color" } }, "6": { "baseColor": { - "value": "#16ddc7", + "value": "#16d6c1", "step": 400, "type": "color" }, "cursorColor": { - "value": "#16ddc7", + "value": "#16d6c1", "step": 400, "type": "color" }, "selectionColor": { - "value": "#b4faf2", + "value": "#b1faf2", "step": 100, "type": "color" }, "borderColor": { - "value": "#16ddc7", + "value": "#16d6c1", "step": 400, "type": "color" } }, "7": { "baseColor": { - "value": "#f58ac0", + "value": "#ef59a3", "step": 400, "type": "color" }, "cursorColor": { - "value": "#f58ac0", + "value": "#ef59a3", "step": 400, "type": "color" }, "selectionColor": { - "value": "#fcd4e8", + "value": "#fbc6e1", "step": 100, "type": "color" }, "borderColor": { - "value": "#f58ac0", + "value": "#ef59a3", "step": 400, "type": "color" } }, "8": { "baseColor": { - "value": "#f6bc09", + "value": "#f7bf17", "step": 400, "type": "color" }, "cursorColor": { - "value": "#f6bc09", + "value": "#f7bf17", "step": 400, "type": "color" }, "selectionColor": { - "value": "#fceabc", + "value": "#fce9b7", "step": 100, "type": "color" }, "borderColor": { - "value": "#f6bc09", + "value": "#f7bf17", "step": 400, "type": "color" } diff --git a/styles/styleTree/app.ts b/styles/src/styleTree/app.ts similarity index 91% rename from styles/styleTree/app.ts rename to styles/src/styleTree/app.ts index 10439b5a0056e8f8ac6ec29e10b4094f1aae26a8..85bb8b09b83df5515862758e58dac66e524bffcc 100644 --- a/styles/styleTree/app.ts +++ b/styles/src/styleTree/app.ts @@ -21,9 +21,7 @@ export default function app(theme: Theme): Object { tabIconSpacing: 4, tabIconWidth: 13, tabSummarySpacing: 10, - emptyMessage: { - ...text(theme, "sans", "primary", { size: "lg" }), - }, + emptyMessage: text(theme, "sans", "primary", { size: "lg" }), statusBarItem: { ...text(theme, "sans", "muted"), margin: { diff --git a/styles/src/styleTree/chatPanel.ts b/styles/src/styleTree/chatPanel.ts new file mode 100644 index 0000000000000000000000000000000000000000..6bcf38ec06afabd72d7107266c10ef1704862bc7 --- /dev/null +++ b/styles/src/styleTree/chatPanel.ts @@ -0,0 +1,108 @@ +import Theme from "../themes/theme"; +import { panel } from "./app"; +import { + backgroundColor, + border, + player, + shadow, + text, + TextColor +} from "./components"; + +export default function chatPanel(theme: Theme) { + function channelSelectItem( + theme: Theme, + textColor: TextColor, + hovered: boolean + ) { + return { + name: text(theme, "sans", textColor), + padding: 4, + hash: { + ...text(theme, "sans", "muted"), + margin: { + right: 8, + }, + }, + background: hovered ? backgroundColor(theme, 300, "hovered") : undefined, + cornerRadius: hovered ? 6 : 0, + }; + } + + const message = { + body: text(theme, "sans", "secondary"), + timestamp: text(theme, "sans", "muted", { size: "sm" }), + padding: { + bottom: 6, + }, + sender: { + ...text(theme, "sans", "primary", { weight: "bold" }), + margin: { + right: 8, + }, + }, + }; + + return { + ...panel, + channelName: text(theme, "sans", "primary", { weight: "bold" }), + channelNameHash: { + ...text(theme, "sans", "muted"), + padding: { + right: 8, + }, + }, + channelSelect: { + header: { + ...channelSelectItem(theme, "primary", false), + padding: { + bottom: 4, + left: 0, + }, + }, + item: channelSelectItem(theme, "secondary", false), + hoveredItem: channelSelectItem(theme, "secondary", true), + activeItem: channelSelectItem(theme, "primary", false), + hoveredActiveItem: channelSelectItem(theme, "primary", true), + menu: { + background: backgroundColor(theme, 500), + cornerRadius: 6, + padding: 4, + border: border(theme, "primary"), + shadow: shadow(theme), + }, + }, + signInPrompt: text(theme, "sans", "secondary", { underline: true }), + hoveredSignInPrompt: text(theme, "sans", "primary", { underline: true }), + message, + pendingMessage: { + ...message, + body: { + ...message.body, + color: theme.textColor.muted.value, + }, + sender: { + ...message.sender, + color: theme.textColor.muted.value, + }, + timestamp: { + ...message.timestamp, + color: theme.textColor.muted.value, + }, + }, + inputEditor: { + background: backgroundColor(theme, 500), + cornerRadius: 6, + text: text(theme, "mono", "primary"), + placeholderText: text(theme, "mono", "placeholder", { size: "sm" }), + selection: player(theme, 1).selection, + border: border(theme, "secondary"), + padding: { + bottom: 7, + left: 8, + right: 8, + top: 7, + }, + }, + }; +} diff --git a/styles/src/styleTree/components.ts b/styles/src/styleTree/components.ts new file mode 100644 index 0000000000000000000000000000000000000000..155d36d312b753ac8ff8c95d04e90d1a603595fc --- /dev/null +++ b/styles/src/styleTree/components.ts @@ -0,0 +1,96 @@ +import chroma from "chroma-js"; +import Theme, { BackgroundColor } from "../themes/theme"; +import { fontFamilies, fontSizes, FontFamily, FontWeight, FontSize } from "../tokens"; +import { Color } from "../utils/color"; + +export type TextColor = keyof Theme["textColor"]; +export interface Text { + family: FontFamily, + color: Color, + size: FontSize, + weight?: FontWeight, + underline?: boolean, +} +export function text( + theme: Theme, + fontFamily: keyof typeof fontFamilies, + color: TextColor, + properties?: { + size?: keyof typeof fontSizes; + weight?: FontWeight; + underline?: boolean; + } +): Text { + let extraProperties = { + ...properties, + size: fontSizes[properties.size || "sm"].value, + }; + return { + family: fontFamilies[fontFamily].value, + color: theme.textColor[color].value, + ...extraProperties, + }; +} + +export interface BorderOptions { + width?: number; + top?: boolean; + bottom?: boolean; + left?: boolean; + right?: boolean; + overlay?: boolean; +} +export function border( + theme: Theme, + color: keyof Theme["borderColor"], + options?: BorderOptions +) { + return { + color: borderColor(theme, color), + width: 1, + ...options, + }; +} + +export function borderColor(theme: Theme, color: keyof Theme["borderColor"]) { + return theme.borderColor[color].value; +} + +export function iconColor(theme: Theme, color: keyof Theme["iconColor"]) { + return theme.iconColor[color].value; +} + +export interface Player { + selection: { + cursor: Color; + selection: Color; + }; +} + +export function player( + theme: Theme, + playerNumber: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 +): Player { + return { + selection: { + cursor: theme.player[playerNumber].cursorColor.value, + selection: theme.player[playerNumber].selectionColor.value, + }, + }; +} + +export function backgroundColor( + theme: Theme, + name: keyof Theme["backgroundColor"], + state?: keyof BackgroundColor +): Color { + return theme.backgroundColor[name][state || "base"].value; +} + +export function shadow(theme: Theme) { + return { + blur: 16, + color: chroma("black").alpha(theme.shadowAlpha.value).hex(), + offset: [0, 2], + }; +} diff --git a/styles/styleTree/contactsPanel.ts b/styles/src/styleTree/contactsPanel.ts similarity index 100% rename from styles/styleTree/contactsPanel.ts rename to styles/src/styleTree/contactsPanel.ts diff --git a/styles/styleTree/editor.ts b/styles/src/styleTree/editor.ts similarity index 97% rename from styles/styleTree/editor.ts rename to styles/src/styleTree/editor.ts index 23c1e67ac6e6c1dcc75e1d638e760184bfc66e0f..33bfbf0cc623ea0ae657efe83f04744d33c51308 100644 --- a/styles/styleTree/editor.ts +++ b/styles/src/styleTree/editor.ts @@ -46,7 +46,7 @@ export default function editor(theme: Theme) { diffBackgroundDeleted: backgroundColor(theme, "error"), diffBackgroundInserted: backgroundColor(theme, "ok"), documentHighlightReadBackground: theme.editor.highlight.occurrence.value, - documentHighlightWriteBackground: theme.editor.highlight.occurrence.value, + documentHighlightWriteBackground: theme.editor.highlight.activeOccurrence.value, errorColor: theme.textColor.error.value, gutterBackground: backgroundColor(theme, 500), gutterPaddingFactor: 3.5, @@ -129,7 +129,7 @@ export default function editor(theme: Theme) { invalidInformationDiagnostic: diagnostic(theme, "muted"), invalidWarningDiagnostic: diagnostic(theme, "muted"), syntax: { - keyword: theme.syntax.keyword.color.value, + keyword: theme.syntax.keyword.color.value, function: theme.syntax.function.color.value, string: theme.syntax.string.color.value, type: theme.syntax.type.color.value, @@ -143,7 +143,7 @@ export default function editor(theme: Theme) { "emphasis.strong": { color: theme.textColor.feature.value, weight: "bold" }, link_uri: { color: theme.syntax.linkUrl.color.value, underline: true }, link_text: { color: theme.syntax.linkText.color.value, italic: true }, - list_marker: theme.syntax.listMarker.color.value, + list_marker: theme.syntax.punctuation.color.value, }, }; } diff --git a/styles/src/styleTree/projectPanel.ts b/styles/src/styleTree/projectPanel.ts new file mode 100644 index 0000000000000000000000000000000000000000..c55417579ac489188d1501a22ced8fd707214b0b --- /dev/null +++ b/styles/src/styleTree/projectPanel.ts @@ -0,0 +1,37 @@ +import Theme from "../themes/theme"; +import { Color } from "../utils/color"; +import { panel } from "./app"; +import { backgroundColor, iconColor, text, TextColor } from "./components"; + +export default function projectPanel(theme: Theme) { + function entry(theme: Theme, textColor: TextColor, background?: Color) { + return { + height: 22, + background, + iconColor: iconColor(theme, "muted"), + iconSize: 8, + iconSpacing: 8, + text: text(theme, "mono", textColor, { size: "sm" }), + }; + } + + return { + ...panel, + entry: entry(theme, "secondary"), + hoveredEntry: entry( + theme, + "secondary", + backgroundColor(theme, 300, "hovered") + ), + selectedEntry: entry(theme, "primary"), + hoveredSelectedEntry: entry( + theme, + "primary", + backgroundColor(theme, 300, "hovered") + ), + padding: { + top: 6, + left: 12, + }, + }; +} diff --git a/styles/src/styleTree/search.ts b/styles/src/styleTree/search.ts new file mode 100644 index 0000000000000000000000000000000000000000..7a3d374e5a6c4dae21bb5963e91820a392a0643e --- /dev/null +++ b/styles/src/styleTree/search.ts @@ -0,0 +1,79 @@ +import Theme from "../themes/theme"; +import { backgroundColor, border, player, text } from "./components"; + +export default function search(theme: Theme) { + const optionButton = { + ...text(theme, "mono", "secondary"), + background: backgroundColor(theme, 300), + cornerRadius: 6, + border: border(theme, "primary"), + margin: { + left: 1, + right: 1, + }, + padding: { + bottom: 1, + left: 6, + right: 6, + top: 1, + }, + }; + + const editor = { + background: backgroundColor(theme, 500), + cornerRadius: 6, + minWidth: 200, + maxWidth: 500, + placeholderText: text(theme, "mono", "placeholder"), + selection: player(theme, 1).selection, + text: text(theme, "mono", "primary"), + border: border(theme, "primary"), + margin: { + right: 5, + }, + padding: { + top: 3, + bottom: 3, + left: 14, + right: 14, + }, + }; + + return { + matchBackground: theme.editor.highlight.match.value, + tabIconSpacing: 4, + tabIconWidth: 14, + activeHoveredOptionButton: { + ...optionButton, + background: backgroundColor(theme, 100), + }, + activeOptionButton: { + ...optionButton, + background: backgroundColor(theme, 100), + }, + editor, + hoveredOptionButton: { + ...optionButton, + background: backgroundColor(theme, 100), + }, + invalidEditor: { + ...editor, + border: border(theme, "error"), + }, + matchIndex: { + ...text(theme, "mono", "muted"), + padding: 6, + }, + optionButton, + optionButtonGroup: { + padding: { + left: 2, + right: 2, + }, + }, + resultsStatus: { + ...text(theme, "mono", "primary"), + size: 18, + }, + }; +} diff --git a/styles/src/styleTree/selectorModal.ts b/styles/src/styleTree/selectorModal.ts new file mode 100644 index 0000000000000000000000000000000000000000..fdccae77a1c9b528418bb133fd87a5d14a6930d0 --- /dev/null +++ b/styles/src/styleTree/selectorModal.ts @@ -0,0 +1,59 @@ +import Theme from "../themes/theme"; +import { backgroundColor, border, player, shadow, text } from "./components"; + +export default function selectorModal(theme: Theme): Object { + const item = { + padding: { + bottom: 4, + left: 16, + right: 16, + top: 4, + }, + cornerRadius: 6, + text: text(theme, "sans", "secondary"), + highlightText: text(theme, "sans", "feature", { weight: "bold" }), + }; + + const activeItem = { + ...item, + background: backgroundColor(theme, 300, "active"), + text: text(theme, "sans", "primary"), + }; + + return { + background: backgroundColor(theme, 300), + cornerRadius: 6, + padding: 8, + item, + activeItem, + border: border(theme, "primary"), + empty: { + text: text(theme, "sans", "muted"), + padding: { + bottom: 4, + left: 16, + right: 16, + top: 8, + }, + }, + inputEditor: { + background: backgroundColor(theme, 500), + corner_radius: 6, + placeholderText: text(theme, "sans", "placeholder"), + selection: player(theme, 1).selection, + text: text(theme, "mono", "primary"), + border: border(theme, "secondary"), + padding: { + bottom: 7, + left: 16, + right: 16, + top: 7, + }, + }, + margin: { + bottom: 52, + top: 52, + }, + shadow: shadow(theme), + }; +} diff --git a/styles/src/styleTree/workspace.ts b/styles/src/styleTree/workspace.ts new file mode 100644 index 0000000000000000000000000000000000000000..d21bed24aabe9fe841c1d4bba8b6ac21e08c052b --- /dev/null +++ b/styles/src/styleTree/workspace.ts @@ -0,0 +1,151 @@ +import Theme from "../themes/theme"; +import { backgroundColor, border, iconColor, text } from "./components"; + +export default function workspace(theme: Theme) { + const signInPrompt = { + ...text(theme, "sans", "secondary"), + size: 13, + underline: true, + padding: { + right: 8, + }, + }; + + const tab = { + height: 32, + background: backgroundColor(theme, 300), + iconClose: iconColor(theme, "muted"), + iconCloseActive: iconColor(theme, "active"), + iconConflict: iconColor(theme, "warning"), + iconDirty: iconColor(theme, "info"), + iconWidth: 8, + spacing: 10, + text: text(theme, "mono", "secondary", { size: "sm" }), + border: border(theme, "primary", { + left: true, + bottom: true, + overlay: true, + }), + padding: { + left: 12, + right: 12, + }, + }; + + const activeTab = { + ...tab, + background: backgroundColor(theme, 500), + text: text(theme, "mono", "active", { size: "sm" }), + border: { + ...tab.border, + bottom: false, + }, + }; + + const sidebarItem = { + height: 32, + iconColor: iconColor(theme, "secondary"), + iconSize: 18, + }; + const sidebar = { + width: 30, + background: backgroundColor(theme, 300), + border: border(theme, "primary", { right: true }), + item: sidebarItem, + activeItem: { + ...sidebarItem, + iconColor: iconColor(theme, "active"), + }, + resizeHandle: { + background: border(theme, "primary").color, + padding: { + left: 1, + }, + }, + }; + + return { + background: backgroundColor(theme, 300), + leaderBorderOpacity: 0.7, + leaderBorderWidth: 2.0, + tab, + activeTab, + leftSidebar: { + ...sidebar, + border: border(theme, "primary", { right: true }), + }, + rightSidebar: { + ...sidebar, + border: border(theme, "primary", { left: true }), + }, + paneDivider: { + color: border(theme, "primary").color, + width: 1, + }, + status_bar: { + height: 24, + itemSpacing: 8, + padding: { + left: 6, + right: 6, + }, + cursorPosition: text(theme, "sans", "muted"), + diagnosticMessage: text(theme, "sans", "muted"), + lspMessage: text(theme, "sans", "muted"), + }, + titlebar: { + avatarWidth: 18, + height: 32, + background: backgroundColor(theme, 100), + shareIconColor: iconColor(theme, "secondary"), + shareIconActiveColor: iconColor(theme, "active"), + title: text(theme, "sans", "primary"), + avatar: { + cornerRadius: 10, + border: { + color: "#00000088", + width: 1, + }, + }, + avatarRibbon: { + height: 3, + width: 12, + // TODO: The background for this ideally should be + // set with a token, not hardcoded in rust + }, + border: border(theme, "primary", { bottom: true }), + signInPrompt, + hoveredSignInPrompt: { + ...signInPrompt, + ...text(theme, "mono", "active"), + size: 13, + }, + offlineIcon: { + color: iconColor(theme, "secondary"), + width: 16, + padding: { + right: 4, + }, + }, + outdatedWarning: { + ...text(theme, "sans", "warning"), + size: 13, + }, + }, + toolbar: { + height: 34, + background: backgroundColor(theme, 500), + border: border(theme, "secondary", { bottom: true }), + itemSpacing: 8, + padding: { left: 16, right: 8, top: 4, bottom: 4 }, + }, + breadcrumbs: { + ...text(theme, "mono", "secondary"), + padding: { left: 6 }, + }, + disconnectedOverlay: { + ...text(theme, "sans", "active"), + background: "#000000aa", + }, + }; +} diff --git a/styles/themes/dark.ts b/styles/src/themes/dark.ts similarity index 74% rename from styles/themes/dark.ts rename to styles/src/themes/dark.ts index 3351d3d3fab34f33e033eb610f701555da34f4b2..c1d68232b14236eb8d17dfdf906d50b0410da25e 100644 --- a/styles/themes/dark.ts +++ b/styles/src/themes/dark.ts @@ -1,5 +1,6 @@ -import { colors, fontWeights, NumberToken } from "../tokens"; -import Theme, { Syntax } from "./theme"; +import { Color, colors, fontWeights, NumberToken } from "../tokens"; +import { withOpacity } from "../utils/color"; +import Theme, { buildPlayer, Syntax } from "./theme"; const backgroundColor = { 100: { @@ -87,57 +88,16 @@ const iconColor = { }; const player = { - 1: { - baseColor: colors.blue[500], - cursorColor: colors.blue[500], - selectionColor: colors.blue[800], - borderColor: colors.blue[800], - }, - 2: { - baseColor: colors.lime[500], - cursorColor: colors.lime[500], - selectionColor: colors.lime[800], - borderColor: colors.lime[500], - }, - 3: { - baseColor: colors.indigo[500], - cursorColor: colors.indigo[500], - selectionColor: colors.indigo[800], - borderColor: colors.indigo[500], - }, - 4: { - baseColor: colors.orange[500], - cursorColor: colors.orange[500], - selectionColor: colors.orange[800], - borderColor: colors.orange[500], - }, - 5: { - baseColor: colors.purple[500], - cursorColor: colors.purple[500], - selectionColor: colors.purple[800], - borderColor: colors.purple[500], - }, - 6: { - baseColor: colors.teal[400], - cursorColor: colors.teal[400], - selectionColor: colors.teal[800], - borderColor: colors.teal[400], - }, - 7: { - baseColor: colors.pink[400], - cursorColor: colors.pink[400], - selectionColor: colors.pink[100], - borderColor: colors.pink[400], - }, - 8: { - baseColor: colors.yellow[400], - cursorColor: colors.yellow[400], - selectionColor: colors.yellow[100], - borderColor: colors.yellow[400], - }, + 1: buildPlayer(colors.blue[500]), + 2: buildPlayer(colors.lime[500]), + 3: buildPlayer(colors.indigo[500]), + 4: buildPlayer(colors.orange[500]), + 5: buildPlayer(colors.purple[500]), + 6: buildPlayer(colors.teal[400]), + 7: buildPlayer(colors.pink[400]), + 8: buildPlayer(colors.yellow[400]), }; -// TODO: Fixup const editor = { background: backgroundColor[500].base, indent_guide: borderColor.muted, @@ -151,11 +111,11 @@ const editor = { }, highlight: { selection: player[1].selectionColor, - occurrence: colors.neutral[750], - activeOccurrence: colors.neutral[700], + occurrence: withOpacity(colors.teal[500], 0.16), + activeOccurrence: withOpacity(colors.teal[500], 0.32), matchingBracket: backgroundColor[500].active, - match: colors.sky[900], - activeMatch: colors.sky[800], + match: withOpacity(colors.sky[500], 0.16), + activeMatch: withOpacity(colors.sky[800], 0.32), related: backgroundColor[500].focused, }, gutter: { @@ -247,10 +207,6 @@ const syntax: Syntax = { weight: fontWeights.normal, // TODO: add italic }, - listMarker: { - color: colors.sky[400], - weight: fontWeights.normal, - } }; const shadowAlpha: NumberToken = { diff --git a/styles/src/themes/light.ts b/styles/src/themes/light.ts new file mode 100644 index 0000000000000000000000000000000000000000..3978f89dce28a160ce96eb6173d35a5f5632db1f --- /dev/null +++ b/styles/src/themes/light.ts @@ -0,0 +1,228 @@ +import { colors, fontWeights, NumberToken } from "../tokens"; +import { withOpacity } from "../utils/color"; +import Theme, { buildPlayer, Syntax } from "./theme"; + +const backgroundColor = { + 100: { + base: colors.neutral[100], + hovered: colors.neutral[150], + active: colors.neutral[200], + focused: colors.neutral[150], + }, + 300: { + base: colors.neutral[50], + hovered: colors.neutral[100], + active: colors.neutral[150], + focused: colors.neutral[100], + }, + 500: { + base: colors.neutral[0], + hovered: colors.neutral[25], + active: colors.neutral[50], + focused: colors.neutral[75], + }, + ok: { + base: colors.green[100], + hovered: colors.green[100], + active: colors.green[100], + focused: colors.green[100], + }, + error: { + base: colors.red[100], + hovered: colors.red[100], + active: colors.red[100], + focused: colors.red[100], + }, + warning: { + base: colors.yellow[100], + hovered: colors.yellow[100], + active: colors.yellow[100], + focused: colors.yellow[100], + }, + info: { + base: colors.blue[100], + hovered: colors.blue[100], + active: colors.blue[100], + focused: colors.blue[100], + }, +}; + +const borderColor = { + primary: colors.neutral[200], + secondary: colors.neutral[100], + muted: colors.neutral[50], + focused: colors.neutral[100], + active: colors.neutral[250], + ok: colors.green[200], + error: colors.red[200], + warning: colors.yellow[200], + info: colors.blue[200], +}; + +const textColor = { + primary: colors.neutral[750], + secondary: colors.neutral[600], + muted: colors.neutral[450], + placeholder: colors.neutral[300], + active: colors.neutral[900], + feature: colors.blue[500], + ok: colors.green[500], + error: colors.red[500], + warning: colors.yellow[500], + info: colors.blue[500], +}; + +const iconColor = { + primary: colors.neutral[300], + secondary: colors.neutral[500], + muted: colors.neutral[600], + placeholder: colors.neutral[700], + active: colors.neutral[900], + feature: colors.sky[600], + ok: colors.green[600], + error: colors.red[600], + warning: colors.yellow[400], + info: colors.blue[600], +}; + +const player = { + 1: buildPlayer(colors.blue[500]), + 2: buildPlayer(colors.lime[500]), + 3: buildPlayer(colors.indigo[500]), + 4: buildPlayer(colors.orange[500]), + 5: buildPlayer(colors.purple[500]), + 6: buildPlayer(colors.teal[400]), + 7: buildPlayer(colors.pink[400]), + 8: buildPlayer(colors.yellow[400]), +}; + +// TODO: Fixup +const editor = { + background: backgroundColor[500].base, + indent_guide: borderColor.muted, + indent_guide_active: borderColor.secondary, + line: { + active: backgroundColor[500].active, + highlighted: backgroundColor[500].active, + inserted: backgroundColor.ok.active, + deleted: backgroundColor.error.active, + modified: backgroundColor.info.active, + }, + highlight: { + selection: player[1].selectionColor, + occurrence: withOpacity(colors.teal[500], 0.16), + activeOccurrence: withOpacity(colors.teal[500], 0.32), + matchingBracket: colors.neutral[0], + match: withOpacity(colors.sky[500], 0.16), + activeMatch: withOpacity(colors.sky[800], 0.32), + related: colors.neutral[0], + }, + gutter: { + primary: colors.neutral[300], + active: textColor.active, + }, +}; + +const syntax: Syntax = { + primary: { + color: colors.neutral[750], + weight: fontWeights.normal, + }, + comment: { + color: colors.neutral[600], + weight: fontWeights.normal, + }, + punctuation: { + color: colors.neutral[700], + weight: fontWeights.normal, + }, + constant: { + color: colors.neutral[700], + weight: fontWeights.normal, + }, + keyword: { + color: colors.blue[800], + weight: fontWeights.normal, + }, + function: { + color: colors.green[600], + weight: fontWeights.normal, + }, + type: { + color: colors.teal[600], + weight: fontWeights.normal, + }, + variant: { + color: colors.sky[600], + weight: fontWeights.normal, + }, + property: { + color: colors.blue[700], + weight: fontWeights.normal, + }, + enum: { + color: colors.orange[600], + weight: fontWeights.normal, + }, + operator: { + color: colors.orange[600], + weight: fontWeights.normal, + }, + string: { + color: colors.orange[600], + weight: fontWeights.normal, + }, + number: { + color: colors.teal[500], + weight: fontWeights.normal, + }, + boolean: { + color: colors.amber[600], + weight: fontWeights.normal, + }, + predictive: { + color: textColor.muted, + weight: fontWeights.normal, + }, + title: { + color: colors.sky[500], + weight: fontWeights.bold, + }, + emphasis: { + color: textColor.active, + weight: fontWeights.normal, + }, + emphasisStrong: { + color: textColor.active, + weight: fontWeights.bold, + }, + linkUrl: { + color: colors.teal[500], + weight: fontWeights.normal, + // TODO: add underline + }, + linkText: { + color: colors.orange[500], + weight: fontWeights.normal, + // TODO: add italic + }, +}; + +const shadowAlpha: NumberToken = { + value: 0.12, + type: "number", +}; + +const theme: Theme = { + name: "light", + backgroundColor, + borderColor, + textColor, + iconColor, + editor, + syntax, + player, + shadowAlpha, +}; + +export default theme; diff --git a/styles/themes/theme.ts b/styles/src/themes/theme.ts similarity index 88% rename from styles/themes/theme.ts rename to styles/src/themes/theme.ts index 7f8305c1d539d24fe50f23d650844c0670506dc1..94a508529d5184c5a77c8c3ca1d9729e091d39c0 100644 --- a/styles/themes/theme.ts +++ b/styles/src/themes/theme.ts @@ -1,4 +1,5 @@ import { ColorToken, FontWeightToken, NumberToken } from "../tokens"; +import { Color, withOpacity } from "../utils/color"; export interface SyntaxHighlightStyle { color: ColorToken; @@ -11,6 +12,19 @@ export interface Player { selectionColor: ColorToken; borderColor: ColorToken; } +export function buildPlayer( + color: ColorToken, + cursorOpacity?: number, + selectionOpacity?: number, + borderOpacity?: number +) { + return { + baseColor: color, + cursorColor: withOpacity(color, cursorOpacity || 1.0), + selectionColor: withOpacity(color, selectionOpacity || 0.1), + borderColor: withOpacity(color, borderOpacity || 0.8), + } +} export interface BackgroundColor { base: ColorToken; diff --git a/styles/tokens.ts b/styles/src/tokens.ts similarity index 100% rename from styles/tokens.ts rename to styles/src/tokens.ts diff --git a/styles/src/utils/color.ts b/styles/src/utils/color.ts new file mode 100644 index 0000000000000000000000000000000000000000..9e1599acac234011ca5d5ee20c2f5dc6f3d97c3a --- /dev/null +++ b/styles/src/utils/color.ts @@ -0,0 +1,52 @@ +import chroma, { Scale } from "chroma-js"; +import { ColorToken } from "../tokens"; + +export type Color = string; +export type ColorRampStep = { value: Color; type: "color"; step: number }; +export type ColorRamp = { + [index: number]: ColorRampStep; +}; + +export function colorRamp( + color: Color | [Color, Color], + options?: { steps?: number; increment?: number; } +): ColorRamp { + let scale: Scale; + if (Array.isArray(color)) { + const [startColor, endColor] = color; + scale = chroma.scale([startColor, endColor]); + } else { + let hue = Math.round(chroma(color).hsl()[0]); + let startColor = chroma.hsl(hue, 0.88, 0.96); + let endColor = chroma.hsl(hue, 0.68, 0.12); + scale = chroma + .scale([startColor, color, endColor]) + .domain([0, 0.5, 1]) + .mode("hsl") + .gamma(1) + // .correctLightness(true) + .padding([0, 0]); + } + + const ramp: ColorRamp = {}; + const steps = options?.steps || 10; + const increment = options?.increment || 100; + + scale.colors(steps, "hex").forEach((color, ix) => { + const step = ix * increment; + ramp[step] = { + value: color, + step, + type: "color", + }; + }); + + return ramp; +} + +export function withOpacity(color: ColorToken, opacity: number): ColorToken { + return { + ...color, + value: chroma(color.value).alpha(opacity).hex() + }; +} diff --git a/styles/src/utils/snakeCase.ts b/styles/src/utils/snakeCase.ts new file mode 100644 index 0000000000000000000000000000000000000000..7d0e4470d8e6232dbac3ea4ab3190ba23da63de2 --- /dev/null +++ b/styles/src/utils/snakeCase.ts @@ -0,0 +1,35 @@ +import { snakeCase } from "case-anything"; + +// https://stackoverflow.com/questions/60269936/typescript-convert-generic-object-from-snake-to-camel-case + +// Typescript magic to convert any string from camelCase to snake_case at compile time +type SnakeCase = + S extends string ? + S extends `${infer T}${infer U}` ? + `${T extends Capitalize ? "_" : ""}${Lowercase}${SnakeCase}` : + S : + S; + +type SnakeCased = { + [Property in keyof Type as SnakeCase]: SnakeCased +} + +export default function snakeCaseTree(object: T): SnakeCased { + const snakeObject: any = {}; + for (const key in object) { + snakeObject[snakeCase(key)] = snakeCaseValue(object[key]); + } + return snakeObject; +} + +function snakeCaseValue(value: any): any { + if (typeof value === "object") { + if (Array.isArray(value)) { + return value.map(snakeCaseValue); + } else { + return snakeCaseTree(value); + } + } else { + return value; + } +} diff --git a/styles/styleTree/chatPanel.ts b/styles/styleTree/chatPanel.ts deleted file mode 100644 index 69b5f3baa0d74c03e4ff5e0a81ff4fc6616afdfc..0000000000000000000000000000000000000000 --- a/styles/styleTree/chatPanel.ts +++ /dev/null @@ -1,108 +0,0 @@ -import Theme from "../themes/theme"; -import { panel } from "./app"; -import { - backgroundColor, - border, - player, - shadow, - text, - TextColor -} from "./components"; - -export default function chatPanel(theme: Theme) { - function channelSelectItem( - theme: Theme, - textColor: TextColor, - hovered: boolean - ) { - return { - name: text(theme, "sans", textColor), - padding: 4, - hash: { - ...text(theme, "sans", "muted"), - margin: { - right: 8, - }, - }, - background: hovered ? backgroundColor(theme, 300, "hovered") : undefined, - cornerRadius: hovered ? 6 : 0, - }; - } - - const message = { - body: text(theme, "sans", "secondary"), - timestamp: text(theme, "sans", "muted", { size: "sm" }), - padding: { - bottom: 6, - }, - sender: { - ...text(theme, "sans", "primary", { weight: "bold" }), - margin: { - right: 8, - }, - }, - }; - - return { - ...panel, - channelName: text(theme, "sans", "primary", { weight: "bold" }), - channelNameHash: { - ...text(theme, "sans", "muted"), - padding: { - right: 8, - }, - }, - channelSelect: { - header: { - ...channelSelectItem(theme, "primary", false), - padding: { - bottom: 4, - left: 0, - }, - }, - item: channelSelectItem(theme, "secondary", false), - hoveredItem: channelSelectItem(theme, "secondary", true), - activeItem: channelSelectItem(theme, "primary", false), - hoveredActiveItem: channelSelectItem(theme, "primary", true), - menu: { - background: backgroundColor(theme, 500), - cornerRadius: 6, - padding: 4, - border: border(theme, "primary"), - shadow: shadow(theme), - }, - }, - signInPrompt: text(theme, "sans", "secondary", { underline: true }), - hoveredSignInPrompt: text(theme, "sans", "primary", { underline: true }), - message, - pendingMessage: { - ...message, - body: { - ...message.body, - color: theme.textColor.muted.value, - }, - sender: { - ...message.sender, - color: theme.textColor.muted.value, - }, - timestamp: { - ...message.timestamp, - color: theme.textColor.muted.value, - }, - }, - inputEditor: { - background: backgroundColor(theme, 500), - cornerRadius: 6, - text: text(theme, "mono", "primary"), - placeholderText: text(theme, "mono", "placeholder", { size: "sm" }), - selection: player(theme, 1).selection, - border: border(theme, "secondary"), - padding: { - bottom: 7, - left: 8, - right: 8, - top: 7, - }, - }, - }; -} diff --git a/styles/styleTree/components.ts b/styles/styleTree/components.ts deleted file mode 100644 index 205fd9b26200510d7adeb4f226ed893e8a17bbaa..0000000000000000000000000000000000000000 --- a/styles/styleTree/components.ts +++ /dev/null @@ -1,91 +0,0 @@ -import chroma from "chroma-js"; -import Theme, { BackgroundColor } from "../themes/theme"; -import { fontFamilies, fontSizes, FontWeight } from "../tokens"; -import { Color } from "../utils/color"; - -export type TextColor = keyof Theme["textColor"]; - -export function text( - theme: Theme, - fontFamily: keyof typeof fontFamilies, - color: TextColor, - properties?: { - size?: keyof typeof fontSizes; - weight?: FontWeight; - underline?: boolean; - } -) { - const sizeKey = properties?.size || fontFamily === "sans" ? "sm" : "md"; - const size = fontSizes[sizeKey].value; - - return { - family: fontFamilies[fontFamily].value, - color: theme.textColor[color].value, - ...properties, - size, - }; -} - -export interface BorderOptions { - width?: number; - top?: boolean; - bottom?: boolean; - left?: boolean; - right?: boolean; - overlay?: boolean; -} - -export function border( - theme: Theme, - color: keyof Theme["borderColor"], - options?: BorderOptions -) { - return { - color: borderColor(theme, color), - width: 1, - ...options, - }; -} - -export function borderColor(theme: Theme, color: keyof Theme["borderColor"]) { - return theme.borderColor[color].value; -} - -export function iconColor(theme: Theme, color: keyof Theme["iconColor"]) { - return theme.iconColor[color].value; -} - -export interface Player { - selection: { - cursor: Color; - selection: Color; - }; -} - -export function player( - theme: Theme, - playerNumber: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 -): Player { - return { - selection: { - cursor: theme.player[playerNumber].cursorColor.value, - selection: theme.player[playerNumber].selectionColor.value, - }, - }; -} - -export function backgroundColor( - theme: Theme, - name: keyof Theme["backgroundColor"], - state?: keyof BackgroundColor -): Color { - return theme.backgroundColor[name][state || "base"].value; -} - -export function shadow(theme: Theme) { - return { - blur: 16, - color: chroma("black").alpha(theme.shadowAlpha.value).hex(), - offset: [0, 2], - }; -} diff --git a/styles/styleTree/projectPanel.ts b/styles/styleTree/projectPanel.ts deleted file mode 100644 index e27cd94414a031f64dbc0ee5e232d2666944462a..0000000000000000000000000000000000000000 --- a/styles/styleTree/projectPanel.ts +++ /dev/null @@ -1,37 +0,0 @@ -import Theme from "../themes/theme"; -import { Color } from "../utils/color"; -import { panel } from "./app"; -import { backgroundColor, iconColor, text, TextColor } from "./components"; - -export default function projectPanel(theme: Theme) { - function entry(theme: Theme, textColor: TextColor, background?: Color) { - return { - height: 22, - background, - iconColor: iconColor(theme, "muted"), - iconSize: 8, - iconSpacing: 8, - text: text(theme, "mono", textColor, { size: "sm" }), - }; - } - - return { - ...panel, - entry: entry(theme, "secondary"), - hoveredEntry: entry( - theme, - "secondary", - backgroundColor(theme, 300, "hovered") - ), - selectedEntry: entry(theme, "primary"), - hoveredSelectedEntry: entry( - theme, - "primary", - backgroundColor(theme, 300, "hovered") - ), - padding: { - top: 6, - left: 12, - }, - }; -} diff --git a/styles/styleTree/search.ts b/styles/styleTree/search.ts deleted file mode 100644 index 42b639f57a39d355c8dbf461fb29e64ee71dec2f..0000000000000000000000000000000000000000 --- a/styles/styleTree/search.ts +++ /dev/null @@ -1,79 +0,0 @@ -import Theme from "../themes/theme"; -import { backgroundColor, border, player, text } from "./components"; - -export default function search(theme: Theme) { - const optionButton = { - ...text(theme, "mono", "secondary"), - background: backgroundColor(theme, 300), - cornerRadius: 6, - border: border(theme, "primary"), - margin: { - left: 1, - right: 1, - }, - padding: { - bottom: 1, - left: 6, - right: 6, - top: 1, - }, - }; - - const editor = { - background: backgroundColor(theme, 500), - cornerRadius: 6, - minWidth: 200, - maxWidth: 500, - placeholderText: text(theme, "mono", "placeholder"), - selection: player(theme, 1).selection, - text: text(theme, "mono", "primary"), - border: border(theme, "primary"), - margin: { - right: 5, - }, - padding: { - top: 3, - bottom: 3, - left: 14, - right: 14, - }, - }; - - return { - matchBackground: theme.editor.highlight.match.value, - tabIconSpacing: 4, - tabIconWidth: 14, - activeHoveredOptionButton: { - ...optionButton, - background: backgroundColor(theme, 100), - }, - activeOptionButton: { - ...optionButton, - background: backgroundColor(theme, 100), - }, - editor, - hoveredOptionButton: { - ...optionButton, - background: backgroundColor(theme, 100), - }, - invalidEditor: { - ...editor, - border: border(theme, "error"), - }, - matchIndex: { - ...text(theme, "mono", "muted"), - padding: 6, - }, - optionButton, - optionButtonGroup: { - padding: { - left: 2, - right: 2, - }, - }, - resultsStatus: { - ...text(theme, "mono", "primary"), - size: 18, - }, - }; -} diff --git a/styles/styleTree/selectorModal.ts b/styles/styleTree/selectorModal.ts deleted file mode 100644 index 47355cff116ff985ac62fd8d1665056422cfcd3c..0000000000000000000000000000000000000000 --- a/styles/styleTree/selectorModal.ts +++ /dev/null @@ -1,59 +0,0 @@ -import Theme from "../themes/theme"; -import { backgroundColor, border, player, shadow, text } from "./components"; - -export default function selectorModal(theme: Theme): Object { - const item = { - padding: { - bottom: 4, - left: 16, - right: 16, - top: 4, - }, - cornerRadius: 6, - text: text(theme, "sans", "secondary"), - highlightText: text(theme, "sans", "feature", { weight: "bold" }), - }; - - const activeItem = { - ...item, - background: backgroundColor(theme, 300, "active"), - text: text(theme, "sans", "primary"), - }; - - return { - background: backgroundColor(theme, 300), - cornerRadius: 6, - padding: 8, - item, - activeItem, - border: border(theme, "primary"), - empty: { - text: text(theme, "sans", "muted"), - padding: { - bottom: 4, - left: 16, - right: 16, - top: 8, - }, - }, - inputEditor: { - background: backgroundColor(theme, 500), - corner_radius: 6, - placeholderText: text(theme, "sans", "placeholder"), - selection: player(theme, 1).selection, - text: text(theme, "mono", "primary"), - border: border(theme, "secondary"), - padding: { - bottom: 7, - left: 16, - right: 16, - top: 7, - }, - }, - margin: { - bottom: 52, - top: 52, - }, - shadow: shadow(theme), - }; -} diff --git a/styles/styleTree/workspace.ts b/styles/styleTree/workspace.ts deleted file mode 100644 index 030f8edc95e758b574b2df7378acc1bbf498ad3f..0000000000000000000000000000000000000000 --- a/styles/styleTree/workspace.ts +++ /dev/null @@ -1,151 +0,0 @@ -import Theme from "../themes/theme"; -import { backgroundColor, border, iconColor, text } from "./components"; - -export default function workspace(theme: Theme) { - const signInPrompt = { - ...text(theme, "sans", "secondary"), - size: 13, - underline: true, - padding: { - right: 8, - }, - }; - - const tab = { - height: 32, - background: backgroundColor(theme, 300), - iconClose: iconColor(theme, "muted"), - iconCloseActive: iconColor(theme, "active"), - iconConflict: iconColor(theme, "warning"), - iconDirty: iconColor(theme, "info"), - iconWidth: 8, - spacing: 10, - text: text(theme, "mono", "secondary", { size: "sm" }), - border: border(theme, "primary", { - left: true, - bottom: true, - overlay: true, - }), - padding: { - left: 12, - right: 12, - }, - }; - - const activeTab = { - ...tab, - background: backgroundColor(theme, 500), - text: text(theme, "mono", "active", { size: "sm" }), - border: { - ...tab.border, - bottom: false, - }, - }; - - const sidebarItem = { - height: 32, - iconColor: iconColor(theme, "secondary"), - iconSize: 18, - }; - const sidebar = { - width: 30, - background: backgroundColor(theme, 300), - border: border(theme, "primary", { right: true }), - item: sidebarItem, - activeItem: { - ...sidebarItem, - iconColor: iconColor(theme, "active"), - }, - resizeHandle: { - background: border(theme, "primary").color, - padding: { - left: 1, - }, - }, - }; - - return { - background: backgroundColor(theme, 300), - leaderBorderOpacity: 0.7, - leaderBorderWidth: 2.0, - tab, - activeTab, - leftSidebar: { - ...sidebar, - border: border(theme, "primary", { right: true }), - }, - rightSidebar: { - ...sidebar, - border: border(theme, "primary", { left: true }), - }, - paneDivider: { - color: border(theme, "primary").color, - width: 1, - }, - status_bar: { - height: 24, - itemSpacing: 8, - padding: { - left: 6, - right: 6, - }, - cursorPosition: text(theme, "sans", "muted"), - diagnosticMessage: text(theme, "sans", "muted"), - lspMessage: text(theme, "sans", "muted"), - }, - titlebar: { - avatarWidth: 18, - height: 32, - background: backgroundColor(theme, 100), - shareIconColor: iconColor(theme, "secondary"), - shareIconActiveColor: iconColor(theme, "active"), - title: text(theme, "sans", "primary"), - avatar: { - cornerRadius: 10, - border: { - color: "#00000088", - width: 1, - }, - }, - avatarRibbon: { - height: 3, - width: 12, - // TODO: The background for this ideally should be - // set with a token, not hardcoded in rust - }, - border: border(theme, "primary", { bottom: true }), - signInPrompt, - hoveredSignInPrompt: { - ...signInPrompt, - ...text(theme, "mono", "active"), - size: 13, - }, - offlineIcon: { - color: iconColor(theme, "secondary"), - width: 16, - padding: { - right: 4, - }, - }, - outdatedWarning: { - ...text(theme, "sans", "warning"), - size: 13, - }, - }, - toolbar: { - height: 34, - background: backgroundColor(theme, 500), - border: border(theme, "secondary", { bottom: true }), - itemSpacing: 8, - padding: { left: 16, right: 8, top: 4, bottom: 4 }, - }, - breadcrumbs: { - ...text(theme, "mono", "secondary"), - padding: { left: 6 }, - }, - disconnectedOverlay: { - ...text(theme, "sans", "active"), - background: "#000000aa", - }, - }; -} diff --git a/styles/themes/light.ts b/styles/themes/light.ts deleted file mode 100644 index 649fd719a8f75bd47e4c07e8744a4863ae1f5d9f..0000000000000000000000000000000000000000 --- a/styles/themes/light.ts +++ /dev/null @@ -1,273 +0,0 @@ -import { colors, fontWeights, NumberToken } from "../tokens"; -import Theme, { Syntax } from "./theme"; - -// TODO: Replace with light values - -const backgroundColor = { - 100: { - base: colors.neutral[100], - hovered: colors.neutral[150], - active: colors.neutral[200], - focused: colors.neutral[150], - }, - 300: { - base: colors.neutral[50], - hovered: colors.neutral[100], - active: colors.neutral[150], - focused: colors.neutral[100], - }, - 500: { - base: colors.neutral[0], - hovered: colors.neutral[25], - active: colors.neutral[50], - focused: colors.neutral[75], - }, - ok: { - base: colors.green[100], - hovered: colors.green[100], - active: colors.green[100], - focused: colors.green[100], - }, - error: { - base: colors.red[100], - hovered: colors.red[100], - active: colors.red[100], - focused: colors.red[100], - }, - warning: { - base: colors.yellow[100], - hovered: colors.yellow[100], - active: colors.yellow[100], - focused: colors.yellow[100], - }, - info: { - base: colors.blue[100], - hovered: colors.blue[100], - active: colors.blue[100], - focused: colors.blue[100], - }, -}; - -const borderColor = { - primary: colors.neutral[200], - secondary: colors.neutral[100], - muted: colors.neutral[50], - focused: colors.neutral[100], - active: colors.neutral[250], - ok: colors.green[200], - error: colors.red[200], - warning: colors.yellow[200], - info: colors.blue[200], -}; - -const textColor = { - primary: colors.neutral[750], - secondary: colors.neutral[600], - muted: colors.neutral[450], - placeholder: colors.neutral[300], - active: colors.neutral[900], - feature: colors.blue[500], - ok: colors.green[500], - error: colors.red[500], - warning: colors.yellow[500], - info: colors.blue[500], -}; - -const iconColor = { - primary: colors.neutral[300], - secondary: colors.neutral[500], - muted: colors.neutral[600], - placeholder: colors.neutral[700], - active: colors.neutral[900], - feature: colors.sky[600], - ok: colors.green[600], - error: colors.red[600], - warning: colors.yellow[400], - info: colors.blue[600], -}; - -const player = { - 1: { - baseColor: colors.blue[600], - cursorColor: colors.blue[500], - selectionColor: colors.blue[100], - borderColor: colors.blue[500], - }, - 2: { - baseColor: colors.lime[500], - cursorColor: colors.lime[500], - selectionColor: colors.lime[100], - borderColor: colors.lime[500], - }, - 3: { - baseColor: colors.indigo[500], - cursorColor: colors.indigo[500], - selectionColor: colors.indigo[100], - borderColor: colors.indigo[500], - }, - 4: { - baseColor: colors.orange[500], - cursorColor: colors.orange[500], - selectionColor: colors.orange[100], - borderColor: colors.orange[500], - }, - 5: { - baseColor: colors.purple[500], - cursorColor: colors.purple[500], - selectionColor: colors.purple[100], - borderColor: colors.purple[500], - }, - 6: { - baseColor: colors.teal[400], - cursorColor: colors.teal[400], - selectionColor: colors.teal[100], - borderColor: colors.teal[400], - }, - 7: { - baseColor: colors.pink[400], - cursorColor: colors.pink[400], - selectionColor: colors.pink[100], - borderColor: colors.pink[400], - }, - 8: { - baseColor: colors.yellow[400], - cursorColor: colors.yellow[400], - selectionColor: colors.yellow[100], - borderColor: colors.yellow[400], - }, -}; - -// TODO: Fixup -const editor = { - background: backgroundColor[500].base, - indent_guide: borderColor.muted, - indent_guide_active: borderColor.secondary, - line: { - active: backgroundColor[500].active, - highlighted: backgroundColor[500].active, - inserted: backgroundColor.ok.active, - deleted: backgroundColor.error.active, - modified: backgroundColor.info.active, - }, - highlight: { - selection: player[1].selectionColor, - occurrence: backgroundColor[500].active, - activeOccurrence: colors.neutral[0], - matchingBracket: colors.neutral[0], - match: colors.neutral[0], - activeMatch: colors.neutral[0], - related: colors.neutral[0], - }, - gutter: { - primary: colors.neutral[300], - active: textColor.active, - }, -}; - -const syntax: Syntax = { - primary: { - color: colors.neutral[750], - weight: fontWeights.normal, - }, - comment: { - color: colors.neutral[600], - weight: fontWeights.normal, - }, - punctuation: { - color: colors.neutral[700], - weight: fontWeights.normal, - }, - constant: { - color: colors.neutral[700], - weight: fontWeights.normal, - }, - keyword: { - color: colors.blue[800], - weight: fontWeights.normal, - }, - function: { - color: colors.green[600], - weight: fontWeights.normal, - }, - type: { - color: colors.teal[600], - weight: fontWeights.normal, - }, - variant: { - color: colors.sky[600], - weight: fontWeights.normal, - }, - property: { - color: colors.blue[700], - weight: fontWeights.normal, - }, - enum: { - color: colors.orange[600], - weight: fontWeights.normal, - }, - operator: { - color: colors.orange[600], - weight: fontWeights.normal, - }, - string: { - color: colors.orange[600], - weight: fontWeights.normal, - }, - number: { - color: colors.teal[500], - weight: fontWeights.normal, - }, - boolean: { - color: colors.amber[600], - weight: fontWeights.normal, - }, - predictive: { - color: textColor.muted, - weight: fontWeights.normal, - }, - title: { - color: colors.sky[500], - weight: fontWeights.bold, - }, - emphasis: { - color: textColor.active, - weight: fontWeights.normal, - }, - emphasisStrong: { - color: textColor.active, - weight: fontWeights.bold, - }, - linkUrl: { - color: colors.teal[500], - weight: fontWeights.normal, - // TODO: add underline - }, - linkText: { - color: colors.orange[500], - weight: fontWeights.normal, - // TODO: add italic - }, - listMarker: { - color: colors.sky[400], - weight: fontWeights.normal, - }, -}; - -const shadowAlpha: NumberToken = { - value: 0.12, - type: "number", -}; - -const theme: Theme = { - name: "light", - backgroundColor, - borderColor, - textColor, - iconColor, - editor, - syntax, - player, - shadowAlpha, -}; - -export default theme; diff --git a/styles/utils/color.ts b/styles/utils/color.ts deleted file mode 100644 index e69d903a431cdef0dc9acdc3f76eb8b535d519f4..0000000000000000000000000000000000000000 --- a/styles/utils/color.ts +++ /dev/null @@ -1,44 +0,0 @@ -import chroma, { Scale } from "chroma-js"; - -export type Color = string; -export type ColorRampStep = { value: Color; type: "color"; step: number }; -export type ColorRamp = { - [index: number]: ColorRampStep; -}; - -export function colorRamp( - color: Color | [Color, Color], - options?: { steps?: number; increment?: number; } -): ColorRamp { - let scale: Scale; - if (Array.isArray(color)) { - const [startColor, endColor] = color; - scale = chroma.scale([startColor, endColor]); - } else { - let hue = Math.round(chroma(color).hsl()[0]); - let startColor = chroma.hsl(hue, 0.88, 0.96); - let endColor = chroma.hsl(hue, 0.68, 0.12); - scale = chroma - .scale([startColor, color, endColor]) - .domain([0, 0.5, 1]) - .mode("hsl") - .gamma(1) - // .correctLightness(true) - .padding([0, 0]); - } - - const ramp: ColorRamp = {}; - const steps = options?.steps || 10; - const increment = options?.increment || 100; - - scale.colors(steps, "hex").forEach((color, ix) => { - const step = ix * increment; - ramp[step] = { - value: color, - step, - type: "color", - }; - }); - - return ramp; -} diff --git a/styles/utils/decamelizeTree.ts b/styles/utils/decamelizeTree.ts deleted file mode 100644 index d606902082e974b6cb7b0602e06cc32b0a9e1b5f..0000000000000000000000000000000000000000 --- a/styles/utils/decamelizeTree.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { snakeCase } from "case-anything"; - -export default function decamelizeTree(object: { [key: string]: any }) { - const snakeObject: { [key: string]: any } = {}; - for (const key in object) { - snakeObject[snakeCase(key)] = decamelizeValue(object[key]); - } - return snakeObject; -} - -function decamelizeValue(value: any): any { - if (typeof value === "object") { - if (Array.isArray(value)) { - return value.map(decamelizeValue); - } else { - return decamelizeTree(value); - } - } else { - return value; - } -} From d21dea6112b956317352af8bf22168f7223de15f Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Tue, 5 Apr 2022 13:34:06 -0400 Subject: [PATCH 62/71] Squashed commit of the following: commit 66d4cbae2ca6d7dd660688d7eb702ae55bf3e0ca Author: Nate Butler Date: Tue Apr 5 13:33:33 2022 -0400 WIP: Improve legibility of contactsPanel and fix errors Co-Authored-By: Keith Simmons commit 000319c583801c5ba4ed7884bbf3da2a591e3f26 Author: Nate Butler Date: Tue Apr 5 13:13:32 2022 -0400 WIP --- crates/zed/assets/themes/dark.json | 169 +++++++++++++------------- crates/zed/assets/themes/light.json | 95 ++++++++------- styles/nodemon.json | 10 +- styles/src/styleTree/components.ts | 43 +++---- styles/src/styleTree/contactsPanel.ts | 13 +- styles/src/styleTree/search.ts | 2 +- styles/src/styleTree/workspace.ts | 4 +- styles/src/themes/dark.ts | 10 +- styles/src/themes/theme.ts | 21 ++-- 9 files changed, 184 insertions(+), 183 deletions(-) diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json index 1334a65727f8d099b5bc363fd0e432ef828808ba..1c277935cf21743d599feaaa7ed9e0b2709a5c5c 100644 --- a/crates/zed/assets/themes/dark.json +++ b/crates/zed/assets/themes/dark.json @@ -51,7 +51,7 @@ "empty": { "text": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14 }, "padding": { @@ -66,20 +66,20 @@ "corner_radius": 6, "placeholder_text": { "family": "Zed Sans", - "color": "#2b2b2b", + "color": "#474747", "size": 14 }, "selection": { "cursor": "#2472f2", - "selection": "#103063" + "selection": "#2472f24d" }, "text": { "family": "Zed Mono", "color": "#f1f1f1", - "size": 16 + "size": 14 }, "border": { - "color": "#151515", + "color": "#232323", "width": 1 }, "padding": { @@ -209,7 +209,7 @@ } }, "pane_divider": { - "color": "#070707", + "color": "#232323", "width": 1 }, "status_bar": { @@ -221,17 +221,17 @@ }, "cursor_position": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14 }, "diagnostic_message": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14 }, "lsp_message": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14 } }, @@ -240,7 +240,7 @@ "height": 32, "background": "#2b2b2b", "share_icon_color": "#9c9c9c", - "share_icon_active_color": "#ffffff", + "share_icon_active_color": "#1096d3", "title": { "family": "Zed Sans", "color": "#f1f1f1", @@ -297,7 +297,7 @@ "height": 34, "background": "#000000", "border": { - "color": "#151515", + "color": "#232323", "width": 1, "bottom": true }, @@ -312,7 +312,7 @@ "breadcrumbs": { "family": "Zed Mono", "color": "#9c9c9c", - "size": 16, + "size": 14, "padding": { "left": 6 } @@ -331,48 +331,48 @@ "code_actions_indicator": "#9c9c9c", "diff_background_deleted": "#f15656", "diff_background_inserted": "#1b9447", - "document_highlight_read_background": "#2b2b2b", - "document_highlight_write_background": "#2b2b2b", + "document_highlight_read_background": "#14a89829", + "document_highlight_write_background": "#14a89852", "error_color": "#f15656", "gutter_background": "#000000", "gutter_padding_factor": 3.5, "highlighted_line_background": "#070707", - "line_number": "#636363", + "line_number": "#808080", "line_number_active": "#ffffff", "rename_fade": 0.6, "unnecessary_code_fade": 0.5, "selection": { "cursor": "#2472f2", - "selection": "#103063" + "selection": "#2472f24d" }, "guest_selections": [ { "cursor": "#79ba16", - "selection": "#38530f" + "selection": "#79ba164d" }, { "cursor": "#484bed", - "selection": "#121269" + "selection": "#484bed4d" }, { "cursor": "#ee670a", - "selection": "#5d2f0e" + "selection": "#ee670a4d" }, { "cursor": "#993bf3", - "selection": "#3e1169" + "selection": "#993bf34d" }, { "cursor": "#16d6c1", - "selection": "#0e4f48" + "selection": "#16d6c14d" }, { "cursor": "#ef59a3", - "selection": "#fbc6e1" + "selection": "#ef59a34d" }, { "cursor": "#f7bf17", - "selection": "#fce9b7" + "selection": "#f7bf174d" } ], "autocomplete": { @@ -380,7 +380,7 @@ "corner_radius": 6, "padding": 6, "border": { - "color": "#151515", + "color": "#232323", "width": 1 }, "item": { @@ -425,14 +425,14 @@ "icon_width_factor": 1.5, "text_scale_factor": 0.857, "border": { - "color": "#151515", + "color": "#232323", "width": 1, "bottom": true, "top": true }, "code": { "family": "Zed Mono", - "color": "#636363", + "color": "#808080", "size": 14, "margin": { "left": 10 @@ -462,7 +462,7 @@ }, "path": { "family": "Zed Mono", - "color": "#636363", + "color": "#808080", "size": 14, "margin": { "left": 12 @@ -573,12 +573,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14, "weight": "bold" } @@ -596,12 +596,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14, "weight": "bold" } @@ -619,12 +619,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14, "weight": "bold" } @@ -642,12 +642,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14, "weight": "bold" } @@ -680,7 +680,7 @@ "color": "#ee670a", "italic": true }, - "list_marker": "#20b0f2" + "list_marker": "#c6c6c6" } }, "project_diagnostics": { @@ -690,11 +690,11 @@ "empty_message": { "family": "Zed Sans", "color": "#f1f1f1", - "size": 14 + "size": 18 }, "status_bar_item": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14, "margin": { "right": 10 @@ -768,7 +768,7 @@ }, "channel_name_hash": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14, "padding": { "right": 8 @@ -787,7 +787,7 @@ }, "hash": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14, "margin": { "right": 8 @@ -804,7 +804,7 @@ "padding": 4, "hash": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14, "margin": { "right": 8 @@ -821,7 +821,7 @@ "padding": 4, "hash": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14, "margin": { "right": 8 @@ -839,7 +839,7 @@ "padding": 4, "hash": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14, "margin": { "right": 8 @@ -856,7 +856,7 @@ "padding": 4, "hash": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14, "margin": { "right": 8 @@ -903,7 +903,7 @@ }, "timestamp": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14 }, "padding": { @@ -922,12 +922,12 @@ "pending_message": { "body": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14 }, "timestamp": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14 }, "padding": { @@ -935,7 +935,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "weight": "bold", "size": 14, "margin": { @@ -949,19 +949,19 @@ "text": { "family": "Zed Mono", "color": "#f1f1f1", - "size": 16 + "size": 14 }, "placeholder_text": { "family": "Zed Mono", - "color": "#2b2b2b", + "color": "#474747", "size": 14 }, "selection": { "cursor": "#2472f2", - "selection": "#103063" + "selection": "#2472f24d" }, "border": { - "color": "#151515", + "color": "#232323", "width": 1 }, "padding": { @@ -980,7 +980,7 @@ "right": 12 }, "host_row_height": 28, - "tree_branch_color": "#232323", + "tree_branch_color": "#404040", "tree_branch_width": 1, "host_avatar": { "corner_radius": 10, @@ -988,8 +988,8 @@ }, "host_username": { "family": "Zed Mono", - "color": "#636363", - "size": 16, + "color": "#f1f1f1", + "size": 14, "padding": { "left": 8 } @@ -1003,8 +1003,8 @@ }, "name": { "family": "Zed Mono", - "color": "#9c9c9c", - "size": 16, + "color": "#474747", + "size": 14, "margin": { "right": 6 } @@ -1022,15 +1022,17 @@ }, "name": { "family": "Zed Mono", - "color": "#f1f1f1", - "size": 16, + "color": "#9c9c9c", + "size": 14, "margin": { "right": 6 } }, "padding": { "left": 8 - } + }, + "background": "#1c1c1c", + "corner_radius": 6 }, "hovered_shared_project": { "guest_avatar_spacing": 4, @@ -1041,8 +1043,8 @@ }, "name": { "family": "Zed Mono", - "color": "#f1f1f1", - "size": 16, + "color": "#9c9c9c", + "size": 14, "margin": { "right": 6 } @@ -1050,7 +1052,7 @@ "padding": { "left": 8 }, - "background": "#0e0e0e", + "background": "#232323", "corner_radius": 6 }, "unshared_project": { @@ -1062,8 +1064,8 @@ }, "name": { "family": "Zed Mono", - "color": "#9c9c9c", - "size": 16, + "color": "#474747", + "size": 14, "margin": { "right": 6 } @@ -1081,8 +1083,8 @@ }, "name": { "family": "Zed Mono", - "color": "#9c9c9c", - "size": 16, + "color": "#474747", + "size": 14, "margin": { "right": 6 } @@ -1090,18 +1092,17 @@ "padding": { "left": 8 }, - "background": "#0e0e0e", "corner_radius": 6 } }, "search": { - "match_background": "#0a2633", + "match_background": "#1096d329", "tab_icon_spacing": 4, "tab_icon_width": 14, "active_hovered_option_button": { "family": "Zed Mono", "color": "#9c9c9c", - "size": 16, + "size": 14, "background": "#2b2b2b", "corner_radius": 6, "border": { @@ -1122,7 +1123,7 @@ "active_option_button": { "family": "Zed Mono", "color": "#9c9c9c", - "size": 16, + "size": 14, "background": "#2b2b2b", "corner_radius": 6, "border": { @@ -1147,20 +1148,20 @@ "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#2b2b2b", - "size": 16 + "color": "#474747", + "size": 14 }, "selection": { "cursor": "#2472f2", - "selection": "#103063" + "selection": "#2472f24d" }, "text": { "family": "Zed Mono", "color": "#f1f1f1", - "size": 16 + "size": 14 }, "border": { - "color": "#070707", + "color": "#232323", "width": 1 }, "margin": { @@ -1176,7 +1177,7 @@ "hovered_option_button": { "family": "Zed Mono", "color": "#9c9c9c", - "size": 16, + "size": 14, "background": "#2b2b2b", "corner_radius": 6, "border": { @@ -1201,17 +1202,17 @@ "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#2b2b2b", - "size": 16 + "color": "#474747", + "size": 14 }, "selection": { "cursor": "#2472f2", - "selection": "#103063" + "selection": "#2472f24d" }, "text": { "family": "Zed Mono", "color": "#f1f1f1", - "size": 16 + "size": 14 }, "border": { "color": "#eb2d2d", @@ -1229,14 +1230,14 @@ }, "match_index": { "family": "Zed Mono", - "color": "#636363", - "size": 16, + "color": "#808080", + "size": 14, "padding": 6 }, "option_button": { "family": "Zed Mono", "color": "#9c9c9c", - "size": 16, + "size": 14, "background": "#1c1c1c", "corner_radius": 6, "border": { diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json index 283b3b10b32e3886fe15736e8e6d9cbb7091e3a5..7871e348530e53ea7a025ef4b0ca3e31e8ff32a9 100644 --- a/crates/zed/assets/themes/light.json +++ b/crates/zed/assets/themes/light.json @@ -71,12 +71,12 @@ }, "selection": { "cursor": "#2472f2", - "selection": "#c5dafc" + "selection": "#2472f24d" }, "text": { "family": "Zed Mono", "color": "#2b2b2b", - "size": 16 + "size": 14 }, "border": { "color": "#e3e3e3", @@ -209,7 +209,7 @@ } }, "pane_divider": { - "color": "#c6c6c6", + "color": "#e3e3e3", "width": 1 }, "status_bar": { @@ -240,7 +240,7 @@ "height": 32, "background": "#e3e3e3", "share_icon_color": "#717171", - "share_icon_active_color": "#000000", + "share_icon_active_color": "#1179a8", "title": { "family": "Zed Sans", "color": "#2b2b2b", @@ -312,7 +312,7 @@ "breadcrumbs": { "family": "Zed Mono", "color": "#555555", - "size": 16, + "size": 14, "padding": { "left": 6 } @@ -331,8 +331,8 @@ "code_actions_indicator": "#717171", "diff_background_deleted": "#fcc6c6", "diff_background_inserted": "#b7f9ce", - "document_highlight_read_background": "#f1f1f1", - "document_highlight_write_background": "#f1f1f1", + "document_highlight_read_background": "#14a89829", + "document_highlight_write_background": "#14a89852", "error_color": "#eb2d2d", "gutter_background": "#ffffff", "gutter_padding_factor": 3.5, @@ -343,36 +343,36 @@ "unnecessary_code_fade": 0.5, "selection": { "cursor": "#2472f2", - "selection": "#c5dafc" + "selection": "#2472f24d" }, "guest_selections": [ { "cursor": "#79ba16", - "selection": "#dffab5" + "selection": "#79ba164d" }, { "cursor": "#484bed", - "selection": "#cdcdfc" + "selection": "#484bed4d" }, { "cursor": "#ee670a", - "selection": "#fcd6bd" + "selection": "#ee670a4d" }, { "cursor": "#993bf3", - "selection": "#e4cbfc" + "selection": "#993bf34d" }, { "cursor": "#16d6c1", - "selection": "#b1faf2" + "selection": "#16d6c14d" }, { "cursor": "#ef59a3", - "selection": "#fbc6e1" + "selection": "#ef59a34d" }, { "cursor": "#f7bf17", - "selection": "#fce9b7" + "selection": "#f7bf174d" } ], "autocomplete": { @@ -680,7 +680,7 @@ "color": "#ee670a", "italic": true }, - "list_marker": "#20b0f2" + "list_marker": "#393939" } }, "project_diagnostics": { @@ -690,7 +690,7 @@ "empty_message": { "family": "Zed Sans", "color": "#2b2b2b", - "size": 14 + "size": 18 }, "status_bar_item": { "family": "Zed Sans", @@ -949,7 +949,7 @@ "text": { "family": "Zed Mono", "color": "#2b2b2b", - "size": 16 + "size": 14 }, "placeholder_text": { "family": "Zed Mono", @@ -958,7 +958,7 @@ }, "selection": { "cursor": "#2472f2", - "selection": "#c5dafc" + "selection": "#2472f24d" }, "border": { "color": "#e3e3e3", @@ -988,8 +988,8 @@ }, "host_username": { "family": "Zed Mono", - "color": "#808080", - "size": 16, + "color": "#2b2b2b", + "size": 14, "padding": { "left": 8 } @@ -1003,8 +1003,8 @@ }, "name": { "family": "Zed Mono", - "color": "#555555", - "size": 16, + "color": "#aaaaaa", + "size": 14, "margin": { "right": 6 } @@ -1022,15 +1022,17 @@ }, "name": { "family": "Zed Mono", - "color": "#2b2b2b", - "size": 16, + "color": "#555555", + "size": 14, "margin": { "right": 6 } }, "padding": { "left": 8 - } + }, + "background": "#f1f1f1", + "corner_radius": 6 }, "hovered_shared_project": { "guest_avatar_spacing": 4, @@ -1041,8 +1043,8 @@ }, "name": { "family": "Zed Mono", - "color": "#2b2b2b", - "size": 16, + "color": "#555555", + "size": 14, "margin": { "right": 6 } @@ -1050,7 +1052,7 @@ "padding": { "left": 8 }, - "background": "#f1f1f1", + "background": "#e3e3e3", "corner_radius": 6 }, "unshared_project": { @@ -1062,8 +1064,8 @@ }, "name": { "family": "Zed Mono", - "color": "#555555", - "size": 16, + "color": "#aaaaaa", + "size": 14, "margin": { "right": 6 } @@ -1081,8 +1083,8 @@ }, "name": { "family": "Zed Mono", - "color": "#555555", - "size": 16, + "color": "#aaaaaa", + "size": 14, "margin": { "right": 6 } @@ -1090,18 +1092,17 @@ "padding": { "left": 8 }, - "background": "#f1f1f1", "corner_radius": 6 } }, "search": { - "match_background": "#ffffff", + "match_background": "#1096d329", "tab_icon_spacing": 4, "tab_icon_width": 14, "active_hovered_option_button": { "family": "Zed Mono", "color": "#555555", - "size": 16, + "size": 14, "background": "#e3e3e3", "corner_radius": 6, "border": { @@ -1122,7 +1123,7 @@ "active_option_button": { "family": "Zed Mono", "color": "#555555", - "size": 16, + "size": 14, "background": "#e3e3e3", "corner_radius": 6, "border": { @@ -1148,19 +1149,19 @@ "placeholder_text": { "family": "Zed Mono", "color": "#aaaaaa", - "size": 16 + "size": 14 }, "selection": { "cursor": "#2472f2", - "selection": "#c5dafc" + "selection": "#2472f24d" }, "text": { "family": "Zed Mono", "color": "#2b2b2b", - "size": 16 + "size": 14 }, "border": { - "color": "#c6c6c6", + "color": "#e3e3e3", "width": 1 }, "margin": { @@ -1176,7 +1177,7 @@ "hovered_option_button": { "family": "Zed Mono", "color": "#555555", - "size": 16, + "size": 14, "background": "#e3e3e3", "corner_radius": 6, "border": { @@ -1202,16 +1203,16 @@ "placeholder_text": { "family": "Zed Mono", "color": "#aaaaaa", - "size": 16 + "size": 14 }, "selection": { "cursor": "#2472f2", - "selection": "#c5dafc" + "selection": "#2472f24d" }, "text": { "family": "Zed Mono", "color": "#2b2b2b", - "size": 16 + "size": 14 }, "border": { "color": "#f9a0a0", @@ -1230,13 +1231,13 @@ "match_index": { "family": "Zed Mono", "color": "#808080", - "size": 16, + "size": 14, "padding": 6 }, "option_button": { "family": "Zed Mono", "color": "#555555", - "size": 16, + "size": 14, "background": "#f1f1f1", "corner_radius": 6, "border": { diff --git a/styles/nodemon.json b/styles/nodemon.json index 24022a55ad3aa2137a6fec03cdc1c97fa4e59e76..ae631a5ec4931af8173529733ab1fb6973651aad 100644 --- a/styles/nodemon.json +++ b/styles/nodemon.json @@ -1,6 +1,8 @@ { - "watch": ["./**/*"], - "ext": "ts", - "ignore": [], - "exec": "ts-node buildThemes.ts" + "watch": [ + "./**/*" + ], + "ext": "ts", + "ignore": [], + "exec": "ts-node src/buildThemes.ts" } \ No newline at end of file diff --git a/styles/src/styleTree/components.ts b/styles/src/styleTree/components.ts index 155d36d312b753ac8ff8c95d04e90d1a603595fc..08a8aa08545406c35723479ba99bc983f5199b6f 100644 --- a/styles/src/styleTree/components.ts +++ b/styles/src/styleTree/components.ts @@ -1,16 +1,9 @@ import chroma from "chroma-js"; -import Theme, { BackgroundColor } from "../themes/theme"; -import { fontFamilies, fontSizes, FontFamily, FontWeight, FontSize } from "../tokens"; +import Theme, { BackgroundColorSet } from "../themes/theme"; +import { fontFamilies, fontSizes, FontWeight } from "../tokens"; import { Color } from "../utils/color"; export type TextColor = keyof Theme["textColor"]; -export interface Text { - family: FontFamily, - color: Color, - size: FontSize, - weight?: FontWeight, - underline?: boolean, -} export function text( theme: Theme, fontFamily: keyof typeof fontFamilies, @@ -20,18 +13,20 @@ export function text( weight?: FontWeight; underline?: boolean; } -): Text { - let extraProperties = { - ...properties, - size: fontSizes[properties.size || "sm"].value, - }; +) { + let size = fontSizes[properties?.size || "sm"].value; return { family: fontFamilies[fontFamily].value, color: theme.textColor[color].value, - ...extraProperties, + ...properties, + size, }; } +export function textColor(theme: Theme, color: TextColor) { + return theme.textColor[color].value; +} +export type BorderColor = keyof Theme["borderColor"]; export interface BorderOptions { width?: number; top?: boolean; @@ -42,7 +37,7 @@ export interface BorderOptions { } export function border( theme: Theme, - color: keyof Theme["borderColor"], + color: BorderColor, options?: BorderOptions ) { return { @@ -51,25 +46,25 @@ export function border( ...options, }; } - -export function borderColor(theme: Theme, color: keyof Theme["borderColor"]) { +export function borderColor(theme: Theme, color: BorderColor) { return theme.borderColor[color].value; } -export function iconColor(theme: Theme, color: keyof Theme["iconColor"]) { +export type IconColor = keyof Theme["iconColor"]; +export function iconColor(theme: Theme, color: IconColor) { return theme.iconColor[color].value; } +export type PlayerIndex = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; export interface Player { selection: { cursor: Color; selection: Color; }; } - export function player( theme: Theme, - playerNumber: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 + playerNumber: PlayerIndex, ): Player { return { selection: { @@ -79,10 +74,12 @@ export function player( }; } +export type BackgroundColor = keyof Theme["backgroundColor"]; +export type BackgroundState = keyof BackgroundColorSet; export function backgroundColor( theme: Theme, - name: keyof Theme["backgroundColor"], - state?: keyof BackgroundColor + name: BackgroundColor, + state?: BackgroundState, ): Color { return theme.backgroundColor[name][state || "base"].value; } diff --git a/styles/src/styleTree/contactsPanel.ts b/styles/src/styleTree/contactsPanel.ts index 9b88a35f13692712cd61c89d4af75476d7bb49c6..6d432756472251de0cfa52a1e4176bea22af88aa 100644 --- a/styles/src/styleTree/contactsPanel.ts +++ b/styles/src/styleTree/contactsPanel.ts @@ -1,6 +1,6 @@ import Theme from "../themes/theme"; import { panel } from "./app"; -import { borderColor, text } from "./components"; +import { backgroundColor, borderColor, text } from "./components"; export default function(theme: Theme) { const project = { @@ -11,7 +11,7 @@ export default function(theme: Theme) { width: 14, }, name: { - ...text(theme, "mono", "secondary"), + ...text(theme, "mono", "placeholder", { size: "sm" }), margin: { right: 6, }, @@ -23,9 +23,11 @@ export default function(theme: Theme) { const sharedProject = { ...project, + background: backgroundColor(theme, 300), + cornerRadius: 6, name: { ...project.name, - ...text(theme, "mono", "primary"), + ...text(theme, "mono", "secondary", { size: "sm" }), }, }; @@ -39,7 +41,7 @@ export default function(theme: Theme) { width: 18, }, hostUsername: { - ...text(theme, "mono", "muted"), + ...text(theme, "mono", "primary", { size: "sm" }), padding: { left: 8, }, @@ -48,13 +50,12 @@ export default function(theme: Theme) { sharedProject, hoveredSharedProject: { ...sharedProject, - background: theme.editor.line.active.value, + background: backgroundColor(theme, 300, "hovered"), cornerRadius: 6, }, unsharedProject: project, hoveredUnsharedProject: { ...project, - background: theme.editor.line.active.value, cornerRadius: 6, }, } diff --git a/styles/src/styleTree/search.ts b/styles/src/styleTree/search.ts index 7a3d374e5a6c4dae21bb5963e91820a392a0643e..7e08569acd0f9cbd80861db0be26b0ebfe961bc9 100644 --- a/styles/src/styleTree/search.ts +++ b/styles/src/styleTree/search.ts @@ -27,7 +27,7 @@ export default function search(theme: Theme) { placeholderText: text(theme, "mono", "placeholder"), selection: player(theme, 1).selection, text: text(theme, "mono", "primary"), - border: border(theme, "primary"), + border: border(theme, "secondary"), margin: { right: 5, }, diff --git a/styles/src/styleTree/workspace.ts b/styles/src/styleTree/workspace.ts index d21bed24aabe9fe841c1d4bba8b6ac21e08c052b..a65356c636830fdf8283bfdbf23cd0c1eb5a636d 100644 --- a/styles/src/styleTree/workspace.ts +++ b/styles/src/styleTree/workspace.ts @@ -79,7 +79,7 @@ export default function workspace(theme: Theme) { border: border(theme, "primary", { left: true }), }, paneDivider: { - color: border(theme, "primary").color, + color: border(theme, "secondary").color, width: 1, }, status_bar: { @@ -98,7 +98,7 @@ export default function workspace(theme: Theme) { height: 32, background: backgroundColor(theme, 100), shareIconColor: iconColor(theme, "secondary"), - shareIconActiveColor: iconColor(theme, "active"), + shareIconActiveColor: iconColor(theme, "feature"), title: text(theme, "sans", "primary"), avatar: { cornerRadius: 10, diff --git a/styles/src/themes/dark.ts b/styles/src/themes/dark.ts index c1d68232b14236eb8d17dfdf906d50b0410da25e..b9893430d334ab904ac4619bb4582eda5892501a 100644 --- a/styles/src/themes/dark.ts +++ b/styles/src/themes/dark.ts @@ -1,4 +1,4 @@ -import { Color, colors, fontWeights, NumberToken } from "../tokens"; +import { colors, fontWeights, NumberToken } from "../tokens"; import { withOpacity } from "../utils/color"; import Theme, { buildPlayer, Syntax } from "./theme"; @@ -49,8 +49,8 @@ const backgroundColor = { const borderColor = { primary: colors.neutral[875], - secondary: colors.neutral[825], - muted: colors.neutral[775], + secondary: colors.neutral[775], + muted: colors.neutral[675], focused: colors.neutral[500], active: colors.neutral[900], ok: colors.green[500], @@ -62,8 +62,8 @@ const borderColor = { const textColor = { primary: colors.neutral[50], secondary: colors.neutral[350], - muted: colors.neutral[550], - placeholder: colors.neutral[750], + muted: colors.neutral[450], + placeholder: colors.neutral[650], active: colors.neutral[0], //TODO: (design) define feature and it's correct value feature: colors.sky[500], diff --git a/styles/src/themes/theme.ts b/styles/src/themes/theme.ts index 94a508529d5184c5a77c8c3ca1d9729e091d39c0..d7ba990e73ea3ec0fd94198fee0b902ecd3fd9ec 100644 --- a/styles/src/themes/theme.ts +++ b/styles/src/themes/theme.ts @@ -1,5 +1,5 @@ import { ColorToken, FontWeightToken, NumberToken } from "../tokens"; -import { Color, withOpacity } from "../utils/color"; +import { withOpacity } from "../utils/color"; export interface SyntaxHighlightStyle { color: ColorToken; @@ -21,12 +21,12 @@ export function buildPlayer( return { baseColor: color, cursorColor: withOpacity(color, cursorOpacity || 1.0), - selectionColor: withOpacity(color, selectionOpacity || 0.1), + selectionColor: withOpacity(color, selectionOpacity || 0.3), borderColor: withOpacity(color, borderOpacity || 0.8), } } -export interface BackgroundColor { +export interface BackgroundColorSet { base: ColorToken; hovered: ColorToken; active: ColorToken; @@ -55,19 +55,18 @@ export interface Syntax { emphasisStrong: SyntaxHighlightStyle; linkUrl: SyntaxHighlightStyle; linkText: SyntaxHighlightStyle; - listMarker: SyntaxHighlightStyle; }; export default interface Theme { name: string; backgroundColor: { - 100: BackgroundColor; - 300: BackgroundColor; - 500: BackgroundColor; - ok: BackgroundColor; - error: BackgroundColor; - warning: BackgroundColor; - info: BackgroundColor; + 100: BackgroundColorSet; + 300: BackgroundColorSet; + 500: BackgroundColorSet; + ok: BackgroundColorSet; + error: BackgroundColorSet; + warning: BackgroundColorSet; + info: BackgroundColorSet; }; borderColor: { primary: ColorToken; From 35f56708f58739333a5cab0bfa45cacef6229a0e Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Tue, 5 Apr 2022 18:23:01 -0400 Subject: [PATCH 63/71] Update light theme, change player 3 color - Changed player 3 color to be less similar to player 1 --- crates/zed/assets/themes/dark.json | 6 +++--- crates/zed/assets/themes/light.json | 26 +++++++++++++------------- styles/src/themes/dark.ts | 4 ++-- styles/src/themes/light.ts | 10 +++++----- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json index 1c277935cf21743d599feaaa7ed9e0b2709a5c5c..92351e53edf36e813da92f8cec40f7bdfd12bcc9 100644 --- a/crates/zed/assets/themes/dark.json +++ b/crates/zed/assets/themes/dark.json @@ -240,7 +240,7 @@ "height": 32, "background": "#2b2b2b", "share_icon_color": "#9c9c9c", - "share_icon_active_color": "#1096d3", + "share_icon_active_color": "#2472f2", "title": { "family": "Zed Sans", "color": "#f1f1f1", @@ -351,8 +351,8 @@ "selection": "#79ba164d" }, { - "cursor": "#484bed", - "selection": "#484bed4d" + "cursor": "#d430e0", + "selection": "#d430e04d" }, { "cursor": "#ee670a", diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json index 7871e348530e53ea7a025ef4b0ca3e31e8ff32a9..3a527fc7cd93a31a69a610693c021557a2bb5d48 100644 --- a/crates/zed/assets/themes/light.json +++ b/crates/zed/assets/themes/light.json @@ -109,7 +109,7 @@ "tab": { "height": 32, "background": "#f1f1f1", - "icon_close": "#555555", + "icon_close": "#717171", "icon_close_active": "#000000", "icon_conflict": "#f7bf17", "icon_dirty": "#135acd", @@ -135,7 +135,7 @@ "active_tab": { "height": 32, "background": "#ffffff", - "icon_close": "#555555", + "icon_close": "#717171", "icon_close_active": "#000000", "icon_conflict": "#f7bf17", "icon_dirty": "#135acd", @@ -168,7 +168,7 @@ }, "item": { "height": 32, - "icon_color": "#717171", + "icon_color": "#555555", "icon_size": 18 }, "active_item": { @@ -193,7 +193,7 @@ }, "item": { "height": 32, - "icon_color": "#717171", + "icon_color": "#555555", "icon_size": 18 }, "active_item": { @@ -239,7 +239,7 @@ "avatar_width": 18, "height": 32, "background": "#e3e3e3", - "share_icon_color": "#717171", + "share_icon_color": "#555555", "share_icon_active_color": "#1179a8", "title": { "family": "Zed Sans", @@ -281,7 +281,7 @@ } }, "offline_icon": { - "color": "#717171", + "color": "#555555", "width": 16, "padding": { "right": 4 @@ -328,7 +328,7 @@ "text_color": "#2b2b2b", "background": "#ffffff", "active_line_background": "#f1f1f1", - "code_actions_indicator": "#717171", + "code_actions_indicator": "#555555", "diff_background_deleted": "#fcc6c6", "diff_background_inserted": "#b7f9ce", "document_highlight_read_background": "#14a89829", @@ -351,8 +351,8 @@ "selection": "#79ba164d" }, { - "cursor": "#484bed", - "selection": "#484bed4d" + "cursor": "#d430e0", + "selection": "#d430e04d" }, { "cursor": "#ee670a", @@ -708,7 +708,7 @@ }, "entry": { "height": 22, - "icon_color": "#555555", + "icon_color": "#717171", "icon_size": 8, "icon_spacing": 8, "text": { @@ -720,7 +720,7 @@ "hovered_entry": { "height": 22, "background": "#e3e3e3", - "icon_color": "#555555", + "icon_color": "#717171", "icon_size": 8, "icon_spacing": 8, "text": { @@ -731,7 +731,7 @@ }, "selected_entry": { "height": 22, - "icon_color": "#555555", + "icon_color": "#717171", "icon_size": 8, "icon_spacing": 8, "text": { @@ -743,7 +743,7 @@ "hovered_selected_entry": { "height": 22, "background": "#e3e3e3", - "icon_color": "#555555", + "icon_color": "#717171", "icon_size": 8, "icon_spacing": 8, "text": { diff --git a/styles/src/themes/dark.ts b/styles/src/themes/dark.ts index b9893430d334ab904ac4619bb4582eda5892501a..97e4acaf5ead9aba0bdacf238ed4e879d54e9f6e 100644 --- a/styles/src/themes/dark.ts +++ b/styles/src/themes/dark.ts @@ -80,7 +80,7 @@ const iconColor = { placeholder: colors.neutral[700], active: colors.neutral[0], //TODO: (design) define feature and it's correct value - feature: colors.sky[500], + feature: colors.blue[500], ok: colors.green[600], error: colors.red[500], warning: colors.amber[400], @@ -90,7 +90,7 @@ const iconColor = { const player = { 1: buildPlayer(colors.blue[500]), 2: buildPlayer(colors.lime[500]), - 3: buildPlayer(colors.indigo[500]), + 3: buildPlayer(colors.fuschia[500]), 4: buildPlayer(colors.orange[500]), 5: buildPlayer(colors.purple[500]), 6: buildPlayer(colors.teal[400]), diff --git a/styles/src/themes/light.ts b/styles/src/themes/light.ts index 3978f89dce28a160ce96eb6173d35a5f5632db1f..1462640171b8bb20c69f41e3df50fbd9b767de76 100644 --- a/styles/src/themes/light.ts +++ b/styles/src/themes/light.ts @@ -73,10 +73,10 @@ const textColor = { }; const iconColor = { - primary: colors.neutral[300], - secondary: colors.neutral[500], - muted: colors.neutral[600], - placeholder: colors.neutral[700], + primary: colors.neutral[700], + secondary: colors.neutral[600], + muted: colors.neutral[500], + placeholder: colors.neutral[300], active: colors.neutral[900], feature: colors.sky[600], ok: colors.green[600], @@ -88,7 +88,7 @@ const iconColor = { const player = { 1: buildPlayer(colors.blue[500]), 2: buildPlayer(colors.lime[500]), - 3: buildPlayer(colors.indigo[500]), + 3: buildPlayer(colors.fuschia[500]), 4: buildPlayer(colors.orange[500]), 5: buildPlayer(colors.purple[500]), 6: buildPlayer(colors.teal[400]), From 2a2c4071f46f521ce03cbb55c2086f787e73ab52 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Tue, 5 Apr 2022 18:49:17 -0400 Subject: [PATCH 64/71] Update light syntax theme and highlights, player selections --- crates/zed/assets/themes/dark.json | 24 ++-- crates/zed/assets/themes/light.json | 176 ++++++++++++++-------------- styles/src/themes/light.ts | 60 +++++----- styles/src/themes/theme.ts | 2 +- 4 files changed, 131 insertions(+), 131 deletions(-) diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json index 92351e53edf36e813da92f8cec40f7bdfd12bcc9..bab53fbbe1a33e260e7ddc194c2abe335fbc0dbe 100644 --- a/crates/zed/assets/themes/dark.json +++ b/crates/zed/assets/themes/dark.json @@ -71,7 +71,7 @@ }, "selection": { "cursor": "#2472f2", - "selection": "#2472f24d" + "selection": "#2472f23d" }, "text": { "family": "Zed Mono", @@ -343,36 +343,36 @@ "unnecessary_code_fade": 0.5, "selection": { "cursor": "#2472f2", - "selection": "#2472f24d" + "selection": "#2472f23d" }, "guest_selections": [ { "cursor": "#79ba16", - "selection": "#79ba164d" + "selection": "#79ba163d" }, { "cursor": "#d430e0", - "selection": "#d430e04d" + "selection": "#d430e03d" }, { "cursor": "#ee670a", - "selection": "#ee670a4d" + "selection": "#ee670a3d" }, { "cursor": "#993bf3", - "selection": "#993bf34d" + "selection": "#993bf33d" }, { "cursor": "#16d6c1", - "selection": "#16d6c14d" + "selection": "#16d6c13d" }, { "cursor": "#ef59a3", - "selection": "#ef59a34d" + "selection": "#ef59a33d" }, { "cursor": "#f7bf17", - "selection": "#f7bf174d" + "selection": "#f7bf173d" } ], "autocomplete": { @@ -958,7 +958,7 @@ }, "selection": { "cursor": "#2472f2", - "selection": "#2472f24d" + "selection": "#2472f23d" }, "border": { "color": "#232323", @@ -1153,7 +1153,7 @@ }, "selection": { "cursor": "#2472f2", - "selection": "#2472f24d" + "selection": "#2472f23d" }, "text": { "family": "Zed Mono", @@ -1207,7 +1207,7 @@ }, "selection": { "cursor": "#2472f2", - "selection": "#2472f24d" + "selection": "#2472f23d" }, "text": { "family": "Zed Mono", diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json index 3a527fc7cd93a31a69a610693c021557a2bb5d48..9b56b2a1e6e4c4d46c9c6dc898a9f1803f62e5c1 100644 --- a/crates/zed/assets/themes/light.json +++ b/crates/zed/assets/themes/light.json @@ -13,12 +13,12 @@ "corner_radius": 6, "text": { "family": "Zed Sans", - "color": "#555555", + "color": "#474747", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#2472f2", + "color": "#484bed", "weight": "bold", "size": 14 } @@ -38,7 +38,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#2472f2", + "color": "#484bed", "weight": "bold", "size": 14 }, @@ -51,7 +51,7 @@ "empty": { "text": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14 }, "padding": { @@ -66,12 +66,12 @@ "corner_radius": 6, "placeholder_text": { "family": "Zed Sans", - "color": "#aaaaaa", + "color": "#808080", "size": 14 }, "selection": { "cursor": "#2472f2", - "selection": "#2472f24d" + "selection": "#2472f23d" }, "text": { "family": "Zed Mono", @@ -117,7 +117,7 @@ "spacing": 10, "text": { "family": "Zed Mono", - "color": "#555555", + "color": "#474747", "size": 14 }, "border": { @@ -221,17 +221,17 @@ }, "cursor_position": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14 }, "diagnostic_message": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14 }, "lsp_message": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14 } }, @@ -240,7 +240,7 @@ "height": 32, "background": "#e3e3e3", "share_icon_color": "#555555", - "share_icon_active_color": "#1179a8", + "share_icon_active_color": "#484bed", "title": { "family": "Zed Sans", "color": "#2b2b2b", @@ -264,7 +264,7 @@ }, "sign_in_prompt": { "family": "Zed Sans", - "color": "#555555", + "color": "#474747", "size": 13, "underline": true, "padding": { @@ -311,7 +311,7 @@ }, "breadcrumbs": { "family": "Zed Mono", - "color": "#555555", + "color": "#474747", "size": 14, "padding": { "left": 6 @@ -325,14 +325,14 @@ } }, "editor": { - "text_color": "#2b2b2b", + "text_color": "#1c1c1c", "background": "#ffffff", "active_line_background": "#f1f1f1", "code_actions_indicator": "#555555", "diff_background_deleted": "#fcc6c6", "diff_background_inserted": "#b7f9ce", - "document_highlight_read_background": "#14a89829", - "document_highlight_write_background": "#14a89852", + "document_highlight_read_background": "#de900c0f", + "document_highlight_write_background": "#de900c42", "error_color": "#eb2d2d", "gutter_background": "#ffffff", "gutter_padding_factor": 3.5, @@ -343,36 +343,36 @@ "unnecessary_code_fade": 0.5, "selection": { "cursor": "#2472f2", - "selection": "#2472f24d" + "selection": "#2472f23d" }, "guest_selections": [ { - "cursor": "#79ba16", - "selection": "#79ba164d" + "cursor": "#12d796", + "selection": "#12d7963d" }, { - "cursor": "#d430e0", - "selection": "#d430e04d" + "cursor": "#de57e8", + "selection": "#de57e83d" }, { - "cursor": "#ee670a", - "selection": "#ee670a4d" + "cursor": "#f9812e", + "selection": "#f9812e3d" }, { - "cursor": "#993bf3", - "selection": "#993bf34d" + "cursor": "#b066f8", + "selection": "#b066f83d" }, { "cursor": "#16d6c1", - "selection": "#16d6c14d" + "selection": "#16d6c13d" }, { "cursor": "#ef59a3", - "selection": "#ef59a34d" + "selection": "#ef59a33d" }, { "cursor": "#f7bf17", - "selection": "#f7bf174d" + "selection": "#f7bf173d" } ], "autocomplete": { @@ -406,7 +406,7 @@ "left": -14 }, "match_highlight": { - "color": "#103063", + "color": "#1819a1", "weight": "normal" }, "selected_item": { @@ -432,7 +432,7 @@ }, "code": { "family": "Zed Mono", - "color": "#808080", + "color": "#636363", "size": 14, "margin": { "left": 10 @@ -447,7 +447,7 @@ }, "text": { "family": "Zed Sans", - "color": "#555555", + "color": "#474747", "size": 14 } } @@ -462,7 +462,7 @@ }, "path": { "family": "Zed Mono", - "color": "#808080", + "color": "#636363", "size": 14, "margin": { "left": 12 @@ -573,12 +573,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14, "weight": "bold" } @@ -596,12 +596,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14, "weight": "bold" } @@ -619,12 +619,12 @@ "message": { "text": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14, "weight": "bold" } @@ -642,45 +642,45 @@ "message": { "text": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14 }, "highlight_text": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14, "weight": "bold" } } }, "syntax": { - "keyword": "#103063", - "function": "#1b9447", - "string": "#bb550e", - "type": "#138a7d", - "number": "#14a898", - "comment": "#555555", - "property": "#134697", - "variant": "#1179a8", - "constant": "#393939", + "keyword": "#1819a1", + "function": "#f9812e", + "string": "#eb2d2d", + "type": "#de900c", + "number": "#484bed", + "comment": "#717171", + "property": "#118a62", + "variant": "#1096d3", + "constant": "#1c1c1c", "title": { "color": "#1096d3", "weight": "bold" }, - "emphasis": "#2472f2", + "emphasis": "#484bed", "emphasis_strong": { - "color": "#2472f2", + "color": "#484bed", "weight": "bold" }, "link_uri": { - "color": "#14a898", + "color": "#79ba16", "underline": true }, "link_text": { - "color": "#ee670a", + "color": "#eb2d2d", "italic": true }, - "list_marker": "#393939" + "list_marker": "#555555" } }, "project_diagnostics": { @@ -694,7 +694,7 @@ }, "status_bar_item": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14, "margin": { "right": 10 @@ -713,7 +713,7 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#555555", + "color": "#474747", "size": 14 } }, @@ -725,7 +725,7 @@ "icon_spacing": 8, "text": { "family": "Zed Mono", - "color": "#555555", + "color": "#474747", "size": 14 } }, @@ -768,7 +768,7 @@ }, "channel_name_hash": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14, "padding": { "right": 8 @@ -787,7 +787,7 @@ }, "hash": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14, "margin": { "right": 8 @@ -798,13 +798,13 @@ "item": { "name": { "family": "Zed Sans", - "color": "#555555", + "color": "#474747", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14, "margin": { "right": 8 @@ -815,13 +815,13 @@ "hovered_item": { "name": { "family": "Zed Sans", - "color": "#555555", + "color": "#474747", "size": 14 }, "padding": 4, "hash": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14, "margin": { "right": 8 @@ -839,7 +839,7 @@ "padding": 4, "hash": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14, "margin": { "right": 8 @@ -856,7 +856,7 @@ "padding": 4, "hash": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14, "margin": { "right": 8 @@ -885,7 +885,7 @@ }, "sign_in_prompt": { "family": "Zed Sans", - "color": "#555555", + "color": "#474747", "underline": true, "size": 14 }, @@ -898,12 +898,12 @@ "message": { "body": { "family": "Zed Sans", - "color": "#555555", + "color": "#474747", "size": 14 }, "timestamp": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14 }, "padding": { @@ -922,12 +922,12 @@ "pending_message": { "body": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14 }, "timestamp": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "size": 14 }, "padding": { @@ -935,7 +935,7 @@ }, "sender": { "family": "Zed Sans", - "color": "#808080", + "color": "#636363", "weight": "bold", "size": 14, "margin": { @@ -953,12 +953,12 @@ }, "placeholder_text": { "family": "Zed Mono", - "color": "#aaaaaa", + "color": "#808080", "size": 14 }, "selection": { "cursor": "#2472f2", - "selection": "#2472f24d" + "selection": "#2472f23d" }, "border": { "color": "#e3e3e3", @@ -1003,7 +1003,7 @@ }, "name": { "family": "Zed Mono", - "color": "#aaaaaa", + "color": "#808080", "size": 14, "margin": { "right": 6 @@ -1022,7 +1022,7 @@ }, "name": { "family": "Zed Mono", - "color": "#555555", + "color": "#474747", "size": 14, "margin": { "right": 6 @@ -1043,7 +1043,7 @@ }, "name": { "family": "Zed Mono", - "color": "#555555", + "color": "#474747", "size": 14, "margin": { "right": 6 @@ -1064,7 +1064,7 @@ }, "name": { "family": "Zed Mono", - "color": "#aaaaaa", + "color": "#808080", "size": 14, "margin": { "right": 6 @@ -1083,7 +1083,7 @@ }, "name": { "family": "Zed Mono", - "color": "#aaaaaa", + "color": "#808080", "size": 14, "margin": { "right": 6 @@ -1096,12 +1096,12 @@ } }, "search": { - "match_background": "#1096d329", + "match_background": "#993bf31f", "tab_icon_spacing": 4, "tab_icon_width": 14, "active_hovered_option_button": { "family": "Zed Mono", - "color": "#555555", + "color": "#474747", "size": 14, "background": "#e3e3e3", "corner_radius": 6, @@ -1122,7 +1122,7 @@ }, "active_option_button": { "family": "Zed Mono", - "color": "#555555", + "color": "#474747", "size": 14, "background": "#e3e3e3", "corner_radius": 6, @@ -1148,12 +1148,12 @@ "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#aaaaaa", + "color": "#808080", "size": 14 }, "selection": { "cursor": "#2472f2", - "selection": "#2472f24d" + "selection": "#2472f23d" }, "text": { "family": "Zed Mono", @@ -1176,7 +1176,7 @@ }, "hovered_option_button": { "family": "Zed Mono", - "color": "#555555", + "color": "#474747", "size": 14, "background": "#e3e3e3", "corner_radius": 6, @@ -1202,12 +1202,12 @@ "max_width": 500, "placeholder_text": { "family": "Zed Mono", - "color": "#aaaaaa", + "color": "#808080", "size": 14 }, "selection": { "cursor": "#2472f2", - "selection": "#2472f24d" + "selection": "#2472f23d" }, "text": { "family": "Zed Mono", @@ -1230,13 +1230,13 @@ }, "match_index": { "family": "Zed Mono", - "color": "#808080", + "color": "#636363", "size": 14, "padding": 6 }, "option_button": { "family": "Zed Mono", - "color": "#555555", + "color": "#474747", "size": 14, "background": "#f1f1f1", "corner_radius": 6, diff --git a/styles/src/themes/light.ts b/styles/src/themes/light.ts index 1462640171b8bb20c69f41e3df50fbd9b767de76..e16bf5ee044c0bab2eaa06d2b34de07c18af56c0 100644 --- a/styles/src/themes/light.ts +++ b/styles/src/themes/light.ts @@ -61,11 +61,11 @@ const borderColor = { const textColor = { primary: colors.neutral[750], - secondary: colors.neutral[600], - muted: colors.neutral[450], - placeholder: colors.neutral[300], + secondary: colors.neutral[650], + muted: colors.neutral[550], + placeholder: colors.neutral[450], active: colors.neutral[900], - feature: colors.blue[500], + feature: colors.indigo[500], ok: colors.green[500], error: colors.red[500], warning: colors.yellow[500], @@ -78,7 +78,7 @@ const iconColor = { muted: colors.neutral[500], placeholder: colors.neutral[300], active: colors.neutral[900], - feature: colors.sky[600], + feature: colors.indigo[500], ok: colors.green[600], error: colors.red[600], warning: colors.yellow[400], @@ -87,10 +87,10 @@ const iconColor = { const player = { 1: buildPlayer(colors.blue[500]), - 2: buildPlayer(colors.lime[500]), - 3: buildPlayer(colors.fuschia[500]), - 4: buildPlayer(colors.orange[500]), - 5: buildPlayer(colors.purple[500]), + 2: buildPlayer(colors.emerald[400]), + 3: buildPlayer(colors.fuschia[400]), + 4: buildPlayer(colors.orange[400]), + 5: buildPlayer(colors.purple[400]), 6: buildPlayer(colors.teal[400]), 7: buildPlayer(colors.pink[400]), 8: buildPlayer(colors.yellow[400]), @@ -110,11 +110,11 @@ const editor = { }, highlight: { selection: player[1].selectionColor, - occurrence: withOpacity(colors.teal[500], 0.16), - activeOccurrence: withOpacity(colors.teal[500], 0.32), + occurrence: withOpacity(colors.amber[500], 0.06), + activeOccurrence: withOpacity(colors.amber[500], 0.26), matchingBracket: colors.neutral[0], - match: withOpacity(colors.sky[500], 0.16), - activeMatch: withOpacity(colors.sky[800], 0.32), + match: withOpacity(colors.purple[500], 0.12), + activeMatch: withOpacity(colors.purple[400], 0.36), related: colors.neutral[0], }, gutter: { @@ -125,63 +125,63 @@ const editor = { const syntax: Syntax = { primary: { - color: colors.neutral[750], + color: colors.neutral[800], weight: fontWeights.normal, }, comment: { - color: colors.neutral[600], + color: colors.neutral[500], weight: fontWeights.normal, }, punctuation: { - color: colors.neutral[700], + color: colors.neutral[600], weight: fontWeights.normal, }, constant: { - color: colors.neutral[700], + color: colors.neutral[800], weight: fontWeights.normal, }, keyword: { - color: colors.blue[800], + color: colors.indigo[700], weight: fontWeights.normal, }, function: { - color: colors.green[600], + color: colors.orange[400], weight: fontWeights.normal, }, type: { - color: colors.teal[600], + color: colors.amber[500], weight: fontWeights.normal, }, variant: { - color: colors.sky[600], + color: colors.sky[500], weight: fontWeights.normal, }, property: { - color: colors.blue[700], + color: colors.emerald[600], weight: fontWeights.normal, }, enum: { - color: colors.orange[600], + color: colors.red[500], weight: fontWeights.normal, }, operator: { - color: colors.orange[600], + color: colors.red[500], weight: fontWeights.normal, }, string: { - color: colors.orange[600], + color: colors.red[500], weight: fontWeights.normal, }, number: { - color: colors.teal[500], + color: colors.indigo[500], weight: fontWeights.normal, }, boolean: { - color: colors.amber[600], + color: colors.red[500], weight: fontWeights.normal, }, predictive: { - color: textColor.muted, + color: textColor.placeholder, weight: fontWeights.normal, }, title: { @@ -197,12 +197,12 @@ const syntax: Syntax = { weight: fontWeights.bold, }, linkUrl: { - color: colors.teal[500], + color: colors.lime[500], weight: fontWeights.normal, // TODO: add underline }, linkText: { - color: colors.orange[500], + color: colors.red[500], weight: fontWeights.normal, // TODO: add italic }, diff --git a/styles/src/themes/theme.ts b/styles/src/themes/theme.ts index d7ba990e73ea3ec0fd94198fee0b902ecd3fd9ec..64c6391dabf5225a0eac9cb088b8f99b02d1b660 100644 --- a/styles/src/themes/theme.ts +++ b/styles/src/themes/theme.ts @@ -21,7 +21,7 @@ export function buildPlayer( return { baseColor: color, cursorColor: withOpacity(color, cursorOpacity || 1.0), - selectionColor: withOpacity(color, selectionOpacity || 0.3), + selectionColor: withOpacity(color, selectionOpacity || 0.24), borderColor: withOpacity(color, borderOpacity || 0.8), } } From e201826d00574fe5791b5a66b86b829cb62fa57c Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Wed, 6 Apr 2022 01:46:10 -0400 Subject: [PATCH 65/71] Update Light & Dark themes --- crates/zed/assets/themes/dark.json | 27 ++--- crates/zed/assets/themes/light.json | 141 +++++++++++++------------- styles/src/styleTree/editor.ts | 7 +- styles/src/styleTree/selectorModal.ts | 2 +- styles/src/styleTree/workspace.ts | 2 +- styles/src/themes/dark.ts | 18 ++-- styles/src/themes/light.ts | 42 ++++---- 7 files changed, 119 insertions(+), 120 deletions(-) diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json index bab53fbbe1a33e260e7ddc194c2abe335fbc0dbe..56cef126935c71bce58e96c463a8e6be642e22c0 100644 --- a/crates/zed/assets/themes/dark.json +++ b/crates/zed/assets/themes/dark.json @@ -51,7 +51,7 @@ "empty": { "text": { "family": "Zed Sans", - "color": "#808080", + "color": "#474747", "size": 14 }, "padding": { @@ -272,7 +272,7 @@ } }, "hovered_sign_in_prompt": { - "family": "Zed Mono", + "family": "Zed Sans", "color": "#ffffff", "size": 13, "underline": true, @@ -327,17 +327,17 @@ "editor": { "text_color": "#d5d5d5", "background": "#000000", - "active_line_background": "#0e0e0e", - "code_actions_indicator": "#9c9c9c", + "active_line_background": "#ffffff12", + "code_actions_indicator": "#555555", "diff_background_deleted": "#f15656", "diff_background_inserted": "#1b9447", - "document_highlight_read_background": "#14a89829", - "document_highlight_write_background": "#14a89852", + "document_highlight_read_background": "#ffffff1f", + "document_highlight_write_background": "#ffffff29", "error_color": "#f15656", "gutter_background": "#000000", "gutter_padding_factor": 3.5, - "highlighted_line_background": "#070707", - "line_number": "#808080", + "highlighted_line_background": "#ffffff1f", + "line_number": "#474747", "line_number_active": "#ffffff", "rename_fade": 0.6, "unnecessary_code_fade": 0.5, @@ -400,14 +400,15 @@ "right": 6, "top": 2 }, - "background": "#070707" + "background": "#ffffff14" }, "margin": { "left": -14 }, "match_highlight": { - "color": "#4f8ff7", - "weight": "normal" + "family": "Zed Mono", + "color": "#1096d3", + "size": 14 }, "selected_item": { "corner_radius": 6, @@ -417,7 +418,7 @@ "right": 6, "top": 2 }, - "background": "#0e0e0e" + "background": "#ffffff1f" } }, "diagnostic_header": { @@ -453,7 +454,7 @@ } }, "diagnostic_path_header": { - "background": "#0e0e0e", + "background": "#ffffff12", "text_scale_factor": 0.857, "filename": { "family": "Zed Mono", diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json index 9b56b2a1e6e4c4d46c9c6dc898a9f1803f62e5c1..d601ecbcccdf6a43d964845314e75fc703617101 100644 --- a/crates/zed/assets/themes/light.json +++ b/crates/zed/assets/themes/light.json @@ -1,6 +1,6 @@ { "selector": { - "background": "#f1f1f1", + "background": "#f8f8f8", "corner_radius": 6, "padding": 8, "item": { @@ -42,16 +42,16 @@ "weight": "bold", "size": 14 }, - "background": "#d5d5d5" + "background": "#dcdcdc" }, "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1 }, "empty": { "text": { "family": "Zed Sans", - "color": "#636363", + "color": "#808080", "size": 14 }, "padding": { @@ -79,7 +79,7 @@ "size": 14 }, "border": { - "color": "#e3e3e3", + "color": "#d5d5d5", "width": 1 }, "padding": { @@ -103,13 +103,13 @@ } }, "workspace": { - "background": "#f1f1f1", + "background": "#f8f8f8", "leader_border_opacity": 0.7, "leader_border_width": 2, "tab": { "height": 32, - "background": "#f1f1f1", - "icon_close": "#717171", + "background": "#f8f8f8", + "icon_close": "#9c9c9c", "icon_close_active": "#000000", "icon_conflict": "#f7bf17", "icon_dirty": "#135acd", @@ -121,7 +121,7 @@ "size": 14 }, "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1, "left": true, "bottom": true, @@ -135,7 +135,7 @@ "active_tab": { "height": 32, "background": "#ffffff", - "icon_close": "#717171", + "icon_close": "#9c9c9c", "icon_close_active": "#000000", "icon_conflict": "#f7bf17", "icon_dirty": "#135acd", @@ -147,7 +147,7 @@ "size": 14 }, "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1, "left": true, "bottom": false, @@ -160,15 +160,15 @@ }, "left_sidebar": { "width": 30, - "background": "#f1f1f1", + "background": "#f8f8f8", "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1, "right": true }, "item": { "height": 32, - "icon_color": "#555555", + "icon_color": "#717171", "icon_size": 18 }, "active_item": { @@ -177,7 +177,7 @@ "icon_size": 18 }, "resize_handle": { - "background": "#c6c6c6", + "background": "#d5d5d5", "padding": { "left": 1 } @@ -185,15 +185,15 @@ }, "right_sidebar": { "width": 30, - "background": "#f1f1f1", + "background": "#f8f8f8", "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1, "left": true }, "item": { "height": 32, - "icon_color": "#555555", + "icon_color": "#717171", "icon_size": 18 }, "active_item": { @@ -202,14 +202,14 @@ "icon_size": 18 }, "resize_handle": { - "background": "#c6c6c6", + "background": "#d5d5d5", "padding": { "left": 1 } } }, "pane_divider": { - "color": "#e3e3e3", + "color": "#d5d5d5", "width": 1 }, "status_bar": { @@ -238,8 +238,8 @@ "titlebar": { "avatar_width": 18, "height": 32, - "background": "#e3e3e3", - "share_icon_color": "#555555", + "background": "#eaeaea", + "share_icon_color": "#717171", "share_icon_active_color": "#484bed", "title": { "family": "Zed Sans", @@ -258,7 +258,7 @@ "width": 12 }, "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1, "bottom": true }, @@ -272,7 +272,7 @@ } }, "hovered_sign_in_prompt": { - "family": "Zed Mono", + "family": "Zed Sans", "color": "#000000", "size": 13, "underline": true, @@ -281,7 +281,7 @@ } }, "offline_icon": { - "color": "#555555", + "color": "#717171", "width": 16, "padding": { "right": 4 @@ -297,7 +297,7 @@ "height": 34, "background": "#ffffff", "border": { - "color": "#e3e3e3", + "color": "#d5d5d5", "width": 1, "bottom": true }, @@ -327,16 +327,16 @@ "editor": { "text_color": "#1c1c1c", "background": "#ffffff", - "active_line_background": "#f1f1f1", - "code_actions_indicator": "#555555", + "active_line_background": "#0000000f", + "code_actions_indicator": "#9c9c9c", "diff_background_deleted": "#fcc6c6", "diff_background_inserted": "#b7f9ce", - "document_highlight_read_background": "#de900c0f", - "document_highlight_write_background": "#de900c42", + "document_highlight_read_background": "#0000000f", + "document_highlight_write_background": "#00000029", "error_color": "#eb2d2d", "gutter_background": "#ffffff", "gutter_padding_factor": 3.5, - "highlighted_line_background": "#f1f1f1", + "highlighted_line_background": "#0000001f", "line_number": "#aaaaaa", "line_number_active": "#000000", "rename_fade": 0.6, @@ -380,7 +380,7 @@ "corner_radius": 6, "padding": 6, "border": { - "color": "#e3e3e3", + "color": "#d5d5d5", "width": 1 }, "item": { @@ -400,14 +400,15 @@ "right": 6, "top": 2 }, - "background": "#f8f8f8" + "background": "#00000008" }, "margin": { "left": -14 }, "match_highlight": { - "color": "#1819a1", - "weight": "normal" + "family": "Zed Mono", + "color": "#484bed", + "size": 14 }, "selected_item": { "corner_radius": 6, @@ -417,15 +418,15 @@ "right": 6, "top": 2 }, - "background": "#f1f1f1" + "background": "#0000000f" } }, "diagnostic_header": { - "background": "#f1f1f1", + "background": "#f8f8f8", "icon_width_factor": 1.5, "text_scale_factor": 0.857, "border": { - "color": "#e3e3e3", + "color": "#d5d5d5", "width": 1, "bottom": true, "top": true @@ -453,7 +454,7 @@ } }, "diagnostic_path_header": { - "background": "#f1f1f1", + "background": "#0000000f", "text_scale_factor": 0.857, "filename": { "family": "Zed Mono", @@ -473,7 +474,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1, "top": true } @@ -496,7 +497,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1, "top": true } @@ -519,7 +520,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1, "top": true } @@ -542,7 +543,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1, "top": true } @@ -565,7 +566,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1, "top": true } @@ -588,7 +589,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1, "top": true } @@ -611,7 +612,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1, "top": true } @@ -634,7 +635,7 @@ "text_scale_factor": 0.857, "header": { "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1, "top": true } @@ -708,7 +709,7 @@ }, "entry": { "height": 22, - "icon_color": "#717171", + "icon_color": "#9c9c9c", "icon_size": 8, "icon_spacing": 8, "text": { @@ -719,8 +720,8 @@ }, "hovered_entry": { "height": 22, - "background": "#e3e3e3", - "icon_color": "#717171", + "background": "#eaeaea", + "icon_color": "#9c9c9c", "icon_size": 8, "icon_spacing": 8, "text": { @@ -731,7 +732,7 @@ }, "selected_entry": { "height": 22, - "icon_color": "#717171", + "icon_color": "#9c9c9c", "icon_size": 8, "icon_spacing": 8, "text": { @@ -742,8 +743,8 @@ }, "hovered_selected_entry": { "height": 22, - "background": "#e3e3e3", - "icon_color": "#717171", + "background": "#eaeaea", + "icon_color": "#9c9c9c", "icon_size": 8, "icon_spacing": 8, "text": { @@ -827,7 +828,7 @@ "right": 8 } }, - "background": "#e3e3e3", + "background": "#eaeaea", "corner_radius": 6 }, "active_item": { @@ -862,7 +863,7 @@ "right": 8 } }, - "background": "#e3e3e3", + "background": "#eaeaea", "corner_radius": 6 }, "menu": { @@ -870,7 +871,7 @@ "corner_radius": 6, "padding": 4, "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1 }, "shadow": { @@ -961,7 +962,7 @@ "selection": "#2472f23d" }, "border": { - "color": "#e3e3e3", + "color": "#d5d5d5", "width": 1 }, "padding": { @@ -980,7 +981,7 @@ "right": 12 }, "host_row_height": 28, - "tree_branch_color": "#f1f1f1", + "tree_branch_color": "#e3e3e3", "tree_branch_width": 1, "host_avatar": { "corner_radius": 10, @@ -1031,7 +1032,7 @@ "padding": { "left": 8 }, - "background": "#f1f1f1", + "background": "#f8f8f8", "corner_radius": 6 }, "hovered_shared_project": { @@ -1052,7 +1053,7 @@ "padding": { "left": 8 }, - "background": "#e3e3e3", + "background": "#eaeaea", "corner_radius": 6 }, "unshared_project": { @@ -1096,17 +1097,17 @@ } }, "search": { - "match_background": "#993bf31f", + "match_background": "#eb2d2d33", "tab_icon_spacing": 4, "tab_icon_width": 14, "active_hovered_option_button": { "family": "Zed Mono", "color": "#474747", "size": 14, - "background": "#e3e3e3", + "background": "#eaeaea", "corner_radius": 6, "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1 }, "margin": { @@ -1124,10 +1125,10 @@ "family": "Zed Mono", "color": "#474747", "size": 14, - "background": "#e3e3e3", + "background": "#eaeaea", "corner_radius": 6, "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1 }, "margin": { @@ -1161,7 +1162,7 @@ "size": 14 }, "border": { - "color": "#e3e3e3", + "color": "#d5d5d5", "width": 1 }, "margin": { @@ -1178,10 +1179,10 @@ "family": "Zed Mono", "color": "#474747", "size": 14, - "background": "#e3e3e3", + "background": "#eaeaea", "corner_radius": 6, "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1 }, "margin": { @@ -1238,10 +1239,10 @@ "family": "Zed Mono", "color": "#474747", "size": 14, - "background": "#f1f1f1", + "background": "#f8f8f8", "corner_radius": 6, "border": { - "color": "#c6c6c6", + "color": "#d5d5d5", "width": 1 }, "margin": { diff --git a/styles/src/styleTree/editor.ts b/styles/src/styleTree/editor.ts index 33bfbf0cc623ea0ae657efe83f04744d33c51308..9fb96e09b71a613c3e5c0791865f2562b655162c 100644 --- a/styles/src/styleTree/editor.ts +++ b/styles/src/styleTree/editor.ts @@ -42,7 +42,7 @@ export default function editor(theme: Theme) { textColor: theme.syntax.primary.color.value, background: backgroundColor(theme, 500), activeLineBackground: theme.editor.line.active.value, - codeActionsIndicator: iconColor(theme, "secondary"), + codeActionsIndicator: iconColor(theme, "muted"), diffBackgroundDeleted: backgroundColor(theme, "error"), diffBackgroundInserted: backgroundColor(theme, "ok"), documentHighlightReadBackground: theme.editor.highlight.occurrence.value, @@ -78,10 +78,7 @@ export default function editor(theme: Theme) { margin: { left: -14, }, - matchHighlight: { - color: theme.syntax.keyword.color.value, - weight: theme.syntax.keyword.weight.value, - }, + matchHighlight: text(theme, "mono", "feature"), selectedItem: { ...autocompleteItem, background: backgroundColor(theme, 500, "active"), diff --git a/styles/src/styleTree/selectorModal.ts b/styles/src/styleTree/selectorModal.ts index fdccae77a1c9b528418bb133fd87a5d14a6930d0..3e1925a179d5c9e0367f993a5433b9549ccc5af3 100644 --- a/styles/src/styleTree/selectorModal.ts +++ b/styles/src/styleTree/selectorModal.ts @@ -28,7 +28,7 @@ export default function selectorModal(theme: Theme): Object { activeItem, border: border(theme, "primary"), empty: { - text: text(theme, "sans", "muted"), + text: text(theme, "sans", "placeholder"), padding: { bottom: 4, left: 16, diff --git a/styles/src/styleTree/workspace.ts b/styles/src/styleTree/workspace.ts index a65356c636830fdf8283bfdbf23cd0c1eb5a636d..3a585458c3dd42c999924711d12479b5877f81ca 100644 --- a/styles/src/styleTree/workspace.ts +++ b/styles/src/styleTree/workspace.ts @@ -117,7 +117,7 @@ export default function workspace(theme: Theme) { signInPrompt, hoveredSignInPrompt: { ...signInPrompt, - ...text(theme, "mono", "active"), + ...text(theme, "sans", "active"), size: 13, }, offlineIcon: { diff --git a/styles/src/themes/dark.ts b/styles/src/themes/dark.ts index 97e4acaf5ead9aba0bdacf238ed4e879d54e9f6e..7c7f7bf97e44f83c9f80094bbb254dcf70d14ad7 100644 --- a/styles/src/themes/dark.ts +++ b/styles/src/themes/dark.ts @@ -6,19 +6,19 @@ const backgroundColor = { 100: { base: colors.neutral[750], hovered: colors.neutral[725], - active: colors.neutral[700], + active: colors.neutral[800], focused: colors.neutral[675], }, 300: { base: colors.neutral[800], hovered: colors.neutral[775], active: colors.neutral[750], - focused: colors.neutral[725], + focused: colors.neutral[775], }, 500: { base: colors.neutral[900], - hovered: colors.neutral[875], - active: colors.neutral[850], + hovered: withOpacity(colors.neutral[0], 0.08), + active: withOpacity(colors.neutral[0], 0.12), focused: colors.neutral[825], }, ok: { @@ -103,23 +103,23 @@ const editor = { indent_guide: borderColor.muted, indent_guide_active: borderColor.secondary, line: { - active: backgroundColor[500].active, - highlighted: backgroundColor[500].hovered, + active: withOpacity(colors.neutral[0], 0.07), + highlighted: withOpacity(colors.neutral[0], 0.12), inserted: backgroundColor.ok.active, deleted: backgroundColor.error.active, modified: backgroundColor.info.active, }, highlight: { selection: player[1].selectionColor, - occurrence: withOpacity(colors.teal[500], 0.16), - activeOccurrence: withOpacity(colors.teal[500], 0.32), + occurrence: withOpacity(colors.neutral[0], 0.12), + activeOccurrence: withOpacity(colors.neutral[0], 0.16), // TODO: This is not correctly hooked up to occurences on the rust side matchingBracket: backgroundColor[500].active, match: withOpacity(colors.sky[500], 0.16), activeMatch: withOpacity(colors.sky[800], 0.32), related: backgroundColor[500].focused, }, gutter: { - primary: textColor.muted, + primary: textColor.placeholder, active: textColor.active, }, }; diff --git a/styles/src/themes/light.ts b/styles/src/themes/light.ts index e16bf5ee044c0bab2eaa06d2b34de07c18af56c0..2fded3ed9074b259c7aebe350beb9722f75353cc 100644 --- a/styles/src/themes/light.ts +++ b/styles/src/themes/light.ts @@ -4,22 +4,22 @@ import Theme, { buildPlayer, Syntax } from "./theme"; const backgroundColor = { 100: { - base: colors.neutral[100], - hovered: colors.neutral[150], - active: colors.neutral[200], - focused: colors.neutral[150], - }, - 300: { - base: colors.neutral[50], + base: colors.neutral[75], hovered: colors.neutral[100], active: colors.neutral[150], focused: colors.neutral[100], }, + 300: { + base: colors.neutral[25], + hovered: colors.neutral[75], + active: colors.neutral[125], + focused: colors.neutral[75], + }, 500: { base: colors.neutral[0], - hovered: colors.neutral[25], - active: colors.neutral[50], - focused: colors.neutral[75], + hovered: withOpacity(colors.neutral[900], 0.03), + active: withOpacity(colors.neutral[900], 0.06), + focused: colors.neutral[50], }, ok: { base: colors.green[100], @@ -48,9 +48,9 @@ const backgroundColor = { }; const borderColor = { - primary: colors.neutral[200], - secondary: colors.neutral[100], - muted: colors.neutral[50], + primary: colors.neutral[150], + secondary: colors.neutral[150], + muted: colors.neutral[100], focused: colors.neutral[100], active: colors.neutral[250], ok: colors.green[200], @@ -74,8 +74,8 @@ const textColor = { const iconColor = { primary: colors.neutral[700], - secondary: colors.neutral[600], - muted: colors.neutral[500], + secondary: colors.neutral[500], + muted: colors.neutral[350], placeholder: colors.neutral[300], active: colors.neutral[900], feature: colors.indigo[500], @@ -102,19 +102,19 @@ const editor = { indent_guide: borderColor.muted, indent_guide_active: borderColor.secondary, line: { - active: backgroundColor[500].active, - highlighted: backgroundColor[500].active, + active: withOpacity(colors.neutral[900], 0.06), + highlighted: withOpacity(colors.neutral[900], 0.12), inserted: backgroundColor.ok.active, deleted: backgroundColor.error.active, modified: backgroundColor.info.active, }, highlight: { selection: player[1].selectionColor, - occurrence: withOpacity(colors.amber[500], 0.06), - activeOccurrence: withOpacity(colors.amber[500], 0.26), + occurrence: withOpacity(colors.neutral[900], 0.06), + activeOccurrence: withOpacity(colors.neutral[900], 0.16), // TODO: This is not correctly hooked up to occurences on the rust side matchingBracket: colors.neutral[0], - match: withOpacity(colors.purple[500], 0.12), - activeMatch: withOpacity(colors.purple[400], 0.36), + match: withOpacity(colors.red[500], 0.2), + activeMatch: withOpacity(colors.indigo[400], 0.36), related: colors.neutral[0], }, gutter: { From f29b8c795e9256e25d8ecdc6ada36c4c07e4df31 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Wed, 6 Apr 2022 11:00:25 -0400 Subject: [PATCH 66/71] Remove `message.txt` --- message.txt | 1672 --------------------------------------------------- 1 file changed, 1672 deletions(-) delete mode 100644 message.txt diff --git a/message.txt b/message.txt deleted file mode 100644 index f086360d37f8ee060cb030b5f2026d7a81f4864c..0000000000000000000000000000000000000000 --- a/message.txt +++ /dev/null @@ -1,1672 +0,0 @@ -{ - "core": { - "color": { - "neutral": { - "0": { - "value": "#FFFFFF", - "type": "color" - }, - "50": { - "value": "#F8F8F8", - "type": "color" - }, - "100": { - "value": "#F0F0F0", - "type": "color" - }, - "150": { - "value": "#E1E1E1", - "type": "color" - }, - "200": { - "value": "#D2D2D2", - "type": "color" - }, - "250": { - "value": "#C3C3C3", - "type": "color" - }, - "300": { - "value": "#B4B4B4", - "type": "color" - }, - "350": { - "value": "#A5A5A5", - "type": "color" - }, - "400": { - "value": "#969696", - "type": "color" - }, - "450": { - "value": "#878787", - "type": "color" - }, - "500": { - "value": "#787878", - "type": "color" - }, - "550": { - "value": "#696969", - "type": "color" - }, - "600": { - "value": "#5A5A5A", - "type": "color" - }, - "650": { - "value": "#4B4B4B", - "type": "color" - }, - "700": { - "value": "#3C3C3C", - "type": "color" - }, - "750": { - "value": "#262626", - "type": "color" - }, - "800": { - "value": "#1E1E1E", - "type": "color" - }, - "850": { - "value": "#0F0F0F", - "type": "color" - }, - "900": { - "value": "#000000", - "type": "color" - } - }, - "steel": { - "0": { - "value": "#F8FAFC", - "type": "color" - }, - "100": { - "value": "#F1F5F9", - "type": "color" - }, - "200": { - "value": "#E2E8F0", - "type": "color" - }, - "300": { - "value": "#CBD5E1", - "type": "color" - }, - "400": { - "value": "#94A3BA", - "type": "color" - }, - "500": { - "value": "#64748B", - "type": "color" - }, - "600": { - "value": "#475569", - "type": "color" - }, - "700": { - "value": "#334155", - "type": "color" - }, - "800": { - "value": "#1E293B", - "type": "color" - }, - "900": { - "value": "#0F172A", - "type": "color" - } - }, - "gray": { - "0": { - "value": "#FAFAFA", - "type": "color" - }, - "100": { - "value": "#F4F4F5", - "type": "color" - }, - "200": { - "value": "#E4E4E7", - "type": "color" - }, - "300": { - "value": "#D4D4D8", - "type": "color" - }, - "400": { - "value": "#A1A1AA", - "type": "color" - }, - "500": { - "value": "#71717A", - "type": "color" - }, - "600": { - "value": "#52525B", - "type": "color" - }, - "700": { - "value": "#3F3F46", - "type": "color" - }, - "800": { - "value": "#27272A", - "type": "color" - }, - "900": { - "value": "#18181B", - "type": "color" - } - }, - "rose": { - "0": { - "value": "#FFF1F2", - "type": "color" - }, - "100": { - "value": "#FFE4E6", - "type": "color" - }, - "200": { - "value": "#FECDD3", - "type": "color" - }, - "300": { - "value": "#FDA4AF", - "type": "color" - }, - "400": { - "value": "#FB7185", - "type": "color" - }, - "500": { - "value": "#F43F5E", - "type": "color" - }, - "600": { - "value": "#E11D48", - "type": "color" - }, - "700": { - "value": "#BE123C", - "type": "color" - }, - "800": { - "value": "#9F1239", - "type": "color" - }, - "900": { - "value": "#881337", - "type": "color" - } - }, - "red": { - "0": { - "value": "#FEF2F2", - "type": "color" - }, - "100": { - "value": "#FEE2E2", - "type": "color" - }, - "200": { - "value": "#FECACA", - "type": "color" - }, - "300": { - "value": "#FCA5A5", - "type": "color" - }, - "400": { - "value": "#F87171", - "type": "color" - }, - "500": { - "value": "#EF4444", - "type": "color" - }, - "600": { - "value": "#DC2626", - "type": "color" - }, - "700": { - "value": "#B91C1C", - "type": "color" - }, - "800": { - "value": "#991B1B", - "type": "color" - }, - "900": { - "value": "#7F1D1D", - "type": "color" - } - }, - "orange": { - "0": { - "value": "#FFF7ED", - "type": "color" - }, - "100": { - "value": "#FFEDD5", - "type": "color" - }, - "200": { - "value": "#FED7AA", - "type": "color" - }, - "300": { - "value": "#FDBA74", - "type": "color" - }, - "400": { - "value": "#FB923C", - "type": "color" - }, - "500": { - "value": "#F97316", - "type": "color" - }, - "600": { - "value": "#EA580C", - "type": "color" - }, - "700": { - "value": "#C2410C", - "type": "color" - }, - "800": { - "value": "#9A3412", - "type": "color" - }, - "900": { - "value": "#7C2D12", - "type": "color" - } - }, - "amber": { - "0": { - "value": "#FFFBEB", - "type": "color" - }, - "100": { - "value": "#FEF3C7", - "type": "color" - }, - "200": { - "value": "#FDE68A", - "type": "color" - }, - "300": { - "value": "#FCD34D", - "type": "color" - }, - "400": { - "value": "#FBBF24", - "type": "color" - }, - "500": { - "value": "#F59E0B", - "type": "color" - }, - "600": { - "value": "#D97706", - "type": "color" - }, - "700": { - "value": "#B45309", - "type": "color" - }, - "800": { - "value": "#92400E", - "type": "color" - }, - "900": { - "value": "#78350F", - "type": "color" - } - }, - "yellow": { - "0": { - "value": "#FEFCE8", - "type": "color" - }, - "100": { - "value": "#FEF9C3", - "type": "color" - }, - "200": { - "value": "#FEF08A", - "type": "color" - }, - "300": { - "value": "#FDE047", - "type": "color" - }, - "400": { - "value": "#FACC15", - "type": "color" - }, - "500": { - "value": "#EAB308", - "type": "color" - }, - "600": { - "value": "#CA8A04", - "type": "color" - }, - "700": { - "value": "#A16207", - "type": "color" - }, - "800": { - "value": "#854D0E", - "type": "color" - }, - "900": { - "value": "#713F12", - "type": "color" - } - }, - "lime": { - "0": { - "value": "#F7FEE7", - "type": "color" - }, - "100": { - "value": "#ECFCCB", - "type": "color" - }, - "200": { - "value": "#D9F99D", - "type": "color" - }, - "300": { - "value": "#BEF264", - "type": "color" - }, - "400": { - "value": "#A3E635", - "type": "color" - }, - "500": { - "value": "#84CC16", - "type": "color" - }, - "600": { - "value": "#65A30D", - "type": "color" - }, - "700": { - "value": "#4D7C0F", - "type": "color" - }, - "800": { - "value": "#3F6212", - "type": "color" - }, - "900": { - "value": "#365314", - "type": "color" - } - }, - "green": { - "0": { - "value": "#F0FDF4", - "type": "color" - }, - "100": { - "value": "#DCFCE7", - "type": "color" - }, - "200": { - "value": "#BBF7D0", - "type": "color" - }, - "300": { - "value": "#86EFAC", - "type": "color" - }, - "400": { - "value": "#4ADE80", - "type": "color" - }, - "500": { - "value": "#22C55E", - "type": "color" - }, - "600": { - "value": "#16A34A", - "type": "color" - }, - "700": { - "value": "#15803D", - "type": "color" - }, - "800": { - "value": "#166534", - "type": "color" - }, - "900": { - "value": "#14532D", - "type": "color" - } - }, - "emerald": { - "0": { - "value": "#ECFDF5", - "type": "color" - }, - "100": { - "value": "#D1FAE5", - "type": "color" - }, - "200": { - "value": "#A7F3D0", - "type": "color" - }, - "300": { - "value": "#6EE7B7", - "type": "color" - }, - "400": { - "value": "#34D399", - "type": "color" - }, - "500": { - "value": "#10B981", - "type": "color" - }, - "600": { - "value": "#059669", - "type": "color" - }, - "700": { - "value": "#047857", - "type": "color" - }, - "800": { - "value": "#065F46", - "type": "color" - }, - "900": { - "value": "#064E3B", - "type": "color" - } - }, - "teal": { - "0": { - "value": "#F0FDFA", - "type": "color" - }, - "100": { - "value": "#CCFBF1", - "type": "color" - }, - "200": { - "value": "#99F6E4", - "type": "color" - }, - "300": { - "value": "#5EEAD4", - "type": "color" - }, - "400": { - "value": "#2DD4BF", - "type": "color" - }, - "500": { - "value": "#14B8A6", - "type": "color" - }, - "600": { - "value": "#0D9488", - "type": "color" - }, - "700": { - "value": "#0F766E", - "type": "color" - }, - "800": { - "value": "#115E59", - "type": "color" - }, - "900": { - "value": "#134E4A", - "type": "color" - } - }, - "cyan": { - "0": { - "value": "#ECFEFF", - "type": "color" - }, - "100": { - "value": "#CFFAFE", - "type": "color" - }, - "200": { - "value": "#A5F3FC", - "type": "color" - }, - "300": { - "value": "#67E8F9", - "type": "color" - }, - "400": { - "value": "#22D3EE", - "type": "color" - }, - "500": { - "value": "#06BBD4", - "type": "color" - }, - "600": { - "value": "#0891B2", - "type": "color" - }, - "700": { - "value": "#0E7490", - "type": "color" - }, - "800": { - "value": "#155E75", - "type": "color" - }, - "900": { - "value": "#164E63", - "type": "color" - } - }, - "sky": { - "0": { - "value": "#F0F9FF", - "type": "color" - }, - "100": { - "value": "#E0F2FE", - "type": "color" - }, - "200": { - "value": "#BAE6FD", - "type": "color" - }, - "300": { - "value": "#7DD3FC", - "type": "color" - }, - "400": { - "value": "#38BDF8", - "type": "color" - }, - "500": { - "value": "#0EA5E9", - "type": "color" - }, - "600": { - "value": "#0284C7", - "type": "color" - }, - "700": { - "value": "#0369A1", - "type": "color" - }, - "800": { - "value": "#075985", - "type": "color" - }, - "900": { - "value": "#0C4A6E", - "type": "color" - } - }, - "blue": { - "0": { - "value": "#EFF6FF", - "type": "color" - }, - "100": { - "value": "#DBEAFE", - "type": "color" - }, - "200": { - "value": "#BFDBFE", - "type": "color" - }, - "300": { - "value": "#93C5FD", - "type": "color" - }, - "400": { - "value": "#60A5FA", - "type": "color" - }, - "500": { - "value": "#3B82F6", - "type": "color" - }, - "600": { - "value": "#2563EB", - "type": "color" - }, - "700": { - "value": "#1D4ED8", - "type": "color" - }, - "800": { - "value": "#1E40A4", - "type": "color" - }, - "900": { - "value": "#1E3A8A", - "type": "color" - } - }, - "indigo": { - "0": { - "value": "#EEF2FF", - "type": "color" - }, - "100": { - "value": "#E0E7FF", - "type": "color" - }, - "200": { - "value": "#C7D2FE", - "type": "color" - }, - "300": { - "value": "#A5B4FC", - "type": "color" - }, - "400": { - "value": "#818CF8", - "type": "color" - }, - "500": { - "value": "#6366F1", - "type": "color" - }, - "600": { - "value": "#4F46E5", - "type": "color" - }, - "700": { - "value": "#4338CA", - "type": "color" - }, - "800": { - "value": "#3730A3", - "type": "color" - }, - "900": { - "value": "#312E81", - "type": "color" - } - }, - "violet": { - "0": { - "value": "#F5F3FF", - "type": "color" - }, - "100": { - "value": "#EDE9FE", - "type": "color" - }, - "200": { - "value": "#DDD6FE", - "type": "color" - }, - "300": { - "value": "#C4B5FD", - "type": "color" - }, - "400": { - "value": "#A78BFA", - "type": "color" - }, - "500": { - "value": "#8B5CF6", - "type": "color" - }, - "600": { - "value": "#7C3AED", - "type": "color" - }, - "700": { - "value": "#6D28D9", - "type": "color" - }, - "800": { - "value": "#5B21B6", - "type": "color" - }, - "900": { - "value": "#4C1D95", - "type": "color" - } - }, - "purple": { - "0": { - "value": "#FAF5FF", - "type": "color" - }, - "100": { - "value": "#F3E8FF", - "type": "color" - }, - "200": { - "value": "#E9D5FF", - "type": "color" - }, - "300": { - "value": "#D8B4FE", - "type": "color" - }, - "400": { - "value": "#C084FC", - "type": "color" - }, - "500": { - "value": "#A855F7", - "type": "color" - }, - "600": { - "value": "#9333EA", - "type": "color" - }, - "700": { - "value": "#7E22CE", - "type": "color" - }, - "800": { - "value": "#6B21A8", - "type": "color" - }, - "900": { - "value": "#581C87", - "type": "color" - } - }, - "fuschia": { - "0": { - "value": "#FDF4FF", - "type": "color" - }, - "100": { - "value": "#FAE8FF", - "type": "color" - }, - "200": { - "value": "#F5D0FE", - "type": "color" - }, - "300": { - "value": "#F0ABFC", - "type": "color" - }, - "400": { - "value": "#E879F9", - "type": "color" - }, - "500": { - "value": "#D946E4", - "type": "color" - }, - "600": { - "value": "#C026D3", - "type": "color" - }, - "700": { - "value": "#A21CAF", - "type": "color" - }, - "800": { - "value": "#86198F", - "type": "color" - }, - "900": { - "value": "#701A75", - "type": "color" - } - }, - "pink": { - "0": { - "value": "#FDF2F8", - "type": "color" - }, - "100": { - "value": "#FCE7F3", - "type": "color" - }, - "200": { - "value": "#FBCFE8", - "type": "color" - }, - "300": { - "value": "#F988D4", - "type": "color" - }, - "400": { - "value": "#F472B6", - "type": "color" - }, - "500": { - "value": "#EC4899", - "type": "color" - }, - "600": { - "value": "#DB2777", - "type": "color" - }, - "700": { - "value": "#BE185D", - "type": "color" - }, - "800": { - "value": "#9D174D", - "type": "color" - }, - "900": { - "value": "#831843", - "type": "color" - } - } - }, - "font-weight": { - "normal": { - "100": { - "value": "Thin", - "type": "fontWeights" - }, - "200": { - "value": "Light", - "type": "fontWeights" - }, - "400": { - "value": "Regular", - "type": "fontWeights" - }, - "500": { - "value": "Semibold", - "type": "fontWeights" - }, - "600": { - "value": "Bold", - "type": "fontWeights" - }, - "800": { - "value": "Heavy", - "type": "fontWeights" - } - }, - "normal-bold": { - "100": { - "value": "Thin", - "type": "fontWeights" - }, - "200": { - "value": "Light", - "type": "fontWeights" - }, - "400": { - "value": "Regular", - "type": "fontWeights" - }, - "500": { - "value": "Semibold", - "type": "fontWeights" - }, - "600": { - "value": "Bold", - "type": "fontWeights" - }, - "800": { - "value": "Heavy", - "type": "fontWeights" - } - }, - "italic": { - "100": { - "value": "Thin Italic", - "type": "fontWeights" - }, - "200": { - "value": "Light", - "type": "fontWeights" - }, - "400": { - "value": "Regular", - "type": "fontWeights" - }, - "500": { - "value": "Semibold", - "type": "fontWeights" - }, - "600": { - "value": "Bold", - "type": "fontWeights" - }, - "800": { - "value": "Heavy", - "type": "fontWeights" - } - }, - "italic-bold": { - "100": { - "value": "Thin Italic", - "type": "fontWeights" - }, - "200": { - "value": "Light", - "type": "fontWeights" - }, - "400": { - "value": "Regular", - "type": "fontWeights" - }, - "500": { - "value": "Semibold", - "type": "fontWeights" - }, - "600": { - "value": "Bold", - "type": "fontWeights" - }, - "800": { - "value": "Heavy", - "type": "fontWeights" - } - } - }, - "font-family": { - "zed-mono": { - "value": "Zed Mono", - "type": "fontFamilies" - }, - "zed-sans": { - "value": "Zed Sans", - "type": "fontFamilies" - } - }, - "font-size": { - "3xs": { - "value": "8", - "type": "fontSizes" - }, - "2xs": { - "value": "10", - "type": "fontSizes" - }, - "xs": { - "value": "12", - "type": "fontSizes" - }, - "sm": { - "value": "14", - "type": "fontSizes" - }, - "base": { - "value": "16", - "type": "fontSizes" - }, - "lg": { - "value": "18", - "type": "fontSizes" - }, - "xl": { - "value": "20", - "type": "fontSizes" - } - }, - "leading": { - "xs": { - "value": "16", - "type": "lineHeights" - }, - "sm": { - "value": "20", - "type": "lineHeights" - }, - "base": { - "value": "24", - "type": "lineHeights" - }, - "lg": { - "value": "26", - "type": "lineHeights" - }, - "xl": { - "value": "28", - "type": "lineHeights" - }, - "2xl": { - "value": "30", - "type": "lineHeights" - } - }, - "text-decoration": { - "none": { - "value": "none", - "type": "textDecoration" - } - }, - "ui-text": { - "normal": { - "base": { - "value": { - "fontFamily": "{font-family.zed-sans}", - "fontWeight": "$font-weight.normal.400", - "lineHeight": "{leading.sm}", - "fontSize": "{font-size.sm}", - "letterSpacing": "{letter-spacing.base}", - "paragraphSpacing": "{paragraph-spacing.default}", - "textCase": "{text-case.default}", - "decoration": "{text-decoration.none}", - "textDecoration": "{text-decoration.none}" - }, - "type": "typography", - "bold": { - "value": { - "fontFamily": "$text.family.zed-sans", - "fontWeight": "$text.weight.bold", - "lineHeight": "$text.leading.base", - "fontSize": "$text.size.xs", - "letterSpacing": "$text.tracking.default", - "paragraphSpacing": "$text.paragraphSpacing.0", - "textCase": "$text.case.default", - "decoration": "$text.decoration.none", - "textDecoration": "$text.decoration.none" - }, - "type": "typography" - } - }, - "sm": { - "value": { - "fontFamily": "{font-family.zed-sans}", - "fontWeight": "$font-weight.normal.400", - "lineHeight": "{leading.xs}", - "fontSize": "{font-size.xs}", - "letterSpacing": "{letter-spacing.base}", - "paragraphSpacing": "{paragraph-spacing.default}", - "textCase": "{text-case.default}", - "decoration": "{text-decoration.none}", - "textDecoration": "{text-decoration.none}" - }, - "type": "typography", - "bold": { - "value": { - "fontFamily": "$text.family.zed-sans", - "fontWeight": "$text.weight.bold", - "lineHeight": "$text.leading.base", - "fontSize": "$text.size.xs", - "letterSpacing": "$text.tracking.default", - "paragraphSpacing": "$text.paragraphSpacing.0", - "textCase": "$text.case.default", - "decoration": "$text.decoration.none", - "textDecoration": "$text.decoration.none" - }, - "type": "typography" - } - } - }, - "bold": { - "base": { - "value": { - "fontFamily": "{font-family.zed-sans}", - "fontWeight": "$font-weight.normal.600", - "lineHeight": "{leading.base}", - "fontSize": "{font-size.sm}", - "letterSpacing": "{letter-spacing.sm}", - "paragraphSpacing": "{paragraph-spacing.default}", - "textCase": "{text-case.default}", - "decoration": "{text-decoration.none}", - "textDecoration": "{text-decoration.none}" - }, - "type": "typography" - }, - "sm": { - "value": { - "fontFamily": "{font-family.zed-sans}", - "fontWeight": "$font-weight.normal.600", - "lineHeight": "{leading.xs}", - "fontSize": "{font-size.xs}", - "letterSpacing": "{letter-spacing.base}", - "paragraphSpacing": "{paragraph-spacing.default}", - "textCase": "{text-case.default}", - "decoration": "{text-decoration.none}", - "textDecoration": "{text-decoration.none}" - }, - "type": "typography" - } - } - }, - "buffer-text": { - "normal": { - "xs": { - "value": { - "fontFamily": "{font-family.zed-mono}", - "fontWeight": "$font-weight.normal.400", - "lineHeight": "{leading.xs}", - "fontSize": "{font-size.xs}", - "letterSpacing": "{letter-spacing.base}", - "paragraphSpacing": "{paragraph-spacing.default}", - "textCase": "{text-case.default}", - "decoration": "{text-decoration.none}", - "textDecoration": "{text-decoration.none}" - }, - "type": "typography" - }, - "sm": { - "value": { - "fontFamily": "{font-family.zed-mono}", - "fontWeight": "$font-weight.normal.400", - "lineHeight": "{leading.sm}", - "fontSize": "{font-size.sm}", - "letterSpacing": "{letter-spacing.base}", - "paragraphSpacing": "{paragraph-spacing.default}", - "textCase": "{text-case.default}", - "decoration": "{text-decoration.none}", - "textDecoration": "{text-decoration.none}" - }, - "type": "typography" - }, - "base": { - "value": { - "fontFamily": "{font-family.zed-mono}", - "fontWeight": "$font-weight.normal.400", - "lineHeight": "{leading.lg}", - "fontSize": "{font-size.base}", - "letterSpacing": "{letter-spacing.base}", - "paragraphSpacing": "{paragraph-spacing.default}", - "textCase": "{text-case.default}", - "decoration": "{text-decoration.none}", - "textDecoration": "$text.decoration.default" - }, - "type": "typography" - }, - "lg": { - "value": { - "fontFamily": "{font-family.zed-mono}", - "fontWeight": "$font-weight.normal.400", - "lineHeight": "{leading.lg}", - "fontSize": "{font-size.lg}", - "letterSpacing": "{letter-spacing.base}", - "paragraphSpacing": "{paragraph-spacing.default}", - "textCase": "{text-case.default}", - "decoration": "{text-decoration.none}", - "textDecoration": "$text.decoration.default" - }, - "type": "typography" - } - } - }, - "letter-spacing": { - "tight": { - "value": "-0.05", - "type": "letterSpacing" - }, - "base": { - "value": "0%", - "type": "letterSpacing" - }, - "wide": { - "value": "0.05", - "type": "letterSpacing" - } - }, - "paragraph-spacing": { - "default": { - "value": "0", - "type": "paragraphSpacing" - } - }, - "text-case": { - "default": { - "value": "none", - "type": "textCase" - }, - "lowercase": { - "value": "lowercase", - "type": "textCase" - }, - "uppercase": { - "value": "uppercase", - "type": "textCase" - } - }, - "space": { - "s-0": { - "value": "0", - "type": "spacing" - }, - "s-4": { - "value": "{var.base}", - "type": "spacing" - }, - "s-8": { - "value": "{var.base} * 2", - "type": "spacing" - }, - "s-12": { - "value": "{var.base} * 3", - "type": "spacing" - }, - "s-16": { - "value": "{var.base} * 4", - "type": "spacing" - } - }, - "internal": { - "mac-os": { - "red": { - "value": "#FF5E57", - "type": "color" - }, - "yellow": { - "value": "#FFBB2E", - "type": "color" - }, - "green": { - "value": "#38C149", - "type": "color" - } - } - }, - "border-radius": { - "xs": { - "value": "2", - "type": "borderRadius" - }, - "sm": { - "value": "4", - "type": "borderRadius" - }, - "base": { - "value": "6", - "type": "borderRadius" - }, - "lg": { - "value": "8", - "type": "borderRadius" - }, - "xl": { - "value": "10", - "type": "borderRadius" - } - }, - "border-width": { - "base": { - "value": "1", - "type": "borderWidth" - } - }, - "elevation": { - "300": { - "value": { - "x": "0", - "y": "4", - "blur": "12", - "spread": "0", - "color": "rgba({color.neutral.900}, {shadow.base})", - "type": "dropShadow" - }, - "type": "boxShadow" - } - }, - "var": { - "base": { - "value": "4", - "type": "other" - } - } - }, - "dark": { - "text-color": { - "primary": { - "value": "{color.neutral.150}", - "type": "color" - }, - "secondary": { - "value": "{color.neutral.350}", - "type": "color" - }, - "muted": { - "value": "{color.neutral.550}", - "type": "color" - }, - "minimal": { - "value": "{color.neutral.750}", - "type": "color" - }, - "active": { - "value": "{color.neutral.0}", - "type": "color" - }, - "disabled": { - "value": "{color.neutral.650}", - "type": "color" - }, - "positive": { - "value": "{color.green.600}", - "type": "color" - }, - "negative": { - "value": "{color.red.400}", - "type": "color" - }, - "warning": { - "value": "{color.amber.300}", - "type": "color" - }, - "info": { - "value": "{color.blue.500}", - "type": "color" - } - }, - "icon-color": { - "primary": { - "value": "{text.secondary}", - "type": "color" - }, - "secondary": { - "value": "{text.muted}", - "type": "color" - }, - "active": { - "value": "{text.active}", - "type": "color" - }, - "disabled": { - "value": "{text.disabled}", - "type": "color" - }, - "positive": { - "value": "{color.green.600}", - "type": "color" - }, - "negative": { - "value": "{color.red.400}", - "type": "color" - }, - "warning": { - "value": "{color.amber.300}", - "type": "color" - }, - "info": { - "value": "{color.blue.500}", - "type": "color" - } - }, - "icon-size": { - "default": { - "value": "16", - "type": "size" - } - }, - "background-color": { - "100": { - "value": "{color.neutral.750}", - "type": "color", - "description": "The app background. Used for title-bar, other daylight." - }, - "300": { - "value": "{color.neutral.800}", - "type": "color", - "description": "The primary surface layer. Used for tabs, panels, pop-overs, etc." - }, - "500": { - "value": "{color.neutral.900}", - "type": "color", - "description": "Used for the buffer background and active buffer tabs." - }, - "active": { - "value": "rgba({icon.active}}, 0.1)", - "type": "color" - }, - "focused": { - "value": "// wip", - "type": "color" - }, - "disabled": { - "value": "// wip", - "type": "color" - }, - "positive": { - "value": "{color.green.600}", - "type": "color" - }, - "negative": { - "value": "{color.red.400}", - "type": "color" - }, - "warning": { - "value": "{color.amber.300}", - "type": "color" - }, - "info": { - "value": "{color.blue.500}", - "type": "color" - } - }, - "border-color": { - "default": { - "value": "{color.neutral.850}", - "type": "color" - }, - "secondary": { - "value": "{color.neutral.700}", - "type": "color" - }, - "minimal": { - "value": "{color.neutral.750}", - "type": "color" - }, - "active": { - "value": "{color.neutral.500}", - "type": "color" - }, - "focused": { - "value": "{color.neutral.100}", - "type": "color" - } - }, - "editor": { - "background-color": { - "value": "{surface.500}", - "type": "color" - }, - "indent-guide": { - "value": "{icon.disabled}", - "type": "color" - }, - "indent-guide-active": { - "value": "{icon.secondary}", - "type": "color" - }, - "highlight": { - "active-line": { - "value": "rgba({color.neutral.0}, 0.08)", - "type": "color" - }, - "selection": { - "value": "{player.selection.one}", - "type": "color" - }, - "folded-line": { - "value": "rgba({surface.500}, 0.03)", - "type": "color" - }, - "occurrence": { - "value": "rgba({text.active}, 0.15)", - "type": "color" - }, - "matching-bracket": { - "value": "rgba({color.indigo.500}, 0.8)", - "type": "color" - }, - "match": { - "value": "rgba({color.blue.500},0.5)", - "type": "color" - }, - "active-match": { - "value": "rgba({color.blue.500},0.8)", - "type": "color" - } - }, - "gutter": { - "primary": { - "value": "{text.muted}", - "type": "color" - }, - "active": { - "value": "{text.active}", - "type": "color" - } - }, - "syntax": { - "primary": { - "value": "{text.primary}", - "type": "color" - }, - "comment": { - "value": "{color.lime.200}", - "type": "color" - }, - "punctuation": { - "value": "{text.secondary}", - "type": "color" - }, - "constant": { - "value": "{syntax.primary}", - "type": "color" - }, - "keyword": { - "value": "{color.sky.400}", - "type": "color" - }, - "function": { - "value": "{color.yellow.200}", - "type": "color" - }, - "type": { - "value": "{color.teal.300}", - "type": "color" - }, - "variant": { - "value": "{syntax.type}", - "type": "color" - }, - "property": { - "value": "{color.sky.300}", - "type": "color" - }, - "enum": { - "value": "{syntax.operator}", - "type": "color" - }, - "operator": { - "value": "{syntax.keyword}", - "type": "color" - }, - "string": { - "value": "{color.orange.300}", - "type": "color" - }, - "number": { - "value": "{syntax.primary}", - "type": "color" - }, - "boolean": { - "value": "{syntax.number}", - "type": "color" - }, - "predictive": { - "value": "{text.muted}", - "type": "color" - } - } - }, - "player": { - "color": { - "1": { - "value": "{color.blue.600}", - "type": "color" - }, - "2": { - "value": "{color.indigo.500}", - "type": "color" - }, - "3": { - "value": "{color.green.500}", - "type": "color" - }, - "4": { - "value": "{color.orange.500}", - "type": "color" - }, - "5": { - "value": "{color.purple.500}", - "type": "color" - }, - "6": { - "value": "{color.teal.400}", - "type": "color" - }, - "7": { - "value": "{color.pink.400}", - "type": "color" - }, - "8": { - "value": "{color.yellow.400}", - "type": "color" - } - }, - "selection": { - "1": { - "value": "rgba({color.blue.600},0.1)", - "type": "color" - }, - "2": { - "value": "rgba({color.indigo.500}, 0.1)", - "type": "color" - }, - "3": { - "value": "rgba({color.green.500}, 0.1)", - "type": "color" - }, - "4": { - "value": "rgba({color.orange.500}, 0.15)", - "type": "color" - }, - "5": { - "value": "rgba({color.purple.500}, 0.1)", - "type": "color" - }, - "6": { - "value": "rgba({color.teal.400}, 0.1)", - "type": "color" - }, - "7": { - "value": "rgba({color.pink.400}, 0.1)", - "type": "color" - }, - "8": { - "value": "rgba({color.yellow.400}, 0.15)", - "type": "color" - } - } - }, - "shadow": { - "base": { - "value": "0.36", - "type": "opacity" - } - } - } -} \ No newline at end of file From 36fede75225fb85d740832ed015e21ca495aefd9 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Wed, 6 Apr 2022 09:26:43 -0600 Subject: [PATCH 67/71] =?UTF-8?q?=F0=9F=92=84=20token-building=20script=20?= =?UTF-8?q?and=20output=20destinations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Just some organization here. --- styles/dist/{figma => }/core.json | 0 styles/{src/figma => dist}/dark.json | 130 +- styles/{src/figma => dist}/light.json | 238 ++-- styles/{src/figma => dist}/tokens.json | 368 +++--- styles/package-lock.json | 472 ++----- styles/package.json | 3 +- styles/src/buildThemes.ts | 2 +- .../{buildFigmaTokens.ts => buildTokens.ts} | 36 +- styles/src/figma/core.json | 1155 ----------------- 9 files changed, 491 insertions(+), 1913 deletions(-) rename styles/dist/{figma => }/core.json (100%) rename styles/{src/figma => dist}/dark.json (87%) rename styles/{src/figma => dist}/light.json (80%) rename styles/{src/figma => dist}/tokens.json (92%) rename styles/src/{buildFigmaTokens.ts => buildTokens.ts} (68%) delete mode 100644 styles/src/figma/core.json diff --git a/styles/dist/figma/core.json b/styles/dist/core.json similarity index 100% rename from styles/dist/figma/core.json rename to styles/dist/core.json diff --git a/styles/src/figma/dark.json b/styles/dist/dark.json similarity index 87% rename from styles/src/figma/dark.json rename to styles/dist/dark.json index 28c27bfc23c2b520360f74634c6bd453643f58aa..760790a3cb6bceb1ca87c85c1ce51d532d9c4116 100644 --- a/styles/src/figma/dark.json +++ b/styles/dist/dark.json @@ -14,13 +14,13 @@ "type": "color" }, "muted": { - "value": "#636363", - "step": 550, + "value": "#808080", + "step": 450, "type": "color" }, "placeholder": { - "value": "#2b2b2b", - "step": 750, + "value": "#474747", + "step": 650, "type": "color" }, "active": { @@ -81,7 +81,7 @@ "type": "color" }, "feature": { - "value": "#1096d3", + "value": "#2472f2", "step": 500, "type": "color" }, @@ -119,8 +119,8 @@ "type": "color" }, "active": { - "value": "#393939", - "step": 700, + "value": "#1c1c1c", + "step": 800, "type": "color" }, "focused": { @@ -146,8 +146,8 @@ "type": "color" }, "focused": { - "value": "#323232", - "step": 725, + "value": "#232323", + "step": 775, "type": "color" } }, @@ -158,13 +158,13 @@ "type": "color" }, "hovered": { - "value": "#070707", - "step": 875, + "value": "#ffffff14", + "step": 0, "type": "color" }, "active": { - "value": "#0e0e0e", - "step": 850, + "value": "#ffffff1f", + "step": 0, "type": "color" }, "focused": { @@ -269,13 +269,13 @@ "type": "color" }, "secondary": { - "value": "#151515", - "step": 825, + "value": "#232323", + "step": 775, "type": "color" }, "muted": { - "value": "#232323", - "step": 775, + "value": "#404040", + "step": 675, "type": "color" }, "focused": { @@ -316,24 +316,24 @@ "type": "color" }, "indent_guide": { - "value": "#232323", - "step": 775, + "value": "#404040", + "step": 675, "type": "color" }, "indent_guide_active": { - "value": "#151515", - "step": 825, + "value": "#232323", + "step": 775, "type": "color" }, "line": { "active": { - "value": "#0e0e0e", - "step": 850, + "value": "#ffffff12", + "step": 0, "type": "color" }, "highlighted": { - "value": "#070707", - "step": 875, + "value": "#ffffff1f", + "step": 0, "type": "color" }, "inserted": { @@ -354,32 +354,32 @@ }, "highlight": { "selection": { - "value": "#103063", - "step": 800, + "value": "#2472f23d", + "step": 500, "type": "color" }, "occurrence": { - "value": "#2b2b2b", - "step": 750, + "value": "#ffffff1f", + "step": 0, "type": "color" }, "activeOccurrence": { - "value": "#393939", - "step": 700, + "value": "#ffffff29", + "step": 0, "type": "color" }, "matchingBracket": { - "value": "#0e0e0e", - "step": 850, + "value": "#ffffff1f", + "step": 0, "type": "color" }, "match": { - "value": "#0a2633", - "step": 900, + "value": "#1096d329", + "step": 500, "type": "color" }, "activeMatch": { - "value": "#0e4158", + "value": "#0e415852", "step": 800, "type": "color" }, @@ -391,8 +391,8 @@ }, "gutter": { "primary": { - "value": "#636363", - "step": 550, + "value": "#474747", + "step": 650, "type": "color" }, "active": { @@ -465,13 +465,13 @@ "type": "color" }, "selectionColor": { - "value": "#103063", - "step": 800, + "value": "#2472f23d", + "step": 500, "type": "color" }, "borderColor": { - "value": "#103063", - "step": 800, + "value": "#2472f2cc", + "step": 500, "type": "color" } }, @@ -487,34 +487,34 @@ "type": "color" }, "selectionColor": { - "value": "#38530f", - "step": 800, + "value": "#79ba163d", + "step": 500, "type": "color" }, "borderColor": { - "value": "#79ba16", + "value": "#79ba16cc", "step": 500, "type": "color" } }, "3": { "baseColor": { - "value": "#484bed", + "value": "#d430e0", "step": 500, "type": "color" }, "cursorColor": { - "value": "#484bed", + "value": "#d430e0", "step": 500, "type": "color" }, "selectionColor": { - "value": "#121269", - "step": 800, + "value": "#d430e03d", + "step": 500, "type": "color" }, "borderColor": { - "value": "#484bed", + "value": "#d430e0cc", "step": 500, "type": "color" } @@ -531,12 +531,12 @@ "type": "color" }, "selectionColor": { - "value": "#5d2f0e", - "step": 800, + "value": "#ee670a3d", + "step": 500, "type": "color" }, "borderColor": { - "value": "#ee670a", + "value": "#ee670acc", "step": 500, "type": "color" } @@ -553,12 +553,12 @@ "type": "color" }, "selectionColor": { - "value": "#3e1169", - "step": 800, + "value": "#993bf33d", + "step": 500, "type": "color" }, "borderColor": { - "value": "#993bf3", + "value": "#993bf3cc", "step": 500, "type": "color" } @@ -575,12 +575,12 @@ "type": "color" }, "selectionColor": { - "value": "#0e4f48", - "step": 800, + "value": "#16d6c13d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#16d6c1", + "value": "#16d6c1cc", "step": 400, "type": "color" } @@ -597,12 +597,12 @@ "type": "color" }, "selectionColor": { - "value": "#fbc6e1", - "step": 100, + "value": "#ef59a33d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#ef59a3", + "value": "#ef59a3cc", "step": 400, "type": "color" } @@ -619,12 +619,12 @@ "type": "color" }, "selectionColor": { - "value": "#fce9b7", - "step": 100, + "value": "#f7bf173d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#f7bf17", + "value": "#f7bf17cc", "step": 400, "type": "color" } diff --git a/styles/src/figma/light.json b/styles/dist/light.json similarity index 80% rename from styles/src/figma/light.json rename to styles/dist/light.json index f4ed9e74013880772816eac62e9d934eb607c6c6..90fba12ac762cdaa47e7b77b6360f5df8a9319e7 100644 --- a/styles/src/figma/light.json +++ b/styles/dist/light.json @@ -9,18 +9,18 @@ "type": "color" }, "secondary": { - "value": "#555555", - "step": 600, + "value": "#474747", + "step": 650, "type": "color" }, "muted": { - "value": "#808080", - "step": 450, + "value": "#636363", + "step": 550, "type": "color" }, "placeholder": { - "value": "#aaaaaa", - "step": 300, + "value": "#808080", + "step": 450, "type": "color" }, "active": { @@ -29,7 +29,7 @@ "type": "color" }, "feature": { - "value": "#2472f2", + "value": "#484bed", "step": 500, "type": "color" }, @@ -56,8 +56,8 @@ }, "icon": { "primary": { - "value": "#aaaaaa", - "step": 300, + "value": "#393939", + "step": 700, "type": "color" }, "secondary": { @@ -66,13 +66,13 @@ "type": "color" }, "muted": { - "value": "#555555", - "step": 600, + "value": "#9c9c9c", + "step": 350, "type": "color" }, "placeholder": { - "value": "#393939", - "step": 700, + "value": "#aaaaaa", + "step": 300, "type": "color" }, "active": { @@ -81,8 +81,8 @@ "type": "color" }, "feature": { - "value": "#1179a8", - "step": 600, + "value": "#484bed", + "step": 500, "type": "color" }, "ok": { @@ -109,45 +109,45 @@ "background": { "100": { "base": { - "value": "#e3e3e3", - "step": 100, + "value": "#eaeaea", + "step": 75, "type": "color" }, "hovered": { - "value": "#d5d5d5", - "step": 150, + "value": "#e3e3e3", + "step": 100, "type": "color" }, "active": { - "value": "#c6c6c6", - "step": 200, + "value": "#d5d5d5", + "step": 150, "type": "color" }, "focused": { - "value": "#d5d5d5", - "step": 150, + "value": "#e3e3e3", + "step": 100, "type": "color" } }, "300": { "base": { - "value": "#f1f1f1", - "step": 50, + "value": "#f8f8f8", + "step": 25, "type": "color" }, "hovered": { - "value": "#e3e3e3", - "step": 100, + "value": "#eaeaea", + "step": 75, "type": "color" }, "active": { - "value": "#d5d5d5", - "step": 150, + "value": "#dcdcdc", + "step": 125, "type": "color" }, "focused": { - "value": "#e3e3e3", - "step": 100, + "value": "#eaeaea", + "step": 75, "type": "color" } }, @@ -158,18 +158,18 @@ "type": "color" }, "hovered": { - "value": "#f8f8f8", - "step": 25, + "value": "#00000008", + "step": 900, "type": "color" }, "active": { - "value": "#f1f1f1", - "step": 50, + "value": "#0000000f", + "step": 900, "type": "color" }, "focused": { - "value": "#eaeaea", - "step": 75, + "value": "#f1f1f1", + "step": 50, "type": "color" } }, @@ -264,18 +264,18 @@ }, "border": { "primary": { - "value": "#c6c6c6", - "step": 200, + "value": "#d5d5d5", + "step": 150, "type": "color" }, "secondary": { - "value": "#e3e3e3", - "step": 100, + "value": "#d5d5d5", + "step": 150, "type": "color" }, "muted": { - "value": "#f1f1f1", - "step": 50, + "value": "#e3e3e3", + "step": 100, "type": "color" }, "focused": { @@ -316,24 +316,24 @@ "type": "color" }, "indent_guide": { - "value": "#f1f1f1", - "step": 50, + "value": "#e3e3e3", + "step": 100, "type": "color" }, "indent_guide_active": { - "value": "#e3e3e3", - "step": 100, + "value": "#d5d5d5", + "step": 150, "type": "color" }, "line": { "active": { - "value": "#f1f1f1", - "step": 50, + "value": "#0000000f", + "step": 900, "type": "color" }, "highlighted": { - "value": "#f1f1f1", - "step": 50, + "value": "#0000001f", + "step": 900, "type": "color" }, "inserted": { @@ -354,18 +354,18 @@ }, "highlight": { "selection": { - "value": "#c5dafc", - "step": 100, + "value": "#2472f23d", + "step": 500, "type": "color" }, "occurrence": { - "value": "#f1f1f1", - "step": 50, + "value": "#0000000f", + "step": 900, "type": "color" }, "activeOccurrence": { - "value": "#ffffff", - "step": 0, + "value": "#00000029", + "step": 900, "type": "color" }, "matchingBracket": { @@ -374,13 +374,13 @@ "type": "color" }, "match": { - "value": "#ffffff", - "step": 0, + "value": "#eb2d2d33", + "step": 500, "type": "color" }, "activeMatch": { - "value": "#ffffff", - "step": 0, + "value": "#7274f35c", + "step": 400, "type": "color" }, "related": { @@ -404,59 +404,59 @@ }, "syntax": { "primary": { - "value": "#2b2b2b", + "value": "#1c1c1c", "type": "color" }, "comment": { - "value": "#555555", + "value": "#717171", "type": "color" }, "keyword": { - "value": "#103063", + "value": "#1819a1", "type": "color" }, "function": { - "value": "#1b9447", + "value": "#f9812e", "type": "color" }, "type": { - "value": "#138a7d", + "value": "#de900c", "type": "color" }, "variant": { - "value": "#1179a8", + "value": "#1096d3", "type": "color" }, "property": { - "value": "#134697", + "value": "#118a62", "type": "color" }, "enum": { - "value": "#bb550e", + "value": "#eb2d2d", "type": "color" }, "operator": { - "value": "#bb550e", + "value": "#eb2d2d", "type": "color" }, "string": { - "value": "#bb550e", + "value": "#eb2d2d", "type": "color" }, "number": { - "value": "#14a898", + "value": "#484bed", "type": "color" }, "boolean": { - "value": "#b0740f", + "value": "#eb2d2d", "type": "color" } }, "player": { "1": { "baseColor": { - "value": "#135acd", - "step": 600, + "value": "#2472f2", + "step": 500, "type": "color" }, "cursorColor": { @@ -465,101 +465,101 @@ "type": "color" }, "selectionColor": { - "value": "#c5dafc", - "step": 100, + "value": "#2472f23d", + "step": 500, "type": "color" }, "borderColor": { - "value": "#2472f2", + "value": "#2472f2cc", "step": 500, "type": "color" } }, "2": { "baseColor": { - "value": "#79ba16", - "step": 500, + "value": "#12d796", + "step": 400, "type": "color" }, "cursorColor": { - "value": "#79ba16", - "step": 500, + "value": "#12d796", + "step": 400, "type": "color" }, "selectionColor": { - "value": "#dffab5", - "step": 100, + "value": "#12d7963d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#79ba16", - "step": 500, + "value": "#12d796cc", + "step": 400, "type": "color" } }, "3": { "baseColor": { - "value": "#484bed", - "step": 500, + "value": "#de57e8", + "step": 400, "type": "color" }, "cursorColor": { - "value": "#484bed", - "step": 500, + "value": "#de57e8", + "step": 400, "type": "color" }, "selectionColor": { - "value": "#cdcdfc", - "step": 100, + "value": "#de57e83d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#484bed", - "step": 500, + "value": "#de57e8cc", + "step": 400, "type": "color" } }, "4": { "baseColor": { - "value": "#ee670a", - "step": 500, + "value": "#f9812e", + "step": 400, "type": "color" }, "cursorColor": { - "value": "#ee670a", - "step": 500, + "value": "#f9812e", + "step": 400, "type": "color" }, "selectionColor": { - "value": "#fcd6bd", - "step": 100, + "value": "#f9812e3d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#ee670a", - "step": 500, + "value": "#f9812ecc", + "step": 400, "type": "color" } }, "5": { "baseColor": { - "value": "#993bf3", - "step": 500, + "value": "#b066f8", + "step": 400, "type": "color" }, "cursorColor": { - "value": "#993bf3", - "step": 500, + "value": "#b066f8", + "step": 400, "type": "color" }, "selectionColor": { - "value": "#e4cbfc", - "step": 100, + "value": "#b066f83d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#993bf3", - "step": 500, + "value": "#b066f8cc", + "step": 400, "type": "color" } }, @@ -575,12 +575,12 @@ "type": "color" }, "selectionColor": { - "value": "#b1faf2", - "step": 100, + "value": "#16d6c13d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#16d6c1", + "value": "#16d6c1cc", "step": 400, "type": "color" } @@ -597,12 +597,12 @@ "type": "color" }, "selectionColor": { - "value": "#fbc6e1", - "step": 100, + "value": "#ef59a33d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#ef59a3", + "value": "#ef59a3cc", "step": 400, "type": "color" } @@ -619,12 +619,12 @@ "type": "color" }, "selectionColor": { - "value": "#fce9b7", - "step": 100, + "value": "#f7bf173d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#f7bf17", + "value": "#f7bf17cc", "step": 400, "type": "color" } diff --git a/styles/src/figma/tokens.json b/styles/dist/tokens.json similarity index 92% rename from styles/src/figma/tokens.json rename to styles/dist/tokens.json index 79f3737ef6dea28f3e7cb823f1f2a42f129ee571..29d9daeec3c2cd007a6b1eb6ae9d8173057cbd15 100644 --- a/styles/src/figma/tokens.json +++ b/styles/dist/tokens.json @@ -1170,13 +1170,13 @@ "type": "color" }, "muted": { - "value": "#636363", - "step": 550, + "value": "#808080", + "step": 450, "type": "color" }, "placeholder": { - "value": "#2b2b2b", - "step": 750, + "value": "#474747", + "step": 650, "type": "color" }, "active": { @@ -1237,7 +1237,7 @@ "type": "color" }, "feature": { - "value": "#1096d3", + "value": "#2472f2", "step": 500, "type": "color" }, @@ -1275,8 +1275,8 @@ "type": "color" }, "active": { - "value": "#393939", - "step": 700, + "value": "#1c1c1c", + "step": 800, "type": "color" }, "focused": { @@ -1302,8 +1302,8 @@ "type": "color" }, "focused": { - "value": "#323232", - "step": 725, + "value": "#232323", + "step": 775, "type": "color" } }, @@ -1314,13 +1314,13 @@ "type": "color" }, "hovered": { - "value": "#070707", - "step": 875, + "value": "#ffffff14", + "step": 0, "type": "color" }, "active": { - "value": "#0e0e0e", - "step": 850, + "value": "#ffffff1f", + "step": 0, "type": "color" }, "focused": { @@ -1425,13 +1425,13 @@ "type": "color" }, "secondary": { - "value": "#151515", - "step": 825, + "value": "#232323", + "step": 775, "type": "color" }, "muted": { - "value": "#232323", - "step": 775, + "value": "#404040", + "step": 675, "type": "color" }, "focused": { @@ -1472,24 +1472,24 @@ "type": "color" }, "indent_guide": { - "value": "#232323", - "step": 775, + "value": "#404040", + "step": 675, "type": "color" }, "indent_guide_active": { - "value": "#151515", - "step": 825, + "value": "#232323", + "step": 775, "type": "color" }, "line": { "active": { - "value": "#0e0e0e", - "step": 850, + "value": "#ffffff12", + "step": 0, "type": "color" }, "highlighted": { - "value": "#070707", - "step": 875, + "value": "#ffffff1f", + "step": 0, "type": "color" }, "inserted": { @@ -1510,32 +1510,32 @@ }, "highlight": { "selection": { - "value": "#103063", - "step": 800, + "value": "#2472f23d", + "step": 500, "type": "color" }, "occurrence": { - "value": "#2b2b2b", - "step": 750, + "value": "#ffffff1f", + "step": 0, "type": "color" }, "activeOccurrence": { - "value": "#393939", - "step": 700, + "value": "#ffffff29", + "step": 0, "type": "color" }, "matchingBracket": { - "value": "#0e0e0e", - "step": 850, + "value": "#ffffff1f", + "step": 0, "type": "color" }, "match": { - "value": "#0a2633", - "step": 900, + "value": "#1096d329", + "step": 500, "type": "color" }, "activeMatch": { - "value": "#0e4158", + "value": "#0e415852", "step": 800, "type": "color" }, @@ -1547,8 +1547,8 @@ }, "gutter": { "primary": { - "value": "#636363", - "step": 550, + "value": "#474747", + "step": 650, "type": "color" }, "active": { @@ -1621,13 +1621,13 @@ "type": "color" }, "selectionColor": { - "value": "#103063", - "step": 800, + "value": "#2472f23d", + "step": 500, "type": "color" }, "borderColor": { - "value": "#103063", - "step": 800, + "value": "#2472f2cc", + "step": 500, "type": "color" } }, @@ -1643,34 +1643,34 @@ "type": "color" }, "selectionColor": { - "value": "#38530f", - "step": 800, + "value": "#79ba163d", + "step": 500, "type": "color" }, "borderColor": { - "value": "#79ba16", + "value": "#79ba16cc", "step": 500, "type": "color" } }, "3": { "baseColor": { - "value": "#484bed", + "value": "#d430e0", "step": 500, "type": "color" }, "cursorColor": { - "value": "#484bed", + "value": "#d430e0", "step": 500, "type": "color" }, "selectionColor": { - "value": "#121269", - "step": 800, + "value": "#d430e03d", + "step": 500, "type": "color" }, "borderColor": { - "value": "#484bed", + "value": "#d430e0cc", "step": 500, "type": "color" } @@ -1687,12 +1687,12 @@ "type": "color" }, "selectionColor": { - "value": "#5d2f0e", - "step": 800, + "value": "#ee670a3d", + "step": 500, "type": "color" }, "borderColor": { - "value": "#ee670a", + "value": "#ee670acc", "step": 500, "type": "color" } @@ -1709,12 +1709,12 @@ "type": "color" }, "selectionColor": { - "value": "#3e1169", - "step": 800, + "value": "#993bf33d", + "step": 500, "type": "color" }, "borderColor": { - "value": "#993bf3", + "value": "#993bf3cc", "step": 500, "type": "color" } @@ -1731,12 +1731,12 @@ "type": "color" }, "selectionColor": { - "value": "#0e4f48", - "step": 800, + "value": "#16d6c13d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#16d6c1", + "value": "#16d6c1cc", "step": 400, "type": "color" } @@ -1753,12 +1753,12 @@ "type": "color" }, "selectionColor": { - "value": "#fbc6e1", - "step": 100, + "value": "#ef59a33d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#ef59a3", + "value": "#ef59a3cc", "step": 400, "type": "color" } @@ -1775,12 +1775,12 @@ "type": "color" }, "selectionColor": { - "value": "#fce9b7", - "step": 100, + "value": "#f7bf173d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#f7bf17", + "value": "#f7bf17cc", "step": 400, "type": "color" } @@ -1802,18 +1802,18 @@ "type": "color" }, "secondary": { - "value": "#555555", - "step": 600, + "value": "#474747", + "step": 650, "type": "color" }, "muted": { - "value": "#808080", - "step": 450, + "value": "#636363", + "step": 550, "type": "color" }, "placeholder": { - "value": "#aaaaaa", - "step": 300, + "value": "#808080", + "step": 450, "type": "color" }, "active": { @@ -1822,7 +1822,7 @@ "type": "color" }, "feature": { - "value": "#2472f2", + "value": "#484bed", "step": 500, "type": "color" }, @@ -1849,8 +1849,8 @@ }, "icon": { "primary": { - "value": "#aaaaaa", - "step": 300, + "value": "#393939", + "step": 700, "type": "color" }, "secondary": { @@ -1859,13 +1859,13 @@ "type": "color" }, "muted": { - "value": "#555555", - "step": 600, + "value": "#9c9c9c", + "step": 350, "type": "color" }, "placeholder": { - "value": "#393939", - "step": 700, + "value": "#aaaaaa", + "step": 300, "type": "color" }, "active": { @@ -1874,8 +1874,8 @@ "type": "color" }, "feature": { - "value": "#1179a8", - "step": 600, + "value": "#484bed", + "step": 500, "type": "color" }, "ok": { @@ -1902,45 +1902,45 @@ "background": { "100": { "base": { - "value": "#e3e3e3", - "step": 100, + "value": "#eaeaea", + "step": 75, "type": "color" }, "hovered": { - "value": "#d5d5d5", - "step": 150, + "value": "#e3e3e3", + "step": 100, "type": "color" }, "active": { - "value": "#c6c6c6", - "step": 200, + "value": "#d5d5d5", + "step": 150, "type": "color" }, "focused": { - "value": "#d5d5d5", - "step": 150, + "value": "#e3e3e3", + "step": 100, "type": "color" } }, "300": { "base": { - "value": "#f1f1f1", - "step": 50, + "value": "#f8f8f8", + "step": 25, "type": "color" }, "hovered": { - "value": "#e3e3e3", - "step": 100, + "value": "#eaeaea", + "step": 75, "type": "color" }, "active": { - "value": "#d5d5d5", - "step": 150, + "value": "#dcdcdc", + "step": 125, "type": "color" }, "focused": { - "value": "#e3e3e3", - "step": 100, + "value": "#eaeaea", + "step": 75, "type": "color" } }, @@ -1951,18 +1951,18 @@ "type": "color" }, "hovered": { - "value": "#f8f8f8", - "step": 25, + "value": "#00000008", + "step": 900, "type": "color" }, "active": { - "value": "#f1f1f1", - "step": 50, + "value": "#0000000f", + "step": 900, "type": "color" }, "focused": { - "value": "#eaeaea", - "step": 75, + "value": "#f1f1f1", + "step": 50, "type": "color" } }, @@ -2057,18 +2057,18 @@ }, "border": { "primary": { - "value": "#c6c6c6", - "step": 200, + "value": "#d5d5d5", + "step": 150, "type": "color" }, "secondary": { - "value": "#e3e3e3", - "step": 100, + "value": "#d5d5d5", + "step": 150, "type": "color" }, "muted": { - "value": "#f1f1f1", - "step": 50, + "value": "#e3e3e3", + "step": 100, "type": "color" }, "focused": { @@ -2109,24 +2109,24 @@ "type": "color" }, "indent_guide": { - "value": "#f1f1f1", - "step": 50, + "value": "#e3e3e3", + "step": 100, "type": "color" }, "indent_guide_active": { - "value": "#e3e3e3", - "step": 100, + "value": "#d5d5d5", + "step": 150, "type": "color" }, "line": { "active": { - "value": "#f1f1f1", - "step": 50, + "value": "#0000000f", + "step": 900, "type": "color" }, "highlighted": { - "value": "#f1f1f1", - "step": 50, + "value": "#0000001f", + "step": 900, "type": "color" }, "inserted": { @@ -2147,18 +2147,18 @@ }, "highlight": { "selection": { - "value": "#c5dafc", - "step": 100, + "value": "#2472f23d", + "step": 500, "type": "color" }, "occurrence": { - "value": "#f1f1f1", - "step": 50, + "value": "#0000000f", + "step": 900, "type": "color" }, "activeOccurrence": { - "value": "#ffffff", - "step": 0, + "value": "#00000029", + "step": 900, "type": "color" }, "matchingBracket": { @@ -2167,13 +2167,13 @@ "type": "color" }, "match": { - "value": "#ffffff", - "step": 0, + "value": "#eb2d2d33", + "step": 500, "type": "color" }, "activeMatch": { - "value": "#ffffff", - "step": 0, + "value": "#7274f35c", + "step": 400, "type": "color" }, "related": { @@ -2197,59 +2197,59 @@ }, "syntax": { "primary": { - "value": "#2b2b2b", + "value": "#1c1c1c", "type": "color" }, "comment": { - "value": "#555555", + "value": "#717171", "type": "color" }, "keyword": { - "value": "#103063", + "value": "#1819a1", "type": "color" }, "function": { - "value": "#1b9447", + "value": "#f9812e", "type": "color" }, "type": { - "value": "#138a7d", + "value": "#de900c", "type": "color" }, "variant": { - "value": "#1179a8", + "value": "#1096d3", "type": "color" }, "property": { - "value": "#134697", + "value": "#118a62", "type": "color" }, "enum": { - "value": "#bb550e", + "value": "#eb2d2d", "type": "color" }, "operator": { - "value": "#bb550e", + "value": "#eb2d2d", "type": "color" }, "string": { - "value": "#bb550e", + "value": "#eb2d2d", "type": "color" }, "number": { - "value": "#14a898", + "value": "#484bed", "type": "color" }, "boolean": { - "value": "#b0740f", + "value": "#eb2d2d", "type": "color" } }, "player": { "1": { "baseColor": { - "value": "#135acd", - "step": 600, + "value": "#2472f2", + "step": 500, "type": "color" }, "cursorColor": { @@ -2258,101 +2258,101 @@ "type": "color" }, "selectionColor": { - "value": "#c5dafc", - "step": 100, + "value": "#2472f23d", + "step": 500, "type": "color" }, "borderColor": { - "value": "#2472f2", + "value": "#2472f2cc", "step": 500, "type": "color" } }, "2": { "baseColor": { - "value": "#79ba16", - "step": 500, + "value": "#12d796", + "step": 400, "type": "color" }, "cursorColor": { - "value": "#79ba16", - "step": 500, + "value": "#12d796", + "step": 400, "type": "color" }, "selectionColor": { - "value": "#dffab5", - "step": 100, + "value": "#12d7963d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#79ba16", - "step": 500, + "value": "#12d796cc", + "step": 400, "type": "color" } }, "3": { "baseColor": { - "value": "#484bed", - "step": 500, + "value": "#de57e8", + "step": 400, "type": "color" }, "cursorColor": { - "value": "#484bed", - "step": 500, + "value": "#de57e8", + "step": 400, "type": "color" }, "selectionColor": { - "value": "#cdcdfc", - "step": 100, + "value": "#de57e83d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#484bed", - "step": 500, + "value": "#de57e8cc", + "step": 400, "type": "color" } }, "4": { "baseColor": { - "value": "#ee670a", - "step": 500, + "value": "#f9812e", + "step": 400, "type": "color" }, "cursorColor": { - "value": "#ee670a", - "step": 500, + "value": "#f9812e", + "step": 400, "type": "color" }, "selectionColor": { - "value": "#fcd6bd", - "step": 100, + "value": "#f9812e3d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#ee670a", - "step": 500, + "value": "#f9812ecc", + "step": 400, "type": "color" } }, "5": { "baseColor": { - "value": "#993bf3", - "step": 500, + "value": "#b066f8", + "step": 400, "type": "color" }, "cursorColor": { - "value": "#993bf3", - "step": 500, + "value": "#b066f8", + "step": 400, "type": "color" }, "selectionColor": { - "value": "#e4cbfc", - "step": 100, + "value": "#b066f83d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#993bf3", - "step": 500, + "value": "#b066f8cc", + "step": 400, "type": "color" } }, @@ -2368,12 +2368,12 @@ "type": "color" }, "selectionColor": { - "value": "#b1faf2", - "step": 100, + "value": "#16d6c13d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#16d6c1", + "value": "#16d6c1cc", "step": 400, "type": "color" } @@ -2390,12 +2390,12 @@ "type": "color" }, "selectionColor": { - "value": "#fbc6e1", - "step": 100, + "value": "#ef59a33d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#ef59a3", + "value": "#ef59a3cc", "step": 400, "type": "color" } @@ -2412,12 +2412,12 @@ "type": "color" }, "selectionColor": { - "value": "#fce9b7", - "step": 100, + "value": "#f7bf173d", + "step": 400, "type": "color" }, "borderColor": { - "value": "#f7bf17", + "value": "#f7bf17cc", "step": 400, "type": "color" } diff --git a/styles/package-lock.json b/styles/package-lock.json index ade0a53052268990346f470de96522408fea5fd5..63bf3d5a574fb810605841c940ef2b0db445dab4 100644 --- a/styles/package-lock.json +++ b/styles/package-lock.json @@ -12,9 +12,7 @@ "@types/chroma-js": "^2.1.3", "@types/node": "^17.0.23", "case-anything": "^2.1.10", - "chroma-js": "^2.4.2" - }, - "devDependencies": { + "chroma-js": "^2.4.2", "nodemon": "^2.0.15", "ts-node": "^10.7.0" } @@ -23,7 +21,6 @@ "version": "0.8.0", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "dev": true, "engines": { "node": ">= 12" } @@ -32,7 +29,6 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", - "dev": true, "dependencies": { "@cspotcode/source-map-consumer": "0.8.0" }, @@ -44,7 +40,6 @@ "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, "engines": { "node": ">=6" } @@ -53,7 +48,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, "dependencies": { "defer-to-connect": "^1.0.1" }, @@ -64,26 +58,22 @@ "node_modules/@tsconfig/node10": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" }, "node_modules/@tsconfig/node12": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" }, "node_modules/@tsconfig/node14": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" }, "node_modules/@tsconfig/node16": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" }, "node_modules/@types/chroma-js": { "version": "2.1.3", @@ -98,14 +88,12 @@ "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "node_modules/acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -117,7 +105,6 @@ "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, "engines": { "node": ">=0.4.0" } @@ -126,7 +113,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, "dependencies": { "string-width": "^4.1.0" } @@ -135,7 +121,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -144,7 +129,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -159,7 +143,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -171,20 +154,17 @@ "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, "engines": { "node": ">=8" } @@ -193,7 +173,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, "dependencies": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -215,7 +194,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -225,7 +203,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -237,7 +214,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -255,7 +231,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, "dependencies": { "pump": "^3.0.0" }, @@ -270,7 +245,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, "engines": { "node": ">=8" } @@ -279,7 +253,6 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, "engines": { "node": ">=10" }, @@ -302,7 +275,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -318,7 +290,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -327,7 +298,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -339,7 +309,6 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, "funding": [ { "type": "individual", @@ -370,14 +339,12 @@ "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" }, "node_modules/cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true, "engines": { "node": ">=6" }, @@ -389,7 +356,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, "dependencies": { "mimic-response": "^1.0.0" } @@ -398,7 +364,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -409,20 +374,17 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "node_modules/configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, "dependencies": { "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", @@ -438,14 +400,12 @@ "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" }, "node_modules/crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, "engines": { "node": ">=8" } @@ -454,7 +414,6 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, "dependencies": { "ms": "^2.1.1" } @@ -463,7 +422,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, "dependencies": { "mimic-response": "^1.0.0" }, @@ -475,7 +433,6 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, "engines": { "node": ">=4.0.0" } @@ -483,14 +440,12 @@ "node_modules/defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, "engines": { "node": ">=0.3.1" } @@ -499,7 +454,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, "dependencies": { "is-obj": "^2.0.0" }, @@ -510,20 +464,17 @@ "node_modules/duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "dependencies": { "once": "^1.4.0" } @@ -532,7 +483,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true, "engines": { "node": ">=8" } @@ -541,7 +491,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -553,7 +502,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -567,7 +515,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, "dependencies": { "pump": "^3.0.0" }, @@ -579,7 +526,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -591,7 +537,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, "dependencies": { "ini": "2.0.0" }, @@ -606,7 +551,6 @@ "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, "dependencies": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -627,14 +571,12 @@ "node_modules/graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "dev": true + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, "engines": { "node": ">=4" } @@ -643,7 +585,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true, "engines": { "node": ">=8" } @@ -651,20 +592,17 @@ "node_modules/http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" }, "node_modules/import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true, "engines": { "node": ">=4" } @@ -673,7 +611,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, "engines": { "node": ">=0.8.19" } @@ -682,7 +619,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, "engines": { "node": ">=10" } @@ -691,7 +627,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -703,7 +638,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, "dependencies": { "ci-info": "^2.0.0" }, @@ -715,7 +649,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -724,7 +657,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -733,7 +665,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -745,7 +676,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -761,7 +691,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true, "engines": { "node": ">=10" }, @@ -773,7 +702,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -782,7 +710,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, "engines": { "node": ">=8" } @@ -791,7 +718,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -799,26 +725,22 @@ "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "node_modules/is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" }, "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, "node_modules/keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, "dependencies": { "json-buffer": "3.0.0" } @@ -827,7 +749,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, "dependencies": { "package-json": "^6.3.0" }, @@ -839,7 +760,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -848,7 +768,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -860,7 +779,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, "dependencies": { "semver": "^6.0.0" }, @@ -875,7 +793,6 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -883,14 +800,12 @@ "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" }, "node_modules/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, "engines": { "node": ">=4" } @@ -899,7 +814,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -910,20 +824,17 @@ "node_modules/minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/nodemon": { "version": "2.0.15", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", - "dev": true, "hasInstallScript": true, "dependencies": { "chokidar": "^3.5.2", @@ -952,7 +863,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, "dependencies": { "abbrev": "1" }, @@ -967,7 +877,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -976,7 +885,6 @@ "version": "4.5.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true, "engines": { "node": ">=8" } @@ -985,7 +893,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "dependencies": { "wrappy": "1" } @@ -994,7 +901,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, "engines": { "node": ">=6" } @@ -1003,7 +909,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, "dependencies": { "got": "^9.6.0", "registry-auth-token": "^4.0.0", @@ -1018,7 +923,6 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -1027,7 +931,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -1039,7 +942,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, "engines": { "node": ">=4" } @@ -1047,14 +949,12 @@ "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -1064,7 +964,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, "dependencies": { "escape-goat": "^2.0.0" }, @@ -1076,7 +975,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -1090,14 +988,12 @@ "node_modules/rc/node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -1109,7 +1005,6 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, "dependencies": { "rc": "^1.2.8" }, @@ -1121,7 +1016,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, "dependencies": { "rc": "^1.2.8" }, @@ -1133,7 +1027,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, "dependencies": { "lowercase-keys": "^1.0.0" } @@ -1142,7 +1035,6 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, "bin": { "semver": "bin/semver" } @@ -1151,7 +1043,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, "dependencies": { "semver": "^6.3.0" }, @@ -1163,7 +1054,6 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -1171,14 +1061,12 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -1192,7 +1080,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -1204,7 +1091,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -1213,7 +1099,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -1225,7 +1110,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, "engines": { "node": ">=6" } @@ -1234,7 +1118,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -1246,7 +1129,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, "dependencies": { "nopt": "~1.0.10" }, @@ -1258,7 +1140,6 @@ "version": "10.7.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", - "dev": true, "dependencies": { "@cspotcode/source-map-support": "0.7.0", "@tsconfig/node10": "^1.0.7", @@ -1301,7 +1182,6 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "engines": { "node": ">=10" }, @@ -1313,7 +1193,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, "dependencies": { "is-typedarray": "^1.0.0" } @@ -1322,7 +1201,6 @@ "version": "4.6.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", - "dev": true, "peer": true, "bin": { "tsc": "bin/tsc", @@ -1335,14 +1213,12 @@ "node_modules/undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, "dependencies": { "crypto-random-string": "^2.0.0" }, @@ -1354,7 +1230,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, "dependencies": { "boxen": "^5.0.0", "chalk": "^4.1.0", @@ -1382,7 +1257,6 @@ "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -1397,7 +1271,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, "dependencies": { "prepend-http": "^2.0.0" }, @@ -1408,14 +1281,12 @@ "node_modules/v8-compile-cache-lib": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", - "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", - "dev": true + "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==" }, "node_modules/widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, "dependencies": { "string-width": "^4.0.0" }, @@ -1427,7 +1298,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -1443,14 +1313,12 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -1462,7 +1330,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, "engines": { "node": ">=8" } @@ -1470,14 +1337,12 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, "engines": { "node": ">=6" } @@ -1487,14 +1352,12 @@ "@cspotcode/source-map-consumer": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "dev": true + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==" }, "@cspotcode/source-map-support": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", - "dev": true, "requires": { "@cspotcode/source-map-consumer": "0.8.0" } @@ -1502,14 +1365,12 @@ "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, "requires": { "defer-to-connect": "^1.0.1" } @@ -1517,26 +1378,22 @@ "@tsconfig/node10": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" }, "@tsconfig/node12": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" }, "@tsconfig/node14": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" }, "@tsconfig/node16": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" }, "@types/chroma-js": { "version": "2.1.3", @@ -1551,26 +1408,22 @@ "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" }, "acorn-walk": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" }, "ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, "requires": { "string-width": "^4.1.0" } @@ -1578,14 +1431,12 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -1594,7 +1445,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1603,26 +1453,22 @@ "arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" }, "boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, "requires": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -1638,7 +1484,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1648,7 +1493,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -1657,7 +1501,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -1672,7 +1515,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, "requires": { "pump": "^3.0.0" } @@ -1680,16 +1522,14 @@ "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" } } }, "camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" }, "case-anything": { "version": "2.1.10", @@ -1700,7 +1540,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1709,14 +1548,12 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -1727,7 +1564,6 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -1747,20 +1583,17 @@ "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" }, "cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -1769,7 +1602,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -1777,20 +1609,17 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, "requires": { "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", @@ -1803,20 +1632,17 @@ "create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" }, "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -1825,7 +1651,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -1833,26 +1658,22 @@ "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" }, "dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, "requires": { "is-obj": "^2.0.0" } @@ -1860,20 +1681,17 @@ "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } @@ -1881,14 +1699,12 @@ "escape-goat": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -1897,14 +1713,12 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "optional": true }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, "requires": { "pump": "^3.0.0" } @@ -1913,7 +1727,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -1922,7 +1735,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, "requires": { "ini": "2.0.0" } @@ -1931,7 +1743,6 @@ "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, "requires": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -1949,56 +1760,47 @@ "graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "dev": true + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "ini": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, "requires": { "binary-extensions": "^2.0.0" } @@ -2007,7 +1809,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, "requires": { "ci-info": "^2.0.0" } @@ -2015,20 +1816,17 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -2037,7 +1835,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, "requires": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -2046,50 +1843,42 @@ "is-npm": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==" }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, "requires": { "json-buffer": "3.0.0" } @@ -2098,7 +1887,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, "requires": { "package-json": "^6.3.0" } @@ -2106,14 +1894,12 @@ "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -2122,7 +1908,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, "requires": { "semver": "^6.0.0" }, @@ -2130,28 +1915,24 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2159,20 +1940,17 @@ "minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "nodemon": { "version": "2.0.15", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", - "dev": true, "requires": { "chokidar": "^3.5.2", "debug": "^3.2.7", @@ -2190,7 +1968,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, "requires": { "abbrev": "1" } @@ -2198,20 +1975,17 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "normalize-url": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -2219,14 +1993,12 @@ "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" }, "package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, "requires": { "got": "^9.6.0", "registry-auth-token": "^4.0.0", @@ -2237,34 +2009,29 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -2274,7 +2041,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, "requires": { "escape-goat": "^2.0.0" } @@ -2283,7 +2049,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -2294,8 +2059,7 @@ "ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" } } }, @@ -2303,7 +2067,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, "requires": { "picomatch": "^2.2.1" } @@ -2312,7 +2075,6 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, "requires": { "rc": "^1.2.8" } @@ -2321,7 +2083,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, "requires": { "rc": "^1.2.8" } @@ -2330,7 +2091,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, "requires": { "lowercase-keys": "^1.0.0" } @@ -2338,14 +2098,12 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "semver-diff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, "requires": { "semver": "^6.3.0" }, @@ -2353,22 +2111,19 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2379,7 +2134,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "requires": { "ansi-regex": "^5.0.1" } @@ -2387,14 +2141,12 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -2402,14 +2154,12 @@ "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -2418,7 +2168,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, "requires": { "nopt": "~1.0.10" } @@ -2427,7 +2176,6 @@ "version": "10.7.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", - "dev": true, "requires": { "@cspotcode/source-map-support": "0.7.0", "@tsconfig/node10": "^1.0.7", @@ -2447,14 +2195,12 @@ "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, "requires": { "is-typedarray": "^1.0.0" } @@ -2463,20 +2209,17 @@ "version": "4.6.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", - "dev": true, "peer": true }, "undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, "requires": { "crypto-random-string": "^2.0.0" } @@ -2485,7 +2228,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, "requires": { "boxen": "^5.0.0", "chalk": "^4.1.0", @@ -2507,7 +2249,6 @@ "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, "requires": { "lru-cache": "^6.0.0" } @@ -2518,7 +2259,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, "requires": { "prepend-http": "^2.0.0" } @@ -2526,14 +2266,12 @@ "v8-compile-cache-lib": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", - "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", - "dev": true + "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==" }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, "requires": { "string-width": "^4.0.0" } @@ -2542,7 +2280,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -2552,14 +2289,12 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, "requires": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -2570,20 +2305,17 @@ "xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" } } } diff --git a/styles/package.json b/styles/package.json index e11cb6108499c2ca4c4383caad9551f3ab98f581..727300e2cce7c5a2db01696a968cf32ba7f0f41b 100644 --- a/styles/package.json +++ b/styles/package.json @@ -4,8 +4,9 @@ "description": "", "main": "index.js", "scripts": { + "build": "npm run build-themes && npm run build-tokens", "build-themes": "ts-node ./src/buildThemes.ts", - "build-figma": "ts-node ./src/buildFigmaTokens.ts", + "build-tokens": "ts-node ./src/buildTokens.ts", "watch": "nodemon" }, "author": "", diff --git a/styles/src/buildThemes.ts b/styles/src/buildThemes.ts index 8772b5fee2926739d6f6bb809ef3b7b3fc67fe7f..42770c1c89194749e4619b75a1aa4886dad549b7 100644 --- a/styles/src/buildThemes.ts +++ b/styles/src/buildThemes.ts @@ -13,5 +13,5 @@ for (let theme of themes) { `${__dirname}/../../crates/zed/assets/themes/${theme.name}.json` ); fs.writeFileSync(outPath, styleTreeJSON); - console.log(`Generated ${outPath}`); + console.log(`- ${outPath} created`); } diff --git a/styles/src/buildFigmaTokens.ts b/styles/src/buildTokens.ts similarity index 68% rename from styles/src/buildFigmaTokens.ts rename to styles/src/buildTokens.ts index 70704088a43f8cdf583f4995b56ad43e1c852fb4..4cad6827a2876498b230fb6676adf2055e00715c 100644 --- a/styles/src/buildFigmaTokens.ts +++ b/styles/src/buildTokens.ts @@ -83,28 +83,28 @@ const coreTokens = { size: fontSizes, }; -const combinedTokens: any = { - core: coreTokens, -} +const combinedTokens: any = {}; + +const distPath = path.resolve(`${__dirname}/../dist`); -// Create core.json -const corePath = path.resolve(`${__dirname}/../dist/figma/core.json`); -const coreJSON = JSON.stringify(coreTokens, null, 2); -fs.writeFileSync(corePath, coreJSON); -console.log(`- Core: core.json created`); +// Add core tokens to the combined tokens and write `core.json`. +// We write `core.json` as a separate file for the design team's convenience, but it isn't consumed by Figma Tokens directly. +const corePath = path.join(distPath, "core.json"); +fs.writeFileSync(corePath, JSON.stringify(coreTokens, null, 2)); +console.log(`- ${corePath} created`); +combinedTokens.core = coreTokens; -// Create {theme}.json +// Add each theme to the combined tokens and write ${theme}.json. +// We write `${theme}.json` as a separate file for the design team's convenience, but it isn't consumed by Figma Tokens directly. let themes = [dark, light]; -const themePath = path.resolve(`${__dirname}/figma`); themes.forEach((theme) => { - const tokenJSON = JSON.stringify(themeTokens(theme), null, 2); - fs.writeFileSync(`${themePath}/${theme.name}.json`, tokenJSON); - console.log(`- Theme: ${theme.name}.json created`); + const themePath = `${distPath}/${theme.name}.json` + fs.writeFileSync(themePath, JSON.stringify(themeTokens(theme), null, 2)); + console.log(`- ${themePath} created`); combinedTokens[theme.name] = themeTokens(theme); }); -// Create combined tokens.json -const combinedPath = path.resolve(`${__dirname}/figma/tokens.json`); -const combinedJSON = JSON.stringify(combinedTokens, null, 2); -fs.writeFileSync(combinedPath, combinedJSON); -console.log(`- Combined: tokens.json created`); \ No newline at end of file +// Write combined tokens to `tokens.json`. This file is consumed by the Figma Tokens plugin to keep our designs consistent with the app. +const combinedPath = path.resolve(`${distPath}/tokens.json`); +fs.writeFileSync(combinedPath, JSON.stringify(combinedTokens, null, 2)); +console.log(`- ${combinedPath} created`); diff --git a/styles/src/figma/core.json b/styles/src/figma/core.json deleted file mode 100644 index b3e13f1c7a9f4e048bf7065278ebc1527c4a11cc..0000000000000000000000000000000000000000 --- a/styles/src/figma/core.json +++ /dev/null @@ -1,1155 +0,0 @@ -{ - "color": { - "neutral": { - "0": { - "value": "#ffffff", - "step": 0, - "type": "color" - }, - "25": { - "value": "#f8f8f8", - "step": 25, - "type": "color" - }, - "50": { - "value": "#f1f1f1", - "step": 50, - "type": "color" - }, - "75": { - "value": "#eaeaea", - "step": 75, - "type": "color" - }, - "100": { - "value": "#e3e3e3", - "step": 100, - "type": "color" - }, - "125": { - "value": "#dcdcdc", - "step": 125, - "type": "color" - }, - "150": { - "value": "#d5d5d5", - "step": 150, - "type": "color" - }, - "175": { - "value": "#cdcdcd", - "step": 175, - "type": "color" - }, - "200": { - "value": "#c6c6c6", - "step": 200, - "type": "color" - }, - "225": { - "value": "#bfbfbf", - "step": 225, - "type": "color" - }, - "250": { - "value": "#b8b8b8", - "step": 250, - "type": "color" - }, - "275": { - "value": "#b1b1b1", - "step": 275, - "type": "color" - }, - "300": { - "value": "#aaaaaa", - "step": 300, - "type": "color" - }, - "325": { - "value": "#a3a3a3", - "step": 325, - "type": "color" - }, - "350": { - "value": "#9c9c9c", - "step": 350, - "type": "color" - }, - "375": { - "value": "#959595", - "step": 375, - "type": "color" - }, - "400": { - "value": "#8e8e8e", - "step": 400, - "type": "color" - }, - "425": { - "value": "#878787", - "step": 425, - "type": "color" - }, - "450": { - "value": "#808080", - "step": 450, - "type": "color" - }, - "475": { - "value": "#787878", - "step": 475, - "type": "color" - }, - "500": { - "value": "#717171", - "step": 500, - "type": "color" - }, - "525": { - "value": "#6a6a6a", - "step": 525, - "type": "color" - }, - "550": { - "value": "#636363", - "step": 550, - "type": "color" - }, - "575": { - "value": "#5c5c5c", - "step": 575, - "type": "color" - }, - "600": { - "value": "#555555", - "step": 600, - "type": "color" - }, - "625": { - "value": "#4e4e4e", - "step": 625, - "type": "color" - }, - "650": { - "value": "#474747", - "step": 650, - "type": "color" - }, - "675": { - "value": "#404040", - "step": 675, - "type": "color" - }, - "700": { - "value": "#393939", - "step": 700, - "type": "color" - }, - "725": { - "value": "#323232", - "step": 725, - "type": "color" - }, - "750": { - "value": "#2b2b2b", - "step": 750, - "type": "color" - }, - "775": { - "value": "#232323", - "step": 775, - "type": "color" - }, - "800": { - "value": "#1c1c1c", - "step": 800, - "type": "color" - }, - "825": { - "value": "#151515", - "step": 825, - "type": "color" - }, - "850": { - "value": "#0e0e0e", - "step": 850, - "type": "color" - }, - "875": { - "value": "#070707", - "step": 875, - "type": "color" - }, - "900": { - "value": "#000000", - "step": 900, - "type": "color" - } - }, - "rose": { - "0": { - "value": "#feecef", - "step": 0, - "type": "color" - }, - "100": { - "value": "#fdd5db", - "step": 100, - "type": "color" - }, - "200": { - "value": "#fbbdc8", - "step": 200, - "type": "color" - }, - "300": { - "value": "#faa4b3", - "step": 300, - "type": "color" - }, - "400": { - "value": "#f98a9d", - "step": 400, - "type": "color" - }, - "500": { - "value": "#f76e86", - "step": 500, - "type": "color" - }, - "600": { - "value": "#f54c69", - "step": 600, - "type": "color" - }, - "700": { - "value": "#ec2548", - "step": 700, - "type": "color" - }, - "800": { - "value": "#d21939", - "step": 800, - "type": "color" - }, - "900": { - "value": "#b41a35", - "step": 900, - "type": "color" - } - }, - "red": { - "0": { - "value": "#feecec", - "step": 0, - "type": "color" - }, - "100": { - "value": "#fdd4d4", - "step": 100, - "type": "color" - }, - "200": { - "value": "#fbbdbd", - "step": 200, - "type": "color" - }, - "300": { - "value": "#f9a5a5", - "step": 300, - "type": "color" - }, - "400": { - "value": "#f78c8c", - "step": 400, - "type": "color" - }, - "500": { - "value": "#f47171", - "step": 500, - "type": "color" - }, - "600": { - "value": "#f15252", - "step": 600, - "type": "color" - }, - "700": { - "value": "#e82c2c", - "step": 700, - "type": "color" - }, - "800": { - "value": "#d11c1c", - "step": 800, - "type": "color" - }, - "900": { - "value": "#b21c1c", - "step": 900, - "type": "color" - } - }, - "orange": { - "0": { - "value": "#fef3ec", - "step": 0, - "type": "color" - }, - "100": { - "value": "#fde0cd", - "step": 100, - "type": "color" - }, - "200": { - "value": "#fbccac", - "step": 200, - "type": "color" - }, - "300": { - "value": "#fab78b", - "step": 300, - "type": "color" - }, - "400": { - "value": "#faa266", - "step": 400, - "type": "color" - }, - "500": { - "value": "#f98a3d", - "step": 500, - "type": "color" - }, - "600": { - "value": "#f77113", - "step": 600, - "type": "color" - }, - "700": { - "value": "#e0650f", - "step": 700, - "type": "color" - }, - "800": { - "value": "#c65d14", - "step": 800, - "type": "color" - }, - "900": { - "value": "#ac5517", - "step": 900, - "type": "color" - } - }, - "amber": { - "0": { - "value": "#fef7ec", - "step": 0, - "type": "color" - }, - "100": { - "value": "#fce7c4", - "step": 100, - "type": "color" - }, - "200": { - "value": "#fad69d", - "step": 200, - "type": "color" - }, - "300": { - "value": "#f8c570", - "step": 300, - "type": "color" - }, - "400": { - "value": "#f7b241", - "step": 400, - "type": "color" - }, - "500": { - "value": "#f59f0c", - "step": 500, - "type": "color" - }, - "600": { - "value": "#e1930e", - "step": 600, - "type": "color" - }, - "700": { - "value": "#cd8812", - "step": 700, - "type": "color" - }, - "800": { - "value": "#ba7d15", - "step": 800, - "type": "color" - }, - "900": { - "value": "#a77218", - "step": 900, - "type": "color" - } - }, - "yellow": { - "0": { - "value": "#fef9ec", - "step": 0, - "type": "color" - }, - "100": { - "value": "#fceabc", - "step": 100, - "type": "color" - }, - "200": { - "value": "#fadc89", - "step": 200, - "type": "color" - }, - "300": { - "value": "#f8cc4e", - "step": 300, - "type": "color" - }, - "400": { - "value": "#f6bc09", - "step": 400, - "type": "color" - }, - "500": { - "value": "#e5af09", - "step": 500, - "type": "color" - }, - "600": { - "value": "#d4a30d", - "step": 600, - "type": "color" - }, - "700": { - "value": "#c49811", - "step": 700, - "type": "color" - }, - "800": { - "value": "#b48d14", - "step": 800, - "type": "color" - }, - "900": { - "value": "#a48117", - "step": 900, - "type": "color" - } - }, - "lime": { - "0": { - "value": "#f7feec", - "step": 0, - "type": "color" - }, - "100": { - "value": "#dbf9ac", - "step": 100, - "type": "color" - }, - "200": { - "value": "#bdf36b", - "step": 200, - "type": "color" - }, - "300": { - "value": "#9feb2b", - "step": 300, - "type": "color" - }, - "400": { - "value": "#90df17", - "step": 400, - "type": "color" - }, - "500": { - "value": "#87d116", - "step": 500, - "type": "color" - }, - "600": { - "value": "#7fc417", - "step": 600, - "type": "color" - }, - "700": { - "value": "#78b618", - "step": 700, - "type": "color" - }, - "800": { - "value": "#70aa19", - "step": 800, - "type": "color" - }, - "900": { - "value": "#699c1a", - "step": 900, - "type": "color" - } - }, - "green": { - "0": { - "value": "#ecfef2", - "step": 0, - "type": "color" - }, - "100": { - "value": "#befad2", - "step": 100, - "type": "color" - }, - "200": { - "value": "#8ff4b2", - "step": 200, - "type": "color" - }, - "300": { - "value": "#60ec92", - "step": 300, - "type": "color" - }, - "400": { - "value": "#34e173", - "step": 400, - "type": "color" - }, - "500": { - "value": "#23d464", - "step": 500, - "type": "color" - }, - "600": { - "value": "#22c55e", - "step": 600, - "type": "color" - }, - "700": { - "value": "#20b658", - "step": 700, - "type": "color" - }, - "800": { - "value": "#1ea851", - "step": 800, - "type": "color" - }, - "900": { - "value": "#1d9b4b", - "step": 900, - "type": "color" - } - }, - "emerald": { - "0": { - "value": "#ecfef8", - "step": 0, - "type": "color" - }, - "100": { - "value": "#b3fbe3", - "step": 100, - "type": "color" - }, - "200": { - "value": "#72f6ca", - "step": 200, - "type": "color" - }, - "300": { - "value": "#1feda9", - "step": 300, - "type": "color" - }, - "400": { - "value": "#12e09b", - "step": 400, - "type": "color" - }, - "500": { - "value": "#11d091", - "step": 500, - "type": "color" - }, - "600": { - "value": "#11c287", - "step": 600, - "type": "color" - }, - "700": { - "value": "#11b37e", - "step": 700, - "type": "color" - }, - "800": { - "value": "#15a575", - "step": 800, - "type": "color" - }, - "900": { - "value": "#18976c", - "step": 900, - "type": "color" - } - }, - "teal": { - "0": { - "value": "#ecfefc", - "step": 0, - "type": "color" - }, - "100": { - "value": "#b4faf2", - "step": 100, - "type": "color" - }, - "200": { - "value": "#73f4e6", - "step": 200, - "type": "color" - }, - "300": { - "value": "#26ebd5", - "step": 300, - "type": "color" - }, - "400": { - "value": "#16ddc7", - "step": 400, - "type": "color" - }, - "500": { - "value": "#15cfba", - "step": 500, - "type": "color" - }, - "600": { - "value": "#15c1ae", - "step": 600, - "type": "color" - }, - "700": { - "value": "#15b2a1", - "step": 700, - "type": "color" - }, - "800": { - "value": "#17a495", - "step": 800, - "type": "color" - }, - "900": { - "value": "#199788", - "step": 900, - "type": "color" - } - }, - "cyan": { - "0": { - "value": "#ecfcfe", - "step": 0, - "type": "color" - }, - "100": { - "value": "#bcf5fc", - "step": 100, - "type": "color" - }, - "200": { - "value": "#86edfa", - "step": 200, - "type": "color" - }, - "300": { - "value": "#41e3f8", - "step": 300, - "type": "color" - }, - "400": { - "value": "#07d5f1", - "step": 400, - "type": "color" - }, - "500": { - "value": "#07c7e1", - "step": 500, - "type": "color" - }, - "600": { - "value": "#07b8d0", - "step": 600, - "type": "color" - }, - "700": { - "value": "#0daabf", - "step": 700, - "type": "color" - }, - "800": { - "value": "#119bae", - "step": 800, - "type": "color" - }, - "900": { - "value": "#168e9e", - "step": 900, - "type": "color" - } - }, - "sky": { - "0": { - "value": "#ecf8fe", - "step": 0, - "type": "color" - }, - "100": { - "value": "#caecfc", - "step": 100, - "type": "color" - }, - "200": { - "value": "#a6defa", - "step": 200, - "type": "color" - }, - "300": { - "value": "#81d2f8", - "step": 300, - "type": "color" - }, - "400": { - "value": "#59c3f5", - "step": 400, - "type": "color" - }, - "500": { - "value": "#2db4f3", - "step": 500, - "type": "color" - }, - "600": { - "value": "#0ea5e8", - "step": 600, - "type": "color" - }, - "700": { - "value": "#1296d1", - "step": 700, - "type": "color" - }, - "800": { - "value": "#1686ba", - "step": 800, - "type": "color" - }, - "900": { - "value": "#1878a4", - "step": 900, - "type": "color" - } - }, - "blue": { - "0": { - "value": "#ecf3fe", - "step": 0, - "type": "color" - }, - "100": { - "value": "#d0e2fd", - "step": 100, - "type": "color" - }, - "200": { - "value": "#b4cffb", - "step": 200, - "type": "color" - }, - "300": { - "value": "#99befa", - "step": 300, - "type": "color" - }, - "400": { - "value": "#7cacf9", - "step": 400, - "type": "color" - }, - "500": { - "value": "#6099f7", - "step": 500, - "type": "color" - }, - "600": { - "value": "#4287f6", - "step": 600, - "type": "color" - }, - "700": { - "value": "#2774f0", - "step": 700, - "type": "color" - }, - "800": { - "value": "#1762db", - "step": 800, - "type": "color" - }, - "900": { - "value": "#1a55b4", - "step": 900, - "type": "color" - } - }, - "indigo": { - "0": { - "value": "#ececfe", - "step": 0, - "type": "color" - }, - "100": { - "value": "#d4d5fd", - "step": 100, - "type": "color" - }, - "200": { - "value": "#bebefb", - "step": 200, - "type": "color" - }, - "300": { - "value": "#a7a8f9", - "step": 300, - "type": "color" - }, - "400": { - "value": "#8f90f6", - "step": 400, - "type": "color" - }, - "500": { - "value": "#777af4", - "step": 500, - "type": "color" - }, - "600": { - "value": "#5f62f0", - "step": 600, - "type": "color" - }, - "700": { - "value": "#464aeb", - "step": 700, - "type": "color" - }, - "800": { - "value": "#292de4", - "step": 800, - "type": "color" - }, - "900": { - "value": "#1d20bb", - "step": 900, - "type": "color" - } - }, - "violet": { - "0": { - "value": "#f1ecfe", - "step": 0, - "type": "color" - }, - "100": { - "value": "#e0d5fd", - "step": 100, - "type": "color" - }, - "200": { - "value": "#cfbcfb", - "step": 200, - "type": "color" - }, - "300": { - "value": "#bda4fa", - "step": 300, - "type": "color" - }, - "400": { - "value": "#ad8cf9", - "step": 400, - "type": "color" - }, - "500": { - "value": "#9b73f7", - "step": 500, - "type": "color" - }, - "600": { - "value": "#8959f6", - "step": 600, - "type": "color" - }, - "700": { - "value": "#7540f0", - "step": 700, - "type": "color" - }, - "800": { - "value": "#5e22e7", - "step": 800, - "type": "color" - }, - "900": { - "value": "#4c1bbc", - "step": 900, - "type": "color" - } - }, - "purple": { - "0": { - "value": "#f5ecfe", - "step": 0, - "type": "color" - }, - "100": { - "value": "#e9d4fd", - "step": 100, - "type": "color" - }, - "200": { - "value": "#dcbcfc", - "step": 200, - "type": "color" - }, - "300": { - "value": "#d0a4fa", - "step": 300, - "type": "color" - }, - "400": { - "value": "#c38bf9", - "step": 400, - "type": "color" - }, - "500": { - "value": "#b671f8", - "step": 500, - "type": "color" - }, - "600": { - "value": "#a856f7", - "step": 600, - "type": "color" - }, - "700": { - "value": "#9739f1", - "step": 700, - "type": "color" - }, - "800": { - "value": "#831ae6", - "step": 800, - "type": "color" - }, - "900": { - "value": "#6d1bbb", - "step": 900, - "type": "color" - } - }, - "fuschia": { - "0": { - "value": "#fdecfe", - "step": 0, - "type": "color" - }, - "100": { - "value": "#fad4fc", - "step": 100, - "type": "color" - }, - "200": { - "value": "#f6bbfa", - "step": 200, - "type": "color" - }, - "300": { - "value": "#f1a2f7", - "step": 300, - "type": "color" - }, - "400": { - "value": "#ec8af3", - "step": 400, - "type": "color" - }, - "500": { - "value": "#e56fee", - "step": 500, - "type": "color" - }, - "600": { - "value": "#dd51e7", - "step": 600, - "type": "color" - }, - "700": { - "value": "#d32edf", - "step": 700, - "type": "color" - }, - "800": { - "value": "#bc21c8", - "step": 800, - "type": "color" - }, - "900": { - "value": "#a41ead", - "step": 900, - "type": "color" - } - }, - "pink": { - "0": { - "value": "#feecf5", - "step": 0, - "type": "color" - }, - "100": { - "value": "#fcd4e8", - "step": 100, - "type": "color" - }, - "200": { - "value": "#fbbcdb", - "step": 200, - "type": "color" - }, - "300": { - "value": "#f8a5ce", - "step": 300, - "type": "color" - }, - "400": { - "value": "#f58ac0", - "step": 400, - "type": "color" - }, - "500": { - "value": "#f26fb0", - "step": 500, - "type": "color" - }, - "600": { - "value": "#ee519e", - "step": 600, - "type": "color" - }, - "700": { - "value": "#e52e89", - "step": 700, - "type": "color" - }, - "800": { - "value": "#ce1e76", - "step": 800, - "type": "color" - }, - "900": { - "value": "#b21d67", - "step": 900, - "type": "color" - } - } - }, - "text": { - "family": { - "sans": { - "value": "Zed Sans", - "type": "fontFamily" - }, - "mono": { - "value": "Zed Mono", - "type": "fontFamily" - } - }, - "weight": { - "thin": { - "value": "thin", - "type": "fontWeight" - }, - "extra_light": { - "value": "extra_light", - "type": "fontWeight" - }, - "light": { - "value": "light", - "type": "fontWeight" - }, - "normal": { - "value": "normal", - "type": "fontWeight" - }, - "medium": { - "value": "medium", - "type": "fontWeight" - }, - "semibold": { - "value": "semibold", - "type": "fontWeight" - }, - "bold": { - "value": "bold", - "type": "fontWeight" - }, - "extra_bold": { - "value": "extra_bold", - "type": "fontWeight" - }, - "black": { - "value": "black", - "type": "fontWeight" - } - } - }, - "size": { - "3xs": { - "value": 8, - "type": "fontSize" - }, - "2xs": { - "value": 10, - "type": "fontSize" - }, - "xs": { - "value": 12, - "type": "fontSize" - }, - "sm": { - "value": 14, - "type": "fontSize" - }, - "md": { - "value": 16, - "type": "fontSize" - }, - "lg": { - "value": 18, - "type": "fontSize" - }, - "xl": { - "value": 20, - "type": "fontSize" - } - } -} \ No newline at end of file From c289cdcac816c9b803fbdf458b0b2b92751ae38f Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Wed, 6 Apr 2022 09:28:56 -0600 Subject: [PATCH 68/71] =?UTF-8?q?=F0=9F=92=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- styles/nodemon.json | 2 +- styles/src/styleTree/contactsPanel.ts | 2 +- styles/tsconfig.json | 20 +++++++++++--------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/styles/nodemon.json b/styles/nodemon.json index ae631a5ec4931af8173529733ab1fb6973651aad..47facd6322c80a79b87fe9320e4a71cc0bf275f9 100644 --- a/styles/nodemon.json +++ b/styles/nodemon.json @@ -5,4 +5,4 @@ "ext": "ts", "ignore": [], "exec": "ts-node src/buildThemes.ts" -} \ No newline at end of file +} diff --git a/styles/src/styleTree/contactsPanel.ts b/styles/src/styleTree/contactsPanel.ts index 6d432756472251de0cfa52a1e4176bea22af88aa..0939018126f87486a1f5f3197be12452ef17fa9b 100644 --- a/styles/src/styleTree/contactsPanel.ts +++ b/styles/src/styleTree/contactsPanel.ts @@ -59,4 +59,4 @@ export default function(theme: Theme) { cornerRadius: 6, }, } -} \ No newline at end of file +} diff --git a/styles/tsconfig.json b/styles/tsconfig.json index 3dfbcc715ef17318d9267709bb8f25a8b91ecac0..fa3e3062c95377568dce90b6e83eaba11faebf2d 100644 --- a/styles/tsconfig.json +++ b/styles/tsconfig.json @@ -1,12 +1,14 @@ { "compilerOptions": { - "target": "es2015", - "module": "commonjs", - "esModuleInterop": true, - "noImplicitAny": true, - "removeComments": true, - "preserveConstEnums": true, - "sourceMap": true + "target": "es2015", + "module": "commonjs", + "esModuleInterop": true, + "noImplicitAny": true, + "removeComments": true, + "preserveConstEnums": true, + "sourceMap": true }, - "exclude": ["node_modules"] - } \ No newline at end of file + "exclude": [ + "node_modules" + ] +} From d3cfd1c97407a10189b1bc80514620e1095738ed Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Wed, 6 Apr 2022 12:14:05 -0400 Subject: [PATCH 69/71] Use standard text sizes for signInPrompt --- styles/src/styleTree/workspace.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/styles/src/styleTree/workspace.ts b/styles/src/styleTree/workspace.ts index 3a585458c3dd42c999924711d12479b5877f81ca..9e35052abf33f7a638de41bd80d7456db3f1eda3 100644 --- a/styles/src/styleTree/workspace.ts +++ b/styles/src/styleTree/workspace.ts @@ -3,8 +3,7 @@ import { backgroundColor, border, iconColor, text } from "./components"; export default function workspace(theme: Theme) { const signInPrompt = { - ...text(theme, "sans", "secondary"), - size: 13, + ...text(theme, "sans", "secondary", { size: "xs" }), underline: true, padding: { right: 8, @@ -117,8 +116,7 @@ export default function workspace(theme: Theme) { signInPrompt, hoveredSignInPrompt: { ...signInPrompt, - ...text(theme, "sans", "active"), - size: 13, + ...text(theme, "sans", "active", { size: "xs" }), }, offlineIcon: { color: iconColor(theme, "secondary"), From e584e892f4b1f88e604cfd94966efe2a0ffcd603 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Wed, 6 Apr 2022 12:25:02 -0400 Subject: [PATCH 70/71] Update light theme --- styles/src/themes/light.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/styles/src/themes/light.ts b/styles/src/themes/light.ts index 2fded3ed9074b259c7aebe350beb9722f75353cc..434760b30440eed17135d3944b79ddea49304f72 100644 --- a/styles/src/themes/light.ts +++ b/styles/src/themes/light.ts @@ -65,7 +65,7 @@ const textColor = { muted: colors.neutral[550], placeholder: colors.neutral[450], active: colors.neutral[900], - feature: colors.indigo[500], + feature: colors.indigo[600], ok: colors.green[500], error: colors.red[500], warning: colors.yellow[500], @@ -96,7 +96,6 @@ const player = { 8: buildPlayer(colors.yellow[400]), }; -// TODO: Fixup const editor = { background: backgroundColor[500].base, indent_guide: borderColor.muted, @@ -111,10 +110,10 @@ const editor = { highlight: { selection: player[1].selectionColor, occurrence: withOpacity(colors.neutral[900], 0.06), - activeOccurrence: withOpacity(colors.neutral[900], 0.16), // TODO: This is not correctly hooked up to occurences on the rust side + activeOccurrence: withOpacity(colors.neutral[900], 0.16), // TODO: This is not hooked up to occurences on the rust side matchingBracket: colors.neutral[0], match: withOpacity(colors.red[500], 0.2), - activeMatch: withOpacity(colors.indigo[400], 0.36), + activeMatch: withOpacity(colors.indigo[400], 0.36), // TODO: This is not hooked up to occurences on the rust side related: colors.neutral[0], }, gutter: { @@ -145,19 +144,19 @@ const syntax: Syntax = { weight: fontWeights.normal, }, function: { - color: colors.orange[400], + color: colors.orange[600], weight: fontWeights.normal, }, type: { - color: colors.amber[500], + color: colors.yellow[600], weight: fontWeights.normal, }, variant: { - color: colors.sky[500], + color: colors.rose[700], weight: fontWeights.normal, }, property: { - color: colors.emerald[600], + color: colors.emerald[700], weight: fontWeights.normal, }, enum: { From b1eda1ac39fad5a1eeab3ec7649bbe411f1d1c32 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Wed, 6 Apr 2022 12:25:15 -0400 Subject: [PATCH 71/71] Add border to top of status bar --- crates/zed/assets/themes/dark.json | 10 ++++++++-- crates/zed/assets/themes/light.json | 28 +++++++++++++++++----------- styles/src/styleTree/workspace.ts | 3 ++- 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/crates/zed/assets/themes/dark.json b/crates/zed/assets/themes/dark.json index 56cef126935c71bce58e96c463a8e6be642e22c0..ccd6ef82e0c477cd6f7d34dbe3ac67ab807c9187 100644 --- a/crates/zed/assets/themes/dark.json +++ b/crates/zed/assets/themes/dark.json @@ -219,6 +219,12 @@ "left": 6, "right": 6 }, + "border": { + "color": "#070707", + "width": 1, + "top": true, + "overlay": true + }, "cursor_position": { "family": "Zed Sans", "color": "#808080", @@ -265,7 +271,7 @@ "sign_in_prompt": { "family": "Zed Sans", "color": "#9c9c9c", - "size": 13, + "size": 12, "underline": true, "padding": { "right": 8 @@ -274,7 +280,7 @@ "hovered_sign_in_prompt": { "family": "Zed Sans", "color": "#ffffff", - "size": 13, + "size": 12, "underline": true, "padding": { "right": 8 diff --git a/crates/zed/assets/themes/light.json b/crates/zed/assets/themes/light.json index d601ecbcccdf6a43d964845314e75fc703617101..7d963a883970858aee73fb84d377b86de3587cf5 100644 --- a/crates/zed/assets/themes/light.json +++ b/crates/zed/assets/themes/light.json @@ -18,7 +18,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#484bed", + "color": "#1b1edc", "weight": "bold", "size": 14 } @@ -38,7 +38,7 @@ }, "highlight_text": { "family": "Zed Sans", - "color": "#484bed", + "color": "#1b1edc", "weight": "bold", "size": 14 }, @@ -219,6 +219,12 @@ "left": 6, "right": 6 }, + "border": { + "color": "#d5d5d5", + "width": 1, + "top": true, + "overlay": true + }, "cursor_position": { "family": "Zed Sans", "color": "#636363", @@ -265,7 +271,7 @@ "sign_in_prompt": { "family": "Zed Sans", "color": "#474747", - "size": 13, + "size": 12, "underline": true, "padding": { "right": 8 @@ -274,7 +280,7 @@ "hovered_sign_in_prompt": { "family": "Zed Sans", "color": "#000000", - "size": 13, + "size": 12, "underline": true, "padding": { "right": 8 @@ -407,7 +413,7 @@ }, "match_highlight": { "family": "Zed Mono", - "color": "#484bed", + "color": "#1b1edc", "size": 14 }, "selected_item": { @@ -656,21 +662,21 @@ }, "syntax": { "keyword": "#1819a1", - "function": "#f9812e", + "function": "#bb550e", "string": "#eb2d2d", - "type": "#de900c", + "type": "#a8820e", "number": "#484bed", "comment": "#717171", - "property": "#118a62", - "variant": "#1096d3", + "property": "#106c4e", + "variant": "#97142a", "constant": "#1c1c1c", "title": { "color": "#1096d3", "weight": "bold" }, - "emphasis": "#484bed", + "emphasis": "#1b1edc", "emphasis_strong": { - "color": "#484bed", + "color": "#1b1edc", "weight": "bold" }, "link_uri": { diff --git a/styles/src/styleTree/workspace.ts b/styles/src/styleTree/workspace.ts index 9e35052abf33f7a638de41bd80d7456db3f1eda3..42cd5b20d5cddc43d978390226c28cb6d4e82a0f 100644 --- a/styles/src/styleTree/workspace.ts +++ b/styles/src/styleTree/workspace.ts @@ -1,5 +1,5 @@ import Theme from "../themes/theme"; -import { backgroundColor, border, iconColor, text } from "./components"; +import { backgroundColor, border, borderColor, iconColor, text } from "./components"; export default function workspace(theme: Theme) { const signInPrompt = { @@ -88,6 +88,7 @@ export default function workspace(theme: Theme) { left: 6, right: 6, }, + border: border(theme, "primary", { top: true, overlay: true }), cursorPosition: text(theme, "sans", "muted"), diagnosticMessage: text(theme, "sans", "muted"), lspMessage: text(theme, "sans", "muted"),