diff --git a/docs/guides/json-resume-schema.mdx b/docs/guides/json-resume-schema.mdx index 282eb436f..5e22c0d8c 100644 --- a/docs/guides/json-resume-schema.mdx +++ b/docs/guides/json-resume-schema.mdx @@ -137,16 +137,19 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la ```json /schema.json lines expandable { - "$schema": "http://json-schema.org/draft-07/schema", + "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "picture": { "type": "object", "properties": { - "hidden": { "type": "boolean", "description": "Whether to hide the picture from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the picture from the resume." + }, "url": { "type": "string", - "description": "The URL to the picture to display on the resume. Must be a valid URL with a protocol (http:// or https://)." + "description": "The URL to the picture to display on the resume. Prefer local app-served paths (for example /uploads/...) populated via upload." }, "size": { "type": "number", @@ -209,11 +212,26 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "basics": { "type": "object", "properties": { - "name": { "type": "string", "description": "The full name of the author of the resume." }, - "headline": { "type": "string", "description": "The headline of the author of the resume." }, - "email": { "type": "string", "description": "The email address of the author of the resume." }, - "phone": { "type": "string", "description": "The phone number of the author of the resume." }, - "location": { "type": "string", "description": "The location of the author of the resume." }, + "name": { + "type": "string", + "description": "The full name of the author of the resume." + }, + "headline": { + "type": "string", + "description": "The headline of the author of the resume." + }, + "email": { + "type": "string", + "description": "The email address of the author of the resume." + }, + "phone": { + "type": "string", + "description": "The phone number of the author of the resume." + }, + "location": { + "type": "string", + "description": "The location of the author of the resume." + }, "website": { "type": "object", "properties": { @@ -243,7 +261,10 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available." }, - "text": { "type": "string", "description": "The text to display for the custom field." }, + "text": { + "type": "string", + "description": "The text to display for the custom field." + }, "link": { "default": "", "type": "string", @@ -263,9 +284,18 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "summary": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the summary of the resume." }, - "columns": { "type": "number", "description": "The number of columns the summary should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the summary from the resume." }, + "title": { + "type": "string", + "description": "The title of the summary of the resume." + }, + "columns": { + "type": "number", + "description": "The number of columns the summary should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the summary from the resume." + }, "content": { "type": "string", "description": "The content of the summary of the resume. This should be a HTML-formatted string." @@ -281,9 +311,18 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "profiles": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -293,10 +332,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -312,6 +356,11 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available." }, + "iconColor": { + "default": "", + "description": "Optional custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color.", + "type": "string" + }, "network": { "type": "string", "minLength": 1, @@ -338,7 +387,7 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "description": "The link to the profile of the author on the network or platform, if any." } }, - "required": ["id", "hidden", "icon", "network", "username", "website"], + "required": ["id", "hidden", "icon", "iconColor", "network", "username", "website"], "additionalProperties": false }, "description": "The items to display in the profiles section." @@ -351,9 +400,18 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "experience": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -363,10 +421,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -387,7 +450,10 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The position held at the company or organization. Used when there is only a single role. If multiple roles are provided in the 'roles' field, this serves as a summary title or can be left blank." }, - "location": { "type": "string", "description": "The location of the company or organization." }, + "location": { + "type": "string", + "description": "The location of the company or organization." + }, "period": { "type": "string", "description": "The overall period of time at the company. When multiple roles are used, this should reflect the total tenure." @@ -423,8 +489,14 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the role. Usually generated as a UUID." }, - "position": { "type": "string", "description": "The position or job title for this role." }, - "period": { "type": "string", "description": "The period of time this role was held." }, + "position": { + "type": "string", + "description": "The position or job title for this role." + }, + "period": { + "type": "string", + "description": "The period of time this role was held." + }, "description": { "type": "string", "description": "The description of this specific role. This should be a HTML-formatted string." @@ -458,9 +530,18 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "education": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -470,10 +551,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -490,11 +576,26 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "minLength": 1, "description": "The name of the school or institution." }, - "degree": { "type": "string", "description": "The degree or qualification obtained." }, - "area": { "type": "string", "description": "The area of study or specialization." }, - "grade": { "type": "string", "description": "The grade or score achieved." }, - "location": { "type": "string", "description": "The location of the school or institution." }, - "period": { "type": "string", "description": "The period of time the education was obtained over." }, + "degree": { + "type": "string", + "description": "The degree or qualification obtained." + }, + "area": { + "type": "string", + "description": "The area of study or specialization." + }, + "grade": { + "type": "string", + "description": "The grade or score achieved." + }, + "location": { + "type": "string", + "description": "The location of the school or institution." + }, + "period": { + "type": "string", + "description": "The period of time the education was obtained over." + }, "website": { "type": "object", "properties": { @@ -540,9 +641,18 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "projects": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -552,10 +662,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -567,8 +682,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "required": ["showLinkInTitle"], "additionalProperties": false }, - "name": { "type": "string", "minLength": 1, "description": "The name of the project." }, - "period": { "type": "string", "description": "The period of time the project was worked on." }, + "name": { + "type": "string", + "minLength": 1, + "description": "The name of the project." + }, + "period": { + "type": "string", + "description": "The period of time the project was worked on." + }, "website": { "type": "object", "properties": { @@ -603,9 +725,18 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "skills": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -615,10 +746,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -634,7 +770,16 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available." }, - "name": { "type": "string", "minLength": 1, "description": "The name of the skill." }, + "iconColor": { + "default": "", + "description": "Optional custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color.", + "type": "string" + }, + "name": { + "type": "string", + "minLength": 1, + "description": "The name of the skill." + }, "proficiency": { "type": "string", "description": "The proficiency level of the skill. Can be any text, such as 'Beginner', 'Intermediate', 'Advanced', etc." @@ -650,10 +795,12 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "default": [], "description": "The keywords associated with the skill, if any. These are displayed as tags below the name.", "type": "array", - "items": { "type": "string" } + "items": { + "type": "string" + } } }, - "required": ["id", "hidden", "icon", "name", "proficiency", "level", "keywords"], + "required": ["id", "hidden", "icon", "iconColor", "name", "proficiency", "level", "keywords"], "additionalProperties": false }, "description": "The items to display in the skills section." @@ -666,9 +813,18 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "languages": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -678,10 +834,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -723,9 +884,18 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "interests": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -735,10 +905,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -754,15 +929,26 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available." }, - "name": { "type": "string", "minLength": 1, "description": "The name of the interest/hobby." }, + "iconColor": { + "default": "", + "description": "Optional custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color.", + "type": "string" + }, + "name": { + "type": "string", + "minLength": 1, + "description": "The name of the interest/hobby." + }, "keywords": { "default": [], "description": "The keywords associated with the interest/hobby, if any. These are displayed as tags below the name.", "type": "array", - "items": { "type": "string" } + "items": { + "type": "string" + } } }, - "required": ["id", "hidden", "icon", "name", "keywords"], + "required": ["id", "hidden", "icon", "iconColor", "name", "keywords"], "additionalProperties": false }, "description": "The items to display in the interests section." @@ -775,9 +961,18 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "awards": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -787,10 +982,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -802,9 +1002,19 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "required": ["showLinkInTitle"], "additionalProperties": false }, - "title": { "type": "string", "minLength": 1, "description": "The title of the award." }, - "awarder": { "type": "string", "description": "The awarder of the award." }, - "date": { "type": "string", "description": "The date when the award was received." }, + "title": { + "type": "string", + "minLength": 1, + "description": "The title of the award." + }, + "awarder": { + "type": "string", + "description": "The awarder of the award." + }, + "date": { + "type": "string", + "description": "The date when the award was received." + }, "website": { "type": "object", "properties": { @@ -839,9 +1049,18 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "certifications": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -851,10 +1070,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -866,9 +1090,19 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "required": ["showLinkInTitle"], "additionalProperties": false }, - "title": { "type": "string", "minLength": 1, "description": "The title of the certification." }, - "issuer": { "type": "string", "description": "The issuer of the certification." }, - "date": { "type": "string", "description": "The date when the certification was received." }, + "title": { + "type": "string", + "minLength": 1, + "description": "The title of the certification." + }, + "issuer": { + "type": "string", + "description": "The issuer of the certification." + }, + "date": { + "type": "string", + "description": "The date when the certification was received." + }, "website": { "type": "object", "properties": { @@ -903,9 +1137,18 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "publications": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -915,10 +1158,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -930,9 +1178,19 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "required": ["showLinkInTitle"], "additionalProperties": false }, - "title": { "type": "string", "minLength": 1, "description": "The title of the publication." }, - "publisher": { "type": "string", "description": "The publisher of the publication." }, - "date": { "type": "string", "description": "The date when the publication was published." }, + "title": { + "type": "string", + "minLength": 1, + "description": "The title of the publication." + }, + "publisher": { + "type": "string", + "description": "The publisher of the publication." + }, + "date": { + "type": "string", + "description": "The date when the publication was published." + }, "website": { "type": "object", "properties": { @@ -967,9 +1225,18 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "volunteer": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -979,10 +1246,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -999,7 +1271,10 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "minLength": 1, "description": "The name of the organization or company." }, - "location": { "type": "string", "description": "The location of the organization or company." }, + "location": { + "type": "string", + "description": "The location of the organization or company." + }, "period": { "type": "string", "description": "The period of time the author was volunteered at the organization or company." @@ -1038,9 +1313,18 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "references": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -1050,10 +1334,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1070,7 +1359,10 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "minLength": 1, "description": "The name of the reference, or a note such as 'Available upon request'." }, - "position": { "type": "string", "description": "The position or job title of the reference." }, + "position": { + "type": "string", + "description": "The position or job title of the reference." + }, "website": { "type": "object", "properties": { @@ -1087,7 +1379,10 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "additionalProperties": false, "description": "The website or LinkedIn profile of the reference, if any." }, - "phone": { "type": "string", "description": "The phone number of the reference." }, + "phone": { + "type": "string", + "description": "The phone number of the reference." + }, "description": { "type": "string", "description": "The description of the reference. Can be used to display a quote, a testimonial, etc. This should be a HTML-formatted string." @@ -1126,9 +1421,18 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "items": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "id": { "type": "string", "description": "The unique identifier for the custom section. Usually generated as a UUID." @@ -1164,10 +1468,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1198,10 +1507,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1228,10 +1542,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1247,6 +1566,11 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available." }, + "iconColor": { + "default": "", + "description": "Optional custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color.", + "type": "string" + }, "network": { "type": "string", "minLength": 1, @@ -1273,7 +1597,7 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "description": "The link to the profile of the author on the network or platform, if any." } }, - "required": ["id", "hidden", "icon", "network", "username", "website"], + "required": ["id", "hidden", "icon", "iconColor", "network", "username", "website"], "additionalProperties": false }, { @@ -1283,10 +1607,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1307,7 +1636,10 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The position held at the company or organization. Used when there is only a single role. If multiple roles are provided in the 'roles' field, this serves as a summary title or can be left blank." }, - "location": { "type": "string", "description": "The location of the company or organization." }, + "location": { + "type": "string", + "description": "The location of the company or organization." + }, "period": { "type": "string", "description": "The overall period of time at the company. When multiple roles are used, this should reflect the total tenure." @@ -1343,8 +1675,14 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the role. Usually generated as a UUID." }, - "position": { "type": "string", "description": "The position or job title for this role." }, - "period": { "type": "string", "description": "The period of time this role was held." }, + "position": { + "type": "string", + "description": "The position or job title for this role." + }, + "period": { + "type": "string", + "description": "The period of time this role was held." + }, "description": { "type": "string", "description": "The description of this specific role. This should be a HTML-formatted string." @@ -1375,10 +1713,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1395,10 +1738,22 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "minLength": 1, "description": "The name of the school or institution." }, - "degree": { "type": "string", "description": "The degree or qualification obtained." }, - "area": { "type": "string", "description": "The area of study or specialization." }, - "grade": { "type": "string", "description": "The grade or score achieved." }, - "location": { "type": "string", "description": "The location of the school or institution." }, + "degree": { + "type": "string", + "description": "The degree or qualification obtained." + }, + "area": { + "type": "string", + "description": "The area of study or specialization." + }, + "grade": { + "type": "string", + "description": "The grade or score achieved." + }, + "location": { + "type": "string", + "description": "The location of the school or institution." + }, "period": { "type": "string", "description": "The period of time the education was obtained over." @@ -1445,10 +1800,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1460,8 +1820,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "required": ["showLinkInTitle"], "additionalProperties": false }, - "name": { "type": "string", "minLength": 1, "description": "The name of the project." }, - "period": { "type": "string", "description": "The period of time the project was worked on." }, + "name": { + "type": "string", + "minLength": 1, + "description": "The name of the project." + }, + "period": { + "type": "string", + "description": "The period of time the project was worked on." + }, "website": { "type": "object", "properties": { @@ -1493,10 +1860,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1512,7 +1884,16 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available." }, - "name": { "type": "string", "minLength": 1, "description": "The name of the skill." }, + "iconColor": { + "default": "", + "description": "Optional custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color.", + "type": "string" + }, + "name": { + "type": "string", + "minLength": 1, + "description": "The name of the skill." + }, "proficiency": { "type": "string", "description": "The proficiency level of the skill. Can be any text, such as 'Beginner', 'Intermediate', 'Advanced', etc." @@ -1528,10 +1909,12 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "default": [], "description": "The keywords associated with the skill, if any. These are displayed as tags below the name.", "type": "array", - "items": { "type": "string" } + "items": { + "type": "string" + } } }, - "required": ["id", "hidden", "icon", "name", "proficiency", "level", "keywords"], + "required": ["id", "hidden", "icon", "iconColor", "name", "proficiency", "level", "keywords"], "additionalProperties": false }, { @@ -1541,10 +1924,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1583,10 +1971,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1602,15 +1995,26 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available." }, - "name": { "type": "string", "minLength": 1, "description": "The name of the interest/hobby." }, + "iconColor": { + "default": "", + "description": "Optional custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color.", + "type": "string" + }, + "name": { + "type": "string", + "minLength": 1, + "description": "The name of the interest/hobby." + }, "keywords": { "default": [], "description": "The keywords associated with the interest/hobby, if any. These are displayed as tags below the name.", "type": "array", - "items": { "type": "string" } + "items": { + "type": "string" + } } }, - "required": ["id", "hidden", "icon", "name", "keywords"], + "required": ["id", "hidden", "icon", "iconColor", "name", "keywords"], "additionalProperties": false }, { @@ -1620,10 +2024,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1635,9 +2044,19 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "required": ["showLinkInTitle"], "additionalProperties": false }, - "title": { "type": "string", "minLength": 1, "description": "The title of the award." }, - "awarder": { "type": "string", "description": "The awarder of the award." }, - "date": { "type": "string", "description": "The date when the award was received." }, + "title": { + "type": "string", + "minLength": 1, + "description": "The title of the award." + }, + "awarder": { + "type": "string", + "description": "The awarder of the award." + }, + "date": { + "type": "string", + "description": "The date when the award was received." + }, "website": { "type": "object", "properties": { @@ -1669,10 +2088,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1684,9 +2108,19 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "required": ["showLinkInTitle"], "additionalProperties": false }, - "title": { "type": "string", "minLength": 1, "description": "The title of the certification." }, - "issuer": { "type": "string", "description": "The issuer of the certification." }, - "date": { "type": "string", "description": "The date when the certification was received." }, + "title": { + "type": "string", + "minLength": 1, + "description": "The title of the certification." + }, + "issuer": { + "type": "string", + "description": "The issuer of the certification." + }, + "date": { + "type": "string", + "description": "The date when the certification was received." + }, "website": { "type": "object", "properties": { @@ -1718,10 +2152,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1733,9 +2172,19 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "required": ["showLinkInTitle"], "additionalProperties": false }, - "title": { "type": "string", "minLength": 1, "description": "The title of the publication." }, - "publisher": { "type": "string", "description": "The publisher of the publication." }, - "date": { "type": "string", "description": "The date when the publication was published." }, + "title": { + "type": "string", + "minLength": 1, + "description": "The title of the publication." + }, + "publisher": { + "type": "string", + "description": "The publisher of the publication." + }, + "date": { + "type": "string", + "description": "The date when the publication was published." + }, "website": { "type": "object", "properties": { @@ -1767,10 +2216,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1787,7 +2241,10 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "minLength": 1, "description": "The name of the organization or company." }, - "location": { "type": "string", "description": "The location of the organization or company." }, + "location": { + "type": "string", + "description": "The location of the organization or company." + }, "period": { "type": "string", "description": "The period of time the author was volunteered at the organization or company." @@ -1823,10 +2280,15 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1843,7 +2305,10 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "minLength": 1, "description": "The name of the reference, or a note such as 'Available upon request'." }, - "position": { "type": "string", "description": "The position or job title of the reference." }, + "position": { + "type": "string", + "description": "The position or job title of the reference." + }, "website": { "type": "object", "properties": { @@ -1860,7 +2325,10 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "additionalProperties": false, "description": "The website or LinkedIn profile of the reference, if any." }, - "phone": { "type": "string", "description": "The phone number of the reference." }, + "phone": { + "type": "string", + "description": "The phone number of the reference." + }, "description": { "type": "string", "description": "The description of the reference. Can be used to display a quote, a testimonial, etc. This should be a HTML-formatted string." @@ -1924,12 +2392,16 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la }, "main": { "type": "array", - "items": { "type": "string" }, + "items": { + "type": "string" + }, "description": "The items to display in the main column of the page. A string array of section IDs (experience, education, projects, skills, languages, interests, awards, certifications, publications, volunteer, references, profiles, summary or UUIDs for custom sections)." }, "sidebar": { "type": "array", - "items": { "type": "string" }, + "items": { + "type": "string" + }, "description": "The items to display in the sidebar column of the page. A string array of section IDs (experience, education, projects, skills, languages, interests, awards, certifications, publications, volunteer, references, profiles, summary or UUIDs for custom sections)." } }, @@ -1946,7 +2418,10 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "css": { "type": "object", "properties": { - "enabled": { "type": "boolean", "description": "Whether to enable custom CSS for the resume." }, + "enabled": { + "type": "boolean", + "description": "Whether to enable custom CSS for the resume." + }, "value": { "type": "string", "description": "The custom CSS to apply to the resume. This should be a valid CSS string." @@ -2057,7 +2532,10 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "default": ["400"], "description": "The weight of the font, defined as a number between 100 and 900. Default to 400 when unsure if the weight is available in the font.", "type": "array", - "items": { "type": "string", "enum": ["100", "200", "300", "400", "500", "600", "700", "800", "900"] } + "items": { + "type": "string", + "enum": ["100", "200", "300", "400", "500", "600", "700", "800", "900"] + } }, "fontSize": { "default": 11, @@ -2089,7 +2567,10 @@ Below is the complete JSON Schema for Reactive Resume. You can also fetch the la "default": ["400"], "description": "The weight of the font, defined as a number between 100 and 900. Default to 400 when unsure if the weight is available in the font.", "type": "array", - "items": { "type": "string", "enum": ["100", "200", "300", "400", "500", "600", "700", "800", "900"] } + "items": { + "type": "string", + "enum": ["100", "200", "300", "400", "500", "600", "700", "800", "900"] + } }, "fontSize": { "default": 11, diff --git a/locales/af-ZA.po b/locales/af-ZA.po index 5f47b0fb3..3bc42df33 100644 --- a/locales/af-ZA.po +++ b/locales/af-ZA.po @@ -936,7 +936,7 @@ msgstr "Skep tans jou CV..." msgid "Current Password" msgstr "Huidige wagwoord" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Pasgemaak" @@ -2548,7 +2548,7 @@ msgstr "Posisie" msgid "Preferences" msgstr "Voorkeure" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Voorgestelde instellings" @@ -3717,7 +3717,7 @@ msgstr "Laai tans prent op..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Gebruik kleur {color}" @@ -3951,4 +3951,3 @@ msgstr "Zoem uit" #: src/utils/locale.ts msgid "Zulu" msgstr "Zoeloe" - diff --git a/locales/am-ET.po b/locales/am-ET.po index 76dcadec0..d3b61e1d2 100644 --- a/locales/am-ET.po +++ b/locales/am-ET.po @@ -936,7 +936,7 @@ msgstr "የየታሪክዎን መስራት በመፍጠር ላይ…" msgid "Current Password" msgstr "አሁን ያለዎት የይለፍ ቃል" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "ብጁ" @@ -2548,7 +2548,7 @@ msgstr "አቀማመጥ" msgid "Preferences" msgstr "ምርጫዎች" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "ቀድሞ የተዘጋጁ" @@ -3717,7 +3717,7 @@ msgstr "ፎቶ በመጫን ላይ…" msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "{color} ቀለም ተጠቀም" @@ -3951,4 +3951,3 @@ msgstr "አጉር" #: src/utils/locale.ts msgid "Zulu" msgstr "ዙሉ" - diff --git a/locales/ar-SA.po b/locales/ar-SA.po index 661f29495..4ff117fd1 100644 --- a/locales/ar-SA.po +++ b/locales/ar-SA.po @@ -936,7 +936,7 @@ msgstr "جاري إنشاء سيرتك الذاتية..." msgid "Current Password" msgstr "كلمة المرور الحالية" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "مخصص" @@ -2548,7 +2548,7 @@ msgstr "المنصب" msgid "Preferences" msgstr "التفضيلات" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "الإعدادات المسبقة" @@ -3717,7 +3717,7 @@ msgstr "جاري رفع الصورة..." msgid "URL" msgstr "عنوان URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "استخدام اللون {color}" @@ -3951,4 +3951,3 @@ msgstr "تصغير" #: src/utils/locale.ts msgid "Zulu" msgstr "الزولو" - diff --git a/locales/az-AZ.po b/locales/az-AZ.po index 90272eddc..6f0eb0b4a 100644 --- a/locales/az-AZ.po +++ b/locales/az-AZ.po @@ -936,7 +936,7 @@ msgstr "Özgeçmişiniz yaradılır..." msgid "Current Password" msgstr "Cari Parol" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Fərdiləşdirilmiş" @@ -2548,7 +2548,7 @@ msgstr "Vəzifə" msgid "Preferences" msgstr "Parametrlər" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Qabaqcadan təyin olunmuş parametrlər" @@ -3717,7 +3717,7 @@ msgstr "Şəkil yüklənir..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Rəngdən istifadə edin {color}" @@ -3951,4 +3951,3 @@ msgstr "Uzaqlaşdır" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/bg-BG.po b/locales/bg-BG.po index dd8620a4e..0f0b100ff 100644 --- a/locales/bg-BG.po +++ b/locales/bg-BG.po @@ -936,7 +936,7 @@ msgstr "Създаване на вашата автобиография..." msgid "Current Password" msgstr "Текуща парола" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Потребителски" @@ -2548,7 +2548,7 @@ msgstr "Позиция" msgid "Preferences" msgstr "Предпочитания" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Предварителни настройки" @@ -3717,7 +3717,7 @@ msgstr "Качване на снимка..." msgid "URL" msgstr "URL адрес" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Използване на цвят {color}" @@ -3951,4 +3951,3 @@ msgstr "Намаляване" #: src/utils/locale.ts msgid "Zulu" msgstr "Зулуски" - diff --git a/locales/bn-BD.po b/locales/bn-BD.po index 23491e672..1b386e80b 100644 --- a/locales/bn-BD.po +++ b/locales/bn-BD.po @@ -936,7 +936,7 @@ msgstr "আপনার জীবনবৃত্তান্ত তৈরি ক msgid "Current Password" msgstr "বর্তমান পাসওয়ার্ড" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "কাস্টম" @@ -2548,7 +2548,7 @@ msgstr "পদবি" msgid "Preferences" msgstr "পছন্দসমূহ" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "প্রিসেটসমূহ" @@ -3717,7 +3717,7 @@ msgstr "ছবি আপলোড করা হচ্ছে..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "রঙ ব্যবহার করুন {color}" @@ -3951,4 +3951,3 @@ msgstr "জুম আউট" #: src/utils/locale.ts msgid "Zulu" msgstr "জুলু" - diff --git a/locales/ca-ES.po b/locales/ca-ES.po index 7e8d81b24..8af70d1b9 100644 --- a/locales/ca-ES.po +++ b/locales/ca-ES.po @@ -936,7 +936,7 @@ msgstr "S’està creant el currículum..." msgid "Current Password" msgstr "Contrasenya actual" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Personalitzat" @@ -2548,7 +2548,7 @@ msgstr "Càrrec" msgid "Preferences" msgstr "Preferències" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Preajustaments" @@ -3717,7 +3717,7 @@ msgstr "S’està pujant la fotografia..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Utilitza el color {color}" @@ -3951,4 +3951,3 @@ msgstr "Allunya" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulú" - diff --git a/locales/cs-CZ.po b/locales/cs-CZ.po index 5967faae0..037940d79 100644 --- a/locales/cs-CZ.po +++ b/locales/cs-CZ.po @@ -936,7 +936,7 @@ msgstr "Vytváření životopisu…" msgid "Current Password" msgstr "Aktuální heslo" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Vlastní" @@ -2548,7 +2548,7 @@ msgstr "Pozice" msgid "Preferences" msgstr "Předvolby" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Předvolby" @@ -3717,7 +3717,7 @@ msgstr "Nahrávání fotografie…" msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Použijte barvu {color}" @@ -3951,4 +3951,3 @@ msgstr "Oddálit" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/da-DK.po b/locales/da-DK.po index 8b623265f..2dd82d57e 100644 --- a/locales/da-DK.po +++ b/locales/da-DK.po @@ -936,7 +936,7 @@ msgstr "Opretter dit CV..." msgid "Current Password" msgstr "Nuværende adgangskode" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Brugerdefineret" @@ -2548,7 +2548,7 @@ msgstr "Stilling" msgid "Preferences" msgstr "Præferencer" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Forudindstillinger" @@ -3717,7 +3717,7 @@ msgstr "Uploader billede..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Brug farve {color}" @@ -3951,4 +3951,3 @@ msgstr "Zoom ud" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/de-DE.po b/locales/de-DE.po index b01236b0a..a86c441f2 100644 --- a/locales/de-DE.po +++ b/locales/de-DE.po @@ -936,7 +936,7 @@ msgstr "Ihr Lebenslauf wird erstellt..." msgid "Current Password" msgstr "Aktuelles Passwort" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Benutzerdefiniert" @@ -2548,7 +2548,7 @@ msgstr "Position" msgid "Preferences" msgstr "Einstellungen" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Voreinstellungen" @@ -3717,7 +3717,7 @@ msgstr "Bild wird hochgeladen..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Verwenden Sie die Farbe {color}" @@ -3951,4 +3951,3 @@ msgstr "Herauszoomen" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/el-GR.po b/locales/el-GR.po index 8cdcf4601..4b6dfd47e 100644 --- a/locales/el-GR.po +++ b/locales/el-GR.po @@ -936,7 +936,7 @@ msgstr "Δημιουργία του βιογραφικού σας σημειώμ msgid "Current Password" msgstr "Τρέχων κωδικός πρόσβασης" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Προσαρμοσμένο" @@ -2548,7 +2548,7 @@ msgstr "Θέση" msgid "Preferences" msgstr "Προτιμήσεις" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Προεπιλογές" @@ -3717,7 +3717,7 @@ msgstr "Μεταφόρτωση φωτογραφίας..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Χρήση χρώματος {color}" @@ -3951,4 +3951,3 @@ msgstr "Σμίκρυνση" #: src/utils/locale.ts msgid "Zulu" msgstr "Ζουλού" - diff --git a/locales/en-GB.po b/locales/en-GB.po index 663bb698b..6d2b37b8c 100644 --- a/locales/en-GB.po +++ b/locales/en-GB.po @@ -936,7 +936,7 @@ msgstr "Creating your resume..." msgid "Current Password" msgstr "Current Password" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Custom" @@ -2548,7 +2548,7 @@ msgstr "Position" msgid "Preferences" msgstr "Preferences" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Presets" @@ -3717,7 +3717,7 @@ msgstr "Uploading picture..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Use color {color}" @@ -3951,4 +3951,3 @@ msgstr "Zoom out" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/en-US.po b/locales/en-US.po index 6de17c127..9511b05b8 100644 --- a/locales/en-US.po +++ b/locales/en-US.po @@ -931,7 +931,7 @@ msgstr "Creating your resume..." msgid "Current Password" msgstr "Current Password" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Custom" @@ -2543,7 +2543,7 @@ msgstr "Position" msgid "Preferences" msgstr "Preferences" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Presets" @@ -3712,7 +3712,7 @@ msgstr "Uploading picture..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Use color {color}" diff --git a/locales/es-ES.po b/locales/es-ES.po index c1244965f..d61c510c2 100644 --- a/locales/es-ES.po +++ b/locales/es-ES.po @@ -936,7 +936,7 @@ msgstr "Creando tu currículum..." msgid "Current Password" msgstr "Contraseña actual" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "A medida" @@ -2548,7 +2548,7 @@ msgstr "Puesto" msgid "Preferences" msgstr "Preferencias" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Preajustes" @@ -3717,7 +3717,7 @@ msgstr "Subiendo imagen..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Utilice el color {color}" @@ -3951,4 +3951,3 @@ msgstr "Alejar" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulú" - diff --git a/locales/fa-IR.po b/locales/fa-IR.po index ac247c990..e442df8e2 100644 --- a/locales/fa-IR.po +++ b/locales/fa-IR.po @@ -936,7 +936,7 @@ msgstr "در حال ایجاد رزومه شما..." msgid "Current Password" msgstr "گذرواژهٔ فعلی" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "سفارشی" @@ -2548,7 +2548,7 @@ msgstr "موقعیت شغلی" msgid "Preferences" msgstr "ترجیحات" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "پیش‌تنظیم‌ها" @@ -3717,7 +3717,7 @@ msgstr "در حال آپلود تصویر..." msgid "URL" msgstr "آدرس وبسایت" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "از رنگ استفاده کنید {color}" @@ -3951,4 +3951,3 @@ msgstr "کوچک‌نمایی" #: src/utils/locale.ts msgid "Zulu" msgstr "زولو" - diff --git a/locales/fi-FI.po b/locales/fi-FI.po index fc5a2cf4b..521045234 100644 --- a/locales/fi-FI.po +++ b/locales/fi-FI.po @@ -936,7 +936,7 @@ msgstr "Luodaan ansioluetteloasi..." msgid "Current Password" msgstr "Nykyinen salasana" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Custom" @@ -2548,7 +2548,7 @@ msgstr "Tehtävänimike" msgid "Preferences" msgstr "Asetukset" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Esiasetukset" @@ -3717,7 +3717,7 @@ msgstr "Ladataan kuvaa..." msgid "URL" msgstr "URL-osoite" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Käytä väriä {color}" @@ -3951,4 +3951,3 @@ msgstr "Loitonna" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/fr-FR.po b/locales/fr-FR.po index 40d77badb..4de6eec6e 100644 --- a/locales/fr-FR.po +++ b/locales/fr-FR.po @@ -936,7 +936,7 @@ msgstr "Création de votre CV..." msgid "Current Password" msgstr "Mot de passe actuel" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Sur mesure" @@ -2548,7 +2548,7 @@ msgstr "Poste" msgid "Preferences" msgstr "Préférences" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Préréglages" @@ -3717,7 +3717,7 @@ msgstr "Téléchargement de la photo..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Utilisez la couleur {color}" @@ -3951,4 +3951,3 @@ msgstr "Zoom arrière" #: src/utils/locale.ts msgid "Zulu" msgstr "Zoulou" - diff --git a/locales/he-IL.po b/locales/he-IL.po index 1982412ec..5e428dea6 100644 --- a/locales/he-IL.po +++ b/locales/he-IL.po @@ -936,7 +936,7 @@ msgstr "יוצר את קורות החיים שלך..." msgid "Current Password" msgstr "סיסמה נוכחית" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "מותאם אישית" @@ -2548,7 +2548,7 @@ msgstr "תפקיד" msgid "Preferences" msgstr "העדפות" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "הגדרות קבועות מראש" @@ -3717,7 +3717,7 @@ msgstr "מעלה תמונה..." msgid "URL" msgstr "כתובת" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "השתמש בצבע {color}" @@ -3951,4 +3951,3 @@ msgstr "התרחקות" #: src/utils/locale.ts msgid "Zulu" msgstr "זולו" - diff --git a/locales/hi-IN.po b/locales/hi-IN.po index ac26ae559..8caba9b85 100644 --- a/locales/hi-IN.po +++ b/locales/hi-IN.po @@ -936,7 +936,7 @@ msgstr "आपका रेज़्यूमे बनाया जा रह msgid "Current Password" msgstr "वर्तमान पासवर्ड" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "अनुकूलित" @@ -2548,7 +2548,7 @@ msgstr "पद" msgid "Preferences" msgstr "प्राथमिकताएँ" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "पूर्वनिर्धारित सेटिंग्स" @@ -3717,7 +3717,7 @@ msgstr "चित्र अपलोड किया जा रहा है..." msgid "URL" msgstr "यूआरएल" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "रंग का उपयोग करें {color}" @@ -3951,4 +3951,3 @@ msgstr "ज़ूम आउट" #: src/utils/locale.ts msgid "Zulu" msgstr "ज़ुलु" - diff --git a/locales/hu-HU.po b/locales/hu-HU.po index f95d023ca..cae82cad4 100644 --- a/locales/hu-HU.po +++ b/locales/hu-HU.po @@ -936,7 +936,7 @@ msgstr "Önéletrajz létrehozása..." msgid "Current Password" msgstr "Jelenlegi jelszó" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Custom" @@ -2548,7 +2548,7 @@ msgstr "Pozíció" msgid "Preferences" msgstr "Beállítások" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Előbeállítások" @@ -3717,7 +3717,7 @@ msgstr "Kép feltöltése..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Használja a {color} színt." @@ -3951,4 +3951,3 @@ msgstr "Kicsinyítés" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/id-ID.po b/locales/id-ID.po index 5cce3216a..1e12448a6 100644 --- a/locales/id-ID.po +++ b/locales/id-ID.po @@ -936,7 +936,7 @@ msgstr "Membuat resume Anda..." msgid "Current Password" msgstr "Kata Sandi Saat Ini" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Kustom" @@ -2548,7 +2548,7 @@ msgstr "Posisi" msgid "Preferences" msgstr "Preferensi" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Preset" @@ -3717,7 +3717,7 @@ msgstr "Mengunggah gambar..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Gunakan warna {color}" @@ -3951,4 +3951,3 @@ msgstr "Perkecil" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/it-IT.po b/locales/it-IT.po index 1f5290d40..0e994b30c 100644 --- a/locales/it-IT.po +++ b/locales/it-IT.po @@ -936,7 +936,7 @@ msgstr "Creazione del tuo curriculum in corso..." msgid "Current Password" msgstr "Password attuale" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Personalizzato" @@ -2548,7 +2548,7 @@ msgstr "Posizione" msgid "Preferences" msgstr "Preferenze" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Preset" @@ -3717,7 +3717,7 @@ msgstr "Caricamento dell'immagine in corso..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Utilizzi il colore {color}" @@ -3951,4 +3951,3 @@ msgstr "Rimpicciolisci" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/ja-JP.po b/locales/ja-JP.po index 41daa0317..28a82e4c6 100644 --- a/locales/ja-JP.po +++ b/locales/ja-JP.po @@ -936,7 +936,7 @@ msgstr "履歴書を作成しています..." msgid "Current Password" msgstr "現在のパスワード" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "カスタム" @@ -2548,7 +2548,7 @@ msgstr "役職" msgid "Preferences" msgstr "設定" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "プリセット" @@ -3717,7 +3717,7 @@ msgstr "写真をアップロードしています..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "カラーを使う {color}" @@ -3951,4 +3951,3 @@ msgstr "ズームアウト" #: src/utils/locale.ts msgid "Zulu" msgstr "ズールー語" - diff --git a/locales/km-KH.po b/locales/km-KH.po index 9ee7baa66..0c27759df 100644 --- a/locales/km-KH.po +++ b/locales/km-KH.po @@ -936,7 +936,7 @@ msgstr "កំពុង​បង្កើត​ប្រវត្តិរូប msgid "Current Password" msgstr "ពាក្យសម្ងាត់​បច្ចុប្បន្ន" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "ផ្ទាល់ខ្លួន" @@ -2548,7 +2548,7 @@ msgstr "តួនាទី" msgid "Preferences" msgstr "ចំណង់ចំណូលចិត្ត" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "កំណត់ជាមុន" @@ -3717,7 +3717,7 @@ msgstr "កំពុង​អាប់ឡូដ​រូបភាព..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "ប្រើពណ៌ {color}" @@ -3951,4 +3951,3 @@ msgstr "បង្រួម" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/kn-IN.po b/locales/kn-IN.po index 9cbc6230c..307bcff01 100644 --- a/locales/kn-IN.po +++ b/locales/kn-IN.po @@ -936,7 +936,7 @@ msgstr "ನಿಮ್ಮ ರೆಸ್ಯೂಮ್ ರಚಿಸಲಾಗುತ್ msgid "Current Password" msgstr "ಪ್ರಸ್ತುತ ಪಾಸ್‌ವರ್ಡ್" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "ಕಸ್ಟಮ್" @@ -2548,7 +2548,7 @@ msgstr "ಸ್ಥಾನ" msgid "Preferences" msgstr "ಆದ್ಯತೆಗಳು" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "ಪ್ರೀಸೆಟ್‌ಗಳು" @@ -3717,7 +3717,7 @@ msgstr "ಚಿತ್ರವನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾ msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "{color} ಬಣ್ಣವನ್ನು ಬಳಸಿ" @@ -3951,4 +3951,3 @@ msgstr "ಗಾತ್ರ ಕುಗ್ಗಿಸಿ" #: src/utils/locale.ts msgid "Zulu" msgstr "ಜೂಲೂ" - diff --git a/locales/ko-KR.po b/locales/ko-KR.po index e23904e99..267fa1fb4 100644 --- a/locales/ko-KR.po +++ b/locales/ko-KR.po @@ -936,7 +936,7 @@ msgstr "이력서를 생성하는 중입니다..." msgid "Current Password" msgstr "현재 비밀번호" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "사용자 지정" @@ -2548,7 +2548,7 @@ msgstr "직책" msgid "Preferences" msgstr "환경 설정" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "사전 설정" @@ -3717,7 +3717,7 @@ msgstr "사진을 업로드하는 중입니다..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "색상 사용 {color}" @@ -3951,4 +3951,3 @@ msgstr "축소" #: src/utils/locale.ts msgid "Zulu" msgstr "줄루어" - diff --git a/locales/lt-LT.po b/locales/lt-LT.po index 22fe85f17..071c01ab0 100644 --- a/locales/lt-LT.po +++ b/locales/lt-LT.po @@ -936,7 +936,7 @@ msgstr "Kuriamas jūsų gyvenimo aprašymas..." msgid "Current Password" msgstr "Dabartinis slaptažodis" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Pasirinktinis" @@ -2548,7 +2548,7 @@ msgstr "Pareigos" msgid "Preferences" msgstr "Nustatymai" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Išankstiniai nustatymai" @@ -3717,7 +3717,7 @@ msgstr "Įkeliamas paveikslėlis..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Naudokite spalvą {color}" @@ -3951,4 +3951,3 @@ msgstr "Tolinti" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulų" - diff --git a/locales/lv-LV.po b/locales/lv-LV.po index efb9cde2a..7acf723a8 100644 --- a/locales/lv-LV.po +++ b/locales/lv-LV.po @@ -936,7 +936,7 @@ msgstr "Tiek izveidots jūsu CV..." msgid "Current Password" msgstr "Pašreizējā parole" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Pielāgots" @@ -2548,7 +2548,7 @@ msgstr "Amats" msgid "Preferences" msgstr "Preferences" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Sākotnējie iestatījumi" @@ -3717,7 +3717,7 @@ msgstr "Augšupielādē attēlu..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Izmantojiet krāsu {color}" @@ -3951,4 +3951,3 @@ msgstr "Tālināt" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/ml-IN.po b/locales/ml-IN.po index 97b5d1d70..56ca77c94 100644 --- a/locales/ml-IN.po +++ b/locales/ml-IN.po @@ -936,7 +936,7 @@ msgstr "നിങ്ങളുടെ റിസ്യൂം സൃഷ്‌ടി msgid "Current Password" msgstr "നിലവിലെ പാസ്‌വേഡ്" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "ഇഷ്ടാനുസൃതം" @@ -2548,7 +2548,7 @@ msgstr "പദവി" msgid "Preferences" msgstr "പ്രിഫറൻസുകൾ" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "മുൻകൂട്ടി ക്രമീകരിച്ച ക്രമീകരണങ്ങൾ" @@ -3717,7 +3717,7 @@ msgstr "ചിത്രം അപ്‌ലോഡ് ചെയ്യുന്ന msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "നിറം ഉപയോഗിക്കുക {color}" @@ -3951,4 +3951,3 @@ msgstr "സൂം ഔട്ട് ചെയ്യുക" #: src/utils/locale.ts msgid "Zulu" msgstr "സൂളു" - diff --git a/locales/mr-IN.po b/locales/mr-IN.po index dacb8e9e8..92db445c2 100644 --- a/locales/mr-IN.po +++ b/locales/mr-IN.po @@ -936,7 +936,7 @@ msgstr "तुमचा रेझ्युमे तयार केला ज msgid "Current Password" msgstr "वर्तमान पासवर्ड" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "सानुकूल" @@ -2548,7 +2548,7 @@ msgstr "पद" msgid "Preferences" msgstr "प्राधान्ये" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "पूर्वनिर्धारित सेटिंग्ज" @@ -3717,7 +3717,7 @@ msgstr "चित्र अपलोड केले जात आहे..." msgid "URL" msgstr "यूआरएल" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "रंग वापरा {color}" @@ -3951,4 +3951,3 @@ msgstr "बाहेर झूम करा" #: src/utils/locale.ts msgid "Zulu" msgstr "झुलू" - diff --git a/locales/ms-MY.po b/locales/ms-MY.po index 73b3e132c..b9d72c693 100644 --- a/locales/ms-MY.po +++ b/locales/ms-MY.po @@ -936,7 +936,7 @@ msgstr "Mencipta resume anda..." msgid "Current Password" msgstr "Kata Laluan Semasa" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Kustom" @@ -2548,7 +2548,7 @@ msgstr "Kedudukan" msgid "Preferences" msgstr "Keutamaan" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Praset" @@ -3717,7 +3717,7 @@ msgstr "Memuat naik gambar..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Gunakan warna {color}" @@ -3951,4 +3951,3 @@ msgstr "Zum keluar" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/ne-NP.po b/locales/ne-NP.po index 32981a404..632efb26b 100644 --- a/locales/ne-NP.po +++ b/locales/ne-NP.po @@ -936,7 +936,7 @@ msgstr "तपाईंको बायोडाटा बनाउँदै..." msgid "Current Password" msgstr "हालको पासवर्ड" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "अनुकूलित" @@ -2548,7 +2548,7 @@ msgstr "पद" msgid "Preferences" msgstr "प्राथमिकता (Preferences)" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "पूर्वनिर्धारित सेटिङहरू" @@ -3717,7 +3717,7 @@ msgstr "तस्बिर अपलोड हुँदैछ..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "रङ प्रयोग गर्नुहोस् {color}" @@ -3951,4 +3951,3 @@ msgstr "जूम आउट" #: src/utils/locale.ts msgid "Zulu" msgstr "जुलु" - diff --git a/locales/nl-NL.po b/locales/nl-NL.po index aaae80ef4..cb2395a5a 100644 --- a/locales/nl-NL.po +++ b/locales/nl-NL.po @@ -936,7 +936,7 @@ msgstr "Uw cv wordt aangemaakt..." msgid "Current Password" msgstr "Huidige wachtwoord" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Aangepaste" @@ -2548,7 +2548,7 @@ msgstr "Positie" msgid "Preferences" msgstr "Voorkeuren" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Presets" @@ -3717,7 +3717,7 @@ msgstr "Foto wordt geüpload..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Gebruik kleur {color}" @@ -3951,4 +3951,3 @@ msgstr "Uitzoomen" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/no-NO.po b/locales/no-NO.po index 1158a2589..cf00b392b 100644 --- a/locales/no-NO.po +++ b/locales/no-NO.po @@ -936,7 +936,7 @@ msgstr "Oppretter CV-en din..." msgid "Current Password" msgstr "Nåværende passord" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Egendefinert" @@ -2548,7 +2548,7 @@ msgstr "Posisjon" msgid "Preferences" msgstr "Preferanser" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Forhåndsinnstillinger" @@ -3717,7 +3717,7 @@ msgstr "Laster opp bilde..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Bruk fargen {color}" @@ -3951,4 +3951,3 @@ msgstr "Zoom ut" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/or-IN.po b/locales/or-IN.po index 771fc98b9..7309c2239 100644 --- a/locales/or-IN.po +++ b/locales/or-IN.po @@ -936,7 +936,7 @@ msgstr "ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ତିଆରି ହେଉଛ msgid "Current Password" msgstr "ବର୍ତ୍ତମାନର ପାସୱାର୍ଡ" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "କଷ୍ଟମ୍" @@ -2548,7 +2548,7 @@ msgstr "ପଦବୀ" msgid "Preferences" msgstr "ପସନ୍ଦ" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "ପ୍ରିସେଟ୍‌ଗୁଡିକ" @@ -3717,7 +3717,7 @@ msgstr "ଛବି ଅପଲୋଡ୍ ହେଉଛି..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "{color} ରଙ୍ଗ ବ୍ୟବହାର କରନ୍ତୁ" @@ -3951,4 +3951,3 @@ msgstr "ଜୁମ୍ ଆଉଟ୍ କରନ୍ତୁ" #: src/utils/locale.ts msgid "Zulu" msgstr "ଜୁଲୁ" - diff --git a/locales/pl-PL.po b/locales/pl-PL.po index d3f5307e9..7b910d6a2 100644 --- a/locales/pl-PL.po +++ b/locales/pl-PL.po @@ -936,7 +936,7 @@ msgstr "Tworzenie CV..." msgid "Current Password" msgstr "Obecne hasło" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Niestandardowe" @@ -2548,7 +2548,7 @@ msgstr "Stanowisko" msgid "Preferences" msgstr "Preferencje" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Ustawienia wstępne" @@ -3717,7 +3717,7 @@ msgstr "Wysyłanie zdjęcia..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Proszę użyć koloru {color}" @@ -3951,4 +3951,3 @@ msgstr "Pomniejsz" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/pt-BR.po b/locales/pt-BR.po index 3e985c442..5a2f5ab72 100644 --- a/locales/pt-BR.po +++ b/locales/pt-BR.po @@ -936,7 +936,7 @@ msgstr "Criando seu currículo..." msgid "Current Password" msgstr "Senha atual" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Personalizado" @@ -2548,7 +2548,7 @@ msgstr "Posição" msgid "Preferences" msgstr "Preferências" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Predefinições" @@ -3717,7 +3717,7 @@ msgstr "Enviando foto..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Use a cor {color}" @@ -3951,4 +3951,3 @@ msgstr "Diminuir zoom" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/pt-PT.po b/locales/pt-PT.po index d34c9b86d..56a5f3dbc 100644 --- a/locales/pt-PT.po +++ b/locales/pt-PT.po @@ -936,7 +936,7 @@ msgstr "A criar o seu currículo..." msgid "Current Password" msgstr "Senha atual" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Personalizado" @@ -2548,7 +2548,7 @@ msgstr "Cargo" msgid "Preferences" msgstr "Preferências" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Predefinições" @@ -3717,7 +3717,7 @@ msgstr "A carregar foto..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Utilize a cor {color}" @@ -3951,4 +3951,3 @@ msgstr "Afastar" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/ro-RO.po b/locales/ro-RO.po index d47df8d7f..c2c3a310a 100644 --- a/locales/ro-RO.po +++ b/locales/ro-RO.po @@ -936,7 +936,7 @@ msgstr "Se creează CV-ul..." msgid "Current Password" msgstr "Parolă curentă" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Personalizat" @@ -2548,7 +2548,7 @@ msgstr "Poziție" msgid "Preferences" msgstr "Preferințe" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Presetări" @@ -3717,7 +3717,7 @@ msgstr "Se încarcă imaginea..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Utilizați culoarea {color}" @@ -3951,4 +3951,3 @@ msgstr "Micșorează" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/ru-RU.po b/locales/ru-RU.po index 4a20f8e02..5a50e1534 100644 --- a/locales/ru-RU.po +++ b/locales/ru-RU.po @@ -936,7 +936,7 @@ msgstr "Создание вашего резюме..." msgid "Current Password" msgstr "Текущий пароль" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Пользовательский" @@ -2548,7 +2548,7 @@ msgstr "Должность" msgid "Preferences" msgstr "Настройки" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Пресеты" @@ -3717,7 +3717,7 @@ msgstr "Загрузка фотографии..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Используйте цвет {color}" @@ -3951,4 +3951,3 @@ msgstr "Уменьшить" #: src/utils/locale.ts msgid "Zulu" msgstr "Зулу" - diff --git a/locales/sk-SK.po b/locales/sk-SK.po index b97ea578b..6be347408 100644 --- a/locales/sk-SK.po +++ b/locales/sk-SK.po @@ -936,7 +936,7 @@ msgstr "Vytváram tvoj životopis..." msgid "Current Password" msgstr "Aktuálne heslo" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Vlastné" @@ -2548,7 +2548,7 @@ msgstr "Pozícia" msgid "Preferences" msgstr "Predvoľby" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Prednastavenia" @@ -3717,7 +3717,7 @@ msgstr "Nahrávam fotografiu..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Používanie farieb {color}" @@ -3951,4 +3951,3 @@ msgstr "Oddialiť" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/sl-SI.po b/locales/sl-SI.po index 18e8230ce..210584e51 100644 --- a/locales/sl-SI.po +++ b/locales/sl-SI.po @@ -936,7 +936,7 @@ msgstr "Ustvarjanje vašega življenjepisa..." msgid "Current Password" msgstr "Trenutno geslo" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Po meri" @@ -2548,7 +2548,7 @@ msgstr "Položaj" msgid "Preferences" msgstr "Nastavitve" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Prednastavitve" @@ -3717,7 +3717,7 @@ msgstr "Nalaganje slike..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Uporaba barve {color}" @@ -3951,4 +3951,3 @@ msgstr "Oddalji" #: src/utils/locale.ts msgid "Zulu" msgstr "Zuluščina" - diff --git a/locales/sq-AL.po b/locales/sq-AL.po index d1861e0f2..41fefe02b 100644 --- a/locales/sq-AL.po +++ b/locales/sq-AL.po @@ -936,7 +936,7 @@ msgstr "Po krijohet CV-ja juaj..." msgid "Current Password" msgstr "Fjalëkalimi aktual" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Sipas porosisë" @@ -2548,7 +2548,7 @@ msgstr "Pozicioni" msgid "Preferences" msgstr "Preferenca" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Paracaktimet" @@ -3717,7 +3717,7 @@ msgstr "Po ngarkohet foto..." msgid "URL" msgstr "Linku" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Përdor ngjyrën {color}" @@ -3951,4 +3951,3 @@ msgstr "Zvogëlo" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/sr-SP.po b/locales/sr-SP.po index 2e45bbd68..dc4f5556f 100644 --- a/locales/sr-SP.po +++ b/locales/sr-SP.po @@ -936,7 +936,7 @@ msgstr "Креирање вашег резимеа..." msgid "Current Password" msgstr "Тренутна лозинка" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "По мери" @@ -2548,7 +2548,7 @@ msgstr "Позиција" msgid "Preferences" msgstr "Поставке" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Предефинисања" @@ -3717,7 +3717,7 @@ msgstr "Отпремање слике..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Користи боју {color}" @@ -3951,4 +3951,3 @@ msgstr "Умањи" #: src/utils/locale.ts msgid "Zulu" msgstr "Зулу" - diff --git a/locales/sv-SE.po b/locales/sv-SE.po index 6ecf0a2ba..82f01278e 100644 --- a/locales/sv-SE.po +++ b/locales/sv-SE.po @@ -936,7 +936,7 @@ msgstr "Skapar ditt CV..." msgid "Current Password" msgstr "Nuvarande lösenord" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Anpassad" @@ -2548,7 +2548,7 @@ msgstr "Position" msgid "Preferences" msgstr "Inställningar" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Förinställningar" @@ -3717,7 +3717,7 @@ msgstr "Laddar upp bild..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Använd färg {color}" @@ -3951,4 +3951,3 @@ msgstr "Zooma ut" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/ta-IN.po b/locales/ta-IN.po index e361492c3..3b0b9caff 100644 --- a/locales/ta-IN.po +++ b/locales/ta-IN.po @@ -936,7 +936,7 @@ msgstr "உங்கள் ரெஸ்யூமியை உருவாக் msgid "Current Password" msgstr "தற்போதைய கடவுச்சொல்" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "தனிப்பயன்" @@ -2548,7 +2548,7 @@ msgstr "பதவி" msgid "Preferences" msgstr "விருப்பங்கள்" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "முன்வழங்கல்கள்" @@ -3717,7 +3717,7 @@ msgstr "படத்தை பதிவேற்றிக் கொண்டி msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "வண்ணத்தைப் பயன்படுத்துங்கள் {color}" @@ -3951,4 +3951,3 @@ msgstr "சிறிதாக்கு" #: src/utils/locale.ts msgid "Zulu" msgstr "ஜூலு" - diff --git a/locales/te-IN.po b/locales/te-IN.po index 8e28b03b9..62f966f90 100644 --- a/locales/te-IN.po +++ b/locales/te-IN.po @@ -936,7 +936,7 @@ msgstr "మీ రిజ్యూమ్ సృష్టించబడుతో msgid "Current Password" msgstr "ప్రస్తుత పాస్‌వర్డ్" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "స్వంతం" @@ -2548,7 +2548,7 @@ msgstr "పాజిషన్" msgid "Preferences" msgstr "ప్రాధాన్యతలు" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "ప్రీసెట్‌లు" @@ -3717,7 +3717,7 @@ msgstr "చిత్రాన్ని అప్‌లోడ్ చేస్త msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "రంగును ఉపయోగించండి {color}" @@ -3951,4 +3951,3 @@ msgstr "జూమ్ అవుట్ చేయండి" #: src/utils/locale.ts msgid "Zulu" msgstr "జులు" - diff --git a/locales/th-TH.po b/locales/th-TH.po index 6de017cb2..020926a83 100644 --- a/locales/th-TH.po +++ b/locales/th-TH.po @@ -936,7 +936,7 @@ msgstr "กำลังสร้างเรซูเม่ของคุณ... msgid "Current Password" msgstr "รหัสผ่านเดิม" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "กำหนดเอง" @@ -2548,7 +2548,7 @@ msgstr "ตำแหน่ง" msgid "Preferences" msgstr "การตั้งค่าที่ต้องการ" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "ค่าที่ตั้งไว้ล่วงหน้า" @@ -3717,7 +3717,7 @@ msgstr "กำลังอัปโหลดรูปภาพ..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "ใช้สี {color}" @@ -3951,4 +3951,3 @@ msgstr "ซูมออก" #: src/utils/locale.ts msgid "Zulu" msgstr "ซูลู" - diff --git a/locales/tr-TR.po b/locales/tr-TR.po index 9de8cb8a2..68ec8ce19 100644 --- a/locales/tr-TR.po +++ b/locales/tr-TR.po @@ -936,7 +936,7 @@ msgstr "Özgeçmişiniz oluşturuluyor..." msgid "Current Password" msgstr "Geçerli Parola" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Özel" @@ -2548,7 +2548,7 @@ msgstr "Pozisyon" msgid "Preferences" msgstr "Tercihler" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Ön Ayarlar" @@ -3717,7 +3717,7 @@ msgstr "Resim yükleniyor..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Renk kullanın {color}" @@ -3951,4 +3951,3 @@ msgstr "Uzaklaştır" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/uk-UA.po b/locales/uk-UA.po index 9f64b6e14..d78e30a0b 100644 --- a/locales/uk-UA.po +++ b/locales/uk-UA.po @@ -936,7 +936,7 @@ msgstr "Створення вашого резюме..." msgid "Current Password" msgstr "Поточний пароль" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Нестандартний" @@ -2548,7 +2548,7 @@ msgstr "Посада" msgid "Preferences" msgstr "Налаштування" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Пресети" @@ -3717,7 +3717,7 @@ msgstr "Завантаження зображення..." msgid "URL" msgstr "URL-адреса" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Використовуйте колір {color}" @@ -3951,4 +3951,3 @@ msgstr "Зменшити" #: src/utils/locale.ts msgid "Zulu" msgstr "Зулу" - diff --git a/locales/uz-UZ.po b/locales/uz-UZ.po index a43dfe42d..263df9982 100644 --- a/locales/uz-UZ.po +++ b/locales/uz-UZ.po @@ -936,7 +936,7 @@ msgstr "Rezyumingiz yaratilmoqda..." msgid "Current Password" msgstr "Joriy parol" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Moslashtirilgan" @@ -2548,7 +2548,7 @@ msgstr "Lavozim" msgid "Preferences" msgstr "Afzalliklar" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Oldindan sozlamalar" @@ -3717,7 +3717,7 @@ msgstr "Rasm yuklanmoqda..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Rangdan foydalaning {color}" @@ -3951,4 +3951,3 @@ msgstr "Kichraytirish" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/vi-VN.po b/locales/vi-VN.po index 0e758fd9f..0072b1958 100644 --- a/locales/vi-VN.po +++ b/locales/vi-VN.po @@ -936,7 +936,7 @@ msgstr "Đang tạo sơ yếu lý lịch của bạn..." msgid "Current Password" msgstr "Mật khẩu hiện tại" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "Tùy chỉnh" @@ -2548,7 +2548,7 @@ msgstr "Vị trí" msgid "Preferences" msgstr "Tùy chọn" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "Cài đặt sẵn" @@ -3717,7 +3717,7 @@ msgstr "Đang tải lên hình ảnh..." msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "Sử dụng màu {color}" @@ -3951,4 +3951,3 @@ msgstr "Thu nhỏ" #: src/utils/locale.ts msgid "Zulu" msgstr "Zulu" - diff --git a/locales/zh-CN.po b/locales/zh-CN.po index 676e1db74..b1206eb1e 100644 --- a/locales/zh-CN.po +++ b/locales/zh-CN.po @@ -936,7 +936,7 @@ msgstr "正在创建你的简历…" msgid "Current Password" msgstr "当前密码" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "定制" @@ -2548,7 +2548,7 @@ msgstr "职位" msgid "Preferences" msgstr "偏好设置" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "预设" @@ -3717,7 +3717,7 @@ msgstr "正在上传图片…" msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "使用颜色 {color}" @@ -3951,4 +3951,3 @@ msgstr "缩小" #: src/utils/locale.ts msgid "Zulu" msgstr "祖鲁语" - diff --git a/locales/zh-TW.po b/locales/zh-TW.po index a42d0c71f..d9ff20246 100644 --- a/locales/zh-TW.po +++ b/locales/zh-TW.po @@ -936,7 +936,7 @@ msgstr "正在建立您的履歷…" msgid "Current Password" msgstr "目前密碼" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "自訂" @@ -2548,7 +2548,7 @@ msgstr "職位" msgid "Preferences" msgstr "偏好設定" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "預設值" @@ -3717,7 +3717,7 @@ msgstr "正在上傳圖片…" msgid "URL" msgstr "URL" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "使用顏色 {color}" @@ -3951,4 +3951,3 @@ msgstr "縮小" #: src/utils/locale.ts msgid "Zulu" msgstr "祖魯語" - diff --git a/locales/zu-ZA.po b/locales/zu-ZA.po index d0b1d2bb8..cae14d316 100644 --- a/locales/zu-ZA.po +++ b/locales/zu-ZA.po @@ -931,7 +931,7 @@ msgstr "" msgid "Current Password" msgstr "" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Custom" msgstr "" @@ -2543,7 +2543,7 @@ msgstr "" msgid "Preferences" msgstr "" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Presets" msgstr "" @@ -3712,7 +3712,7 @@ msgstr "" msgid "URL" msgstr "" -#: src/components/input/rich-input.tsx +#: src/components/input/color-picker.tsx msgid "Use color {color}" msgstr "" diff --git a/src/components/input/color-picker.tsx b/src/components/input/color-picker.tsx index 8748b8e26..b819710f3 100644 --- a/src/components/input/color-picker.tsx +++ b/src/components/input/color-picker.tsx @@ -1,18 +1,43 @@ +import { t } from "@lingui/core/macro"; +import { Trans } from "@lingui/react/macro"; import { type ColorResult, hsvaToRgbaString, rgbaStringToHsva } from "@uiw/color-convert"; import ReactColorColorful from "@uiw/react-color-colorful"; import { useMemo } from "react"; import { useControlledState } from "@/hooks/use-controlled-state"; +import { cn } from "@/utils/style"; import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover"; +import { Separator } from "../ui/separator"; + +const presetColors = [ + "rgba(0, 0, 0, 1)", + "rgba(231, 0, 11, 1)", + "rgba(245, 73, 0, 1)", + "rgba(225, 113, 0, 1)", + "rgba(208, 135, 0, 1)", + "rgba(94, 165, 0, 1)", + "rgba(0, 166, 62, 1)", + "rgba(0, 153, 102, 1)", + "rgba(0, 146, 184, 1)", + "rgba(0, 132, 209, 1)", + "rgba(21, 93, 252, 1)", + "rgba(79, 57, 246, 1)", + "rgba(127, 34, 254, 1)", + "rgba(200, 0, 222, 1)", + "rgba(230, 0, 118, 1)", + "rgba(69, 85, 108, 1)", +] as const; type ColorPickerProps = { value?: string; defaultValue?: string; onChange?: (value: string) => void; + trigger?: React.ReactNode; + children?: React.ReactNode; }; -export function ColorPicker({ value, defaultValue, onChange }: ColorPickerProps) { +export function ColorPicker({ value, defaultValue, onChange, trigger, children }: ColorPickerProps) { const [currentValue, setCurrentValue] = useControlledState({ value, defaultValue, @@ -28,15 +53,56 @@ export function ColorPicker({ value, defaultValue, onChange }: ColorPickerProps) return ( - -
- + {trigger ?? ( + +
+ + )} - - + + {children && ( + <> + {children} + + + )} + +
+ + Presets + + +
+ {presetColors.map((color) => ( +
+
+ +
+ + Custom + + +
+ +
+
); diff --git a/src/components/input/rich-input.module.css b/src/components/input/rich-input.module.css index 80564b818..39a210b75 100644 --- a/src/components/input/rich-input.module.css +++ b/src/components/input/rich-input.module.css @@ -176,26 +176,3 @@ text-underline-offset: 0.15rem; } } - -.color_picker { - overflow: hidden; - border-radius: var(--radius-lg); - background: var(--color-muted); - padding: 0.5rem; - - > :global(*) { - width: 100% !important; - } - - :global(.w-color-saturation) { - height: 8.5rem !important; - border-radius: calc(var(--radius-lg) - 0.25rem) !important; - } - - :global(.w-color-hue), - :global(.w-color-alpha) { - height: 0.75rem !important; - margin-top: 0.5rem !important; - border-radius: 9999px !important; - } -} diff --git a/src/components/input/rich-input.tsx b/src/components/input/rich-input.tsx index 6d6622de7..b86388c20 100644 --- a/src/components/input/rich-input.tsx +++ b/src/components/input/rich-input.tsx @@ -52,8 +52,6 @@ import { useEditorState, } from "@tiptap/react"; import StarterKit from "@tiptap/starter-kit"; -import { type ColorResult, hsvaToRgbaString, rgbaStringToHsva } from "@uiw/color-convert"; -import ReactColorColorful from "@uiw/react-color-colorful"; import { useMemo, useState } from "react"; import { toast } from "sonner"; import { match } from "ts-pattern"; @@ -69,37 +67,18 @@ import { DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; -import { Popover, PopoverContent, PopoverHeader, PopoverTitle, PopoverTrigger } from "@/components/ui/popover"; -import { Separator } from "@/components/ui/separator"; +import { PopoverHeader, PopoverTitle, PopoverTrigger } from "@/components/ui/popover"; import { usePrompt } from "@/hooks/use-prompt"; import { isRTL } from "@/utils/locale"; import { sanitizeHtml } from "@/utils/sanitize"; import { cn } from "@/utils/style"; import { Toggle } from "../ui/toggle"; +import { ColorPicker } from "./color-picker"; import styles from "./rich-input.module.css"; const defaultTextColor = "rgba(0, 0, 0, 1)"; -const richTextColorOptions = [ - "rgba(0, 0, 0, 1)", - "rgba(231, 0, 11, 1)", - "rgba(245, 73, 0, 1)", - "rgba(225, 113, 0, 1)", - "rgba(208, 135, 0, 1)", - "rgba(94, 165, 0, 1)", - "rgba(0, 166, 62, 1)", - "rgba(0, 153, 102, 1)", - "rgba(0, 146, 184, 1)", - "rgba(0, 132, 209, 1)", - "rgba(21, 93, 252, 1)", - "rgba(79, 57, 246, 1)", - "rgba(127, 34, 254, 1)", - "rgba(200, 0, 222, 1)", - "rgba(230, 0, 118, 1)", - "rgba(69, 85, 108, 1)", -] as const; - const extensions = [ StarterKit.configure({ heading: { @@ -461,103 +440,65 @@ function EditorToolbar({ editor, isFullscreen }: { editor: Editor; isFullscreen: - - - - A - - - - } - /> - - - -
- - A - - -
- - Text Color - - - - Choose a preset or custom shade. - + + A + -
-
- - -
- - - -
- - Presets + A -
- {richTextColorOptions.map((color) => ( -
-
- - Custom - - -
- { - state.setTextColor(hsvaToRgbaString(color.hsva)); - }} - /> -
-
- - + + +
diff --git a/src/components/resume/shared/items/interests-item.tsx b/src/components/resume/shared/items/interests-item.tsx index 76ef80902..13111d5ae 100644 --- a/src/components/resume/shared/items/interests-item.tsx +++ b/src/components/resume/shared/items/interests-item.tsx @@ -13,7 +13,7 @@ export function InterestsItem({ className, ...item }: InterestsItemProps) {
{/* Header */}
- + {item.name}
diff --git a/src/components/resume/shared/items/profiles-item.tsx b/src/components/resume/shared/items/profiles-item.tsx index ba5ec9df8..a849d6d47 100644 --- a/src/components/resume/shared/items/profiles-item.tsx +++ b/src/components/resume/shared/items/profiles-item.tsx @@ -15,7 +15,7 @@ export function ProfilesItem({ className, ...item }: ProfilesItemProps) {
{/* Header */}
- + {/* Header */}
- + {item.name}
diff --git a/src/components/resume/shared/page-icon.tsx b/src/components/resume/shared/page-icon.tsx index 89ea91631..e2a58af40 100644 --- a/src/components/resume/shared/page-icon.tsx +++ b/src/components/resume/shared/page-icon.tsx @@ -5,7 +5,7 @@ import { cn } from "@/utils/style"; import type { ExtendedIconProps } from "../preview"; -export function PageIcon({ icon, className }: { icon: string; className?: string }) { +export function PageIcon({ icon, color, className }: { icon: string; color?: string; className?: string }) { const iconContext = use(IconContext); if (!icon || iconContext.hidden) return null; @@ -13,7 +13,7 @@ export function PageIcon({ icon, className }: { icon: string; className?: string return ( ); } diff --git a/src/components/resume/store/resume.test.ts b/src/components/resume/store/resume.test.ts index 3076287d8..2e97a8f4e 100644 --- a/src/components/resume/store/resume.test.ts +++ b/src/components/resume/store/resume.test.ts @@ -115,6 +115,7 @@ describe("useResumeStore — updateResumeData", () => { id: "s1", hidden: false, icon: "", + iconColor: "", name: "TypeScript", proficiency: "Advanced", level: 4, @@ -246,7 +247,16 @@ describe("useResumeStore — edge cases", () => { it("can remove all items from a section", () => { const resume = makeResume(); resume.data.sections.skills.items = [ - { id: "s1", hidden: false, icon: "", name: "JS", proficiency: "", level: 0, keywords: [] }, + { + id: "s1", + hidden: false, + icon: "", + iconColor: "", + name: "JS", + proficiency: "", + level: 0, + keywords: [], + }, ]; useResumeStore.getState().initialize(resume); diff --git a/src/components/ui/combobox.tsx b/src/components/ui/combobox.tsx index e3346bef7..ac855313d 100644 --- a/src/components/ui/combobox.tsx +++ b/src/components/ui/combobox.tsx @@ -99,7 +99,7 @@ function ComboboxContent({ data-slot="combobox-content" data-chips={!!anchor} className={cn( - "group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-60 origin-(--transform-origin) overflow-hidden rounded-md bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", + "group/combobox-content relative max-h-(--available-height) max-w-fit min-w-(--anchor-width) origin-(--transform-origin) overflow-hidden rounded-md bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className, )} {...props} diff --git a/src/components/ui/context-menu.tsx b/src/components/ui/context-menu.tsx index 61ab961ff..5ae4c3e5e 100644 --- a/src/components/ui/context-menu.tsx +++ b/src/components/ui/context-menu.tsx @@ -44,7 +44,7 @@ function ContextMenuContent({ + } /> @@ -165,11 +173,37 @@ function InterestForm() { Name - } /> + } /> )} /> + + ( + + +
+ + } + /> + } + /> + + )} + />
+ } />
@@ -169,11 +177,37 @@ function ProfileForm() { Network - } /> + } /> )} /> + + ( + + +
+ + } + /> + } + /> + + )} + />
+ } />
@@ -171,11 +179,37 @@ function SkillForm() { Name - } /> + } /> )} /> + + ( + + +
+ + } + /> + } + /> + + )} + />
{ id: "s1", hidden: false, icon: "star", + iconColor: "", name: "TypeScript", proficiency: "Advanced", level: 4, diff --git a/src/integrations/import/json-resume.tsx b/src/integrations/import/json-resume.tsx index 81706f97a..0b98d8934 100644 --- a/src/integrations/import/json-resume.tsx +++ b/src/integrations/import/json-resume.tsx @@ -280,6 +280,7 @@ export class JSONResumeImporter { id: generateId(), hidden: false, icon: "star", + iconColor: "", name: skill.name || "", proficiency: skill.level || "", level: parseLevel(skill.level), @@ -314,6 +315,7 @@ export class JSONResumeImporter { id: generateId(), hidden: false, icon: "star", + iconColor: "", name: interest.name || "", keywords: interest.keywords || [], })), @@ -420,6 +422,7 @@ export class JSONResumeImporter { id: generateId(), hidden: false, icon: getNetworkIcon(profile.network), + iconColor: "", network: profile.network || "", username: profile.username || "", website: createUrl(profile.url, profile.username || profile.network), diff --git a/src/integrations/import/reactive-resume-v4-json.tsx b/src/integrations/import/reactive-resume-v4-json.tsx index 0bd6648aa..58fec141f 100644 --- a/src/integrations/import/reactive-resume-v4-json.tsx +++ b/src/integrations/import/reactive-resume-v4-json.tsx @@ -456,6 +456,7 @@ export class ReactiveResumeV4JSONImporter { id: item.id ?? generateId(), hidden: !(item.visible ?? true), icon: item.icon ?? "", + iconColor: "", network: item.network!, username: item.username ?? "", website: { @@ -535,6 +536,7 @@ export class ReactiveResumeV4JSONImporter { id: item.id ?? generateId(), hidden: !(item.visible ?? true), icon: "", + iconColor: "", name: item.name!, proficiency: item.description ?? "", level: clampLevel(item.level ?? 0), @@ -565,6 +567,7 @@ export class ReactiveResumeV4JSONImporter { id: item.id ?? generateId(), hidden: !(item.visible ?? true), icon: "", + iconColor: "", name: item.name!, keywords: item.keywords ?? [], })), diff --git a/src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx b/src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx index 303b1e306..7e49b7e6d 100644 --- a/src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx +++ b/src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx @@ -121,7 +121,7 @@ export function SectionDropdownMenu({ type }: Props) { } /> - + {type !== "summary" && ( <> diff --git a/src/routes/schema[.]json.ts b/src/routes/schema[.]json.ts index 5bc4173e5..3834aa3ff 100644 --- a/src/routes/schema[.]json.ts +++ b/src/routes/schema[.]json.ts @@ -14,7 +14,7 @@ function handler() { "Surrogate-Control": "max-age=86400", "X-Content-Type-Options": "nosniff", "X-Robots-Tag": "index, follow", - ETag: `"v5.0.0"`, + ETag: __APP_VERSION__, Vary: "Accept", }, }); diff --git a/src/schema/resume/data.ts b/src/schema/resume/data.ts index a30171d45..80c52a14d 100644 --- a/src/schema/resume/data.ts +++ b/src/schema/resume/data.ts @@ -8,6 +8,13 @@ export const iconSchema = z "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available.", ); +export const iconColorSchema = z + .string() + .catch("") + .describe( + "Optional custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color.", + ); + export const itemOptionsSchema = z .object({ showLinkInTitle: z @@ -164,6 +171,7 @@ export const experienceItemSchema = baseItemSchema.extend({ export const interestItemSchema = baseItemSchema.extend({ icon: iconSchema, + iconColor: iconColorSchema, name: z.string().min(1).describe("The name of the interest/hobby."), keywords: z .array(z.string()) @@ -190,6 +198,7 @@ export const languageItemSchema = baseItemSchema.extend({ export const profileItemSchema = baseItemSchema.extend({ icon: iconSchema, + iconColor: iconColorSchema, network: z.string().min(1).describe("The name of the network or platform."), username: z.string().describe("The username of the author on the network or platform."), website: urlSchema.describe("The link to the profile of the author on the network or platform, if any."), @@ -224,6 +233,7 @@ export const referenceItemSchema = baseItemSchema.extend({ export const skillItemSchema = baseItemSchema.extend({ icon: iconSchema, + iconColor: iconColorSchema, name: z.string().min(1).describe("The name of the skill."), proficiency: z .string() diff --git a/src/schema/resume/sample.ts b/src/schema/resume/sample.ts index 75896cb8a..f2c57ac7b 100644 --- a/src/schema/resume/sample.ts +++ b/src/schema/resume/sample.ts @@ -55,6 +55,7 @@ export const sampleResumeData: ResumeData = { id: "019bef5a-93e4-7746-ad39-3d42ddc9b4d8", hidden: false, icon: "github-logo", + iconColor: "", network: "GitHub", username: "dkowalski-dev", website: { @@ -66,6 +67,7 @@ export const sampleResumeData: ResumeData = { id: "019bef5a-93e4-7746-ad39-43c470b77f4a", hidden: false, icon: "linkedin-logo", + iconColor: "", network: "LinkedIn", username: "davidkowalski", website: { @@ -173,6 +175,7 @@ export const sampleResumeData: ResumeData = { id: "019bef5a-93e4-7746-ad39-5a52dcf50ed4", hidden: false, icon: "code", + iconColor: "", name: "Unity Engine", proficiency: "Expert", level: 5, @@ -182,6 +185,7 @@ export const sampleResumeData: ResumeData = { id: "019bef5a-93e4-7746-ad39-5e8bb7cacbc8", hidden: false, icon: "brackets-curly", + iconColor: "", name: "Unreal Engine", proficiency: "Advanced", level: 4, @@ -191,6 +195,7 @@ export const sampleResumeData: ResumeData = { id: "019bef5a-93e4-7746-ad39-622f9d41da55", hidden: false, icon: "cpu", + iconColor: "", name: "Programming Languages", proficiency: "Expert", level: 5, @@ -200,6 +205,7 @@ export const sampleResumeData: ResumeData = { id: "019bef5a-93e4-7746-ad39-6574ab6814bd", hidden: false, icon: "brain", + iconColor: "", name: "Game AI", proficiency: "Advanced", level: 4, @@ -209,6 +215,7 @@ export const sampleResumeData: ResumeData = { id: "019bef5a-93e4-7746-ad39-6a8e22bec684", hidden: false, icon: "shooting-star", + iconColor: "", name: "Physics & Mathematics", proficiency: "Advanced", level: 4, @@ -218,6 +225,7 @@ export const sampleResumeData: ResumeData = { id: "019bef5a-93e4-7746-ad39-6d8bf7be7514", hidden: true, icon: "chart-line-up", + iconColor: "", name: "Performance Optimization", proficiency: "Advanced", level: 4, @@ -255,6 +263,7 @@ export const sampleResumeData: ResumeData = { id: "019bef5a-93e4-7746-ad39-7821b4de95f7", hidden: false, icon: "game-controller", + iconColor: "", name: "Game Design", keywords: ["Mechanics", "Level Design", "Player Psychology"], }, @@ -262,6 +271,7 @@ export const sampleResumeData: ResumeData = { id: "019bef5a-93e4-7746-ad39-7c64c1a607d3", hidden: false, icon: "robot", + iconColor: "", name: "AI & Procedural Generation", keywords: ["PCG", "Machine Learning", "Emergent Gameplay"], }, @@ -269,6 +279,7 @@ export const sampleResumeData: ResumeData = { id: "019bef5a-93e4-7746-ad39-80bccce3c0ef", hidden: false, icon: "book-open", + iconColor: "", name: "Indie Game Development", keywords: ["Solo Dev", "Game Jams", "Community"], }, @@ -276,6 +287,7 @@ export const sampleResumeData: ResumeData = { id: "019bef5a-93e4-7746-ad39-84bb7e9af005", hidden: false, icon: "pen-nib", + iconColor: "", name: "Technical Art", keywords: ["Shaders", "VFX", "Optimization"], }, diff --git a/src/schema/schema.json b/src/schema/schema.json index 5031bb057..e8519c443 100644 --- a/src/schema/schema.json +++ b/src/schema/schema.json @@ -1,14 +1,17 @@ { - "$schema": "http://json-schema.org/draft-07/schema", + "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "picture": { "type": "object", "properties": { - "hidden": { "type": "boolean", "description": "Whether to hide the picture from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the picture from the resume." + }, "url": { "type": "string", - "description": "The URL to the picture to display on the resume. Must be a valid URL with a protocol (http:// or https://)." + "description": "The URL to the picture to display on the resume. Prefer local app-served paths (for example /uploads/...) populated via upload." }, "size": { "type": "number", @@ -71,11 +74,26 @@ "basics": { "type": "object", "properties": { - "name": { "type": "string", "description": "The full name of the author of the resume." }, - "headline": { "type": "string", "description": "The headline of the author of the resume." }, - "email": { "type": "string", "description": "The email address of the author of the resume." }, - "phone": { "type": "string", "description": "The phone number of the author of the resume." }, - "location": { "type": "string", "description": "The location of the author of the resume." }, + "name": { + "type": "string", + "description": "The full name of the author of the resume." + }, + "headline": { + "type": "string", + "description": "The headline of the author of the resume." + }, + "email": { + "type": "string", + "description": "The email address of the author of the resume." + }, + "phone": { + "type": "string", + "description": "The phone number of the author of the resume." + }, + "location": { + "type": "string", + "description": "The location of the author of the resume." + }, "website": { "type": "object", "properties": { @@ -105,7 +123,10 @@ "type": "string", "description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available." }, - "text": { "type": "string", "description": "The text to display for the custom field." }, + "text": { + "type": "string", + "description": "The text to display for the custom field." + }, "link": { "default": "", "type": "string", @@ -125,9 +146,18 @@ "summary": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the summary of the resume." }, - "columns": { "type": "number", "description": "The number of columns the summary should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the summary from the resume." }, + "title": { + "type": "string", + "description": "The title of the summary of the resume." + }, + "columns": { + "type": "number", + "description": "The number of columns the summary should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the summary from the resume." + }, "content": { "type": "string", "description": "The content of the summary of the resume. This should be a HTML-formatted string." @@ -143,9 +173,18 @@ "profiles": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -155,10 +194,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -174,6 +218,11 @@ "type": "string", "description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available." }, + "iconColor": { + "default": "", + "description": "Optional custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color.", + "type": "string" + }, "network": { "type": "string", "minLength": 1, @@ -200,7 +249,7 @@ "description": "The link to the profile of the author on the network or platform, if any." } }, - "required": ["id", "hidden", "icon", "network", "username", "website"], + "required": ["id", "hidden", "icon", "iconColor", "network", "username", "website"], "additionalProperties": false }, "description": "The items to display in the profiles section." @@ -213,9 +262,18 @@ "experience": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -225,10 +283,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -249,7 +312,10 @@ "type": "string", "description": "The position held at the company or organization. Used when there is only a single role. If multiple roles are provided in the 'roles' field, this serves as a summary title or can be left blank." }, - "location": { "type": "string", "description": "The location of the company or organization." }, + "location": { + "type": "string", + "description": "The location of the company or organization." + }, "period": { "type": "string", "description": "The overall period of time at the company. When multiple roles are used, this should reflect the total tenure." @@ -285,8 +351,14 @@ "type": "string", "description": "The unique identifier for the role. Usually generated as a UUID." }, - "position": { "type": "string", "description": "The position or job title for this role." }, - "period": { "type": "string", "description": "The period of time this role was held." }, + "position": { + "type": "string", + "description": "The position or job title for this role." + }, + "period": { + "type": "string", + "description": "The period of time this role was held." + }, "description": { "type": "string", "description": "The description of this specific role. This should be a HTML-formatted string." @@ -320,9 +392,18 @@ "education": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -332,10 +413,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -352,11 +438,26 @@ "minLength": 1, "description": "The name of the school or institution." }, - "degree": { "type": "string", "description": "The degree or qualification obtained." }, - "area": { "type": "string", "description": "The area of study or specialization." }, - "grade": { "type": "string", "description": "The grade or score achieved." }, - "location": { "type": "string", "description": "The location of the school or institution." }, - "period": { "type": "string", "description": "The period of time the education was obtained over." }, + "degree": { + "type": "string", + "description": "The degree or qualification obtained." + }, + "area": { + "type": "string", + "description": "The area of study or specialization." + }, + "grade": { + "type": "string", + "description": "The grade or score achieved." + }, + "location": { + "type": "string", + "description": "The location of the school or institution." + }, + "period": { + "type": "string", + "description": "The period of time the education was obtained over." + }, "website": { "type": "object", "properties": { @@ -402,9 +503,18 @@ "projects": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -414,10 +524,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -429,8 +544,15 @@ "required": ["showLinkInTitle"], "additionalProperties": false }, - "name": { "type": "string", "minLength": 1, "description": "The name of the project." }, - "period": { "type": "string", "description": "The period of time the project was worked on." }, + "name": { + "type": "string", + "minLength": 1, + "description": "The name of the project." + }, + "period": { + "type": "string", + "description": "The period of time the project was worked on." + }, "website": { "type": "object", "properties": { @@ -465,9 +587,18 @@ "skills": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -477,10 +608,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -496,7 +632,16 @@ "type": "string", "description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available." }, - "name": { "type": "string", "minLength": 1, "description": "The name of the skill." }, + "iconColor": { + "default": "", + "description": "Optional custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color.", + "type": "string" + }, + "name": { + "type": "string", + "minLength": 1, + "description": "The name of the skill." + }, "proficiency": { "type": "string", "description": "The proficiency level of the skill. Can be any text, such as 'Beginner', 'Intermediate', 'Advanced', etc." @@ -512,10 +657,12 @@ "default": [], "description": "The keywords associated with the skill, if any. These are displayed as tags below the name.", "type": "array", - "items": { "type": "string" } + "items": { + "type": "string" + } } }, - "required": ["id", "hidden", "icon", "name", "proficiency", "level", "keywords"], + "required": ["id", "hidden", "icon", "iconColor", "name", "proficiency", "level", "keywords"], "additionalProperties": false }, "description": "The items to display in the skills section." @@ -528,9 +675,18 @@ "languages": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -540,10 +696,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -585,9 +746,18 @@ "interests": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -597,10 +767,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -616,15 +791,26 @@ "type": "string", "description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available." }, - "name": { "type": "string", "minLength": 1, "description": "The name of the interest/hobby." }, + "iconColor": { + "default": "", + "description": "Optional custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color.", + "type": "string" + }, + "name": { + "type": "string", + "minLength": 1, + "description": "The name of the interest/hobby." + }, "keywords": { "default": [], "description": "The keywords associated with the interest/hobby, if any. These are displayed as tags below the name.", "type": "array", - "items": { "type": "string" } + "items": { + "type": "string" + } } }, - "required": ["id", "hidden", "icon", "name", "keywords"], + "required": ["id", "hidden", "icon", "iconColor", "name", "keywords"], "additionalProperties": false }, "description": "The items to display in the interests section." @@ -637,9 +823,18 @@ "awards": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -649,10 +844,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -664,9 +864,19 @@ "required": ["showLinkInTitle"], "additionalProperties": false }, - "title": { "type": "string", "minLength": 1, "description": "The title of the award." }, - "awarder": { "type": "string", "description": "The awarder of the award." }, - "date": { "type": "string", "description": "The date when the award was received." }, + "title": { + "type": "string", + "minLength": 1, + "description": "The title of the award." + }, + "awarder": { + "type": "string", + "description": "The awarder of the award." + }, + "date": { + "type": "string", + "description": "The date when the award was received." + }, "website": { "type": "object", "properties": { @@ -701,9 +911,18 @@ "certifications": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -713,10 +932,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -728,9 +952,19 @@ "required": ["showLinkInTitle"], "additionalProperties": false }, - "title": { "type": "string", "minLength": 1, "description": "The title of the certification." }, - "issuer": { "type": "string", "description": "The issuer of the certification." }, - "date": { "type": "string", "description": "The date when the certification was received." }, + "title": { + "type": "string", + "minLength": 1, + "description": "The title of the certification." + }, + "issuer": { + "type": "string", + "description": "The issuer of the certification." + }, + "date": { + "type": "string", + "description": "The date when the certification was received." + }, "website": { "type": "object", "properties": { @@ -765,9 +999,18 @@ "publications": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -777,10 +1020,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -792,9 +1040,19 @@ "required": ["showLinkInTitle"], "additionalProperties": false }, - "title": { "type": "string", "minLength": 1, "description": "The title of the publication." }, - "publisher": { "type": "string", "description": "The publisher of the publication." }, - "date": { "type": "string", "description": "The date when the publication was published." }, + "title": { + "type": "string", + "minLength": 1, + "description": "The title of the publication." + }, + "publisher": { + "type": "string", + "description": "The publisher of the publication." + }, + "date": { + "type": "string", + "description": "The date when the publication was published." + }, "website": { "type": "object", "properties": { @@ -829,9 +1087,18 @@ "volunteer": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -841,10 +1108,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -861,7 +1133,10 @@ "minLength": 1, "description": "The name of the organization or company." }, - "location": { "type": "string", "description": "The location of the organization or company." }, + "location": { + "type": "string", + "description": "The location of the organization or company." + }, "period": { "type": "string", "description": "The period of time the author was volunteered at the organization or company." @@ -900,9 +1175,18 @@ "references": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "items": { "type": "array", "items": { @@ -912,10 +1196,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -932,7 +1221,10 @@ "minLength": 1, "description": "The name of the reference, or a note such as 'Available upon request'." }, - "position": { "type": "string", "description": "The position or job title of the reference." }, + "position": { + "type": "string", + "description": "The position or job title of the reference." + }, "website": { "type": "object", "properties": { @@ -949,7 +1241,10 @@ "additionalProperties": false, "description": "The website or LinkedIn profile of the reference, if any." }, - "phone": { "type": "string", "description": "The phone number of the reference." }, + "phone": { + "type": "string", + "description": "The phone number of the reference." + }, "description": { "type": "string", "description": "The description of the reference. Can be used to display a quote, a testimonial, etc. This should be a HTML-formatted string." @@ -988,9 +1283,18 @@ "items": { "type": "object", "properties": { - "title": { "type": "string", "description": "The title of the section." }, - "columns": { "type": "number", "description": "The number of columns the section should span across." }, - "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." }, + "title": { + "type": "string", + "description": "The title of the section." + }, + "columns": { + "type": "number", + "description": "The number of columns the section should span across." + }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the section from the resume." + }, "id": { "type": "string", "description": "The unique identifier for the custom section. Usually generated as a UUID." @@ -1026,10 +1330,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1060,10 +1369,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1090,10 +1404,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1109,6 +1428,11 @@ "type": "string", "description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available." }, + "iconColor": { + "default": "", + "description": "Optional custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color.", + "type": "string" + }, "network": { "type": "string", "minLength": 1, @@ -1135,7 +1459,7 @@ "description": "The link to the profile of the author on the network or platform, if any." } }, - "required": ["id", "hidden", "icon", "network", "username", "website"], + "required": ["id", "hidden", "icon", "iconColor", "network", "username", "website"], "additionalProperties": false }, { @@ -1145,10 +1469,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1169,7 +1498,10 @@ "type": "string", "description": "The position held at the company or organization. Used when there is only a single role. If multiple roles are provided in the 'roles' field, this serves as a summary title or can be left blank." }, - "location": { "type": "string", "description": "The location of the company or organization." }, + "location": { + "type": "string", + "description": "The location of the company or organization." + }, "period": { "type": "string", "description": "The overall period of time at the company. When multiple roles are used, this should reflect the total tenure." @@ -1205,8 +1537,14 @@ "type": "string", "description": "The unique identifier for the role. Usually generated as a UUID." }, - "position": { "type": "string", "description": "The position or job title for this role." }, - "period": { "type": "string", "description": "The period of time this role was held." }, + "position": { + "type": "string", + "description": "The position or job title for this role." + }, + "period": { + "type": "string", + "description": "The period of time this role was held." + }, "description": { "type": "string", "description": "The description of this specific role. This should be a HTML-formatted string." @@ -1237,10 +1575,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1257,10 +1600,22 @@ "minLength": 1, "description": "The name of the school or institution." }, - "degree": { "type": "string", "description": "The degree or qualification obtained." }, - "area": { "type": "string", "description": "The area of study or specialization." }, - "grade": { "type": "string", "description": "The grade or score achieved." }, - "location": { "type": "string", "description": "The location of the school or institution." }, + "degree": { + "type": "string", + "description": "The degree or qualification obtained." + }, + "area": { + "type": "string", + "description": "The area of study or specialization." + }, + "grade": { + "type": "string", + "description": "The grade or score achieved." + }, + "location": { + "type": "string", + "description": "The location of the school or institution." + }, "period": { "type": "string", "description": "The period of time the education was obtained over." @@ -1307,10 +1662,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1322,8 +1682,15 @@ "required": ["showLinkInTitle"], "additionalProperties": false }, - "name": { "type": "string", "minLength": 1, "description": "The name of the project." }, - "period": { "type": "string", "description": "The period of time the project was worked on." }, + "name": { + "type": "string", + "minLength": 1, + "description": "The name of the project." + }, + "period": { + "type": "string", + "description": "The period of time the project was worked on." + }, "website": { "type": "object", "properties": { @@ -1355,10 +1722,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1374,7 +1746,16 @@ "type": "string", "description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available." }, - "name": { "type": "string", "minLength": 1, "description": "The name of the skill." }, + "iconColor": { + "default": "", + "description": "Optional custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color.", + "type": "string" + }, + "name": { + "type": "string", + "minLength": 1, + "description": "The name of the skill." + }, "proficiency": { "type": "string", "description": "The proficiency level of the skill. Can be any text, such as 'Beginner', 'Intermediate', 'Advanced', etc." @@ -1390,10 +1771,12 @@ "default": [], "description": "The keywords associated with the skill, if any. These are displayed as tags below the name.", "type": "array", - "items": { "type": "string" } + "items": { + "type": "string" + } } }, - "required": ["id", "hidden", "icon", "name", "proficiency", "level", "keywords"], + "required": ["id", "hidden", "icon", "iconColor", "name", "proficiency", "level", "keywords"], "additionalProperties": false }, { @@ -1403,10 +1786,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1445,10 +1833,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1464,15 +1857,26 @@ "type": "string", "description": "The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available." }, - "name": { "type": "string", "minLength": 1, "description": "The name of the interest/hobby." }, + "iconColor": { + "default": "", + "description": "Optional custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color.", + "type": "string" + }, + "name": { + "type": "string", + "minLength": 1, + "description": "The name of the interest/hobby." + }, "keywords": { "default": [], "description": "The keywords associated with the interest/hobby, if any. These are displayed as tags below the name.", "type": "array", - "items": { "type": "string" } + "items": { + "type": "string" + } } }, - "required": ["id", "hidden", "icon", "name", "keywords"], + "required": ["id", "hidden", "icon", "iconColor", "name", "keywords"], "additionalProperties": false }, { @@ -1482,10 +1886,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1497,9 +1906,19 @@ "required": ["showLinkInTitle"], "additionalProperties": false }, - "title": { "type": "string", "minLength": 1, "description": "The title of the award." }, - "awarder": { "type": "string", "description": "The awarder of the award." }, - "date": { "type": "string", "description": "The date when the award was received." }, + "title": { + "type": "string", + "minLength": 1, + "description": "The title of the award." + }, + "awarder": { + "type": "string", + "description": "The awarder of the award." + }, + "date": { + "type": "string", + "description": "The date when the award was received." + }, "website": { "type": "object", "properties": { @@ -1531,10 +1950,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1546,9 +1970,19 @@ "required": ["showLinkInTitle"], "additionalProperties": false }, - "title": { "type": "string", "minLength": 1, "description": "The title of the certification." }, - "issuer": { "type": "string", "description": "The issuer of the certification." }, - "date": { "type": "string", "description": "The date when the certification was received." }, + "title": { + "type": "string", + "minLength": 1, + "description": "The title of the certification." + }, + "issuer": { + "type": "string", + "description": "The issuer of the certification." + }, + "date": { + "type": "string", + "description": "The date when the certification was received." + }, "website": { "type": "object", "properties": { @@ -1580,10 +2014,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1595,9 +2034,19 @@ "required": ["showLinkInTitle"], "additionalProperties": false }, - "title": { "type": "string", "minLength": 1, "description": "The title of the publication." }, - "publisher": { "type": "string", "description": "The publisher of the publication." }, - "date": { "type": "string", "description": "The date when the publication was published." }, + "title": { + "type": "string", + "minLength": 1, + "description": "The title of the publication." + }, + "publisher": { + "type": "string", + "description": "The publisher of the publication." + }, + "date": { + "type": "string", + "description": "The date when the publication was published." + }, "website": { "type": "object", "properties": { @@ -1629,10 +2078,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1649,7 +2103,10 @@ "minLength": 1, "description": "The name of the organization or company." }, - "location": { "type": "string", "description": "The location of the organization or company." }, + "location": { + "type": "string", + "description": "The location of the organization or company." + }, "period": { "type": "string", "description": "The period of time the author was volunteered at the organization or company." @@ -1685,10 +2142,15 @@ "type": "string", "description": "The unique identifier for the item. Usually generated as a UUID." }, - "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." }, + "hidden": { + "type": "boolean", + "description": "Whether to hide the item from the resume." + }, "options": { "description": "Display options for this item.", - "default": { "showLinkInTitle": false }, + "default": { + "showLinkInTitle": false + }, "type": "object", "properties": { "showLinkInTitle": { @@ -1705,7 +2167,10 @@ "minLength": 1, "description": "The name of the reference, or a note such as 'Available upon request'." }, - "position": { "type": "string", "description": "The position or job title of the reference." }, + "position": { + "type": "string", + "description": "The position or job title of the reference." + }, "website": { "type": "object", "properties": { @@ -1722,7 +2187,10 @@ "additionalProperties": false, "description": "The website or LinkedIn profile of the reference, if any." }, - "phone": { "type": "string", "description": "The phone number of the reference." }, + "phone": { + "type": "string", + "description": "The phone number of the reference." + }, "description": { "type": "string", "description": "The description of the reference. Can be used to display a quote, a testimonial, etc. This should be a HTML-formatted string." @@ -1786,12 +2254,16 @@ }, "main": { "type": "array", - "items": { "type": "string" }, + "items": { + "type": "string" + }, "description": "The items to display in the main column of the page. A string array of section IDs (experience, education, projects, skills, languages, interests, awards, certifications, publications, volunteer, references, profiles, summary or UUIDs for custom sections)." }, "sidebar": { "type": "array", - "items": { "type": "string" }, + "items": { + "type": "string" + }, "description": "The items to display in the sidebar column of the page. A string array of section IDs (experience, education, projects, skills, languages, interests, awards, certifications, publications, volunteer, references, profiles, summary or UUIDs for custom sections)." } }, @@ -1808,7 +2280,10 @@ "css": { "type": "object", "properties": { - "enabled": { "type": "boolean", "description": "Whether to enable custom CSS for the resume." }, + "enabled": { + "type": "boolean", + "description": "Whether to enable custom CSS for the resume." + }, "value": { "type": "string", "description": "The custom CSS to apply to the resume. This should be a valid CSS string." @@ -1919,7 +2394,10 @@ "default": ["400"], "description": "The weight of the font, defined as a number between 100 and 900. Default to 400 when unsure if the weight is available in the font.", "type": "array", - "items": { "type": "string", "enum": ["100", "200", "300", "400", "500", "600", "700", "800", "900"] } + "items": { + "type": "string", + "enum": ["100", "200", "300", "400", "500", "600", "700", "800", "900"] + } }, "fontSize": { "default": 11, @@ -1951,7 +2429,10 @@ "default": ["400"], "description": "The weight of the font, defined as a number between 100 and 900. Default to 400 when unsure if the weight is available in the font.", "type": "array", - "items": { "type": "string", "enum": ["100", "200", "300", "400", "500", "600", "700", "800", "900"] } + "items": { + "type": "string", + "enum": ["100", "200", "300", "400", "500", "600", "700", "800", "900"] + } }, "fontSize": { "default": 11, diff --git a/src/utils/resume/docx/builder.test.ts b/src/utils/resume/docx/builder.test.ts index 947a1aa1f..00eac8749 100644 --- a/src/utils/resume/docx/builder.test.ts +++ b/src/utils/resume/docx/builder.test.ts @@ -137,6 +137,7 @@ describe("buildDocument", () => { id: "skill-1", hidden: false, icon: "", + iconColor: "", name: "TypeScript", proficiency: "Advanced", level: 4, diff --git a/src/utils/resume/docx/section-renderers.test.ts b/src/utils/resume/docx/section-renderers.test.ts index d620f5be8..b54811fb2 100644 --- a/src/utils/resume/docx/section-renderers.test.ts +++ b/src/utils/resume/docx/section-renderers.test.ts @@ -198,6 +198,7 @@ describe("renderBuiltInSection — skills", () => { id: "s1", hidden: false, icon: "", + iconColor: "", name: "TypeScript", proficiency: "Advanced", level: 4, @@ -213,7 +214,16 @@ describe("renderBuiltInSection — skills", () => { const sections = freshSections(); sections.skills.title = "Skills"; sections.skills.items = [ - { id: "s1", hidden: false, icon: "", name: "Go", proficiency: "", level: 0, keywords: [] }, + { + id: "s1", + hidden: false, + icon: "", + iconColor: "", + name: "Go", + proficiency: "", + level: 0, + keywords: [], + }, ]; const result = renderBuiltInSection("skills", sections.skills, COLOR_HEX); @@ -315,6 +325,7 @@ describe("renderBuiltInSection — other sections", () => { id: "p1", hidden: false, icon: "", + iconColor: "", network: "GitHub", username: "janedoe", website: { url: "https://github.com/janedoe", label: "GitHub" }, @@ -423,7 +434,16 @@ describe("renderBuiltInSection — other sections", () => { it("renders interests with keywords", () => { const sections = freshSections(); sections.interests.title = "Interests"; - sections.interests.items = [{ id: "i1", hidden: false, icon: "", name: "Gaming", keywords: ["RPG", "Strategy"] }]; + sections.interests.items = [ + { + id: "i1", + hidden: false, + icon: "", + iconColor: "", + name: "Gaming", + keywords: ["RPG", "Strategy"], + }, + ]; const result = renderBuiltInSection("interests", sections.interests, COLOR_HEX); expect(result.length).toBe(2); @@ -486,7 +506,18 @@ describe("renderCustomSection", () => { title: "Hidden", columns: 1, hidden: true, - items: [{ id: "ci1", hidden: false, icon: "", name: "Skill", proficiency: "", level: 0, keywords: [] }], + items: [ + { + id: "ci1", + hidden: false, + icon: "", + iconColor: "", + name: "Skill", + proficiency: "", + level: 0, + keywords: [], + }, + ], }; expect(renderCustomSection(custom, COLOR_HEX)).toHaveLength(0); @@ -499,7 +530,18 @@ describe("renderCustomSection", () => { title: "Skills", columns: 1, hidden: false, - items: [{ id: "ci1", hidden: true, icon: "", name: "Skill", proficiency: "", level: 0, keywords: [] }], + items: [ + { + id: "ci1", + hidden: true, + icon: "", + iconColor: "", + name: "Skill", + proficiency: "", + level: 0, + keywords: [], + }, + ], }; expect(renderCustomSection(custom, COLOR_HEX)).toHaveLength(0); @@ -548,7 +590,16 @@ describe("renderCustomSection", () => { columns: 1, hidden: false, items: [ - { id: "ci1", hidden: false, icon: "", name: "Leadership", proficiency: "Expert", level: 5, keywords: [] }, + { + id: "ci1", + hidden: false, + icon: "", + iconColor: "", + name: "Leadership", + proficiency: "Expert", + level: 5, + keywords: [], + }, ], }; @@ -575,7 +626,16 @@ describe("setRenderConfig", () => { const sections = freshSections(); sections.skills.title = "Skills"; sections.skills.items = [ - { id: "s1", hidden: false, icon: "", name: "Test", proficiency: "", level: 0, keywords: [] }, + { + id: "s1", + hidden: false, + icon: "", + iconColor: "", + name: "Test", + proficiency: "", + level: 0, + keywords: [], + }, ]; const result = renderBuiltInSection("skills", sections.skills, "#0000FF"); diff --git a/src/utils/resume/move-item.test.ts b/src/utils/resume/move-item.test.ts index 84cecf05f..ceafee234 100644 --- a/src/utils/resume/move-item.test.ts +++ b/src/utils/resume/move-item.test.ts @@ -38,9 +38,36 @@ function freshResume(): ResumeData { function resumeWithSkills(): ResumeData { const data = freshResume(); data.sections.skills.items = [ - { id: "s1", hidden: false, icon: "", name: "JS", proficiency: "Advanced", level: 4, keywords: ["frontend"] }, - { id: "s2", hidden: false, icon: "", name: "TS", proficiency: "Intermediate", level: 3, keywords: [] }, - { id: "s3", hidden: false, icon: "", name: "Rust", proficiency: "Beginner", level: 1, keywords: [] }, + { + id: "s1", + hidden: false, + icon: "", + iconColor: "", + name: "JS", + proficiency: "Advanced", + level: 4, + keywords: ["frontend"], + }, + { + id: "s2", + hidden: false, + icon: "", + iconColor: "", + name: "TS", + proficiency: "Intermediate", + level: 3, + keywords: [], + }, + { + id: "s3", + hidden: false, + icon: "", + iconColor: "", + name: "Rust", + proficiency: "Beginner", + level: 1, + keywords: [], + }, ]; return data; } @@ -74,7 +101,18 @@ function resumeWithCustomSections(): ResumeData { title: "Soft Skills", columns: 1, hidden: false, - items: [{ id: "cs1", hidden: false, icon: "", name: "Leadership", proficiency: "", level: 0, keywords: [] }], + items: [ + { + id: "cs1", + hidden: false, + icon: "", + iconColor: "", + name: "Leadership", + proficiency: "", + level: 0, + keywords: [], + }, + ], }, ]; // Add custom sections to the layout @@ -306,7 +344,16 @@ describe("removeItemFromSource", () => { describe("addItemToSection", () => { it("adds an item to a standard section", () => { const data = freshResume(); - const newItem = { id: "new-1", hidden: false, icon: "", name: "Go", proficiency: "", level: 0, keywords: [] }; + const newItem = { + id: "new-1", + hidden: false, + icon: "", + iconColor: "", + name: "Go", + proficiency: "", + level: 0, + keywords: [], + }; const result = produce(data, (draft) => { addItemToSection(draft, newItem, "skills", "skills"); @@ -318,7 +365,16 @@ describe("addItemToSection", () => { it("adds an item to a custom section", () => { const data = resumeWithCustomSections(); - const newItem = { id: "new-2", hidden: false, icon: "", name: "Teamwork", proficiency: "", level: 0, keywords: [] }; + const newItem = { + id: "new-2", + hidden: false, + icon: "", + iconColor: "", + name: "Teamwork", + proficiency: "", + level: 0, + keywords: [], + }; const result = produce(data, (draft) => { addItemToSection(draft, newItem, "custom-skills-1", "skills"); @@ -330,7 +386,16 @@ describe("addItemToSection", () => { it("does nothing when target custom section doesn't exist", () => { const data = freshResume(); - const newItem = { id: "new-3", hidden: false, icon: "", name: "Go", proficiency: "", level: 0, keywords: [] }; + const newItem = { + id: "new-3", + hidden: false, + icon: "", + iconColor: "", + name: "Go", + proficiency: "", + level: 0, + keywords: [], + }; const result = produce(data, (draft) => { addItemToSection(draft, newItem, "nonexistent-section", "skills"); @@ -342,7 +407,16 @@ describe("addItemToSection", () => { it("appends to the end of an existing items array", () => { const data = resumeWithSkills(); - const newItem = { id: "s4", hidden: false, icon: "", name: "Go", proficiency: "", level: 0, keywords: [] }; + const newItem = { + id: "s4", + hidden: false, + icon: "", + iconColor: "", + name: "Go", + proficiency: "", + level: 0, + keywords: [], + }; const result = produce(data, (draft) => { addItemToSection(draft, newItem, "skills", "skills"); @@ -360,7 +434,16 @@ describe("addItemToSection", () => { describe("createCustomSectionWithItem", () => { it("creates a new custom section with the given item", () => { const data = freshResume(); - const item = { id: "item-1", hidden: false, icon: "", name: "Go", proficiency: "", level: 0, keywords: [] }; + const item = { + id: "item-1", + hidden: false, + icon: "", + iconColor: "", + name: "Go", + proficiency: "", + level: 0, + keywords: [], + }; const result = produce(data, (draft) => { const sectionId = createCustomSectionWithItem(draft, item, "skills", "Tech Skills", 0); @@ -377,7 +460,16 @@ describe("createCustomSectionWithItem", () => { it("adds the new section to the target page's main column", () => { const data = freshResume(); - const item = { id: "item-1", hidden: false, icon: "", name: "Go", proficiency: "", level: 0, keywords: [] }; + const item = { + id: "item-1", + hidden: false, + icon: "", + iconColor: "", + name: "Go", + proficiency: "", + level: 0, + keywords: [], + }; const mainLengthBefore = data.metadata.layout.pages[0].main.length; const result = produce(data, (draft) => { @@ -390,7 +482,16 @@ describe("createCustomSectionWithItem", () => { it("handles targeting a specific page index", () => { const data = resumeWithMultiplePages(); - const item = { id: "item-2", hidden: false, icon: "", name: "Python", proficiency: "", level: 0, keywords: [] }; + const item = { + id: "item-2", + hidden: false, + icon: "", + iconColor: "", + name: "Python", + proficiency: "", + level: 0, + keywords: [], + }; const result = produce(data, (draft) => { createCustomSectionWithItem(draft, item, "skills", "More Skills", 1); @@ -403,7 +504,16 @@ describe("createCustomSectionWithItem", () => { it("handles out-of-bounds page index gracefully (no crash)", () => { const data = freshResume(); - const item = { id: "item-3", hidden: false, icon: "", name: "Go", proficiency: "", level: 0, keywords: [] }; + const item = { + id: "item-3", + hidden: false, + icon: "", + iconColor: "", + name: "Go", + proficiency: "", + level: 0, + keywords: [], + }; // Should not throw — the page just doesn't exist so nothing is pushed const result = produce(data, (draft) => { @@ -424,7 +534,16 @@ describe("createCustomSectionWithItem", () => { describe("createPageWithSection", () => { it("creates a new page with a custom section", () => { const data = freshResume(); - const item = { id: "item-1", hidden: false, icon: "", name: "Go", proficiency: "", level: 0, keywords: [] }; + const item = { + id: "item-1", + hidden: false, + icon: "", + iconColor: "", + name: "Go", + proficiency: "", + level: 0, + keywords: [], + }; const pagesBefore = data.metadata.layout.pages.length; const result = produce(data, (draft) => { @@ -440,7 +559,16 @@ describe("createPageWithSection", () => { it("creates the custom section with correct properties", () => { const data = freshResume(); - const item = { id: "item-1", hidden: false, icon: "", name: "Go", proficiency: "", level: 0, keywords: [] }; + const item = { + id: "item-1", + hidden: false, + icon: "", + iconColor: "", + name: "Go", + proficiency: "", + level: 0, + keywords: [], + }; const result = produce(data, (draft) => { createPageWithSection(draft, item, "skills", "Page 2 Skills"); @@ -454,8 +582,26 @@ describe("createPageWithSection", () => { it("can create multiple pages in sequence", () => { const data = freshResume(); - const item1 = { id: "i1", hidden: false, icon: "", name: "A", proficiency: "", level: 0, keywords: [] }; - const item2 = { id: "i2", hidden: false, icon: "", name: "B", proficiency: "", level: 0, keywords: [] }; + const item1 = { + id: "i1", + hidden: false, + icon: "", + iconColor: "", + name: "A", + proficiency: "", + level: 0, + keywords: [], + }; + const item2 = { + id: "i2", + hidden: false, + icon: "", + iconColor: "", + name: "B", + proficiency: "", + level: 0, + keywords: [], + }; const result = produce(data, (draft) => { createPageWithSection(draft, item1, "skills", "Page 2"); diff --git a/src/utils/resume/patch.test.ts b/src/utils/resume/patch.test.ts index 52b6e6cc5..4f2f436b3 100644 --- a/src/utils/resume/patch.test.ts +++ b/src/utils/resume/patch.test.ts @@ -147,8 +147,8 @@ describe("applyResumePatches", () => { it("removes an item from a section's items array", () => { const data = freshResume(); data.sections.skills.items = [ - { id: "s1", hidden: false, icon: "", name: "JS", proficiency: "", level: 0, keywords: [] }, - { id: "s2", hidden: false, icon: "", name: "TS", proficiency: "", level: 0, keywords: [] }, + { id: "s1", hidden: false, icon: "", iconColor: "", name: "JS", proficiency: "", level: 0, keywords: [] }, + { id: "s2", hidden: false, icon: "", iconColor: "", name: "TS", proficiency: "", level: 0, keywords: [] }, ]; const result = applyResumePatches(data, [{ op: "remove", path: "/sections/skills/items/0" }]); @@ -455,8 +455,8 @@ describe("applyResumePatches", () => { it("replaces a specific item in an array", () => { const data = freshResume(); data.sections.skills.items = [ - { id: "s1", hidden: false, icon: "", name: "JS", proficiency: "", level: 0, keywords: [] }, - { id: "s2", hidden: false, icon: "", name: "TS", proficiency: "", level: 0, keywords: [] }, + { id: "s1", hidden: false, icon: "", iconColor: "", name: "JS", proficiency: "", level: 0, keywords: [] }, + { id: "s2", hidden: false, icon: "", iconColor: "", name: "TS", proficiency: "", level: 0, keywords: [] }, ]; const result = applyResumePatches(data, [ diff --git a/src/utils/resume/section-actions.test.ts b/src/utils/resume/section-actions.test.ts index 3307e22ef..04053c062 100644 --- a/src/utils/resume/section-actions.test.ts +++ b/src/utils/resume/section-actions.test.ts @@ -53,7 +53,18 @@ function resumeWithCustomSection(): ResumeData { title: "Soft Skills", columns: 1, hidden: false, - items: [{ id: "cs-1", hidden: false, icon: "", name: "Leadership", proficiency: "", level: 0, keywords: [] }], + items: [ + { + id: "cs-1", + hidden: false, + icon: "", + iconColor: "", + name: "Leadership", + proficiency: "", + level: 0, + keywords: [], + }, + ], }, ]; return data; diff --git a/src/utils/resume/tailor.test.ts b/src/utils/resume/tailor.test.ts index 5959ba6cf..a677b6819 100644 --- a/src/utils/resume/tailor.test.ts +++ b/src/utils/resume/tailor.test.ts @@ -67,6 +67,7 @@ function makeResumeData(overrides?: { id: "skill-0", hidden: false, icon: "", + iconColor: "", name: "JavaScript", proficiency: "Advanced", level: 4, @@ -76,6 +77,7 @@ function makeResumeData(overrides?: { id: "skill-1", hidden: false, icon: "", + iconColor: "", name: "Python", proficiency: "Intermediate", level: 3, @@ -85,6 +87,7 @@ function makeResumeData(overrides?: { id: "skill-2", hidden: true, icon: "", + iconColor: "", name: "Photography", proficiency: "", level: 0,