diff --git a/.env b/.env new file mode 100644 index 0000000000..4001b443e1 --- /dev/null +++ b/.env @@ -0,0 +1,2 @@ +KITSU_API_TARGET=http://localhost/api +KITSU_EVENT_TARGET=http://localhost/socket.io diff --git a/.gitignore b/.gitignore index c0d0f99701..6e59593d87 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ # Logs -logs *.log npm-debug.log* @@ -40,3 +39,6 @@ jspm_packages docs/.vuepress/dist/ docs/.DS_Store docs/ja/.DS_Store +docs/.vitepress/dist +docs/.vitepress/cache +.wrangler \ No newline at end of file diff --git a/.postcssrc.js b/.postcssrc.js deleted file mode 100644 index ea9a5ab875..0000000000 --- a/.postcssrc.js +++ /dev/null @@ -1,8 +0,0 @@ -// https://github.com/michael-ciniawsky/postcss-load-config - -module.exports = { - "plugins": { - // to edit target browsers: use "browserlist" field in package.json - "autoprefixer": {} - } -} diff --git a/README.md b/README.md new file mode 100644 index 0000000000..99176255d1 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +## build + +```bash +npm run build +# or +npm run docs:build +``` + +## development + +```bash +npm run dev +# or +npm run docs:dev +``` \ No newline at end of file diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/combine.js b/combine.js new file mode 100644 index 0000000000..bfa4d6d56f --- /dev/null +++ b/combine.js @@ -0,0 +1,139 @@ +const fs = require("fs"); +const path = require("path"); + +const config = { + themeConfig: { + locales: { + "/": { + sidebar: [ + { + title: "Introduction to Kitsu", + collapsable: false, + children: [["/", "Introduction"], "/configure-kitsu/", "/team/"], + }, + { + title: "Create Your Production", + collapsable: true, + children: [ + "/tvshow/", + "/feature/", + "/short/", + "/short-shot/", + "/short-asset/", + "/videogame/", + "/nft/", + ], + }, + { + title: "Meta Columns, Filters and Production Settings", + collapsable: true, + children: ["/meta-column/", "/filter/", "/configure-prod/"], + }, + { + title: "Assignments, Estimates and Scheduling", + collapsable: true, + children: ["/assignation/", "/estimation/", "/schedules/"], + }, + { + title: "Statuses, Publishes, and Thumbnails", + collapsable: true, + children: ["/status/", "/publish/", "/thumbnails/"], + }, + { + title: "Internal Review and Client Playlists", + collapsable: true, + children: ["/review/", "/review-weekly/", "/playlist-client/"], + }, + { + title: "Supervisor Workflows", + collapsable: true, + children: ["/supervisor-team/", "/supervisor-tasks/"], + }, + { + title: "Producer Workflows", + collapsable: true, + children: ["/production-report/", "/studio-report/"], + }, + { + title: "Artist Workflows", + collapsable: true, + children: ["/artist/"], + }, + { + title: "Developer Workflows", + collapsable: true, + children: [ + "/custom-actions/", + "/bots/", + "/publisher/", + "/chat-integration/", + "/installation/", + ], + }, + { + title: "Frequently Asked Questions", + collapsable: true, + children: ["/faq/"], + }, + ], + }, + }, + }, +}; + +const ROOT_DOCS = "./docs"; +const OUTPUT_FILE = "./combined-documentation.md"; + +function resolveReadmePath(entry) { + // Entry can be a string like "/tvshow/" or "/" or an array like ["/", "Introduction"] + const routePath = Array.isArray(entry) ? entry[0] : entry; + + if (routePath === "/") { + return path.join(ROOT_DOCS, "README.md"); + } + + // Strip leading/trailing slashes, then build path + const stripped = routePath.replace(/^\/|\/$/g, ""); + return path.join(ROOT_DOCS, stripped, "README.md"); +} + +function combineMarkdown() { + const sidebar = config.themeConfig.locales["/"].sidebar; + const sections = []; + const missing = []; + + for (const group of sidebar) { + // Add a section header for each group + sections.push(`# ${group.title}\n`); + + for (const child of group.children) { + const filePath = resolveReadmePath(child); + const label = Array.isArray(child) ? child[1] : null; + + if (fs.existsSync(filePath)) { + const content = fs.readFileSync(filePath, "utf-8").trim(); + const comment = label + ? `` + : ``; + sections.push(`${comment}\n\n${content}\n`); + console.log(`✓ Included: ${filePath}`); + } else { + missing.push(filePath); + const note = ``; + sections.push(`${note}\n`); + console.warn(`✗ Missing: ${filePath}`); + } + } + } + + const combined = sections.join("\n---\n\n"); + fs.writeFileSync(OUTPUT_FILE, combined, "utf-8"); + + console.log(`\nDone! Combined file written to: ${OUTPUT_FILE}`); + if (missing.length > 0) { + console.log(`\n⚠ ${missing.length} file(s) were missing and skipped:`); + missing.forEach((f) => console.log(` - ${f}`)); + } +} + +combineMarkdown(); diff --git a/docs.md b/docs.md new file mode 100644 index 0000000000..6ca37d0df8 --- /dev/null +++ b/docs.md @@ -0,0 +1,10894 @@ +# Getting Started With Kitsu + +With Kitsu, users can track various production projects, encompassing 2D and 3D production, VFX, video games, and other related endeavors. + +The content tracked by Kitsu can be as simple as still-frame advertisements, to extensive 3-hour feature films, accommodating projects with varying numbers of elements + +But before jumping into our production, we must first configure our **Studio Workflow**. + +## Studio Workflows + +### Understanding Studio Workflows + +::: warning Definition +A workflow is defined as the structured coordination of tasks constituting the operational processes within a production. +::: + +For example, within a CGI production, tasks such as modeling, rigging, and shading are undertaken to finalize an asset. + +::: warning Definition +- Processes such as modeling, shading, etc., are referred to as a **Task Type**. +- An individual objects such as asset, shot, etc., are called **Entities**. +- A **task** can be defined as a specific action or activity that needs to be done. Tasks can be attributed to **entities** and will usually be categorized with a **task type**. + +::: + +Entities with corresponding tasks form foundation of your asset workflow. Each task will then be assigned to an artist. Once you have determined your assets workflow, you will do the same for the shots, sequences, etc. + +Once the workflow for tasks is defined, the next step involves establishing an **Approval Workflow**, which entails defining all the statuses utilized for communication within the team. Statuses will also be useful for tracking the progress of your production. + +The **Workflow** of your production is the sum of your Tasks and Status. + +### Global Library VS Production Library + +In Kitsu, you have two kinds of **libraries**: +- The first is the **Global Library** at the studio level. +Only the Studio manager has access to it. + +- The second is the **Production Library**, where you will pick elements created in the global library to fill out. + +The idea is to keep each production separated with a specific workflow. + + +Your **Global Library** is where you can create and modify departments, task types, task statuses, asset types, and status automation. You can create as many elements as needed, name them as you wish, and select the best colors and options to suit your needs. + +Once your **Global Library** is populated, you can fill out the **Production Library** with the newly created elements from the **Global Library**. + +## Departments + +### Creating Departments + +Departments are designed to help supervisors and artists focus on their tasks. Once a user is linked to one or more departments, supervisors and artists gain direct access to a filtered view of all tasks associated with that task type. Departments are also used to define what metadata columns appear for users within that department. + +If a metadata column is linked to a department, then they will only show up for users in that department. If a metadata column is not associated with a department, they will show up for everyone. + +::: tip +By default, Kitsu provides some example departments to help you get started. +::: + +Defining your studio's Departments is typically the first step in setup, as multiple objects such as people and task types are linked to a department. + +On the main menu ![Main menu](./docs/img/getting-started/main_button.png) select the +**Department** page under the **Admin** section. + +![Task Type](./docs/img/getting-started/deparment_menu.png) + + +If you need to create more departments, you can click on the ![create department button](./docs/img/getting-started/create_department_button.png) button. + +When adding a department, you need to define: + +- The name of the department +- A color (it will be displayed as a small round circle next to a column task type or a custom column) + +![Create department](./docs/img/getting-started/create_department_detail.png) + +Click on **Confirm** to save your changes. + +Once you finish creating the department, your page should look like this. Whereby each department has a unique name and corresponding color. + +![Customized department](./docs/img/getting-started/customized_department.png) + + +## Task Types + +### Creating a New Task Type + +Next, let's create all the **Task Types** needed to manage and track our production. Task types could be associated with multiple entities such as assets, shots, sequences, episodes, or edits. + + +From the main menu ![Main menu](./docs/img/getting-started/main_button.png) select +the **Task Types** page under the **Admin** section. + +![Task Type](./docs/img/getting-started/menu_tasktype.png) + +::: tip +By default, Kitsu provides some example task types that can be used for a CGI production. You can rename or remove any that are not relevant to your production. +::: + +You will notice that these **Task Types** are already linked to a department. + +![Task Type Empty](./docs/img/getting-started/task_type_empty.png) + +You can click on the ![Add Task Type](./docs/img/getting-started/add_tasktype.png) +button to create new **Task Type**. + +Next, you will need to supply some information about your task type, including: + +- The name of the task type +- If team members need to time log their work for tasks with this task type +- For which entity it will be used +- To which department it should be linked +- The color (this will be reflect in the background color on the main spreadsheet page) + +![Create task](./docs/img/getting-started/create_task.png) + +You'll notice that the **Departments** we created previously are available as an option to link task types to. Connecting a department to a specific task type can help your team stay organized. + +![Create task department](./docs/img/getting-started/create_task_department.png) + +Click on **Confirm** to save your changes. + +::: warning +Newly created task types will appear at the bottom of the list +::: + +To adjust the order, simply click on the **Task Type** and drag it to its appropriate position in the list. + + +![Create task top list](./docs/img/getting-started/created_task_top.png) + +Congratulations, your task type has now be created in your **Global Library**. + +::: warning +Once you have created your production, you need to add the **Sequence**, **Episode**, and **Edit** task types to your **Production Library**. +::: + +::: tip +At any point during production, you can revisit this section to create additional **Task Types** as necessary and add them into your workflow. +::: + +## Asset Types + +### Define Your Asset Workflow + +Once you have created your global Workflow, you can then define your **Asset Types** + +Much like how shots can be organized by a sequence, an asset can be organised by it's **Asset Type**. Think of it as using folders to organize all your assets by category. + +On the main menu ![Main menu](./docs/img/getting-started/main_button.png) select the +**Asset Type** page under the **Admin** section. + +![Asset type menu](./docs/img/getting-started/menu_asset_type.png) + +::: tip +By default, Kitsu provides some example asset types that can be used for a CGI production. +::: + +![Asset type default](./docs/img/getting-started/asset_type_default.png) + +To create new **Asset Type**, click on the ![Add Asset Types](./docs/img/getting-started/add_asset_types.png) button. + +Next, you will need to supply some information about your **Asset Type**, including: + +- The name of the asset type +- A workflow for the specific asset type + +Different Asset Types will have distinct workflows. For instance, you might have fewer tasks for an Environment compared to a Character, as Environment assets typically don't require Rigging tasks. + +![Add asset types name](./docs/img/getting-started/add_asset_types_name.png) + +When you **create** or **edit** an **Asset Type**, you can add a specific **task type**; if you don't select a specific workflow for this asset type, your production asset workflow will be applied. + +However, if you choose specific Task types for this Asset type, only these will be applied to production. + +Click on **Confirm** to save your changes. + +Your new **Asset Type** is now created in your **Global Library**. It will be available to use when you create your production. + +::: tip +At any point during production, you can revisit this section to create additional **Asset Types** as necessary and add them into your workflow. +::: + +## Task Statuses + +### Define Your Approval Workflow + +Next, let's create the statuses we intend to use during our **Approval Workflow**. + +On the main menu ![Main menu](./docs/img/getting-started/main_button.png) select the +**Task Status** page under the **Admin** section. + +![Task Status Menu](./docs/img/getting-started/menu_status_type.png) + +::: tip +By default, Kitsu already provides some examples Statuses. +::: + +![Task Status Default](./docs/img/getting-started/task_status_default.png) + +A status represents a specific stage or condition that a task or must pass through as part of the review and approval process. + +For example, the **Ready** ![Ready status](./docs/img/getting-started/ready_icon.png) status indicates that the artists have everything they need to start working and should not begin their tasks without reaching this status. + +**WIP** ![WIP status](./docs/img/getting-started/wip_icon.png): The **Work in Progress** status is used by artists to inform their team that they are actively working on the task, indicating that there is no need to assign it to someone else. + +**WFA**![WFA status](./docs/img/getting-started/wfa_icon.png): The **Waiting-For-Approval** status is used by artists to notify their supervisors that they have completed their work and are awaiting review. Supervisors can also use a similar status to inform directors that work is ready for review. + +**Done** ![DONE Status](./docs/img/getting-started/done_icon.png): The **Done** status indicates that all work has been completed & approved. This indicates that the current task is complete and the next step in the process can commence. + +**Retake** ![Retake status](./docs/img/getting-started/retake_icon.png): The **Retake** status indicates that a comment has been made, prompting the artists to continue working on their task and publish a new version until validation is achieved. + +These **statuses** are just examples of what is achievable in Kitsu. You are free to create your own as needed. + +To do this, from the main page, click on the ![Add Task Status](./docs/img/getting-started/add_task_status.png) button. + +You'll then need to define some details about you **Task Status**, including: + +![Add Status](./docs/img/getting-started/add_status.png) + +- **NAME**, the explicit name of the status that will be displayed when you hover your mouse over it in the. +- **SHORT NAME**, what will be displayed in Kitsu. +- **IS DEFAULT**, the first status that Kitsu will display by default on all tasks. You can only have **ONE** default status in Kitsu. +- **IS DONE**, if this status is utilized to validate a task (which is beneficial for quota management, organizing the to-do list, and updating episode statistics). +- **HAS RETAKE VALUE**, if this status is used for commenting on a task (helpful for tracking the back-and-forth discussions on the task type page and for the episode stats page). +- **IS ARTIST ALLOWED**, are artists allowed to set tasks to this status? If **No**, the artist won't see this status in their list of available statuses. However, they can still post comments on it. +- **IS CLIENT ALLOWED**, Can the client use this Status? If **No**, the client won't see this status in their list of available statuses. +- **IS FEEDBACK REQUEST**, if this status is used to request a review (helpful for quota tracking if you don't use a timesheet, it will appear in the Pending tab of the to-do list, and all these statuses will be grouped on the **My Check** page. Kitsu will prompt you to **publish a preview** each time you use this status). +- Finally, choose a background **color** you prefer for this status. + +Click on **Confirm** to save your changes. + +Your **Status** is now created in your **Global Library** and will be available to use in your production. + +::: tip +At any point during the production, you can return here and create more **Task Status** if needed, +and then add them to your production. +::: + +::: warning +You'll notice a few tasks statuses listed under the category of *Concept Status*. These are used by the system and while you can modify them here, you cannot create new ones. +::: + +## Automation + +### Create a New Status Automation + +A **Status Automation** defines rules or conditions that automatically trigger changes in the status of tasks based on predefined criteria. You can set up **Status Automation** for both asset and shot tasks. + +For assets, you can establish **Status Automations** between tasks. For example, when the concept task status is set to `done`, the downstream modelling task status is automatically changed to `ready`. + +Additionally, you can create **Status Automations** that update the **Asset Status** based on task statuses. For example, when the concept task is set to `done` , then the linked asset status is set to ``layout``. + +::: tip +You can also ask Kitsu to **copy the latest preview** with the Automation. +::: + +Go to the main menu ![Main menu](./docs/img/getting-started/main_button.png)  and select **Automation**. + +![Main menu Status Automation](./docs/img/getting-started/main_menu_status_automation.png) + +From this page, you can create **Status Automations** by clicking the **+Add status automation** button. + +![create Status Automation](./docs/img/getting-started/status_automation_empy.png) + +You have the option to create **Status Automation** for either the **asset** or the **shot**. + +Next, you can select the **task type** and the **status** that will trigger the Automation. + +You can specify which **Task Type** will respond to the Automation and select the **Status** that will be changed. + +![detail create status automation](./docs/img/getting-started/add_status_automation.png) + +You need to change the trigger from "Status" to **Ready For** in order to initiate the change in **Ready For** status. + +You will notice the **Applied Task Type** will now display **Shot task type**. + +![detail create status automation Ready For](./docs/img/getting-started/add_status_automation_readyfor.png) + +To create a **Status Automation** for shots, you must change the **Entity Type** to shots. + +Your new **Status Automation** is now created in your **Global Library**. + +::: warning +You must add status automations to your **Production Library** once you have created your production. +::: + +::: tip +At any point during the production, you can return here and create more **Status Automations** if needed, and then add them to your production. +::: + +## 3D Backgrounds + +### Create a Global Library of HDR Files + +The 3D Backgrounds feature enhances your review of 3D files (`.GLB`) by incorporating an `.HDR` background to make things easier to review. + +The `.GLB` file format is a binary container that encompasses various 3D assets and resources. These assets may comprise 3D models, textures, materials, and animations. + +::: warning Definition +It means you can review your 3D files with lighting information. +::: + +In this section, you can create your own. `.HDR` files library that you can use in your production. + +Go to the main menu ![Main menu](./docs/img/getting-started/main_button.png), and select **3D Backgrounds**. + +![Main menu preview background](./docs/img/getting-started/main_menu_preview_backgrounds.png) + + +From here, you can add a `.HDR` Background by clicking the **+Add a new background** button. + +![add preview background](./docs/img/getting-started/preview_background_empty.png) + + +From this point, you'll need to select your `.HDR` background, provide a name for it, and decide whether you want this `.HDR` to serve as the default background. + +::: tip +Checking the `Is Default` option means this HDR will be applied across your entire production instead of the default grey background. +::: + +![Main menu preview background](./docs/img/getting-started/preview_background_new.png) + +Once you have uploaded all your `.HDR` files, Kitsu will display them as a list. + +![Preview background filled](./docs/img/getting-started/preview_background_filled.png) + + +Your new **3D Background** is now created in your **Global Library**. + +::: warning +You must add them to your **Production Library** once you have created your production. +::: + +## Asset Library + +### What is the Asset Library? +The Asset Library serves as a centralized repository for all assets used within Kitsu. Teams can import assets from any project into a shared library, making them accessible for future productions. With this functionality, assets like character models, props, environments, and more can be managed in one place and repurposed seamlessly in new projects. + +### How to Use the Asset Library + +![Asset Library Overview](./docs/img/getting-started/asset_library_overview.png) + +- You can access the Asset Library from the **Studio** section of the main Kitsu menu. +- The main Asset Library window displays all assets currently available in the library (1). Use the search (2) and filter (3) options to quickly find specific assets within the library. +- On the right-hand pane (4), you’ll find the import option for bringing in assets from other productions into the Asset Library. + +### Adding Assets to the Library + +![Asset Library Add](./docs/img/getting-started/asset_library_add.png) + +The right-hand pane is where you can add existing assets from other productions into the library. This action does not create a copy but simply references the original asset, allowing it to be used in other productions. + +To import an asset: +- Select the production you wish to import the asset from (1). +- Choose the asset type you’d like to import (2). + +There are three main ways to import assets: +- Import all assets from a specific production (3). +- Import assets by type from the selected production (4). +- Select individual assets for import (5). + +Once imported, the asset will be available for use in breakdowns for other productions, allowing for efficient asset reuse across projects. + +::: tip +There are specific rules around who can import assets into the asset library, depending on the user’s permission group: + +- **Studio Manager**: Can import any assets from any production. +- **Production Manager**: Can import assets only if they are part of the team. +- **Supervisor** and **Artist**: Cannot import assets into the library. +::: + +## Settings + +### Configuring Kitsu + +Several global settings can be configured that apply to your studio, such as replacing the default Kitsu logo with your studio's logo. + +To do this, click on the main menu button +![Main Menu Button](./docs/img/getting-started/main_button.png), then under the **Admin** section, click on the **Settings**. + +![Main Menu Settings](./docs/img/getting-started/menu_settings.png) + +### Studio Settings + +Click on the **Set studio logo** and select an image to use. This will replace the Kitsu logo on your site and in various places across the app. You can also change the **Studio Name** to be used in your Kitsu instance. + + +The remaining settings on this page are global settings that affect every production. Some of these include: + +- How many hours per day should your team be working. +- You can opt to use original file names for downloads. +- Display images in HD quality by default. Use this option only if you have a very fast internet connection. +- Regarding the timesheet, you can also restrict artists from modifying timesheets older than one week. + +![Kitsu Settings](./docs/img/getting-started/kitsu_setting.png) + +Finally, you will also find settings relating to various chat integrations. Please refer to [Chat Integration](../chat-integration) section for more information on how to configure this. + +::: warning +Remember to **Save Settings** at the end once you are finished. +::: + +# Preparing Your Team + +Now that you have defined your workflow, it's time to organize your team so you have people to assign tasks to. + +We will learn how to add users to Kitsu, link them to departments, grant them permissions, and finally, add them to a production team so that they can begin working. + +## Creating Users + +### Creating Users and Linking Them to Departments + +To assign tasks to people, you first need to create an account for them in Kitsu. + + +::: warning Definition +As with other aspects in Kitsu, there are two libraries for users: +- The **People Page** (Global Library) is used to determine users' permissions, contracts, and departments they belong to. +- The **Team Page** (Production Library) is used to define who is working on a project and provide access to the production. +::: + + +Go to the **Main Menu** ![Main +menu](./docs/img/getting-started/main_button.png), and under the **STUDIO** +section, choose **People** page. + +![People Menu](./docs/img/getting-started/main_menu_people.png) + +Then, click on the ![Add a new user](./docs/img/getting-started/add_employee.png) button. + +![Create a new user](./docs/img/getting-started/create_employee.png) + +You will then be prompted to enter the following information: (please note from of the fields are required in order to create the user) +- 1) First Name (**MANDATORY**) +- 2) Last Name +- 3) Email (**MANDATORY**) +- 4) Phone Number + +::: danger Important! +An email address is **mandatory** and must be unique in order to create an account. +::: + +- 5) You can specify one or multiple **Departments** to link a user to. + +Being assigned to a Departments will also affect what shows up on the **My Checks** page, displaying only tasks related to your department. + +Finally, the timesheet page will be filtered to only tasks within your department as well. + +::: details Some more details about Departements +Once a user is linked to a department, various options will become available to them. For example, they will have direct access to their department's view on the global homepage. + +The department supervisor will be able to comment on all tasks within their department and assign tasks only to people from the same department(s). + +![Department filtered view](./docs/img/getting-started/department_filtered_view.png) +::: + +- 6) Role: This is where you will define the permission role of the user (this will be explained below). + +- 7) Active + +This section lets you choose whether to activate users immediately. If the user needs immediate access to Kitsu, set this to **yes**. However, there might be instances where you want to create a user but are not ready to give them access to Kitsu (for example, if you want to schedule tasks for an artist who is due to start work in two weeks). In this case, you can create and schedule the user, then simply enable them once they start. + +::: danger Important! +Each user requires an individual account to log in to Kitsu. +::: + +## Permission Roles + +### Understanding Permission Roles + +::: warning Definition +A permission role defines a set of access rights and privileges granted to a user within a system or application, dictating what actions they can perform and what resources they can access. +::: + +Roles are very important, so it's useful to understand what each of them does and which ones might be relevant to specific team members. Click into each of the sections below to learn more about each permission role. + +- **Artist** +::: details Artist Permissions +Artists can only access the productions they are part of. They can comment on tasks, upload media, and change statuses only on tasks that have been assigned to them. Their access is limited to a predefined set of statuses as determined by the Studio Manager. + +**They can:** +* Create personal filters on the global page and Task Type page. +* Edit their own comments. +* Check the checklist on their assigned tasks. +* Create playlists-on-the-fly for shots or assets, but won't be able to save these playlists. + +**They cannot:** +* See client comments. +* Access anything inside of projects that they haven't been assigned to. + +When an artist logs in to Kitsu, the first page they will see is their **My Tasks** page. + +![my task](./docs/img/getting-started/my_task_page.png) +::: + +- **Supervisor** +::: details Supervisor Permissions +Department supervisors inherit Artist permissions. + +Department supervisors have read and write access to their department(s) they work on: +assets, shots, tasks, assignments, statistics, breakdown, and playlists. + +**They can:** +* Assign tasks to their team artists (same department). +* Post comments on all tasks or their department(s). +* Check a checklist in their own department. +* Pin a comment. +* Edit their own comments. +* Add/edit a playlist for the studio or the client. +* See client comments and validations. +* See comments from other departments. +* View the timesheets of their team department(s). + +**They cannot:** +* Access the studio team, the main timesheets, and the production list +* Define task types, task statuses, and asset types. +* Comment on other departments than theirs; they can't assign artists from other departments. +::: + +- **Production Manager** +::: details Production Manager Permissions +Production managers inherit Department supervisor permissions. + +Production managers have read and write access to the productions they are assigned to, including +assets, shots, tasks, assignments, statistics, breakdowns, and playlists. + +**They can:** + +* Create assets and shots, either manually or through a CSV batch import. +* Post comments on any tasks within the production. +* Edit any comment within the production. +* Check any checklist within the production. +* Pin any comment within the production. +* Add a task column. +* Delete or add a task. +* Add/edit a playlist for the studio or the client. +* See client comments and validations. + +**They cannot:** + +* Access the studio page, the main timesheets, and the production list. +* Define task types, task statuses, and asset types. +::: + +- **Studio Manager** +::: details Studio Manager / Administrator Permissions +A Studio Manager acts in the same way as an Administrator, having read and write access to all productions and settings within Kitsu. Some of their privileges include: + +#### Create and edit a production + +The Studio Manager can create a new production, define its type, FPS, ratio, and resolution, and add a cover picture. They can also edit and delete any production. + +#### Manage the studio + +The Studio Manager has access to everything in the studio, including: + +* Read / write access across all the productions +* Access to the global timesheets page +* The ability to view all people in the studio +* Access to the main schedule + +In the People page, The Studio Manager **defines the permission role of each user**. + +They can also: + +* Customize global aspects of Kitsu: for example adding and modifying task types, task statuses, and asset types. +* Set permission roles +* Customize high-level studio information, such as customizing the studio name adding the company logo, and defining the number of hours per day of work etc. +* Choose to use the original filename for downloading media. + +#### Manage productions + +They have full access to all productions on your Kitsu site. Additionally: + +* They have the same permissions as the supervisor. +* They can add / delete a task column. +* They are allowed to create custom metadata columns. +::: + + +- **Vendor** +::: details Vendor Permissions +Vendors have similar permissions to artists. The main difference is that while an artist can still see tasks in their production (though they can only edit tasks assigned to them), a vendor can only see and edit tasks that they are specifically assigned to. Everything else that is not assigned is hidden. +::: + +- **Client** +::: details Clients Permissions +The client can only see the production of which they are part of. + +**They can:** + +* Access the global page of the assets/shots. +* Access the stats pages. +* Access Client playlists with limited access to task status when they post a comment + +**Note** +* Only Supervisors and the Studio Manager can see the Client retake or validation status. + + +**They cannot:** + +* See task assignments +* See comments that they didn't write +::: + + +::: details Add Employees from a CSV Spreadsheet File + +You may already have your employee list ready in a spreadsheet file. With Kitsu, you have two ways to import them: importing a `.csv` file directly or copy-pasting your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file. + +Then, go back to the People page on Kitsu and click on the **Import** icon. +![Import Icon](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** will open. Click on **Browse** to pick your `.csv` file. + +![Import csv file](./docs/img/getting-started/import_csv_people.png) + +To see the result, click on the **Preview** button. + +You can check and adjust the column names using the preview of your data. + +**Note:** The **Role** column is not mandatory. + +![Import data copy paste data](./docs/img/getting-started/import_preview_data_people.png) + +Once everything looks good, click on the **Confirm** button to import your data into Kitsu. + +Now, you have all your people imported into Kitsu. + +![Import data copy paste data](./docs/img/getting-started/import_result_people.png) + +::: + +## Two-Factor Authentication + +### Add Additional Security to Your Studio + +**Two-Factor Authentication** provides an additional layer for security for users logging in to Kitsu. It can be enabled on a per-user basis, so you can decide for which users it is enforced. + +To enable this, click on their avatar at the top right of the screen, then select **Profile**. +At the bottom of the page, they will find various **Two-Factor Authentication** options. + +### Available Two-Factor Authentication Methods + +- **TOTP**: This lets you use a Two-Factors Authentication app as a secondary password for your account. Selecting this option will present you with a QR, that once scanned into your 2FA app of choice, will prompt you for a one-time code each time you login. +- **OTP Via Email** Similar to TOTP, but instead of using an app the 2FA code is sent to your email address +- **FIDO Device** A FIDO device refers to a hardware security key that supports the FIDO (Fast IDentity Online) standard for two-factor authentication (2FA). If you own one of these devices, you can input it's name here to be used for Two-Factor-Authentication + +![TWO-FACTOR AUTHENTICATION](./docs/img/getting-started/2factors.png) + +## Adding Users to the Team + +Once you have created your production, you need to add users to the production's team to allow them access. Being part of a team also allows tasks to be assigned to you. + +::: tip +You don't need to add the Studio Manager role to a team to give them read permission (since this role will have access to it anyways). However, if you want to assign them tasks, they will need to be added to the team. +::: + +To add users to a team: + +1. On a production, use the **navigation** dropdown menu at the top of the page and select the **TEAM** page. + + ![Drop down menu team](./docs/img/getting-started/drop_down_menu_team.png) + +2. On the **Team** page, you can see all the assignees for a specific project. Switch to the top of the page if you want to check another project team. + + ![Team page](./docs/img/getting-started/team_page.png) + +# Create Your Production + +# Create a TV Show Production + +Now that you have designed your workflow in Kitsu and invited additional team members, it's time to create your production. + +Click on the **Create a New Production** button. + +![Create a production](./docs/img/getting-started/create_production.png) + +Enter your production name, choose **TV Show** as the **type**, and select the style of your production (2D, 3D). + +Next, fill in the technical information, such as the number of FPS, the aspect ratio, and the resolution. + +::: warning +All this data will be used when Kitsu re-encodes the video previews you upload. +::: + +Next, define the start and end dates for your production. + +![Add a production](./docs/img/getting-started/add_production.png) + +You can define your production workflow in the next part, 3 to 6. + +You need to select your asset task type (3), shot task type (4), task status (5), and asset types (6). + +![Add a production Pipeline](./docs/img/getting-started/add_production_pipe.png) + +::: tip +To create your **Production Workflow**, select Task Types from the Global Library. + +If you realize you missed some Task Types, you can create them later. + +[See Getting Started With Kitsu](../configure-kitsu) +::: + +Then, steps 7 and 8 are optional. If you already have a spreadsheet with your assets or shots, refer to the **import CSV** section for more details. + +Validate everything with the ![All done](./docs/img/getting-started/all_done_go.png) button. + +## Introduction to Kitsu's Global Page + +Welcome to Kitsu's global asset page. Let's take a look around. + +![Presentation of the global page](./docs/img/getting-started/presentation_global_tv.png) + +At the top, you’ll find the **global navigation**, which remains visible across all production pages. + +**From left to right:** + +### Main Menu + +By clicking on the top left button, Kitsu ![Main menu button](./docs/img/getting-started/main_button.png) (or your Studio logo), you will open the Main Menu. + +In the Main Menu, you’ll have direct access to your assigned tasks, productions, global and team schedules, the workflow customization page, and Kitsu settings. + +::: details Main Menu Details +**WORKSPACE** +- **My Tasks:** Your assigned tasks. +- **My Checks:** All tasks with the status **Is Feedback Request**, depending on your department(s). +- **My Productions:** Return to the production selection page. + +**STUDIO** +- **Productions:** List of all productions (opened or closed) with details. +- **People:** List of all the people (active or not) in your studio with information. +- **Timesheets:** Details of the time entered by the team across productions. +- **Main Schedule:** All your productions in one schedule. +- **Team Schedule:** Schedule of all the people in your studio and their tasks. +- **All Tasks:** Access all tasks across all productions at once. +- **News Feed:** Stay updated on what happened. +- **Entity Search:** Find any assets or shots across productions. + +**ADMIN** +- **Departments:** Create and edit departments. +- **Task Types:** Create and edit task types. +- **Asset Types:** Create and edit asset types. +- **Custom Actions:** Create and edit custom actions. +- **Automation:** Create and edit automation. +- **3D Backgrounds:** Add HDR backgrounds. +- **Bots:** Create and edit bots. +- **Settings:** Set up your studio. +- **Logs** + +::: warning Permission Visibility +The WORKSPACE section is enabled for all permissions except My Checks, which artists do not see. + +Artists (and above) can also see their own **Timesheets** and have access to the **Entity Search**. +::: + +### Navigation + +You will see the navigation dropdown menu to the right of the main menu icon. + +![Presentation of the global page](./docs/img/getting-started/presentation_global_header_tv.png) + +You can choose between different productions. The name of the current production and the current page are always displayed. + +Use the dropdown menu to navigate from one production to another if you have several. Once you have selected a production, the next dropdown menu will help you navigate through the different pages of that production. + +::: details Navigation Details +The first section is about tracking your tasks: +- **Assets** +- **Shots** +- **Sequence** +- **Episodes** +- **Edits** (If you have created specific tasks) + +The second section focuses more on the production side: +- **Concepts** +- **Breakdown** +- **Playlists** +- **News Feed** + +The third section is about statistics: +- **Sequence Stats** +- **Episodes Stats** +- **Asset Type Stats** + +The fourth section is related to team management: +- **Schedule** +- **Quotas** +- **Team** + +The fifth section is about the settings of your production: +- **Settings** + +::: tip +You start with the asset page, but you can change your production homepage to other entities (see settings page). +::: + +::: warning +If you realize you don't need an extra level of navigation, such as **Episodes**, you need to change your production type to **Short**. +::: + +### Global Search, News, Notification, and Documentation + +To the right of the navigation dropdown menu, you’ll find the global search. This quick-access feature shows the first four results. For more results and filtering options, visit the **Entity Search** page in the Main Menu. + +The next icon ![News](./docs/img/getting-started/canny.png) is a direct link to our news and feedback page. Here, you can view all the new features, complete with animated GIFs, and also submit suggestions for the next feature you’d like to see in Kitsu. + +Next, the bell icon ![Notification](./docs/img/getting-started/notification_icon_on.png) displays your notifications (assignments, comments, tags). The number of unread notifications will be shown on the bell icon. There are various filters to help you stay on top of updates and revisit important ones when needed. You can easily mark notifications as read or unread or quickly filter by watching/non-watching to focus on what matters most and declutter your feed. + +The last icon before your avatar is the documentation button ![documentation button](./docs/img/getting-started/documentation_button.png), which you are reading right now! + + +### Personal Settings +You can click on your avatar to open your profile menu (Profile, Color Theme, Video tutorials, etc.). + +![Profile enlarged](./docs/img/getting-started/profil_enlarge.png) + +## The Tasks Spreadsheet + +### Entity Spreadsheet + +The second part of the screen is common to all entities (Asset, Shot, Sequence, Edit). This is the global tasks spreadsheet. + +Here, you can see the status, assignment, priority, and other details for each task. + +::: tip +The first row and column header of the spreadsheet always remain at the top of the page, even when you scroll down. + +You can also **stick** other columns to keep them visible at all times. +::: + +### Filters + +The first element on the left is the filter box. You can type anything you want for simple filtering, such as sequence, asset type, etc. + +For more advanced filtering, please use the filter builder button. + +![Filter Builder](./docs/img/getting-started/filter_builder.png) + +You can save all the filters and use them as your pages. + +### Simplify the Display + +On the right part of the screen, there are some buttons (from left to right) to hide or display the assignment, hide or display the extra column, enlarge or reduce the thumbnail. + +![Display and Hide Option](./docs/img/getting-started/display_hide_option.png) + +### Import / Export + +Here we have the Batch import thumbnail ![Batch import thumbnail](./docs/img/getting-started/add_thumbnails.png), and finally import ![Import button](./docs/img/getting-started/import.png) or export ![Export button](./docs/img/getting-started/export.png) data. + +### Metadata Column + +Below, you have the name of the column. The (+) next to **Name** ![Add metadata column](./docs/img/getting-started/add_column_custom.png) is here to create a new metadata column. Then, you have the name of the task type column. + +### Customize the View + +On the far right of the screen, next to the scroll bar, is the option to hide and display an extra column (everything but the task type). + +![Display/Hide Text Column](./docs/img/getting-started/visible_column_detail.png). + +### Sum-up of your view + +The last part (4), at the bottom of the screen, is the sum-up of your displayed page. It means the sum-up will update if you filter the page. + +You can see the number of elements (assets or shots), the total number of estimated days, and the total number of days already spent. + +![Display Sumup](./docs/img/getting-started/sumup.png) + +## Create an Asset + +### Create Your First Asset + +Now that we have created our production and have a general grasp of the Kitsu interface, it's time to create our very first asset. + +On the asset page, click on **Add Assets**. + +![Asset Page First Time](./docs/img/getting-started/add_assets_first.png) + +::: warning +When you create an asset, your task workflow will be applied, and **all tasks will be created simultaneously**. +::: + +A pop-up window opens: + +- It asks you to choose the **Asset Type** (1). If you haven't added a new asset type, Kitsu will provide examples such as Characters, Environment, FX, Props. Let's start with a character. + +::: tip +You can also customize the asset type list and the task pipeline. [See Asset Types Workflow](../configure-kitsu#specific-asset-types-workflow) +::: + +Link this asset to an Episode (Kitsu provides the **Main Pack** by default, which is not editable or removable) and select a first episode to help you get started **E01**. You can rename or delete E01. + +- Give it a **Name** (3) and enter a description to help the artist know what to do and quickly identify the asset. + +- Click on **Confirm and Stay** if you have multiple assets to create. + +![Create an Asset](./docs/img/getting-started/add_asset_popup.png) + +You can change the asset type and continue adding assets. + +::: tip +The newly created asset appears in the background whenever you click on **Confirm and Stay**. +::: + +After adding your last asset, click on **Confirm**. It will create the asset and close the window. + +::: tip +If you click on **Confirm and Stay** but realize you don't have more assets to add, click on **Close**, and the window is canceled. +::: + +![Global Asset Page](./docs/img/getting-started/asset_edit.png) + +You will also see that the tasks selected for your asset's workflow are created at the same time. + +If you need to add more **Assets**, click the **+ Create Assets** button. + +::: details Create Assets from a CSV Spreadsheet File +You may already have your asset list ready in a spreadsheet file. +With Kitsu, you have two ways to import them: the first is to import a `.csv` file and copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file. + +Then, go back to the asset page on Kitsu and click on the **Import** icon. +![Import Icon](./docs/img/getting-started/import.png) + +A pop-up window **Import Data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Import CSV File](./docs/img/getting-started/import_csv_asset_tv.png) + +To see the result, click on the **Preview** button. + +You can check and adjust the column names by previewing your data. + +Note: the **Episode** column is only mandatory for a **TV Show** production. + +Once everything is correct, click the **Confirm** button to import your data into Kitsu. + +Now, you have imported all your assets into Kitsu and created the tasks according to your settings. + +![Import Result](./docs/img/getting-started/import_result_asset.png) +::: + +::: details Create Assets by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import Copy Data](./docs/img/getting-started/import_copypas_asset.png) + +Then, go back to the asset page on Kitsu and click on the **Import** icon. +![Import Icon](./docs/img/getting-started/import.png) + +A pop-up window **Import Data from a CSV** opens; click on the **Paste a CSV Data** tab. + +![Import Data Copy Paste Tab](./docs/img/getting-started/import_pastcsvdata_asset_tv.png) + +You can paste your previously selected data and see the result with the **Preview** button. + +![Import Data Copy Paste Data](./docs/img/getting-started/import_pastcsvdata2_asset_tv.png) + +You can check and adjust the column names by previewing your data. + +Note: the **Episode** column is only mandatory for a **TV Show** production. + +Once everything is correct, click the **Confirm** button to import your data into Kitsu. + +Now, you have imported all your assets into Kitsu and created the tasks according to your settings. + +![Import Result](./docs/img/getting-started/import_result_asset.png) +::: + +### Viewing Details of an Asset + +To see the details of an asset, click on its name. + +![Asset Detail](./docs/img/getting-started/asset_detail.png) + +A new page opens with the list of tasks, assignments, and status updates on the right. + +![Asset Detail Page](./docs/img/getting-started/asset_detail_page.png) + +You can click on the status of each task to open the comment panel and view the history of comments and different versions. + +![Asset Detail Page](./docs/img/getting-started/asset_detail_page_panel.png) + +You can also access the following: + +- **Casting** + +![Asset Detail Casting](./docs/img/getting-started/asset_detail_page_casting.png) + +- **Concepts** linked to this asset + +![Asset Detail Concepts](./docs/img/getting-started/asset_detail_page_concept.png) + +- The **Schedule** is available if you have previously filled out the task type page data. If the data has already been filled out, you will be able to modify them directly here. + +![Asset Detail Schedule](./docs/img/getting-started/asset_detail_page_schedule.png) + +- The **Preview Files** uploaded at various task types + +![Asset Detail Preview Files](./docs/img/getting-started/asset_detail_page_file.png) + +- And the **Timelog** if people have filled out their timesheets on the tasks of this asset. + +![Asset Detail Timelog](./docs/img/getting-started/asset_detail_page_timelog.png) + +## Update Your Assets + +You can update your assets at any point, change their name and asset type, modify their description, and add any custom information you added to the global page. + +To edit assets, go to the asset page, hover over the asset you want to modify, and then click on the **Edit** button ![Edit Button](./docs/img/getting-started/edit_button.png) (1) on the right side of the line. + +![Edit an Asset](./docs/img/getting-started/asset_edit01.png) + +To view the full description on the main asset page, click on the first words (2), and a pop-up with the full description will open. + +::: details Update Assets with the CSV Import +You can use the CSV import to update your data quickly. + +You can update the **type** of an asset, the **Assignment**, the **Status** of tasks, and add a **Comment**. + +You need to switch on the option **Update existing data**. Then, the lines that will be updated will be highlighted in blue. + +![Import Data Copy Paste Data](./docs/img/getting-started/import_update_asset.png) +::: + +::: details Update Assets by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import Copy Data](./docs/img/getting-started/import_copypas_asset_tv.png) + +Then, go back to the asset page on Kitsu and click on the **Import** icon ![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import Data from a CSV** opens; click on the **Paste a CSV Data** tab. + +![Import Data Copy Paste Tab](./docs/img/getting-started/import_pastcsvdata_asset_tv.png) + +You can paste your previously selected data and see the result with the **Preview** button. + +![Import Data Copy Paste Data](./docs/img/getting-started/import_pastcsvdata2_asset_tv.png) + +You can check and adjust the name of the columns by previewing your data. + +You need to switch on the option **Update existing data**. Then, the lines that will be updated will be highlighted in blue. + +![Import Data Copy Paste Data](./docs/img/getting-started/import_update_asset_tv.png) + +Now, you have imported all your assets into Kitsu and updated the tasks according to your settings. + +![Import Result](./docs/img/getting-started/import_result_asset.png) +::: + +## Add More Tasks After Creating the Assets + +If you realize **after** creating the assets that tasks are missing, you can still add them. + +First, ensure that the missing task type is added in the settings page under the task type tab (otherwise, [See Getting Started with Kitsu](../configure-kitsu)). + +Then, go back to the asset page and click on **+ Add Tasks**. + +## Create a Concept + +### Upload a Concept + +To create a **Concept**, navigate to the **Concepts** page using the navigation menu. + +![Concept Menu](./docs/img/getting-started/menu_concept_tv.png) + +To upload a concept, click the **Add a new reference to concepts** button. + +You can upload one or several concepts at the same time. + +![Concept Empty Page](./docs/img/getting-started/concept_empty_prod.png) + +Once you upload your previews, the concept page will look like this. + +![Concept Filled Page](./docs/img/getting-started/concept_filled_prod.png) + +You can interact with the concept in two ways: click on the picture to see an enlarged view. The second is to click on the status part to open the **Comment Panel** on the right. + +On the comment panel, you have two options: link a concept to an existing asset or delete it. You can also comment and change the status of the asset. + +The idea is to have one version per **Concept**. If it's not approved, you need to upload a new concept, not to have multiple versions of the same concept. + +One concept is one task. + +![Concept Options](./docs/img/getting-started/concept_options.png) + +### Link a Concept to an Asset + +Once concepts are uploaded, you can link them to the assets. + +You can see the links on the status part of the assets. + +Click on the status part of the concept; it will open the comment panel on the right. + +![Concept Comment Panel](./docs/img/getting-started/concept_comment_panel.png) + +On the comment panel, you have two options at the top: Link a concept to an asset and delete the concept. + +To link an asset, click on the **Link** ![Link button](./docs/img/getting-started/link_icon.png) button. + +Kitsu will display all the **Assets** available to link with the concept uploaded. + +Kitsu will list the linked assets at the top of the comment panel. For now, there are No Links. + + +![Concept link](./docs/img/getting-started/concept_link.png) + +To link an asset, click on it. The linked assets' names will appear at the top of the screen under the preview of the concept. + + +![Concept asset linked](./docs/img/getting-started/concept_asset_linked.png) + +Once a concept is linked to an asset, it can be seen on the asset's detail page. + +Return to the asset page, and click on the asset name you want to see the concept. + +![Detail asset page](./docs/img/getting-started/asset_detail_page.png) + +Per default, the casting detail is displayed on the second part of the screen. +Use the dropdown menu to choose the concept. + +![asset detail concept](./docs/img/getting-started/asset_detail_concept.png) + +Once in the concept section, you will see all the concepts created for this asset. You can filter them per status. + +![asset detail concept list](./docs/img/getting-started/asset_detail_concep_listt.png) + +## Create a Shot + +### Create Your First Shot + +It's time to create **shots** for your production. + +::: warning +**Shots** are linked to a **Sequence** which is also linked to an **Episode** in Kitsu. +This means you must create an episode, then a sequence, and populate this sequence with shots. +::: + +Navigate to the **Shots** page using the dropdown menu and click on **SHOTS**. + +![Drop Down Menu Shot](./docs/img/getting-started/drop_down_menu_shot_tv.png) + +Click on the **Add Shots** button to start with shot creation. + +![First Add Shots](./docs/img/getting-started/new_shot.png) + +::: warning +When you create a shot, the task workflow you have designed will be applied, and all the tasks will be created at the same time as the shot. + +[See Getting Started With Kitsu](../configure-kitsu) +::: + +A new pop-up opens for the creation of the shots. +You can now create Episodes, sequences, and shots. + +Kitsu provides a first episode as an example **E01**; you can select it and add to it your first sequence, for instance, sq01, +then click **Add**. + +Now, you can see your sequence has been created. To add shots to this sequence, you need to select it and create your shots. + +For example, type sh0010 in the shots column, then click **Add**. +You can also define padding for your shots. + +::: tip +If you want to name your shots ten on ten as SH0010, SH0020, SH0030, etc, set the **Shot Padding** as 10 +::: + +![Manage Shots](./docs/img/getting-started/manage_shot_tv.png) + +You can now see that new shots are listed and linked by their sequence, and the shelves are linked to the Episode. +You have created the first shot of the first sequence of the first Episode. + +Now, let's add more shots than just one! As you can see, the box already contains your name +code but incremented, so you have to continue to click on **Add** to +create more shots. + +![Add Shots](./docs/img/getting-started/add_shots.png) + +To add more sequences, go to the left part, type the name of your new sequence, and then click on **Add**. +Your second sequence is selected, and you can now add shots. + +You can follow the same process to add more episodes. + +Once you create a new episode, it will be selected and created sequentially. +Once the sequence is created, it will be selected, and you can create shots on this sequence. + +::: tip +If a shot is misplaced on a sequence, you have to edit the shot +![Edit Button](./docs/img/getting-started/edit_button.png), and change the +sequence. + +**But you can't change the Episode of a shot.** + +![Edit Shot Change Sequence](./docs/img/getting-started/edit_shot.png) + +![Change Sequence](./docs/img/getting-started/change_seq.png) +::: + +## Create Shots from an EDL File + +You may already have your shots list ready in an **EDL** file. With Kitsu, you can directly import your **EDL** file to create the sequence, shot, number of frames, and Frame in and out. + +On the **Global Shot Page**, you will see an **Import EDL** button. + +![Import EDL Button](./docs/img/getting-started/import_edl_button.png) + +You can select the naming convention of the video file used during the editing on the pop-up. + +![Import EDL Menu](./docs/img/getting-started/import_edl_menu.png) + +It means the video clip on the editing is named as project_sequence_shot.extension. + +Here is an example of an EDL for the LGC production. + +![EDL Example](./docs/img/getting-started/edl_example.png) + +The video files are named LGC_100-000.mov, which means LGC is the production name, 100 is the sequence name, and 000 is the shot name. + +You can import the EDL file once you are set with the naming convention. + +Then click on **Upload EDL**. + +Then Kitsu will create the shots. + +![EDL Shot Creation](./docs/img/getting-started/edl_shot_creation.png) + +::: details Create Shots from a CSV Spreadsheet File +You may already have your shots list ready in a spreadsheet file. With Kitsu, you have two ways to import them; the first is to import a `.csv` file directly, and the second is to copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file. + +Then, return to the shot page on Kitsu and click the **Import** icon. +![Import Icon](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Import CSV File](./docs/img/getting-started/import_csv_shot_tv.png) + +To see the result, click on the **Preview** button. + +You can check and adjust the name of the columns by previewing your data. + +NB: the **Episode** column is mandatory for a **TV Show** production. + +![Import Preview Data](./docs/img/getting-started/import_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, all your shots are imported into Kitsu, and the task is created according to your **Settings**. + +![Import Result](./docs/img/getting-started/import_result_shot.png) +::: + +::: details Create Shots by Copying / Pasting a Spreadsheet File +Open your spreadsheet, select your data, and copy them. + +![Copy Data](./docs/img/getting-started/import_copypas_shot.png) + +Then, go back to the shot page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Paste CSV Data](./docs/img/getting-started/import_pastcsvdata_shot_tv.png) + +You can paste your previously selected data and see the result with the **Preview** button. + +![Preview Data](./docs/img/getting-started/import_pastcsvdata2_shot_tv.png) + +You can check and adjust the name of the columns by previewing your data. + +NB: the **Episode** column is only mandatory for a **TV Show** production. + +![Preview Data](./docs/img/getting-started/import_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, all your shots are imported into Kitsu, and the task is created according to your **Settings**. + +![Import Result](./docs/img/getting-started/import_result_shot.png) +::: + +### See the Details of a Shot + +If you want to see the details of a shot, click on its name. + +![Shot Detail](./docs/img/getting-started/shot_detail.png) + +A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. +You can navigate through each by clicking on the name of the tabs. + +![Shot Detail Page](./docs/img/getting-started/shot_detail_page_tv.png) + +You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. + +![Shot Detail Page](./docs/img/getting-started/shot_detail_page_panel_tv.png) + +You can also access the **Casting**, + +![Asset Detail Casting](./docs/img/getting-started/shot_detail_page_casting_tv.png) + +The **Schedule** is available if you have previously filled out the task type page data. If the data have already been filled out, you will be able to modify them directly here. + +![Asset Detail Casting](./docs/img/getting-started/shot_detail_page_schedule_tv.png) + +the **Preview Files** uploaded at various task types, + +![Asset Detail Casting](./docs/img/getting-started/shot_detail_page_file_tv.png) + +And the **Timelog** if people have filled out their timesheet on the tasks of this asset. + +![Asset Detail Casting](./docs/img/getting-started/shot_detail_page_timelog_tv.png) + +## Update your shots + +You can update your shots at any point, change their names and sequences, modify their descriptions, and add any custom information you added to the global page. + +You can edit shots by going to the shot page, hovering over the shot you want to modify, and then clicking on the **edit** button +![Edit button](./docs/img/getting-started/edit_button.png) (1) on the right side of the line. + +![Edit an asset](./docs/img/getting-started/asset_edit01.png) + +To extend the description on the main shot page, click on the first words (2), and a pop-up with the full description will open. + + +::: details Update Shots Information with CSV Import +You can use the **CSV Import** to update your data as the **NB Frames**, **Frame IN**, **Frame Out**, or any custom **Metadata column**. + +You can update the **Assignation**and the **Status** of tasks and add a **Comment**. + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_shot.png) + +Then, go back to the shot page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_shot_tv.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_shot_tv.png) +  +You need to switch on the **Option: Update existing data**. +The updated shots will be in blue. + +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/update_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, all your shots are imported into Kitsu, and the task is created according to your **Settings**. + +![Import data copy paste data](./docs/img/getting-started/import_result_shot.png) +::: + +## Add more tasks after creating the shots + +If you realize after creating the shots that the task is missing, you can still add them. + +First, ensure the missing task type is added to the settings page under the task type tab (otherwise, http://localhost:8080/tvshow/#update-your-shots)). + +Then go back to the shot page and click on + Add tasks. + +## Adding Frame Numbers and Ranges to Shots + +At this stage of production, the animatic should be complete. This means you have the duration (number of frames) and the frame range (Frame In and Frame Out) for each shot. You can input this information into the spreadsheet to ensure accurate frame calculation without any missing or redundant frames. + +::: warning +If you've manually created your shots and sequences, the Frame column might be hidden. To reveal it, you need to edit at least one shot and input the number of frames. Alternatively, if you've imported the number of frames via CSV/spreadsheet, the Frame column will be visible. +::: + +To add frame range information to shots, follow these steps: + +1. **Edit Shots:** Click on the edit button (![Edit button](./docs/img/getting-started/edit_button.png)) located on the right side of the shot line. + + ![edit shot Change sequence](./docs/img/getting-started/edit_shot.png) + +2. **Input Frame Range:** In the editing window, enter the In and Out frames for the shot, then save by clicking the Confirm button. + + ![Shot edit page](./docs/img/getting-started/shot_edit.png) + + The frame range will now be displayed on the general spreadsheet of the shot page. + + ![Shot edit page](./docs/img/getting-started/shot_framerange_global.png) + +3. **Fill Frame Information:** Once the Frames, In, and Out columns are unlocked, you can directly input data from the global shot page. Simply click on the case you want to fill in and add the data. + + ::: tip + If you input Frame In and Frame Out, Kitsu will automatically calculate the Number of Frames. + ::: + + ![Shot edit page](./docs/img/getting-started/shot_framerange_global_edit.png) + +4. **CSV Import:** You can also utilize CSV Import to swiftly update your frame ranges. [Update Shots information with CSV Import](README.md#update-your-shots) + +5. **Access Shot History:** You can view the history of shot values, including frame ranges. + + ![Shot framerange detail](./docs/img/getting-started/shot_framerange_detail.png) + + ![Shot Values History](./docs/img/getting-started/shot_values_history.png) + +## Creating Custom Metadata Columns + +To include additional information on the general spreadsheet pages, you'll need to create a custom **metadata column**. + +You might have extra details to add, such as **level of difficulty**, **weather**, **tags**, etc. All textual or numerical information can be stored in the custom metadata column. + +::: warning +Any Custom Metadata Column created in one episode will be applied to all episodes. +::: + +Follow these steps to create a custom metadata column: + +1. **Add Column:** Click on the **+** near the Name column. + + ![Metadata Column](./docs/img/getting-started/add_column_custom.png) + +2. **Choose Type:** With the Type option, select how you want to store your information: + - **Text** + - **Number** + - **Checkbox** + - **List of Values** + - **List of Tags** + - **Checklist** + + ![Metadata Column detail](./docs/img/getting-started/custom_column_detail.png) + + ::: warning + - **Text**, **Number**, and **Checkbox** allow you to add different information for each entity without prior planning. + - **List of Values**, **List of Tags**, and **Checklist** offer the same options for each entity and must be filled in advance. + + ![Metadata Column list](./docs/img/getting-started/custom_column_list.png) + Type the list elements below Available values and confirm them by clicking on Add value. + ::: + +3. **Link to Departments:** Optionally, you can link the metadata column to one or several departments. This allows artists/supervisors to view it on their to-do page and in department-filtered views. + + ::: tip + To link a metadata column to a department, click on the department from the list and then click on **add** to apply it. + + Here, the VFX column is linked to two departments. + + ![Department metadata column filtered view](./docs/img/getting-started/department_filtered_view_column.png) + ::: + + ::: details Edit Metadata Column + On the global page of the asset or the shot, click on the arrow to the right of your metadata column and select **Edit**. + + ![Metadata column Edit](./docs/img/getting-started/custom_column_edit.png) + ::: + +4. **Fill Information:** You can input information directly on the global spreadsheet page. The cases are editable. + + ![Metadata Column detail](./docs/img/getting-started/custom_column_list_edit.png) + + ::: tip + You can batch-modify the metadata column by selecting several entities on the left and then modifying your metadata column. + ::: + + ::: details Edit Manually + You can also modify the information manually by clicking the edit button (![Edit button](./docs/img/getting-started/edit_button.png)). + + You'll see a new line on the edit pop-up where you can select the information from the list, enter free text or a number, check a box, or use a checklist, depending on your previous choice. + + Remember to press the Confirm button when you're done. + + ![Metadata Column detail](./docs/img/getting-started/edit_asset_custom.png) + ::: + +5. **Edit or Delete:** To edit or delete the metadata column, go to the general spreadsheet page. Next to the name of your metadata column, click on the arrow. + + ::: tip + You can also sort your global page with this new column by clicking the arrow on the right of the column name to open its menu and then selecting Sort By. + + You can also Stick the metadata column to the left. + ::: + +## Create a Sequence + +In Kitsu, you can also track tasks at the **Sequence** Level. +It's especially useful when +you have macro tasks to track, like Story and color Board, Color Grading, etc. + +Use the navigation menu to go to the **Sequences** page. + +![Navigation Sequences](./docs/img/getting-started/drop_down_menu_sequence_page_tv.png) + +::: warning +This new page behaves like the asset and shot global page. + +To use this page, You first need to create dedicated task types on your **Global Library** + with the **Sequence** attribute. + + [See How to Create a New Task Type](../configure-kitsu#studio-workflow-create-a-new-task-type) + +Once you have created your **Task Types**  on your **Global Library**, add them to your +**Production Library** (setting page). +::: + +Once your task types are ready on the settings page, you need to create a sequence (the same as the assets or shots). + +This new page behaves like the asset and shot global page. You can add your edits with the **+ New Sequence** button. + +You can assign tasks, do the review, change status, etc. + +You can add a metadata column, fill in the description, etc. + +::: tip +You can create a sequence directly from here (**+New sequence** button) or create a sequence linked to your shots from the global shot page. +::: + +You can **Rename** and **Delete** the Sequence entity on this page, as for the asset and shot entity. + +If you click on the name of a sequence, you will see the detail page of this sequence. + +![Sequence detailed page](./docs/img/getting-started/sequence_detail_page_tv.png) + +On the detailed page, you have access to the sequence casting. +You can see all the assets used in the whole sequence. + +You can also access the schedule, Preview Files, Activity, and Timelog of the sequence **tasks**. + +## Create an Edit + +You can track tasks at the **Edit** level in Kitsu. + +It's especially useful when you have several edits to track through several validation steps. For example, you can track your whole movie, several trailers, and the First Edit, Fine Edit, Mix, etc. + +::: warning +By default, the **Edit** page will not be displayed until you have task types for it in your **production library** (setting page). + +[See How to Create a New Task Type](../configure-kitsu#studio-workflow-create-a-new-task-type) +::: + +To use this page, you need to first create a dedicated task type in your **Global Library** with the **Edit** attribute. + +Once you have created your **Task Types** in your **Global Library**, add them to your **Production Library**. After this, you will see the **Edit** option displayed in the navigation drop-down menu. + +![Navigation Edit](./docs/img/getting-started/drop_down_menu_edit_tv.png) + +This new page behaves like the asset and shot global page. You can add your edits with the **+ New edit** button. + +You can assign tasks, conduct reviews, change status, etc. + +You can also add a metadata column, fill in the description, etc. + +::: tip +Depending on your deliveries, you can also change the resolution per **Edit**. +::: + +::: warning +The detail page is different from the other entities. + +As **Edit** focuses on a specific long video, the detail page resembles the comment detail page more closely. +::: + +You can **Rename** and **Delete** the Edit entity on this page, similar to the asset and shot entity. + +## Create a Breakdown List + +Filling out the breakdown helps you with the assembly of the shots. With the +breakdown, you have all the details of the assets you need to add to create your +shot, and we are sure to omit nothing. + +On the dropdown menu, choose **BREAKDOWN**. + +![drop down Menu breakdown](./docs/img/getting-started/drop_down_menu_breakdown_tv.png) + +On the left of the breakdown page is the episode/sequence/shot menu (1); you can choose between those you created. They are the right part of +the screen; all the assets created are available for this production (main pack and episodes) (3). Moreover, in +the middle section, it is your selection for the shot (2). + +![Breakdown page](./docs/img/getting-started/breakdown_general_empty.png) + +So now you have to select the shot you want to cast. + +You can display the assets as text if you don't have thumbnails yet or enlarge the +thumbnails size. + + +![Breakdown page text display](./docs/img/getting-started/breakdown_text_display.png) + +You may also realize an asset needs to be added to the list during your breakdown. + +You can create a new asset directly from the breakdown page. Click the **+** on the right of the **All available assets**. + +![Breakdown page create asset](./docs/img/getting-started/breakdown_create_asset.png) + + +You can also choose multiple shots at once. Click on the first shot, hold the **shift** key, and click on the last shot of your selection. + +![Breakdown page global bulk select](./docs/img/getting-started/breakdown_general_bulk_select.png) + +Then click on the assets you want +to assign: characters, backgrounds, ... from the right part (3). +If you have selected multiple shots, your selection is applied to the numerous shots. + +Copy a shot filled with assets and paste this asset selection into another shot. + +You can see a **+1** or **+10** when you pass over the asset. It's the number +of times you add this asset, and you can click on it as many times as you need. + +![Breakdown add asset](./docs/img/getting-started/breakdown_add_asset.png) + +You can also link all your assets to episodes on a TV show without specifying a sequence or shot. + +![Breakdown episode asset](./docs/img/getting-started/breakdown_episode.png) + +This way, you can link all your assets to one or several episodes before the storyboard/animatic stage. + +You can now see the asset in the middle of the screen (2). Next +to the asset's name is the number of times it has been added. In this +example, we have added the character asset Llama two times. + + +If you add an asset twice by mistake, you must go to the screen's middle part to select assets for this shot (2). From there, click on +**-1**. When you finish this shot, go on with the other shots. +Your selection is automatically saved. + +![Breakdown remove asset](./docs/img/getting-started/breakdown_remove_asset.png) + +If a new asset is created during the storyboard, return to the asset +page (using the dropdown menu) and create the needed assets. The tasks previously created are applied immediately to these new +assets. However, you have to do the assignment, and then you can +continue with the breakdown. + +Now, your **Breakdown** page should look like this. + +![breakdown add asset bulk](./docs/img/getting-started/breakdown_general_bulk_select_full.png) + +You can also make a breakdown list for your assets if you need to assemble them and keep track of the separate parts. + +On the top left corner of the screen, choose **asset** in the dropdown menu below **FOR**. + +![Breakdown asset menu](./docs/img/getting-started/breakdown_asset_menu.png) + +You can now access a second dropdown menu to choose your asset type: **Character**, **Environment**, **Props**, **FX**, ... + +![Breakdown asset type](./docs/img/getting-started/breakdown_asset_menu_type.png) + +You can complete the asset breakdown page the same way you did the shots. First, select one or more assets on the left part and then add the right part's elements. + +::: details Create a Breakdown List from a CSV File + +You may already have your breakdown list ready in a spreadsheet file. With Kitsu, you have two ways to import it: the first is to import a .csv file directly, and the second is to copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file following Kitsu's recommendation. + +Click on the **import** button ![Import button](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Breakdown import csv file](./docs/img/getting-started/import_breakdown_csv_file_tv.png) + +To see the result, click on the **Preview** button. + +You can check and adjust the name of the columns by previewing your data. + +NB: the **Episode** column is only mandatory for a **TV Show** production. + +![Breakdown import Preview](./docs/img/getting-started/import_breakdown_preview_tv.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, you have your breakdown imported into Kitsu. + +![Breakdown import Preview](./docs/img/getting-started/breakdown_general_bulk_select_full.png) +::: + +::: details Create a Breakdown List by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_breakdown_tv.png) + +Then, go back to the breakdown page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started//import_breakdown_csv_file_tv.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_breakdown_preview_tv.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is mandatory for a **TV Show** production. + + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, all your assets have been imported into Kitsu. + +![Import data copy paste data](./docs/img/getting-started/breakdown_general_bulk_select_full.png) +::: + +## Casting from the Asset Library + +It is also possible to cast assets from the global **Asset Library** into your production. This allows you to cast an already existing asset, without the need to re-create it for each production. + +![Asset Library Display](./docs/img/getting-started/asset_library_display.png) + +To see assets outside of your production from the asset library, click the **Display Library** Button (1) + +Assets from the global asset library will appear, and will be highlighted with a yellow boarder (2). They can then be cast in your breakdown exactly the same as other assets. + +![Asset Library View](./docs/img/getting-started/asset_library_view.png) + +Back on your productions asset page, you can choose to display global assets that have been cast in your production by toggling the **Display Library** button (1). These assets will be highlighted in yellow, indicating that they originate from the global asset library, and not your current production. (2). + +## Introduction to Asset State: Ready For + +Most of the time, you don't need to wait for an asset's tasks to be approved to use it on a shot task. + +For example, when an asset is approved at the **Concept** stage, it can be used for the **Storyboard** stage. +Then, when it's approved at the **Modeling** stage, you can use it for the **Layout** stage and so on. + +That's exactly what the asset state **Ready For** is doing: it lets you know the state of an asset's tasks and compares its usability for the shot tasks. + +Now that we have filled out our breakdown, we know exactly which asset is used on every shot. + +First, we need to define an asset's state relative to its task status. You can modify the **Ready for** by clicking on a cell. You will see a dropdown menu with the shot task. + +![Asset Status](./docs/img/getting-started/asset_status.png) + +::: tip +You can use the **automations** to do the heavy lifting for you. + +You can set automation with the **ready for** trigger. + +[See How to Create Status Automation](../configure-kitsu#automation) + +::: + +Now that we have changed some asset states to **Ready for**, we can see the result on the shot page. + +You can notice that some white boxes are now **Green**: all the assets cast in this shot are ready for this specific task. + +![Asset Status](./docs/img/getting-started/asset_status_box_tv.png) + +If you see the white box, Kitsu will display how many assets are ready for this task. + +![Asset Status](./docs/img/getting-started/asset_status_empty_tv.png) + +::: tip +No assets are cast for this shot if you don't see any boxes. +::: +  +Then, you can click on the shot's name to go to its detail page. +Then, you will see all the assets cast in this shot and their status. + +![Asset Status](./docs/img/getting-started/asset_status_detail_tv.png) + +It's the fastest way to know if you can start a shot for a specific task. + +# Create a Feature Film Production + +Now that you have designed your workflow in Kitsu and invited more people, it's time to create your production. + +Click on the **Create a new +production** button. + +![Create a production](./docs/img/getting-started/create_production.png) + +Enter your production name, and choose **Feature Film** as the **type**, then select the style of your production (2D, 3D). + + +Then, you must fill in technical information, such as the number of FPS, the Ration, and the Resolution. + +All these data will be used when Kitsu re-encodes the video previews uploaded. + +Then, you need to define your production's start and end dates. + +![Add a production](./docs/img/getting-started/add_production.png) + +You can define your production workflow in the next part, 3 to 6. + +You need to select your asset task type (3), shot task type (4), task status (5), and asset types (6). + +![Add a production Pipeline](./docs/img/getting-started/add_production_pipe.png) + + +::: tip +To create your **Production Workflow**, you will select Task Types from the Global Library. + +If you realize you missed some Task Types, you can create them later. + +See the [Studio Workflow](../configure-kitsu#studio) section. +::: + +Then, 7 and 8 are the option parts. If you already have a spreadsheet with your asset/shot. + +See the **import CSV** section for more details. + +[Import asset](../feature#create-an-asset) + +[Import shot](../feature#create-shots-from-an-edl-file) + +Validate everything with the ![All done](./docs/img/getting-started/all_done_go.png) button. + +## Introduction to the Kitsu Global Page + +Welcome to Kitsu's global asset page. + +Let's take a look around. + +![Presentation of the global page](./docs/img/getting-started/presentation_global.png) + +On the top part (1), you have the **global navigation**, which is always visible throughout all the production pages. + +**From left to right:** + +### Main Menu + +You will open the main menu by clicking on the top left button, Kitsu![Main menu button](./docs/img/getting-started/main_button.png) (or your Studio logo). + +On the main menu, you will find direct access to your assigned tasks, productions, global and team schedules, the workflow customization page, and the Kitsu settings. + +::: details Main Menu Details +**WORKSPACE** +- My Tasks: your assigned tasks +- My Checks: All the tasks with status **Is Feedback Request** depending on your department(s) +- My Productions: Get back to the selection on the production page. + + +**STUDIO** +- Productions +- People +- Timesheets +- Main Schedule +- Team Schedule +- All tasks +- News Feed +- Entity Search + + +**ADMIN** +- Departments +- Task Types +- Asset Types +- Custom Actions +- Automation +- 3D Backgrounds +- Bots +- Settings +- Logs + +::: warning Permission Visibility +The WORKSPACE section is enabled for all permissions except My Checks, which artists do not see. + +Artist (and above) can also see their own **Timesheets**, and have access to the **Entity Search** +::: + +### Navigation + +You will see the navigation dropdown menu on the right of the main menu icon. + +![Presentation of the global page](./docs/img/getting-started/presentation_global_header.png) + + +You can choose between production. The name of the actual production and actual page are always displayed. + +You can use the dropdown menu to navigate from production to production (if you have several). + +Once you have selected a production, the next dropdown menu will help you navigate through the different pages of this production. + + +::: details Navigation details +The first section is about the tracking of your tasks +- Assets +- Shots +- Sequence +- Edits (If you have created specific tasks) + +The second section is more about the side of the production +- Concepts +- Breakdown +- Playlists +- News feed + +The third section is about statistics +- Sequence Stats +- Asset Type Stats + +The fourth section is related to Team Management +- Schedule +- Quotas +- Team + +The fifth section is about the settings of your production +- Settings + +::: tip +You start with the asset page, but you can change your production homepage to other entities (see setting page) +::: + +### Global Search, News, Notification and Documentation +You have the global search on the right of the navigation dropdown menu. It's a quick access search that will display the four first results. If you need more results and filtering options, see the **Entity Search** page. + + +The next icon ![News](./docs/img/getting-started/canny.png) is a direct link to our news and feedback page. + +You can see all the new features with an animated gif and also add suggestions about the next feature you want to see in Kitsu. + +Next, the bell icon ![Notification](./docs/img/getting-started/notification_icon_on.png) displays your notifications (assignments, comments, tags). The number of unread notifications will be shown on the bell icon. There are various filters to help you stay on top of updates and revisit important ones when needed. You can easily mark notifications as read or unread or quickly filter by watching/non-watching to focus on what matters most and declutter your feed. + +The last icon before your avatar is the documentation button. +![documentation button](./docs/img/getting-started/documentation_button.png), that you are reading right now! + +### Personal Settings +You can click on your avatar to open your menu (setting, documentation, etc.). + +![Profile enlarged](./docs/img/getting-started/profil_enlarge.png). + +## The Tasks Spreadsheet + +### Entity spreadsheet + +The second part of the screen is common to all the entities (asset, shot, sequence, Edit). This is the global tasks spreadsheet. + +Here, you see the status, assignation, priority, etc, for each task. + +::: tip +The spreadsheet's first line and column header always appear at the top of the page, even if you scroll down. + +You can also **Stick** other columns to keep them visible at all times. +::: + +### Filters + +The first element on the left is the filter box. You can type anything you want for simple filtering, sequence, asset type, etc. + +If you need more advanced filtering, please use the filter builder button. + +![Filter Builder](./docs/img/getting-started/filter_builder.png) + +You can then save all the filters and use them as your pages. + +::: warning +You must press **Enter** on your keyboard to launch the filters on a feature film. +::: + +### Simplify the display + +On the right part of the screen, there are some buttons (from left to right) to hide or display the assignation, hide or display the extra column, enlarge or reduce the thumbnail, +![display and Hide option](./docs/img/getting-started/display_hide_option.png) + +### Import / Export + +batch import thumbnail ![batch import thumbnail](./docs/img/getting-started/add_thumbnails.png), and finally import ![Import button](./docs/img/getting-started/import.png) or export ![export button](./docs/img/getting-started/export.png) data. + +### Metadata column + +Below, you have the name of the column. the (+) next to **Name** ![Add metadata column](./docs/img/getting-started/add_column_custom.png) is here to create a new metadata column. Then, you have the name of the task type column. + +### Customize the view + +On the far right of the screen, next to the scroll bar, is the option to hide and display a text column + +![Display/hide text column](./docs/img/getting-started/visible_column_detail.png). + +### Sum-up of your view + +The last part (4), at the bottom of the screen, is the sum-up of your displayed page. It means the sum-up will update if you filter the page. + +You can see the number of elements (assets or shots), the total number of estimated days, and the total number of days already spent. + +## Create an Asset + +### Create your first asset + +So, now that we have created our production and have a general grasp of the Kitsu interface, it's time to create our first asset. + +On the asset page, click on **Add assets**. + +![Asset page first time](./docs/img/getting-started/add_assets_first.png) + +::: warning +When you create an asset, your task workflow will be applied, and **all the tasks will be created simultaneously as the asset**. +::: + +A pop-up window opens: + +It asks you to choose the **Asset Type** (1). +If you didn't add a new asset type, Kitsu will provide examples such as Characters, Environment, FX, Props, etc. +Let's start with a character. + +::: tip +You can also customize the asset type list and the tasks pipeline. See the guide ( +[Customization of the workflow](../configure-kitsu#asset-types)) for more details +::: + +We give it a **Name** (2) and enter a description that helps the Artist know what to do and quickly identify the asset. + +Click on **Confirm and stay** if you have multiple assets to create. + + +![Create an asset](./docs/img/getting-started/add_asset_popup.png) + +You can change the asset type and keep adding assets. + +::: tip +The newly created asset appears in the background whenever you click on **Confirm and stay**. +::: + +After adding your last asset, click +on **Confirm**. It will create the asset and close the window. + +::: tip +If you click on **Confirm and stay** but realize you don't have more assets to add, click on **Close**, and the window will be canceled. +::: + +![Global asset page](./docs/img/getting-started/asset_edit.png) + +You will also see the tasks that are selected for your assets workflow are created at the same time. + + +If you need to add more **Assets**, click the **+ Create assets** button. + +::: details Create Assets from a CSV Spreadsheet File +You may already have your asset list ready in a spreadsheet file. +With Kitsu, you have two ways to import them; the first is to import a `.csv` file and copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file. + +Then, go back to the asset page on Kitsu and click on the **Import** icon. +![Import Icon](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Import csv file](./docs/img/getting-started/import_csv_asset.png) + +To see the result, click on the **Preview** button. +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +You have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_asset.png) +::: + +::: details Create Assets by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_asset.png) + +Then, go back to the asset page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_asset.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_asset.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +You have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_asset.png) +::: + +### See the Details of an Asset + +To see an asset's detail, click on its name. + +![Asset detail](./docs/img/getting-started/asset_detail.png) + +A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. + + +![Asset detail page](./docs/img/getting-started/asset_detail_page.png) + +You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. + + +![Asset detail page](./docs/img/getting-started/asset_detail_page_panel.png) + +You can also access the **Casting**, + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_casting.png) + +**concept** linked to this asset, + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_concept.png) + +The **Schedule** is available if you have previously filled out the task type page data. If you have already filled out the data, you can modify them directly here. + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_schedule.png) + +the **Preview Files** uploaded at various task types, + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_file.png) + +And the **Timelog** if people have filled out their timesheet on the tasks of this asset. + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_timelog.png) + +## Add more tasks after creating the assets + +If you realize **after** creating the assets that the task is missing, you can still add them. + +First, ensure the missing task type is added to the settings page under the task type tab. + +Then go back to the asset page and click on **+ Add tasks** + +### Update your assets + +You can update your assets at any point, change their name and asset type, modify their description, and add any custom information you added to the global page. + +You can edit assets by going to the asset page, hovering over the asset you want to modify, and then clicking on the **edit** button +![Edit button](./docs/img/getting-started/edit_button.png) (1) on the right side of +the line. + +![Edit an asset](./docs/img/getting-started/asset_edit01.png) + +To extend the description on the main asset page, click on the first words (2), and a pop-up with the full description will open. + + +::: details Update Assets with the CSV Import +You can use the CSV import to update your data quickly. + +You can update the **type** of an asset, the **Assignation**, the **Status** of tasks, and add a **Comment**. + +You need to switch on the option **Update existing data**. Then, the lines that will be updated +will be highlighted in blue. + +![Import data copy paste data](./docs/img/getting-started/import_update_asset.png) + +::: + + +::: details Update Assets by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_asset.png) + +Then, go back to the asset page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_asset.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_asset.png) +  +You can check and adjust the name of the columns by previewing your data. + +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +You need to switch on the option **Update existing data**. Then, the lines that will be updated +will be highlighted in blue. + +![Import data copy paste data](./docs/img/getting-started/import_update_asset.png) + +You have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_asset.png) +::: + +## Create a Concept + +### Upload a Concept + +To create a **Concept**, go to the **Concept** page with the navigation menu. + +![Concept Menu](./docs/img/getting-started/menu_concept.png) + +To upload a concept, click the **Add a new reference to concepts** button. + +You can upload one or several concepts at the same time. + +![Concept empty page](./docs/img/getting-started/concept_empty_prod.png) + +Once you upload your previews, the concept page will look like this. + +![Concept filled page](./docs/img/getting-started/concept_filled_prod.png) + + +You can interact with the concept in two ways: click on the picture to see an enlarged view. +The second is to click on the status part to open the **Comment Panel** on the right. + +On the comment panel, you have two options: link a concept to an existing asset or delete it. +You can also comment and change the status of the asset. + +The idea is to have one version per **Concept**. If it's not approved, you need to upload a new concept, not to have multiple versions of the same concept. + +One concept is one task. + +![Concept options](./docs/img/getting-started/concept_options.png) + +### Link a Concept to an Asset + +Once concepts are uploaded, you can link them to the assets. + +You can see the links on the status part of the assets. + +Click on the status part of the concept; it will open the comment panel on the right. + +![Concept Comment Panel](./docs/img/getting-started/concept_comment_panel.png) + +At the top of the comment panel, you have two options: Link a concept to an asset and delete the concept. + +To link an asset, click on the **Link** ![Link button](./docs/img/getting-started/link_icon.png) button. + +Kitsu will display all the **Assets** available to link with the concept uploaded. + +Kitsu will list the linked assets at the top of the comment panel. For now, there are No Links. + + +![Concept link](./docs/img/getting-started/concept_link.png) + +To link an asset, click on it. The names of the linked assets will appear at the top of the screen under the preview of the concept. + + +![Concept asset linked](./docs/img/getting-started/concept_asset_linked.png) + +Once a concept is linked to an asset, it can be seen on the asset's detail page. + +Return to the asset page, and click on the asset name you want to see the concept. + +![Detail asset page](./docs/img/getting-started/asset_detail_page.png) + +Per default, the casting detail is displayed on the second part of the screen. +Use the dropdown menu to choose the concept. + +![asset detail concept](./docs/img/getting-started/asset_detail_concept.png) + +Once in the concept section, you will see all the concepts created for this asset. You can filter them per status. + +![asset detail concept list](./docs/img/getting-started/asset_detail_concep_listt.png) + +## Create a Shot + +### Create your first shot + +It's time to create **shots** for your production. + +::: warning +Shots are linked to Sequences in Kitsu. +This means you must create a sequence and then populate this sequence with shots. +::: + +You need to go to the **Shots** page: you can use the +dropdown menu and click on the **SHOTS**. + +![Drop down menu shot](./docs/img/getting-started/drop_down_menu_shot.png) + +Click on the **Add shots** button to start with the shot creation. + +![First add shots](./docs/img/getting-started/new_shot.png) + +::: warning +When you create a shot, the task workflow you have designed will be applied, and all the tasks will be created at the same time as the shot. +::: + +A new pop-up opens for the creation of the shots. +You can now create the sequences and the shots. + +Enter the first sequence, for instance, sq01, +then **add**. + +Now, you can see your sequence has been created. To add shots to this sequence, select it and create your shots. + +For example, type sh0010 on the shots column, then again **add**. +You can also define padding for your shots. + +::: tip +If you want to name your shots ten on ten as SH0010, SH0020, SH0030, etc, set the **Shot Padding** as 10 +::: + +![Manage shots](./docs/img/getting-started/manage_shot.png) + +You can now see that new shots are listed and linked by their sequence. +You have created the first shot of the first sequence. + +Now, let's add more shots than just one! As you can see, the box already contains your name +code but incremented, so you have to continue to click on **add** to +create more shots. + +![Add shots](./docs/img/getting-started/add_shots.png) + +To add more sequences, go to the left part, type the name of your new sequence, and then click on **add**. +Your second sequence is selected, and you can now add shots. + +::: tip +If a shot is misplaced on a sequence, you have to edit the shot +![Edit button](./docs/img/getting-started/edit_button.png), and change the +sequence. +![edit shot Change sequence](./docs/img/getting-started/edit_shot.png) + +![Change sequence](./docs/img/getting-started/change_seq.png) +::: + +## Create Shots from an EDL File + +You may already have your shots list ready in an **EDL** file. +With Kitsu, you can directly import your **EDL** file to create the sequence, shot, number of frames, and Frame in and out. + +On the **Global Shot Page**, you will see an **Import EDL** button. + +![Import EDL Button](./docs/img/getting-started/import_edl_button.png) + +You can select the naming convention of the video file used during the editing on the pop-up. + +![Import EDL Menu](./docs/img/getting-started/import_edl_menu.png) + +It means the video clip on the editing is named as project_sequence_shot.extension. + +Here is an example of an EDL for the LGC production. + +![EDL Example](./docs/img/getting-started/edl_example.png) + +The video files are named  LGC_100-000.mov, which means LGC is the production name, 100 is the sequence name, and 000 is the shot name. + +You can import the EDL file once you have the naming convention. + +Then click on **Upload EDL** + +Then Kitsu will create the shots. + +![EDL Shot creation](./docs/img/getting-started/edl_shot_creation.png) +::: + +::: details Create Shots from a CSV Spreadsheet File +You may already have your shots list ready in a spreadsheet file. +With Kitsu, you have two ways to import them; the first is to import a `.csv` file directly, and the second is to copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file. + +Then, return to the shot page on Kitsu and click the **Import** icon. +![Import Icon](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Import csv file](./docs/img/getting-started/import_csv_shot.png) + +To see the result, click on the **Preview** button. +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +All your shots are imported into Kitsu, and the task is created according to your **Settings**. + +![Import data copy paste data](./docs/img/getting-started/import_result_shot.png) +::: + + +::: details Create Shots by Copying / Pasting a Spreadsheet File +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_shot.png) + +Then, go back to the shot page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_shot.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_shot.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +All your shots are imported into Kitsu, and the task is created according to your **Settings**. + +![Import data copy paste data](./docs/img/getting-started/import_result_shot.png) +::: + +### See the Details of a Shot + +If you want to see the details of a shot, click on its name. + +![Shot detail](./docs/img/getting-started/shot_detail.png) + +A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. +You can navigate through each by clicking on the name of the tabs. + +![Shot detail page](./docs/img/getting-started/shot_detail_page.png) + +You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. + + +![Shot detail page](./docs/img/getting-started/shot_detail_page_panel.png) + + +You can also access the **Casting**, + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_casting.png) + + +The **Schedule** is available if you have previously filled out the task type page data. If you have already filled out the data, you can modify them directly here. + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_schedule.png) + +the **Preview Files** uploaded at various task types, + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_file.png) + +And the **Timelog** if people have filled out their timesheet on the tasks of this asset. + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_timelog.png) + +## Add more tasks after creating the shots +If you realize after creating the shots that the task is missing, you can still add them. + +First, ensure the missing task type is added to the settings page under the task type tab. + +Then go back to the shot page and click on + Add tasks. + +### Update your shots + +You can update your shots at any point, change their names and sequences, modify their descriptions, and add any custom information you added to the global page. + +You can edit shots by going to the shot page, hovering over the shot you want to modify, and then clicking on the **edit** button +![Edit button](./docs/img/getting-started/edit_button.png) (1) on the right side of the line. + +![Edit an asset](./docs/img/getting-started/asset_edit01.png) + +To extend the description on the main shot page, click on the first words (2), and a pop-up with the full description will open. + + +::: details Update Shots Information with CSV Import +You can use the **CSV Import** to update your data as the **NB Frames**, **Frame IN**, **Frame Out**, or any custom **Metadata column**. + +You can update the **Assignation**, and the **Status** of tasks and add a **Comment**. + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_shot.png) + +Then, go back to the shot page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_shot.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_shot.png) +  +You need to switch on the **Option: Update existing data**. +The updated shots will be in blue. + +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/update_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +All your shots are imported into Kitsu, and the task is created according to your **Settings**. + +![Import data copy paste data](./docs/img/getting-started/import_result_shot.png) +::: + +## Add the number of Frames and Frame ranges to the shots + +At this stage of the production, the animatic should be done. This means you have +the length (**number of frames**, **Frame range In**, and **Frame range Out**) for each shot. You can +add this information to the spreadsheet. This way, you are sure that all +the frames are calculated and none are missing or over-computed. + +::: warning +If you have created your shots and sequence by hand, +the **Frame** column will be hidden. You must edit at least one shot and fill in the number of frames to display the **Frame** column. +The column will be displayed if you have created your shots and imported the number of frames with a CSV/spreadsheet. +::: + + + +You need to edit the shots to fill in the frame range information. Click on the +edit button ![Edit button](./docs/img/getting-started/edit_button.png) on the right +side of the shot line. + +![edit shot Change sequence](./docs/img/getting-started/edit_shot.png) + +You can enter the shots **In** and **Out ** in the new window. Then, save by clicking the **Confirm** button. + + + +![Shot edit page](./docs/img/getting-started/shot_edit.png) + +Now, the frame range appears on the general spreadsheet of the shot page. + +![Shot edit page](./docs/img/getting-started/shot_framerange_global.png) + +Now that you have unlocked the **Frames**, **In**, and **Out** columns, you can fill them +directly from the global shot page. + +Click on the case you want to fill in and add the data. + +::: tip +If you enter the **Frame In** and **Frame Out**, Kitsu automatically calculates the **Number of Frame**. +::: + +![Shot edit page](./docs/img/getting-started/shot_framerange_global_edit.png) + + +You can also use the **CSV Import** to update your frame range quickly. + [Update Shots information with CSV Import](../feature#update-your-shots) + +You can also access the history of shot values. + +![Shot framerange detail](./docs/img/getting-started/shot_framerange_detail.png) + +![Shot Values History](./docs/img/getting-started/shot_values_history.png) + +## Create Custom Metadata Columns + +To add more information on the general spreadsheet pages, you must create a custom **metadata column**. + +You may have extra information to add to your pages, such as the **level of difficulties**, **Weather**, **Tag**, etc. You can store all text (or number) information in the custom metadata column. + + +Click on the **+** near the Name column. + +![Metadata Column](./docs/img/getting-started/add_column_custom.png) + + + +With the **Type** option, you can choose how you want to store your information: +- a free **Text**, +- a **Number**, +- a **Checkbox**, +- a **List of value**, +- a **List of tags**, +- a **Checklist**. + +![Metadata Column detail](./docs/img/getting-started/custom_column_detail.png) + +::: warning +The **Text**, **Number**, and **Checkbox** allow you to add different information for each entity. You don't have to plan it first. + +The **List of value**, **List of tags**, and **Checklist** give you the same choice for each entity. Moreover, it has to be filled now. + +![Metadata Column list](./docs/img/getting-started/custom_column_list.png) + +Type the list elements below **Available values**, and confirm them by clicking on **Add value**. +::: + +You can also link the **metadata column** to one or several **departments**. + +::: tip +Link a metadata column to a department. The artists/supervisors will see it on their to-do page and in the department-filtered view. + +You can link the metadata column to one or more departments. Click on the department from the list and then click on **add** to be effective. + +Here, the VFX column is linked to two departments. + +![Department metadata column filtered view](./docs/img/getting-started/department_filtered_view_column.png) + +::: + +::: details Edit meta column +On the global page of the asset or the shot, click on the arrow on the direct right of your metadata column and click on **Edit**. + +![Metadata column Edit](./docs/img/getting-started/custom_column_edit.png) +::: + + +You can fill in this information directly on the global spreadsheets page. +The cases are editable. + +![Metadata Column detail](./docs/img/getting-started/custom_column_list_edit.png) + +::: tip +You can batch-modify the metadata column by selecting several entities on the left and then modifying your metadata column. +::: + +::: details Edit by hand +You can also modify the information with the edit button ![Edit button](./docs/img/getting-started/edit_button.png). + +You now see a new line on the edit pop-up. You can select the information from the list, +alternatively, enter the free text or number, check a box, or use the checklist, depending on your previous choice. + +Remember to press the **Confirm** button when you are done. + +![Metadata Column detail](./docs/img/getting-started/edit_asset_custom.png) +::: + +Go to the general spreadsheet page to edit or delete the metadata column. +Nearby the name of your metadata column, click on the arrow ![Metadata Column detail](./docs/img/getting-started/arrow.png). + +::: tip +You can **sort** your global page with this new column. Click the arrow on the right of the column name to open his menu. Then click on **Sort By**. + +You can also **Stick** the metadata column to the left. +::: + +## Create a Sequence + +In Kitsu, you can also track tasks at the **Sequence** Level. +It's especially useful when +you have macro tasks to track, like Story and color Board, Color Grading, etc. + +Use the navigation menu to go to the **Sequences** page. + +![Navigation Sequences](./docs/img/getting-started/drop_down_menu_sequence_page.png) + +::: warning +This new page behaves like the asset and shot global page. + +To use this page, You first need to create dedicated task types on your **Global Library** + with the **Sequence** attribute. + +See the **Creating a New Task Type** Section to create a new **Task Type**. + +[Creating a New Task Type](../configure-kitsu#task-types) + +Once you have created your **Task Types**  on your **Global Library**, add them to your +**Production Library** (setting page). +::: + +Once your task types are ready on the settings page, you must create a sequence (the same as the assets or shots). + + + + +This new page behaves like the asset and shot global page. You can add your edits with the **+ New Sequence** button. + +You can assign tasks, do the review, change status, etc. + +You can add a metadata column, fill in the description, etc. + + +::: tip +You can create a sequence directly from here (+New sequence button) or a sequence linked to your shots from the global shot page. +::: + + +You can **Rename** and **Delete** the Sequence entity on this page, as for the asset and shot entity. + +If you click on the name of a sequence, you will see the detail page of this sequence. + +![Sequence detailed page](./docs/img/getting-started/sequence_detail_page.png) + +On the detailed page, you have access to the sequence casting. +You can see all the assets used in the whole sequence. + +You can also access the schedule, Preview Files, Activity, and Timelog of the sequence **tasks**. + +## Create an Edit + +You can track tasks at the **Edit** Level in Kitsu. + +It's especially useful when +You have several edits to track through several validation steps. +For example, you can track your whole movie, several trailers, the First Edit, Fine Edit, mix, etc. + +::: warning +Per default, the **Edit** page will not be displayed until you have task types for it on your **production library** (setting page) +::: + + + +To use this page, you need to first create a dedicated task type on your **Global Library** + with the **Edit** attribute. + +See the **Creating a New Task Type** Section to create a new **Task Type**. + +[Creating a New Task Type](../configure-kitsu#task-types) + + +Once you have created your **Task Types**  on your **Global Library**, add them to your +**Production Library**, you will see the **Edit** displayed on the navigation drop-down menu. + + +![Navigation Edit](./docs/img/getting-started/drop_down_menu_edit.png) + + +This new page behaves like the asset and shot global page. You can add your edits with the **+ New edit** button. + +You can assign tasks, do the review, change status, etc. + +You can add a metadata column, fill in the description, etc. + +::: tip +Depending on your deliveries, you can also change the resolution per **Edit**. +::: + +::: warning +The detail page is different from the other entities. + +As **Edit** focuses on a specific long video, the detail page looks more like the comment detail page. +::: + +You can **Rename** and **Delete** the Edit entity on this page for the asset and shot entity. + +## Create a Breakdown List + +Filling out the breakdown helps you with the assembly of the shots. With the +breakdown, you have all the details of the assets you need to add to create your +shot, and we are sure to omit nothing. + +On the dropdown menu, choose **BREAKDOWN**. + +![drop down Menu breakdown](./docs/img/getting-started/drop_down_menu_breakdown.png) + +On the left of the breakdown page is the episode/sequence/shot menu (1); you can choose between those you created. They are the right part of +the screen; all the assets created are available for this production (main pack and episodes) (3). Moreover, in +the middle section, it is your selection for the shot (2). + +![Breakdown page](./docs/img/getting-started/breakdown_general_empty.png) + +So now you have to select the shot you want to cast. + +You can display the assets as text if you don't have thumbnails yet or enlarge the +thumbnails size. + + +![Breakdown page text display](./docs/img/getting-started/breakdown_text_display.png) + +You may also realize an asset needs to be added to the list during your breakdown. + +You can create a new asset directly from the breakdown page. Click the **+** on the right of the **All available assets**. + +![Breakdown page create asset](./docs/img/getting-started/breakdown_create_asset.png) + + +You can also choose multiple shots at once. Click on the first shot, hold the **shift** key, and click on the last shot of your selection. + +![Breakdown page global bulk select](./docs/img/getting-started/breakdown_general_bulk_select.png) + +Then click on the assets you want +to assign: characters, backgrounds, ... from the right part (3). +If you have selected multiple shots, your selection is applied to the numerous shots. + +Copy a shot filled with assets and paste this asset selection into another shot. + +You can see a **+1** or **+10** when you pass over the asset. It's the number +of times you add this asset, and you can click on it as many times as you need. + +![Breakdown add asset](./docs/img/getting-started/breakdown_add_asset.png) + +You can also link all your assets to episodes on a TV show without specifying a sequence or shot. + +![Breakdown episode asset](./docs/img/getting-started/breakdown_episode.png) + +This way, you can link all your assets to one or several episodes before the storyboard/animatic stage. + +You can now see the asset in the middle of the screen (2). Next +to the asset's name is the number of times it has been added. In this +example, we have added the character asset Llama two times. + + +If you add an asset twice by mistake, you must go to the screen's middle part to select assets for this shot (2). From there, click on +**-1**. When you finish this shot, go on with the other shots. +Your selection is automatically saved. + +![Breakdown remove asset](./docs/img/getting-started/breakdown_remove_asset.png) + +If a new asset is created during the storyboard, return to the asset +page (using the dropdown menu) and create the needed assets. The tasks previously created are applied immediately to these new +assets. However, you have to do the assignment, and then you can +continue with the breakdown. + +Now, your **Breakdown** page should look like this. + +![breakdown add asset bulk](./docs/img/getting-started/breakdown_general_bulk_select_full.png) + +You can also make a breakdown list for your assets if you need to assemble them and keep track of the separate parts. + +On the top left corner of the screen, choose **asset** in the dropdown menu below **FOR**. + +![Breakdown asset menu](./docs/img/getting-started/breakdown_asset_menu.png) + +You can now access a second dropdown menu to choose your asset type: **Character**, **Environment**, **Props**, **FX**, ... + +![Breakdown asset type](./docs/img/getting-started/breakdown_asset_menu_type.png) + +You can complete the asset breakdown page the same way you did the shots. First, select one or more assets on the left part and then add the right part's elements. + +::: details Create a Breakdown List from a CSV File + +You may already have your breakdown list ready in a spreadsheet file. With Kitsu, you have two ways to import it: the first is to import a .csv file directly, and the second is to copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file following Kitsu's recommendation. + +Click on the **import** button ![Import button](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Breakdown import csv file](./docs/img/getting-started/import_breakdown_csv_file.png) + +To see the result, click on the **Preview** button. + +You can check and adjust the name of the columns by previewing your data. + +NB: the **Episode** column is only mandatory for a **TV Show** production. + +![Breakdown import Preview](./docs/img/getting-started/import_breakdown_preview.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, you have your breakdown imported into Kitsu. + +![Breakdown import Preview](./docs/img/getting-started/breakdown_general_bulk_select_full.png) +::: + +::: details Create a Breakdown List by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_breakdown.png) + +Then, go back to the breakdown page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started//import_breakdown_csv_file.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_breakdown_preview.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_breakdown_preview.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, all your assets have been imported into Kitsu. + +![Import data copy paste data](./docs/img/getting-started/breakdown_general_bulk_select_full.png) +::: + +## Casting from the Asset Library + +It is also possible to cast assets from the global **Asset Library** into your production. This allows you to cast an already existing asset, without the need to re-create it for each production. + +![Asset Library Display](./docs/img/getting-started/asset_library_display.png) + +To see assets outside of your production from the asset library, click the **Display Library** Button (1) + +Assets from the global asset library will appear, and will be highlighted with a yellow boarder (2). They can then be cast in your breakdown exactly the same as other assets. + +![Asset Library View](./docs/img/getting-started/asset_library_view.png) + +Back on your productions asset page, you can choose to display global assets that have been cast in your production by toggling the **Display Library** button (1). These assets will be highlighted in yellow, indicating that they originate from the global asset library, and not your current production. (2). + +## Introduction to Asset State: Ready For + +Most of the time, you don't need to wait for an asset's tasks to be approved to use it on a shot task. + +For example, when an asset is approved at the **Concept** stage, it can be used for the **Storyboard** stage. +Then, when it's approved at the **Modeling** stage, you can use it for the **Layout** stage and so on. + +That's exactly what the asset state **Ready For** is doing: it lets you know the state of an asset's tasks and compares its usability for the shot tasks. + +Now that we have filled out our breakdown, we know exactly which asset is used on every shot. + +First, we need to define an asset's state relative to its task status. You can modify the **Ready for** by clicking on a cell. You will see a dropdown menu with the shot task. + +![Asset Status](./docs/img/getting-started/asset_status.png) + +::: tip +You can use the **automations** to do the heavy lifting. + +You can set automation with the **ready for** trigger. +::: + +Now that we have changed some asset states to **Ready for**, we can see the result on the shot page. + +You can notice that some white boxes are now **Green**: all the assets cast in this shot are ready for this specific task. + +![Asset Status](./docs/img/getting-started/asset_status_box.png) + +If you see the white box, Kitsu will display how many assets are ready for this task. + +![Asset Status](./docs/img/getting-started/asset_status_empty.png) + +::: tip +If you don't see any boxes, no assets are cast for this shot. +::: +  +Then, you can click on the shot's name to go to its detail page. +Then, you will see all the assets cast in this shot and their status. + +![Asset Status](./docs/img/getting-started/asset_status_detail.png) + +It's the fastest way to know if you can start a shot for a specific task. + +# Create a Short Production (assets and shots) + +Now that you have designed your workflow in Kitsu and invited more people, it's time to create your production. + +Click on the **Create a new +production** button. + +![Create a production](./docs/img/getting-started/create_production.png) + +Enter your production name, choose **short** as the **type**, and select your production style (2D, 3D). + + +Then, you must fill in technical information, such as the number of FPS, the Ration, and the Resolution. + +All these data will be used when Kitsu re-encodes the video previews uploaded. + +Then, you need to define your production's start and end dates. + +![Add a production](./docs/img/getting-started/add_production.png) + +You can define your production workflow in the next part, 3 to 6. + + + +You need to select your asset task type (3), shot task type (4), task status (5), and asset types (6). + +![Add a production Pipeline](./docs/img/getting-started/add_production_pipe.png) + + +::: tip +To create your **Production Workflow**, you will select Task Types from the Global Library. + +If you realize you missed some Task Types, you can create them later. + +See the [Studio Workflow](../configure-kitsu#studio-workflows) section. +::: + +Then, 7 and 8 are the option parts. If you already have a spreadsheet with your asset/shot. + +See the **import CSV** section for more details. + +[Import asset](../short#create-an-asset) + +[Import shot](../short#create-shots-from-an-edl-file) + +Validate everything with the ![All done](./docs/img/getting-started/all_done_go.png) button. + +## Introduction to the Kitsu Global Page + +Welcome to Kitsu's global asset page. + +Let's take a look around. + +![Presentation of the global page](./docs/img/getting-started/presentation_global.png) + +On the top part (1), you have the **global navigation**, which is always visible throughout all the production pages. + +**From left to right:** + +### Main Menu + +You will open the main menu by clicking on the top left button, Kitsu![Main menu button](./docs/img/getting-started/main_button.png) (or your Studio logo). + +You will find direct access to your assigned tasks, productions, global and team schedules, the workflow customization page, and the Kitsu settings on the main menu. + +::: details Main Menu Details +**WORKSPACE** +- My Tasks: your assigned tasks +- My Checks: All the tasks with status **Is Feedback Request** depending on your department(s) +- My Productions: Get back to the selection on the production page. + + +**STUDIO** +- Productions +- People +- Timesheets +- Main Schedule +- Team Schedule +- All tasks +- News Feed +- Entity Search + + +**ADMIN** +- Departments +- Task Types +- Asset Types +- Custom Actions +- Automation +- 3D Backgrounds +- Bots +- Settings +- Logs + +::: warning Permission Visibility +The WORKSPACE section is enabled for all permissions except My Checks, which artists do not see. + +Artist (and above) can also see their own **Timesheets**, and have access to the **Entity Search** +::: + +### Navigation + +You will see the navigation dropdown menu on the right of the main menu icon. + +![Presentation of the global page](./docs/img/getting-started/presentation_global_header.png) + + +You can choose between production. The name of the actual production and actual page are always displayed. + +You can use the dropdown menu to navigate from production to production (if you have several). + +Once you have selected a production, the next dropdown menu will help you navigate through the different pages of this production. + + +::: details Navigation details +The first section is about the tracking of your tasks +- Assets +- Shots +- Sequence +- Edits (If you have created specific tasks) + +The second section is more about the side of the production +- Concepts +- Breakdown +- Playlists +- News feed + +The third section is about statistics +- Sequence Stats +- Asset Type Stats + +The fourth section is related to Team Management +- Schedule +- Quotas +- Team + +The fifth section is about the settings of your production +- Settings + +::: tip +You start with the asset page, but you can change your production homepage to other entities (see setting page) +::: + +::: warning +If you realize you need an extra level of navigation, such as Episodes, you need to change your production Type to a TV Show. + +If, on the contrary, you realize you don't need the **assets** or the **shots**, you also need to switch your production type to **Only Assets** or **Only Shots**. +::: + +### Global Search, News, Notification and Documentation + +You have the global search on the right of the navigation dropdown menu. It's a quick access search that will display the four first results. If you need more results and filtering options, see the **Entity Search** page. + + +The next icon ![News](./docs/img/getting-started/canny.png) is a direct link to our news and feedback page. + +You can see all the new features with an animated gif and also add suggestions about the next feature you want to see in Kitsu. + +Next, the bell icon ![Notification](./docs/img/getting-started/notification_icon_on.png) displays your notifications (assignments, comments, tags). The number of unread notifications will be shown on the bell icon. There are various filters to help you stay on top of updates and revisit important ones when needed. You can easily mark notifications as read or unread or quickly filter by watching/non-watching to focus on what matters most and declutter your feed. + +The last icon before your avatar is the documentation button. +![documentation button](./docs/img/getting-started/documentation_button.png), that you are reading right now! + + +### Personal Settings + +You can click on your avatar to open your menu (setting, documentation, etc.). + +![Profile enlarged](./docs/img/getting-started/profil_enlarge.png). + +## The Tasks Spreadsheet + +### Entity spreadsheet + +The second part of the screen is common to all the entities (asset, shot, sequence, Edit). This is the global tasks spreadsheet. + +Here, you see the status, assignation, priority, etc, for each task. + +::: tip +The spreadsheet's first line and column header always appear at the top of the page, even if you scroll down. + +You can also **Stick** other columns to keep them visible at all times. +::: + +### Filters + +The first element on the left is the filter box. You can type anything you want for simple filtering, sequence, asset type, etc. + +If you need more advanced filtering, please use the filter builder button. + +![Filter Builder](./docs/img/getting-started/filter_builder.png) + +You can then save all the filters and use them as your pages. + +### Simplify the display + +On the right part of the screen, there are some buttons (from left to right) to hide or display the assignation, hide or display the extra column, enlarge or reduce the thumbnail, +![display and Hide option](./docs/img/getting-started/display_hide_option.png) + + +### Import / Export + +batch import thumbnail ![batch import thumbnail](./docs/img/getting-started/add_thumbnails.png), and finally import ![Import button](./docs/img/getting-started/import.png) or export ![export button](./docs/img/getting-started/export.png) data. + +### Metadata column + +Below, you have the name of the column. the (+) next to **Name** ![Add metadata column](./docs/img/getting-started/add_column_custom.png) is here to create a new metadata column. Then, you have the name of the task type column. + +### Customize the view + +On the far right of the screen, next to the scroll bar, is the option to hide and display a text column + +![Display/hide text column](./docs/img/getting-started/visible_column_detail.png). + +### Sum-up of your view + +The last part (4), at the bottom of the screen, is the sum-up of your displayed page. It means the sum-up will update if you filter the page. + +You can see the number of elements (assets or shots), the total number of estimated days, and the total number of days already spent. + +## Create an Asset + +### Create your first asset + +So, now that we have created our production and have a general grasp of the Kitsu interface, it's time to create our first asset. + +On the asset page, click on **Add assets**. + +![Asset page first time](./docs/img/getting-started/add_assets_first.png) + +::: warning +When you create an asset, your task workflow will be applied, and **all the tasks will be created simultaneously as the asset**. +::: + +A pop-up window opens: + +It asks you to choose the **Asset Type** (1). +If you didn't add a new asset type, Kitsu will provide examples such as Characters, Environment, FX, Props, etc. +Let's start with a character. + +::: tip +You can also customize the asset type list and the tasks pipeline. See the guide ( +[Customization of the workflow](../configure-kitsu#asset-types)) for more details +::: + +We give it a **Name** (2) and enter a description that helps the Artist know what to do and quickly identify the asset. + +Click on **Confirm and stay** if you have multiple assets to create. + + +![Create an asset](./docs/img/getting-started/add_asset_popup.png) + +You can change the asset type and keep adding assets. + +::: tip +The newly created asset appears in the background whenever you click on **Confirm and stay**. +::: + +After adding your last asset, click +on **Confirm**. It will create the asset and close the window. + +::: tip +If you click on **Confirm and stay, ** realize you don't have more assets to add, and click on **Close, ** the window will be canceled. +::: + +![Global asset page](./docs/img/getting-started/asset_edit.png) + +You will also see the tasks that are selected for your assets workflow are created at the same time. + + +If you need to add more **Assets**, click the **+ Create assets** button. + +::: details Create Assets from a CSV Spreadsheet File +You may already have your asset list ready in a spreadsheet file. +With Kitsu, you have two ways to import them; the first is to import a `.csv` file and copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file. + +Then, go back to the asset page on Kitsu and click on the **Import** icon. +![Import Icon](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Import csv file](./docs/img/getting-started/import_csv_asset.png) + +To see the result, click on the **Preview** button. +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +You have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_asset.png) +::: + +::: details Create Assets by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_asset.png) + +Then, go back to the asset page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_asset.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_asset.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +You have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_asset.png) +::: + +### See the Details of an Asset + +To see an asset's detail, click on its name. + +![Asset detail](./docs/img/getting-started/asset_detail.png) + +A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. + + +![Asset detail page](./docs/img/getting-started/asset_detail_page.png) + +You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. + + +![Asset detail page](./docs/img/getting-started/asset_detail_page_panel.png) + +You can also access the **Casting**, + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_casting.png) + +**concept** linked to this asset, + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_concept.png) + +The **Schedule** is available if you have previously filled out the task type page data. If you have already filled out the data, you can modify them directly here. + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_schedule.png) + +the **Preview Files** uploaded at various task types, + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_file.png) + +And the **Timelog** if people have filled out their timesheet on the tasks of this asset. + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_timelog.png) + +## Add more tasks after creating the assets + +If you realize **after** creating the assets that the task is missing, you can still add them. + +First, ensure the missing task type is added to the settings page under the task type tab. + +Then go back to the asset page and click on **+ Add tasks** + +### Update your assets + +You can update your assets at any point, change their name and asset type, modify their description, and add any custom information you added to the global page. + +You can edit assets by going to the asset page, hovering over the asset you want to modify, and then clicking on the **edit** button +![Edit button](./docs/img/getting-started/edit_button.png) (1) on the right side of +the line. + +![Edit an asset](./docs/img/getting-started/asset_edit01.png) + +To extend the description on the main asset page, click on the first words (2), and a pop-up with the full description will open. + + +::: details Update Assets with the CSV Import +You can use the CSV import to update your data quickly. + +You can update the **type** of an asset, the **Assignation**, the **Status** of tasks, and add a **Comment**. + +You need to switch on the option **Update existing data**. Then, the lines that will be updated +will be highlighted in blue. + +![Import data copy paste data](./docs/img/getting-started/import_update_asset.png) + +::: + + +::: details Update Assets by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_asset.png) + +Then, go back to the asset page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_asset.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_asset.png) +  +You can check and adjust the name of the columns by previewing your data. + +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +You need to switch on the option **Update existing data**. Then, the lines that will be updated +will be highlighted in blue. + +![Import data copy paste data](./docs/img/getting-started/import_update_asset.png) + +You have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_asset.png) +::: + +## Create a Concept + +### Upload a concept + +To create a **Concept**, go to the **Concept** page with the navigation menu. + +![Concept Menu](./docs/img/getting-started/menu_concept.png) + +To upload a concept, click the **Add a new reference to concepts** button. + +You can upload one or several concepts at the same time. + +![Concept empty page](./docs/img/getting-started/concept_empty_prod.png) + +Once you upload your previews, the concept page will look like this. + +![Concept filled page](./docs/img/getting-started/concept_filled_prod.png) + +You can interact with the concept in two ways: click on the picture to see an enlarged view. +The second is to click on the status part to open the **Comment Panel** on the right. + +On the comment panel, you have two options: link a concept to an existing asset or delete it. +You can also comment and change the status of the asset. + +The idea is to have one version per **Concept**. If it's not approved, you need to upload a new concept, not to have multiple versions of the same concept. + +One concept is one task. + +![Concept options](./docs/img/getting-started/concept_options.png) + +### Link a Concept to an Asset + +Once concepts are uploaded, you can link them to the assets. + +You can see the links on the status part of the assets. + +Click on the status part of the concept; it will open the comment panel on the right. + +![Concept Comment Panel](./docs/img/getting-started/concept_comment_panel.png) + +At the top of the comment panel, you have two options: Link a concept to an asset and delete the concept. + +To link an asset, click on the **Link** ![Link button](./docs/img/getting-started/link_icon.png) button. + +Kitsu will display all the **Assets** available to link with the concept uploaded. + +Kitsu will list the linked assets at the top of the comment panel. For now, there are No Links. + +![Concept link](./docs/img/getting-started/concept_link.png) + +To link an asset, click on it. The names of the linked assets will appear at the top of the screen under the preview of the concept. + + +![Concept asset linked](./docs/img/getting-started/concept_asset_linked.png) + +Once a concept is linked to an asset, it can be seen on the asset's detail page. + +Return to the asset page, and click on the asset name you want to see the concept. + +![Detail asset page](./docs/img/getting-started/asset_detail_page.png) + +Per default, the casting detail is displayed on the second part of the screen. +Use the dropdown menu to choose the concept. + +![asset detail concept](./docs/img/getting-started/asset_detail_concept.png) + +Once in the concept section, you will see all the concepts created for this asset. You can filter them per status. + +![asset detail concept list](./docs/img/getting-started/asset_detail_concep_listt.png) + +## Create a Shot + +### Create your first shot + +It's time to create **shots** for your production. + +::: warning +Shots are linked to Sequences in Kitsu. +This means you must create a sequence and then populate this sequence with shots. +::: + +You need to go to the **Shots** page: you can use the +dropdown menu and click on the **SHOTS**. + +![Drop down menu shot](./docs/img/getting-started/drop_down_menu_shot.png) + +Click on the **Add shots** button to start with the shot creation. + +![First add shots](./docs/img/getting-started/new_shot.png) + +::: warning +When you create a shot, the task workflow you have designed will be applied, and all the tasks will be created at the same time as the shot. +::: + +A new pop-up opens for the creation of the shots. +You can now create the sequences and the shots. + +Enter the first sequence, for instance, sq01, +then **add**. + +Now, you can see your sequence has been created. To add shots to this sequence, select it and create your shots. + +For example, type sh0010 on the shots column, then again **add**. +You can also define padding for your shots. + +::: tip +If you want to name your shots ten on ten as SH0010, SH0020, SH0030, etc, set the **Shot Padding** as 10 +::: + +![Manage shots](./docs/img/getting-started/manage_shot.png) + +You can now see that new shots are listed and linked by their sequence. +You have created the first shot of the first sequence. + +Now, let's add more shots than just one! As you can see, the box already contains your name +code but incremented, so you have to continue to click on **add** to +create more shots. + +![Add shots](./docs/img/getting-started/add_shots.png) + +To add more sequences, go to the left part, type the name of your new sequence, and then click on **add**. +Your second sequence is selected, and you can now add shots. + +::: tip +If a shot is misplaced on a sequence, you have to edit the shot +![Edit button](./docs/img/getting-started/edit_button.png), and change the +sequence. +![edit shot Change sequence](./docs/img/getting-started/edit_shot.png) + +![Change sequence](./docs/img/getting-started/change_seq.png) +::: + +## Create Shots from an EDL File + +You may already have your shots list ready in an **EDL** file. +With Kitsu, you can directly import your **EDL** file to create the sequence, shot, number of frames, Frame in and out, and more. + +On the **Global Shot Page**, you will see an **Import EDL** button. + +![Import EDL Button](./docs/img/getting-started/import_edl_button.png) + +You can select the naming convention of the video file used during the editing on the pop-up. + +![Import EDL Menu](./docs/img/getting-started/import_edl_menu.png) + +It means the video clip on the editing is named as project_sequence_shot.extension. + +Here is an example of an EDL for the LGC production. + +![EDL Example](./docs/img/getting-started/edl_example.png) + +The video files are named  LGC_100-000.mov, which means LGC is the production name, 100 is the sequence name, and 000 is the shot name. + +You can import the EDL file once you have the naming convention. + +Then click on **Upload EDL** + +Then Kitsu will create the shots. + +![EDL Shot creation](./docs/img/getting-started/edl_shot_creation.png) +::: + +::: details Create Shots from a CSV Spreadsheet File +You may already have your shots list ready in a spreadsheet file. +With Kitsu, you have two ways to import them; the first is to import a `.csv` file directly, and the second is to copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file. + +Then, return to the shot page on Kitsu and click the **Import** icon. +![Import Icon](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Import csv file](./docs/img/getting-started/import_csv_shot.png) + +To see the result, click on the **Preview** button. +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +All your shots are imported into Kitsu, and the task is created according to your **Settings**. + +![Import data copy paste data](./docs/img/getting-started/import_result_shot.png) +::: + + +::: details Create Shots by Copying / Pasting a Spreadsheet File +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_shot.png) + +Then, go back to the shot page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_shot.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_shot.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +All your shots are imported into Kitsu, and the task is created according to your **Settings**. + +![Import data copy paste data](./docs/img/getting-started/import_result_shot.png) +::: + +### See the Details of a Shot + +If you want to see the details of a shot, click on its name. + +![Shot detail](./docs/img/getting-started/shot_detail.png) + +A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. +You can navigate through each by clicking on the name of the tabs. + +![Shot detail page](./docs/img/getting-started/shot_detail_page.png) + +You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. + + +![Shot detail page](./docs/img/getting-started/shot_detail_page_panel.png) + + +You can also access the **Casting**, + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_casting.png) + + +The **Schedule** is available if you have previously filled out the task type page data. If you have already filled out the data, you can modify them directly here. + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_schedule.png) + +the **Preview Files** uploaded at various task types, + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_file.png) + +And the **Timelog** if people have filled out their timesheet on the tasks of this asset. + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_timelog.png) + +## Add more tasks after creating the shots + +If you realize after creating the shots that the task is missing, you can still add them. + +First, ensure the missing task type is added to the settings page under the task type tab. + +Then go back to the shot page and click on + Add tasks. + +### Update your shots + +You can update your shots at any point, change their names and sequences, modify their descriptions, and add any custom information you added to the global page. + +You can edit shots by going to the shot page, hovering over the shot you want to modify, and then clicking on the **edit** button +![Edit button](./docs/img/getting-started/edit_button.png) (1) on the right side of the line. + +![Edit an asset](./docs/img/getting-started/asset_edit01.png) + +To extend the description on the main shot page, click on the first words (2), and a pop-up with the full description will open. + + +::: details Update Shots Information with CSV Import +You can use the **CSV Import** to update your data as the **NB Frames**, **Frame IN**, **Frame Out**, or any custom **Metadata column**. + +You can update the **Assignation**the **Status** of tasks and add a **Comment**. + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_shot.png) + +Then, go back to the shot page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_shot.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_shot.png) +  +You need to switch on the **Option: Update existing data**. +The updated shots will be in blue. + +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/update_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +All your shots are imported into Kitsu, and the task is created according to your **Settings**. + +![Import data copy paste data](./docs/img/getting-started/import_result_shot.png) +::: + +## Add the number of Frames and Frame ranges to the shots + +At this stage of the production, the animatic should be done. This means you have +the length (**number of frames**, **Frame range In**, and **Frame range Out**) for each shot. You can +add this information to the spreadsheet. This way, you are sure that all +the frames are calculated and none are missing or over-computed. + +::: warning +If you have created your shots and sequence by hand, +the **Frame** column will be hidden. You must edit at least one shot and fill in the number of frames to display the **Frame** column. +The column will be displayed if you have created your shots and imported the number of frames with a CSV/spreadsheet. +::: + +You need to edit the shots to fill in the frame range information. Click on the +edit button ![Edit button](./docs/img/getting-started/edit_button.png) on the right +side of the shot line. + +![edit shot Change sequence](./docs/img/getting-started/edit_shot.png) + +You can enter the shots **In** and **Out ** in the new window. Then, save by clicking the **Confirm** button. + +![Shot edit page](./docs/img/getting-started/shot_edit.png) + +Now, the frame range appears on the general spreadsheet of the shot page. + +![Shot edit page](./docs/img/getting-started/shot_framerange_global.png) + +Now that you have unlocked the **Frames**, **In**, and **Out** columns, you can fill them +directly from the global shot page. + +Click on the case you want to fill in and add the data. + +::: tip +If you enter the **Frame In** and **Frame Out**, Kitsu automatically calculates the **Number of Frame**. +::: + +![Shot edit page](./docs/img/getting-started/shot_framerange_global_edit.png) + + +You can also use the **CSV Import** to update your frame range quickly. + [Update Shots information with CSV Import](../short#update-your-shots) + +You can also access the history of shot values. + +![Shot framerange detail](./docs/img/getting-started/shot_framerange_detail.png) + +![Shot Values History](./docs/img/getting-started/shot_values_history.png) + +## Create Custom Metadata Columns + +To add more information on the general spreadsheet pages, you must create a custom **metadata column**. + +You may have extra information to add to your pages, such as the **level of difficulties**, **Weather**, **Tag**, etc. You can store all text (or number) information in the custom metadata column. + +Click on the **+** near the Name column. + +![Metadata Column](./docs/img/getting-started/add_column_custom.png) + +With the **Type** option, you can choose how you want to store your information: +- a free **Text**, +- a **Number**, +- a **Checkbox**, +- a **List of value**, +- a **List of tags**, +- a **Checklist**. + +![Metadata Column detail](./docs/img/getting-started/custom_column_detail.png) + +::: warning +The **Text**, **Number**, and **Checkbox** allow you to add different information for each entity. You don't have to plan it first. + +The **List of value**, **List of tags**, and **Checklist** give you the same choice for each entity. Moreover, it has to be filled now. + +![Metadata Column list](./docs/img/getting-started/custom_column_list.png) + +Type the list elements below **Available values**, and confirm them by clicking on **Add value**. +::: + +You can also link the **metadata column** to one or several **departments**. + +::: tip +Link a metadata column to a department. The artists/supervisors will see it on their to-do page and in the department-filtered view. + +You can link the metadata column to one or more departments. Click on the department from the list and then click on **add** to be effective. + +Here, the VFX column is linked to two departments. + +![Department metadata column filtered view](./docs/img/getting-started/department_filtered_view_column.png) + +::: + +::: details Edit meta column +On the global page of the asset or the shot, click on the arrow on the direct right of your metadata column and click on **Edit**. + +![Metadata column Edit](./docs/img/getting-started/custom_column_edit.png) +::: + +You can fill in this information directly on the global spreadsheets page. +The cases are editable. + +![Metadata Column detail](./docs/img/getting-started/custom_column_list_edit.png) + +::: tip +You can batch-modify the metadata column by selecting several entities on the left and then modifying your metadata column. +::: + +::: details Edit by hand +You can also modify the information with the edit button ![Edit button](./docs/img/getting-started/edit_button.png). + +You now see a new line on the edit pop-up. You can select the information from the list, +alternatively, enter the free text or number, check a box, or use the checklist, depending on your previous choice. + +Remember to press the **Confirm** button when you are done. + +![Metadata Column detail](./docs/img/getting-started/edit_asset_custom.png) +::: + +Go to the general spreadsheet page if you need to edit or delete the metadata column. +Nearby the name of your metadata column, click on the arrow ![Metadata Column detail](./docs/img/getting-started/arrow.png). + +::: tip +You can **sort** your global page with this new column. Click the arrow on the right of the column name to open his menu. Then click on **Sort By**. + +You can also **Stick** the metadata column to the left. +::: + +## Create a Sequence + +In Kitsu, you can also track tasks at the **Sequence** Level. +It's especially useful when +you have macro tasks to track, like Story and color Board, Color Grading, etc. + +Use the navigation menu to go to the **Sequences** page. + +![Navigation Sequences](./docs/img/getting-started/drop_down_menu_sequence_page.png) + +::: warning +This new page behaves like the asset and shot global page. + +To use this page, You first need to create dedicated task types on your **Global Library** + with the **Sequence** attribute. + +See the **Creating a New Task Type** Section to create a new **Task Type**. + +[Creating a New Task Type](../configure-kitsu#task-types) + +Once you have created your **Task Types**  on your **Global Library**, add them to your +**Production Library** (setting page). +::: + +Once you have your task types ready on the settings page, you need to create a sequence (the same as the assets or shots). + +This new page behaves like the asset and shot global page. You can add your edits with the **+ New Sequence** button. + +You can assign tasks, do the review, change status, etc. + +You can add a metadata column, fill in the description, etc. + + +::: tip +You can create a sequence directly from here (+New sequence button) or create a sequence linked to your shots from the global shot page. +::: + +You can **Rename** and **Delete** the Sequence entity on this page, as for the asset and shot entity. + +If you click on the name of a sequence, you will see the detail page of this sequence. + +![Sequence detailed page](./docs/img/getting-started/sequence_detail_page.png) + +On the detailed page, you have access to the sequence casting. +You can see all the assets used in the whole sequence. + +You can also access the schedule, Preview Files, Activity, and Timelog of the sequence **tasks**. + +## Create an Edit + +You can track tasks at the **Edit** Level in Kitsu. + +It's especially useful when +You have several edits to track through several validation steps. For example, you can track your whole movie, several trailers, and the First Edit, Fine Edit, Mix, etc. + +::: warning +Per default, the **Edit** page will not be displayed until you have task types for it on your **production library** (setting page) +::: + +To use this page, you need to first create a dedicated task type on your **Global Library** + with the **Edit** attribute. + +See the **Creating a New Task Type** Section to create a new **Task Type**. + +[Creating a New Task Type](../configure-kitsu#task-types) + +Once you have created your **Task Types**  on your **Global Library**, add them to your +**Production Library**, you will see the **Edit** displayed on the navigation drop-down menu. + +![Navigation Edit](./docs/img/getting-started/drop_down_menu_edit.png) + +This new page behaves like the asset and shot global page. You can add your edits with the **+ New edit** button. + +You can assign tasks, do the review, change status, etc. + +You can add a metadata column, fill in the description, etc. + +::: tip +Depending on your deliveries, you can also change the resolution per **Edit**. +::: + +::: warning +The detail page is different from the other entities. + +As **Edit** focuses on a specific long video, the detail page looks more like the comment detail page. +::: + +You can **Rename** and **Delete** the Edit entity on this page for the asset and shot entity. + +## Create a Breakdown List + +Filling out the breakdown helps you with the assembly of the shots. With the +breakdown, you have all the details of the assets you need to add to create your +shot, and we are sure to omit nothing. + +On the dropdown menu, choose **BREAKDOWN**. + +![drop down Menu breakdown](./docs/img/getting-started/drop_down_menu_breakdown.png) + +On the left of the breakdown page is the episode/sequence/shot menu (1); you can choose between those you created. They are the right part of +the screen; all the assets created are available for this production (main pack and episodes) (3). Moreover, in +the middle section, it is your selection for the shot (2). + +![Breakdown page](./docs/img/getting-started/breakdown_general_empty.png) + +So now you have to select the shot you want to cast. + +You can display the assets as text if you don't have thumbnails yet or enlarge the +thumbnails size. + +![Breakdown page text display](./docs/img/getting-started/breakdown_text_display.png) + +You may also realize an asset needs to be added to the list during your breakdown. + +You can create a new asset directly from the breakdown page. Click the **+** on the right of the **All available assets**. + +![Breakdown page create asset](./docs/img/getting-started/breakdown_create_asset.png) + +You can also choose multiple shots at once. Click on the first shot, hold the **shift** key, and click on the last shot of your selection. + +![Breakdown page global bulk select](./docs/img/getting-started/breakdown_general_bulk_select.png) + +Then click on the assets you want +to assign: characters, backgrounds, ... from the right part (3). +If you have selected multiple shots, your selection is applied to the numerous shots. + +Copy a shot filled with assets and paste this asset selection into another shot. + +You can see a **+1** or **+10** when you pass over the asset. It's the number +of times you add this asset, and you can click on it as many times as you need. + +![Breakdown add asset](./docs/img/getting-started/breakdown_add_asset.png) + +You can also link all your assets to episodes on a TV show without specifying a sequence or shot. + +![Breakdown episode asset](./docs/img/getting-started/breakdown_episode.png) + +This way, you can link all your assets to one or several episodes before the storyboard/animatic stage. + +You can now see the asset in the middle of the screen (2). Next +to the asset's name is the number of times it has been added. In this +example, we have added the character asset Llama two times. + + +If you add an asset twice by mistake, you must go to the screen's middle part to select assets for this shot (2). From there, click on +**-1**. When you finish this shot, go on with the other shots. +Your selection is automatically saved. + +![Breakdown remove asset](./docs/img/getting-started/breakdown_remove_asset.png) + +If a new asset is created during the storyboard, return to the asset +page (using the dropdown menu) and create the needed assets. The tasks previously created are applied immediately to these new +assets. However, you have to do the assignment, and then you can +continue with the breakdown. + +Now, your **Breakdown** page should look like this. + +![breakdown add asset bulk](./docs/img/getting-started/breakdown_general_bulk_select_full.png) + +You can also make a breakdown list for your assets if you need to assemble them and keep track of the separate parts. + +On the top left corner of the screen, choose **asset** in the dropdown menu below **FOR**. + +![Breakdown asset menu](./docs/img/getting-started/breakdown_asset_menu.png) + +You can now access a second dropdown menu to choose your asset type: **Character**, **Environment**, **Props**, **FX**, ... + +![Breakdown asset type](./docs/img/getting-started/breakdown_asset_menu_type.png) + +You can complete the asset breakdown page the same way you did the shots. First, select one or more assets on the left part and then add the right part's elements. + +::: details Create a Breakdown List from a CSV File + +You may already have your breakdown list ready in a spreadsheet file. With Kitsu, you have two ways to import it: the first is to import a .csv file directly, and the second is to copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file following Kitsu's recommendation. + +Click on the **import** button ![Import button](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Breakdown import csv file](./docs/img/getting-started/import_breakdown_csv_file.png) + +To see the result, click on the **Preview** button. + +You can check and adjust the name of the columns by previewing your data. + +NB: the **Episode** column is only mandatory for a **TV Show** production. + +![Breakdown import Preview](./docs/img/getting-started/import_breakdown_preview.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, you have your breakdown imported into Kitsu. + +![Breakdown import Preview](./docs/img/getting-started/breakdown_general_bulk_select_full.png) +::: + +::: details Create a Breakdown List by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_breakdown.png) + +Then, go back to the breakdown page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started//import_breakdown_csv_file.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_breakdown_preview.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_breakdown_preview.png) + +Once everything is good, click on the **Confirm** button to import your data into Kitsu. + +Now, all your assets have been imported into Kitsu. + +![Import data copy paste data](./docs/img/getting-started/breakdown_general_bulk_select_full.png) +::: + +## Casting from the Asset Library + +It is also possible to cast assets from the global **Asset Library** into your production. This allows you to cast an already existing asset, without the need to re-create it for each production. + +![Asset Library Display](./docs/img/getting-started/asset_library_display.png) + +To see assets outside of your production from the asset library, click the **Display Library** Button (1) + +Assets from the global asset library will appear, and will be highlighted with a yellow boarder (2). They can then be cast in your breakdown exactly the same as other assets. + +![Asset Library View](./docs/img/getting-started/asset_library_view.png) + +Back on your productions asset page, you can choose to display global assets that have been cast in your production by toggling the **Display Library** button (1). These assets will be highlighted in yellow, indicating that they originate from the global asset library, and not your current production. (2). + +## Introduction to Asset State: Ready For + +Most of the time, you don't need to wait for an asset's tasks to be approved to use it on a shot task. + +For example, when an asset is approved at the **Concept** stage, it can be used for the **Storyboard** stage. +Then, when it's approved at the **Modeling** stage, you can use it for the **Layout** stage and so on. + +That's exactly what the asset state **Ready For** is doing: it lets you know the state of an asset's tasks and compares its usability for the shot tasks. + +Now that we have filled out our breakdown, we know exactly which asset is used on every shot. + +First, we need to define an asset's state relative to its task status. You can modify the **Ready for** by clicking on a cell. You will see a dropdown menu with the shot task. + +![Asset Status](./docs/img/getting-started/asset_status.png) + +::: tip +You can use the **automations** to do the heavy lifting. + +You can set automation with the **ready for** trigger. +::: + +We can see the result in the shot page now that we have changed some asset states **Ready for**. + +You can notice that some white boxes are now **Green**: all the assets cast in this shot are ready for this specific task. + +![Asset Status](./docs/img/getting-started/asset_status_box.png) + +If you see the white box, Kitsu will display how many assets are ready for this task. + +![Asset Status](./docs/img/getting-started/asset_status_empty.png) + +::: tip +If you don't see any boxes, no assets are cast for this shot. +::: +  +Then, you can click on the shot's name to go to its detail page. +Then, you will see all the assets cast in this shot and their status. + +![Asset Status](./docs/img/getting-started/asset_status_detail.png) + +It's the fastest way to know if you can start a shot for a specific task. + +# Create a SHOTS-only Production + +Now that you have designed your workflow in Kitsu and invited more people, it's time to create your Production. + +Click on the **Create a new +production** button. + +![Create a production](./docs/img/getting-started/create_production.png) + +Enter your production name, select **only shots** as the **type**, and select the style that best suits your Production. + + +Then, you must fill in technical information, such as the number of FPS, the Ration, and the Resolution. + +All these data will be used when Kitsu re-encodes the video previews uploaded. + +Then, you need to define your Production's start and end dates. + +![Add a production](./docs/img/getting-started/add_production_shot.png) + + +You need to select your shots workflow (Task Type) (3) and your validation process (Task Status) (4), + +![Add a production Pipeline](./docs/img/getting-started/add_production_pipe_shot.png) + + +::: tip +To create your **Production Workflow**, you will select Task Types from the Global Library. + +If you realize you missed some Task Types, you can create them later. + +See the [Studio Workflow](../configure-kitsu#studio-workflows) section. +::: + +Then, 5 is the option parts. If you already have a spreadsheet with your shot. + +See the **import CSV** section for more details. + +[Import shot](../short-shot#create-shots-from-an-edl-file + +Validate everything with the ![All done](./docs/img/getting-started/all_done_go.png) button. + +## Introduction to the Kitsu Global Page + +Welcome to Kitsu's global asset page. + +Let's take a look around. + +![Presentation of the global page](./docs/img/getting-started/presentation_global.png) + +On the top part (1), you have the **global navigation**, which is always visible throughout all the production pages. + +**From left to right:** + +### Main Menu + +By clicking on the top left button, Kitsu![Main menu button](./docs/img/getting-started/main_button.png) (or your Studio logo), you will open the **Main Menu**. + +On the Main Menu, you will find direct access to your assigned tasks, productions, global and team schedules, the workflow customization page, and the Kitsu settings. + +::: details Main Menu Details +**WORKSPACE** +- My Tasks: your assigned tasks +- My Checks: All the tasks with status **Is Feedback Request** depending on your department(s) +- My Productions: Get back to the selection on the production page. + + +**STUDIO** +- Productions +- People +- Timesheets +- Main Schedule +- Team Schedule +- All tasks +- News Feed +- Entity Search + + +**ADMIN** +- Departments +- Task Types +- Asset Types +- Custom Actions +- Automation +- 3D Backgrounds +- Bots +- Settings +- Logs + +::: warning Permission Visibility +The WORKSPACE section is enabled for all permissions except My Checks, which artists do not see. + +Artist (and above) can also see their own **Timesheets**, and have access to the **Entity Search** +::: + +### Navigation + +You will see the navigation dropdown menu on the right of the main menu icon. + +![Presentation of the global page](./docs/img/getting-started/presentation_global_header.png) + + +You can choose between Production. The name of the actual Production and page are always displayed. + +You can use the dropdown menu to navigate from Production to Production (if you have several). + +Once you have selected a production, the next dropdown menu will help you navigate through the different pages of this Production. + + +::: details Navigation details +The first section is about the tracking of your tasks +- Shots +- Sequence +- Edits (If you have created specific tasks) + +The second section is more about the side of the Production +- Concepts +- Playlists +- News feed + +The third section is about statistics +- Sequence Stats + + +The fourth section is related to Team Management +- Schedule +- Quotas +- Team + +The fifth section is about the settings of your Production +- Settings + +::: tip +You start with the asset page, but you can change your production homepage to other entities (see setting page) +::: + +::: warning +If you realize you need an extra level of navigation, such as **Episodes**, you need to change your production Type to a **TV Show**. + +If, on the contrary, you realize you need the assets instead of the Only Shots, you need to switch your production type from Only Shots to Short. +::: + +### Global Search, News, Notification and Documentation + +You have the global search on the right of the navigation dropdown menu. It's a quick access search that will display the four first results. If you need more results and filtering options, see the **Entity Search** page. + + +The next icon ![News](./docs/img/getting-started/canny.png) is a direct link to our news and feedback page. + +You can see all the new features with an animated gif and also add suggestions about the next feature you want to see in Kitsu. + +Next, the bell icon ![Notification](./docs/img/getting-started/notification_icon_on.png) displays your notifications (assignments, comments, tags). The number of unread notifications will be shown on the bell icon. There are various filters to help you stay on top of updates and revisit important ones when needed. You can easily mark notifications as read or unread or quickly filter by watching/non-watching to focus on what matters most and declutter your feed. + +The last icon before your avatar is the documentation button. +![documentation button](./docs/img/getting-started/documentation_button.png), that you are reading right now! + +### Personal Settings + +You can click on your avatar to open your menu (setting, documentation, etc.). + +![Profile enlarged](./docs/img/getting-started/profil_enlarge.png). + +## The Tasks Spreadsheet + +### Entity spreadsheet + +The second part of the screen is common to all the entities (asset, shot, sequence, Edit). This is the global tasks spreadsheet. + +Here, you see the status, assignation, priority, etc, for each task. + +::: tip +The first line and column header of the spreadsheet always appear at the top of the page, even if you scroll down. + +You can also **Stick** other columns to keep them visible at all times. +::: + +### Filters + +The first element on the left is the filter box. You can type anything you want for simple filtering, sequence, asset type, etc. + +If you need more advanced filtering, please use the filter builder button. + +![Filter Builder](./docs/img/getting-started/filter_builder.png) + +You can then save all the filters and use them as your pages. + +### Simplify the display + +On the right part of the screen, there are some buttons (from left to right) to hide or display the assignation, hide or display the extra column, enlarge or reduce the thumbnail, +![display and Hide option](./docs/img/getting-started/display_hide_option.png) + + +### Import / Export + +batch import thumbnail ![batch import thumbnail](./docs/img/getting-started/add_thumbnails.png), and finally import ![Import button](./docs/img/getting-started/import.png) or export ![export button](./docs/img/getting-started/export.png) data. + + + +### Metadata column + +Below, you have the name of the column. the (+) next to **Name** ![Add metadata column](./docs/img/getting-started/add_column_custom.png) is here to create a new metadata column. Then, you have the name of the task type column. + +### Customize the view + +On the far right of the screen, next to the scroll bar, is the option to hide and display a text column + +![Display/hide text column](./docs/img/getting-started/visible_column_detail.png). + +### Sum-up of your view + +The last part (4), at the bottom of the screen, is the sum-up of your displayed page. It means the sum-up will update if you filter the page. + +You can see the number of elements (assets or shots), the total number of estimated days, and the total number of days already spent. + +## Create a Shot + +### Create your first shot + +It's time to create **shots** for your Production. + +::: warning +Shots are linked to Sequences in Kitsu. +This means you need to first create a sequence and then populate this sequence with shots. +::: + +You need to go to the **Shots** page: you can use the +dropdown menu and click on the **SHOTS**. + +![Drop down menu shot](./docs/img/getting-started/drop_down_menu_shot.png) + +Click on the **Add shots** button to start with the shot creation. + +![First add shots](./docs/img/getting-started/new_shot.png) + +::: warning +When you create a shot, the task workflow you have designed will be applied, and all the tasks will be created at the same time as the shot. +::: + +A new pop-up opens for the creation of the shots. +You can now create the sequences and the shots. + +Enter the first sequence, for instance, sq01, +then **add**. + +Now, you can see your sequence has been created. To add shots to this sequence, you need to select it and create your shots. + +For example, type sh0010 on the shots column, then again **add**. +You can also define padding for your shots. + +::: tip +If you want to name your shots ten on ten as SH0010, SH0020, SH0030, etc, set the **Shot Padding** as 10 +::: + +![Manage shots](./docs/img/getting-started/manage_shot.png) + +You can now see that new shots are listed and linked by their sequence. +You have created the first shot of the first sequence. + +Now, let's add more shots than just one! As you can see, the box already contains your name +code but incremented, so you have to continue to click on **add** to +create more shots. + +![Add shots](./docs/img/getting-started/add_shots.png) + +To add more sequences, go to the left part, type the name of your new sequence, and then click on **add**. +Your second sequence is selected, and you can now add shots. + +::: tip +If a shot is misplaced on a sequence, you have to edit the shot +![Edit button](./docs/img/getting-started/edit_button.png), and change the +sequence. +![edit shot Change sequence](./docs/img/getting-started/edit_shot.png) + +![Change sequence](./docs/img/getting-started/change_seq.png) +::: + +## Create Shots from an EDL File + +You may already have your shots list ready in an **EDL** file. +With Kitsu, you can import your **EDL** file directly to create the sequence, shot, number of frames, Frame in and frame out, and more. + +On the **Global Shot Page**, you will see an **Import EDL** button. + +![Import EDL Button](./docs/img/getting-started/import_edl_button.png) + +You can select the naming convention of the video file used during the editing on the pop-up. + +![Import EDL Menu](./docs/img/getting-started/import_edl_menu.png) + +It means the video clip on the editing is named as project_sequence_shot.extension. + +Here is an example of an EDL for the LGC production. + +![EDL Example](./docs/img/getting-started/edl_example.png) + +The video files are named  LGC_100-000.mov, which means LGC is the production name, 100 is the sequence name, and 000 is the shot name. + +You can import the EDL file once you are set with the naming convention. + +Then click on **Upload EDL** + +Then Kitsu will create the shots. + +![EDL Shot creation](./docs/img/getting-started/edl_shot_creation.png) +::: + +::: details Create Shots from a CSV Spreadsheet File +You may already have your shots list ready in a spreadsheet file. +With Kitsu, you have two ways to import them; the first is to import a `.csv` file directly, and the second is to copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file. + +Then, return to the shot page on Kitsu and click the **Import** icon. +![Import Icon](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Import csv file](./docs/img/getting-started/import_csv_shot.png) + +To see the result, click on the **Preview** button. +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, all your shots are imported into Kitsu, and the task is created according to your **Settings**. + +![Import data copy paste data](./docs/img/getting-started/import_result_shot.png) +::: + + +::: details Create Shots by Copying / Pasting a Spreadsheet File +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_shot.png) + +Then, go back to the shot page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_shot.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_shot.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, all your shots are imported into Kitsu, and the task is created according to your **Settings**. + +![Import data copy paste data](./docs/img/getting-started/import_result_shot.png) +::: + +### See the Details of a Shot + +If you want to see the details of a shot, click on its name. + +![Shot detail](./docs/img/getting-started/shot_detail.png) + +A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. +You can navigate through each by clicking on the name of the tabs. + +![Shot detail page](./docs/img/getting-started/shot_detail_page.png) + +You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. + + +![Shot detail page](./docs/img/getting-started/shot_detail_page_panel.png) + + +You can also access the **Casting**, + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_casting.png) + + +The **Schedule** is available if you have previously filled out the task type page data. If the data have already been filled out, you will be able to modify them directly here. + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_schedule.png) + +the **Preview Files** uploaded at various task types, + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_file.png) + +And the **Timelog** if people have filled out their timesheet on the tasks of this asset. + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_timelog.png) + +## Add more tasks after creating the shots + +If you realize after creating the shots that the task is missing, you can still add them. + +First, be sure that the missing task type is added to the settings page under the task type tab. + +Then go back to the shot page and click on + Add tasks. + +### Update your shots + +You can update your shots at any point, change their names and sequences, modify their descriptions, and add any custom information you added to the global page. + +You can edit shots by going to the shot page, hovering over the shot you want to modify, and then clicking on the **edit** button +![Edit button](./docs/img/getting-started/edit_button.png) (1) on the right side of the line. + +![Edit an asset](./docs/img/getting-started/asset_edit01.png) + +To extend the description on the main shot page, click on the first words (2), and a pop-up with the full description will open. + + +::: details Update Shots Information with CSV Import +You can use the **CSV Import** to update your data as the **NB Frames**, **Frame IN**, **Frame Out**, or any custom **Metadata column**. + +You can update the **Assignation** , and the **Status** of tasks and add a **Comment**. + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_shot.png) + +Then, go back to the shot page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_shot.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_shot.png) +  +You need to switch on the **Option: Update existing data**. +The updated shots will be in blue + +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/update_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, all your shots are imported into Kitsu, and the task is created according to your **Settings**. + +![Import data copy paste data](./docs/img/getting-started/import_result_shot.png) +::: + +## Add the number of Frames and Frame ranges to the shots + +At this stage of the Production, the animatic should be done. This means you have +the length (**number of frames**, **Frame range In**, and **Frame range Out**) for each shot. You can +add this information to the spreadsheet. This way, you are sure that all +the frames are calculated and none are missing or over-computed. + +::: warning +If you have created your shots and sequence by hand, +the **Frame** column will be hidden. You must edit at least one shot and fill in the number of frames to display the **Frame** column. +The column will be displayed if you have created your shots and imported the number of frames with a CSV/spreadsheet. +::: + +You need to edit the shots to fill in the frame range information. Click on the +edit button ![Edit button](./docs/img/getting-started/edit_button.png) on the right +side of the shot line. + +![edit shot Change sequence](./docs/img/getting-started/edit_shot.png) + +On the new window, you can enter the shots **In** and **Out**. Then, save by clicking the **Confirm** button. + +![Shot edit page](./docs/img/getting-started/shot_edit.png) + +Now, the frame range appears on the general spreadsheet of the shot page. + +![Shot edit page](./docs/img/getting-started/shot_framerange_global.png) + +Now that you have unlocked the **Frames**, **In**, and **Out** columns, you can fill them +directly from the global shot page. + +Click on the case you want to fill in and add the data. + +::: tip +If you enter the **Frame In** and **Frame Out**, Kitsu automatically calculates the **Number of Frame**. +::: + +![Shot edit page](./docs/img/getting-started/shot_framerange_global_edit.png) + + +You can also use the **CSV Import** to update your frame range quickly. + [Update Shots information with CSV Import](../short-shot#update-your-shots) + +You can also access the history of shot values. + +![Shot framerange detail](./docs/img/getting-started/shot_framerange_detail.png) + +![Shot Values History](./docs/img/getting-started/shot_values_history.png) + +## Create Custom Metadata Columns + +To add more information on the general spreadsheet pages, you must create a custom **metadata column**. + +You may have extra information to add to your pages, such as the **level of difficulties**, **Weather**, **Tag**, etc. You can store all text (or number) information in the custom metadata column. + + +Click on the **+** near the Name column. + +![Metadata Column](./docs/img/getting-started/add_column_custom.png) + +With the **Type** option, you can choose how you want to store your information: +- a free **Text**, +- a **Number**, +- a **Checkbox**, +- a **List of value**, +- a **List of tags**, +- a **Checklist**. + +![Metadata Column detail](./docs/img/getting-started/custom_column_detail.png) + +::: warning +The **Text**, **Number**, and **Checkbox** allow you to add different information for each entity. You don't have to plan it first. + +The **List of value**, **List of tags**, and **Checklist** give you the same choice for each entity. Moreover, it has to be filled now. + +![Metadata Column list](./docs/img/getting-started/custom_column_list.png) + +Type the list elements below **Available values**, and confirm them by clicking on **Add value**. +::: + +You can also link the **metadata column** to one or several **departments**. + +::: tip +Link a metadata column to a department. The artists/supervisors will see it on their to-do page and in the department-filtered view. + +You can link the metadata column to one or more departments. Click on the department from the list and then click on **add** to be effective. + +Here, the VFX column is linked to two departments. + +![Department metadata column filtered view](./docs/img/getting-started/department_filtered_view_column.png) + +::: + +::: details Edit meta column +On the global page of the asset or the shot, click on the arrow on the direct right of your metadata column and click on **Edit**. + +![Metadata column Edit](./docs/img/getting-started/custom_column_edit.png) +::: + +You can fill in this information directly on the global spreadsheets page. +The cases are editable. + +![Metadata Column detail](./docs/img/getting-started/custom_column_list_edit.png) + +::: tip +You can batch-modify the metadata column by selecting several entities on the left and then modifying your metadata column. +::: + +::: details Edit by hand +You can also modify the information with the edit button ![Edit button](./docs/img/getting-started/edit_button.png). + +You now see a new line on the edit pop-up. You can select the information from the list, +alternatively, enter the free text or number, check a box, or use the checklist, depending on your previous choice. + +Remember to press the **Confirm** button when you are done. + +![Metadata Column detail](./docs/img/getting-started/edit_asset_custom.png) +::: + +Go to the general spreadsheet page if you need to edit or delete the metadata column. +Nearby the name of your metadata column, click on the arrow ![Metadata Column detail](./docs/img/getting-started/arrow.png). + +::: tip +You can **sort** your global page with this new column. Click the arrow on the right of the column name to open his menu. Then click on **Sort By**. + +You can also **Stick** the metadata column to the left. +::: + +## Create a Sequence + +In Kitsu, you can also track tasks at the **Sequence** Level. +It's especially useful when +you have macro tasks to track, like Story and color Board, Color Grading, etc. + +Use the navigation menu to go to the **Sequences** page. + +![Navigation Sequences](./docs/img/getting-started/drop_down_menu_sequence_page.png) + +::: warning +This new page behaves like the asset and shot global page. + +To use this page, You first need to create dedicated task types on your **Global Library** + with the **Sequence** attribute. + +See the **Creating a New Task Type** Section to create a new **Task Type**. + +[Creating a New Task Type](../configure-kitsu#task-types) + +Once you have created your **Task Types**  on your **Global Library**, add them to your +**Production Library** (setting page). +::: + +Once your task types are ready on the settings page, you need to create a sequence (the same as the assets or shots). + +This new page behaves like the asset and shot global page. You can add your edits with the **+ New Sequence** button. + +You can assign tasks, do the review, change status, etc. + +You can add a metadata column, fill in the description, etc. + + +::: tip +You can create a sequence directly from here (+New sequence button) or create a sequence linked to your shots from the global shot page. +::: + + +You can **Rename** and **Delete** the Sequence entity on this page, as for the asset and shot entity. + +If you click on the name of a sequence, you will see the detail page of this sequence. + +![Sequence detailed page](./docs/img/getting-started/sequence_detail_page.png) + +On the detailed page, you have access to the sequence casting. +You can see all the assets used in the whole sequence. + +You can also access the schedule, Preview Files, Activity, and Timelog of the sequence **tasks**. + +## Create an Edit + +You can track tasks at the **Edit** Level in Kitsu. + +It's especially useful when +You have several edits to track through several validation steps. For example, you can track your whole movie, several trailers, and the First Edit, Fine Edit, Mix, etc. + +::: warning +Per default, the **Edit** page will not be displayed until you have task types for it on your **production library** (setting page) +::: + +To use this page, you need to first create a dedicated task type on your **Global Library** + with the **Edit** attribute. + +See the **Creating a New Task Type** Section to create a new **Task Type**. + +[Creating a New Task Type](../configure-kitsu#task-types) + +Once you have created your **Task Types**  on your **Global Library**, add them to your +**Production Library**, you will see the **Edit** displayed on the navigation drop-down menu. + + +![Navigation Edit](./docs/img/getting-started/drop_down_menu_edit.png) + + +This new page behaves like the asset and shot global page. You can add your edits with the **+ New edit** button. + +You can assign tasks, do the review, change status, etc. + +You can add a metadata column, fill in the description, etc. + +::: tip +Depending on your deliveries, you can also change the resolution per **Edit**. +::: + +::: warning +The detail page is different from the other entities. + +As **Edit** focuses on a specific long video, the detail page looks more like the comment detail page. +::: + +You can **Rename** and **Delete** the Edit entity on this page for the asset and shot entity. + +# Create an ASSET-only Production + +Now that you have designed your workflow in Kitsu and invited more people, it's time to create your production. + +Click on the **Create a new +production** button. + +![Create a production](./docs/img/getting-started/create_production.png) + +Enter your production name, and choose **only Asset** as the **type**, then select the style of your production (2D, 3D). + + +Then, you must fill in technical information, such as the number of FPS, the Ration, and the Resolution. + +All these data will be used when Kitsu re-encodes the video previews uploaded. + +Then, you need to define your production's start and end dates. + +![Add a production](./docs/img/getting-started/add_production.png) + +You can define your production workflow in the next part, 3 to 6. + + + +You need to select your asset task type (3), task status (4), and asset types (5). + +![Add a production Pipeline](./docs/img/getting-started/add_production_pipe.png) + + +::: tip +To create your **Production Workflow**, you will select Task Types from the Global Library. + +If you realize you missed some Task Types, you will be able to create them later. + +See the [Studio Workflow](../configure-kitsu#studio-workflows) section. +::: + +Then, 6 is the option part. If you already have a spreadsheet with your Asset. + +See the **import CSV** section for more details. + +[Import asset](../short-asset#create-an-asset) + +Validate everything with the ![All done](./docs/img/getting-started/all_done_go.png) button. + +## Introduction to the Kitsu Global Page + +Welcome to Kitsu's global asset page. + +Let's take a look around. + +![Presentation of the global page](./docs/img/getting-started/presentation_global.png) + +On the top part (1), you have the **global navigation**, which is always visible throughout all the production pages. + +**From left to right:** + +### Main Menu + +By clicking on the top left button, Kitsu![Main menu button](./docs/img/getting-started/main_button.png) (or your Studio logo), you will open the Main Menu. + +On the Main Menu, you will find direct access to your assigned tasks, productions, global and team schedules, the workflow customization page, and the Kitsu settings. + +::: details Main Menu Details +**WORKSPACE** +- My Tasks: your assigned tasks +- My Checks: All the tasks with status **Is Feedback Request** depending on your department(s) +- My Productions: Get back to the selection on the production page. + + +**STUDIO** +- Productions +- People +- Timesheets +- Main Schedule +- Team Schedule +- All tasks +- News Feed +- Entity Search + + +**ADMIN** +- Departments +- Task Types +- Asset Types +- Custom Actions +- Automation +- 3D Backgrounds +- Bots +- Settings +- Logs + +::: warning Permission Visibility +The WORKSPACE section is enabled for all permissions except My Checks, which artists do not see. + +Artist (and above) can also see their own **Timesheets**, and have access to the **Entity Search** +::: + +### Navigation + +You will see the navigation dropdown menu on the right of the main menu icon. + +![Presentation of the global page](./docs/img/getting-started/presentation_global_header.png) + + +You can choose between production. The name of the actual production and actual page are always displayed. + +You can use the dropdown menu to navigate from production to production (if you have several). + +Once you have selected a production, the next dropdown menu will help you navigate through the different pages of this production. + + +::: details Navigation details +The first section is about the tracking of your tasks +- Assets +- Edits (If you have created specific tasks) + +The second section is more about the side of the production +- Concepts +- Breakdown +- Playlists +- News feed + +The third section is about statistics +- Asset Type Stats + +The fourth section is related to Team Management +- Schedule +- Quotas +- Team + +The fifth section is about the settings of your production +- Settings + +::: tip +You start with the asset page, but you can change your production homepage to other entities (see setting page) +::: + +::: warning +If you realize you need an extra level of navigation, such as **Episodes**, you need to change your production Type to a **TV Show**. + +If, on the contrary, you realize you need the **shots**, you also need to switch your production type from **Only Assets** to **Short**. +::: + +### Global Search, News, Notification and Documentation + +You have the global search on the right of the navigation dropdown menu. It's a quick access search that will display the four first results. If you need more results and filtering options, see the **Entity Search** page. + + +The next icon ![News](./docs/img/getting-started/canny.png) is a direct link to our news and feedback page. + +You can see all the new features with an animated gif and also add suggestions about the next feature you want to see in Kitsu. + +Next, the bell icon ![Notification](./docs/img/getting-started/notification_icon_on.png) displays your notifications (assignments, comments, tags). The number of unread notifications will be shown on the bell icon. There are various filters to help you stay on top of updates and revisit important ones when needed. You can easily mark notifications as read or unread or quickly filter by watching/non-watching to focus on what matters most and declutter your feed. + +The last icon before your avatar is the documentation button. +![documentation button](./docs/img/getting-started/documentation_button.png), that you are reading right now! + +### Personal Settings +You can click on your avatar to open your menu (setting, documentation, etc.). + +![Profile enlarged](./docs/img/getting-started/profil_enlarge.png). + +## The Tasks Spreadsheet + +### Entity spreadsheet + +The second part of the screen is common to all the entities (Asset, shot, sequence, Edit). This is the global tasks spreadsheet. + +Here, you see the status, assignation, priority, etc, for each task. + +::: tip +The first line and column header of the spreadsheet always appear at the top of the page, even if you scroll down. + +You can also **Stick** other columns to keep them visible at all times. +::: + +### Filters + +The first element on the left is the filter box. You can type anything you want for simple filtering, sequence, asset type, etc. + +If you need more advanced filtering, please use the filter builder button. + +![Filter Builder](./docs/img/getting-started/filter_builder.png) + +You can then save all the filters and use them as your pages. + +### Simplify the display + +On the right part of the screen, there are some buttons (from left to right) to hide or display the assignation, hide or display the extra column, enlarge or reduce the thumbnail, +![display and Hide option](./docs/img/getting-started/display_hide_option.png) + + +### Import / Export + +batch import thumbnail ![batch import thumbnail](./docs/img/getting-started/add_thumbnails.png), and finally import ![Import button](./docs/img/getting-started/import.png) or export ![export button](./docs/img/getting-started/export.png) data. + +### Metadata column + +Below, you have the name of the column. the (+) next to **Name** ![Add metadata column](./docs/img/getting-started/add_column_custom.png) is here to create a new metadata column. Then, you have the name of the task type column. + +### Customize the view + +On the far right of the screen, next to the scroll bar, is the option to hide and display a text column + +![Display/hide text column](./docs/img/getting-started/visible_column_detail.png). + +### Sum-up of your view + +The last part (4), at the bottom of the screen, is the sum-up of your displayed page. It means the sum-up will update if you filter the page. + +You can see the number of elements (assets or shots), the total number of estimated days, and the total number of days already spent. + +## Create an Asset + +### Create your first Asset + +So, now that we have created our production and have a general grasp of the Kitsu interface, it's time to create our very first Asset. + +On the asset page, click on **Add assets**. + +![Asset page first time](./docs/img/getting-started/add_assets_first.png) + +::: warning +When you create an asset, your task workflow will be applied, and **all the tasks will be created simultaneously as the Asset**. +::: + +A pop-up window opens: + +It asks you to choose the **Asset Type** (1). +If you didn't add a new asset type, Kitsu will provide you with examples such as Characters, Environment, FX, Props, etc. +Let's start with a character. + +::: tip +You can also customize the asset type list and the tasks pipeline. See the guide ( +[Customization of the workflow](../configure-kitsu#asset-types)) for more details +::: + +We give it a **Name** (2) and enter a description that helps the Artist know what to do and quickly identify the Asset. + +Click on **Confirm and stay** if you have multiple assets to create. + + +![Create an asset](./docs/img/getting-started/add_asset_popup.png) + +You can change the asset type and keep adding assets. + +::: tip +The newly created Asset appears in the background whenever you click on **Confirm and stay**. +::: + +After adding your last Asset, click +on **Confirm**. It will create the Asset and close the window. + +::: tip +If you click on **Confirm and stay ** but realize you don't have more assets to add, click on **Close**, and the winwill bew is canceled. +::: + +![Global asset page](./docs/img/getting-started/asset_edit.png) + +You will also see the tasks that are selected for your assets workflow are created at the same time. + + +If you need to add more **Assets**, click the **+ Create assets** button. + +::: details Create Assets from a CSV Spreadsheet File +You may already have your asset list ready in a spreadsheet file. +With Kitsu, you have two ways to import them; the first is to import a `.csv` file and copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file. + +Then, go back to the asset page on Kitsu and click on the **Import** icon. +![Import Icon](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Import csv file](./docs/img/getting-started/import_csv_asset.png) + +To see the result, click on the **Preview** button. +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, you have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_asset.png) +::: + +::: details Create Assets by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_asset.png) + +Then, go back to the asset page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_asset.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_asset.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, you have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_asset.png) +::: + +### See the Details of an Asset + +To see an asset's detail, click on its name. + +![Asset detail](./docs/img/getting-started/asset_detail.png) + +A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. + + +![Asset detail page](./docs/img/getting-started/asset_detail_page.png) + +You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. + + +![Asset detail page](./docs/img/getting-started/asset_detail_page_panel.png) + +You can also access the **Casting**, + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_casting.png) + +**concept** linked to this Asset, + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_concept.png) + +The **Schedule** is available if you have previously filled out the task type page data. If the data have already been filled out, you will be able to modify them directly here. + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_schedule.png) + +the **Preview Files** uploaded at various task types, + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_file.png) + +And the **Timelog** if people have filled out their timesheet on the tasks of this Asset. + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_timelog.png) + +## Add more tasks after creating the assets + +If you realize **after** creating the assets that the task is missing, you can still add them. + +First, be sure that the missing task type is added to the settings page under the task type tab. + +Then go back to the asset page and click on **+ Add tasks** + +### Update your assets + +At any point, you can update your assets, change their name and asset type, modify their description, and any custom information you added to the global page. + +You can edit assets by going to the asset page, hovering over the Asset you want to modify, and then clicking on the **edit** button +![Edit button](./docs/img/getting-started/edit_button.png) (1) on the right side of +the line. + +![Edit an asset](./docs/img/getting-started/asset_edit01.png) + +To extend the description on the main asset page, click on the first words (2), and a pop-up with the full description will open. + + +::: details Update Assets with the CSV Import +You can use the CSV import to update your data quickly. + +You can update the **type** of an asset, the **Assignation**, the **Status** of tasks, and add a **Comment**. + +You need to switch on the option **Update existing data**. Then the lines that will be updated +will be highlighted in blue. + +![Import data copy paste data](./docs/img/getting-started/import_update_asset.png) + +::: + + +::: details Update Assets by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_asset.png) + +Then, go back to the asset page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_asset.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_asset.png) +  +You can check and adjust the name of the columns by previewing your data. + +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +You need to switch on the option **Update existing data**. Then, the lines that will be updated +will be highlighted in blue. + +![Import data copy paste data](./docs/img/getting-started/import_update_asset.png) + +Now, you have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_asset.png) +::: + +## Create a Concept + +### Upload a Concept + +To create a **Concept**, go to the **Concept** page with the navigation menu. + +![Concept Menu](./docs/img/getting-started/menu_concept.png) + +To upload a concept, click the **Add a new reference to concepts** button. + +You can upload one or several concepts at the same time. + +![Concept empty page](./docs/img/getting-started/concept_empty_prod.png) + +Once you upload your previews, the concept page will look like this. + +![Concept filled page](./docs/img/getting-started/concept_filled_prod.png) + +You can interact with the concept in two ways: click on the picture to see an enlarged view. +The second is to click on the status part to open the **Comment Panel** on the right. + +On the comment panel, you have two options: link a concept to an existing asset or delete it. +You can also comment and change the status of the Asset. + +The idea is to have one version per **Concept**. If it's not approved, you need to upload a new concept, not to have multiple versions of the same concept. + +One concept is one task. + +![Concept options](./docs/img/getting-started/concept_options.png) + +### Link a Concept to an Asset + +Once concepts are uploaded, you can link them to the assets. + +You can see the links on the status part of the assets. + +Click on the status part of the concept; it will open the comment panel on the right. + +![Concept Comment Panel](./docs/img/getting-started/concept_comment_panel.png) + +On the comment panel, you have two options at the top: Link a concept to an asset and delete the concept. + +To link an asset, click on the **Link** ![Link button](./docs/img/getting-started/link_icon.png) button. + +Kitsu will display all the **Assets** available to link with the concept uploaded. + +Kitsu will list the linked assets at the top of the comment panel. For now, there are No Links. + +![Concept link](./docs/img/getting-started/concept_link.png) + +To link an asset, you have to click on it. The linked assets' names will appear at the top of the screen and under the preview of the concept. + +![Concept asset linked](./docs/img/getting-started/concept_asset_linked.png) + +Once a concept is linked to an asset, it can be seen on the asset's detail page. + +Return to the asset page, and click on the asset name you want to see the concept. + +![Detail asset page](./docs/img/getting-started/asset_detail_page.png) + +Per default, the casting detail is displayed on the second part of the screen. +Use the dropdown menu to choose the concept. + +![asset detail concept](./docs/img/getting-started/asset_detail_concept.png) + +Once in the concept section, you will see all the concepts created for this Asset. You can filter them per status. + +![asset detail concept list](./docs/img/getting-started/asset_detail_concep_listt.png) + +## Create Custom Metadata Columns + +To add more information on the general spreadsheet pages, you must create a custom **metadata column**. + +You may have extra information to add to your pages, such as the **level of difficulties**, **Weather**, **Tag**, etc. You can store all text (or number) information in the custom metadata column. + + +Click on the **+** near the Name column. + +![Metadata Column](./docs/img/getting-started/add_column_custom.png) + +With the **Type** option, you can choose how you want to store your information: +- a free **Text**, +- a **Number**, +- a **Checkbox**, +- a **List of value**, +- a **List of tags**, +- a **Checklist**. + +![Metadata Column detail](./docs/img/getting-started/custom_column_detail.png) + +::: warning +The **Text**, **Number**, and **Checkbox** allow you to add different information for each entity. You don't have to plan it first. + +The **List of value**, **List of tags**, and **Checklist** give you the same choice for each entity. Moreover, it has to be filled now. + +![Metadata Column list](./docs/img/getting-started/custom_column_list.png) + +Type the list elements below **Available values**, and confirm them by clicking on **Add value**. +::: + +You can also link the **metadata column** to one or several **departments**. + +::: tip +Link a metadata column to a department. The artists/supervisors will see it on their to-do page and in the department-filtered view. + +You can link the metadata column to one or more departments. Click on the department from the list and then click on **add** to be effective. + +Here, the VFX column is linked to two departments. + +![Department metadata column filtered view](./docs/img/getting-started/department_filtered_view_column.png) + +::: + +::: details Edit meta column +On the global page of the Asset or the shot, click on the arrow to the right of your metadata column and click on **Edit**. + +![Metadata column Edit](./docs/img/getting-started/custom_column_edit.png) +::: + + +You can fill in this information directly on the global spreadsheets page. +The cases are editable. + +![Metadata Column detail](./docs/img/getting-started/custom_column_list_edit.png) + +::: tip +You can batch-modify the metadata column by selecting several entities on the left and then modifying your metadata column. +::: + +::: details Edit by hand +You can also modify the information with the edit button ![Edit button](./docs/img/getting-started/edit_button.png). + +You now see a new line on the edit pop-up. You can select the information from the list, +alternatively, enter the free text or number, check a box, or use the checklist, depending on your previous choice. + +Remember to press the **Confirm** button when you are done. + +![Metadata Column detail](./docs/img/getting-started/edit_asset_custom.png) +::: + +Go to the general spreadsheet page if you need to edit or delete the metadata column. +Nearby the name of your metadata column, click on the arrow ![Metadata Column detail](./docs/img/getting-started/arrow.png). + +::: tip +You can **sort** your global page with this new column. Click the arrow on the right of the column name to open his menu. Then click on **Sort By**. + +You can also **Stick** the metadata column to the left. +::: + +## Create an Edit + +You can track tasks at the **Edit** Level in Kitsu. + +It's especially useful when +You have several edits to track through several validation steps. For example, you can track your whole movie, several trailers, and the First Edit, Fine Edit, Mix, etc. + +::: warning +Per default, the **Edit** page will not be displayed until you have task types for it on your **production library** (setting page) +::: + +To use this page, you need to first create a dedicated task type on your **Global Library** + with the **Edit** attribute. + +See the **Creating a New Task Type** Section to create a new **Task Type**. + +[Creating a New Task Type](../configure-kitsu#task-types) + + +Once you have created your **Task Types**  on your **Global Library**, add them to your +**Production Library**, you will see the **Edit** displayed on the navigation drop-down menu. + + +![Navigation Edit](./docs/img/getting-started/drop_down_menu_edit.png) + + +This new page behaves like the Asset and Shot global page. You can add your edits with the **+ New edit** button. + +You can assign tasks, do the review, change status, etc. + +You can add a metadata column, fill in the description, etc. + +::: tip +Depending on your deliveries, you can also change the resolution per **Edit**. +::: + +::: warning +The detail page is different from the other entities. + +As **Edit** focuses on a specific long video, the detail page looks more like the comment detail page. +::: + +You can **Rename** and **Delete** the Edit entity on this page, as you can for the Asset and shot entities. + +## Create a Breakdown List + +Filling out the breakdown helps you with the assembly of the Asset. With the +breakdown, you have all the details of the assets you need to add to create your +main Asset and we are sure we will omit nothing. + +On the dropdown menu, choose **BREAKDOWN**. + +![drop down Menu breakdown](./docs/img/getting-started/drop_down_menu_breakdown.png) + +On the left of the breakdown page is the asset menu (1); you can choose between those you created. They are the right part of +the screen; all the assets created are available for this production (3). Moreover, in +the middle section, your selection for the Asset (2). + +![Breakdown page](./docs/img/getting-started/breakdown_general_empty.png) + +So now you have to select the Asset you want to cast. + +You can display the assets as text if you don't have thumbnails yet or enlarge the +thumbnails size. + +![Breakdown page text display](./docs/img/getting-started/breakdown_text_display.png) + +You may also realize an asset needs to be added to the list during your breakdown. + +You can create a new asset directly from the breakdown page. Click the **+** on the right of the **All available assets**. + +![Breakdown page create asset](./docs/img/getting-started/breakdown_create_asset.png) + +You can also select multiple assets at once. Click on the first Asset, hold the **shift** key, and click on the last Asset of your selection. + +![Breakdown page global bulk select](./docs/img/getting-started/breakdown_general_bulk_select.png) + +Then click on the assets you want +to assign: characters, backgrounds, ... from the right part (3). +If you have selected multiple assets, your selection is applied to the numerous assets. + +Copy an asset filled with assets and paste this asset selection into another asset. + +You can see a **+1** or **+10** when you pass over the Asset. It's the number +of times you add this Asset, and you can click on it as many times as you need. + +![Breakdown add asset](./docs/img/getting-started/breakdown_add_asset.png) + +You can now see the Asset in the middle of the screen (2). Next +to the Asset's name is the number of times it has been added. In this +example, we have added the character asset Llama two times. + +If you add an asset twice by mistake, you must go to the screen's middle part to select assets for this shot (2). From there, click on +**-1**. When you finish this shot, go on with the other shots. +Your selection is automatically saved. + +![Breakdown remove asset](./docs/img/getting-started/breakdown_remove_asset.png) + +If a new asset is created during the task, return to the asset +page (using the dropdown menu) and create the needed assets. The tasks previously created are applied immediately to these new +assets. However, you have to do the assignment, and then you can +continue with the breakdown. + +Now, your **Breakdown** page should look like this. + +![breakdown add asset bulk](./docs/img/getting-started/breakdown_general_bulk_select_full.png) + +::: details Create a Breakdown List from a CSV File + +You may already have your breakdown list ready in a spreadsheet file. With Kitsu, you have two ways to import it: the first is to import a .csv file directly, and the second is to copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file following Kitsu's recommendation. + +Click on the **import** button ![Import button](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Breakdown import csv file](./docs/img/getting-started/import_breakdown_csv_file.png) + +To see the result, click on the **Preview** button. + +You can check and adjust the name of the columns by previewing your data. + +NB: the **Episode** column is only mandatory for a **TV Show** production. + +![Breakdown import Preview](./docs/img/getting-started/import_breakdown_preview.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, you have your breakdown imported into Kitsu. + +![Breakdown import Preview](./docs/img/getting-started/breakdown_general_bulk_select_full.png) +::: + +::: details Create a Breakdown List by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_breakdown.png) + +Then, go back to the breakdown page on Kitsu, and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started//import_breakdown_csv_file.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_breakdown_preview.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_breakdown_preview.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, all your assets have been imported into Kitsu. + +![Import data copy paste data](./docs/img/getting-started/breakdown_general_bulk_select_full.png) +::: + +## Casting from the Asset Library + +It is also possible to cast assets from the global **Asset Library** into your production. This allows you to cast an already existing asset, without the need to re-create it for each production. + +![Asset Library Display](./docs/img/getting-started/asset_library_display.png) + +To see assets outside of your production from the asset library, click the **Display Library** Button (1) + +Assets from the global asset library will appear, and will be highlighted with a yellow boarder (2). They can then be cast in your breakdown exactly the same as other assets. + +![Asset Library View](./docs/img/getting-started/asset_library_view.png) + +Back on your productions asset page, you can choose to display global assets that have been cast in your production by toggling the **Display Library** button (1). These assets will be highlighted in yellow, indicating that they originate from the global asset library, and not your current production. (2). + +# Create a Video Game Production + +Now that you have designed your workflow in Kitsu and invited more people, it's time to create your production. + +Click on the **Create a new +production** button. + +![Create a production](./docs/img/getting-started/create_production.png) + +Enter your production name, choose **short** as the **type**, and then select your production style (2D, 3D). + + +Then, you must fill in technical information, such as the number of FPS, the Ration, and the Resolution. + +All these data will be used when Kitsu re-encodes the video previews uploaded. + +Then, you need to define your production's start and end dates. + +![Add a production](./docs/img/getting-started/add_production.png) + +You can define your production workflow in the next part, 3 to 6. + +You need to select your asset task type (3), map task type (4), task status (5), and asset types (6). + +![Add a production Pipeline](./docs/img/getting-started/add_production_pipe.png) + +::: tip +To create your **Production Workflow**, you will select Task Types from the Global Library. + +If you realize you missed some Task Types, you can create them later. + +See the [Studio Workflow](../configure-kitsu#studio-workflows) section. +::: + +Then, 7 and 8 are the option parts. If you already have a spreadsheet with your asset/map. + +See the **import CSV** section for more details. + +[Import asset](../videogame#create-an-asset) + +[Import map](../videogame#create-maps-from-an-edl-file) + +Validate everything with the ![All done](./docs/img/getting-started/all_done_go.png) button. + +## Introduction to the Kitsu Global Page + +Welcome to Kitsu's global asset page. + +Let's take a look around. + +![Presentation of the global page](./docs/img/getting-started/presentation_global.png) + +On the top part (1), you have the **global navigation**, which is always visible throughout all the production pages. + +**From left to right:** + +### Main Menu + +By clicking on the top left button, Kitsu![Main menu button](./docs/img/getting-started/main_button.png) (or your Studio logo), you will open the Main Menu. + +On the Main Menu, you will find direct access to your assigned tasks, productions, global and team schedules, the workflow customization page, and the Kitsu settings. + +::: details Main Menu Details +**WORKSPACE** +- My Tasks: your assigned tasks +- My Checks: All the tasks with status **Is Feedback Request** depending on your department(s) +- My Productions: Get back to the selection on the production page. + + +**STUDIO** +- Productions +- People +- Timesheets +- Main Schedule +- Team Schedule +- All tasks +- News Feed +- Entity Search + + +**ADMIN** +- Departments +- Task Types +- Asset Types +- Custom Actions +- Automation +- 3D Backgrounds +- Bots +- Settings +- Logs + +::: warning Permission Visibility +The WORKSPACE section is enabled for all permissions except My Checks, which artists do not see. + +Artist (and above) can also see their own **Timesheets**, and have access to the **Entity Search** +::: + +### Navigation + +You will see the navigation dropdown menu on the right of the main menu icon. + +![Presentation of the global page](./docs/img/getting-started/presentation_global_header.png) + + +You can choose between production. The name of the actual production and actual page are always displayed. + +You can use the dropdown menu to navigate from production to production (if you have several). + +Once you have selected a production, the next dropdown menu will help you navigate through the different pages of this production. + + +::: details Navigation details +The first section is about the tracking of your tasks +- Assets +- maps +- level +- Edits (If you have created specific tasks) + +The second section is more about the side of the production +- Concepts +- Breakdown +- Playlists +- News feed + +The third section is about statistics +- level Stats +- Asset Type Stats + +The fourth section is related to Team Management +- Schedule +- Quotas +- Team + +The fifth section is about the settings of your production +- Settings + +::: tip +You start with the asset page, but you can change your production homepage to other entities (see setting page) +::: + +::: warning +If you realize you need an extra level of navigation as **chapters**, You need to change your production Type to a **TV Show**. + +If, on the contrary, you realize you don't need the **assets** or the **maps**, you need to switch your production type to **Only Assets** or **Only Maps**. +::: + +### Global Search, News, Notification and Documentation + +You have the global search on the right of the navigation dropdown menu. It's a quick access search that will display the four first results. If you need more results and filtering options, see the **Entity Search** page. + + +The next icon ![News](./docs/img/getting-started/canny.png) is a direct link to our news and feedback page. + +You can see all the new features with an animated gif and also add suggestions about the next feature you want to see in Kitsu. + +Next, the bell icon ![Notification](./docs/img/getting-started/notification_icon_on.png) displays your notifications (assignments, comments, tags). The number of unread notifications will be shown on the bell icon. There are various filters to help you stay on top of updates and revisit important ones when needed. You can easily mark notifications as read or unread or quickly filter by watching/non-watching to focus on what matters most and declutter your feed. + +The last icon before your avatar is the documentation button. +![documentation button](./docs/img/getting-started/documentation_button.png), that you are reading right now! + +### Personal Settings + +You can click on your avatar to open your menu (setting, documentation, etc.). + +![Profile enlarged](./docs/img/getting-started/profil_enlarge.png). + +## The Tasks Spreadsheet + +### Entity spreadsheet + +The second part of the screen is common to all the entities (asset, map, level, Edit). This is the global tasks spreadsheet. + +Here, you see the status, assignation, priority, etc, for each task. + +::: tip +The first line and column header of the spreadsheet always appear at the top of the page, even if you scroll down. + +You can also **Stick** other columns to keep them visible at all times. +::: + +### Filters + +The first element on the left is the filter box. For simple filtering, you can type anything you want, such as level, asset type, etc. + +If you need more advanced filtering, please use the filter builder button. + +![Filter Builder](./docs/img/getting-started/filter_builder.png) + +You can then save all the filters and use them as your pages. + +### Simplify the display + +On the right part of the screen, there are some buttons (from left to right) to hide or display the assignation, hide or display the extra column, enlarge or reduce the thumbnail, +![display and Hide option](./docs/img/getting-started/display_hide_option.png) + + +### Import / Export + +batch import thumbnail ![batch import thumbnail](./docs/img/getting-started/add_thumbnails.png), and finally import ![Import button](./docs/img/getting-started/import.png) or export ![export button](./docs/img/getting-started/export.png) data. + +### Metadata column + +Below, you have the name of the column. the (+) next to **Name** ![Add metadata column](./docs/img/getting-started/add_column_custom.png) is here to create a new metadata column. Then, you have the name of the task type column. + +### Customize the view + +On the far right of the screen, next to the scroll bar, is the option to hide and display a text column + +![Display/hide text column](./docs/img/getting-started/visible_column_detail.png). + +### Sum-up of your view + +The last part (4), at the bottom of the screen, is the sum-up of your displayed page. It means the sum-up will update if you filter the page. + +You can see the number of elements (assets or maps), the total number of estimated days, and the total number of days already spent. + +## Create an Asset + +### Create your first asset + +So, now that we have created our production and have a general grasp of the Kitsu interface, it's time to create our very first asset. + +On the asset page, click on **Add assets**. + +![Asset page first time](./docs/img/getting-started/add_assets_first.png) + +::: warning +When you create an asset, your task workflow will be applied, and **all the tasks will be created simultaneously as the asset**. +::: + +A pop-up window opens: + +It asks you to choose the **Asset Type** (1). +If you didn't add a new asset type, Kitsu will provide you with examples such as Characters, Environment, FX, Props, etc. +Let's start with a character. + +::: tip +You can also customize the asset type list and the tasks pipeline. See the guide ( +[Customization of the workflow](../configure-kitsu#asset-types)) for more details +::: + +We give it a **Name** (2) and enter a description that helps the Artist know what to do and quickly identify the asset. + +Click on **Confirm and stay** if you have multiple assets to create. + + +![Create an asset](./docs/img/getting-started/add_asset_popup.png) + +You can change the asset type and keep adding assets. + +::: tip +The newly created asset appears in the background whenever you click on **Confirm and stay**. +::: + +After adding your last asset, click +on **Confirm**. It will create the asset and close the window. + +::: tip +If you click on **Confirm and stay, ** realize you don't have more assets to add, and click on **Close, ** the window will be canceled. +::: + +![Global asset page](./docs/img/getting-started/asset_edit.png) + +You will also see the tasks that are selected for your assets workflow are created at the same time. + + +If you need to add more **Assets**, click the **+ Create assets** button. + +::: details Create Assets from a CSV Spreadsheet File +You may already have your asset list ready in a spreadsheet file. +With Kitsu, you have two ways to import them; the first is to import a `.csv` file and copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file. + +Then, go back to the asset page on Kitsu and click on the **Import** icon. +![Import Icon](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Import csv file](./docs/img/getting-started/import_csv_asset.png) + +To see the result, click on the **Preview** button. +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **chapter** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, you have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_asset.png) +::: + +::: details Create Assets by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_asset.png) + +Then, go back to the asset page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_asset.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_asset.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **chapter** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, you have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_asset.png) +::: + +### See the Details of an Asset + +To see an asset's detail, click on its name. + +![Asset detail](./docs/img/getting-started/asset_detail.png) + +A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. + + +![Asset detail page](./docs/img/getting-started/asset_detail_page.png) + +You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. + + +![Asset detail page](./docs/img/getting-started/asset_detail_page_panel.png) + +You can also access the **Casting**, + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_casting.png) + +**concept** linked to this asset, + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_concept.png) + +The **Schedule** is available if you have previously filled out the task type page data. If the data have already been filled out, you will be able to modify them directly here. + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_schedule.png) + +the **Preview Files** uploaded at various task types, + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_file.png) + +And the **Timelog** if people have filled out their timesheet on the tasks of this asset. + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_timelog.png) + +## Add more tasks after creating the assets + +If you realize **after** creating the assets that the task is missing, you can still add them. + +First, be sure that the missing task type is added to the settings page under the task type tab. + +Then go back to the asset page and click on **+ Add tasks** + +### Update your assets + +You can update your assets at any point, change their name and asset type, modify their description, and add any custom information you added to the global page. + +You can edit assets by going to the asset page, hovering over the asset you want to modify, and then clicking on the **edit** button +![Edit button](./docs/img/getting-started/edit_button.png) (1) on the right side of +the line. + +![Edit an asset](./docs/img/getting-started/asset_edit01.png) + +To extend the description on the main asset page, click on the first words (2), and a pop-up with the full description will open. + + +::: details Update Assets with the CSV Import +You can use the CSV import to update your data quickly. + +You can update the **type** of an asset, the **Assignation**, the **Status** of tasks, and add a **Comment**. + +You need to switch on the option **Update existing data**. Then the lines that will be updated +will be highlighted in blue. + +![Import data copy paste data](./docs/img/getting-started/import_update_asset.png) + +::: + + +::: details Update Assets by Copying / Pasting a Spreadsheet. File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_asset.png) + +Then, go back to the asset page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_asset.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_asset.png) +  +You can check and adjust the name of the columns by previewing your data. + +NB: the **chapter** column is only mandatory for a **TV Show** production. +  +You need to switch on the option **Update existing data**. Then, the lines that will be updated +will be highlighted in blue. + +![Import data copy paste data](./docs/img/getting-started/import_update_asset.png) + +Now, you have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_asset.png) +::: + +## Create a Concept + +### Upload a Concept + +To create a **Concept**, go to the **Concept** page with the navigation menu. + +![Concept Menu](./docs/img/getting-started/menu_concept.png) + +To upload a concept, click the **Add a new reference to concepts** button. + +You can upload one or several concepts at the same time. + +![Concept empty page](./docs/img/getting-started/concept_empty_prod.png) + +Once you upload your previews, the concept page will look like this. + +![Concept filled page](./docs/img/getting-started/concept_filled_prod.png) + + +You can interact with the concept in two ways: click on the picture to see an enlarged view. +The second is to click on the status part to open the **Comment Panel** on the right. + +On the comment panel, you have two options: link a concept to an existing asset or delete it. +You can also comment and change the status of the asset. + +The idea is to have one version per **Concept**. If it's not approved, you need to upload a new concept, not to have multiple versions of the same concept. + +One concept is one task. + +![Concept options](./docs/img/getting-started/concept_options.png) + +### Link a Concept to an Asset + +Once concepts are uploaded, you can link them to the assets. + +You can see the links on the status part of the assets. + +Click on the status part of the concept; it will open the comment panel on the right. + +![Concept Comment Panel](./docs/img/getting-started/concept_comment_panel.png) + +On the comment panel, you have two options at the top: Link a concept to an asset and delete the concept. + +To link an asset, click on the **Link** ![Link button](./docs/img/getting-started/link_icon.png) button. + +Kitsu will display all the **Assets** available to link with the concept uploaded. + +Kitsu will list the linked assets at the top of the comment panel. For now, there are No Links. + + +![Concept link](./docs/img/getting-started/concept_link.png) + +To link an asset, you have to click on it. The name of the linked assets will appear at the top of the screen but also under the preview of the concept. + +![Concept asset linked](./docs/img/getting-started/concept_asset_linked.png) + +Once a concept is linked to an asset, it can be seen on the asset's detail page. + +Return to the asset page, and click on the asset name you want to see the concept. + +![Detail asset page](./docs/img/getting-started/asset_detail_page.png) + +Per default, the casting detail is displayed on the second part of the screen. +Use the dropdown menu to choose the concept. + +![asset detail concept](./docs/img/getting-started/asset_detail_concept.png) + +Once in the concept section, you will see all the concepts created for this asset. You can filter them per status. + +![asset detail concept list](./docs/img/getting-started/asset_detail_concep_listt.png) + +## Create a map + +### Create your first map + +It's time to create **maps** for your production. + +::: Warning +maps are linked to levels in Kitsu. +This means you need to first create a level and then populate this level with maps. +::: + +You need to go to the **maps** page: you can use the +dropdown menu and click on the **mapS**. + +![Drop down menu map](./docs/img/getting-started/drop_down_menu_shot.png) + +Click on the **Add maps** button to start with the map creation. + +![First add maps](./docs/img/getting-started/new_shot.png) + +::: warning +When you create a map, the task workflow you have designed will be applied, and all the tasks will be created at the same time as the map. +::: + +A new pop-up opens for the creation of the maps. +You can now create the levels and the maps. + +Enter the first level, for instance, sq01, +then **add**. + +Now, you can see your level has been created. You need to select the maps you want to add to this level and create them. + +For example, type sh0010 on the maps column, then again **add**. +You can also define Padding for your maps. + +::: tip +If you want to name your maps ten on ten as SH0010, SH0020, SH0030, etc, set the **map Padding** as 10 +::: + +![Manage maps](./docs/img/getting-started/manage_shot.png) + +You can now see that new maps are listed and linked by their level. +You have created the first map of the first level. + +Now, let's add more maps than just one! As you can see, the box already contains your name +code but incremented, so you have to continue to click on **add** to +create more maps. + +![Add maps](./docs/img/getting-started/add_shots.png) + +To add more levels, go to the left part, type the name of your new level, and then click on **add**. +Your second level is selected, and you can now add maps. + +::: tip +If a map is misplaced on a level, you have to edit the map +![Edit button](./docs/img/getting-started/edit_button.png), and change the +level. +![edit map Change level](./docs/img/getting-started/edit_shot.png) + +![Change level](./docs/img/getting-started/change_seq.png) +::: + +## Create maps from an EDL File + +You may already have your maps list ready in an **EDL** file. +With Kitsu, you can directly import your **EDL** file to create the level, map, and several frames, Frame in and frame out. + +On the **Global map Page**, you will see an **Import EDL** button. + +![Import EDL Button](./docs/img/getting-started/import_edl_button.png) + +You can select the naming convention of the video file used during the editing on the pop-up. + +![Import EDL Menu](./docs/img/getting-started/import_edl_menu.png) + +It means the video clip on the editing is named as project_level_map.extension. + +Here is an example of an EDL for the LGC production. + +![EDL Example](./docs/img/getting-started/edl_example.png) + +The video files are named  LGC_100-000.mov, which means LGC is the production name, 100 is the level name, and 000 is the map name. + +Once you are set with the naming convention, you can import the EDL file. + +Then click on **Upload EDL** + +Then, Kitsu will create the maps. + +![EDL map creation](./docs/img/getting-started/edl_shot_creation.png) +::: + +::: details Create maps from a CSV Spreadsheet File +You may already have your maps list ready in a spreadsheet file. +With Kitsu, you have two ways to import them; the first is to import a `.csv` file directly, and the second is to copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file. + +Then, go back to the map page on Kitsu and click on the **Import** icon. +![Import Icon](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Import csv file](./docs/img/getting-started/import_csv_shot.png) + +To see the result, click on the **Preview** button. +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **chapter** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, all your maps are imported into Kitsu, and the task is created according to your **Settings**. + +![Import data copy paste data](./docs/img/getting-started/import_result_shot.png) +::: + +::: details Create maps by Copying / Pasting a Spreadsheet File +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_shot.png) + +Then, go back to the map page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_shot.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_shot.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **chapter** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, all your maps are imported into Kitsu, and the task is created according to your **Settings**. + +![Import data copy paste data](./docs/img/getting-started/import_result_shot.png) +::: + +### See the Details of a map + +If you want to see the details of a map, click on its name. + +![map detail](./docs/img/getting-started/shot_detail.png) + +A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. +You can navigate through each by clicking on the name of the tabs. + +![map detail page](./docs/img/getting-started/shot_detail_page.png) + +You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. + + +![map detail page](./docs/img/getting-started/shot_detail_page_panel.png) + + +You can also access the **Casting**, + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_casting.png) + +The **Schedule** is available if you have previously filled out the task type page data. If the data have already been filled out, you will be able to modify them directly here. + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_schedule.png) + +the **Preview Files** uploaded at various task types, + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_file.png) + +And the **Timelog** if people have filled out their timesheet on the tasks of this asset. + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_timelog.png) + +## Add more tasks after creating the maps + +If you realize after creating the maps that tasks are missing, you can still add them. + +First, be sure that the missing task type is added to the settings page under the task type tab. + +Then go back to the map page and click on + Add tasks. + +### Update your maps + +You can update your maps at any point, change their name and level, modify their description, and add any custom information you added to the global page. + +You can edit maps by going to the map page, hovering over the map you want to modify, and then clicking on the **edit** button +![Edit button](./docs/img/getting-started/edit_button.png) (1) on the right side of the line. + +![Edit an asset](./docs/img/getting-started/asset_edit01.png) + +To extend the description on the main map page, click on the first words (2), and a pop-up with the full description will open. + + +::: details Update maps Information with CSV Import +You can use the **CSV Import** to update your data as the **NB Frames**, **Frame IN**, **Frame Out**, or any custom **Metadata column**. + +You can update the **Assignation**, and the **Status** of tasks and add a **Comment**. + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_shot.png) + +Then, go back to the map page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_shot.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_shot.png) +  +You need to switch on the **Option: Update existing data**. +The updated maps will be in blue. + +  +NB: the **chapter** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/update_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, all your maps are imported into Kitsu, and the task is created according to your **Settings**. + +![Import data copy paste data](./docs/img/getting-started/import_result_shot.png) +::: + +## Add the number of Frames and Frame ranges to the maps + +At this stage of the production, the animatic should be done. This means you have +the length (**number of frames**, **Frame range In**, and **Frame range Out**) for each map. You can +add this information to the spreadsheet. This way, you are sure that all +the frames are calculated and none are missing or over-computed. + +::: warning +If you have created your maps and level by hand, +the **Frame** column will be hidden. You must edit at least one map and fill in the number of frames to display the **Frame** column. +The column will be displayed if you have created your maps and imported the number of frames with a CSV/spreadsheet. +::: + + + +You need to edit the maps to fill in the frame range information. Click on the +edit button ![Edit button](./docs/img/getting-started/edit_button.png) on the right +side of the map line. + +![edit map Change level](./docs/img/getting-started/edit_shot.png) + +On the new window, you can enter the maps **In** and **Out**. Then, save by clicking the **Confirm** button. + +![map edit page](./docs/img/getting-started/shot_edit.png) + +Now, the frame range appears on the map page's general spreadsheet. + +![map edit page](./docs/img/getting-started/shot_framerange_global.png) + +Now that you have unlocked the **Frames**, **In**, and **Out** columns, you can fill them +directly from the global map page. + +Click on the case you want to fill in and add the data. + +::: tip +If you enter the **Frame In** and **Frame Out**, Kitsu automatically calculates the **Number of Frame**. +::: + +![map edit page](./docs/img/getting-started/shot_framerange_global_edit.png) + +You can also use the **CSV Import** to update your frame range quickly. + + [Update maps information with CSV Import](../videogame#update-your-maps) + +You can also access the map values history. + +![map framerange detail](./docs/img/getting-started/shot_framerange_detail.png) + +![map Values History](./docs/img/getting-started/shot_values_history.png) + +## Create Custom Metadata Columns + +To add more information on the general spreadsheet pages, you must create a custom **metadata column**. + +You may have extra information to add to your pages, such as the **level of difficulties**, **Weather**, **Tag**, etc. You can store all text (or number) information in the custom metadata column. + + +Click on the **+** near the Name column. + +![Metadata Column](./docs/img/getting-started/add_column_custom.png) + +With the **Type** option, you can choose how you want to store your information: +- a free **Text**, +- a **Number**, +- a **Checkbox**, +- a **List of value**, +- a **List of tags**, +- a **Checklist**. + +![Metadata Column detail](./docs/img/getting-started/custom_column_detail.png) + +::: warning +The **Text**, **Number**, and **Checkbox** allow you to add different information for each entity. You don't have to plan it first. + +The **List of value**, **List of tags**, and **Checklist** give you the same choice for each entity. Moreover, it has to be filled now. + +![Metadata Column list](./docs/img/getting-started/custom_column_list.png) + +Type the list elements below **Available values**, and confirm them by clicking on **Add value**. +::: + +You can also link the **metadata column** to one or several **departments**. + +::: tip +Link a metadata column to a department. The artists/supervisors will see it on their to-do page and in the department-filtered view. + +You can link the metadata column to one or more departments. Click on the department from the list and then click on **add** to be effective. + +Here, the VFX column is linked to two departments. + +![Department metadata column filtered view](./docs/img/getting-started/department_filtered_view_column.png) + +::: + +::: details Edit meta column +On the asset's global page or the map, click on the arrow to the right of your metadata column and click on **Edit**. + +![Metadata column Edit](./docs/img/getting-started/custom_column_edit.png) +::: + + +You can fill in this information directly on the global spreadsheets page. +The cases are editable. + +![Metadata Column detail](./docs/img/getting-started/custom_column_list_edit.png) + +::: tip +You can batch-modify the metadata column by selecting several entities on the left and then modifying your metadata column. +::: + +::: details Edit by hand +You can also modify the information with the edit button ![Edit button](./docs/img/getting-started/edit_button.png). + +You now see a new line on the edit pop-up. You can select the information from the list, +alternatively, enter the free text or number, check a box, or use the checklist, depending on your previous choice. + +Remember to press the **Confirm** button when you are done. + +![Metadata Column detail](./docs/img/getting-started/edit_asset_custom.png) +::: + +Go to the general spreadsheet page if you need to edit or delete the metadata column. +Nearby the name of your metadata column, click on the arrow ![Metadata Column detail](./docs/img/getting-started/arrow.png). + +::: tip +You can **sort** your global page with this new column. Click the arrow on the right of the column name to open his menu. Then click on **Sort By**. + +You can also **Stick** the metadata column to the left. +::: + +## Create a level + +In Kitsu, you can also track tasks at the **level** Level. +It's especially useful when +you have macro tasks to track, like Story and color Board, Color Grading, etc. + +Use the navigation menu to go to the **levels** page. + +![Navigation levels](./docs/img/getting-started/drop_down_menu_sequence_page.png) + +::: warning +This new page behaves like the asset and map global page. + +To use this page, You first need to create dedicated task types on your **Global Library** + with the **level** attribute. + +See the **Creating a New Task Type** Section to create a new **Task Type**. + +[Creating a New Task Type](../configure-kitsu#task-types) + +Once you have created your **Task Types**  on your **Global Library**, add them to your +**Production Library** (setting page). +::: + +Once your task types are ready on the settings page, you need to create a level (the same as the assets or maps). + +This new page behaves like the asset and map global page. You can add your edits with the **+ New level** button. + +You can assign tasks, do the review, change status, etc. + +You can add a metadata column, fill in the description, etc. + + +::: tip +You can create a level directly from here (+New level button) or create a level linked to your maps from the global map page. +::: + +On this page, you can **Rename** and **Delete** the level entity, as well as the asset and map entity. + +If you click on the name of a level, you will see the details page for this level. + +![level detailed page](./docs/img/getting-started/sequence_detail_page.png) + +On the detailed page, you can access the casting of the level. +You can see all the assets used at the entire level. + +You can also access the schedule, Preview Files, Activity, and Timelog of the level **tasks**. + +## Create an Edit + +You can track tasks at the **Edit** Level in Kitsu. + +It's especially useful when +You have several edits to track through several validation steps. For example, you can track your whole movie, several trailers, and the First Edit, Fine Edit, Mix, etc. + +::: warning +Per default, the **Edit** page will not be displayed until you have task types for it on your **production library** (setting page) +::: + + + +To use this page, you need to first create a dedicated task type on your **Global Library** + with the **Edit** attribute. + +See the **Creating a New Task Type** Section to create a new **Task Type**. + +[Creating a New Task Type](../configure-kitsu#task-types) + + +Once you have created your **Task Types**  on your **Global Library**, add them to your +**Production Library**, you will see the **Edit** displayed on the navigation drop-down menu. + + +![Navigation Edit](./docs/img/getting-started/drop_down_menu_edit.png) + + +This new page behaves like the asset and map global page. You can add your edits with the **+ New edit** button. + +You can assign tasks, do the review, change status, etc. + +You can add a metadata column, fill in the description, etc. + +::: tip +Depending on your deliveries, you can also change the resolution per **Edit**. +::: + +::: warning +The detail page is different from the other entities. + +As **Edit** focuses on a specific long video, the detail page looks more like the comment detail page. +::: + +You can **Rename** and **Delete** the Edit entity on this page, as you can for the asset and map entities. + +## Create a Breakdown List + +Filling out the breakdown helps you with the assembly of the maps. With the +breakdown, you have all the details of the assets you need to add to create your +map, and we are sure to omit nothing. + +On the dropdown menu, choose **BREAKDOWN**. + +![drop down Menu breakdown](./docs/img/getting-started/drop_down_menu_breakdown.png) + +On the left of the breakdown page is the chapter/level/map menu (1); you can choose between those you created. They are the right part of +the screen; all the assets created are available for this production (main pack and chapters) (3). Moreover, in +the middle section, it is your selection for the map (2). + +![Breakdown page](./docs/img/getting-started/breakdown_general_empty.png) + +So now you have to select the map you want to cast. + +You can display the assets as text if you don't have thumbnails yet or enlarge the +thumbnails size. + +![Breakdown page text display](./docs/img/getting-started/breakdown_text_display.png) + +You may also realize an asset needs to be added to the list during your breakdown. + +You can create a new asset directly from the breakdown page. Click the **+** on the right of the **All available assets**. + +![Breakdown page create asset](./docs/img/getting-started/breakdown_create_asset.png) + +You can also select multiple maps at once. Click on the first map, hold the **shift** key, and click on the last map of your selection. + +![Breakdown page global bulk select](./docs/img/getting-started/breakdown_general_bulk_select.png) + +Then click on the assets you want +to assign: characters, backgrounds, ... from the right part (3). +If you have selected multiple maps, your selection is applied to the numerous maps. + +Copy a map filled with assets and paste this asset selection into another map. + +You can see a **+1** or **+10** when you pass over the asset. It's the number +of times you add this asset, and you can click on it as many times as you need. + +![Breakdown add asset](./docs/img/getting-started/breakdown_add_asset.png) + +You can also link all your assets to chapters on a TV show without specifying a level or map. + +![Breakdown chapter asset](./docs/img/getting-started/breakdown_episode.png) + +This way, you can link all your assets to one or several chapters before the storyboard/animatic stage. + +You can now see the asset in the middle of the screen (2). Next +to the asset's name is the number of times it has been added. In this +example, we have added the character asset Llama two times. + + +If you add an asset twice by mistake, you must go to the screen's middle part to select assets for this map (2). From there, click on +**-1**. When you finish this map, go on with the other maps. +Your selection is automatically saved. + +![Breakdown remove asset](./docs/img/getting-started/breakdown_remove_asset.png) + +If a new asset is created during the storyboard, return to the asset +page (using the dropdown menu) and create the needed assets. The tasks previously created are applied immediately to these new +assets. However, you have to do the assignment, and then you can +continue with the breakdown. + +Now, your **Breakdown** page should look like this. + +![breakdown add asset bulk](./docs/img/getting-started/breakdown_general_bulk_select_full.png) + +You can also make a breakdown list for your assets if you need to assemble them and keep track of the separate parts. + +On the top left corner of the screen, choose **asset** in the dropdown menu below **FOR**. + +![Breakdown asset menu](./docs/img/getting-started/breakdown_asset_menu.png) + +You can now access a second dropdown menu to choose your asset type: **Character**, **Environment**, **Props**, **FX**, ... + +![Breakdown asset type](./docs/img/getting-started/breakdown_asset_menu_type.png) + +You can complete the asset breakdown page the same way you would the maps. First, select one or more assets on the left part and then add the right part's elements. + +::: details Create a Breakdown List from a CSV File + +You may already have your breakdown list ready in a spreadsheet file. With Kitsu, you have two ways to import it: the first is to import a .csv file directly, and the second is to copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file following Kitsu's recommendation. + +Click on the **import** button ![Import button](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Breakdown import csv file](./docs/img/getting-started/import_breakdown_csv_file.png) + +To see the result, click on the **Preview** button. + +You can check and adjust the name of the columns by previewing your data. + +NB: the **chapter** column is only mandatory for a **TV Show** production. + +![Breakdown import Preview](./docs/img/getting-started/import_breakdown_preview.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, you have your breakdown imported into Kitsu. + +![Breakdown import Preview](./docs/img/getting-started/breakdown_general_bulk_select_full.png) +::: + +::: details Create a Breakdown List by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_breakdown.png) + +Then, go back to the breakdown page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started//import_breakdown_csv_file.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_breakdown_preview.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **chapter** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_breakdown_preview.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, all your assets have been imported into Kitsu. + +![Import data copy paste data](./docs/img/getting-started/breakdown_general_bulk_select_full.png) +::: + +## Casting from the Asset Library + +It is also possible to cast assets from the global **Asset Library** into your production. This allows you to cast an already existing asset, without the need to re-create it for each production. + +![Asset Library Display](./docs/img/getting-started/asset_library_display.png) + +To see assets outside of your production from the asset library, click the **Display Library** Button (1) + +Assets from the global asset library will appear, and will be highlighted with a yellow boarder (2). They can then be cast in your breakdown exactly the same as other assets. + +![Asset Library View](./docs/img/getting-started/asset_library_view.png) + +Back on your productions asset page, you can choose to display global assets that have been cast in your production by toggling the **Display Library** button (1). These assets will be highlighted in yellow, indicating that they originate from the global asset library, and not your current production. (2). + +## Introduction to Asset State: Ready For + +Most of the time, you don't need to wait for an asset's tasks to be approved to use it on a map task. + +For example, when an asset is approved at the **Concept** stage, it can be used for the **Storyboard** stage. +Then, when it's approved at the **Modeling** stage, you can use it for the **Layout** stage and so on. + +That's exactly what the asset state **Ready For** is doing: let you know the state of the tasks of an asset and compare its usability for the map tasks. + +Now that we have filled out our breakdown, we know exactly which asset is used on every map. + +First, we need to define an asset's state relative to its task status. You can modify the **Ready for** by clicking on a cell. You will see a dropdown menu with the map task. + +![Asset Status](./docs/img/getting-started/asset_status.png) + +::: tip +You can use the **automations** to do the heavy lifting. + +You can set automation with the **ready for** trigger. +::: + +Now that we have changed some asset states to **Ready for**, we can see the result on the map page. + +You can notice that some white boxes are now **Green**: all the assets in this map are ready for this specific task. + +![Asset Status](./docs/img/getting-started/asset_status_box.png) + +If you see the white box, Kitsu will display how many assets are ready for this task. + +![Asset Status](./docs/img/getting-started/asset_status_empty.png) + +::: tip +If you don't see any boxes, no assets are cast for this map. +::: +  +Then, you can click on the map's name to go to its detail page. +Then, you will see all the assets cast in this map and their status. + +![Asset Status](./docs/img/getting-started/asset_status_detail.png) + +It's the fastest way to know if you can start a map for a specific task. + +# Create a NFT Collection + +Now that you have designed your workflow in Kitsu and invited more people, it's time to create your production. + +Click on the **Create a new +production** button. + +![Create a production](./docs/img/getting-started/create_production.png) + +Enter your production name, choose **short** as the **type**, and then select your production style (2D, 3D). + +Then, you must fill in technical information, such as the number of FPS, the Ration, and the Resolution. + +All these data will be used when Kitsu re-encodes the video previews uploaded. + +Then, you need to define your production's start and end dates. + +![Add a production](./docs/img/getting-started/add_production.png) + +You can define your production workflow in the next part, 3 to 6. + + + +You need to select your asset task type (3), NFT Collection task type (4), task status (5), and asset types (6). + +![Add a production Pipeline](./docs/img/getting-started/add_production_pipe.png) + + +::: tip +To create your **Production Workflow**, you will select Task Types from the Global Library. + +If you realize you missed some Task Types, you can create them later. + +See the [Studio Workflow](../configure-kitsu#studio-workflows) section. +::: + +Then, 7 and 8 are the option parts. If you already have a spreadsheet with your asset/NFT Collection. + +See the **import CSV** section for more details. + +[Import asset](../nft#create-an-asset) + +[Import NFT Collection](../nft#create-a-nft-collection) + +Validate everything with the ![All done](./docs/img/getting-started/all_done_go.png) button. + +## Introduction to the Kitsu Global Page + +Welcome to Kitsu's global asset page. + +Let's take a look around. + +![Presentation of the global page](./docs/img/getting-started/presentation_global.png) + +On the top part (1), you have the **global navigation**, which is always visible throughout all the production pages. + +**From left to right:** + +### Main Menu + +By clicking on the top left button, Kitsu![Main menu button](./docs/img/getting-started/main_button.png) (or your Studio logo), you will open the Main Menu. + +On the Main Menu, you will find direct access to your assigned tasks, productions, global and team schedules, the workflow customization page, and the Kitsu settings. + +::: details Main Menu Details +**WORKSPACE** +- My Tasks: your assigned tasks +- My Checks: All the tasks with status **Is Feedback Request** depending on your department(s) +- My Productions: Get back to the selection on the production page. + + +**STUDIO** +- Productions +- People +- Timesheets +- Main Schedule +- Team Schedule +- All tasks +- News Feed +- Entity Search + + +**ADMIN** +- Departments +- Task Types +- Asset Types +- Custom Actions +- Automation +- 3D Backgrounds +- Bots +- Settings +- Logs + +::: warning Permission Visibility +The WORKSPACE section is enabled for all permissions except My Checks, which artists do not see. + +Artist (and above) can also see their own **Timesheets**, and have access to the **Entity Search** +::: + +### Navigation + +You will see the navigation dropdown menu on the right of the main menu icon. + +![Presentation of the global page](./docs/img/getting-started/presentation_global_header.png) + + +You can choose between production. The name of the actual production and actual page are always displayed. + +You can use the dropdown menu to navigate from production to production (if you have several). + +Once you have selected a production, the next dropdown menu will help you navigate through the different pages of this production. + + +::: details Navigation details +The first section is about the tracking of your tasks +- Assets +- NFT Collections +- Sequence +- Edits (If you have created specific tasks) + +The second section is more about the side of the production +- Concepts +- Breakdown +- Playlists +- News feed + +The third section is about statistics +- Sequence Stats +- Asset Type Stats + +The fourth section is related to Team Management +- Schedule +- Quotas +- Team + +The fifth section is about the settings of your production +- Settings + +::: tip +You start with the asset page, but you can change your production homepage to other entities (see setting page) +::: + +::: warning +If you realize you need an extra level of navigation, such as **Episodes**, you need to change your production Type to a **TV Show**. + +If, on the contrary, you realize you don't need the **assets** or the **NFT Collections**, you also need to switch your production type to **Only Assets** or **Only NFT Collections**. +::: + +### Global Search, News, Notification and Documentation + +You have the global search on the right of the navigation dropdown menu. It's a quick access search that will display the four first results. If you need more results and filtering options, see the **Entity Search** page. + + +The next icon ![News](./docs/img/getting-started/canny.png) is a direct link to our news and feedback page. + +You can see all the new features with an animated gif and also add suggestions about the next feature you want to see in Kitsu. + +Next, the bell icon ![Notification](./docs/img/getting-started/notification_icon_on.png) displays your notifications (assignments, comments, tags). The number of unread notifications will be shown on the bell icon. There are various filters to help you stay on top of updates and revisit important ones when needed. You can easily mark notifications as read or unread or quickly filter by watching/non-watching to focus on what matters most and declutter your feed. + +The last icon before your avatar is the documentation button. +![documentation button](./docs/img/getting-started/documentation_button.png), that you are reading right now! + + +### Personal Settings + +You can click on your avatar to open your menu (setting, documentation, etc.). + +![Profile enlarged](./docs/img/getting-started/profil_enlarge.png). + +## The Tasks Spreadsheet + +### Entity spreadsheet + +The second part of the screen is common to all the entities (asset, NFT Collection, sequence, Edit). This is the global tasks spreadsheet. + +Here, you see the status, assignation, priority, etc, for each task. + +::: tip +The first line and column header of the spreadsheet always appear at the top of the page, even if you scroll down. + +You can also **Stick** other columns to keep them visible at all times. +::: + +### Filters + +The first element on the left is the filter box. You can type anything you want for simple filtering, sequence, asset type, etc. + +If you need more advanced filtering, please use the filter builder button. + +![Filter Builder](./docs/img/getting-started/filter_builder.png) + +You can then save all the filters and use them as your pages. + +### Simplify the display + +On the right part of the screen, there are some buttons (from left to right) to hide or display the assignation, hide or display the extra column, enlarge or reduce the thumbnail, +![display and Hide option](./docs/img/getting-started/display_hide_option.png) + +### Import / Export + +batch import thumbnail ![batch import thumbnail](./docs/img/getting-started/add_thumbnails.png), and finally import ![Import button](./docs/img/getting-started/import.png) or export ![export button](./docs/img/getting-started/export.png) data. + +### Metadata column + +Below, you have the name of the column. the (+) next to **Name** ![Add metadata column](./docs/img/getting-started/add_column_custom.png) is here to create a new metadata column. Then, you have the name of the task type column. + +### Customize the view + +On the far right of the screen, next to the scroll bar, is the option to hide and display a text column + +![Display/hide text column](./docs/img/getting-started/visible_column_detail.png). + + +### Sum-up of your view +The last part (4), at the bottom of the screen, is the sum-up of your displayed page. It means the sum-up will update if you filter the page. + +You can see the number of elements (assets or NFT Collections), the total number of estimated days, and the total number of days already spent. + +## Create an Asset + +### Create your first asset + +So, now that we have created our production and have a general grasp of the Kitsu interface, it's time to create our very first asset. + +On the asset page, click on **Add assets**. + +![Asset page first time](./docs/img/getting-started/add_assets_first.png) + +::: warning +When you create an asset, your task workflow will be applied, and **all the tasks will be created simultaneously as the asset**. +::: + +A pop-up window opens: + +It asks you to choose the **Asset Type** (1). +If you didn't add a new asset type, Kitsu will provide you with examples such as Characters, Environment, FX, Props, etc. +Let's start with a character. + +::: tip +You can also customize the asset type list and the tasks pipeline. See the guide ( +[Customization of the workflow](../configure-kitsu#asset-types)) for more details +::: + +We give it a **Name** (2) and enter a description that helps the Artist know what to do and quickly identify the asset. + +Click on **Confirm and stay** if you have multiple assets to create. + + +![Create an asset](./docs/img/getting-started/add_asset_popup.png) + +You can change the asset type and keep adding assets. + +::: tip +The newly created asset appears in the background whenever you click on **Confirm and stay**. +::: + +After adding your last asset, click +on **Confirm**. It will create the asset and close the window. + +::: tip +If you click on **Confirm and stay, ** realize you don't have more assets to add, and click on **Close, ** the window will be canceled. +::: + +![Global asset page](./docs/img/getting-started/asset_edit.png) + +You will also see the tasks that are selected for your assets workflow are created at the same time. + + +If you need to add more **Assets**, click the **+ Create assets** button. + +::: details Create Assets from a CSV Spreadsheet File +You may already have your asset list ready in a spreadsheet file. +With Kitsu, you have two ways to import them; the first is to import a `.csv` file and copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file. + +Then, go back to the asset page on Kitsu and click on the **Import** icon. +![Import Icon](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Import csv file](./docs/img/getting-started/import_csv_asset.png) + +To see the result, click on the **Preview** button. +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, you have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_asset.png) +::: + +::: details Create Assets by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_asset.png) + +Then, go back to the asset page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_asset.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_asset.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_preview_data.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, you have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_asset.png) +::: + +### See the Details of an Asset + +To see an asset's detail, click on its name. + +![Asset detail](./docs/img/getting-started/asset_detail.png) + +A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. + + +![Asset detail page](./docs/img/getting-started/asset_detail_page.png) + +You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. + + +![Asset detail page](./docs/img/getting-started/asset_detail_page_panel.png) + + + +You can also access the **Casting**, + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_casting.png) + +**concept** linked to this asset, + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_concept.png) + +The **Schedule** is available if you have previously filled out the task type page data. If the data have already been filled out, you will be able to modify them directly here. + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_schedule.png) + +the **Preview Files** uploaded at various task types, + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_file.png) + +And the **Timelog** if people have filled out their timesheet on the tasks of this asset. + +![Asset detail casting](./docs/img/getting-started/asset_detail_page_timelog.png) + +## Add more tasks after creating the assets + +If you realize **after** creating the assets that the task is missing, you can still add them. + +First, be sure that the missing task type is added to the settings page under the task type tab. + +Then go back to the asset page and click on **+ Add tasks** + +### Update your assets + +You can update your assets at any point, change their name and asset type, modify their description, and add any custom information you added to the global page. + +You can edit assets by going to the asset page, hovering over the asset you want to modify, and then clicking on the **edit** button +![Edit button](./docs/img/getting-started/edit_button.png) (1) on the right side of +the line. + +![Edit an asset](./docs/img/getting-started/asset_edit01.png) + +To extend the description on the main asset page, click on the first words (2), and a pop-up with the full description will open. + + +::: details Update Assets with the CSV Import +You can use the CSV import to update your data quickly. + +You can update the **type** of an asset, the **Assignation**, the **Status** of tasks, and add a **Comment**. + +You need to switch on the option **Update existing data**. Then, the lines that will be updated +will be highlighted in blue. + +![Import data copy paste data](./docs/img/getting-started/import_update_asset.png) + +::: + + +::: details Update Assets by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_asset.png) + +Then, go back to the asset page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_asset.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_asset.png) +  +You can check and adjust the name of the columns by previewing your data. + +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +You need to switch on the option **Update existing data**. Then, the lines that will be updated +will be highlighted in blue. + +![Import data copy paste data](./docs/img/getting-started/import_update_asset.png) + +Now, you have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_asset.png) +::: + +## Create a Concept + +### Upload a Concept + +To create a **Concept**, go to the **Concept** page with the navigation menu. + +![Concept Menu](./docs/img/getting-started/menu_concept.png) + +To upload a concept, click the **Add a new reference to concepts** button. + +You can upload one or several concepts at the same time. + +![Concept empty page](./docs/img/getting-started/concept_empty_prod.png) + +Once you upload your previews, the concept page will look like this. + +![Concept filled page](./docs/img/getting-started/concept_filled_prod.png) + + +You can interact with the concept in two ways: click on the picture to see an enlarged view. +The second is to click on the status part to open the **Comment Panel** on the right. + +On the comment panel, you have two options: link a concept to an existing asset or delete it. +You can also comment and change the status of the asset. + +The idea is to have one version per **Concept**. If it's not validated, you need to upload a new concept, not to have multiple versions of the same concept. + +One concept is one task. + + +![Concept options](./docs/img/getting-started/concept_options.png) + +### Link a Concept to an Asset + +Once concepts are uploaded, you can link them to the assets. + +You can see the links on the status part of the assets. + +Click on the status part of the concept; it will open the comment panel on the right. + +![Concept Comment Panel](./docs/img/getting-started/concept_comment_panel.png) + +On the comment panel, you have two options at the top: Link a concept to an asset and delete the concept. + +To link an asset, click on the **Link** ![Link button](./docs/img/getting-started/link_icon.png) button. + +Kitsu will display all the **Assets** available to link with the concept uploaded. + +Kitsu will list the linked assets at the top of the comment panel. For now, there are No Links. + + +![Concept link](./docs/img/getting-started/concept_link.png) + +To link an asset, click on it. The linked assets' names will appear at the top of the screen under the preview of the concept. + + +![Concept asset linked](./docs/img/getting-started/concept_asset_linked.png) + +Once a concept is linked to an asset, it can be seen on the asset's detail page. + +Return to the asset page, and click on the asset name you want to see the concept. + +![Detail asset page](./docs/img/getting-started/asset_detail_page.png) + +Per default, the casting detail is displayed on the second part of the screen. +Use the dropdown menu to choose the concept. + +![asset detail concept](./docs/img/getting-started/asset_detail_concept.png) + +Once in the concept section, you will see all the concepts created for this asset. You can filter them per status. + +![asset detail concept list](./docs/img/getting-started/asset_detail_concep_listt.png) + +## Create a NFT Collection + +### Create your first NFT Collection + +It's time to create **NFT Collections** for your production. + +::: warning +NFT Collections are linked to Sequences in Kitsu. +You must create a sequence and then populate it with NFT Collections. +::: + +You need to go to the **NFT Collections** page: you can use the +dropdown menu and click on the **NFT CollectionS**. + +![Drop down menu NFT Collection](./docs/img/getting-started/drop_down_menu_shot.png) + +Click on the **Add NFT Collections** button to start with the NFT Collection creation. + +![First add NFT Collections](./docs/img/getting-started/new_shot.png) + +::: warning +When you create an NFT Collection, the task workflow you have designed will be applied, and all the tasks will be created at the same time as the NFT Collection. +::: + +A new pop-up opens for the creation of the NFT Collections. +You can now create the sequences and the NFT Collections. + +Enter the first sequence, for instance, sq01, +then **add**. + +Now, you can see your sequence has been created. To add NFT Collections to this sequence, you need to select it and create your NFT Collections. + +For example, type sh0010 on the NFT Collections column, then again **add**. +You can also define padding for your NFT Collections. + +::: tip +If you want to name your NFT Collections 10 on ten as SH0010, SH0020, SH0030, etc, set the **NFT Collection Padding** as 10 +::: + +![Manage NFT Collections](./docs/img/getting-started/manage_shot.png) + +You can now see that new NFT Collections are listed and linked by their sequence. +You have created the first NFT Collection of the first sequence. + +Now, let's add more NFT Collections than just one! As you can see, the box already contains your name +code but incremented, so you have to continue to click on **add** to +create more NFT Collections. + +![Add NFT Collections](./docs/img/getting-started/add_shots.png) + +To add more sequences, go to the left part, type the name of your new sequence, and then click on **add**. +Your second sequence is selected, and you can now add NFT Collections. + +::: tip +If a NFT Collection is misplaced on a sequence, you have to edit the NFT Collection +![Edit button](./docs/img/getting-started/edit_button.png), and change the +sequence. +![edit NFT Collection Change sequence](./docs/img/getting-started/edit_shot.png) + +![Change sequence](./docs/img/getting-started/change_seq.png) +::: + +### See the Details of an NFT Collection + +If you want to see the details of an NFT Collection, click on its name. + +![NFT Collection detail](./docs/img/getting-started/shot_detail.png) + +A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. +You can navigate through each by clicking on the name of the tabs. + +![NFT Collection detail page](./docs/img/getting-started/shot_detail_page.png) + +You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. + + +![NFT Collection detail page](./docs/img/getting-started/shot_detail_page_panel.png) + + +You can also access the **Casting**, + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_casting.png) + + +The **Schedule** is available if you have previously filled out the task type page data. If the data have already been filled out, you will be able to modify them directly here. + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_schedule.png) + +the **Preview Files** uploaded at various task types, + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_file.png) + +And the **Timelog** if people have filled out their timesheet on the tasks of this asset. + +![Asset detail casting](./docs/img/getting-started/shot_detail_page_timelog.png) + +## Add more tasks after creating the NFT Collections +If you realize after creating the NFT Collections that tasks are missing, you can still add them. + +First, be sure that the missing task type is added to the settings page under the task type tab. + +Then go to the NFT Collection page and click + Add tasks. + +### Update your NFT Collections + +At any point, you can update your NFT Collections, change their name and sequence, modify their description, and any custom information you added to the global page. + +You can edit NFT Collections by going to the NFT Collection page, hovering over the NFT Collection you want to modify, and then clicking on the **edit** button +![Edit button](./docs/img/getting-started/edit_button.png) (1) on the right side of the line. + +![Edit an asset](./docs/img/getting-started/asset_edit01.png) + +To extend the description on the main NFT Collection page, click on the first words (2), and a pop-up with the full description will open. + + +::: details Update NFT Collections Information with CSV Import +You can use the **CSV Import** to update your data as the **NB Frames**, **Frame IN**, **Frame Out**, or any custom **Metadata column**. + +You can update the **Assignation**, and the **Status** of tasks and add a **Comment**. + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_shot.png) + +Then, go back to the NFT Collection page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started/import_pastcsvdata_shot.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_pastcsvdata2_shot.png) +  +You need to switch on the **Option: Update existing data**. +The updated NFT Collections will be in blue + +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/update_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, you have imported all your NFT Collections into Kitsu and created the task according to your Settings. + +![Import data copy paste data](./docs/img/getting-started/import_result_shot.png) +::: + +## Create Custom Metadata Columns + +To add more information on the general spreadsheet pages, you must create a custom **metadata column**. + +You may have extra information to add to your pages, such as the **level of difficulties**, **Weather**, **Tag**, etc. You can store all text (or number) information in the custom metadata column. + + +Click on the **+** near the Name column. + +![Metadata Column](./docs/img/getting-started/add_column_custom.png) + + + +With the **Type** option, you can choose how you want to store your information: +- a free **Text**, +- a **Number**, +- a **Checkbox**, +- a **List of value**, +- a **List of tags**, +- a **Checklist**. + +![Metadata Column detail](./docs/img/getting-started/custom_column_detail.png) + +::: warning +The **Text**, **Number**, and **Checkbox** allow you to add different information for each entity. You don't have to plan it first. + +The **List of value**, **List of tags**, and **Checklist** give you the same choice for each entity. Moreover, it has to be filled now. + +![Metadata Column list](./docs/img/getting-started/custom_column_list.png) + +Type the list elements below **Available values**, and confirm them by clicking on **Add value**. +::: + +You can also link the **metadata column** to one or several **departments**. + +::: tip +Link a metadata column to a department. The artists/supervisors will see it on their to-do page and in the department-filtered view. + +You can link the metadata column to one or more departments. Click on the department from the list and then click on **add** to be effective. + +Here, the VFX column is linked to two departments. + +![Department metadata column filtered view](./docs/img/getting-started/department_filtered_view_column.png) + +::: + +::: details Edit meta column +On the asset's global page or the NFT Collection's global page, click on the arrow to the right of your metadata column and click on **Edit**. + +![Metadata column Edit](./docs/img/getting-started/custom_column_edit.png) +::: + + +You can fill in this information directly on the global spreadsheets page. +The cases are editable. + +![Metadata Column detail](./docs/img/getting-started/custom_column_list_edit.png) + +::: tip +You can batch-modify the metadata column by selecting several entities on the left and then modifying your metadata column. +::: + +::: details Edit by hand +You can also modify the information with the edit button ![Edit button](./docs/img/getting-started/edit_button.png). + +You now see a new line on the edit pop-up. You can select the information from the list, +alternatively, enter the free text or number, check a box, or use the checklist, depending on your previous choice. + +Remember to press the **Confirm** button when you are done. + +![Metadata Column detail](./docs/img/getting-started/edit_asset_custom.png) +::: + +Go to the general spreadsheet page if you need to edit or delete the metadata column. +Nearby the name of your metadata column, click on the arrow ![Metadata Column detail](./docs/img/getting-started/arrow.png). + +::: tip +You can **sort** your global page with this new column. Click the arrow on the right of the column name to open his menu. Then click on **Sort By**. + +You can also **Stick** the metadata column to the left. +::: + +## Create a Breakdown List + +Filling out the breakdown helps you with the assembly of the NFT Collections. With the +breakdown, you have all the details of the assets you need to add to create your +NFT Collection and we are sure we will omit nothing. + +On the dropdown menu, choose **BREAKDOWN**. + +![drop down Menu breakdown](./docs/img/getting-started/drop_down_menu_breakdown.png) + +On the left of the breakdown page is the episode/sequence/NFT Collection menu (1); you can choose between those you created. They are the right part of +the screen; all the assets created are available for this production (main pack and episodes) (3). Moreover, in +the middle section, your selection for the NFT Collection (2). + +![Breakdown page](./docs/img/getting-started/breakdown_general_empty.png) + +So now you have to select the NFT Collection you want to cast. + +You can display the assets as text if you don't have thumbnails yet or enlarge the +thumbnails size. + + +![Breakdown page text display](./docs/img/getting-started/breakdown_text_display.png) + +You may also realize an asset needs to be added to the list during your breakdown. + +You can create a new asset directly from the breakdown page. Click the **+** on the right of the **All available assets**. + +![Breakdown page create asset](./docs/img/getting-started/breakdown_create_asset.png) + + +You can also select multiple NFT Collections at once. Click on the first NFT Collection, hold the **shift** key, and click on the last NFT Collection of your selection. + +![Breakdown page global bulk select](./docs/img/getting-started/breakdown_general_bulk_select.png) + +Then click on the assets you want +to assign: characters, backgrounds, ... from the right part (3). +If you have selected multiple NFT Collections, your selection is applied to the numerous NFT Collections. + +Copy an NFT Collection filled with assets and paste this asset selection into another NFT Collection. + +You can see a **+1** or **+10** when you pass over the asset. It's the number +of times you add this asset, and you can click on it as many times as you need. + +![Breakdown add asset](./docs/img/getting-started/breakdown_add_asset.png) + +You can also link all your assets to episodes on a TV show without specifying a sequence or NFT Collection. + +![Breakdown episode asset](./docs/img/getting-started/breakdown_episode.png) + +This way, you can link all your assets to one or several episodes before the storyboard/animatic stage. + +You can now see the asset in the middle of the screen (2). Next +to the asset's name is the number of times it has been added. In this +example, we have added the character asset Llama two times. + + +If you add an asset twice by mistake, you must go to the screen's middle part to select assets for this NFT Collection (2). From there, click on +**-1**. When you finish this NFT Collection, continue with the other NFT Collections. +Your selection is automatically saved. + +![Breakdown remove asset](./docs/img/getting-started/breakdown_remove_asset.png) + +If a new asset is created during the storyboard, return to the asset +page (using the dropdown menu) and create the needed assets. The tasks previously created are applied immediately to these new +assets. However, you have to do the assignment, and then you can +continue with the breakdown. + +Now, your **Breakdown** page should look like this. + +![breakdown add asset bulk](./docs/img/getting-started/breakdown_general_bulk_select_full.png) + +You can also make a breakdown list for your assets if you need to assemble them and keep track of the separate parts. + +On the top left corner of the screen, choose **asset** in the dropdown menu below **FOR**. + +![Breakdown asset menu](./docs/img/getting-started/breakdown_asset_menu.png) + +You can now access a second dropdown menu to choose your asset type: **Character**, **Environment**, **Props**, **FX**, ... + +![Breakdown asset type](./docs/img/getting-started/breakdown_asset_menu_type.png) + +You can complete the asset breakdown page the same way you did the NFT Collections. First, select one or more assets on the left and then add the elements on the right. + +::: details Create a Breakdown List from a CSV File + +You may already have your breakdown list ready in a spreadsheet file. With Kitsu, you have two ways to import it: the first is to import a .csv file directly, and the second is to copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file following Kitsu's recommendation. + +Click on the **import** button ![Import button](./docs/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Breakdown import csv file](./docs/img/getting-started/import_breakdown_csv_file.png) + +To see the result, click on the **Preview** button. + +You can check and adjust the name of the columns by previewing your data. + +NB: the **Episode** column is only mandatory for a **TV Show** production. + +![Breakdown import Preview](./docs/img/getting-started/import_breakdown_preview.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, you have your breakdown imported into Kitsu. + +![Breakdown import Preview](./docs/img/getting-started/breakdown_general_bulk_select_full.png) +::: + +::: details Create a Breakdown List by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](./docs/img/getting-started/import_copypas_breakdown.png) + +Then, go back to the breakdown page on Kitsu and click on the **Import** icon +![Import Icon](./docs/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](./docs/img/getting-started//import_breakdown_csv_file.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](./docs/img/getting-started/import_breakdown_preview.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](./docs/img/getting-started/import_breakdown_preview.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, all your assets have been imported into Kitsu. + +![Import data copy paste data](./docs/img/getting-started/breakdown_general_bulk_select_full.png) +::: + +## Casting from the Asset Library + +It is also possible to cast assets from the global **Asset Library** into your production. This allows you to cast an already existing asset, without the need to re-create it for each production. + +![Asset Library Display](./docs/img/getting-started/asset_library_display.png) + +To see assets outside of your production from the asset library, click the **Display Library** Button (1) + +Assets from the global asset library will appear, and will be highlighted with a yellow boarder (2). They can then be cast in your breakdown exactly the same as other assets. + +![Asset Library View](./docs/img/getting-started/asset_library_view.png) + +Back on your productions asset page, you can choose to display global assets that have been cast in your production by toggling the **Display Library** button (1). These assets will be highlighted in yellow, indicating that they originate from the global asset library, and not your current production. (2). + +## Introduction to Asset State: Ready For + +Most of the time, you don't need to wait for an asset's tasks to be approved to use it on an NFT Collection task. + +For example, when an asset is approved at the **Concept** stage, it can be used for the **Storyboard** stage. +Then, when it's approved at the **Modeling** stage, you can use it for the **Layout** stage and so on. + +That's exactly what the asset state **Ready For** is doing: let you know the state of the tasks of an asset and compare its usability for the NFT collection tasks. + +Now that we have filled out our breakdown, we know which asset is used on every NFT Collection. + +First, we need to define an asset's state relative to its task status. You can modify the **Ready for** by clicking on a cell. You will see a dropdown menu with the NFT Collection task. + +![Asset Status](./docs/img/getting-started/asset_status.png) + +::: tip +You can use the **automations** to do the heavy lifting for you. + +You can set automation with the **ready for** trigger. +::: + +Now that we have changed some asset states to **Ready for**, we can see the result on the NFT Collection page. + +You can notice that some white boxes are now **Green**: all the assets cast in this NFT Collection are ready for this specific task. + +![Asset Status](./docs/img/getting-started/asset_status_box.png) + +If you see the white box, Kitsu will display how many assets are ready for this task. + +![Asset Status](./docs/img/getting-started/asset_status_empty.png) + +::: tip +If you don't see any boxes, no assets are casted for this NFT Collection. +::: +  +Then, you can click on the NFT Collection's name to go to its detail page. +Then, you will see all the assets cast in this NFT Collection and their status. + +![Asset Status](./docs/img/getting-started/asset_status_detail.png) + +It's the fastest way to know if you can start an NFT Collection for a specific task. + +# Meta Columns, Filters and Production Settings + +# Meta Columns +To add more information on the general spreadsheet pages, you can create a **Metadata Column**. + +Metadata columns alow you to track additional information related to your production. Some examples could include a metadata colum to track the percieved difficulty of a task, or a column to try custom tags that help you identify certain aspects of a task. Custom metadata columns can store data in a veriety of formats for easier data entry, filtering and validation. + +## Create Metadata Columns + +To add a new custom metadata column, click on the **+** icon next to the Name column. + +![Metadata Column](./docs/img/getting-started/add_column_custom.png) + +First, choose the name you prefer for your field. Then, select the appropriate **Type** based on your needs: + +- **Text**: + - This type accommodates text based input, including both letters and numbers. It offers flexibility in storing information such as descriptions, comments, or textual content. + +- **Number**: + - Reserved solely for numerical data. It's recommended for tracking information exclusively comprised of numerical values, such as framerates, dates, or times. + +- **Checkbox**: + - This option allows you to mark items as either on or off. It's suitable for tracking data with only two possible states, like indicating shots intended for a trailer cut. + +- **List of values**: + - With this type, you define a list of options from which only one unique element can be selected. It's ideal when you need to track data with a limited number of choices. For instance, for tracking camera movements, options like "Static," "Pan," "Tilt," or "Zoom" could be included. + +- **List of tags**: + - Here, you can define multiple tags. Unlike a list of values, which allows selecting only one item, this type enables selecting multiple entries from the list. + +- **Checklist**: + - This type presents a list of options, each accompanied by its own checkbox. It's useful for tracking minor sub-tasks associated with a shot or asset, which don't warrant their own task in the production pipeline. + +![Metadata Column detail](./docs/img/getting-started/custom_column_detail.png) + +:::warning +When creating **Text** and **Number** metadata types, a default value is not required upon creation. + +However, when using the **List of value**, **List of tags**, and **Checklist**, you have to specify which values you want to include at the point of creation. + +![Metadata Column list](./docs/img/getting-started/custom_column_list.png) + +Type the list elements below **Available values**, and confirm them by clicking on **Add value**. +::: + +### Linking Metadata Columns to Departments + +You can also link the **metadata column** to one or several **departments**. The artists/supervisors will see it on their to-do page and in the department-filtered view. + +To create more departments, see [Create Departments](../configure-kitsu#create-departments). + +You can link the metadata column to one or more departments. Click on the department from the list and then click on **add** to confirm. + +Here, the VFX column is linked to two departments. + +![Department metadata column filtered view](./docs/img/getting-started/department_filtered_view_column.png) + + + +::: details How to edit your metadata column +On the global page of the asset or the shot, click on the arrow on the direct right of your metadata column and click on **Edit**. + +![Metadata column Edit](./docs/img/getting-started/custom_column_edit.png) +::: + + +Congratulations, your newly created metadata column should now be available from your global page. + +![Metadata Column detail](./docs/img/getting-started/custom_column_list_edit.png) + +::: tip Batch Updates +If you want update multiple items with the same values, first check the items you want to include as shown below, and then update the value. The value you entered will then be updated across all items. + +![Metadata Column detail](./docs/img/getting-started/batch_edit_custom_column.png) + +![Metadata Column detail](./docs/img/getting-started/batch_edit_custom_column2.png) + +::: + +::: details Editing Entities +While you can make updates to entities in the spreadsheet directly, you can also use the edit button ![Edit button](./docs/img/getting-started/edit_button.png) to update multiple metadata columns. + +Once selected, you can fill out or adjust values for all metadata columns for that specific entity. Remember to press the **Confirm** button when you are done. + +![Metadata Column detail](./docs/img/getting-started/edit_asset_custom.png) +::: + +If you need to edit or delete the metadata column from the general spreadsheet page next to the name of your metadata column, click on the arrow ![Metadata Column detail](./docs/img/getting-started/arrow.png). + +::: tip +In additional to editing or deleting metadata columns, from here you can also **sort** your global page with this new column by clicking on **Sort By**. + +Additionally you can also **Stick** the metadata column, meaning that it will stay locked to the left and remain visible while scrolling through a large dataset. +::: + + +## Organizing Metadata Columns + +### Display or Hide All Metadata Columns + +To keep your global spreadsheet tidy, you can choose to hide any non-essential columns. Note that this action does not delete the column; it simply hides it from view but retains it in other areas where it is used. + + +To do this, click on the **Hide Additional Information** +![minimize button](./docs/img/getting-started/maximize.png) button on the top right of the page. + +![All Information Displayed](./docs/img/getting-started/hide_extra_information1.png) + + +To make the information reappear, click on the same button, +![maximize button](./docs/img/getting-started/minimize.png) it won't be highlighted in grey. + +![All Information Displayed](./docs/img/getting-started/hide_extra_information2.png) + +### Display or Hide a single Metadata Column + +You may need to hide or display a specific **Metadata Column** on a global page. + +To hide your metadata column, click on the arrow on the right border of the global page. + +![Visible column](./docs/img/getting-started/visible_column.png) + +You can choose which column you want to **hide** or **display**. + +## Sticky Columns + +If a piece of information is frequently referred to, you can **Stick** this column next to the shot name. + +Click on the arrow to the right of the column to open the column menu, then choose **Stick**. + +![Sticky Option](./docs/img/getting-started/sticky.png) + +![Sticky Option](./docs/img/getting-started/sticky_example.png) + +# Filters + +Filtering involves selectively retrieving data based on specific criteria or conditions. It enables users to easily hone in information they want to focus on, or extract relevant subsets of data for analysis. + +Kitsu provides a series of features that allow you to easily find what you are looking for. + +## The Search Bar + +### Using the Search Bar to Create Filters + +In **Kitsu**, filters are set through the **search bar**. It allows you to +**save** your search query. Once done, you can rerun your query with a +simple click. + +![Search bar](./docs/img/getting-started/filter_search_bar.png) + +You can find the **Search Bar**, **Filter Builder** and the **Save** option ![Search +bar](./docs/img/getting-started/filter_save_button.png) in the following pages: + +* Assets +* Shots +* Sequences +* Edits +* Episodes + +NB: The **Search Bar** only and pre-build filters are available on the following page +* My Production +* My Tasks +* People +* Sequence Stats +* Episodes Stats +* Asset Types Stats +* Quotas +* Team +* Detailed Task Type page + +::: tip +On the other pages of Kitsu, you will find pre-build filters. +::: + +The **search bar** query is applied every time a new character is typed. You don't need to type everything to get a quick result. + +::: warning +The filter is instant except for the **Feature Film** type of production. +Kitsu expects to have thousands of elements, so to speed up the process, you must type your Search and press **enter** to apply it. +::: + +### Example Filters + +For example, on the assets page, type the letter `Ot`, and you get the +result of all the assets starting with an `Ot`. + +![Search bar result](./docs/img/getting-started/filter_autocompletion.png) + +You can also search for some specific **type of asset**: `Props`, `Character`, +`Environment`, `Fx` ... The result displays all the assets of this type. + +For example, let's search all the **FX** assets. + +![Search asset type](./docs/img/getting-started/filter_asset_type.png) + +Another example gets **shots page** of a specific **sequence**. +For example, you can only see the shots of the second sequence of the first episode. + +Select the first episode on the dropdown menu, then search `sq002`; the result + gets all the shots of all the episodes from sequence SQ002. + +![Search bar sequence episode](./docs/img/getting-started/filter_ep_seq.png) + +In the same way, you can search **specific status** link to the task. + +::: tip +You can create **filters** about **entities** on all the pages: + +* **Sequences** : `se01`, `se02` etc. or exclude : `-se01`, `-se02` etc. +* **Asset Type**: `characters`, `environment`, `fx` etc., or exclude `-characters`, `-fx`, etc. + +You can also create **filters** about **task status** by following this syntax: +**task=status** on the global entities page + +Examples: + +* Layout is a work in progress (wip): `layout=wip.` +* Concept is waiting for approval (wfa) only for the fx: `concept=wfa fx.` +* On sequence 2, Layout is wip: `se02 layout=wip` +* Animation is retaken, and Render is waiting for approval (wfa) `animation=retake render=wfa`. + +For the **Detailed task type page**, you can filter by typing only +- Status: `wip` or exclude `-done`, several status `[wfa] [retake].` +- Name of an artist: `Alicia` or exclude `-Paul` + +You can do a mix of all the filters: + +`[wfa] [retake] -alicia 020.` +::: + +## Creating Filters + +### Utilising the Filter Builder + +The easiest way to achieve more advanced filtering is to use the filter builder. Click on the **Filter Builder** icon show below to get started. + +![Filter build button](./docs/img/getting-started/filter_builder.png) + +You can then use the interactive filter builder dialogue to create your desired filter criteria. + +![Filter build button](./docs/img/getting-started/filter_builder_example04.png) + +::: warning +The first option, **Match all the following filters**, will use all the options you select on the filter builder for the filtering: + +- Task Status +- Metadata +- Assignment +- Thumbnail Presence +- Priority +- Ready for / Assets are Ready + +The second option, **Match one of the following filters**, will skip the unavailable filter option. +::: + +### Task Status Filtering + +**Task Status** helps you filter a task type by status. + +- **Equal** will report all the tasks with this status on this task type +- **Not Equal** will report all the task **except** this status +- **In** report all the tasks with all the statuses you've selected + + +You can use the **-** button to remove one of the statuses selected. + +You can use the **+** below the status to add more status. + +![Filter build example 01](./docs/img/getting-started/filter_builder_double_status.png) + +::: tip +If you want to filter the status of several task types, click on the **+** below the task status option on the left part of the screen. + +![Filter build example 01](./docs/img/getting-started/filter_builder_double_status01.png) + +::: + +### Metadata Filtering + +The **Metadata** filter allows you to filter your page based on the information of the extra columns. + +- **Equal** will report all the tasks with this information on this Metadata column +- **Not Equal** will report all the task **except** this information +- **In** report all the tasks with all the information you've selected + +![Filter build MEtadata](./docs/img/getting-started/filter_builder_metadata.png) + +::: tip +If you want to filter elements on several Metadata, you can click on the **+** below the Metadata option on the left part of the screen. + +![Filter build example 01](./docs/img/getting-started/filter_builder_metadata2.png) + +::: + +### Assignment Filtering + +This option is related to people and assignments. + +- No filter: you don't look for people +- Assigned to: allows you to search for the task assigned to someone on a specific task type +- Not assigned to: allows you to search for the task not assigned to someone on a specific task type +- Assignments exist for: will report all the tasks of a specific task type with an assignation +- No assignment exists for: will report all the tasks of a specific task type with no assignation + +::: warning +You can only filter assignation on **ONE** Task type for **ONE** person. + +You can not add several assignment filters. +::: + +### Thumbnail Filtering + +By default, this filter is set to **No filter**, meaning Kitsu won't check whether a thumbnail is present. + +Then you have the choice between: +- With thumbnail: display all the entities with a thumbnail +- Without thumbnail: display all the entities without a thumbnail + +### Priority Filtering + +You can filter a task type with a specific level of priority. + +::: tip +To learn more about priorities, see +[Change Priorities](../estimation#change-priorities) +::: + +First, select your task type, then you can choose between +- **Normal** (the default level of priority) +- **High** +- **Very High** +- **Emergency** + +::: warning +You can only filter priority on **ONE** Task type for **ONE** level of priority. + +You can not add several priority filters. +::: + + +### Using the "Ready For" status + +Depending on whether you are filtering on the asset or shot global page, you can filter on the **Ready For** status. + +- On the asset page, you will search for the **Ready for** column. + +On the shot page, you will check whether all the assets for these tasks are ready (see Create your production). + +::: warning +You can only filter **Ready for**** on **ONE** Task type + +You can not add several **Ready For** filters. +::: + + +## Managing Saved Filters + +Kitsu allows you to save any filter queries to be re-used later. You can save them by pressing the +**Enter**, or click on the **Save** button +![Save button](./docs/img/getting-started/filter_save_button.png). + +Now, under the **search bar**, you can see your saved queries as buttons. + +![Search saved](./docs/img/getting-started/filter_saved.png) + +::: tip +Notice the first icon on the left and the colored buttons. + +It allows you to Create a Filter Group. This way, you can keep your saved filters organized under a colored Group. + +![Add A Filter Group](./docs/img/getting-started/filter_group_new.png) + +::: + +The buttons are there every time you return to this page. They help you run common queries faster. + + + +Once you have created your filter and saved it, it will appear as a button under the search bar. + +You can rename the filter with a more explicit choice of words. + + +The saved filter is quite long and hard to read. Hover your mouse over the saved filter. You will see two icons, one to edit and the other to delete. + +![Search saved example edit](./docs/img/getting-started/filter_edit.png) + +You can now change the name displayed in the **Name** section in the pop-up window. + +![Edit filtered name](./docs/img/getting-started/filter_edit_name.png) + +You can choose if you want to keep your saved queries in or out of a **Filtered Group** + +![Filtered Group Example](./docs/img/getting-started/filter_group_example.png) + + +### Deleting a Filter + +If you have created a **filter button** by mistake, click on the cross next to +it ![Filter delete](./docs/img/getting-started/filter_delete.png). + +The result of the filter is displayed, but the button is not. Just +cancel your research by deleting the text or use the cross next to the Search +bar ![Search delete](./docs/img/getting-started/filter_cross_delete.png) + + +### Pre-built Filters + +You can find pre-built Filters on the following page: + +- My Checks +- Timesheets +- Team Schedule +- All Tasks +- Newsfeeds +- Concepts +- Quotas +- Task Type detailed page (+search bar) + +On this specific page, you can select the option we have created for you. + +You can select the option you want on the dropdown menu. + +# Production Specific Workflow Settings + +## Configure Production-Specific Settings + +From the **Navigation Menu**, choose on the dropdown menu the **Setting**. + +![Drop Down menu Setting](./docs/img/getting-started/drop_down_menu_setting.png) + +The first tab, **Parameters** allows you to change the **Technical information** of the production. + +::: warning +If you change the **FPS** or **Resolution** after uploading previews, the changes won't be applied; you must reupload the first previews. +::: + +![Setting Parameters](./docs/img/getting-started/setting_parameters.png) + +Here, you can enable specific options for the production as + +- Isolate Client Comments (Not Visible To Each Other) + +- Allow Artists To Download Previews + +- Set New Preview As Entity Thumbnail Automatically + +You can also specify the **Maximum Number of Retakes** for this production. + +::: tip +You can also change the avatar of the production on the **Parameters** tab. +::: + +## Task Statuses + +### Configuring Specific Task Types for a Production + +On the **Navigation Menu**, choose on the dropdown menu the **Setting**. + +![Drop Down menu Setting](./docs/img/getting-started/drop_down_menu_setting.png) + +Per default, Kitsu will load the **Task Status** you have defined when creating the production. + +However, you can add or remove specific statuses during production if they are created on the Global Library first. + +![Setting status new](./docs/img/getting-started/setting_status_new.png) + +On the **Task Status** tab, you can choose which **status** you want to add or remove on this production, +validate your choice with the **add** button. + + +![Setting Add Status](./docs/img/getting-started/setting_status_add.png) + +## Task Types + +### Enabling Specific Task Types for a Production + +On the **Navigation Menu**, choose on the dropdown menu the **Setting**. + +![Drop Down menu Setting](./docs/img/getting-started/drop_down_menu_setting.png) + +By default, Kitsu will add the **Task Types** you have chosen when creating the production. + +![Setting Task Type new](./docs/img/getting-started/setting_task_new.png) + +However, you can add or remove specific **Task Types** if they are created on the Global Library first. + +For example, you can import the task workflow from another production in your library. + +![Setting Add Task Type](./docs/img/getting-started/setting_task_add.png) + +On the **Task Types** tab, you can choose which production or task type you want to import  or remove on this production, +validate your choice with the **Import** button. + + + +::: warning +If you had a new task type **AFTER** creating an asset or shot, here is the **DELIVERY** task type. + +![Setting Task Type add](./docs/img/getting-started/setting_task_add2.png) + +You need to **add this task type** on the global page. + +![Add Task Type Global](./docs/img/getting-started/global_add_task.png) + +A pop-in will appear, and you must select the new task type on the dropdown menu. + +![Add Task Type Global](./docs/img/getting-started/add_task_current.png) + +Validate with **Confirm**. + +![Add Task Type example](./docs/img/getting-started/add_task_example.png) + +::: + +## Asset Types + +### Enabling Specific Asset Types for a Production + +On the **Navigation Menu**, choose on the dropdown menu the **Setting**. + +![Drop Down menu Setting](./docs/img/getting-started/drop_down_menu_setting.png) + +Per default, Kitsu will load the **Asset Types** you have defined when creating the production. + +However, you can add or remove specific Asset Types if they are created on the Global Library first. + +![Setting Asset type new](./docs/img/getting-started/setting_asset_new.png) + +On the **Asset Types** tab, you can choose which **Asset Types** you want to add or remove on this production, +validate your choice with the **add** button. + +![Setting Add Asset](./docs/img/getting-started/setting_asset_add.png) + +## Status Automation + +### Configuring Status Automation for a Production + +On the **Navigation Menu**, choose on the dropdown menu the **Setting**. + +![Drop Down menu Setting](./docs/img/getting-started/drop_down_menu_setting.png) + +Per default, Kitsu will load no **status automation** of your +status automation **Global Library** into your **Production Library**. + +![Setting Task Type new](./docs/img/getting-started/setting_auto_new.png) + +But you can use only specific **Status Automation**, depending on your production type. + + +On the **Status Automation** tab, you can choose which automation you want to use on this production, +validate your choice with the **add** button. + + +![Setting Add Task Type](./docs/img/getting-started/setting_auto_add.png) + +## Preview Backgrounds + +### Select Specific Preview Background for a Production + +On the **Navigation Menu**, choose on the dropdown menu the **Setting**. + + +![Drop Down menu Setting](./docs/img/getting-started/drop_down_menu_setting.png) + +On the **Preview Backgrounds** tab, you can choose which HDR file you want to add or remove on this production, + +![Setting Status automation new](./docs/img/getting-started/preview_background_setting.png) + + + +Validate your choice with the **add** button. + +![Setting Add Asset](./docs/img/getting-started/preview_background_setting_filled.png) + +You can review your 3D file with an HDR background. + +![Preview background example](./docs/img/getting-started/preview_background_example.png) + +## Artist Board + +### Artist Board Status Configuration + +On the **Navigation Menu**, choose on the dropdown menu the **Setting**. + +On the **Task Status** tab, you can reorder the status for the **Board** view. + +![Setting status new](./docs/img/getting-started/setting_status_new.png) + +![Setting status order](./docs/img/getting-started/setting_status_order.png) + +Once it's done, go to the **Board Status** tab. + +![Setting board status order](./docs/img/getting-started/setting_board_status.png) + +Here, you can choose who can see which status on the **Board view** + +If you don't select the status properly, it can be overwhelming for the artists if they have too much choice. + +![Board status bad example](./docs/img/getting-started/board_all_status.png) + +Selecting the **Status** properly will make it easier for the artists. + + +![Setting board status order](./docs/img/getting-started/setting_board_status_selection.png) + + +![Board status good example](./docs/img/getting-started/setting_board_status_selection_artist.png) + +# Assignments, Estimates and Scheduling + +# Tasks Assignments + +In Kitsu, a task is a fundamental element used for planning, organizing, and tracking various aspects of your production. + +Assigning a task to a user offers several benefits: +- You have a clear understanding of who is responsible for each task. +- Users are aware of their assigned tasks. +- Users can log time spent on each task. +- You can monitor individual workloads. +- Task groups by user are visible on the detailed task type page. +- The team schedule provides an overview of your studio. +- You can forecast team productivity. +- You can track the actual performance of your team. + +## Add Users to the Team + +In the [section on preparing your team](../team), we cover how to add people to Kitsu, set their permission levels, and link them to a department. + +::: tip +In order for a user to be assigned to a task, they must first be added to a production. Please note that you cannot assign tasks to users outside of the production. +::: + +First, lets add some users to our production. Within your project, from the dropdown menu at the top of the page, select the **Team** page. + +![Drop down menu team](./docs/img/getting-started/drop_down_menu_team.png) + +On the this page, you can see all the users who have been assigned to this project. If you've just created a brand new project, this page will be empty. for a specific project. You can also quickly navigate to the team page for a different project, by selecting the project name in the drop down menu. + +![Team page](./docs/img/getting-started/team_page.png) + +::: warning +Permissions and departments are set at the **Studio Level**. You can't adjust these at the production level. +::: + +## How to Assign Tasks + +### Assign Tasks From the Global Page + +Once you've added all your users to the production, it's now time to assign your first task! + +::: tip Definition +In Kitsu, tasks from each task type are visually represented by the Status of the task cell, as shown below. +::: + +![Assigned a task](./docs/img/getting-started/task_assigned.png) + +Click the status on the task that you want to assign. + +You'll then see the **comment panel** appear on the right side of the screen, containing various options for configuring that task. + +![Blue menu](./docs/img/getting-started/blue_menu.png) + +Then, click on the assignee button to open the assignment dialogue + +![Selected people](./docs/img/getting-started/select_people.png) + +This is where you can assign users to the task. Click into the box to reveal a popup with available users. Alternatively you can start typing the users name to quickly narrow a specific user. Select the user you want to assign, and click on the **assign to selected task** button to complete the assignment. + +::: tip Note +You can assign more than 1 user to a single task +::: + +You can also assign a user to multiple tasks simultaneously. First, you'll need to select the tasks you want to assign. You can do this by holding **Ctrl / Cmd** on your keyboard and clicking on the tasks you want to select. Alternatively, you can use the **Shift** key to select a range of tasks. You'll notice that the selected tasks are highlighted in blue. + +![Assigned multiple people](./docs/img/getting-started/assigned_multiple.png) + +Once you have your tasks highlighted, select a user to assign and confirm your selection by clicking the **Confirm** button. Similarly, you can use the **unassign from selection** option to remove these assignments. + +Now, you can see the artist's avatar next to each of the task's status. + +![Assigned people](./docs/img/getting-started/assignation.png) + +You can toggle the visibility of task assignments on or off by using the **Show/Hide Assignments** button located at the top of the spreadsheet ![Hide assignations](./docs/img/getting-started/hide_assignation.png). + +Keep in mind that task assignments can determine what a user sees, depending on their role (for instance, vendors need to be assigned to a task before they can view anything). + +With your assignments completed, everyone knows their tasks and responsibilities! + +### Assign Tasks From the Detailed Task Type Page + +You also have the option to assign tasks from the detailed task type page. To access this, click on the column header of the task type. + +Next simply click on a status to open the comment panel. From there, you'll have the same options available as on the global page. You can select one or multiple tasks simultaneously to assign a user. + +# Estimates & Team Quotas + +Estimating the time for each task can feel overwhelming, but the benefits far outweigh the effort. By filling out task estimations, you can: + +- Clearly see the estimated days for any task in your production. +- Easily compare task estimates with actual time taken, allowing you to more accurately forcast tasks in the future. +- Adjust tasks from the entity schedule or team schedule once they have estimations, start, and due dates. +- Help your artists stay organized and be aware of the time they should spend on each task. +- Improve forecasting for your current and future productions. + +Kitsu offers various features to help you easily track, review, and forecast task estimates. Let's look at some of the features that enable you to do this. + + +## Add an Estimate for a Task + +To get started, click on the name of a task type. + +![Task type](./docs/img/getting-started/supervisor_tasktype.png) + +You'll then be taken to the Detailed Task Type view. Here you can see a list of of every task of that specific task type, along with additional details. + +![Supervisor page](./docs/img/getting-started/supervisor_page.png) + +To add an estimate to a task, click on the **Estimate (Est.)** field and input the number of days. You can select multiple tasks with **ctrl / cmd** or **shift** and apply the same estimate across all selected tasks. + +::: tip +The duration represents how long your task actually took and is calculated automatically from logged time. We will cover this in more detail later. +::: + +You can also define a **Start date** by clicking into the field, and choosing a data from the pop-up calendar. + +The **Due date** is automatically calculated based on **Estimate** and **Start Date** provided. + +![start date](./docs/img/getting-started/set_estimation.png) + +### Detailed Task Type View Features: + +Here is a summary of the cases and features you can leverage from the detailed task type view. + +- See and change the status of tasks +- Assign people to tasks +- Add an estimate for the task (in days) +- View the cumulative sum of logged time from an artists timesheet +- Track the number of back-and-forths with the retake status +- Add a start date for the task using the calendar picker +- View the auto-generated due date based on the start date and estimate +- See the WIP and Feedback dates automatically filled in +- Monitor the latest comment section to keep an eye on the latest activity for this task type + +## Forecasting Team Speed + +### Forecast Your Team's Speed Using Estimated Quotas + +To help you set accurate estimates, you can use the **Estimation** tab. + +![Estimation tab](./docs/img/getting-started/tasktype_estimation_tab.png) + +The left half lists the tasks with their assignments and the number of frames (1). Based on the **FPS** you have set for the production, the number of **seconds** will be automatically calculated (2). + +::: tip Definition +**Quotas** visualize your **team speed**. + +You can see on average how many shots, frames, or seconds the artist needs to complete daily to finish all tasks within the **estimated number of days**. +::: + +The right half shows the entire department team (based on the assignments you made), the number of shots they need to complete, the number of frames and seconds, and the average quota. You will also see the **Remaining** line, which gives you the current status of your team. + +The last column is the **Estimation**. To modify the estimate, hover over the row with your mouse and click the editable area. + +You can also select multiple tasks simultaneously to edit them all at once. + +![Estimation tab edit](./docs/img/getting-started/tasktype_estimation_tab_edit.png) + +Every time you change the **Estimation** (in the number of days) on the right side, you will see that the **Average Quota** updates in real time. + +For more information about the **Schedule** tab, refer to [Task Type Schedule](../schedules#Set-a-Task-Estimation). + +## Quotas + +### Using Quotas to Understand Your Teams Speed + +Kitsu has two ways to calculate quotas per **task type**. + +### Quotas Based on Timesheets + +The first method is linked to the timesheet: +Shots are considered complete when the first feedback request is made. Quotas are then weighted according to the time spent on the task, as recorded in the timesheet by the artist. + +![Quotas stat page day weighted](./docs/img/getting-started/quotas_day_weighted.png) + +In this example, Kitsu weights the daily quota based on the timesheet entries. + +![Quotas stat page day weighted detail](./docs/img/getting-started/quotas_day_weighted_detail.png) + +### Quotas Based on Status Changes + +If no timesheet is filled out, Kitsu uses status changes to estimate the duration: +- The task is considered started when the first status change to WIP occurs. +- The task is considered completed on the day the feedback request is made. + +Kitsu then distributes the completed frames across all business days between the start and end dates. It calculates the number of frames (or seconds, or tasks) completed per day/week/month per artist. + +![Quotas stat page day status](./docs/img/getting-started/quotas_day_status.png) + +You can click on a number at any time to see its details in the right panel. + +## Changing Priorities + +Priorities are often changing during a production, and you may want to easily highlight this change in priority to your team. + +To do this, click on the space near a task's status (1). + +![Task assigned](./docs/img/getting-started/task_assigned.png) + +The action box will appear. + +![Blue menu](./docs/img/getting-started/blue_menu.png) + +Click on the icon in the action menu to choose **Change Priority**. + +![Change priority](./docs/img/getting-started/change_priority.png) + +There are four levels of priority: **Normal**, which is the default value for all tasks, **High**, **Very High**, and **Emergency**. Save the changes with the **Confirm** button. + +As with changing statuses or assignments, you can change the priority across multiple tasks at the same time by selecting the tasks, and choosing **Change priority of the selected tasks**. + +![Priority selection](./docs/img/getting-started/priority.png) + +You will now see exclamation marks next to the task status. The more exclamation marks there are, the more urgent the task is. + +* (1) is **Normal** +* (2) is **High** +* (3) is **Very High** +* (4) is **Emergency** + +![Priority level](./docs/img/getting-started/priority_level.png) + +# Schedules + +## Production Schedule + +As the Studio Manager, you can use the global schedule as a reference for your production. The main purpose of this schedule is to track the milestones linked to your contract. This is referred to as your **Reference Schedule**. + +In order to start filling out your global schedule, you need to populate the production with assets and shots and define your task types. + +In the drop-down menu, choose **SCHEDULE**. + +![Menu Schedule](./docs/img/getting-started/menu_schedule.png) + +### The Production Schedule Gantt Chart + +At the top of the schedule, you can see the project's start date (1) and the end date (2), which was defined when creating the production. You can modify these dates by clicking on the box to open the calendar and pick a date. + +![Production Schedule](./docs/img/getting-started/production_schedule.png) + +You can modify the start and end dates for each of your task types on the Gantt schedule in one of two ways: the first is by moving the bar directly, and the second is by entering the date on the settings page under the task type section. + +For the former, place your cursor on the start or end date; the cursor changes to a double arrow. Then, drag and slide to the desired date. + +![Production Schedule Gantt](./docs/img/getting-started/schedule_production_task_type.png) + +After setting the start and end dates for your task types, you should be able to see at a glance the flow of your production. + +::: tip +You can select all the Gantt chart bars and move them simultaneously with **CTRL / CMD** + **Left Click**. +::: + +![Production Schedule Gantt filled](./docs/img/getting-started/production_schedule_task_type_complete.png) + +With that complete, the next step is to unfold each task type to reveal the associated shots sequences / assets types. + +![Production Schedule unfold task type](./docs/img/getting-started/production_schedule_unfold.png) + +You can set the start and end dates the same way you would for the task type. You can also define the work period for all asset types. + +![Production Schedule task type asset](./docs/img/getting-started/production_schedule_task_type_detail.png) + +You can do the same for the shot task types and determine the start and end dates for the sequences. + +![Production Schedule task type sequence](./docs/img/getting-started/production_schedule_task_type_detail_sequence.png) + +### Milestones + +A milestone is a significant point in a project that marks the completion of a major phase or task and serves as a checkpoint to assess progress. When hovering over a date in the schedule, you'll see ![Production Schedule add a milestone logo](./docs/img/getting-started/production_schedule_add_milestone_plus.png) appears. + +![Production Schedule add a milestone](./docs/img/getting-started/production_schedule_add_milestone.png) + +When you click, you'll be prompted to give a name to your newly created milestone. + +![Production Schedule name of a milestone](./docs/img/getting-started/production_schedule_add_milestone_name.png) + +Milestones are represented by a small black dot on the date and a vertical line on your schedule. If you hover over the little black dot, the milestone's name appears. + +This is a great way to quickly reference important upcoming dates or deliverables in your production against your productions schedule. + +![Production Schedule global view milestone](./docs/img/getting-started/production_schedule_milestone.png) + +To edit a milestone, click on the ![Edit button](./docs/img/getting-started/edit_button.png) or anywhere on the milestone name. From there, you can rename or delete the milestone. + +![Production Schedule edit milestone](./docs/img/getting-started/production_schedule_edit_milestone.png) + +Everyone assigned to the production can access the global schedule page, but only the **Studio Manager** can modify it. + +To view specific tasks in more detail, click on the task type's name. This will lead you to the **Schedule** tab of the task type page. + +## Task Type Schedule + +Whereas the **Global Schedule** is used to references task types across the entire production, the **Task Type** page is used to drill down into the details for tasks in a specific task type. + +![Task type page](./docs/img/getting-started/global_view_asset_task_export.png) + +There are 3 tabs on this page: **Tasks**, **Schedule**, and **Estimation**. + +![Task type schedule tab](./docs/img/getting-started/task_type_tab_schedule.png) + +There are two ways to set the artist's Schedule. + +The first method is via the **Tasks** tab, where you will set **Estimated Time** and the **Start Date**. As we saw previously, setting both of these will automatically fill out the **Due Date**. Once those details are filled out, the Gantt chart on the **Schedule** tab will be automatically generated. + +::: tip +Remember that on the Gantt you can click and drag to modify the start / end date, but the duration of the task will always be auto-calculated using the end date and duration +::: + +The second method is to set the length directly (**Estimate**), **Start Date**, and **Due Date** from the Gantt chart. + +![Task type page schedule default](./docs/img/getting-started/task_type_schedule_emplty.png) + + +Put your cursor on the start date, and the cursor will change to a double arrow. Then, drag and slide to adjust the start date. Define your **Due date** by filling in the **MD**. + +You can use the search bar (1) to narrow down a specific set of tasks. For example, you can search by **status**, **asset type**, **sequence**, **asset name**, **shot name** and **artist name**. (Note that you do not need to add the name of the task type as you are already on a specific task type page) + +You can also expand or collapse each Artist (2) section to make the schedule easier to read. + +You can change the bar's color in the Gantt chart (3). By default, the coloring is set to Status Color. + +![Task type page Schedule coloring](./docs/img/getting-started/task_type_schedule_coloring.png) + +**Status color** changes the bar's color based on its status. For example, blue is for **WIP**, red is for **RETAKE**, +purple for **WAITING FOR APPROVAL**, and green for **DONE**. + +![Task type page schedule coloring status](./docs/img/getting-started/task_type_schedule_coloring_status.png) + +You can quickly assess the status of your elements and team. From this view, you may want to visually identify tasks that are behind schedule. + +From the **Coloring** dropdown, select **late in red**. This view will highlight tasks where the due date has passed but that have not been approved yet. This indicates that they are behind schedule and will show on the Gantt chart as red. + +![Task type page schedule coloring late in red](./docs/img/getting-started/task_type_schedule_coloring_late.png) + +Changes made on the Gantt chart are reflected in other pages in Kitsu. + +The **Start date** and the **Due date** are displayed on the **Tasks** tab of the task type page. + +![Task type page schedule due date](./docs/img/getting-started/task_type_schedule_due_date.png) + +Additionally, you can view the **Due date** and **Estimation** days on the **Todo Page** of an Artist. + +![Task type page schedule artist due date](./docs/img/getting-started/my_task_page.png) + +Access to this page is visible to everyone, but only the **Studio Manager** can modify it. + +## Asset and Shot Schedule + +On the detail page of an asset or a shot, you can access the **Schedule** tab. + +![Asset detail schedule](./docs/img/getting-started/asset_detail_page_schedule.png) + +If you have entered a start and due date on the **Task Type** schedule, the Gantt bar will be displayed. + +From this page, you can modify the length, start, and end dates of each task in the asset or shot. + +## Studio Schedule + +As a production manager, you have access to the Studio Schedule, which consolidates all production schedules in one place, aiding in better preparation for your productions. + +To access the Studio Schedule, navigate to the main menu (![Main menu button](./docs/img/getting-started/main_button.png)) and click on **Main Schedule** under the **Studio** section. + +![Main Menu Schedule](./docs/img/getting-started/main_menu_schedule.png) + +Here, you'll find all your productions listed on each row, including their start and end dates. Additionally, you can view the number of days planned for each production within the specified timeframe. Furthermore, you can see the milestones you've defined for each production. + +![Main Menu Schedule](./docs/img/getting-started/main_schedule_fold.png) + +When you click on a production name, you can expand the view to see full details of each task type. The color scheme corresponds to the columns on the global pages. + +![Main Menu Schedule](./docs/img/getting-started/main_schedule_unfold.png) + +It's important to note that you cannot modify your production schedules directly from this page. To make adjustments, you'll need to navigate back to the specific production schedule page you wish to modify. + +Access to this page is restricted to the **Studio Manager**. + +## Team Schedule + +As a studio manager, staying informed about team activities is crucial. For a comprehensive overview of each department's activities, the Team Schedule provides valuable insights. + +To access the Team Schedule, navigate to the main menu (![Main menu button](./docs/img/getting-started/main_button.png)) and click on **Team Schedule** under the **Studio** section. + +![Team Menu Schedule](./docs/img/getting-started/main_menu_teamschedule.png) + +In the Team Schedule, on each row you'll find a list of all personnel in the studio. + +At the top of the page, you can adjust the displayed timeframe by selecting the **Start Date** and **End Date**, as well as adjust the **Zoom Level** for a more detailed or broader view. + +Additionally, you have the option to hone in on a specific **Department** or individual **Person**. + +![Team Schedule global](./docs/img/getting-started/team_schedule_global.png) + +In cases where an artist has multiple simultaneous tasks, these tasks will be stacked atop one another for clarity. + +You can manipulate each task by selecting and moving it around as needed. These tasks are directly linked and reflected in the **task type schedule**, and can be edited in both areas. + +# Statuses, Publishes, and Thumbnails + +# Statuses and Feedback + +In Kitsu, statuses serve as indicators reflecting the current state or progress of a task. You can easily see the current status at a glance and add comments to update team members when a status changes. + +## The Comment Panel + +To change the status of a task and write a comment, click on the status of the task. + +![Shot status](./docs/img/getting-started/shot_status.png) + +A panel will appear on the right where you can write a comment, change the status, and attach a file. + +![Comment Panel](./docs/img/getting-started/comment_panel.png) + +The **Comment Panel** is split into two tabs: +- POST COMMENT +- PUBLISH REVISION + +You can change the **Status**, from the **POST COMMENT** tab. + +Comments support the use of **Markdown**, which is a markup language used for formatting plain text in a simple, readable way. It allows users to add basic formatting elements such as headings, lists, bold and italic text, links and much more. For specific syntax, you can refer to the markdown guide website: [Markdown Guide](https://www.markdownguide.org/basic-syntax/). + +### Tagging Team Members + +You can also **tag** a team member in the comments to notify them directly. To do this, type `@`, which will open a submenu with a list of team members. Select the person you wish to notify, and upon submitting your comment, they will receive a notification. + +![Tag someone](./docs/img/getting-started/tag_team.png) + +You can also **tag** an entire department by typing '@' followed by the department's name. + +![Tag department](./docs/img/getting-started/tag_department.png) + +### Adding Checklists + +You can also add checklist items to keep track of miscellaneous items that don't warrant their own task. To add a **checklist** to your comments, click the **Add checklist** button. The first item of the checklist will appear. + +![Add checklist](./docs/img/getting-started/add_checklist.png) + +Hit **Enter** or click the button again to add more checklist items, and give each one a name. + +![Checklist](./docs/img/getting-started/checklist_detailed.png) + +### Adding Attachments + +To attach a file as a picture, click on the **Add attachment** button. + +![Add Attachment Simple](./docs/img/getting-started/attachment_snapshot.png) + +Select a **file from your hard drive** or paste a **screenshot**. + +![Attachment snapshot](./docs/img/getting-started/add_attachmen_simplet.png) + +Validate the attachment by clicking on **Add file as attachment**. + +Next, select the **Status** you wish to change the task to from the dropdown menu. + +![Status List](./docs/img/getting-started/status_list.png) + +Finally, click the **Post** button to submit your comment and status update. + +## Changing Statuses In Bulk + +### Updating Multiple Statuses at Once + +You can also change the status for multiple tasks at once. + +Select multiple shots or assets by pressing **Ctrl / Cmd** or **Shift** and select the tasks you wish to include. + +Then, go to the action menu's **Change status** section. + +![Action menu status](./docs/img/getting-started/blue_menu_status.png) + +Choose the new status for your selected tasks (1). You can also add a comment for all the selected tasks (2). Save the new status with the **Confirm** button. + +![Change status per batch](./docs/img/getting-started/change_status_batch.png) + +![Metadata Column Sort By](./docs/img/getting-started/custom_column_sortby.png) + +## Artist Board Statuses + +### Customizing Statuses Used on the Artist Board Page + +When you assign a task to an artist, it will appear on their to-do page when they log in. + +While the default view shows their tasks in a traditional list view, they can also choose to display their tasks in a board view. Each **Status** will be be represented by a column, and the assigned tasks will be cards that can be dragged from status to status as the tasks progress. + +To customize the board view, go to the settings page of your production. + +![Setting page](./docs/img/getting-started/drop_down_menu_setting.png) + +Then go to the Task Status tab. You will see a list of the statuses used in your production. + +These statuses will be used as the columns on the board page. You can drag and move the statuses to change their order as they appear in the board view. + +![Setting page status order](./docs/img/getting-started/setting_status_order.png) + +Next, click on the **Board Status** section. + +![Setting page status board](./docs/img/getting-started/setting_status_board.png) + +Here you can customize which permission roles can see what statuses on their **Board** page. + +To access this view, select the **Board** tab from the **My Tasks** page. Your team will see a page that looks similar to this + +![Artist board page](./docs/img/getting-started/artist_board_page.png) + +::: tip +Customizing which statuses appear in the **Board** view is set per permission role. It cannot be customized on an individual user basis. +::: + +# Publishes + +## Publishing a Concept + +To publish a **Concept**, navigate to the **Concepts** page from the project navigation menu. + +![Concept Menu](./docs/img/getting-started/menu_concept.png) + +To upload a concept, click the **Add a new reference to concepts** button. You can upload one or several concepts simultaneously. + +![Concept empty page](./docs/img/getting-started/concept_empty_prod.png) + +After the upload is complete, previews will be generated and visible from your concepts page. + +![Concept filled page](./docs/img/getting-started/concept_filled_prod.png) + +Click on the thumbnail to see an enlarged preview of your concept, or click on the status to open the **Comment Panel** on the right. + +With the comment panel open, you have two options: + +1) You can link a concept with an existing asset / delete and existing link. +2) You can comment and change the status of the concept. + +It is good practice to only have one version per **Concept**. If the concept is not approved and requires additional changes, then it's better to version-up that concept. + +![Concept options](./docs/img/getting-started/concept_options.png) + +## Linking a Concept to an Asset + +Once concepts are uploaded, you can link them to assets. + +The name of the linked asset is displayed below the thumbnail of the concept, and above the status. If no asset is linked, this area will be blank. + +Click on the status of the concept to open the comment panel on the right. + +![Concept Comment Panel](./docs/img/getting-started/concept_comment_panel.png) + +From here you can adjust what the concept is linked to, or delete it. In our example below, the concept is not currently linked to an asset. + +To link an asset, click on the **Link** ![Link button](./docs/img/getting-started/link_icon.png) button. + +Kitsu will display all the **Assets** available to link with the uploaded concept. + +![Concept link](./docs/img/getting-started/concept_link.png) + +Select the assets from the list that you want to link to. The linked asset names will then appear at the top of the screen and will also display under the concept's thumbnail. + +![Concept asset linked](./docs/img/getting-started/concept_asset_linked.png) + +Once a concept is linked to an asset, it can be seen and referenced from the asset's detail page. Return to the asset page and click on the asset which you just linked to your concept. + +![Detail asset page](./docs/img/getting-started/asset_detail_page.png) + +By default, the casting detail is displayed on the second part of the screen. Use the dropdown menu to choose the concept. + +![Asset detail concept](./docs/img/getting-started/asset_detail_concept.png) + +Once in the concept section, you will see all the concepts created for this asset. You can filter them by status. + +![Asset detail concept list](./docs/img/getting-started/asset_detail_concep_listt.png) + +## Publish a Preview as a Version + +To publish a preview, picture, or video, access the task's comment panel and select the **PUBLISH REVISION** tab. + +Kitsu automatically switches to the **Publish Revision** tab when using a status with the **IS FEEDBACK REQUEST** option, such as the **WFA** Status. + +![Publish Revision](./docs/img/getting-started/publish_revision.png) + +You can add one or several previews to any comments. These can be a picture (`.png`, `.jpg`, `.jpeg`, `.gif`), a video (`.mp4`, `.mov`, `.wmv`), or a `.glb` file. Additionally, you can review all the previews from the browser or mix everything. + +You can also review a `.glb` file as a wireframe or add a `.HDR` file to check the lighting. See the **Customization** section for more details. + +[Pipeline Customization](../configure-kitsu#3d-backgrounds) + +Other files like `.pdf`, `.zip`, `.rar`, `.ma`, or `.mb` cannot be viewed in the browser and need to be downloaded to be reviewed. + +Then, click on the **Add preview revision to publish** button. The explorer opens, allowing you to choose your file or several files. + +![Attach Preview](./docs/img/getting-started/attach_preview.png) + +You can also **copy-paste a screenshot** from your clipboard into this upload dialogue, without needing to download it first. Once your file is selected, you will see its name near the **Add files to publish** button. + +![Attach Preview Filled](./docs/img/getting-started/attach_preview_filled.png) + +You can also **drag & drop** files that you wish to upload into the comment section to automatically start the upload process. + +![Attach Preview Drag Drop](./docs/img/getting-started/drag_drop_preview.png) + +On top of your preview, you can add a **Comment**. Click the **Leave a Comment** button to unfold the comment section. + +![Add a comment to a Publish](./docs/img/getting-started/publish_revision_comment.png) + +You can then select your status and publish your preview with the **Post** Button. + +For more information on using publishes as thumbnails, [see this section here on thumbnails](../thumbnails). + +## Combining Previews Into a Version + +You can add multiple images simultaneously, or once you have uploaded an image, you can add another one. + +![Upload Several Pictures](./docs/img/getting-started/upload_several_pictures.png) + +The **Add preview** pop-up asks you to choose a file. You can navigate through the pictures uploaded. + +You can change the preview order by clicking the number and then dragging and dropping them. + +![Preview Drag Drop](./docs/img/getting-started/multiple_preview.png) + +To delete an additional preview, enlarge the comment panel, click on the number of versions, and then click on the ![Delete Button](./docs/img/getting-started/delete_button.png). + +![Enlarge Comment Section Delete](./docs/img/getting-started/enlarge_comment_delete.png) + +# Thumbnails + +## Add Thumbnails Manually + +To define a preview as a thumbnail, the preview MUST have been uploaded as a revision. + +Click on the status you want on the list page, then click the **Preview** button (1) on the right panel. + +![Thumbnail Button](./docs/img/getting-started/pannel_history.png) + +Once you click on the button, you can choose to pick the first or any frame. Once the frame is selected, the thumbnail appears, and the button turns gray. + +![Thumbnail Applied](./docs/img/getting-started/pannel_history_thumbnail.png) + +## Add Thumbnails Automatically + +If you prefer to have your thumbnails populate automatically, you can navigate to the settings page from the production using the navigation menu. + +![Settings Menu](./docs/img/getting-started/drop_down_menu_setting.png) + +On the **Parameters** tab, select **set new preview as entity thumbnail automatically**. + +![Settings Preview Auto](./docs/img/getting-started/setting_preview_auto.png) + +Don't forget to **Save** changes when you are done. Now, as soon as you upload a preview, it will be used automatically as a thumbnail. + +## Batch Upload Previews (as Thumbnails) + +Use the **Add Thumbnails** button ![Add Thumbnails Button](./docs/img/getting-started/add_thumbnails.png) on the global page to import thumbnails in bulk. + +![History](./docs/img/getting-started/add_thumbnails_menu.png) + +A new pop-up opens and asks you to choose which task types the thumbnails are linked to. + +**Thumbnails batch import accepts image files and video files**. Only the first frame is used as the thumbnail for the video files. + +In order for the thumbnails to be automatically links to the correct shot, you have to name your thumbnails as sequence_shot. + +For example, if you your sequence is named `SEQ_001` and your shot is named `SH_001`, then your thumbnail filename should be `SEQ_001_SH_001`. + +# Internal Review and Client Playlists + +# Reviews + +## Reviewing Tasks + +When an artist needs someone to **review** their work, they can change the status of their task to ![wfa](./docs/img/getting-started/wfa_icon.png). + +Click on the status to open the right hand panel and start the review. + +You can watch the version from the right panel, enlarge it by grabbing the side of the panel, or even enter fullscreen by clicking this icon ![Fullscreen](./docs/img/getting-started/fullscreen.png). + +![review on global page](./docs/img/getting-started/review_global.png) + +In the same way, you can also review 3D files (`.glb` file) as a wireframe or add a `.HDR` file to check the lighting. + +You can move around the 3D file by dragging and dropping your cursor and zooming in or out with the scroll wheel. + +![review 3d wireframe](./docs/img/getting-started/review_wireframe.png) + +![Preview background example](./docs/img/getting-started/preview_background_example.png) + +See the **Customization** section for more details. +[Pipeline Customization](../configure-kitsu#3d-backgrounds) + +You can select a color to use and then draw directly on the preview with the **Pencil** tool ![Pencil](./docs/img/getting-started/draw.png). + +![review drawing](./docs/img/getting-started/review_comment.png) + +### Drawing Annotations + +You can also annotate the frame with **text**. + +![review drawing text](./docs/img/getting-started/review_comment_text.png) + +If you'd like to temporarily **hide annotations**, click the **Fountain Pen** button. +![Hide Annotation](./docs/img/getting-started/hide_annotation.png) + +### Tagging Frames + +If you would like to refer back to a specific frame in your comments, you can easily tag a frame by typing `@`, which opens a sub-menu with the team list, and then start typing **frame**. + +This will then add a timestamp of the current frame to this comment, and clicking on that timestamp will jump to said frame. + +![Tag a frame](./docs/img/getting-started/tag_frame.png) + +### Exporting Annotations + +You can also export your drawings on each frame by attaching the **screenshots as attachments**. + +Click on the **Add attachment** button. + +![attachment](./docs/img/getting-started/attachment_retake.png) + +You can also choose to **Attach snapshots from your annotation** in the attachment options. This lets you take annotated frames and add them as attachments of the comment, which can be useful if you want to highlight specific annotations in your feedback. + +![Attachment snapshot](./docs/img/getting-started/screenshot_attachment.png) + +Once you click the button, Kitsu will grab all the frames with annotations and display the result. You can publish them with **Confirm**. + +![Attachment snapshot detail](./docs/img/getting-started/attachment_snapshot_detail.png) + +### Deleting Annotations + +If you need to delete a line, click the pencil icon again. The cursor changes to a multi-directional cross ![Pencil](./docs/img/getting-started/direction_arrow.png), and you can then select your line and move it around. + +![review drawing](./docs/img/getting-started/review_edit.png) + +Select the line with the directional cross, then press the **delete** icon ![Delete line](./docs/img/getting-started/delete_line.png). + +### Comparing Images + +By entering **Full-Screen**, you can compare two task types or versions side by side by clicking on the **Compare** button ![compare button](./docs/img/getting-started/compare_button.png). + +![compare button](./docs/img/getting-started/compare_version.png) + +From here, you can change the status to ![Retake](./docs/img/getting-started/retake_icon.png) if you want the artist to make changes. + +Alternatively, you can change it to ![Done](./docs/img/getting-started/done_icon.png) to notify the artist that their work is approved. + +## Reviewing Concepts + +Once your artists upload a concept, you can review it with the supervisor or the director. + +To review the concept, use the navigation menu at the top of the screen and select the concept page. + +![Menu concept](./docs/img/getting-started/menu_concept.png) + +You can see all the uploaded concepts, their statuses, assignments, and linked assets. + +![Concept filled status](./docs/img/getting-started/concept_empty_prod_linked.png) + +To review a concept, click on the status to open the comment panel. You can enlarge the comment panel or go fullscreen. + +Then, proceed to write a comment, select the status **Approved** or **Rejected**, and confirm with the **Post** button. + +![Concept status comment](./docs/img/getting-started/concept_status_comment.png) + +You can filter the page with the **Status** filter to display all the concepts with a **Neutral** status. You can also filter by artist and change the sort order. + +![Concept status filter](./docs/img/getting-started/concept_status_filter.png) + +## Playlists + +### Create a Playlist + +A playlist is list of curated versions / previews compiled for review and approval. You can find the **Playlists** page in the drop-down menu. + +![Playlist main menu](./docs/img/getting-started/drop_down_menu_playlist.png) + +The **Playlist** page is separated into two parts: + +- (1) A list of your playlists where you can **create** a news ones or load an existing one. +- (2) The last created playlists and the last modified playlists. + +![Playlist page](./docs/img/getting-started/playlist_page.png) + +Start by creating a **Playlist** using the ![Playlist add button](./docs/img/getting-started/playlist_add_button.png) button. The playlist name defaults to the current date & time, but you can change this. You can choose if the playlist will be shared with the **studio** or the **client** and if it's a **shot** or **asset** playlist. You can also add a **Task Type** tag to the playlist. + +![Playlist add page](./docs/img/getting-started/playlist_add_page.png) + +### Populating a Playlist + +Once the playlist is created, use the search/filter bar to select which shots to add to your playlist. + +You will also see options for adding the an **entire episode** / **entire sequence** if you want to add large chunks of the project at once. + +You can select **Daily pending**, which will add all the **WFA** tasks of the day. + +You can use the same **filters** as the global shot/asset page. For example, you can select all the **WFA** (short for "work for animation") tasks at the **Animation** stage by typing **animation=wfa** in the search bar. Validate your selection with the **Add selection** button. Kitsu will select the shots with the **WFA** status at the **Animation** stage and automatically load the **latest uploaded version**. + +The shots appear in the top part of the screen. Every change is automatically saved. + +![Playlist page](./docs/img/getting-started/playlist_example.png) + +## Review Controls + +Once you have created a playlist, you have several options: + +![Playlist Global](./docs/img/getting-started/playlist_global.png) + +* Play or Pause +* Jump between elements in your playlist +* See the position of the selected element compared to the total number of elements +* Mute or unmute the audio +* Change the speed: double speed (x2), full speed (x1), half speed (x0.50), or quarter speed (x0.25) +* Continuously loop a single element +* Display audio waveforms +* Display annotations during playback +* Show timecode (TC) of the element compared to the TC of the whole playlist +* Display the number of frames +* Navigate frame by frame on the preview (you can also use the left & right arrow keys on the keyboard) +* Access the cmpare tool + +* Undo and redo options annotations +* Text and drawing options (including delete selection) + +* Change the task type of all the elements in the playlist +* Display the comments section +* Hide elements in the playlist +* Switch between LD (low definition) and HD (high definition) +* Download the playlist as a **Zip** file with all the separate elements, a **.csv** text file, or **Build .mp4** to create the whole movie (only for shots) +* Enter fullscreen mode + +For each shot/asset in the playlist, you can choose the **task** and the **version** you want to see. + +![Playlist task selection](./docs/img/getting-started/playlist_task_selection.png) +![Playlist version selection](./docs/img/getting-started/playlist_version_selection.png) + +You can also play two tasks of a shot side by side. + +Click on the **Compare** button ![Compare button](./docs/img/getting-started/compare_button.png) and choose the second task type. + +![Playlist side by side](./docs/img/getting-started/playlist_side_by_side.png) + +You can comment on the shots directly from the preview. + +Click on the **comment** button. + +![Playlist comment](./docs/img/getting-started/playlist_comment_button.png) + +You now have access to the right panel, which shows a history of the comments and their statuses. + +You can see the drawing comment on the video (the red dot below the timeline). + +![Playlist comment](./docs/img/getting-started/playlist_comment.png) + +You can draw or type on the video (similar to [Perform a review](../status-publish-review#perform-a-review)) using the **draw** button ![draw button](./docs/img/getting-started/draw.png). + +## Review Room + +The Review Room is a collaborative space designed for efficient and synchronized dailies review sessions. It ensures that all participants are viewing the same content simultaneously, facilitating real-time feedback and discussion. + +To learn more about the Review Room, [visit this section here](../playlist-client#review-room). + +# Daily & Weekly review + +For your dailies or weeklies, you can create a **Playlist** + +## Create a Playlist for your internal review + +You can find the **Playlists** page on the drop-down menu. + +![Playlist main menu](./docs/img/getting-started/drop_down_menu_playlist.png) + +The **playlist** page is separated into two parts: + +- (1) The playlist list where you can **create** a playlist or load an existing one. +- (2) The last created playlists and the last modified playlists + +![Playlist page](./docs/img/getting-started/playlist_page.png) + +Start by creating a **Playlist** +![Playlist add button](./docs/img/getting-started/playlist_add_button.png). Your default name +is the date and the hour. You can change it immediately. You can choose if the playlist +will be shared with the **studio** or the **client** and if it's a **shot** or **asset** playlist. +You can also add a **Task Type** tag to the playlist. + +![Playlist add page](./docs/img/getting-started/playlist_add_page.png) + +Once the playlist is created, via the search/filter bar, you can select which shots to add +to your playlist. + +You can also choose to **add the whole movie**, and it will add all the shots of the movie. + +You can select **Daily pending**, which will add all the **WFA** tasks of the day. + +Otherwise, you can **Add the whole sequence** if you want to focus only on a particular sequence. + +You can use the same **filter** than on the global shot/asset page. For example, you can select all the +WFA is short for the animation stage. +You have to type **animation=wfa** in the search bar. Valid your selection with the **Add selection** button. +Kitsu will select the shots with the **WFA** status at the **Animation** stage. Still, Kitsu will automatically load **the latest uploaded version**. + +The shots appear on the top part of the screen. Every change are +automatically saved. + +![Playlist page](./docs/img/getting-started/playlist_example.png) + +## Review and Validations + +Once you have created a playlist, you have several options: + +![Playlist Global](./docs/img/getting-started/playlist_global.png) + +* Play or Pause +* Navigate from element to element +* See the position of the selected element compared to the total number of elements +* Mute or unmute the sound +* Change the speed, double speed (x2), full speed (x1), half of the speed (x0.50), or a quarter of the speed (x0.25) +* Loop on one element +* Display the sound wave +* Display annotations during the play +* TC of the element compared to the TC of the whole playlist +* Number of frames +* Navigate frame per frame on the preview. You can also do it with the arrow on the Keyboard. +* Compare tool + +* Undo and Redo option for the drawing comment +* Text and drawing option, and delete selection + +* Change the task type of all the elements of the playlist +* Display the comment section +* Hide the elements of the playlist +* Switch between LD (low definition) to HD (High definition) +* Download the playlist as a **Zip** files with all the separated elements, a **.csv** text file, or **Build .mp4** to create the whole movie (only for shots) +* Fullscreen + +For each playlisted shot/asset, you can choose the **task** and the +**version** you want to see. + +![Playlist task selection](./docs/img/getting-started/playlist_task_selection.png) +![Playlist version selection](./docs/img/getting-started/playlist_version_selection.png) + +You can also play two tasks of a shot side by side. + +Click on the **Compare** button ![Compare button](./docs/img/getting-started/compare_button.png) and choose the second task type. + +![Playlist side by side](./docs/img/getting-started/playlist_side_by_side.png) + + + +The primary purpose of the playlist is to help you review the shots and assets. + +You can comment on the shots directly from the preview. + +Click on the **comment** button. + +![Playlist comment](./docs/img/getting-started/playlist_comment_button.png) + +You now have access to the right panel, which has a history of the comments and their status. + +You can see the drawing comment on the video (the red dot below the timeline). + +![Playlist comment](./docs/img/getting-started/playlist_comment.png) + +You can draw or type on the video with the **draw** button ![draw button](./docs/img/getting-started/draw.png) + +# Client Playlists + +## Creating Client Playlists + +The first step in preparing a review with your client is to create a playlist of the content you wish to share and review. The process is similar to creating a regular playlist but Kitsu includes some nice features to aid with collaborate from parties outside your studio. + +To get started, you'll need to create your playlist and add the items you want to review. [See this section here for a reminder on how to do this](../review#create-a-playlist). + +The main difference is to ensure under **To Be Shared With** you select **The Client**. This will ensure the proper permissions and only provide the client access to this specific playlist. + +![Playlist Global](./docs/img/getting-started/client_playlist_create.png) + +## Reviewing Client Playlists + +Once you have created a playlist, you can notify your client that it is ready for review. + +![Playlist Global](./docs/img/getting-started/playlist_global_client.png) + +::: warning +Your client will only have access to the production if they are part of the team, and they will only see the **client playlist**. Please note there is currently no way to segregate clients within the same production, +::: + +The client has several options to control the playlist. + +::: danger Client Permissions +- Clients can see all versions of all task types. +- Clients can only see comments they have made and any replies to these comments. They cannot see your internal comments. +- Clients can only see when a revision has been published, but cannot see who published it. +- Clients can only see and use statuses with the **Is client Allowed** tag. +::: + +![Playlist Review client](./docs/img/getting-started/playlist_review_client.png) + +Clients can (from left to right): +* Play or Pause the video. +* Loop on one element. +* Switch between LD (low definition) and HD (high definition). +* Change the speed: double speed (x2), full speed (x1), half speed (x0.50), or quarter speed (x0.25). +* Display annotations during playback. +* Mute or unmute the audio. +* Display the audio waveform. +* Change the task type of all the elements in the playlist. +* Use the compare tool. +* Use text and drawing options, and delete selections. +* Display the comment section. +* Hide elements of the playlist. +* Download the playlist as a **Zip** file with all the separate elements, a **.csv** text file, or **Build .mp4** to create the whole movie (only for shots). +* Enter fullscreen. + +::: tip +The client can navigate frame by frame on the preview using the left and right arrows on the keyboard. +::: + +The client can also: +* Navigate from element to element by clicking on it. +* See the color status and length of each element compared to the total. +* See the position of the selected element compared to the total with the green dot. + +## Playback Controls + +For each playlisted shot/asset, the client can choose the **task** and the **version** they want to see. + +![Playlist task selection](./docs/img/getting-started/playlist_task_selection.png) +![Playlist version selection](./docs/img/getting-started/playlist_version_selection.png) + +They can also play two tasks of a shot side by side by clicking on the **Compare** button ![Compare button](./docs/img/getting-started/compare_button.png) and choosing the second task type. + +![Playlist side by side](./docs/img/getting-started/playlist_side_by_side.png) + +::: tip +The primary purpose of the playlist is to help the client review the shots and assets. They can comment on the shots directly from the preview. +::: + +To comment, they need to click on the **comment** button. + +![Playlist comment](./docs/img/getting-started/playlist_comment_button_client.png) + +This will open the right panel, showing their comments and status history, but without access to internal comments and statuses. + +They can draw or type on the video with the **draw** button ![draw button](./docs/img/getting-started/draw.png) and write a comment at the same time. + +![Playlist comment](./docs/img/getting-started/playlist_comment_client.png) + +You can see the drawing comments on the video (indicated by the red dot below the timeline). + +::: warning +Only the supervisor and production manager can see the client's comments. Artists will only see the status. + +The supervisor and production manager can copy the client's comments, modify them if necessary, and publish them for the team. + +![Playlist client comment](./docs/img/getting-started/client_comment.png) +::: + +## Review Room + +The Review Room is a collaborative space designed for efficient and synchronized dailies review sessions. It ensures that all participants are viewing the same content simultaneously, facilitating real-time feedback and discussion. + +You can join the **Review Room** by clicking the button at the top of the playlist. The review room will synchronize all the participants. + +Everyone in the review room will see the play, pause, shot, and frame selections in real-time. + +Additionally, the Review Room supports synchronized drawing annotations. This feature allows participants to draw directly on the frames being reviewed, with all annotations visible to everyone in the session. This capability enhances communication and clarity, making it easier to point out specific details, suggest changes, and highlight important aspects of the work. + +![Playlist review room](./docs/img/getting-started/playlist_review_room.png) + +# Supervisor Workflows + +# Managing Your Department + +A supervisor's role is to oversee the creative and technical aspects of visual effects production, ensuring that the final output meets the project's artistic vision, quality standards, and deadlines. A key aspect of this is to ensure your team knows what they are working on. + +## Assigning Tasks & Bidding Estimates + +From the global shots / asset page, your view is automatically filtered by **My Department**. This shows you tasks from your departments **Task Type** and the **Custom Columns** linked to your department. + +![Supervisor Global Page](./docs/img/getting-started/supervisor_global_page.png) + +When you assign one or several tasks to someone, you will notice that you only have access to people from your department. This makes it faster to find the right artist for the task. + +![Supervisor Assign Team](./docs/img/getting-started/supervisor_assign_team.png) + +Now that you have assigned tasks to all your artists, it's time to fill in the **Estimates** for each task. + +Click on the name of a **Task Type** column to open its dedicated page. On this page, you can access three tabs: **Tasks**, **Schedule**, and **Estimation**. We will focus on the last one. + +![Supervisor Estimation](./docs/img/getting-started/supervisor_estimation.png) + +The **Estimation** page is split into two parts. On the left, you have all the tasks sorted by artist, along with their number of frames and seconds. On the right, you have a summary of your team, with one line per artist showing the total number of assigned tasks, total number of frames and seconds, and the updated total number of estimated days. + +With this information, Kitsu can calculate different estimated **Quotas**: **per Second**, **per Frame**, and **per Task**. + +You can now fill the **Estimation** column on the left and see the result on the right. As soon as you fill in an **Estimation** for a task, the artist's row will update on the right. + +![Supervisor Estimation Filled](./docs/img/getting-started/supervisor_estimation_filled.png) + +This allows you to ensure the distribution of tasks among your team members is equal and helps to understand their estimated quotas for production. You should consider artist's experience and the difficulty of each task when doing this. + +## Daily Supervision Tasks + +Once the assignments and estimates are done, you can focus on the day-to-day operations. To easily see an overview of tasks from your department, you can click on your task type name from any page. + +Once on the detail page, your first action is to click on the **Display tasks as a contact sheet** ![Display task as contact sheet](./docs/img/getting-started/contact_sheet.png) button. + +![Task Type as contact sheet](./docs/img/getting-started/task_type_contact_sheet.png) + +Now, you can easily hone in on tasks that require your attention using the built-in filters. For example, say you want to see only the tasks that are yet not complete yet. In this case, you can filter our tasks with the **-done** status, along with adding a **Due Date Status** filter, to show tasks that are **Due This Week**. + +![Task Type filtered as contact sheet](./docs/img/getting-started/task_type_contact_sheet_filtered.png) + +You can easily enable / disable filters to quickly hone in on the right information. + +::: tip +If you need more information about a task, click on it's name to open the comment panel on the right. + +![Task Type filtered as contact sheet](./docs/img/getting-started/task_type_contact_sheet_panel.png) +::: + +## Managing Your Department's Schedule + +As a Supervisor, you can access your team's schedule from the main menu under the **Studio > Team Schedule** section. + +From this page, you can see all the artists in your current department working on your project. You can expand a person's schedule to see the details of their tasks. + +From there, you can: +- Move tasks to change their start and due dates. +- Adjust the length of tasks. +- Drag and drop tasks to reassign them to different team members. +- See days off. + +![Team Schedule Global](./docs/img/getting-started/team_schedule_global.png) + +## Managing Department Quotas + +A quota refers to the specific amount of work or number of tasks an artist is expected to complete within a given timeframe, ensuring that the project progresses according to schedule and meets production deadlines. + +At the beginning of production, while setting estimates for each task, you can also define estimated quotas for each of your artists. Once a task is approved, the remaining line on the Estimation tab of the Task Type page will update and display the remaining number of tasks and the updated estimated quotas. + +You can monitor each team member to see if their estimated quotas stay within the initially established range. + +![Supervisor Estimated Quotas](./docs/img/getting-started/supervisor_quotas_estimated.png) + +To check their **Actual Quotas**, go to the **Quotas** page. + +![Quotas](./docs/img/getting-started/supervisor_quotas.png) + +Kitsu has two ways to calculate quotas. The first is based on daily timesheets filled out by the artists. Quotas are calculated from when the artist fills out their first timesheet on a task until they stop. + +The second way is based on status. The calculation starts with the **WIP** status and ends with the **WFA** status. This is **First Take** quotas, meaning that back-and-forth comments are not included in the calculation. + +![Weekly Quotas](./docs/img/getting-started/supervisor_quotas_week.png) + +The first column, **Average**, is the most important. Kitsu calculates the average quotas for each artist per **Day**, **Week**, or **Month**. + +## Department Timesheets + +As a Supervisor, you may also be responsible for monitoring your team's hours. The Timesheet page shows how many hours they work daily, weekly, and monthly. + +![Timesheet](./docs/img/getting-started/supervisor_timesheet_team.png) + +It's important to highlight abnormal patterns such as extra hours, sick days, or lack of vacation. The timesheet view can provide a high-level overview of where artists are spending their time, which can help you take care of your team to ensure they are not burning out. + +![Timesheet Detailed](./docs/img/getting-started/supervisor_timesheet_team_detail.png) + +# Task Supervision + +## Check Your Tasks + +A supervisor will typically have tasks assigned to them in addition to supervising your department. This means you need to split your time between completing your work and managing your team. Here's how to effectively manage what tasks you need to do. + +When you log into Kitsu, you'll notice the **My Tasks** button at the top of the screen. This provides direct access to your **to-do list**. By default, the list is sorted by priority, so the task at the top are the ones recommended address first. + +On the My Tasks page, you can filter the task list by Production, Task Type, Status, and other criteria. + +![Supervisor Todo Page](./docs/img/getting-started/supervisor_todo_page.png) + +To view more details about a task, click on its **Status** to open the comment panel. Here, you can comment on the task and publish a new revision if needed. + +![Supervisor Todo Detailed Page](./docs/img/getting-started/supervisor_todo_page_detail.png) + +You can also use the Board to quickly update the status of multiple tasks by dragging and dropping into each status column. + +![Supervisor Todo Detailed Page board](./docs/img/getting-started/supervisor_todo_page_detail_board.png) + +## Reviewing Previews + +Now that everyone in your team knows what to do, you need to review their work. Typically, when an artist finishes a task, they will call you for a review. Frequent interruptions can be unproductive and make it difficult to maintain focus. To avoid this, set a specific timeframe for reviews. This approach benefits both you and your team by providing a structured schedule. Artists will know when they can expect feedback and can plan their work accordingly, while you can dedicate uninterrupted time to your own tasks. + +Click the **My Checks** button at the top of the screen to see a list of all your department's **WFA** tasks. + +![Supervisor My Check Page](./docs/img/getting-started/supervisor_mycheck.png) + +This list covers all relevant **Productions**, **Task Types**, and **Task Statuses**. As with other pages in Kitsu, you can click on a **Status** to open the **Comment Panel** on the right and review tasks one by one. + +Alternatively, you can use the **Build playlist from list** button to create a playlist with all the tasks on the list. This playlist has the same options as other views, allowing you to open the comment panel, compare versions and task types, and add annotations. + +![Supervisor My Check Playlist](./docs/img/getting-started/supervisor_mycheck_playlist.png) +![Supervisor My Check Playlist Option](./docs/img/getting-started/supervisor_mycheck_playlist_option.png) + +Another option is to go to the **Task Type Page** and change the **Display as contact sheet**. For example, you can filter by **Due Date Status** and select **Due this week**. + +![Supervisor Contact Sheet](./docs/img/getting-started/supervisor_contactsheet.png) + +From here, you can click on the contact sheet to open the comment panel or select several tasks to create a playlist. + +## Reviewing Concepts + +When your artists upload a concept, you can review it through the navigation menu at the top of the screen by selecting the **Concepts** page. + +![Menu concept](./docs/img/getting-started/menu_concept.png) + +On this page, you can see all uploaded concepts along with their status, assignment, and linked assets. + +![Concept filled status](./docs/img/getting-started/concept_empty_prod_linked.png) + +To review a concept, click on its status to open the comment panel. You can enlarge the comment panel or enter fullscreen. You can then write a comment, set the status as **Approved** or **Rejected**, and confirm your changes with the **Post** button. + +![Concept status comment](./docs/img/getting-started/concept_status_comment.png) + +You can narrow down the page using the **Status** filter to display all concepts with a **Neutral** status. + +![Concept status filter](./docs/img/getting-started/concept_status_filter.png) + +Additionally, you can filter by artist and change the sort order to better hone in on the data you need to review. + +# Producer Workflows + +# Building Production Reports + +## Production Overview + +As a Producer, having a comprehensive overview of the entire production process is essential. + +Kitsu offers various tools to help you stay informed and manage production efficiently without getting overwhelmed by notifications or losing focus. + +### News Feed Features +The news feed section show real-time updates relating to your production, including: + +- **Real-Time Updates**: View all status changes as they happen, minute by minute. +- **Summarized View**: The right part of the screen displays the total number of news items and a breakdown by status. +- **Filtering Options**: Filter the list by Task Status, Task Type, and Person to focus on specific areas. +- **Comment Panel**: Clicking on a line opens the comment panel on the right, providing all necessary details. + +![Newsfeed Page](./docs/img/getting-started/newsfeed_comment_all.png) + +#### Using Filters + +You can customize the time frame for displaying information using the **Filters Builder** button. This is useful for focusing on specific supervisors or time periods. + +![Newsfeed Page Detail](./docs/img/getting-started/newsfeed_details.png) + +#### Example + +If you want to focus on a supervisor for a specific month, select their name and pick a date in the **From** box. + +![Newsfeed Page Comment](./docs/img/getting-started/newsfeed_comment_panel.png) + +## Know the Current State of the Production + +Understanding the current state of your production is crucial. Kitsu provides detailed statistics and visualizations to help you track progress effectively. + +### Short / Feature Specific + +We're going to look at some features that are specific to Short / Feature Film workflows. + +#### Sequence Stats + +The **Sequence Stats** page offers pie charts that depict the status of your production, sequence by sequence. The color scheme of the pie charts corresponds to the status, allowing you to quickly understand the state of your production. + +![Global View Sequence](./docs/img/getting-started/global_view_sequence.png) + +- **All Sequences**: The first line represents the whole production. +- **All Tasks**: The first column includes all tasks simultaneously. + +By focusing on the first pie chart, you can see the exact state of your production. For more details, look at the rest of the line to get a global view of each task type's state. + +#### Asset Types Stats + +Similar to Sequence Stats, the **Asset Types Stats** page provides pie charts for asset types, giving you a clear view of the asset status across the production. + +![Global View Asset](./docs/img/getting-started/global_view_asset.png) + +#### Count View + +You can also display data as **Counts** to see the exact number of assets, shots, or frames, along with their percentage per status. + +![Global View Sequence Counts](./docs/img/getting-started/global_view_sequence_detail_count_stat.png) + +#### Exporting Data + +You can export this page as a `.csv` text file and import it into spreadsheet software for further analysis and reporting. + +By leveraging these tools, you can stay on top of the production process, ensuring everything runs smoothly and on schedule. + +### TV Show Specific + +You can access an extra information level on a TV show through the **Episodes Stats Page**. + +### Retakes Display + +The default setting for the **Episodes Stats** page is **Retakes**. This display lets you see the number of retakes (back and forth) for each episode on each task type. Only three colors are displayed: +- **Validated as Green** +- **Retakes as Red** +- **In progress as Grey** + +![Global View Episode](./docs/img/getting-started/global_view_episode_retake.png) + +If you unfold an episode, you will see the percentage of each take and the evolution of the retakes versus approval. This helps you see the progress of each episode per task. + +![Global View Episode Unfold](./docs/img/getting-started/global_view_episode_retake_detail.png) + +Usually, the first episodes have many back-and-forths, but it should get better over time. However, if late episodes still have many retakes, something must be fixed. It's time to discuss the issue with the director and the supervisor. + +### Status Display + +The second option for data display is **Status**. This status display works like the **Sequence** / **Asset Type** Stats page. + +![Global View Episode Status](./docs/img/getting-started/global_view_episode_stat.png) + +You can also display data as **Counts**. This way, you'll see the exact number of shots/frames with the percentage per status. + +![Global View Episode Status Count](./docs/img/getting-started/global_view_episode_stat_count.png) + +You can export this page as a `.csv` text file and import it into spreadsheet software. + +## Ensure Tasks are On Time + +To know if a task is on time, you need two things: +- The **Task Type** of the task +- An **Estimation** (Bid) in days, along with an estimated **Start date** and **Due date** for the task. + +Once this information is entered, you can **compare estimation to reality** on the Task Type page. + +![Task Type Filled](./docs/img/getting-started/task_type_schedule_due_date.png) + +### Methods to Compare Estimations and Actuals + +There are two main ways to do this: +1. **Filtering by Due Date Status** +2. **Using the Gantt Diagram** + +::: tip +Kitsu automatically grabs the date and status of **WIP** (Work in Progress) and **WFA** (Waiting for Approval). You can compare your **estimated start date** versus **when the Artist really starts**, and compare the **estimated due date** to **when the Artist asks for approval**. +::: + +### Filtering by Due Date Status + +On the **Tasks** tab, the first filter you see is **Due Date Status**. Set it to **Due before today** to display all tasks with a **Due date** set **Due Before Today**. + +Next, to determine what is finished and what still needs to be finished. Use the **-Done** filter to exclude completed tasks. + +![Task Type Due Before Today](./docs/img/getting-started/task_type_due_before.png) + +This will show you all the late tasks with the two filters applied, meaning they are only validated after the **Estimated Due Date**. The summary at the bottom of the page updates in real time based on the applied filters. + +You can export this page as a `CSV` file and open it with spreadsheet software. + +### Using the Late Status Filter + +The **Late Status** filter built into the page helps you immediately see which tasks took more time than estimated (**Estimation over Duration**). + +![Task Type Estimation over duration](./docs/img/getting-started/task_type_estimation_duration.png) + +Filter the late tasks using the **Due date late** option. There are two ways to calculate if a task is late: +1. **Estimated due date** versus **Feedback** +2. **Estimated due date** versus **Done** + +Depending on your studio's calculation method, Kitsu will provide the answer. + +![Task Type Late Feedback](./docs/img/getting-started/task_type_late_feedback.png) + +### Using the Gantt Diagram + +On the **Task Type Page**, go to the **Schedule** tab. The **Start** and **End** dates of this task type, as set on the production schedule, are visible at the top of the screen. + +The **Gantt Diagram** will be dark grey before and after these dates, providing a visual cue for task timing. + +![Task Type Schedule](./docs/img/getting-started/task_type_schedule_emplty.png) + +Change the **Coloring** from **Status color** to **Late in Red**. This will show tasks in **Grey** if they are on time and **Red** if they are late. + +![Task Type Schedule Late](./docs/img/getting-started/task_type_schedule_coloring_late.png) + +You can return to the **Tasks** tab for more details, and Kitsu will retain your filters from tab to tab. + +## Understanding Why a Task is Late + +Now that you know which tasks are late or will be late, you need to understand **why**. There are several reasons why a task might be late: + +- The artist is overwhelmed with too many tasks. +- There is too much back-and-forth on the task. +- The task might be underestimated, making it difficult to finish on time. +- The previous task was already late. + +### Checking an Artist's Workload + +To check an artist's number of tasks, filter the **Task Type** page by the artist's name under the **Task** tab. + +![Task Type Artist](./docs/img/getting-started/task_type_artist.png) + +You can also add the **-done** filter to see what the artist has left to do. Then add the **Due Date Status** filter to **Due previous week** or **Due this week**, depending on what you are looking for. + +![Task Type Artist Filtered](./docs/img/getting-started/task_type_artist_filtered.png) + +This will show you how many tasks your artist has to complete. + +### Identifying Back-and-Forth + +To identify the number of back-and-forths, look at the Retakes column on the Tasks tab. Each **Red Dot** represents a **retake**. Click on the line to open the **Comment panel** and read the entire task history. This is the best way to understand what is happening—whether the artist misunderstood the brief or if the brief changed with each version. + +![Task Type Retake](./docs/img/getting-started/task_type_retake.png) + +### Checking if the Task is Underestimated + +To check if the task is underestimated, go back to the global page, click on the name of the shot or asset, and see the casting and all the extra information. For example, there might be too many characters in the scene, or it might be a big action scene. + +![Shot Detail Casting](./docs/img/getting-started/shot_detail_casting.png) + +### Checking the Previous Task + +Lastly, you can check the previous task while viewing the asset/shot in detail. Click on it to go to the dedicated **Task Type** page, where you can find detailed information about what was happening before. This can help you understand if delays in earlier tasks are affecting the current one. + +## Durations over Estimates + +To focus on the big picture and have a global view of the **Bid**, you can compare the estimated **Person days** versus the reality **Days Spent** on various pages. + +### Estimation Summary + +On the shots' global page, you can see the sum-up of all the estimations versus duration. You can also apply filters for more specific insights. + +For example, to focus on a specific sequence, filter your global page by the sequence's name. The sum-up at the bottom will update accordingly. + +![Global Shot Page Sum-up Filtered](./docs/img/getting-started/global_shot_sumup.png) + +This allows you to know the **Duration** versus **Estimation** for that particular **Sequence**. + +Similarly, you can filter the global asset page. + +For example, you can filter by a specific **Asset Type** such as **Character**. The sum-up at the bottom will update to show the estimation versus duration for that asset type. + +![Global Asset Page Sum-up Filtered](./docs/img/getting-started/global_asset_sumup.png) + +### Task Type Duration over Estimation + +To delve into details, click on the name of a task type. The sum-up at the bottom of the screen will show **Duration** versus **Estimation** for this specific task type. + +![Task Type Sum-up](./docs/img/getting-started/task_type_sumup.png) + +You can get a global view or focus on a **specific status** or **Artist's name**. As on the global page, the sum-up will update with each filter applied. + + +![Task Type Sum-up Filtered](./docs/img/getting-started/task_type_sumup_filter.png) + +This way, you can closely monitor the performance and efficiency of specific tasks and artists, ensuring that estimations align with actual durations and making adjustments as necessary. + +### Durations over Estimations for an Asset / Shot + +To closely examine the details, you can display **Estimation** and **Time Spent** columns (duration) for each asset and shot in Kitsu. + +On the global page for shots or assets, you can see the sum-up of each task's **Estimation** and **Duration**. This allows you to quickly identify discrepancies or issues. + +![Global Shot Estimation](./docs/img/getting-started/global_shot_est.png) + +### Detailed Analysis + +If something appears wrong or needs further investigation, click on the asset or shot name to go to the detail page. + +On the detail page, at the top left of the screen, you'll find a summary of the asset's or shot's lifecycle. This includes details of each task's **Status**, **Estimation**, **Duration**, **Start and Due Date**, and **Assignation**. + +![Detail Shot Estimation](./docs/img/getting-started/shot_detail_casting.png) + +This comprehensive view helps you understand where the discrepancies lie and take corrective actions if necessary. By closely monitoring these details, you can ensure better alignment between estimations and actual durations, leading to more accurate future planning and resource allocation. + +## Checking Quotas + +Kitsu provides two methods for calculating quotas per **shot Task Type**. + +### Method 1: Timesheet-Based Calculation + +This method weights quotas according to the time spent on tasks as recorded in the timesheets. + +- **Task Completion**: Shots are considered completed upon the first feedback request. The quotas are then weighted based on the time recorded in the timesheet. + +![Quotas stat page day weighted](./docs/img/getting-started/quotas_day_weighted.png) + +In this example, Kitsu calculates the daily quota using timesheet data. + +![Quotas stat page day weighted detail](./docs/img/getting-started/quotas_day_weighted_detail.png) + +### Method 2: Status-Based Calculation + +If no timesheet data is available, Kitsu uses status changes to calculate quotas. + +- **Task Start**: The task is considered to have started when its status changes to WIP. +- **Task Completion**: The task is considered completed on the day the feedback request is made. + +### Detailed Quota Calculation + +Kitsu splits the completed frames among all business days between the task's start and end dates, attributing the number of frames (or seconds, or tasks) submitted per day/week/month to each artist. + +![Quotas stat page day status](./docs/img/getting-started/quotas_day_status.png) + +At any point, you can click on a number to see detailed information in the right panel. + +![Quotas stat page day weighted](./docs/img/getting-started/quotas_day_status.png) + +::: danger +**Note**: If no timesheet is filled, Kitsu defaults to considering: +- The task started with the first status change to WIP. +- The task was completed on the day the feedback request was made. +::: + +This method ensures that even in the absence of detailed timesheet data, there is a reliable way to track task progress and calculate quotas accurately. + +## Team Timesheets + +::: warning +All of the previous chapters are based on the fact that **Estimation** and **Duration** are filled for each task. +::: + +Everybody has to do their part. You and the supervisor will handle the estimation, while your team will fill out their timesheets. + +Navigate to the main menu and select the Timesheet page. + +![Timesheet Global Day](./docs/img/getting-started/timesheet_day.png) + +### Viewing Timesheets + +On this page, you can view each team member's timesheet by day. This allows you to check whether they fill it out daily, took a day off, or worked extra hours. + +If you have a question about a timesheet entry, click on it to see the details of the production, task type, and specific task. + +![Timesheet Detail Day](./docs/img/getting-started/timesheet_detail.png) + +Once everything looks good at the day level, you can change the **Detail Level** from Day to Week, Month, or Year. + +![Timesheet Global Week](./docs/img/getting-started/timesheet_week.png) + +You can view all the productions you manage simultaneously or look at each production individually. + +### Exporting Timesheets + +As with all other pages in Kitsu, you can export the timesheet data as a CSV file and open it in spreadsheet software for further analysis. + +# Building Studio Reports + +## Studio Resource Overview + +As a Producer, you need to know everything. + +Usually, this involves keeping track of numerous details, attending multiple meetings with your production team, and constantly verifying everything yourself. Alternatively, you could subscribe to all the tasks and be overwhelmed by notifications, which disrupt your focus every time you stop to read them. + +The perfect solution is to have all the production stats on one page, always up-to-date. + +Welcome to the **All Tasks** page. + +![Newsfeed Studio Page](./docs/img/getting-started/all_tasks_stat.png) + +Here, you can see the status of all productions at once. You can filter the list by **Production**, **Task Status**, **Task Type**, and **Person**. Clicking on a line opens the comment panel on the right, providing all the information you need. + +If you need more detailed information, especially about a specific timeframe, you can use the **Studio > News Feed** page. + +With the **Filters Builder** button, you can define a specific time frame. + +![Newsfeed Studio detailed Page](./docs/img/getting-started/newsfeed_studio_detail.png) + +For example, if you want to focus on the workload a supervisor for a specific month, select their name and then pick a date in the **From** box. + +## Current State of All Productions + +To ensure your studio functions smoothly, you need to stay on top of all ongoing productions. This is where the **Productions** section can help. Access it from the global menu under the **Studio** section. + +From there, click on the **Load stats** button to see the current state of your productions. + +![Productions Stats](./docs/img/getting-started/production_stat.png) + +For more detailed information, visit the **Sequence Stats** and **Asset Types Stats** pages of all the productions. + +### Stats Pages + +The **Sequence Stats** page provides pie charts of the entire production on a single page, broken down by sequence. The color scheme of the pie charts matches the status, allowing you to quickly understand the state of your production. + +The first line is **all sequences**, representing the whole production, and the first column, **All**, includes all the tasks simultaneously. + +![Sequence Stat Page](./docs/img/getting-started/global_view_sequence.png) + +By focusing on this first pie chart, you can see the exact state of your production. For more details, look at the rest of the line for a global view of each task type's state. + +The **Asset Types Stats** page provides the same level of detail for assets. + +![Asset Type Stat Page](./docs/img/getting-started/global_view_asset.png) + +You can also display data as **Counts**, showing the exact number of shots/frames with the percentage per status. + +![Asset count Stat Page](./docs/img/getting-started/global_view_asset_detail.png) + +You can also export this page as a `.csv` text file to import it into spreadsheet software. + +Navigate from production to production using the **Navigation** menu at the top of the screen. You will stay on the same page, allowing you to check all the production stats by selecting each production. + +![Sequence Stat Navigation](./docs/img/getting-started/global_sequence_navigation.png) + +## Studio Occupancy Rate + +The **Team Schedule** allows you to see all artists with assigned tasks. Each row represents an artist, and unfolding an artist's row will show the details of their tasks. + +![Team Schedule](./docs/img/getting-started/team_schedule_global.png) + +### Focusing on Specific Timeframes + +You can focus on a specific timeframe by setting the **Start** and **End Date**. Adjust the zoom level to get more detailed information on the assigned tasks. You can choose to see all **Departments** or only a specific one and focus on a single **Person**. + +If an artist has several tasks on the same day, the tasks will be piled up, with **one line for each task**. + +![Team Schedule Filtered](./docs/img/getting-started/team_schedule_filtered.png) + +### Modifying the Schedule + +You can move tasks around by grabbing them and placing them on another day. Any changes you make on the Team Schedule will be applied to the task type schedule. + +If an artist has a break between two tasks, the sum-up line will not break to show it. Instead, it shows the first and last tasks assigned to the artist. + +## Utilize the Main Schedule + +With the **Main Schedule**, you can access all the **Production Schedules** at once. + +![Main Schedule](./docs/img/getting-started/main_schedule_fold.png) + +If you unfold a production, you will see the details of each **Task Type** used in that production. By unfolding multiple productions, you can which teams are being utilized simultaneously. + +![Main Schedule Unfolded](./docs/img/getting-started/main_schedule_unfold.png) + +You can move each **Task Type Bar** to adjust the schedule to fit the studio's needs. + +::: warning +Each change you make will be applied to the Production Schedule. +::: + +# Artist Workflows + +# Getting Started as an Artist + +This guide will help you get started and understand the Kitsu's key features as an artist. + +## Initial Setup and Profile Customization + +Start by setting up your profile to update your personal details and customize Kitsu’s interface. This will help your team recognize you and allow you to tailor notifications and settings to fit your workflow. + +1. **Access Your Profile**: + Click your avatar at the top right of the screen, then select **Profile**. + +2. **Customize Your Experience**: + - Update your name, email, phone number, timezone, and website language. + - Upload an avatar photo to help others recognize you. + - Choose notification preferences (email or Slack). + - Customize the **Theme** color and toggle the **Support Chat** visibility. + +![User profile](./docs/img/getting-started/user_profil.png) + +:::tip Pro Tip +This section also provides quick links to **Documentation**, **Tutorials**, our **Discord** community, **YouTube** channel, and our public **Roadmap**, ensuring you have access to helpful resources at any time. +::: + +For security purposes, it’s highly recommended to replace the default password with a strong and unique one. + +![Change password](./docs/img/getting-started/user_password.png) + +## Managing Your Assignments + +Your **My Tasks** page is your main hub for assignments and opens automatically upon login. Here you can see a list of tasks you are assigned along with some key information. + +### Key Information Available: + +- **Production**: The project your task is associated with. +- **Entity**: The specific asset or shot assigned to you. +- **Estimates & Duration**: Time-related information for your tasks. +- **Due Date**: The deadline for completing your task. +- **Status** and **Priority**: Key details to understand task urgency. + +![My tasks page](./docs/img/getting-started/my_task_page.png) + +### Additional Features: + +- Under the **Show** dropdown, you can choose to display **All Tasks** or focus on those **Due This Week**. +- Under the **Sorted By** dropdown, you can sort tasks by **Name**, **Priority**, **Status**, **Estimation**, or **Last Comment**. +- Use these filters to narrow down your list of tasks, or use the search box to find a specific task. + +![Task sorting and filtering](./docs/img/getting-started/mytask_sort.png) + +You can access **My Tasks** via: +- The shortcut at the top of the screen. +- The **User** section of the main menu under **MY TASKS**. +- Clicking the Kitsu logo. ![Main menu](./docs/img/getting-started/main_button.png) + +## Updating Task Progress + +Once you've made progress on your task, you'll want to update your team on its status. + +### Updating Task Statuses +1. Click the task’s **Status** icon on the **My Tasks** page or the relevant asset page. +2. Add comments to provide updates or ask questions. +3. Change the status (e.g., from "Ready" to "WIP"). +4. Click **Post** to save changes. + +![Changing status](./docs/img/getting-started/changing_status.png) + +You can edit your most recent comment by clicking the **History** button and selecting **Edit**. ![Edit button](./docs/img/getting-started/edit_button.png) + +## View Your Assignments (Board View) + +The **Board Tab** displays tasks organized in columns based on their status. Each task card includes: +- A Thumbnail +- Task type name +- Entity name + +![Board view](./docs/img/getting-started/artist_board_page.png) + +- Clicking a card opens a panel on the right to view or add comments. +- To update a task’s status, drag it to the desired column. + +## View Your Assignments (Calendar View) + +The **Calendar View** displays tasks according to their **Start** and **Due Dates**. Tasks spanning multiple days are visually extended across the calendar. + +![Calendar view](./docs/img/getting-started/artist_calendar_page.png) + +- Clicking a task opens the right-side panel for updates and comments. +- Like other views, you can sort and filter tasks here. + +## Share Your Concepts + +If you're a **Concept Artist**, you can upload and share concepts for review. + +### Uploading Concepts: +1. From the **Todo Page**, click **Return to Production** to access the dashboard. +2. Navigate to the **Concepts** page via the main menu. +3. Click **Add a new reference to concepts** and upload your files. + +![Upload concepts](./docs/img/getting-started/concept_empty.png) + +### Linking Concepts to Assets: + +Once a concept has been uploaded, you'll want to link it to an asset to ensure it is associated with the correct production element, making it easier for your team to reference and provide feedback within the proper context. + +1. Open the concept’s comment panel and click **Link**. +2. Select the assets you want to associate with the concept. + +![Link assets](./docs/img/getting-started/concept_link.png) + +## Request a Review + +Once your task has been completed, you can submit it for review. To do this: +1. Change the task status to **Waiting for Approval (WFA)**. +2. Attach a preview file by dragging it into the upload area or clicking **Attach Preview**. +3. Click **Post** to finalize your submission. + +![Request review](./docs/img/getting-started/add_preview.png) + +Previous revisions are saved and remain accessible for reference. + +![Revision history](./docs/img/getting-started/previewv2.png) + +## Complete Your Timesheet + +If your production requires it, you can log your time spent using the **Timesheets** tab or the **Timesheets** shortcut button at the top of the screen. + +### How to Log Time: +- Use the slider next to each task to record hours spent. +- For quick input, use the **1**, **4**, or **8 hours** buttons. + +![Timesheet view](./docs/img/getting-started/timesheets.png) + +### Missed a Day? +Click the date picker to backfill entries. You can also mark days as **Day Off** if you weren't working on that day. + +![Backfill timesheets](./docs/img/getting-started/timesheet_change_date.png) + +# Developer Workflows + +# Custom Actions + +## What are Custom Actions? + +A custom action is a simple HTTP request that sends information from your current Kitsu selection to a custom endpoint. Essentially, when a user is in the Kitsu UI, they can send a request to another server containing the IDs of the selected elements. + +### Goal + +The goal is to create an action outside of Kitsu (until a plugin system is available) without modifying the Kitsu/Zou core code. Essentially, it's a web request, usually a POST (but can be a GET) to a page or service you manage yourself. You catch the request and then perform an action with it. + +Examples include: + +- Debug page (displaying all accessible information for given objects, including field names, etc.) +- Launch render in CGRU or Flamenco +- Generate statistics pages for the APM +- Create special playlists +- Launch a custom protocol (with a service waiting for it) to start a video player, any DCC, etc. +- Integrate with an asset manager like Kabaret to open it at the right spot or launch some actions + +Custom actions can be anything as long as you can catch the request (using, for example, a Python web server such as Flask or Tornado.web). They are designed to extend Kitsu to systems you control. + +Useful information is provided to whatever catches the request, such as the current selection, the page you were on, the user who launched the action, etc. You can adapt the response based on the provided information. + +Note that you can also run the custom action in the background (using an AJAX request instead of opening a new page) if you don't need to provide feedback to the user. + +## How to Setup a Custom Action + +### Creation + +Only studio managers can set up a custom action. The custom action page is available in the right panel of the admin section. + +When you have access to the custom action page, you can create a new action via the add button on the top right. The action creation requires four pieces of information: + +![Add Custom Action](./docs/img/getting-started/add_custom_action.png) + +- **Name**: The name of the action. +- **URL**: The target URL (we strongly recommend using the same domain as your Kitsu installation). +- **Entity Type**: For which kind of entity the custom action will be available. +- **Use AJAX**: Specify if the request must be sent as an AJAX request or as a form. + +Once your action is created, it will be accessible in the action top bar. When a user selects tasks in the asset or shot lists, by going to the **Run custom action** section, they will be able to execute the custom action for the current selection. + +### Data Sent via a Custom Action + +Data is sent in JSON format. It contains an object with the following fields: + +* `personid`: The ID of the user claiming the action. +* `personemail`: The email of the user claiming the action. +* `projectid`: The ID of the project of selected entities. +* `currentpath`: Current url path in Kitsu web application. +* `currentserver`: Host of the Kitsu sending the custom action. +* `selection`: List of selected task IDs. +* `entitytype`: Type of entities for which tasks are selected. + +Example: +``` +{ + "personid": "b01bae1e-f829-458a-a1eb-131bb66628cc", + "personemail": "admin@example.com", + "projectid": "fa4d7f04-b8e0-4518-8dbc-2f24997ca76e", + "currentpath": "/productions/fa4d7f04-b8e0-4518-8dbc-2f24997ca76e/assets", + "currentserver": "localhost", + "selection": "95c171e1-dfff-498f-93e3-548a739e3202", + "entitytype": "asset" +} +``` + +# Bots + +Bots in Kitsu are non-physical users that can perform automated tasks, allowing you to run scripts and interact with Kitsu's API without logging in as a real user. + +::: tip +Bots do not count as active users, so you can create as many as you need, regardless of your subscription plan. +::: + +## Why Use a Bot + +The primary use of bots is for scripting with Gazu or other applications that can use the Kitsu API. Bots can access almost all API routes except those limited to real users. + +**Key Benefits:** +- Perform automated tasks and scripts +- Interact with Kitsu's API +- Maintain system security by using tokens + +## How to Create a Bot + +::: warning +When you first create a bot, you will receive a **JWT token**. This token is crucial for connecting to the API, so make sure to keep it safe. +::: + +1. **Navigate to the Bots Page:** On the Main Menu, under the Admin section, go to the Bots page. + + ![Main menu Bots](./docs/img/getting-started/main_menu_bots.png) + +2. **Add a New Bot:** Click on the ![New Bots](./docs/img/getting-started/add_new_bot.png) button. A pop-up window will appear where you can fill in the bot's details. + + - **Name:** Give your bot a name. + - **Expiration Date:** Set an expiration date if needed. + - **Departments:** Link the bot to a specific department. + - **Role:** Define the role of the bot. + - **Active:** Choose whether the bot is active or inactive. + + ![Main creation Bots](./docs/img/getting-started/add_new_bot_pop.png) + +3. **Create the Bot:** Fill in the details and click **Create user**. + + ![Example creation Bots](./docs/img/getting-started/bot_example.png) + + A new pop-up will display the bot's **API token**. + + ![Example Bots Token](./docs/img/getting-started/bot_token.png) + +## Managing Bots + +On the Bots page, you can manage your bots just like any user, such as: +- Assigning a role +- Setting an expiration date +- Changing their status to active or inactive + +## Example Bot Usage + +Here is an example script to retrieve the entire project **MyProduction** using a bot: + +```js +import gazu +gazu.set_host("yourkitsu.cg-wire.com/api/") +gazu.set_token("my_jwt_token") +p = gazu.project.get_project_by_name("MyProduction") +``` + +This script demonstrates how to use a bot to interact with the Kitsu API without using a real user's login credentials. Depending on your needs, if you have a bot that publishes comments, you can think about permission and give it the same rights as a physical user. + +## Security Considerations + +If your bot's token is compromised, you can regenerate a new token, which will revoke the old one, ensuring your system remains secure. + +# Kitsu Publisher + +Kitsu is a web application designed to streamline production progress sharing and delivery validation, enhancing communication among stakeholders for faster, higher-quality outputs. + +The Kitsu Publisher is a desktop application that bridges DCC tools with Kitsu, allowing artists to manage their tasks, add comments, and send previews directly from their tools. + +## DCC Integrations Status: + +Currently supported: +- Blender +- Toon Boom Harmony +- Unreal Engine + +Work in progress: +- Photoshop +- Nuke + +## Installation + +### Installation of the Kitsu Publisher + +#### Pre-Requisites + +You need to download (or to build if you want to: see [Development Environment](#development-environment)) your preferred installer/package/portable for the app corresponding to your OS in the [releases](https://github.com/cgwire/kitsu-publisher-next/releases/latest). + +All commands have the keyword {version} in the filenames, you need to replace the version with the current version of the Kitsu Publisher. + +#### On Linux + +- **deb package** (for Debian-based distributions): + - To install the package: + + ```shell + dpkg -i kitsu-publisher_{version}_amd64.deb + ``` + + - The package is now in your applications and in your $PATH. + +- **rpm package** (for RHEL-based distributions): + - To install the package: + + ```shell + rpm -i kitsu-publisher_{version}_x86_64.rpm + ``` + + - The package is now in your applications and in your $PATH. + +- **snap package**: + - To install the package: + + ```shell + snap install kitsu-publisher_{version}_amd64.snap --dangerous + ``` + + - The package is now in your applications and in your $PATH. + +- **tar.gz archive**: + - To extract the archive: + + ```shell + tar -xf kitsu-publisher-{version}.tar.gz + ``` + + - To run the app: + + ```shell + kitsu-publisher-{version}/kitsu-publisher + ``` + +- **AppImage**: + - to run the app: + + ```shell + ./Kitsu publisher-{version}.AppImage + ``` + +#### On Windows + +- **NSIS Installer**: + Double-click the installer `Kitsu-publisher-Setup-{version}.exe` and follow the instructions. + +- **MSI Installer**: + Double-click the installer `Kitsu-publisher-{version}-ia32.msi` to install the app. + +- **Portable application**: + Double-click the executable `Kitsu-publisher-{version}.exe`. + +- **Zip portable application**: + Extract the zip `Kitsu-publisher-{version}-ia32-win.zip`, and double-click `Kitsu publisher.exe`. + +#### On MacOS + +- **DMG Installer**: + Double-click the installer `Kitsu-publisher-{version}.dmg`, drag the Kitsu logo to the "Applications" folder. + +- **PKG Installer**: + ```shell + sudo installer -package Kitsu-publisher-{version}.pkg -target / + ``` + +- **Zip portable application**: + Double-click the zip `Kitsu-publisher-{version}-mac.zip`, then double-click the Kitsu Publisher icon. + +## Development Environment + +### Pre-Requisites + +To develop or to build the Electron app you need [Node.js](https://nodejs.org/en/)>=16.11 installed. + +### Dependencies + +To install all the dependencies needed by the Electron app you have to run in the project folder: + +```shell +npm install +``` + +### Run + +To run the Electron app in development mode you have to run an npm script: + +```shell +npm run dev +``` + +It will spawn an electron instance and a Vite development server. + +### Build the Electron App + +#### Pre-Requisites + +- On debian based Linux you need: + + - To install these packages: + + ```shell + apt-get install build-essential libcairo2-dev libpango1.0-dev \ + libjpeg-dev libgif-dev librsvg2-dev + ``` + + - If you want to build specific target like rpm you need to install: + + ```shell + apt-get install rpm + ``` + +- On Windows you need: + + - See the [wiki](https://github.com/Automattic/node-canvas/wiki/Installation:-Windows) of node-canvas. + +- On macOS you need (with [Homebrew](https://brew.sh/)): + + ```shell + brew install pkg-config cairo pango libpng jpeg giflib librsvg + ``` + +#### Building the App + +You need to run npm scripts: + +- If you only want to build an unpackaged directory: + + ```shell + npm run build + ``` + +- If you want to build for all targets: + + ```shell + npm run build:all + ``` + +## Installation of the DCCs connectors + +#### Pre-requisites + +Download the `connectors-{version}.zip` from the [latest releases](https://github.com/cgwire/kitsu-publisher-next/releases/latest) and unzip it. + +#### Blender (version>2.80) + +- You need to go inside the connectors/blender directory. + +- On Windows (with PowerShell): + + - If you want to be guided through the installation of the plugin, you have to right-click on the script install.ps1 and select "Run with PowerShell" to run the script in prompt mode. If you have multiple installations from installer of Blender it will install the plugin for all the installations (not if you select a portable Blender). + + - If you want to run the script with PowerShell command line it's possible, look at the help with: + + ```shell + .\install.ps1 -help + ``` + +- On Linux: + + - If Blender is installed with a system package (for example: deb or rpm): + + ```shell + bash ./install.sh --system + ``` + + - If Blender is an unpacked directory (tar.xz archive): + + ```shell + bash ./install.sh --unpacked-directory=PATH_TO_YOUR_PORTABLE_BLENDER + ``` + + - If Blender is installed with a snap package: + + ```shell + bash ./install.sh --snap + ``` + +- On macOS: + + - If Blender is installed with a dmg image or Homebrew: + + ```shell + bash ./install.sh --dmg + ``` + +#### Toon Boom Harmony + +- You need to go inside the connectors/harmony directory. + +- On Windows (with PowerShell): + + - If you want to be guided through the installation of the plugin, you have to right-click on the script install.ps1 and select "Run with PowerShell" to run the script in prompt mode. If you have multiple installations from installer of Toon Boom Harmony it will install the plugin for all the installations. + + - If you want to run the script with PowerShell command line it's possible, look at the help with: + + ```shell + .\install.ps1 -help + ``` + +- On macOS: + + - coming soon + +#### Unreal Editor (version>=5) + +- You need to go inside the connectors/unreal directory. + +- On Windows (with PowerShell): + + - If you want to be guided through the installation of the plugin, you have to right-click on the script install.ps1 and select "Run with PowerShell" to run the script in prompt mode. If you have multiple installations from installer of Unreal Editor it will install the plugin for all the installations. + + - If you want to run the script with PowerShell command line it's possible, look at the help with: + + ```shell + .\install.ps1 -help + ``` + +- On Linux: + + - coming soon + +- On macOS: + + - coming soon + +## Publishing Previews with the Kitsu Publisher + +You must first have the Kitsu publisher and the plugin installed on your computer. + +## Consult Your To-Do List + +Log in to the Kitsu Publisher using your Kitsu credentials. You will see your to-do list with similar options as in Kitsu. + +![Kitsu Publisher todo list](./docs/img/getting-started/publisher_todolist.png) + +To comment or publish on a task, click on the status. + +![Kitsu Publisher todo list status](./docs/img/getting-started/publisher_todolist_status.png) + +The comment panel will open with the previews and the whole history of this task. + +The first new element is that you have direct access to your timesheet. You can move the cursor to adapt the timeline to the number of hours spent on this specific task. + +![Kitsu Publisher to-do list Comment panel](./docs/img/getting-started/publisher_todolist_comment.png) + +When you are ready to publish your work, click on the **Add a review to publish** button. + +## Publish a Preview From the Publisher + +You can either upload the preview manually or let the Kitsu Publisher do it for you. Kitsu Publisher will detect the open DCC and project. + +![Kitsu Publisher DCC list](./docs/img/getting-started/publisher_dcc_list.png) + +Select your camera and render engine, and choose between a screenshot or full animation render. + +Here, for example, we select the **Screenshot** option. Kitsu publisher will ask your DCC to do the render for you and display the result. + +![Kitsu Publisher DCC Screenshot](./docs/img/getting-started/publisher_dcc_screenshot.png) + +Once satisfied, click **Confirm**, add your comment, change the status, and click **Post Comment** to upload the preview. + +![Kitsu Publisher comment](./docs/img/getting-started/publisher_post_comment.png) + +Now everybody logged in to Kitsu will see your comment and publish. + +## Setup the Publisher + +### Change the Save Directory and Add Scripts + +You can access settings via your avatar. + +![Kitsu Publisher settings Menu](./docs/img/getting-started/publisher_settings_menu.png) + +You have two options here: the first one is the directory for exports made by the DCCs. + +Per default, it's set to your temporary directory. You can change it, and then this specific folder will be used for all the exports. You can also use a network drive. + +The second option is about the command you can launch after the exports made by the DCCs but before the upload into Kitsu. + +You can launch a command or a script directly on the exported file, the folder, etc. + +![Kitsu Publisher settings option](./docs/img/getting-started/publisher_settings_option.png) + + +You can insert variables in your command. You just have to put the chosen variable under curly brackets (for example: {exportFile}). These variables are also in the environment variables at runtime. They are listed below: + +- exportsDirectory (String) : the directory path where the exports are made. +- exportFile (String): the path of the file that will be exported. +- exportIsAnimation (Boolean) : true if the export is an animation else false. +- exportIsScreenshot (Boolean) : true if the export is a screenshot else false. +- DCCName (String) : the name of the DCC. +- DCCVersion (String) : the version of the DCC. +- currentProject (String) : the path of the current project opened in the DCC. +- cameraSelected (String) : the name of the Camera selected. +- rendererSelected (String) : the name of the renderer selected. +- extensionSelected (String) : the name of the extension selected. +- entityName (String) : the name of the entity. +- entityTypeName (String) : the name of the entity type. +- episodeName (String) : the name of the episode type. +- fullEntityName (String) : the full name of the entity. +- projectName (String) : the name of the project. +- taskStatusName (String) : the name of the task status. +- taskTypeName (String) : the name of the task type + +### View the Result of the Setting on the Export Pop-Up + +Once your preview is rendered, you can check the directory and the scripts launched. + +![Kitsu Publisher settings result](./docs/img/getting-started/publisher_settings_result.png) + +Click on the options icon to see the command executed before the import. + +![Kitsu Publisher settings result detailed](./docs/img/getting-started/publisher_settings_resul_detailt.png) + +Confirm if everything is correct, then post your comment as usual. + +# Chat Integration + +## Discord Integration + +### Create a Bot Account + +1. Ensure you're logged on to the [Discord website](https://discord.com/). +2. Navigate to the [application page](https://discord.com/developers/applications). +3. Click on the "New Application" button. +4. Give the application a name (for example, "Kitsu") and click "Create". + +![Create application](./docs/img/discord/create_application.png) + +5. Create a Bot User by navigating to the "Bot" tab and clicking "Add Bot". +    - Click "Yes, do it!" to continue. + +![Create bot](./docs/img/discord/create_bot_user.png) + +6. You can add an icon for the bot by clicking the icon next to "Username". This icon will be used when the bot chats. + +7. Ensure that "Public Bot" is ticked if you want others to invite your bot. + +![Public Bot ticked](./docs/img/discord/public_bot.png) + +8. Ensure the "Server Members Intent" is ticked to allow the bot to see other members. + +![Server Members Intent ticked](./docs/img/discord/server_members_intent.png) + +9. Copy the token using the "Copy" button. + +10. Paste the token in Kitsu's "Settings" under the text field "Discord token (optional)" and click "Save settings". + +![Add discord token to settings](./docs/img/discord/add_discord_token_settings.png) + +### Inviting Your Bot + +Now that you've created a Bot User, you need to add it to a server. Follow these steps: + +1. Ensure you're logged on to the [Discord website](https://discord.com/). +2. Navigate to the [application page](https://discord.com/developers/applications). +3. Click on your bot’s page. +4. Go to the "OAuth2" tab and then to "URL Generator". +5. In "Scopes", tick "bot" only. + +![URL Generator Scopes](./docs/img/discord/url_generator_scopes.png) + +6. In "Bot Permissions", tick "Send Messages" only. + +![URL Generator Bot permissions](./docs/img/discord/bot_permissions.png) + +7. Use the resulting URL to add your bot to a server. Copy and paste the URL into your browser, choose a server to invite the bot to, and click "Authorize". + +> **_Note:_** To add the bot, the person needs "Manage Server" permissions. + +> **_Note:_** Users who want notifications enabled must be on the same server as the bot. + +### Enable Discord Notifications + +Each user can set notifications to be pushed to Discord in their profile. They need to switch "Discord notifications enabled" to "Yes" and enter their "Discord username" (formatted as username#number). + +![Add discord username in profile](./docs/img/discord/add_discord_username_profile.png) + +You're done! + +## Slack Integration + +The Slack integration requires creating a dedicated application in your Slack space. The following steps will guide you through the process. + +### Create a Kitsu Application in Slack + +To start, connect to [https://api.slack.com/apps](https://api.slack.com/apps). + +Click the "Create New App" button: + +![Create new app](./docs/img/slack/slack_create_app_01.png) + +Enter "Kitsu" as the name and choose the workspace you want to link with your Kitsu instance: + +![Choose workspace](./docs/img/slack/slack_create_app_02.png) + +### Set the Right Permissions + +After creating the app, go to the app page by clicking on its name in the list. Go to the *Basic Information* section and click on the *Permissions* button at the bottom right: + +![Permissions button](./docs/img/slack/slack_create_app_03.png) + +In the scopes section, add the required permission: + +![Add scope](./docs/img/slack/slack_create_app_04.png) + +The required permission scope is `chat:write:bot`: + +![Permission scope](./docs/img/slack/slack_create_app_05.png) + +### Install the App in Your Workspace + +Proceed to the app installation in the workspace. Go to the *Install App* section and click on **Install App To Workspace** button to install: + +![Install app](./docs/img/slack/slack_create_app_06.png) + +Confirm the installation: + +![Confirm installation](./docs/img/slack/slack_create_app_07.png) + +Your Kitsu Slack App is now up and running! You just need to link your Kitsu to the notifications sent to your Slack workspace. + +### Get the Token + +Return to the *Install App* section. You should see the token needed to link your Kitsu instance to Slack: + +![Get token](./docs/img/slack/slack_create_app_08.png) + +### Link Kitsu to Your New Slack Application + +With your valid token, go to the settings page in Kitsu and enter the token: + +![Add token in settings](./docs/img/slack/slack_kitsu_settings.png) + +### Enable Slack Notifications in Your Profile + +Finally, go to your profile section to turn on Slack notifications. Enter the Member ID you use on Slack, which you can find in your Slack profile by clicking on "More": + +![Find member ID](./docs/img/slack/slack_display_name1.png) + +![Member ID](./docs/img/slack/slack_display_name2.png) + +In your Kitsu profile, set the Slack notifications to "on" and enter your Slack nickname: + +![Configure Slack notifications](./docs/img/slack/slack_configuration.png) + +You can now enjoy notifications directly in your Slack workspace! + +![Slack notifications](./docs/img/slack/slack_kitsu_notifications.png) + +## Mattermost Integration + +### Enable Incoming Webhooks, Custom Username, and Profile Picture for Webhooks + +1. Ensure you are logged in as a system admin account on your Mattermost server. +2. Check if your Mattermost installation can receive incoming webhooks and set a custom username and profile picture for webhooks. +   1. Go to "System Console" --> "Integrations" --> "Integration Management". +    +   ![Integration management](./docs/img/mattermost/integration-management.png) +    +   2. Ensure the parameters "Enable incoming Webhooks", "Enable integrations to override usernames", and "Enable integrations to override profile picture icons" are set to true. + +   ![Enable incoming webhooks](./docs/img/mattermost/enable-incoming-webhooks.png) + +### Set a Webhook in Mattermost + +1. Ensure you are logged in as a system admin account on your Mattermost server. +2. Go to "Integrations" --> "Incoming Webhooks" --> "Add incoming Webhook". + +   ![Add incoming webhook](./docs/img/mattermost/add-incoming-webhook.png) + +3. Create the incoming webhook: + +   ![Create incoming webhook](./docs/img/mattermost/create-incoming-webhook.png) + +* **Title**: Kitsu +* **Description**: Kitsu +* **Channel**: You can create a new channel or use an existing one because the message will be sent to a user. +* **Lock to this channel**: Set to False. +* **Username**: Kitsu (this will be overridden by Kitsu). +* **Profile Picture**: Not important; it will be overridden by Kitsu. + +4. After clicking "Save", Mattermost will generate a new URL. Copy this URL. + +5. Paste the URL in the "Settings" of Kitsu under the text field "Mattermost Webhooks (optional)" and click "Save settings". + +   ![Add mattermost webhook settings](./docs/img/mattermost/add_mattermost_webhook_settings.png) + +> **_Note:_** Users who want notifications enabled must be on the same Mattermost server used in these steps. + +### Enable Mattermost Notifications + +Each user can set notifications to be pushed to Mattermost in their profile. They need to switch "Mattermost notifications enabled" to "Yes" and enter their "Mattermost username". + +![Add Mattermost username in profile](./docs/img/mattermost/add_mattermost_username_profile.png) + +You're done! + +# Open Source Setup + +## Cloud Hosting + +If your version of Kitsu is hosted and maintained by CGWire, you don't have anything to install. Simply connect to the URL provided to you to start using Kitsu! + +## Self-Hosting + +To run properly, Kitsu requires Zou, the database API. Information related to the installation of both modules is located in the Zou installation documentation. + +* [Deploying Zou](https://zou.cg-wire.com/) +* [Deploying Kitsu](https://zou.cg-wire.com/#deploying-kitsu) + +If you have technical skills, you can run Kitsu/Zou through Docker to try it out: + +```shell +docker run -d -p 80:80 --name cgwire cgwire/cgwire +``` + +Then you can access Kitsu through [http://localhost](http://localhost). + +## Development Environment + +### Prerequisites + +Prior to setting up the Kitsu development environment, make sure you have the following elements installed: + +* [Node.js](https://nodejs.org) >= 20.18 +* A [Zou development instance](https://zou.cg-wire.com/development/) up and running on port 5000 +* A [Zou Events development instance](https://zou.cg-wire.com/development/) up and running on port 5001 (optional) + +### Using Docker Image + +You can use our [Docker image](https://hub.docker.com/r/cgwire/cgwire), but you will need to set two environment variables: + +* `KITSU_API_TARGET` (default: http://localhost:5000): The URL where the API can be reached. +* `KITSU_EVENT_TARGET` (default: http://localhost:5001): The URL where the event stream can be reached. + +In that case, run the development environment with the following command: + +```shell +KITSU_API_TARGET=http://localhost/api KITSU_EVENT_TARGET=http://localhost npm run dev +``` + +The credentials for the Docker image are: admin@example.com / mysecretpassword + +## Development + +To start modifying Kitsu, clone the repository: + +```shell +git clone https://github.com/cgwire/kitsu.git +``` + +Then download the dependencies: + +```shell +cd kitsu +npm install +``` + +Finally, start the development environment and view the results at `http://localhost:8080`: + +```shell +npm run dev +``` + +Any changes will automatically update the page. + +## Build + +To build your code, run this command: + +```shell +npm run build +``` + +## Tests + +Run tests with the following command: + +```shell +npm run test:unit +``` + +## Architecture + +Kitsu is based on the [Vue.js](https://vuejs.org/guide/) framework. The Vue.js documentation is exhaustive and very clear. We encourage you to read it before making significant changes to the code. + +The architecture is based on [Vuex](https://vuex.vuejs.org) and [vue-router](https://router.vuejs.org). Their documentation is also very good, and we recommend reading it. The main idea is that: + +* URL routes give the main context. +* Views are described in components through HTML, CSS, and small pieces of JavaScript. +* Shared state is stored inside stores, which are modified through mutations (a kind of event bus to request state changes) and actions. +* Actions are similar to mutations but allow asynchronous operations. Mainly, actions fire mutations and send requests to the server. +* Stores provide getters to access state properties from components. +* Local change logic is kept inside components. +* Getters, actions, and mutations must be testable without a browser. + +# Frequently Asked Questions + +This FAQ guide provides quick solutions to common Kitsu issues, such as login problems, task management, and production organization. Explore the sections below for step-by-step instructions and helpful tips. For further support, check the detailed [Kitsu documentation](../configure-kitsu/) or contact support. + +## Login Issues + +### I can't log in to Kitsu anymore +The first thing to check is the **web address** you are using to log in. + +- If the web address is **account.cg-wire.com/signin** and you see the CGWire logo, you are on the **wrong page**. + + ![Account login](./docs/img/getting-started/account_login.png) + + The **account page** is only for managing subscriptions, invoices, etc. You won't have access unless you've registered for a subscription. + +- The correct web address for your Kitsu instance should look like **your-studio-name.cg-wire.com**. On this page, you'll be prompted to log in, and you should see the Kitsu logo. + + ![Kitsu login](./docs/img/getting-started/kitsu_login.png) + +If you're unsure of the correct link: +- Check the invitation email you received. +- Contact your studio manager for assistance. + +## Task Management + +### I created a new Task Type, but I don't see it in my production +If you've created a new task type ([see documentation](../configure-kitsu/#task-types)) but it isn’t appearing in your production, it’s likely because task types need to be explicitly added to your **Production Library** after being created in the **Studio Library**. + +#### Understanding the Difference: +- **Studio Library**: This is where all task types are initially created and stored for your studio. +- **Production Library**: Each production has its own library, and task types must be added here before they can be used within that production. + + +#### Steps to Add Task Types to Your Production +1. Go to your production **Settings** page from the navigation menu. + ![Production Settings page](./docs/img/getting-started/drop_down_menu_setting.png) + +2. Navigate to the **Task Types** tab. + ![Task Type Settings page](./docs/img/getting-started/setting_task_add.png) + +3. Select the appropriate entity tab (e.g., assets, shots, sequences, episodes, edits). +4. Find your task type in the list on the right and click to add it. + +Once added, go back to your entity page and click **Add Task Type**. +![Add Task Type](./docs/img/getting-started/add_tasktype.png) + +:::warning +**Permissions**: + If you can't see the **Settings** option in the main menu, you may not have the necessary permissions. Please contact your studio administrator if you do not have this option. +::: + +### My Task Type columns are not in the right order +If task type columns appear out of order, you can adjust them: + +- **Studio-wide order**: + 1. Go to the main menu under the **ADMIN** section and click **Task Types**. + ![Task Type admin Menu](./docs/img/getting-started/menu_tasktype.png) + 2. Drag and drop task types into the desired order. + ![Task Type order](./docs/img/getting-started/created_task_top.png) + +- **Production-specific order**: + 1. Go to the **Settings** page for your production. + 2. Navigate to the **Task Types** tab and adjust the order by dragging and dropping. + +### Task Type columns are missing +If some task type columns are missing on the entity page: + +1. Check the department filter and ensure it is set to **All Departments**. + ![Department filtered view](./docs/img/getting-started/department_filtered_view.png) + +2. Ensure the **Show additional information** button is highlighted. + ![Hide option](./docs/img/getting-started/display_hide_option.png) + +3. If columns are reduced, they won't display unless additional information is shown. + +## Team and Assignments + +### I can't assign anyone to a task + +If the list of assignees in the comment panel is empty, it means the people you've added to the **People** page haven't been added to the production. + +#### Steps to Add People to a Production + +1. Navigate to the **Team** page from the production menu. + ![Team menu](./docs/img/getting-started/drop_down_menu_team.png) + +2. The **Team** page will be empty, but you'll see a list of people on the right. + ![Team page empty](./docs/img/getting-started/people_empty.png) + +3. Add people individually or by department. + +Once added, they'll have access to the production, and you can assign them tasks. + +### All assignments have disappeared + +If assignees' avatars are no longer visible: + +1. Ensure you haven’t accidentally clicked the **Hide Assignments** button. + ![Hide option](./docs/img/getting-started/display_hide_option.png) + +2. Click the button again to make the avatars reappear. + +## Production Management + +### How to Delete or Archive a Production + +If you no longer need access to a production, you can choose to archive or delete it. + +- **Archiving**: This will remove the production from the navigation menu but keep it accessible for reference. +- **Deleting**: This is a permanent, non-reversible action that will completely remove the production from your Kitsu instance. + +#### Steps to Archive a Production + +1. Go to the main menu and select **Productions** under the **STUDIO** section. + ![Main Menu Productions](./docs/img/getting-started/main_menu_production.png) + +2. Locate the production you want to archive and click the edit button. + ![Edit Productions](./docs/img/getting-started/edit_production.png) + +3. Change the **Status** from **Open** to **Closed** and confirm. + ![Edit Productions option](./docs/img/getting-started/production_edit_status.png) + +The production is now archived and will no longer appear in the navigation menu. + +#### Steps to Delete a Production + +Only archived productions can be deleted. If you're sure you want to permanently remove a production: + +1. From the **Productions** list, hover over the archived (closed) production. A trash icon will appear. +2. Click the trash icon, and a confirmation dialog will open. +3. Type the name of the production to confirm the deletion. + +![Delete Production](./docs/img/getting-started/delete_production.png) + +:::warning +Deleting a production is permanent and cannot be undone. Only proceed if you’re certain the data is no longer needed. +::: + +## Miscellaneous + +### Where can I see the storage I'm using? + +Currently, Kitsu does not display storage usage directly in the interface or on your account page. This means you won't find a section in the app showing how much storage your productions or assets are consuming. + +If you need to check your storage usage: +- Contact your system administrator or IT team if Kitsu is hosted on your studio's servers. +- If you're using a cloud-hosted Kitsu instance, email **support@cg-wire.com** with your studio name and account details, where our team can provide you with the necessary information. diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.js new file mode 100644 index 0000000000..5cbb3e53f0 --- /dev/null +++ b/docs/.vitepress/config.js @@ -0,0 +1,449 @@ +import fs from 'node:fs' +import path from 'node:path' +import MermaidExample from "./mermaid-markdown-all.js"; + +const INCLUDE_RE = //g +const RANGE_RE = /\{(\d*),(\d*)\}$/ +const REGION_RE = /#([\w-]+)$/ + +// matches region markers across common comment styles: +// // #region foo | # region foo | | /* #region foo */ etc. +function regionMarker(name, tag) { + const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + return new RegExp( + `^\\s*(?:\\/\\/|#| | /* #region foo */ etc. + return content + .split(/\r?\n/) + .filter((line) => !/^\s*(?:\/\/|#| + + +`; + } + + return defaultRenderer(tokens, index, options, env, slf); + }; +}; + +export default MermaidExample; diff --git a/docs/.vitepress/theme/CopyMarkdownButton.vue b/docs/.vitepress/theme/CopyMarkdownButton.vue new file mode 100644 index 0000000000..771d8f33b2 --- /dev/null +++ b/docs/.vitepress/theme/CopyMarkdownButton.vue @@ -0,0 +1,47 @@ + + + + + \ No newline at end of file diff --git a/docs/.vitepress/theme/EmbedCard.vue b/docs/.vitepress/theme/EmbedCard.vue new file mode 100644 index 0000000000..fb54a9e37b --- /dev/null +++ b/docs/.vitepress/theme/EmbedCard.vue @@ -0,0 +1,97 @@ + + + + + \ No newline at end of file diff --git a/docs/.vitepress/theme/EmbedDocument.vue b/docs/.vitepress/theme/EmbedDocument.vue new file mode 100644 index 0000000000..6f7ed73fdc --- /dev/null +++ b/docs/.vitepress/theme/EmbedDocument.vue @@ -0,0 +1,26 @@ + + + + + \ No newline at end of file diff --git a/docs/.vitepress/theme/KitsuLayout.vue b/docs/.vitepress/theme/KitsuLayout.vue new file mode 100644 index 0000000000..afd3f3be97 --- /dev/null +++ b/docs/.vitepress/theme/KitsuLayout.vue @@ -0,0 +1,42 @@ + + + + + \ No newline at end of file diff --git a/docs/.vitepress/theme/Mermaid.vue b/docs/.vitepress/theme/Mermaid.vue new file mode 100644 index 0000000000..b45362c3cb --- /dev/null +++ b/docs/.vitepress/theme/Mermaid.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/docs/.vitepress/theme/NavbarSignupButton.vue b/docs/.vitepress/theme/NavbarSignupButton.vue new file mode 100644 index 0000000000..146d82ac79 --- /dev/null +++ b/docs/.vitepress/theme/NavbarSignupButton.vue @@ -0,0 +1,30 @@ + + + \ No newline at end of file diff --git a/docs/.vitepress/theme/custom.css b/docs/.vitepress/theme/custom.css new file mode 100644 index 0000000000..6d52aa98c8 --- /dev/null +++ b/docs/.vitepress/theme/custom.css @@ -0,0 +1,267 @@ +/** + * Colors: Solid + * -------------------------------------------------------------------------- */ + +:root { + --vp-c-white: #ffffff; + --vp-c-black: #000000; + + --vp-c-neutral: var(--vp-c-black); + --vp-c-neutral-inverse: var(--vp-c-white); +} + +.dark { + --vp-c-neutral: var(--vp-c-white); + --vp-c-neutral-inverse: var(--vp-c-black); +} + +/** + * Colors: Palette + * + * The primitive colors used for accent colors. These colors are referenced + * by functional colors such as "Text", "Background", or "Brand". + * + * Each colors have exact same color scale system with 3 levels of solid + * colors with different brightness, and 1 soft color. + * + * - `XXX-1`: The most solid color used mainly for colored text. It must + * satisfy the contrast ratio against when used on top of `XXX-soft`. + * + * - `XXX-2`: The color used mainly for hover state of the button. + * + * - `XXX-3`: The color for solid background, such as bg color of the button. + * It must satisfy the contrast ratio with pure white (#ffffff) text on + * top of it. + * + * - `XXX-soft`: The color used for subtle background such as custom container + * or badges. It must satisfy the contrast ratio when putting `XXX-1` colors + * on top of it. + * + * The soft color must be semi transparent alpha channel. This is crucial + * because it allows adding multiple "soft" colors on top of each other + * to create a accent, such as when having inline code block inside + * custom containers. + * -------------------------------------------------------------------------- */ + +:root { + --vp-c-gray-1: #dddde3; + --vp-c-gray-2: #e4e4e9; + --vp-c-gray-3: #ebebef; + --vp-c-gray-soft: rgba(142, 150, 170, 0.14); + + --vp-c-indigo-1: #3451b2; + --vp-c-indigo-2: #3a5ccc; + --vp-c-indigo-3: #5672cd; + --vp-c-indigo-soft: rgba(100, 108, 255, 0.14); + + --vp-c-purple-1: #6f42c1; + --vp-c-purple-2: #7e4cc9; + --vp-c-purple-3: #8e5cd9; + --vp-c-purple-soft: rgba(159, 122, 234, 0.14); + + --vp-c-green-1: rgb(0, 178, 66); + --vp-c-green-2: #299764; + --vp-c-green-3: #30a46c; + --vp-c-green-soft: rgba(16, 185, 129, 0.14); + + --vp-c-yellow-1: #915930; + --vp-c-yellow-2: #946300; + --vp-c-yellow-3: #9f6a00; + --vp-c-yellow-soft: rgba(234, 179, 8, 0.14); + + --vp-c-red-1: #b8272c; + --vp-c-red-2: #d5393e; + --vp-c-red-3: #e0575b; + --vp-c-red-soft: rgba(244, 63, 94, 0.14); + + --vp-c-sponsor: #db2777; +} + +.dark { + --vp-c-gray-1: #515c67; + --vp-c-gray-2: #414853; + --vp-c-gray-3: #32363f; + --vp-c-gray-soft: rgba(101, 117, 133, 0.16); + + --vp-c-indigo-1: #a8b1ff; + --vp-c-indigo-2: #5c73e7; + --vp-c-indigo-3: #3e63dd; + --vp-c-indigo-soft: rgba(100, 108, 255, 0.16); + + --vp-c-purple-1: #c8abfa; + --vp-c-purple-2: #a879e6; + --vp-c-purple-3: #8e5cd9; + --vp-c-purple-soft: rgba(159, 122, 234, 0.16); + + --vp-c-green-1: #3dd68c; + --vp-c-green-2: #30a46c; + --vp-c-green-3: #298459; + --vp-c-green-soft: rgba(16, 185, 129, 0.16); + + --vp-c-yellow-1: #f9b44e; + --vp-c-yellow-2: #da8b17; + --vp-c-yellow-3: #a46a0a; + --vp-c-yellow-soft: rgba(234, 179, 8, 0.16); + + --vp-c-red-1: #f66f81; + --vp-c-red-2: #f14158; + --vp-c-red-3: #b62a3c; + --vp-c-red-soft: rgba(244, 63, 94, 0.16); +} + +/** + * Colors: Background + * + * - `bg`: The bg color used for main screen. + * + * - `bg-alt`: The alternative bg color used in places such as "sidebar", + * or "code block". + * + * - `bg-elv`: The elevated bg color. This is used at parts where it "floats", + * such as "dialog". + * + * - `bg-soft`: The bg color to slightly distinguish some components from + * the page. Used for things like "carbon ads" or "table". + * -------------------------------------------------------------------------- */ + +:root { + --vp-c-bg: #ffffff; + --vp-c-bg-alt: #f6f6f7; + --vp-c-bg-elv: #ffffff; + --vp-c-bg-soft: #f6f6f7; +} + +.dark { + --vp-c-bg: #1b1b1f; + --vp-c-bg-alt: #161618; + --vp-c-bg-elv: #202127; + --vp-c-bg-soft: #202127; +} + +/** + * Colors: Borders + * + * - `divider`: This is used for separators. This is used to divide sections + * within the same components, such as having separator on "h2" heading. + * + * - `border`: This is designed for borders on interactive components. + * For example this should be used for a button outline. + * + * - `gutter`: This is used to divide components in the page. For example + * the header and the lest of the page. + * -------------------------------------------------------------------------- */ + +:root { + --vp-c-border: #c2c2c4; + --vp-c-divider: #e2e2e3; + --vp-c-gutter: #e2e2e3; +} + +.dark { + --vp-c-border: #3c3f44; + --vp-c-divider: #2e2e32; + --vp-c-gutter: #000000; +} + +/** + * Colors: Text + * + * - `text-1`: Used for primary text. + * + * - `text-2`: Used for muted texts, such as "inactive menu" or "info texts". + * + * - `text-3`: Used for subtle texts, such as "placeholders" or "caret icon". + * -------------------------------------------------------------------------- */ + +:root { + --vp-c-text-1: #3c3c43; + --vp-c-text-2: #67676c; + --vp-c-text-3: #929295; +} + +.dark { + --vp-c-text-1: #dfdfd6; + --vp-c-text-2: #98989f; + --vp-c-text-3: #6a6a71; +} + +/** + * Colors: Function + * + * - `default`: The color used purely for subtle indication without any + * special meanings attached to it such as bg color for menu hover state. + * + * - `brand`: Used for primary brand colors, such as link text, button with + * brand theme, etc. + * + * - `tip`: Used to indicate useful information. The default theme uses the + * brand color for this by default. + * + * - `warning`: Used to indicate warning to the users. Used in custom + * container, badges, etc. + * + * - `danger`: Used to show error, or dangerous message to the users. Used + * in custom container, badges, etc. + * + * To understand the scaling system, refer to "Colors: Palette" section. + * -------------------------------------------------------------------------- */ + +:root { + --vp-c-default-1: var(--vp-c-gray-1); + --vp-c-default-2: var(--vp-c-gray-2); + --vp-c-default-3: var(--vp-c-gray-3); + --vp-c-default-soft: var(--vp-c-gray-soft); + + --vp-c-brand-1: var(--vp-c-green-1); + --vp-c-brand-2: var(--vp-c-green-2); + --vp-c-brand-3: var(--vp-c-green-3); + --vp-c-brand-soft: var(--vp-c-green-soft); +} + +/* CUSTOM COMPONENTS CSS */ + +.title { + color: var(--vp-c-green-1) !important; +} + +.signature-block code { + white-space: pre-wrap; + word-break: break-word; +} + +.param-name, +.param-type { + width: 160px; +} + +.vp-doc a { + text-decoration: none; +} + +.main img { + + display: block; + margin: 0 auto; + + margin-top: 4rem; + margin-bottom: 4rem; + + border-radius: 8px; /* Smooth shadows adapt to border radius */ + + box-shadow: + 0 2.8px 2.2px rgba(0, 0, 0, 0.02), + 0 6.7px 5.3px rgba(0, 0, 0, 0.028), + 0 12.5px 10px rgba(0, 0, 0, 0.035), + 0 22.3px 17.9px rgba(0, 0, 0, 0.042), + 0 41.8px 33.4px rgba(0, 0, 0, 0.05), + 0 100px 80px rgba(0, 0, 0, 0.07); +} + +.medium-zoom-overlay { + /* position: fixed; */ + z-index: 30; +} + +.medium-zoom-image { + z-index: 31; +} \ No newline at end of file diff --git a/docs/.vitepress/theme/index.js b/docs/.vitepress/theme/index.js new file mode 100644 index 0000000000..3f015e599a --- /dev/null +++ b/docs/.vitepress/theme/index.js @@ -0,0 +1,28 @@ +import DefaultTheme from "vitepress/theme"; +import "./custom.css"; + +import mediumZoom from 'medium-zoom'; +import { onMounted, watch, nextTick } from 'vue' + +import Mermaid from "./Mermaid.vue"; +import KitsuLayout from "./KitsuLayout.vue" +import CopyMarkdownButton from './CopyMarkdownButton.vue' +import {useMediumZoomProvider} from './useMediumZoom.js' + +export default { + extends: DefaultTheme, + Layout: KitsuLayout, + setup() { + const initZoom = () => { + mediumZoom('.main img', { background: 'rgba(0,0,0,0.5)' }) + } + onMounted(() => { + initZoom() + }) + }, + enhanceApp({ app, router }) { + app.component('CopyMarkdownButton', CopyMarkdownButton) + app.component("Mermaid", Mermaid); + useMediumZoomProvider(app, router) + }, +}; diff --git a/docs/.vitepress/theme/useMediumZoom.js b/docs/.vitepress/theme/useMediumZoom.js new file mode 100644 index 0000000000..27f8d95088 --- /dev/null +++ b/docs/.vitepress/theme/useMediumZoom.js @@ -0,0 +1,24 @@ +import mediumZoom from 'medium-zoom' +import { inject, nextTick, onMounted, watch } from 'vue' + +export const mediumZoomSymbol = Symbol('mediumZoom') + +export const useMediumZoom = () => onMounted(() => inject(mediumZoomSymbol)?.refresh()) + +export const useMediumZoomProvider = (app, router) => { + if (import.meta.env.SSR) + return + const zoom = mediumZoom('.main img', { background: 'rgba(0,0,0,0.5)' }) + + zoom.refresh = () => { + zoom.detach() + zoom.attach(':not(a) > img:not(.image-src)') + } + + app.provide(mediumZoomSymbol, zoom) + + watch( + () => router.route.path, + () => nextTick(() => zoom.refresh()), + ) +} \ No newline at end of file diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js deleted file mode 100644 index ce83d504be..0000000000 --- a/docs/.vuepress/config.js +++ /dev/null @@ -1,232 +0,0 @@ -module.exports = { - title: 'Kitsu Documentation', - description: 'The documentation for Kitsu, the collaboration platform for creative teams', - head: [ - ['link', { rel: 'shortcut icon', type: 'image/x-icon', href: `./img/favicon.ico` }] - ], - locales: { - '/': { - lang: 'en-US', - }, - '/ja/': { - lang: 'ja-JP', - } - }, - themeConfig: { - locales: { - '/': { - lang: 'en-US', - label: 'English', - title: 'Kitsu Documentation', - description: 'The documentation for Kitsu, the collaboration platform for creative teams', - sidebar: [ - { - title: 'Introduction to Kitsu', - collapsable: false, - children: [['/', 'Introduction'], - '/configure-kitsu/', - '/team/' - ] - }, - { - title: 'Create Your Production', - collapsable: true, - children: [ - '/tvshow/', - '/feature/', - '/short/', - '/short-shot/', - '/short-asset/', - '/videogame/', - '/nft/' - ] - }, - { - title: 'Meta Columns, Filters and Production Settings', - collapsable: true, - children: [ - '/meta-column/', - '/filter/', - '/configure-prod/' - ] - }, - { - title: 'Assignments, Estimates and Scheduling', - collapsable: true, - children: [ - '/assignation/', - '/estimation/', - '/schedules/' - ] - }, - { - title: 'Statuses, Publishes, and Thumbnails', - collapsable: true, - children: [ - '/status/', - '/publish/', - '/thumbnails/' - ] - }, - { - title: 'Internal Review and Client Playlists', - collapsable: true, - children: [ - '/review/', - '/review-weekly/', - '/playlist-client/' - ] - }, - { - title: 'Supervisor Workflows', - collapsable: true, - children: [ - '/supervisor-team/', - '/supervisor-tasks/' - ] - }, - { - title: 'Producer Workflows', - collapsable: true, - children: [ - '/production-report/', - '/studio-report/' - ] - }, - { - title: 'Artist Workflows', - collapsable: true, - children: [ - '/artist/' - ] - }, - { - title: 'Developer Workflows', - collapsable: true, - children: [ - '/custom-actions/', - '/bots/', - '/publisher/', - '/chat-integration/', - '/installation/' - ] - }, - { - title: 'Frequently Asked Questions', - collapsable: true, - children: [ - '/faq/' - ] - } - ] - }, - '/ja/': { - lang: 'ja-JP', - label: '日本語', - title: 'Kitsu ドキュメント', - description: 'クリエイティブチームのコラボレーションプラットフォーム、Kitsuのドキュメント', - sidebar: [ - { - title: 'Kitsuの紹介', - collapsable: false, - children: [ - ['/ja/', 'Introduction'], - '/ja/configure-kitsu/', - '/ja/team/' - ] - }, - { - title: '制作物の作成', - collapsable: true, - children: [ - '/ja/tvshow/', - '/ja/feature/', - '/ja/short/', - '/ja/short-shot/', - '/ja/short-asset/', - '/ja/videogame/', - '/ja/nft/' - ] - }, - { - title: 'メタカラム、フィルター、および制作設定', - collapsable: true, - children: [ - '/ja/meta-column/', - '/ja/filter/', - '/ja/configure-prod/' - ] - }, - { - title: '割り当て、見積もり、およびスケジュール', - collapsable: true, - children: [ - '/ja/assignation/', - '/ja/estimation/', - '/ja/schedules/' - ] - }, - { - title: 'ステータス、公開、サムネイル', - collapsable: true, - children: [ - '/ja/status/', - '/ja/publish/', - '/ja/thumbnails/' - ] - }, - { - title: '社内レビューおよびクライアント用プレイリスト', - collapsable: true, - children: [ - '/ja/review/', - '/ja/review-weekly/', - '/ja/playlist-client/' - ] - }, - { - title: 'スーパーバイザーのワークフロー', - collapsable: true, - children: [ - '/ja/supervisor-team/', - '/ja/supervisor-tasks/' - ] - }, - { - title: 'プロデューサーのワークフロー', - collapsable: true, - children: [ - '/ja/production-report/', - '/ja/studio-report/' - ] - }, - { - title: 'アーティストのワークフロー', - collapsable: true, - children: [ - '/ja/artist/' - ] - }, - { - title: '開発者向けワークフロー', - collapsable: true, - children: [ - '/ja/custom-actions/', - '/ja/bots/', - '/ja/publisher/', - '/ja/chat-integration/', - '/ja/installation/' - ] - }, - { - title: 'よくある質問', - collapsable: true, - children: [ - '/ja/faq/' - ] - } - ] - } - } - } -} diff --git a/docs/.vuepress/styles/palette.styl b/docs/.vuepress/styles/palette.styl deleted file mode 100644 index ed2b2c53a5..0000000000 --- a/docs/.vuepress/styles/palette.styl +++ /dev/null @@ -1 +0,0 @@ -$accentColor = #00b242 diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index ca55cd0ef0..0000000000 --- a/docs/README.md +++ /dev/null @@ -1,114 +0,0 @@ - - -![Kitsu Banner](./img/kitsu-banner.png#logo-kitsu) - -# Kitsu Documentation - -[Kitsu](https://cg-wire.com/kitsu) is a collaboration platform for animation and VFX productions. Through its clean UI and shared database, it connects all relevant stakeholders throughout the production process, including artists, production managers, supervisors, vendors, and clients. - -### Introduction to Kitsu - -Here are some links to familiarize yourself with the basic concepts in Kitsu you'll need to be successful with your production. - -* [Getting Started With Kitsu](configure-kitsu/README.md): learn key principles and common vocabulary terms used within Kitsu to better plan your production workflow. -* [Preparing Your Team](team/README.md): Prepare your team members and define their departments and permissions. - -### Create Your Production - -Below you can find guides tailored to the specific type of production you are looking to create. - - * [Create a TV Show Production](tvshow/README.md) Create a TV show production with assets, shots, sequences, episodes and edits - * [Create a Feature Film Production](feature/README.md) Create a feature film production (approximately 1 000 entities) with assets, shots, sequences and edit. -* [Create a SHORT Production](short/README.md): Create a short production (approximately 500 assets and shots) with assets, shots, sequences and edit. - * [Create a SHOTS Only Production](short-shot/README.md) Create a short production (about 500 shots) with only shots, sequences and edit - * [Create an ASSET Only Production](short-asset/README.md) Create a short production (about 500 assets) with only assets. - * [Create a Video Game Production](videogame/README.md) Create a Video game production with assets, Maps, Level and Chapters (as tv show). - * [Create a NFT Collection](nft/README.md) Create a NFT Collection with assets, and NFT Collection. - -### Meta Columns, Filters & Production Settings - -* [Meta Columns](meta-column/README.md): Learn how to create and organize metadata from your production. -* [Filters](filter/README.md): Hone in on key information with powerful search functionality -* [Production Specific Workflow Settings](configure-prod/README.md): Tweak your specific production to your liking with various powerful settings. - -### Assignments, Estimates and Scheduling - -In this section, we will explain some of Kitsu's main use cases: - -* [Task Assignments](assignation/README.md): Learn how to add someone to a team and assign them to a task. -* [Estimates & Team Quotas](estimation/README.md): Learn how to calculate the number of days estimated to do a task (bids) and check your team's efficiency. -* [Schedules](schedules/README.md): Discover the different scheduling capabilities in Kitsu, from the studio level to the task level. - -### Statuses, Publishes and Thumbnails - -How keep your work organized, and your team updated on it's progress - -* [Statuses & Feedback](status/README.md): How to change statuses and keep your team updated on the progress of work. -* [Publishes](publish/README.md): How to publish and share work with your team. -* [Thumbnails](thumbnails/README.md): How to apply thumbnails to assets and shots. - -### Internal Review and Client Playlists - -How to organize internal and external reviews: - -* [Reviews](review/README.md): Learn how to review all feedback on a task. -* [Daily & Weekly Review](review-weekly/README.md): Quickly gather video versions and stay focused during the review. -* [Client Playlists](playlist-client/README.md): Collect and share your work with your client in a managed environment. - - -### Supervisor Workflows - -As a supervisor, your uses cases when using Kitsu may differ than your production team. - -* [Managing Your Department](supervisor-team/README.md): Discover methods for effectively managing and overseeing your team. -* [Task Supervision](supervisor-tasks/README.md): Learn how to stay on top of task assignments. - -### Producer Workflows - -As a producer, mastering the ability to zoom out from specifics to a holistic view is essential. - -* [Building Production Reports](production-report/README.md): Learn everything you need to know to create your production reports. -* [Building Studio Reports](studio-report/README.md): Ensure you're ahead of the game with your studio's productions. - - -### Developer Workflows - -As a developer, explore some of the possibilities for extending and integrating Kitsu within your studio's pipeline. - -* [Custom Actions](custom-actions/README.md): A custom action is a simple HTTP request that sends information from your current Kitsu selection to a custom end. -* [Bots](bots/README.md): The main use is for scripting with gazu (Kitsu's Python Client), and anything else that can use our API. -* [Kitsu Publisher](publisher/README.md): A web application used to share the progress of your productions and validate your deliveries. -* [Chat Integration](chat-integration/README.md): Get Kitsu notifications sent directly to popular messaging apps like Discord, Slack or Mattermost. -* [Open Source Setup](installation/README.md): Learn about how you can self-deploy a host a local version of Kitsu within your studio's environment. - - - - -### Tutorials - -Access comprehensive video tutorials on YouTube, highlighting crucial functionalities of Kitsu. Click the link below to view. - -[Kitsu Tutorials Channel](https://www.youtube.com/playlist?list=PLp_1gB5ZBHXqnQgZ4TCrAt7smxesaDo29) - - -### About the Authors - -Kitsu is written by CG Wire, a company based in France. We help animation studios to manage their productions and build efficient pipelines. - -We adhere to software craftsmanship principles whenever feasible. Our passion for coding is reflected in our commitment to delivering robust quality and providing an exceptional developer experience. With our extensive expertise, we help studios navigate the complexities of production, fostering more efficient collaboration, quicker delivery, resulting in better pictures. - -Visit [cg-wire.com](https://cg-wire.com) for more information. - -[![CG Wire Logo](./img/cgwire.png#logo-cgwire)](https://cg-wire.com) diff --git a/docs/artist/README.md b/docs/artist/README.md deleted file mode 100644 index 4af06cd67c..0000000000 --- a/docs/artist/README.md +++ /dev/null @@ -1,150 +0,0 @@ -# Getting Started as an Artist - -This guide will help you get started and understand the Kitsu's key features as an artist. - ---- - -## Initial Setup and Profile Customization - -Start by setting up your profile to update your personal details and customize Kitsu’s interface. This will help your team recognize you and allow you to tailor notifications and settings to fit your workflow. - -1. **Access Your Profile**: - Click your avatar at the top right of the screen, then select **Profile**. - -2. **Customize Your Experience**: - - Update your name, email, phone number, timezone, and website language. - - Upload an avatar photo to help others recognize you. - - Choose notification preferences (email or Slack). - - Customize the **Theme** color and toggle the **Support Chat** visibility. - -![User profile](../img/getting-started/user_profil.png) - -:::tip Pro Tip -This section also provides quick links to **Documentation**, **Tutorials**, our **Discord** community, **YouTube** channel, and our public **Roadmap**, ensuring you have access to helpful resources at any time. -::: - -For security purposes, it’s highly recommended to replace the default password with a strong and unique one. - -![Change password](../img/getting-started/user_password.png) - ---- - -## Managing Your Assignments - -Your **My Tasks** page is your main hub for assignments and opens automatically upon login. Here you can see a list of tasks you are assigned along with some key information. - -### Key Information Available: -- **Production**: The project your task is associated with. -- **Entity**: The specific asset or shot assigned to you. -- **Estimates & Duration**: Time-related information for your tasks. -- **Due Date**: The deadline for completing your task. -- **Status** and **Priority**: Key details to understand task urgency. - -![My tasks page](../img/getting-started/my_task_page.png) - -### Additional Features: -- Under the **Show** dropdown, you can choose to display **All Tasks** or focus on those **Due This Week**. -- Under the **Sorted By** dropdown, you can sort tasks by **Name**, **Priority**, **Status**, **Estimation**, or **Last Comment**. -- Use these filters to narrow down your list of tasks, or use the search box to find a specific task. - -![Task sorting and filtering](../img/getting-started/mytask_sort.png) - -You can access **My Tasks** via: -- The shortcut at the top of the screen. -- The **User** section of the main menu under **MY TASKS**. -- Clicking the Kitsu logo. ![Main menu](../img/getting-started/main_button.png) - ---- - -## Updating Task Progress - -Once you've made progress on your task, you'll want to update your team on its status. - -### Updating Task Statuses -1. Click the task’s **Status** icon on the **My Tasks** page or the relevant asset page. -2. Add comments to provide updates or ask questions. -3. Change the status (e.g., from "Ready" to "WIP"). -4. Click **Post** to save changes. - -![Changing status](../img/getting-started/changing_status.png) - -You can edit your most recent comment by clicking the **History** button and selecting **Edit**. ![Edit button](../img/getting-started/edit_button.png) - ---- - -## View Your Assignments (Board View) - -The **Board Tab** displays tasks organized in columns based on their status. Each task card includes: -- A Thumbnail -- Task type name -- Entity name - -![Board view](../img/getting-started/artist_board_page.png) - -- Clicking a card opens a panel on the right to view or add comments. -- To update a task’s status, drag it to the desired column. - ---- - -## View Your Assignments (Calendar View) - -The **Calendar View** displays tasks according to their **Start** and **Due Dates**. Tasks spanning multiple days are visually extended across the calendar. - -![Calendar view](../img/getting-started/artist_calendar_page.png) - -- Clicking a task opens the right-side panel for updates and comments. -- Like other views, you can sort and filter tasks here. - ---- - -## Share Your Concepts - -If you're a **Concept Artist**, you can upload and share concepts for review. - -### Uploading Concepts: -1. From the **Todo Page**, click **Return to Production** to access the dashboard. -2. Navigate to the **Concepts** page via the main menu. -3. Click **Add a new reference to concepts** and upload your files. - -![Upload concepts](../img/getting-started/concept_empty.png) - -### Linking Concepts to Assets: - -Once a concept has been uploaded, you'll want to link it to an asset to ensure it is associated with the correct production element, making it easier for your team to reference and provide feedback within the proper context. - -1. Open the concept’s comment panel and click **Link**. -2. Select the assets you want to associate with the concept. - -![Link assets](../img/getting-started/concept_link.png) - ---- - -## Request a Review - -Once your task has been completed, you can submit it for review. To do this: -1. Change the task status to **Waiting for Approval (WFA)**. -2. Attach a preview file by dragging it into the upload area or clicking **Attach Preview**. -3. Click **Post** to finalize your submission. - -![Request review](../img/getting-started/add_preview.png) - -Previous revisions are saved and remain accessible for reference. - -![Revision history](../img/getting-started/previewv2.png) - ---- - -## Complete Your Timesheet - -If your production requires it, you can log your time spent using the **Timesheets** tab or the **Timesheets** shortcut button at the top of the screen. - -### How to Log Time: -- Use the slider next to each task to record hours spent. -- For quick input, use the **1**, **4**, or **8 hours** buttons. - -![Timesheet view](../img/getting-started/timesheets.png) - -### Missed a Day? -Click the date picker to backfill entries. You can also mark days as **Day Off** if you weren't working on that day. - -![Backfill timesheets](../img/getting-started/timesheet_change_date.png) \ No newline at end of file diff --git a/docs/bots/README.md b/docs/bots/README.md deleted file mode 100644 index 0c0f4c3d6f..0000000000 --- a/docs/bots/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# Bots - -Bots in Kitsu are non-physical users that can perform automated tasks, allowing you to run scripts and interact with Kitsu's API without logging in as a real user. - -::: tip -Bots do not count as active users, so you can create as many as you need, regardless of your subscription plan. -::: - -## Why Use a Bot - -The primary use of bots is for scripting with Gazu or other applications that can use the Kitsu API. Bots can access almost all API routes except those limited to real users. - -**Key Benefits:** -- Perform automated tasks and scripts -- Interact with Kitsu's API -- Maintain system security by using tokens - -## How to Create a Bot - -::: warning -When you first create a bot, you will receive a **JWT token**. This token is crucial for connecting to the API, so make sure to keep it safe. -::: - -1. **Navigate to the Bots Page:** On the Main Menu, under the Admin section, go to the Bots page. - - ![Main menu Bots](../img/getting-started/main_menu_bots.png) - -2. **Add a New Bot:** Click on the ![New Bots](../img/getting-started/add_new_bot.png) button. A pop-up window will appear where you can fill in the bot's details. - - - **Name:** Give your bot a name. - - **Expiration Date:** Set an expiration date if needed. - - **Departments:** Link the bot to a specific department. - - **Role:** Define the role of the bot. - - **Active:** Choose whether the bot is active or inactive. - - ![Main creation Bots](../img/getting-started/add_new_bot_pop.png) - -3. **Create the Bot:** Fill in the details and click **Create user**. - - ![Example creation Bots](../img/getting-started/bot_example.png) - - A new pop-up will display the bot's **API token**. - - ![Example Bots Token](../img/getting-started/bot_token.png) - -## Managing Bots - -On the Bots page, you can manage your bots just like any user, such as: -- Assigning a role -- Setting an expiration date -- Changing their status to active or inactive - -## Example Bot Usage - -Here is an example script to retrieve the entire project **MyProduction** using a bot: - -```js -import gazu -gazu.set_host("yourkitsu.cg-wire.com/api/") -gazu.set_token("my_jwt_token") -p = gazu.project.get_project_by_name("MyProduction") -``` - -This script demonstrates how to use a bot to interact with the Kitsu API without using a real user's login credentials. Depending on your needs, if you have a bot that publishes comments, you can think about permission and give it the same rights as a physical user. - -## Security Considerations - -If your bot's token is compromised, you can regenerate a new token, which will revoke the old one, ensuring your system remains secure. \ No newline at end of file diff --git a/docs/chat-integration/README.md b/docs/chat-integration/README.md deleted file mode 100644 index f7c7bb8a07..0000000000 --- a/docs/chat-integration/README.md +++ /dev/null @@ -1,183 +0,0 @@ -# Chat Integration - -## Discord Integration - -### Create a Bot Account - -1. Ensure you're logged on to the [Discord website](https://discord.com/). -2. Navigate to the [application page](https://discord.com/developers/applications). -3. Click on the "New Application" button. -4. Give the application a name (for example, "Kitsu") and click "Create". - -![Create application](../img/discord/create_application.png) - -5. Create a Bot User by navigating to the "Bot" tab and clicking "Add Bot". -    - Click "Yes, do it!" to continue. - -![Create bot](../img/discord/create_bot_user.png) - -6. You can add an icon for the bot by clicking the icon next to "Username". This icon will be used when the bot chats. - -7. Ensure that "Public Bot" is ticked if you want others to invite your bot. - -![Public Bot ticked](../img/discord/public_bot.png) - -8. Ensure the "Server Members Intent" is ticked to allow the bot to see other members. - -![Server Members Intent ticked](../img/discord/server_members_intent.png) - -9. Copy the token using the "Copy" button. - -10. Paste the token in Kitsu's "Settings" under the text field "Discord token (optional)" and click "Save settings". - -![Add discord token to settings](../img/discord/add_discord_token_settings.png) - -### Inviting Your Bot - -Now that you've created a Bot User, you need to add it to a server. Follow these steps: - -1. Ensure you're logged on to the [Discord website](https://discord.com/). -2. Navigate to the [application page](https://discord.com/developers/applications). -3. Click on your bot’s page. -4. Go to the "OAuth2" tab and then to "URL Generator". -5. In "Scopes", tick "bot" only. - -![URL Generator Scopes](../img/discord/url_generator_scopes.png) - -6. In "Bot Permissions", tick "Send Messages" only. - -![URL Generator Bot permissions](../img/discord/bot_permissions.png) - -7. Use the resulting URL to add your bot to a server. Copy and paste the URL into your browser, choose a server to invite the bot to, and click "Authorize". - -> **_Note:_** To add the bot, the person needs "Manage Server" permissions. - -> **_Note:_** Users who want notifications enabled must be on the same server as the bot. - -### Enable Discord Notifications - -Each user can set notifications to be pushed to Discord in their profile. They need to switch "Discord notifications enabled" to "Yes" and enter their "Discord username" (formatted as username#number). - -![Add discord username in profile](../img/discord/add_discord_username_profile.png) - -You're done! - -## Slack Integration - -The Slack integration requires creating a dedicated application in your Slack space. The following steps will guide you through the process. - -### Create a Kitsu Application in Slack - -To start, connect to [https://api.slack.com/apps](https://api.slack.com/apps). - -Click the "Create New App" button: - -![Create new app](../img/slack/slack_create_app_01.png) - -Enter "Kitsu" as the name and choose the workspace you want to link with your Kitsu instance: - -![Choose workspace](../img/slack/slack_create_app_02.png) - - -### Set the Right Permissions - -After creating the app, go to the app page by clicking on its name in the list. Go to the *Basic Information* section and click on the *Permissions* button at the bottom right: - -![Permissions button](../img/slack/slack_create_app_03.png) - -In the scopes section, add the required permission: - -![Add scope](../img/slack/slack_create_app_04.png) - -The required permission scope is `chat:write:bot`: - -![Permission scope](../img/slack/slack_create_app_05.png) - - -### Install the App in Your Workspace - -Proceed to the app installation in the workspace. Go to the *Install App* section and click on **Install App To Workspace** button to install: - -![Install app](../img/slack/slack_create_app_06.png) - -Confirm the installation: - -![Confirm installation](../img/slack/slack_create_app_07.png) - -Your Kitsu Slack App is now up and running! You just need to link your Kitsu to the notifications sent to your Slack workspace. - -### Get the Token - -Return to the *Install App* section. You should see the token needed to link your Kitsu instance to Slack: - -![Get token](../img/slack/slack_create_app_08.png) - -### Link Kitsu to Your New Slack Application - -With your valid token, go to the settings page in Kitsu and enter the token: - -![Add token in settings](../img/slack/slack_kitsu_settings.png) - -### Enable Slack Notifications in Your Profile - -Finally, go to your profile section to turn on Slack notifications. Enter the Member ID you use on Slack, which you can find in your Slack profile by clicking on "More": - -![Find member ID](../img/slack/slack_display_name1.png) - -![Member ID](../img/slack/slack_display_name2.png) - -In your Kitsu profile, set the Slack notifications to "on" and enter your Slack nickname: - -![Configure Slack notifications](../img/slack/slack_configuration.png) - -You can now enjoy notifications directly in your Slack workspace! - -![Slack notifications](../img/slack/slack_kitsu_notifications.png) - -## Mattermost Integration - -### Enable Incoming Webhooks, Custom Username, and Profile Picture for Webhooks - -1. Ensure you are logged in as a system admin account on your Mattermost server. -2. Check if your Mattermost installation can receive incoming webhooks and set a custom username and profile picture for webhooks. -   1. Go to "System Console" --> "Integrations" --> "Integration Management". -    -   ![Integration management](../img/mattermost/integration-management.png) -    -   2. Ensure the parameters "Enable incoming Webhooks", "Enable integrations to override usernames", and "Enable integrations to override profile picture icons" are set to true. - -   ![Enable incoming webhooks](../img/mattermost/enable-incoming-webhooks.png) - -### Set a Webhook in Mattermost - -1. Ensure you are logged in as a system admin account on your Mattermost server. -2. Go to "Integrations" --> "Incoming Webhooks" --> "Add incoming Webhook". - -   ![Add incoming webhook](../img/mattermost/add-incoming-webhook.png) - -3. Create the incoming webhook: - -   ![Create incoming webhook](../img/mattermost/create-incoming-webhook.png) - -* **Title**: Kitsu -* **Description**: Kitsu -* **Channel**: You can create a new channel or use an existing one because the message will be sent to a user. -* **Lock to this channel**: Set to False. -* **Username**: Kitsu (this will be overridden by Kitsu). -* **Profile Picture**: Not important; it will be overridden by Kitsu. - -4. After clicking "Save", Mattermost will generate a new URL. Copy this URL. - -5. Paste the URL in the "Settings" of Kitsu under the text field "Mattermost Webhooks (optional)" and click "Save settings". - -   ![Add mattermost webhook settings](../img/mattermost/add_mattermost_webhook_settings.png) - -> **_Note:_** Users who want notifications enabled must be on the same Mattermost server used in these steps. - -### Enable Mattermost Notifications - -Each user can set notifications to be pushed to Mattermost in their profile. They need to switch "Mattermost notifications enabled" to "Yes" and enter their "Mattermost username". - -![Add Mattermost username in profile](../img/mattermost/add_mattermost_username_profile.png) - -You're done! \ No newline at end of file diff --git a/docs/configure-kitsu/README.md b/docs/configure-kitsu/README.md deleted file mode 100644 index ad00a619f9..0000000000 --- a/docs/configure-kitsu/README.md +++ /dev/null @@ -1,412 +0,0 @@ -# Getting Started With Kitsu - -With Kitsu, users can track various production projects, encompassing 2D and 3D production, VFX, video games, and other related endeavors. - -The content tracked by Kitsu can be as simple as still-frame advertisements, to extensive 3-hour feature films, accommodating projects with varying numbers of elements - -But before jumping into our production, we must first configure our **Studio Workflow**. - -## Studio Workflows -### Understanding Studio Workflows - -::: warning Definition -A workflow is defined as the structured coordination of tasks constituting the operational processes within a production. -::: - -For example, within a CGI production, tasks such as modeling, rigging, and shading are undertaken to finalize an asset. - -::: warning Definition -- Processes such as modeling, shading, etc., are referred to as a **Task Type**. -- An individual objects such as asset, shot, etc., are called **Entities**. -- A **task** can be defined as a specific action or activity that needs to be done. Tasks can be attributed to **entities** and will usually be categorized with a **task type**. - -::: - -Entities with corresponding tasks form foundation of your asset workflow. Each task will then be assigned to an artist. Once you have determined your assets workflow, you will do the same for the shots, sequences, etc. - -Once the workflow for tasks is defined, the next step involves establishing an **Approval Workflow**, which entails defining all the statuses utilized for communication within the team. Statuses will also be useful for tracking the progress of your production. - -The **Workflow** of your production is the sum of your Tasks and Status. - -### Global Library VS Production Library - -In Kitsu, you have two kinds of **libraries**: -- The first is the **Global Library** at the studio level. -Only the Studio manager has access to it. - -- The second is the **Production Library**, where you will pick elements created in the global library to fill out. - -The idea is to keep each production separated with a specific workflow. - - -Your **Global Library** is where you can create and modify departments, task types, task statuses, asset types, and status automation. You can create as many elements as needed, name them as you wish, and select the best colors and options to suit your needs. - -Once your **Global Library** is populated, you can fill out the **Production Library** with the newly created elements from the **Global Library**. - -## Departments -### Creating Departments - -Departments are designed to help supervisors and artists focus on their tasks. Once a user is linked to one or more departments, supervisors and artists gain direct access to a filtered view of all tasks associated with that task type. Departments are also used to define what metadata columns appear for users within that department. - -If a metadata column is linked to a department, then they will only show up for users in that department. If a metadata column is not associated with a department, they will show up for everyone. - -::: tip -By default, Kitsu provides some example departments to help you get started. -::: - -Defining your studio's Departments is typically the first step in setup, as multiple objects such as people and task types are linked to a department. - - - -On the main menu ![Main menu](../img/getting-started/main_button.png) select the -**Department** page under the **Admin** section. - -![Task Type](../img/getting-started/deparment_menu.png) - - -If you need to create more departments, you can click on the ![create department button](../img/getting-started/create_department_button.png) button. - -When adding a department, you need to define: - -- The name of the department -- A color (it will be displayed as a small round circle next to a column task type or a custom column) - -![Create department](../img/getting-started/create_department_detail.png) - -Click on **Confirm** to save your changes. - -Once you finish creating the department, your page should look like this. Whereby each department has a unique name and corresponding color. - -![Customized department](../img/getting-started/customized_department.png) - - -## Task Types -### Creating a New Task Type - -Next, let's create all the **Task Types** needed to manage and track our production. Task types could be associated with multiple entities such as assets, shots, sequences, episodes, or edits. - - -From the main menu ![Main menu](../img/getting-started/main_button.png) select -the **Task Types** page under the **Admin** section. - -![Task Type](../img/getting-started/menu_tasktype.png) - -::: tip -By default, Kitsu provides some example task types that can be used for a CGI production. You can rename or remove any that are not relevant to your production. -::: - -You will notice that these **Task Types** are already linked to a department. - -![Task Type Empty](../img/getting-started/task_type_empty.png) - -You can click on the ![Add Task Type](../img/getting-started/add_tasktype.png) -button to create new **Task Type**. - -Next, you will need to supply some information about your task type, including: - -- The name of the task type -- If team members need to time log their work for tasks with this task type -- For which entity it will be used -- To which department it should be linked -- The color (this will be reflect in the background color on the main spreadsheet page) - -![Create task](../img/getting-started/create_task.png) - - - -You'll notice that the **Departments** we created previously are available as an option to link task types to. Connecting a department to a specific task type can help your team stay organized. - -![Create task department](../img/getting-started/create_task_department.png) - -Click on **Confirm** to save your changes. - -::: warning -Newly created task types will appear at the bottom of the list -::: - -To adjust the order, simply click on the **Task Type** and drag it to its appropriate position in the list. - - -![Create task top list](../img/getting-started/created_task_top.png) - - - - -Congratulations, your task type has now be created in your **Global Library**. - -::: warning -Once you have created your production, you need to add the **Sequence**, **Episode**, and **Edit** task types to your **Production Library**. -::: - -::: tip -At any point during production, you can revisit this section to create additional **Task Types** as necessary and add them into your workflow. -::: - -## Asset Types -### Define Your Asset Workflow - -Once you have created your global Workflow, you can then define your **Asset Types** - -Much like how shots can be organized by a sequence, an asset can be organised by it's **Asset Type**. Think of it as using folders to organize all your assets by category. - - -On the main menu ![Main menu](../img/getting-started/main_button.png) select the -**Asset Type** page under the **Admin** section. - -![Asset type menu](../img/getting-started/menu_asset_type.png) - -::: tip -By default, Kitsu provides some example asset types that can be used for a CGI production. -::: - -![Asset type default](../img/getting-started/asset_type_default.png) - -To create new **Asset Type**, click on the ![Add Asset Types](../img/getting-started/add_asset_types.png) button. - -Next, you will need to supply some information about your **Asset Type**, including: - -- The name of the asset type -- A workflow for the specific asset type - -Different Asset Types will have distinct workflows. For instance, you might have fewer tasks for an Environment compared to a Character, as Environment assets typically don't require Rigging tasks. -  - -![Add asset types name](../img/getting-started/add_asset_types_name.png) - -When you **create** or **edit** an **Asset Type**, you can add a specific **task type**; if you don't select a specific workflow for this asset type, your production asset workflow will be applied. - -However, if you choose specific Task types for this Asset type, only these will be applied to production. - -Click on **Confirm** to save your changes. - -Your new **Asset Type** is now created in your **Global Library**. It will be available to use when you create your production. - -::: tip -At any point during production, you can revisit this section to create additional **Asset Types** as necessary and add them into your workflow. -::: - -## Task Statuses -### Define Your Approval Workflow - -Next, let's create the statuses we intend to use during our **Approval Workflow**. - -On the main menu ![Main menu](../img/getting-started/main_button.png) select the -**Task Status** page under the **Admin** section. - -![Task Status Menu](../img/getting-started/menu_status_type.png) - -::: tip -By default, Kitsu already provides some examples Statuses. -::: - -![Task Status Default](../img/getting-started/task_status_default.png) - -A status represents a specific stage or condition that a task or must pass through as part of the review and approval process. - -For example, the **Ready** ![Ready status](../img/getting-started/ready_icon.png) status indicates that the artists have everything they need to start working and should not begin their tasks without reaching this status. - -**WIP** ![WIP status](../img/getting-started/wip_icon.png): The **Work in Progress** status is used by artists to inform their team that they are actively working on the task, indicating that there is no need to assign it to someone else. - -**WFA**![WFA status](../img/getting-started/wfa_icon.png): The **Waiting-For-Approval** status is used by artists to notify their supervisors that they have completed their work and are awaiting review. Supervisors can also use a similar status to inform directors that work is ready for review. - -**Done** ![DONE Status](../img/getting-started/done_icon.png): The **Done** status indicates that all work has been completed & approved. This indicates that the current task is complete and the next step in the process can commence. - -**Retake** ![Retake status](../img/getting-started/retake_icon.png): The **Retake** status indicates that a comment has been made, prompting the artists to continue working on their task and publish a new version until validation is achieved. - -These **statuses** are just examples of what is achievable in Kitsu. You are free to create your own as needed. - - - - -To do this, from the main page, click on the ![Add Task Status](../img/getting-started/add_task_status.png) button. - -You'll then need to define some details about you **Task Status**, including: - -![Add Status](../img/getting-started/add_status.png) - -- **NAME**, the explicit name of the status that will be displayed when you hover your mouse over it in the. -- **SHORT NAME**, what will be displayed in Kitsu. -- **IS DEFAULT**, the first status that Kitsu will display by default on all tasks. You can only have **ONE** default status in Kitsu. -- **IS DONE**, if this status is utilized to validate a task (which is beneficial for quota management, organizing the to-do list, and updating episode statistics). -- **HAS RETAKE VALUE**, if this status is used for commenting on a task (helpful for tracking the back-and-forth discussions on the task type page and for the episode stats page). -- **IS ARTIST ALLOWED**, are artists allowed to set tasks to this status? If **No**, the artist won't see this status in their list of available statuses. However, they can still post comments on it. -- **IS CLIENT ALLOWED**, Can the client use this Status? If **No**, the client won't see this status in their list of available statuses. -- **IS FEEDBACK REQUEST**, if this status is used to request a review (helpful for quota tracking if you don't use a timesheet, it will appear in the Pending tab of the to-do list, and all these statuses will be grouped on the **My Check** page. Kitsu will prompt you to **publish a preview** each time you use this status). -- Finally, choose a background **color** you prefer for this status. - - - -Click on **Confirm** to save your changes. - -Your **Status** is now created in your **Global Library** and will be available to use in your production. - -::: tip -At any point during the production, you can return here and create more **Task Status** if needed, -and then add them to your production. -::: - -::: warning -You'll notice a few tasks statuses listed under the category of *Concept Status*. These are used by the system and while you can modify them here, you cannot create new ones. -::: - - - -## Automation - -### Create a New Status Automation - -A **Status Automation** defines rules or conditions that automatically trigger changes in the status of tasks based on predefined criteria. You can set up **Status Automation** for both asset and shot tasks. - -For assets, you can establish **Status Automations** between tasks. For example, when the concept task status is set to `done`, the downstream modelling task status is automatically changed to `ready`. - -Additionally, you can create **Status Automations** that update the **Asset Status** based on task statuses. For example, when the concept task is set to `done` , then the linked asset status is set to ``layout``. - -::: tip -You can also ask Kitsu to **copy the latest preview** with the Automation. -::: - -Go to the main menu ![Main menu](../img/getting-started/main_button.png)  and select **Automation**. - -![Main menu Status Automation](../img/getting-started/main_menu_status_automation.png) - -From this page, you can create **Status Automations** by clicking the **+Add status automation** button. - -![create Status Automation](../img/getting-started/status_automation_empy.png) - -You have the option to create **Status Automation** for either the **asset** or the **shot**. - -Next, you can select the **task type** and the **status** that will trigger the Automation. - -You can specify which **Task Type** will respond to the Automation and select the **Status** that will be changed. - -![detail create status automation](../img/getting-started/add_status_automation.png) - -You need to change the trigger from "Status" to **Ready For** in order to initiate the change in **Ready For** status. - -You will notice the **Applied Task Type** will now display **Shot task type**. - -![detail create status automation Ready For](../img/getting-started/add_status_automation_readyfor.png) - -To create a **Status Automation** for shots, you must change the **Entity Type** to shots. - - - -Your new **Status Automation** is now created in your **Global Library**. - -::: warning -You must add status automations to your **Production Library** once you have created your production. -::: - -::: tip -At any point during the production, you can return here and create more **Status Automations** if needed, and then add them to your production. -::: - -## 3D Backgrounds - -### Create a Global Library of HDR Files - -The 3D Backgrounds feature enhances your review of 3D files (`.GLB`) by incorporating an `.HDR` background to make things easier to review. - -The `.GLB` file format is a binary container that encompasses various 3D assets and resources. These assets may comprise 3D models, textures, materials, and animations. - -::: warning Definition -It means you can review your 3D files with lighting information. -::: - -In this section, you can create your own. `.HDR` files library that you can use in your production. - -Go to the main menu ![Main menu](../img/getting-started/main_button.png), and select **3D Backgrounds**. - -![Main menu preview background](../img/getting-started/main_menu_preview_backgrounds.png) - - -From here, you can add a `.HDR` Background by clicking the **+Add a new background** button. - -![add preview background](../img/getting-started/preview_background_empty.png) - - -From this point, you'll need to select your `.HDR` background, provide a name for it, and decide whether you want this `.HDR` to serve as the default background. - -::: tip -Checking the `Is Default` option means this HDR will be applied across your entire production instead of the default grey background. -::: - -![Main menu preview background](../img/getting-started/preview_background_new.png) - -Once you have uploaded all your `.HDR` files, Kitsu will display them as a list. - -![Preview background filled](../img/getting-started/preview_background_filled.png) - - -Your new **3D Background** is now created in your **Global Library**. - -::: warning -You must add them to your **Production Library** once you have created your production. -::: - - -## Asset Library -### What is the Asset Library? -The Asset Library serves as a centralized repository for all assets used within Kitsu. Teams can import assets from any project into a shared library, making them accessible for future productions. With this functionality, assets like character models, props, environments, and more can be managed in one place and repurposed seamlessly in new projects. - -### How to Use the Asset Library - -![Asset Library Overview](../img/getting-started/asset_library_overview.png) - -- You can access the Asset Library from the **Studio** section of the main Kitsu menu. -- The main Asset Library window displays all assets currently available in the library (1). Use the search (2) and filter (3) options to quickly find specific assets within the library. -- On the right-hand pane (4), you’ll find the import option for bringing in assets from other productions into the Asset Library. - -### Adding Assets to the Library - -![Asset Library Add](../img/getting-started/asset_library_add.png) - -The right-hand pane is where you can add existing assets from other productions into the library. This action does not create a copy but simply references the original asset, allowing it to be used in other productions. - -To import an asset: -- Select the production you wish to import the asset from (1). -- Choose the asset type you’d like to import (2). - -There are three main ways to import assets: -- Import all assets from a specific production (3). -- Import assets by type from the selected production (4). -- Select individual assets for import (5). - -Once imported, the asset will be available for use in breakdowns for other productions, allowing for efficient asset reuse across projects. - -::: tip -There are specific rules around who can import assets into the asset library, depending on the user’s permission group: - -- **Studio Manager**: Can import any assets from any production. -- **Production Manager**: Can import assets only if they are part of the team. -- **Supervisor** and **Artist**: Cannot import assets into the library. -::: - -## Settings -### Configuring Kitsu - -Several global settings can be configured that apply to your studio, such as replacing the default Kitsu logo with your studio's logo. - -To do this, click on the main menu button -![Main Menu Button](../img/getting-started/main_button.png), then under the **Admin** section, click on the **Settings**. - -![Main Menu Settings](../img/getting-started/menu_settings.png) - -### Studio Settings -Click on the **Set studio logo** and select an image to use. This will replace the Kitsu logo on your site and in various places across the app. You can also change the **Studio Name** to be used in your Kitsu instance. - - -The remaining settings on this page are global settings that affect every production. Some of these include: - -- How many hours per day should your team be working. -- You can opt to use original file names for downloads. -- Display images in HD quality by default. Use this option only if you have a very fast internet connection. -- Regarding the timesheet, you can also restrict artists from modifying timesheets older than one week. - -![Kitsu Settings](../img/getting-started/kitsu_setting.png) - -Finally, you will also find settings relating to various chat integrations. Please refer to [Chat Integration](../chat-integration/README.md) section for more information on how to configure this. - -::: warning -Remember to **Save Settings** at the end once you are finished. -::: diff --git a/docs/configure-prod/README.md b/docs/configure-prod/README.md deleted file mode 100644 index ac4bb54e8c..0000000000 --- a/docs/configure-prod/README.md +++ /dev/null @@ -1,182 +0,0 @@ -# Production Specific Workflow Settings - -## Configure Production-Specific Settings -From the **Navigation Menu**, choose on the dropdown menu the **Setting**. - -![Drop Down menu Setting](../img/getting-started/drop_down_menu_setting.png) - -The first tab, **Parameters** allows you to change the **Technical information** of the production. - -::: warning -If you change the **FPS** or **Resolution** after uploading previews, the changes won't be applied; you must reupload the first previews. -::: - -![Setting Parameters](../img/getting-started/setting_parameters.png) - -Here, you can enable specific options for the production as - -- Isolate Client Comments (Not Visible To Each Other) - -- Allow Artists To Download Previews - -- Set New Preview As Entity Thumbnail Automatically - -You can also specify the **Maximum Number of Retakes** for this production. - -::: tip -You can also change the avatar of the production on the **Parameters** tab. -::: - -## Task Statuses -### Configuring Specific Task Types for a Production - -On the **Navigation Menu**, choose on the dropdown menu the **Setting**. - -![Drop Down menu Setting](../img/getting-started/drop_down_menu_setting.png) - -Per default, Kitsu will load the **Task Status** you have defined when creating the production. - -However, you can add or remove specific statuses during production if they are created on the Global Library first. - -![Setting status new](../img/getting-started/setting_status_new.png) - -On the **Task Status** tab, you can choose which **status** you want to add or remove on this production, -validate your choice with the **add** button. - - -![Setting Add Status](../img/getting-started/setting_status_add.png) - -## Task Types -### Enabling Specific Task Types for a Production - -On the **Navigation Menu**, choose on the dropdown menu the **Setting**. - -![Drop Down menu Setting](../img/getting-started/drop_down_menu_setting.png) - -By default, Kitsu will add the **Task Types** you have chosen when creating the production. - -![Setting Task Type new](../img/getting-started/setting_task_new.png) - -However, you can add or remove specific **Task Types** if they are created on the Global Library first. - -For example, you can import the task workflow from another production in your library. - -![Setting Add Task Type](../img/getting-started/setting_task_add.png) - -On the **Task Types** tab, you can choose which production or task type you want to import  or remove on this production, -validate your choice with the **Import** button. - - - -::: warning -If you had a new task type **AFTER** creating an asset or shot, here is the **DELIVERY** task type. - -![Setting Task Type add](../img/getting-started/setting_task_add2.png) - -You need to **add this task type** on the global page. - -![Add Task Type Global](../img/getting-started/global_add_task.png) - -A pop-in will appear, and you must select the new task type on the dropdown menu. - -![Add Task Type Global](../img/getting-started/add_task_current.png) - -Validate with **Confirm**. - -![Add Task Type example](../img/getting-started/add_task_example.png) - -::: - -## Asset Types -### Enabling Specific Asset Types for a Production - -On the **Navigation Menu**, choose on the dropdown menu the **Setting**. - -![Drop Down menu Setting](../img/getting-started/drop_down_menu_setting.png) - -Per default, Kitsu will load the **Asset Types** you have defined when creating the production. - -However, you can add or remove specific Asset Types if they are created on the Global Library first. - -![Setting Asset type new](../img/getting-started/setting_asset_new.png) - -On the **Asset Types** tab, you can choose which **Asset Types** you want to add or remove on this production, -validate your choice with the **add** button. - -![Setting Add Asset](../img/getting-started/setting_asset_add.png) - - -## Status Automation -### Configuring Status Automation for a Production - -On the **Navigation Menu**, choose on the dropdown menu the **Setting**. - -![Drop Down menu Setting](../img/getting-started/drop_down_menu_setting.png) - -Per default, Kitsu will load no **status automation** of your -status automation **Global Library** into your **Production Library**. - -![Setting Task Type new](../img/getting-started/setting_auto_new.png) - -But you can use only specific **Status Automation**, depending on your production type. - - -On the **Status Automation** tab, you can choose which automation you want to use on this production, -validate your choice with the **add** button. - - -![Setting Add Task Type](../img/getting-started/setting_auto_add.png) - - -## Preview Backgrounds -### Select Specific Preview Background for a Production - -On the **Navigation Menu**, choose on the dropdown menu the **Setting**. - - -![Drop Down menu Setting](../img/getting-started/drop_down_menu_setting.png) - -On the **Preview Backgrounds** tab, you can choose which HDR file you want to add or remove on this production, - -![Setting Status automation new](../img/getting-started/preview_background_setting.png) - - - -Validate your choice with the **add** button. - -![Setting Add Asset](../img/getting-started/preview_background_setting_filled.png) - -You can review your 3D file with an HDR background. - -![Preview background example](../img/getting-started/preview_background_example.png) - - -## Artist Board -### Artist Board Status Configuration - -On the **Navigation Menu**, choose on the dropdown menu the **Setting**. - -On the **Task Status** tab, you can reorder the status for the **Board** view. - -![Setting status new](../img/getting-started/setting_status_new.png) - -![Setting status order](../img/getting-started/setting_status_order.png) - -Once it's done, go to the **Board Status** tab. - -![Setting board status order](../img/getting-started/setting_board_status.png) - -Here, you can choose who can see which status on the **Board view** - -If you don't select the status properly, it can be overwhelming for the artists if they have too much choice. - -![Board status bad example](../img/getting-started/board_all_status.png) - -Selecting the **Status** properly will make it easier for the artists. - - -![Setting board status order](../img/getting-started/setting_board_status_selection.png) - - -![Board status good example](../img/getting-started/setting_board_status_selection_artist.png) - diff --git a/docs/custom-actions/README.md b/docs/custom-actions/README.md deleted file mode 100644 index 1a1bd4edb4..0000000000 --- a/docs/custom-actions/README.md +++ /dev/null @@ -1,67 +0,0 @@ -# Custom Actions - -## What are Custom Actions? - -A custom action is a simple HTTP request that sends information from your current Kitsu selection to a custom endpoint. Essentially, when a user is in the Kitsu UI, they can send a request to another server containing the IDs of the selected elements. - -### Goal - -The goal is to create an action outside of Kitsu (until a plugin system is available) without modifying the Kitsu/Zou core code. Essentially, it's a web request, usually a POST (but can be a GET) to a page or service you manage yourself. You catch the request and then perform an action with it. - -Examples include: - -- Debug page (displaying all accessible information for given objects, including field names, etc.) -- Launch render in CGRU or Flamenco -- Generate statistics pages for the APM -- Create special playlists -- Launch a custom protocol (with a service waiting for it) to start a video player, any DCC, etc. -- Integrate with an asset manager like Kabaret to open it at the right spot or launch some actions - -Custom actions can be anything as long as you can catch the request (using, for example, a Python web server such as Flask or Tornado.web). They are designed to extend Kitsu to systems you control. - -Useful information is provided to whatever catches the request, such as the current selection, the page you were on, the user who launched the action, etc. You can adapt the response based on the provided information. - -Note that you can also run the custom action in the background (using an AJAX request instead of opening a new page) if you don't need to provide feedback to the user. - - -## How to Setup a Custom Action - -### Creation - -Only studio managers can set up a custom action. The custom action page is available in the right panel of the admin section. - -When you have access to the custom action page, you can create a new action via the add button on the top right. The action creation requires four pieces of information: - -![Add Custom Action](../img/getting-started/add_custom_action.png) - -- **Name**: The name of the action. -- **URL**: The target URL (we strongly recommend using the same domain as your Kitsu installation). -- **Entity Type**: For which kind of entity the custom action will be available. -- **Use AJAX**: Specify if the request must be sent as an AJAX request or as a form. - -Once your action is created, it will be accessible in the action top bar. When a user selects tasks in the asset or shot lists, by going to the **Run custom action** section, they will be able to execute the custom action for the current selection. - -### Data Sent via a Custom Action - -Data is sent in JSON format. It contains an object with the following fields: - -* `personid`: The ID of the user claiming the action. -* `personemail`: The email of the user claiming the action. -* `projectid`: The ID of the project of selected entities. -* `currentpath`: Current url path in Kitsu web application. -* `currentserver`: Host of the Kitsu sending the custom action. -* `selection`: List of selected task IDs. -* `entitytype`: Type of entities for which tasks are selected. - -Example: -``` -{ - "personid": "b01bae1e-f829-458a-a1eb-131bb66628cc", - "personemail": "admin@example.com", - "projectid": "fa4d7f04-b8e0-4518-8dbc-2f24997ca76e", - "currentpath": "/productions/fa4d7f04-b8e0-4518-8dbc-2f24997ca76e/assets", - "currentserver": "localhost", - "selection": "95c171e1-dfff-498f-93e3-548a739e3202", - "entitytype": "asset" -} -``` diff --git a/docs/feature/README.md b/docs/feature/README.md deleted file mode 100644 index 408952e427..0000000000 --- a/docs/feature/README.md +++ /dev/null @@ -1,1203 +0,0 @@ -# Create a Feature Film Production - -Now that you have designed your workflow in Kitsu and invited more people, it's time to create your production. - -Click on the **Create a new -production** button. - -![Create a production](../img/getting-started/create_production.png) - -Enter your production name, and choose **Feature Film** as the **type**, then select the style of your production (2D, 3D). - - -Then, you must fill in technical information, such as the number of FPS, the Ration, and the Resolution. - -All these data will be used when Kitsu re-encodes the video previews uploaded. - -Then, you need to define your production's start and end dates. - -![Add a production](../img/getting-started/add_production.png) - -You can define your production workflow in the next part, 3 to 6. - - - -You need to select your asset task type (3), shot task type (4), task status (5), and asset types (6). - -![Add a production Pipeline](../img/getting-started/add_production_pipe.png) - - -::: tip -To create your **Production Workflow**, you will select Task Types from the Global Library. - -If you realize you missed some Task Types, you can create them later. - -See the [Studio Workflow](../configure-kitsu/README.md#studio) section. -::: - -Then, 7 and 8 are the option parts. If you already have a spreadsheet with your asset/shot. - -See the **import CSV** section for more details. - -[Import asset](../feature/README.md#create-an-asset) - -[Import shot](../feature/README.md#create-shots-from-an-edl-file) - -Validate everything with the ![All done](../img/getting-started/all_done_go.png) button. - - - - - - -## Introduction to the Kitsu Global Page - - - -Welcome to Kitsu's global asset page. - -Let's take a look around. - -![Presentation of the global page](../img/getting-started/presentation_global.png) - -On the top part (1), you have the **global navigation**, which is always visible throughout all the production pages. - -**From left to right:** - - -### Main Menu - -You will open the main menu by clicking on the top left button, Kitsu![Main menu button](../img/getting-started/main_button.png) (or your Studio logo). - -On the main menu, you will find direct access to your assigned tasks, productions, global and team schedules, the workflow customization page, and the Kitsu settings. - -::: details Main Menu Details -**WORKSPACE** -- My Tasks: your assigned tasks -- My Checks: All the tasks with status **Is Feedback Request** depending on your department(s) -- My Productions: Get back to the selection on the production page. - - -**STUDIO** -- Productions -- People -- Timesheets -- Main Schedule -- Team Schedule -- All tasks -- News Feed -- Entity Search - - -**ADMIN** -- Departments -- Task Types -- Asset Types -- Custom Actions -- Automation -- 3D Backgrounds -- Bots -- Settings -- Logs - -::: warning Permission Visibility -The WORKSPACE section is enabled for all permissions except My Checks, which artists do not see. - -Artist (and above) can also see their own **Timesheets**, and have access to the **Entity Search** -::: - -### Navigation - -You will see the navigation dropdown menu on the right of the main menu icon. - -![Presentation of the global page](../img/getting-started/presentation_global_header.png) - - -You can choose between production. The name of the actual production and actual page are always displayed. - -You can use the dropdown menu to navigate from production to production (if you have several). - -Once you have selected a production, the next dropdown menu will help you navigate through the different pages of this production. - - -::: details Navigation details -The first section is about the tracking of your tasks -- Assets -- Shots -- Sequence -- Edits (If you have created specific tasks) - -The second section is more about the side of the production -- Concepts -- Breakdown -- Playlists -- News feed - -The third section is about statistics -- Sequence Stats -- Asset Type Stats - -The fourth section is related to Team Management -- Schedule -- Quotas -- Team - -The fifth section is about the settings of your production -- Settings - -::: tip -You start with the asset page, but you can change your production homepage to other entities (see setting page) -::: - - - -### Global Search, News, Notification and Documentation -You have the global search on the right of the navigation dropdown menu. It's a quick access search that will display the four first results. If you need more results and filtering options, see the **Entity Search** page. - - -The next icon ![News](../img/getting-started/canny.png) is a direct link to our news and feedback page. - -You can see all the new features with an animated gif and also add suggestions about the next feature you want to see in Kitsu. - -Next, the bell icon ![Notification](../img/getting-started/notification_icon_on.png) displays your notifications (assignments, comments, tags). The number of unread notifications will be shown on the bell icon. There are various filters to help you stay on top of updates and revisit important ones when needed. You can easily mark notifications as read or unread or quickly filter by watching/non-watching to focus on what matters most and declutter your feed. - - -The last icon before your avatar is the documentation button. -![documentation button](../img/getting-started/documentation_button.png), that you are reading right now! - - -### Personal Settings -You can click on your avatar to open your menu (setting, documentation, etc.). - -![Profile enlarged](../img/getting-started/profil_enlarge.png). - -## The Tasks Spreadsheet - -### Entity spreadsheet - -The second part of the screen is common to all the entities (asset, shot, sequence, Edit). This is the global tasks spreadsheet. - -Here, you see the status, assignation, priority, etc, for each task. - -::: tip -The spreadsheet's first line and column header always appear at the top of the page, even if you scroll down. - -You can also **Stick** other columns to keep them visible at all times. -::: - -### Filters - -The first element on the left is the filter box. You can type anything you want for simple filtering, sequence, asset type, etc. - -If you need more advanced filtering, please use the filter builder button. - -![Filter Builder](../img/getting-started/filter_builder.png) - -You can then save all the filters and use them as your pages. - -::: warning -You must press **Enter** on your keyboard to launch the filters on a feature film. -::: - -### Simplify the display - -On the right part of the screen, there are some buttons (from left to right) to hide or display the assignation, hide or display the extra column, enlarge or reduce the thumbnail, -![display and Hide option](../img/getting-started/display_hide_option.png) - - -### Import / Export -batch import thumbnail ![batch import thumbnail](../img/getting-started/add_thumbnails.png), and finally import ![Import button](../img/getting-started/import.png) or export ![export button](../img/getting-started/export.png) data. - - - -### Metadata column -Below, you have the name of the column. the (+) next to **Name** ![Add metadata column](../img/getting-started/add_column_custom.png) is here to create a new metadata column. Then, you have the name of the task type column. - -### Customize the view -On the far right of the screen, next to the scroll bar, is the option to hide and display a text column - -![Display/hide text column](../img/getting-started/visible_column_detail.png). - - -### Sum-up of your view -The last part (4), at the bottom of the screen, is the sum-up of your displayed page. It means the sum-up will update if you filter the page. - -You can see the number of elements (assets or shots), the total number of estimated days, and the total number of days already spent. - - - -## Create an Asset -### Create your first asset -So, now that we have created our production and have a general grasp of the Kitsu interface, it's time to create our first asset. - -On the asset page, click on **Add assets**. - -![Asset page first time](../img/getting-started/add_assets_first.png) - -::: warning -When you create an asset, your task workflow will be applied, and **all the tasks will be created simultaneously as the asset**. -::: - -A pop-up window opens: - -It asks you to choose the **Asset Type** (1). -If you didn't add a new asset type, Kitsu will provide examples such as Characters, Environment, FX, Props, etc. -Let's start with a character. - -::: tip -You can also customize the asset type list and the tasks pipeline. See the guide ( -[Customization of the workflow](../configure-kitsu/README.md#asset-types)) for more details -::: - -We give it a **Name** (2) and enter a description that helps the Artist know what to do and quickly identify the asset. - -Click on **Confirm and stay** if you have multiple assets to create. - - -![Create an asset](../img/getting-started/add_asset_popup.png) - -You can change the asset type and keep adding assets. - -::: tip -The newly created asset appears in the background whenever you click on **Confirm and stay**. -::: - -After adding your last asset, click -on **Confirm**. It will create the asset and close the window. - -::: tip -If you click on **Confirm and stay** but realize you don't have more assets to add, click on **Close**, and the window will be canceled. -::: - -![Global asset page](../img/getting-started/asset_edit.png) - -You will also see the tasks that are selected for your assets workflow are created at the same time. - - -If you need to add more **Assets**, click the **+ Create assets** button. - -::: details Create Assets from a CSV Spreadsheet File -You may already have your asset list ready in a spreadsheet file. -With Kitsu, you have two ways to import them; the first is to import a `.csv` file and copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file. - -Then, go back to the asset page on Kitsu and click on the **Import** icon. -![Import Icon](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Import csv file](../img/getting-started/import_csv_asset.png) - -To see the result, click on the **Preview** button. -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -You have imported all your assets into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_asset.png) -::: - -::: details Create Assets by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_asset.png) - -Then, go back to the asset page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_asset.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_asset.png) -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -You have imported all your assets into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_asset.png) -::: - -### See the Details of an Asset - -To see an asset's detail, click on its name. - -![Asset detail](../img/getting-started/asset_detail.png) - -A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. - - -![Asset detail page](../img/getting-started/asset_detail_page.png) - -You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. - - -![Asset detail page](../img/getting-started/asset_detail_page_panel.png) - - - -You can also access the **Casting**, - -![Asset detail casting](../img/getting-started/asset_detail_page_casting.png) - -**concept** linked to this asset, - -![Asset detail casting](../img/getting-started/asset_detail_page_concept.png) - -The **Schedule** is available if you have previously filled out the task type page data. If you have already filled out the data, you can modify them directly here. - -![Asset detail casting](../img/getting-started/asset_detail_page_schedule.png) - -the **Preview Files** uploaded at various task types, - -![Asset detail casting](../img/getting-started/asset_detail_page_file.png) - -And the **Timelog** if people have filled out their timesheet on the tasks of this asset. - -![Asset detail casting](../img/getting-started/asset_detail_page_timelog.png) - - - -## Add more tasks after creating the assets - - -If you realize **after** creating the assets that the task is missing, you can still add them. - -First, ensure the missing task type is added to the settings page under the task type tab. - -Then go back to the asset page and click on **+ Add tasks** - - - - - - - ### Update your assets -You can update your assets at any point, change their name and asset type, modify their description, and add any custom information you added to the global page. - -You can edit assets by going to the asset page, hovering over the asset you want to modify, and then clicking on the **edit** button -![Edit button](../img/getting-started/edit_button.png) (1) on the right side of -the line. - -![Edit an asset](../img/getting-started/asset_edit01.png) - -To extend the description on the main asset page, click on the first words (2), and a pop-up with the full description will open. - - -::: details Update Assets with the CSV Import -You can use the CSV import to update your data quickly. - -You can update the **type** of an asset, the **Assignation**, the **Status** of tasks, and add a **Comment**. - -You need to switch on the option **Update existing data**. Then, the lines that will be updated -will be highlighted in blue. - -![Import data copy paste data](../img/getting-started/import_update_asset.png) - -::: - - -::: details Update Assets by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_asset.png) - -Then, go back to the asset page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_asset.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_asset.png) -  -You can check and adjust the name of the columns by previewing your data. - -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -You need to switch on the option **Update existing data**. Then, the lines that will be updated -will be highlighted in blue. - -![Import data copy paste data](../img/getting-started/import_update_asset.png) - -You have imported all your assets into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_asset.png) -::: - - -## Create a Concept -### Upload a Concept - -To create a **Concept**, go to the **Concept** page with the navigation menu. - -![Concept Menu](../img/getting-started/menu_concept.png) - -To upload a concept, click the **Add a new reference to concepts** button. - -You can upload one or several concepts at the same time. - -![Concept empty page](../img/getting-started/concept_empty_prod.png) - -Once you upload your previews, the concept page will look like this. - -![Concept filled page](../img/getting-started/concept_filled_prod.png) - - -You can interact with the concept in two ways: click on the picture to see an enlarged view. -The second is to click on the status part to open the **Comment Panel** on the right. - -On the comment panel, you have two options: link a concept to an existing asset or delete it. -You can also comment and change the status of the asset. - -The idea is to have one version per **Concept**. If it's not approved, you need to upload a new concept, not to have multiple versions of the same concept. - -One concept is one task. - - -![Concept options](../img/getting-started/concept_options.png) - - -### Link a Concept to an Asset - -Once concepts are uploaded, you can link them to the assets. - -You can see the links on the status part of the assets. - -Click on the status part of the concept; it will open the comment panel on the right. - -![Concept Comment Panel](../img/getting-started/concept_comment_panel.png) - -At the top of the comment panel, you have two options: Link a concept to an asset and delete the concept. - -To link an asset, click on the **Link** ![Link button](../img/getting-started/link_icon.png) button. - -Kitsu will display all the **Assets** available to link with the concept uploaded. - -Kitsu will list the linked assets at the top of the comment panel. For now, there are No Links. - - -![Concept link](../img/getting-started/concept_link.png) - -To link an asset, click on it. The names of the linked assets will appear at the top of the screen under the preview of the concept. - - -![Concept asset linked](../img/getting-started/concept_asset_linked.png) - -Once a concept is linked to an asset, it can be seen on the asset's detail page. - -Return to the asset page, and click on the asset name you want to see the concept. - -![Detail asset page](../img/getting-started/asset_detail_page.png) - -Per default, the casting detail is displayed on the second part of the screen. -Use the dropdown menu to choose the concept. - -![asset detail concept](../img/getting-started/asset_detail_concept.png) - -Once in the concept section, you will see all the concepts created for this asset. You can filter them per status. - -![asset detail concept list](../img/getting-started/asset_detail_concep_listt.png) - - -## Create a Shot -### Create your first shot - -It's time to create **shots** for your production. - -::: warning -Shots are linked to Sequences in Kitsu. -This means you must create a sequence and then populate this sequence with shots. -::: - -You need to go to the **Shots** page: you can use the -dropdown menu and click on the **SHOTS**. - -![Drop down menu shot](../img/getting-started/drop_down_menu_shot.png) - -Click on the **Add shots** button to start with the shot creation. - -![First add shots](../img/getting-started/new_shot.png) - -::: warning -When you create a shot, the task workflow you have designed will be applied, and all the tasks will be created at the same time as the shot. -::: - -A new pop-up opens for the creation of the shots. -You can now create the sequences and the shots. - -Enter the first sequence, for instance, sq01, -then **add**. - -Now, you can see your sequence has been created. To add shots to this sequence, select it and create your shots. - -For example, type sh0010 on the shots column, then again **add**. -You can also define padding for your shots. - -::: tip -If you want to name your shots ten on ten as SH0010, SH0020, SH0030, etc, set the **Shot Padding** as 10 -::: - -![Manage shots](../img/getting-started/manage_shot.png) - -You can now see that new shots are listed and linked by their sequence. -You have created the first shot of the first sequence. - -Now, let's add more shots than just one! As you can see, the box already contains your name -code but incremented, so you have to continue to click on **add** to -create more shots. - -![Add shots](../img/getting-started/add_shots.png) - -To add more sequences, go to the left part, type the name of your new sequence, and then click on **add**. -Your second sequence is selected, and you can now add shots. - -::: tip -If a shot is misplaced on a sequence, you have to edit the shot -![Edit button](../img/getting-started/edit_button.png), and change the -sequence. -![edit shot Change sequence](../img/getting-started/edit_shot.png) - -![Change sequence](../img/getting-started/change_seq.png) -::: - - -## Create Shots from an EDL File -You may already have your shots list ready in an **EDL** file. -With Kitsu, you can directly import your **EDL** file to create the sequence, shot, number of frames, and Frame in and out. - -On the **Global Shot Page**, you will see an **Import EDL** button. - -![Import EDL Button](../img/getting-started/import_edl_button.png) - -You can select the naming convention of the video file used during the editing on the pop-up. - -![Import EDL Menu](../img/getting-started/import_edl_menu.png) - -It means the video clip on the editing is named as project_sequence_shot.extension. - -Here is an example of an EDL for the LGC production. - -![EDL Example](../img/getting-started/edl_example.png) - -The video files are named  LGC_100-000.mov, which means LGC is the production name, 100 is the sequence name, and 000 is the shot name. - -You can import the EDL file once you have the naming convention. - -Then click on **Upload EDL** - -Then Kitsu will create the shots. - -![EDL Shot creation](../img/getting-started/edl_shot_creation.png) -::: - -::: details Create Shots from a CSV Spreadsheet File -You may already have your shots list ready in a spreadsheet file. -With Kitsu, you have two ways to import them; the first is to import a `.csv` file directly, and the second is to copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file. - -Then, return to the shot page on Kitsu and click the **Import** icon. -![Import Icon](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Import csv file](../img/getting-started/import_csv_shot.png) - -To see the result, click on the **Preview** button. -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -All your shots are imported into Kitsu, and the task is created according to your **Settings**. - -![Import data copy paste data](../img/getting-started/import_result_shot.png) -::: - - -::: details Create Shots by Copying / Pasting a Spreadsheet File -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_shot.png) - -Then, go back to the shot page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_shot.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_shot.png) -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -All your shots are imported into Kitsu, and the task is created according to your **Settings**. - -![Import data copy paste data](../img/getting-started/import_result_shot.png) -::: - -### See the Details of a Shot - -If you want to see the details of a shot, click on its name. - -![Shot detail](../img/getting-started/shot_detail.png) - -A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. -You can navigate through each by clicking on the name of the tabs. - -![Shot detail page](../img/getting-started/shot_detail_page.png) - -You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. - - -![Shot detail page](../img/getting-started/shot_detail_page_panel.png) - - -You can also access the **Casting**, - -![Asset detail casting](../img/getting-started/shot_detail_page_casting.png) - - -The **Schedule** is available if you have previously filled out the task type page data. If you have already filled out the data, you can modify them directly here. - -![Asset detail casting](../img/getting-started/shot_detail_page_schedule.png) - -the **Preview Files** uploaded at various task types, - -![Asset detail casting](../img/getting-started/shot_detail_page_file.png) - -And the **Timelog** if people have filled out their timesheet on the tasks of this asset. - -![Asset detail casting](../img/getting-started/shot_detail_page_timelog.png) - - - - -## Add more tasks after creating the shots -If you realize after creating the shots that the task is missing, you can still add them. - -First, ensure the missing task type is added to the settings page under the task type tab. - -Then go back to the shot page and click on + Add tasks. - - -### Update your shots - -You can update your shots at any point, change their names and sequences, modify their descriptions, and add any custom information you added to the global page. - -You can edit shots by going to the shot page, hovering over the shot you want to modify, and then clicking on the **edit** button -![Edit button](../img/getting-started/edit_button.png) (1) on the right side of the line. - -![Edit an asset](../img/getting-started/asset_edit01.png) - -To extend the description on the main shot page, click on the first words (2), and a pop-up with the full description will open. - - -::: details Update Shots Information with CSV Import -You can use the **CSV Import** to update your data as the **NB Frames**, **Frame IN**, **Frame Out**, or any custom **Metadata column**. - -You can update the **Assignation**, and the **Status** of tasks and add a **Comment**. - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_shot.png) - -Then, go back to the shot page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_shot.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_shot.png) -  -You need to switch on the **Option: Update existing data**. -The updated shots will be in blue. - -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/update_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -All your shots are imported into Kitsu, and the task is created according to your **Settings**. - -![Import data copy paste data](../img/getting-started/import_result_shot.png) -::: - - - -## Add the number of Frames and Frame ranges to the shots - -At this stage of the production, the animatic should be done. This means you have -the length (**number of frames**, **Frame range In**, and **Frame range Out**) for each shot. You can -add this information to the spreadsheet. This way, you are sure that all -the frames are calculated and none are missing or over-computed. - -::: warning -If you have created your shots and sequence by hand, -the **Frame** column will be hidden. You must edit at least one shot and fill in the number of frames to display the **Frame** column. -The column will be displayed if you have created your shots and imported the number of frames with a CSV/spreadsheet. -::: - - - -You need to edit the shots to fill in the frame range information. Click on the -edit button ![Edit button](../img/getting-started/edit_button.png) on the right -side of the shot line. - -![edit shot Change sequence](../img/getting-started/edit_shot.png) - -You can enter the shots **In** and **Out ** in the new window. Then, save by clicking the **Confirm** button. - - - -![Shot edit page](../img/getting-started/shot_edit.png) - -Now, the frame range appears on the general spreadsheet of the shot page. - -![Shot edit page](../img/getting-started/shot_framerange_global.png) - -Now that you have unlocked the **Frames**, **In**, and **Out** columns, you can fill them -directly from the global shot page. - -Click on the case you want to fill in and add the data. - -::: tip -If you enter the **Frame In** and **Frame Out**, Kitsu automatically calculates the **Number of Frame**. -::: - -![Shot edit page](../img/getting-started/shot_framerange_global_edit.png) - - -You can also use the **CSV Import** to update your frame range quickly. - [Update Shots information with CSV Import](../feature/README.md#update-your-shots) - -You can also access the history of shot values. - -![Shot framerange detail](../img/getting-started/shot_framerange_detail.png) - -![Shot Values History](../img/getting-started/shot_values_history.png) - - -## Create Custom Metadata Columns - -To add more information on the general spreadsheet pages, you must create a custom **metadata column**. - -You may have extra information to add to your pages, such as the **level of difficulties**, **Weather**, **Tag**, etc. You can store all text (or number) information in the custom metadata column. - - -Click on the **+** near the Name column. - -![Metadata Column](../img/getting-started/add_column_custom.png) - - - -With the **Type** option, you can choose how you want to store your information: -- a free **Text**, -- a **Number**, -- a **Checkbox**, -- a **List of value**, -- a **List of tags**, -- a **Checklist**. - -![Metadata Column detail](../img/getting-started/custom_column_detail.png) - -::: warning -The **Text**, **Number**, and **Checkbox** allow you to add different information for each entity. You don't have to plan it first. - -The **List of value**, **List of tags**, and **Checklist** give you the same choice for each entity. Moreover, it has to be filled now. - -![Metadata Column list](../img/getting-started/custom_column_list.png) - -Type the list elements below **Available values**, and confirm them by clicking on **Add value**. -::: - -You can also link the **metadata column** to one or several **departments**. - -::: tip -Link a metadata column to a department. The artists/supervisors will see it on their to-do page and in the department-filtered view. - -You can link the metadata column to one or more departments. Click on the department from the list and then click on **add** to be effective. - -Here, the VFX column is linked to two departments. - -![Department metadata column filtered view](../img/getting-started/department_filtered_view_column.png) - -::: - -::: details Edit meta column -On the global page of the asset or the shot, click on the arrow on the direct right of your metadata column and click on **Edit**. - -![Metadata column Edit](../img/getting-started/custom_column_edit.png) -::: - - -You can fill in this information directly on the global spreadsheets page. -The cases are editable. - -![Metadata Column detail](../img/getting-started/custom_column_list_edit.png) - -::: tip -You can batch-modify the metadata column by selecting several entities on the left and then modifying your metadata column. -::: - -::: details Edit by hand -You can also modify the information with the edit button ![Edit button](../img/getting-started/edit_button.png). - -You now see a new line on the edit pop-up. You can select the information from the list, -alternatively, enter the free text or number, check a box, or use the checklist, depending on your previous choice. - -Remember to press the **Confirm** button when you are done. - -![Metadata Column detail](../img/getting-started/edit_asset_custom.png) -::: - -Go to the general spreadsheet page to edit or delete the metadata column. -Nearby the name of your metadata column, click on the arrow ![Metadata Column detail](../img/getting-started/arrow.png). - -::: tip -You can **sort** your global page with this new column. Click the arrow on the right of the column name to open his menu. Then click on **Sort By**. - -You can also **Stick** the metadata column to the left. -::: - - -## Create a Sequence - -In Kitsu, you can also track tasks at the **Sequence** Level. -It's especially useful when -you have macro tasks to track, like Story and color Board, Color Grading, etc. - -Use the navigation menu to go to the **Sequences** page. - -![Navigation Sequences](../img/getting-started/drop_down_menu_sequence_page.png) - -::: warning -This new page behaves like the asset and shot global page. - -To use this page, You first need to create dedicated task types on your **Global Library** - with the **Sequence** attribute. - -See the **Creating a New Task Type** Section to create a new **Task Type**. - -[Creating a New Task Type](../configure-kitsu/README.md#task-types) - -Once you have created your **Task Types**  on your **Global Library**, add them to your -**Production Library** (setting page). -::: - -Once your task types are ready on the settings page, you must create a sequence (the same as the assets or shots). - - - - -This new page behaves like the asset and shot global page. You can add your edits with the **+ New Sequence** button. - -You can assign tasks, do the review, change status, etc. - -You can add a metadata column, fill in the description, etc. - - -::: tip -You can create a sequence directly from here (+New sequence button) or a sequence linked to your shots from the global shot page. -::: - - -You can **Rename** and **Delete** the Sequence entity on this page, as for the asset and shot entity. - -If you click on the name of a sequence, you will see the detail page of this sequence. - -![Sequence detailed page](../img/getting-started/sequence_detail_page.png) - -On the detailed page, you have access to the sequence casting. -You can see all the assets used in the whole sequence. - -You can also access the schedule, Preview Files, Activity, and Timelog of the sequence **tasks**. - - - -## Create an Edit - -You can track tasks at the **Edit** Level in Kitsu. - -It's especially useful when -You have several edits to track through several validation steps. -For example, you can track your whole movie, several trailers, the First Edit, Fine Edit, mix, etc. - -::: warning -Per default, the **Edit** page will not be displayed until you have task types for it on your **production library** (setting page) -::: - - - -To use this page, you need to first create a dedicated task type on your **Global Library** - with the **Edit** attribute. - -See the **Creating a New Task Type** Section to create a new **Task Type**. - -[Creating a New Task Type](../configure-kitsu/README.md#task-types) - - -Once you have created your **Task Types**  on your **Global Library**, add them to your -**Production Library**, you will see the **Edit** displayed on the navigation drop-down menu. - - -![Navigation Edit](../img/getting-started/drop_down_menu_edit.png) - - -This new page behaves like the asset and shot global page. You can add your edits with the **+ New edit** button. - -You can assign tasks, do the review, change status, etc. - -You can add a metadata column, fill in the description, etc. - -::: tip -Depending on your deliveries, you can also change the resolution per **Edit**. -::: - -::: warning -The detail page is different from the other entities. - -As **Edit** focuses on a specific long video, the detail page looks more like the comment detail page. -::: - -You can **Rename** and **Delete** the Edit entity on this page for the asset and shot entity. - - - - - - - -## Create a Breakdown List - -Filling out the breakdown helps you with the assembly of the shots. With the -breakdown, you have all the details of the assets you need to add to create your -shot, and we are sure to omit nothing. - -On the dropdown menu, choose **BREAKDOWN**. - -![drop down Menu breakdown](../img/getting-started/drop_down_menu_breakdown.png) - -On the left of the breakdown page is the episode/sequence/shot menu (1); you can choose between those you created. They are the right part of -the screen; all the assets created are available for this production (main pack and episodes) (3). Moreover, in -the middle section, it is your selection for the shot (2). - -![Breakdown page](../img/getting-started/breakdown_general_empty.png) - -So now you have to select the shot you want to cast. - -You can display the assets as text if you don't have thumbnails yet or enlarge the -thumbnails size. - - -![Breakdown page text display](../img/getting-started/breakdown_text_display.png) - -You may also realize an asset needs to be added to the list during your breakdown. - -You can create a new asset directly from the breakdown page. Click the **+** on the right of the **All available assets**. - -![Breakdown page create asset](../img/getting-started/breakdown_create_asset.png) - - -You can also choose multiple shots at once. Click on the first shot, hold the **shift** key, and click on the last shot of your selection. - -![Breakdown page global bulk select](../img/getting-started/breakdown_general_bulk_select.png) - -Then click on the assets you want -to assign: characters, backgrounds, ... from the right part (3). -If you have selected multiple shots, your selection is applied to the numerous shots. - -Copy a shot filled with assets and paste this asset selection into another shot. - -You can see a **+1** or **+10** when you pass over the asset. It's the number -of times you add this asset, and you can click on it as many times as you need. - -![Breakdown add asset](../img/getting-started/breakdown_add_asset.png) - -You can also link all your assets to episodes on a TV show without specifying a sequence or shot. - -![Breakdown episode asset](../img/getting-started/breakdown_episode.png) - -This way, you can link all your assets to one or several episodes before the storyboard/animatic stage. - -You can now see the asset in the middle of the screen (2). Next -to the asset's name is the number of times it has been added. In this -example, we have added the character asset Llama two times. - - -If you add an asset twice by mistake, you must go to the screen's middle part to select assets for this shot (2). From there, click on -**-1**. When you finish this shot, go on with the other shots. -Your selection is automatically saved. - -![Breakdown remove asset](../img/getting-started/breakdown_remove_asset.png) - -If a new asset is created during the storyboard, return to the asset -page (using the dropdown menu) and create the needed assets. The tasks previously created are applied immediately to these new -assets. However, you have to do the assignment, and then you can -continue with the breakdown. - -Now, your **Breakdown** page should look like this. - -![breakdown add asset bulk](../img/getting-started/breakdown_general_bulk_select_full.png) - -You can also make a breakdown list for your assets if you need to assemble them and keep track of the separate parts. - -On the top left corner of the screen, choose **asset** in the dropdown menu below **FOR**. - -![Breakdown asset menu](../img/getting-started/breakdown_asset_menu.png) - -You can now access a second dropdown menu to choose your asset type: **Character**, **Environment**, **Props**, **FX**, ... - -![Breakdown asset type](../img/getting-started/breakdown_asset_menu_type.png) - -You can complete the asset breakdown page the same way you did the shots. First, select one or more assets on the left part and then add the right part's elements. - -::: details Create a Breakdown List from a CSV File - -You may already have your breakdown list ready in a spreadsheet file. With Kitsu, you have two ways to import it: the first is to import a .csv file directly, and the second is to copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file following Kitsu's recommendation. - -Click on the **import** button ![Import button](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Breakdown import csv file](../img/getting-started/import_breakdown_csv_file.png) - -To see the result, click on the **Preview** button. - -You can check and adjust the name of the columns by previewing your data. - -NB: the **Episode** column is only mandatory for a **TV Show** production. - -![Breakdown import Preview](../img/getting-started/import_breakdown_preview.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, you have your breakdown imported into Kitsu. - -![Breakdown import Preview](../img/getting-started/breakdown_general_bulk_select_full.png) -::: - -::: details Create a Breakdown List by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_breakdown.png) - -Then, go back to the breakdown page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started//import_breakdown_csv_file.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_breakdown_preview.png) -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_breakdown_preview.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, all your assets have been imported into Kitsu. - -![Import data copy paste data](../img/getting-started/breakdown_general_bulk_select_full.png) -::: - -## Casting from the Asset Library -It is also possible to cast assets from the global **Asset Library** into your production. This allows you to cast an already existing asset, without the need to re-create it for each production. - -![Asset Library Display](../img/getting-started/asset_library_display.png) - -To see assets outside of your production from the asset library, click the **Display Library** Button (1) - -Assets from the global asset library will appear, and will be highlighted with a yellow boarder (2). They can then be cast in your breakdown exactly the same as other assets. - -![Asset Library View](../img/getting-started/asset_library_view.png) - -Back on your productions asset page, you can choose to display global assets that have been cast in your production by toggling the **Display Library** button (1). These assets will be highlighted in yellow, indicating that they originate from the global asset library, and not your current production. (2). - -## Introduction to Asset State: Ready For - -Most of the time, you don't need to wait for an asset's tasks to be approved to use it on a shot task. - -For example, when an asset is approved at the **Concept** stage, it can be used for the **Storyboard** stage. -Then, when it's approved at the **Modeling** stage, you can use it for the **Layout** stage and so on. - -That's exactly what the asset state **Ready For** is doing: it lets you know the state of an asset's tasks and compares its usability for the shot tasks. - -Now that we have filled out our breakdown, we know exactly which asset is used on every shot. - -First, we need to define an asset's state relative to its task status. You can modify the **Ready for** by clicking on a cell. You will see a dropdown menu with the shot task. - -![Asset Status](../img/getting-started/asset_status.png) - -::: tip -You can use the **automations** to do the heavy lifting. - -You can set automation with the **ready for** trigger. -::: - -Now that we have changed some asset states to **Ready for**, we can see the result on the shot page. - -You can notice that some white boxes are now **Green**: all the assets cast in this shot are ready for this specific task. - -![Asset Status](../img/getting-started/asset_status_box.png) - -If you see the white box, Kitsu will display how many assets are ready for this task. - -![Asset Status](../img/getting-started/asset_status_empty.png) - -::: tip -If you don't see any boxes, no assets are cast for this shot. -::: -  -Then, you can click on the shot's name to go to its detail page. -Then, you will see all the assets cast in this shot and their status. - -![Asset Status](../img/getting-started/asset_status_detail.png) - -It's the fastest way to know if you can start a shot for a specific task. - diff --git a/docs/getting-started-client/README.md b/docs/getting-started-client/README.md deleted file mode 100644 index d4c8e091e5..0000000000 --- a/docs/getting-started-client/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Getting Started as a Client - -## First Connection - -On your first connection, we encourage you to fill in your contact information -into your profile. -Click on your name on the top right of the screen (1), then on **Profile** (2). - -NB: A link to this **Documentation** is available (4), -and you can switch to the **Dark Theme** in this menu, too (3). You can also jump on our Slack (5) or look at our roadmap (6). - -![User profile](../img/getting-started/user_profil.png) - -On this new page, you can check your name (1) (2), your email (3), fill in your phone -number (4), change the timezone (5), the language of the website (6), and -post a pic of yourself as your avatar (7). It helps to recognize who is -doing what! - -![User detail](../img/getting-started/user_profil1.png) - -You can also define what kind of notification you want: email or Slack. - -![User detail](../img/getting-started/user_profil2.png) - - -If you keep scrolling, you can also change your password if you want. We -encourage you to change the default password with one of your own. - -![User password](../img/getting-started/user_password.png) - - -## See your Playlists - -The central part for you, on **Kitsu**, is the **Playlist** page. -You can access it by clicking on the production avatar. - -![Client Landing page](../img/getting-started/client_landing.png) - -Once you have clicked on the production avatar, you will go to the **Playlist** page. - -The playlists will gather all the assets and shots you have to comment on. - -![Client playlist global page](../img/getting-started/client_playlist_global.png) - -On the left part, you can sort the playlist per **Task Type**, **date**, or per **name** (1), then the list of the playlists created for you (2). On the center part, you have fast access to the recent playlist (3). - -### Detail of the Playlist - -On the left part, you keep access to the different playlists. In the center part, you see the different elements of the selected playlist. It can be assets or shots. On the right part, you have access to the comment section. - -![Client playlist global page](../img/getting-started/client_playlist_detaill.png) - -With the comment panel, you will be able to write a comment to approve the preview. - -![Client playlist global page](../img/getting-started/client_playlist_detail_comment.png) - -On top of the elements (assets or shots), you have access to different options: - -![Client playlist option](../img/getting-started/client_playlist_option.png) - -* (1) Previous shot / asset -*(2) Next shot / asset -* (3) the position of the element -* (4) the play and pause button -* (5) You can change the speed: x1..0, x0.50 or x0.25 -* (6) loop the selected shot -* (7) Actual time code / global time code of the shot -* (8) Actual frame -* (9) Previous frame -* (10) Next frame -* (11) Split screen: You can compare two task types side by side -* (12) Undo annotation -* (13) Redo annotation -* (14) Write a comment on the picture, and change the color of the text -* (15) Draw a comment on the picture, and change the color and the size of the line -* (16) Select the drawing and click on the cross to delete it -* (17) Change the task type of all the elements in the playlist -* (18) Open the panel section to post a comment and change the status -* (19) Hide the list of the elements -* (20) Download the playlist -* (21) Fullscreen - - - -## Share your Comments - -First open the comment section. ![Comment button](../img/getting-started/comment_button.png) - - -From there, you can change the status to ![Retake](../img/getting-started/retake_icon.png) if you want that the Artist -performs some changes. - -You can add a **checklist** to your comments. - -You need to click on the **Add checklist** button, and the first item of the checklist appears. - -![client add checklist](../img/getting-started/client_checklist_retake.png) - -Type your comments, and hit **Enter** key to add another line to your checklist, or click again on **Add Checklist** button. - -![checklist](../img/getting-started/checklist_detailed.png) - -## Global View of the Assets - -As a client, you can go to the global page of the assets with the drop-down menu on top of the screen. - -![Client dropdown menu Asset](../img/getting-started/client_dropdown_asset.png) - -On the global page, you will be able to see all the statuses of the different steps of the assets. - -![Client global page Asset](../img/getting-started/client_global_asset.png) - - -## Global View of the Shots - -As a client, you can go to the global page of the shots with the drop-down menu on top of the screen. - -![Client dropdown menu Shot](../img/getting-started/client_dropdown_shot.png) - -On the global page, you will be able to see all the statuses of the different steps of the shots. - -![Client global page Shot](../img/getting-started/client_global_shot.png) - -## Production Report - -To ease the communication with the studio, you have direct access to the production report, separated into two parts: the **Sequence Stats** and the **Asset Types Stats** - -![Client dropdown menu sequence stat](../img/getting-started/client_dropdown_sequence.png) - -The **Sequence Stats** page is updated in real-time. Every time you look at this page, you are sure to have updated information. - -![Client sequence stat](../img/getting-started/client_sequence_stat.png) - -You can choose to display the stats per number of shots or number of frames. - -You can also change the **Display Mode**; you can switch from the **Pie charts** View -to the **Counts** view. - -![Client sequence stat count](../img/getting-started/client_sequence_stat_count.png) - -It's this presentation that you can download to keep track of the production progress. - diff --git a/docs/guides/pre-production/breakdown-casting/index.md b/docs/guides/pre-production/breakdown-casting/index.md new file mode 100644 index 0000000000..00d0664296 --- /dev/null +++ b/docs/guides/pre-production/breakdown-casting/index.md @@ -0,0 +1,153 @@ +# Breakdown & Casting + +Filling out the breakdown helps you with the assembly of the shots. With the +breakdown, you have all the details of the assets you need to add to create your +shot, and we are sure to omit nothing. + +On the dropdown menu, choose **BREAKDOWN**. + +![drop down Menu breakdown](/img/getting-started/drop_down_menu_breakdown.png) + +## Create a Breakdown List + +On the left of the breakdown page is the episode/sequence/shot menu (1); you can choose between those you created. They are the right part of the screen; all the assets created are available for this production (main pack and episodes) (3). Moreover, in the middle section, it is your selection for the shot (2). + +![Breakdown page](/img/getting-started/breakdown_general_empty.png) + +So now you have to select the shot you want to cast. + +You can display the assets as text if you don't have thumbnails yet or enlarge the thumbnails size. + +![Breakdown page text display](/img/getting-started/breakdown_text_display.png) + +You may also realize an asset needs to be added to the list during your breakdown. + +You can create a new asset directly from the breakdown page. Click the **+** on the right of the **All available assets**. + +![Breakdown page create asset](/img/getting-started/breakdown_create_asset.png) + +You can also choose multiple shots at once. Click on the first shot, hold the **shift** key, and click on the last shot of your selection. + +![Breakdown page global bulk select](/img/getting-started/breakdown_general_bulk_select.png) + +Then click on the assets you want +to assign: characters, backgrounds, ... from the right part (3). +If you have selected multiple shots, your selection is applied to the numerous shots. + +Copy a shot filled with assets and paste this asset selection into another shot. + +You can see a **+1** or **+10** when you pass over the asset. It's the number +of times you add this asset, and you can click on it as many times as you need. + +![Breakdown add asset](/img/getting-started/breakdown_add_asset.png) + +You can also link all your assets to episodes on a TV show without specifying a sequence or shot. + +![Breakdown episode asset](/img/getting-started/breakdown_episode.png) + +This way, you can link all your assets to one or several episodes before the storyboard/animatic stage. + +You can now see the asset in the middle of the screen (2). Next +to the asset's name is the number of times it has been added. In this +example, we have added the character asset Llama two times. + + +If you add an asset twice by mistake, you must go to the screen's middle part to select assets for this shot (2). From there, click on +**-1**. When you finish this shot, go on with the other shots. +Your selection is automatically saved. + +![Breakdown remove asset](/img/getting-started/breakdown_remove_asset.png) + +If a new asset is created during the storyboard, return to the asset +page (using the dropdown menu) and create the needed assets. The tasks previously created are applied immediately to these new +assets. However, you have to do the assignment, and then you can +continue with the breakdown. + +Now, your **Breakdown** page should look like this. + +![breakdown add asset bulk](/img/getting-started/breakdown_general_bulk_select_full.png) + +You can also make a breakdown list for your assets if you need to assemble them and keep track of the separate parts. + +On the top left corner of the screen, choose **asset** in the dropdown menu below **FOR**. + +![Breakdown asset menu](/img/getting-started/breakdown_asset_menu.png) + +You can now access a second dropdown menu to choose your asset type: **Character**, **Environment**, **Props**, **FX**, ... + +![Breakdown asset type](/img/getting-started/breakdown_asset_menu_type.png) + +You can complete the asset breakdown page the same way you did the shots. First, select one or more assets on the left part and then add the right part's elements. + +::: details Create a Breakdown List from a CSV File + +You may already have your breakdown list ready in a spreadsheet file. With Kitsu, you have two ways to import it: the first is to import a .csv file directly, and the second is to copy-paste your data directly into Kitsu. + +First, save your spreadsheet as a `.csv` file following Kitsu's recommendation. + +Click on the **import** button ![Import button](/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Breakdown import csv file](/img/getting-started/import_breakdown_csv_file.png) + +To see the result, click on the **Preview** button. + +You can check and adjust the name of the columns by previewing your data. + +NB: the **Episode** column is only mandatory for a **TV Show** production. + +![Breakdown import Preview](/img/getting-started/import_breakdown_preview.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +Now, you have your breakdown imported into Kitsu. + +![Breakdown import Preview](/img/getting-started/breakdown_general_bulk_select_full.png) +::: + +::: details Create a Breakdown List by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](/img/getting-started/import_copypas_breakdown.png) + +Then, go back to the breakdown page on Kitsu and click on the **Import** icon +![Import Icon](/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](/img/getting-started//import_breakdown_csv_file.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](/img/getting-started/import_breakdown_preview.png) +  +You can check and adjust the name of the columns by previewing your data. +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](/img/getting-started/import_breakdown_preview.png) + +Once everything is good, click on the **Confirm** button to import your data into Kitsu. + +Now, all your assets have been imported into Kitsu. + +![Import data copy paste data](/img/getting-started/breakdown_general_bulk_select_full.png) +::: + +## Casting from the Asset Library + +It is also possible to cast assets from the global **Asset Library** into your production. This allows you to cast an already existing asset, without the need to re-create it for each production. + +![Asset Library Display](/img/getting-started/asset_library_display.png) + +To see assets outside of your production from the asset library, click the **Display Library** Button (1) + +Assets from the global asset library will appear, and will be highlighted with a yellow boarder (2). They can then be cast in your breakdown exactly the same as other assets. + +![Asset Library View](/img/getting-started/asset_library_view.png) + +Back on your productions asset page, you can choose to display global assets that have been cast in your production by toggling the **Display Library** button (1). These assets will be highlighted in yellow, indicating that they originate from the global asset library, and not your current production. (2). + +To learn more about the Asset Library, [visit the dedicated section](/guides/pre-production/manage-assets/#asset-library). \ No newline at end of file diff --git a/docs/guides/pre-production/index.md b/docs/guides/pre-production/index.md new file mode 100644 index 0000000000..25979f5d3d --- /dev/null +++ b/docs/guides/pre-production/index.md @@ -0,0 +1,6 @@ +# Pre-Production + +- [Manage Concepts](/guides/pre-production/manage-concepts/) - +- [Manage Assets](/guides/pre-production/manage-assets/) - +- [Breakdown & Casting](/guides/pre-production/breakdown-casting/) - +- [Meta-Columns](/guides/pre-production/meta-column/) - Learn how to create and organize metadata from your production. \ No newline at end of file diff --git a/docs/guides/pre-production/manage-assets/images/0.png b/docs/guides/pre-production/manage-assets/images/0.png new file mode 100644 index 0000000000..d97f3bc1e0 Binary files /dev/null and b/docs/guides/pre-production/manage-assets/images/0.png differ diff --git a/docs/guides/pre-production/manage-assets/index.md b/docs/guides/pre-production/manage-assets/index.md new file mode 100644 index 0000000000..68f44ae142 --- /dev/null +++ b/docs/guides/pre-production/manage-assets/index.md @@ -0,0 +1,287 @@ +# Managing Assets + +You can go to the `Assets` page using the dropdown menu on top of the screen: + +![Client dropdown menu Asset](/img/getting-started/client_dropdown_asset.png) + +On the global page, you will be able to see all the statuses of the different steps of the assets. + +![Client global page Asset](/img/getting-started/client_global_asset.png) + +## Create an Asset + + + +On the asset page, click on **Add assets**. + +![Asset page first time](/img/getting-started/add_assets_first.png) + +::: warning +When you create an asset, your task workflow will be applied, and **all the tasks will be created simultaneously as the asset**. +::: + +A pop-up window opens: + +It asks you to choose the **Asset Type** (1). +If you didn't add a new asset type, Kitsu will provide examples such as Characters, Environment, FX, Props, etc. +Let's start with a character. + +::: tip +You can also customize the asset type list and the tasks pipeline. See the guide ( +[Customization of the workflow](../../../configure-kitsu/index.html#asset-types)) for more details +::: + +We give it a **Name** (2) and enter a description that helps the Artist know what to do and quickly identify the asset. + +Click on **Confirm and stay** if you have multiple assets to create. + + +![Create an asset](/img/getting-started/add_asset_popup.png) + +You can change the asset type and keep adding assets. + +::: tip +The newly created asset appears in the background whenever you click on **Confirm and stay**. +::: + +After adding your last asset, click +on **Confirm**. It will create the asset and close the window. + +::: tip +If you click on **Confirm and stay, ** realize you don't have more assets to add, and click on **Close, ** the window will be canceled. +::: + +![Global asset page](/img/getting-started/asset_edit.png) + +You will also see the tasks that are selected for your assets workflow are created at the same time. + +If you need to add more **Assets**, click the **+ Create assets** button. + +### Import Assets From a Spreadsheet + +You may already have your asset list ready in a spreadsheet file. With Kitsu, you have two ways to import it: browsing to a `.csv` file, or copying and pasting your spreadsheet data directly into Kitsu. + +Go to the asset page on Kitsu and click on the **Import** icon. + +![Import Icon](/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. From here, choose one of the two methods below. + +#### Option 1: Import a CSV file + +First, save your spreadsheet as a `.csv` file. Then click on **Browse** to pick your `.csv` file. + +![Import csv file](/img/getting-started/import_csv_asset.png) + +#### Option 2: Copy / paste a spreadsheet file + +Open your spreadsheet, select your data, and copy it. + +![Import copy data](/img/getting-started/import_copypas_asset.png) + +Back in the pop-up window, click on the **Paste a CSV data** tab. + +![Import data copy paste tab](/img/getting-started/import_pastcsvdata_asset.png) + +Paste your previously selected data. + +![Import data copy paste data](/img/getting-started/import_pastcsvdata2_asset.png) + +#### Finishing the import + +To see the result, click on the **Preview** button. You can check and adjust the name of the columns by previewing your data. + +NB: the **Episode** column is only mandatory for a **TV Show** production. + +![Import data copy paste data](/img/getting-started/import_preview_data.png) + +Once everything looks good, click the **Confirm** button to import your data into Kitsu. + +You have imported all your assets into Kitsu and created the tasks according to your Settings. + +![Import data copy paste data](/img/getting-started/import_result_asset.png) + +## See the Details of an Asset + +To see an asset's detail, click on its name. + +![Asset detail](/img/getting-started/asset_detail.png) + +A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. + +![Asset detail page](/img/getting-started/asset_detail_page.png) + +You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. + +![Asset detail page](/img/getting-started/asset_detail_page_panel.png) + +You can also access the **Casting**, + +![Asset detail casting](/img/getting-started/asset_detail_page_casting.png) + +**concept** linked to this asset, + +![Asset detail casting](/img/getting-started/asset_detail_page_concept.png) + +The **Schedule** is available if you have previously filled out the task type page data. If you have already filled out the data, you can modify them directly here. + +![Asset detail casting](/img/getting-started/asset_detail_page_schedule.png) + +the **Preview Files** uploaded at various task types, + +![Asset detail casting](/img/getting-started/asset_detail_page_file.png) + +And the **Timelog** if people have filled out their timesheet on the tasks of this asset. + +![Asset detail casting](/img/getting-started/asset_detail_page_timelog.png) + + + +## Add more tasks after creating the assets + +If you realize **after** creating the assets that a task type is missing, you can still add them. + +First, ensure the missing task type is added to the production's `Settings` page under the `Task Type` tab. + +Then go back to your `Assets` page and click on the `+ Add tasks` button. + +## Update your assets + +You can update your assets at any point, change their name and asset type, modify their description, and add any custom information you added to the global page. + +You can edit assets by going to the asset page, hovering over the asset you want to modify, and then clicking on the **edit** button +![Edit button](/img/getting-started/edit_button.png) (1) on the right side of +the line. + +![Edit an asset](/img/getting-started/asset_edit01.png) + +To extend the description on the main asset page, click on the first words (2), and a pop-up with the full description will open. + + +### Update Assets with the CSV Import + +You can use the CSV import to update your data quickly. + +You can update the **type** of an asset, the **Assignation**, the **Status** of tasks, and add a **Comment**. + +You need to switch on the option **Update existing data**. Then, the lines that will be updated +will be highlighted in blue. + +![Import data copy paste data](/img/getting-started/import_update_asset.png) + +### Update Assets by Copying / Pasting a Spreadsheet File + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](/img/getting-started/import_copypas_asset.png) + +Then, go back to the asset page on Kitsu and click on the **Import** icon +![Import Icon](/img/getting-started/import.png). + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](/img/getting-started/import_pastcsvdata_asset.png) +  +You can paste your previously selected data and see the result with the **Preview** button. +  +![Import data copy paste data](/img/getting-started/import_pastcsvdata2_asset.png) +  +You can check and adjust the name of the columns by previewing your data. + +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +You need to switch on the option **Update existing data**. Then, the lines that will be updated +will be highlighted in blue. + +![Import data copy paste data](/img/getting-started/import_update_asset.png) + +You have imported all your assets into Kitsu and created the task according to your Settings. + +![Import data copy paste data](/img/getting-started/import_result_asset.png) + +## Asset Library + +### What is the Asset Library? + +The Asset Library serves as a centralized repository for all assets used within Kitsu. Teams can import assets from any project into a shared library, making them accessible for future productions. With this functionality, assets like character models, props, environments, and more can be managed in one place and repurposed seamlessly in new projects. + +### How to Use the Asset Library + +![Asset Library Overview](/img/getting-started/asset_library_overview.png) + +- You can access the Asset Library from the **Studio** section of the main Kitsu menu. +- The main Asset Library window displays all assets currently available in the library (1). Use the search (2) and filter (3) options to quickly find specific assets within the library. +- On the right-hand pane (4), you’ll find the import option for bringing in assets from other productions into the Asset Library. + +### Adding Assets to the Library + +![Asset Library Add](/img/getting-started/asset_library_add.png) + +The right-hand pane is where you can add existing assets from other productions into the library. This action does not create a copy but simply references the original asset, allowing it to be used in other productions. + +To import an asset: +- Select the production you wish to import the asset from (1). +- Choose the asset type you’d like to import (2). + +There are three main ways to import assets: +- Import all assets from a specific production (3). +- Import assets by type from the selected production (4). +- Select individual assets for import (5). + +Once imported, the asset will be available for use in breakdowns for other productions, allowing for efficient asset reuse across projects. + +::: tip +There are specific rules around who can import assets into the asset library, depending on the user’s permission group: + +- **Studio Manager**: Can import any assets from any production. +- **Production Manager**: Can import assets only if they are part of the team. +- **Supervisor** and **Artist**: Cannot import assets into the library. +::: + +## Remove Assets + +Hover over the asset you wish to remove in your production's asset list and click the `Delete` icon: + +![delete asset button](/guides/pre-production/manage-assets/images/0.png) + +## Using The "Ready For" Asset State + +Most of the time, you don't need to wait for an asset's tasks to be approved to use it on a shot task. + +For example, when an asset is approved at the **Concept** stage, it can be used for the **Storyboard** stage. +Then, when it's approved at the **Modeling** stage, you can use it for the **Layout** stage and so on. + +That's exactly what the asset state **Ready For** is doing: it lets you know the state of an asset's tasks and compares its usability for the shot tasks. + +Now that we have filled out our breakdown, we know exactly which asset is used on every shot. + +First, we need to define an asset's state relative to its task status. You can modify the **Ready for** by clicking on a cell. You will see a dropdown menu with the shot task. + +![Asset Status](/img/getting-started/asset_status.png) + +::: tip +You can use the **automations** to do the heavy lifting. + +You can set automation with the **ready for** trigger. +::: + +We can see the result in the shot page now that we have changed some asset states **Ready for**. + +You can notice that some white boxes are now **Green**: all the assets cast in this shot are ready for this specific task. + +![Asset Status](/img/getting-started/asset_status_box.png) + +If you see the white box, Kitsu will display how many assets are ready for this task. + +![Asset Status](/img/getting-started/asset_status_empty.png) + +::: tip +If you don't see any boxes, no assets are cast for this shot. +::: +  +Then, you can click on the shot's name to go to its detail page. +Then, you will see all the assets cast in this shot and their status. + +![Asset Status](/img/getting-started/asset_status_detail.png) + +It's the fastest way to know if you can start a shot for a specific task. \ No newline at end of file diff --git a/docs/guides/pre-production/manage-concepts/images/0.png b/docs/guides/pre-production/manage-concepts/images/0.png new file mode 100644 index 0000000000..ea4807b1cf Binary files /dev/null and b/docs/guides/pre-production/manage-concepts/images/0.png differ diff --git a/docs/guides/pre-production/manage-concepts/index.md b/docs/guides/pre-production/manage-concepts/index.md new file mode 100644 index 0000000000..2db6333cf1 --- /dev/null +++ b/docs/guides/pre-production/manage-concepts/index.md @@ -0,0 +1,86 @@ +# Managing Concepts + +To manage your production's concepts, go to the **Concept** page in the production navigation menu: + +![Concept Menu](/img/getting-started/menu_concept.png) + +## Create a Concept + +To upload a concept, click the **Add a new reference to concepts** button. + +You can upload one or several concepts at the same time. + +![Concept empty page](/img/getting-started/concept_empty_prod.png) + +Once you upload your previews, the concept page will look like this. + +![Concept filled page](/img/getting-started/concept_filled_prod.png) + +Alternatively, if you're coming from the **Todo Page**: + +1. Click **Return to Production** to access the dashboard. +2. Navigate to the **Concepts** page via the main menu. +3. Click **Add a new reference to concepts** and upload your files. + +![Upload concepts](/img/getting-started/concept_empty.png) + +## Edit a Concept + +You can interact with a concept in two ways from the `Concepts` page: click on the picture to see an enlarged view. +The second is to click on the status part to open the **Comment Panel** on the right. + +On the comment panel, you have two options: link a concept to an existing asset or delete it. +You can also comment and change the status of the asset. + +The idea is to have one version per **Concept**. If it's not approved, you need to upload a new concept, not to have multiple versions of the same concept. + +One concept is one task. + +![Concept options](/img/getting-started/concept_options.png) + +## Link a Concept to an Asset + +Once a concept has been uploaded, you'll want to link it to an asset to ensure it is associated with the correct production element, making it easier for your team to reference and provide feedback within the proper context. + +You can see the links on the status part of the assets. + +Click on the status part of the concept; it will open the comment panel on the right. + +![Concept Comment Panel](/img/getting-started/concept_comment_panel.png) + +At the top of the comment panel, you have two options: Link a concept to an asset and delete the concept. + +To link an asset, click on the **Link** button: + +![Link button](/img/getting-started/link_icon.png) + +Kitsu will display all the **Assets** available to link with the concept uploaded. + +Kitsu will list the linked assets at the top of the comment panel. For now, there are No Links. + +![Concept link](/img/getting-started/concept_link.png) + +To link an asset, click on it. The names of the linked assets will appear at the top of the screen under the preview of the concept. + +![Concept asset linked](/img/getting-started/concept_asset_linked.png) + +Once a concept is linked to an asset, it can be seen on the asset's detail page. + +Return to the asset page, and click on the asset name you want to see the concept. + +![Detail asset page](/img/getting-started/asset_detail_page.png) + +Per default, the casting detail is displayed on the second part of the screen. +Use the dropdown menu to choose the concept. + +![asset detail concept](/img/getting-started/asset_detail_concept.png) + +Once in the concept section, you will see all the concepts created for this asset. You can filter them per status. + +![asset detail concept list](/img/getting-started/asset_detail_concep_listt.png) + +## Delete Concepts + +To remove a concept, click on the corresponding card to open the concept menu and click the `Delete` icon: + +![delete concept](/guides/pre-production/manage-concepts/images/0.png) \ No newline at end of file diff --git a/docs/guides/pre-production/meta-column/images/0.png b/docs/guides/pre-production/meta-column/images/0.png new file mode 100644 index 0000000000..f1581c9fbb Binary files /dev/null and b/docs/guides/pre-production/meta-column/images/0.png differ diff --git a/docs/guides/pre-production/meta-column/images/1.png b/docs/guides/pre-production/meta-column/images/1.png new file mode 100644 index 0000000000..5df6350219 Binary files /dev/null and b/docs/guides/pre-production/meta-column/images/1.png differ diff --git a/docs/meta-column/README.md b/docs/guides/pre-production/meta-column/index.md similarity index 52% rename from docs/meta-column/README.md rename to docs/guides/pre-production/meta-column/index.md index 8669e04541..43e5ab0f51 100644 --- a/docs/meta-column/README.md +++ b/docs/guides/pre-production/meta-column/index.md @@ -1,4 +1,5 @@ # Meta Columns + To add more information on the general spreadsheet pages, you can create a **Metadata Column**. Metadata columns alow you to track additional information related to your production. Some examples could include a metadata colum to track the percieved difficulty of a task, or a column to try custom tags that help you identify certain aspects of a task. Custom metadata columns can store data in a veriety of formats for easier data entry, filtering and validation. @@ -7,83 +8,74 @@ Metadata columns alow you to track additional information related to your produc To add a new custom metadata column, click on the **+** icon next to the Name column. -![Metadata Column](../img/getting-started/add_column_custom.png) +![Metadata Column](/img/getting-started/add_column_custom.png) First, choose the name you prefer for your field. Then, select the appropriate **Type** based on your needs: -- **Text**: - - This type accommodates text based input, including both letters and numbers. It offers flexibility in storing information such as descriptions, comments, or textual content. +- **Text**: This type accommodates text based input, including both letters and numbers. It offers flexibility in storing information such as descriptions, comments, or textual content. -- **Number**: - - Reserved solely for numerical data. It's recommended for tracking information exclusively comprised of numerical values, such as framerates, dates, or times. +- **Number**: Reserved solely for numerical data. It's recommended for tracking information exclusively comprised of numerical values, such as framerates, dates, or times. -- **Checkbox**: - - This option allows you to mark items as either on or off. It's suitable for tracking data with only two possible states, like indicating shots intended for a trailer cut. +- **Checkbox**: This option allows you to mark items as either on or off. It's suitable for tracking data with only two possible states, like indicating shots intended for a trailer cut. -- **List of values**: - - With this type, you define a list of options from which only one unique element can be selected. It's ideal when you need to track data with a limited number of choices. For instance, for tracking camera movements, options like "Static," "Pan," "Tilt," or "Zoom" could be included. +- **List of values**: With this type, you define a list of options from which only one unique element can be selected. It's ideal when you need to track data with a limited number of choices. For instance, for tracking camera movements, options like "Static," "Pan," "Tilt," or "Zoom" could be included. -- **List of tags**: - - Here, you can define multiple tags. Unlike a list of values, which allows selecting only one item, this type enables selecting multiple entries from the list. +- **List of tags**: Here, you can define multiple tags. Unlike a list of values, which allows selecting only one item, this type enables selecting multiple entries from the list. -- **Checklist**: - - This type presents a list of options, each accompanied by its own checkbox. It's useful for tracking minor sub-tasks associated with a shot or asset, which don't warrant their own task in the production pipeline. +- **Checklist**: This type presents a list of options, each accompanied by its own checkbox. It's useful for tracking minor sub-tasks associated with a shot or asset, which don't warrant their own task in the production pipeline. -![Metadata Column detail](../img/getting-started/custom_column_detail.png) +![Metadata Column detail](/img/getting-started/custom_column_detail.png) -:::warning +:::warning When creating **Text** and **Number** metadata types, a default value is not required upon creation. However, when using the **List of value**, **List of tags**, and **Checklist**, you have to specify which values you want to include at the point of creation. -![Metadata Column list](../img/getting-started/custom_column_list.png) +![Metadata Column list](/img/getting-started/custom_column_list.png) Type the list elements below **Available values**, and confirm them by clicking on **Add value**. ::: -### Linking Metadata Columns to Departments +## Linking Metadata Columns to Departments You can also link the **metadata column** to one or several **departments**. The artists/supervisors will see it on their to-do page and in the department-filtered view. -To create more departments, see [Create Departments](../configure-kitsu/README.md#create-departments). +To create more departments, see [Create Departments](/guides/team-management/managing-departments/#creating-departments). You can link the metadata column to one or more departments. Click on the department from the list and then click on **add** to confirm. Here, the VFX column is linked to two departments. -![Department metadata column filtered view](../img/getting-started/department_filtered_view_column.png) - - +![Department metadata column filtered view](/img/getting-started/department_filtered_view_column.png) ::: details How to edit your metadata column On the global page of the asset or the shot, click on the arrow on the direct right of your metadata column and click on **Edit**. -![Metadata column Edit](../img/getting-started/custom_column_edit.png) +![Metadata column Edit](/img/getting-started/custom_column_edit.png) ::: - Congratulations, your newly created metadata column should now be available from your global page. -![Metadata Column detail](../img/getting-started/custom_column_list_edit.png) +![Metadata Column detail](/img/getting-started/custom_column_list_edit.png) ::: tip Batch Updates If you want update multiple items with the same values, first check the items you want to include as shown below, and then update the value. The value you entered will then be updated across all items. -![Metadata Column detail](../img/getting-started/batch_edit_custom_column.png) +![Metadata Column detail](/img/getting-started/batch_edit_custom_column.png) -![Metadata Column detail](../img/getting-started/batch_edit_custom_column2.png) +![Metadata Column detail](/img/getting-started/batch_edit_custom_column2.png) ::: ::: details Editing Entities -While you can make updates to entities in the spreadsheet directly, you can also use the edit button ![Edit button](../img/getting-started/edit_button.png) to update multiple metadata columns. +While you can make updates to entities in the spreadsheet directly, you can also use the edit button ![Edit button](/img/getting-started/edit_button.png) to update multiple metadata columns. Once selected, you can fill out or adjust values for all metadata columns for that specific entity. Remember to press the **Confirm** button when you are done. -![Metadata Column detail](../img/getting-started/edit_asset_custom.png) +![Metadata Column detail](/img/getting-started/edit_asset_custom.png) ::: -If you need to edit or delete the metadata column from the general spreadsheet page next to the name of your metadata column, click on the arrow ![Metadata Column detail](../img/getting-started/arrow.png). +If you need to edit or delete the metadata column from the general spreadsheet page next to the name of your metadata column, click on the arrow ![Metadata Column detail](/img/getting-started/arrow.png). ::: tip In additional to editing or deleting metadata columns, from here you can also **sort** your global page with this new column by clicking on **Sort By**. @@ -91,23 +83,21 @@ In additional to editing or deleting metadata columns, from here you can also ** Additionally you can also **Stick** the metadata column, meaning that it will stay locked to the left and remain visible while scrolling through a large dataset. ::: - ## Organizing Metadata Columns + ### Display or Hide All Metadata Columns To keep your global spreadsheet tidy, you can choose to hide any non-essential columns. Note that this action does not delete the column; it simply hides it from view but retains it in other areas where it is used. - To do this, click on the **Hide Additional Information** -![minimize button](../img/getting-started/maximize.png) button on the top right of the page. - -![All Information Displayed](../img/getting-started/hide_extra_information1.png) +![minimize button](/img/getting-started/maximize.png) button on the top right of the page. +![All Information Displayed](/img/getting-started/hide_extra_information1.png) To make the information reappear, click on the same button, -![maximize button](../img/getting-started/minimize.png) it won't be highlighted in grey. +![maximize button](/img/getting-started/minimize.png) it won't be highlighted in grey. -![All Information Displayed](../img/getting-started/hide_extra_information2.png) +![All Information Displayed](/img/getting-started/hide_extra_information2.png) ### Display or Hide a single Metadata Column @@ -115,21 +105,28 @@ You may need to hide or display a specific **Metadata Column** on a global page. To hide your metadata column, click on the arrow on the right border of the global page. -![Visible column](../img/getting-started/visible_column.png) +![Visible column](/img/getting-started/visible_column.png) You can choose which column you want to **hide** or **display**. - - - ## Sticky Columns If a piece of information is frequently referred to, you can **Stick** this column next to the shot name. Click on the arrow to the right of the column to open the column menu, then choose **Stick**. -![Sticky Option](../img/getting-started/sticky.png) +![Sticky Option](/img/getting-started/sticky.png) + +![Sticky Option](/img/getting-started/sticky_example.png) + +## Update Meta Columns + +Hover over your meta column and click on the menu dropdown icon, then select `Edit`. A modal dialog will appear to update your meta-column properties: + +![](/guides/pre-production/meta-column/images/1.png) -![Sticky Option](../img/getting-started/sticky_example.png) +## Remove Meta Columns +Hover over your meta column and click on the menu dropdown icon, then select `Delete`: +![](/guides/pre-production/meta-column/images/0.png) \ No newline at end of file diff --git a/docs/guides/privacy-security/authentication/index.md b/docs/guides/privacy-security/authentication/index.md new file mode 100644 index 0000000000..f48b6214a0 --- /dev/null +++ b/docs/guides/privacy-security/authentication/index.md @@ -0,0 +1,24 @@ +# Authentication + +## Enable Two-Factor Authentication + +**Two-Factor Authentication** provides an additional layer for security for users logging in to Kitsu. It can be enabled on a per-user basis, so you can decide for which users it is enforced. + +To enable this, click on their avatar at the top right of the screen, then select **Profile**. +At the bottom of the page, they will find various **Two-Factor Authentication** options: + +- **TOTP**: This lets you use a Two-Factors Authentication app as a secondary password for your account. Selecting this option will present you with a QR, that once scanned into your 2FA app of choice, will prompt you for a one-time code each time you login. +- **OTP Via Email** Similar to TOTP, but instead of using an app the 2FA code is sent to your email address +- **FIDO Device** A FIDO device refers to a hardware security key that supports the FIDO (Fast IDentity Online) standard for two-factor authentication (2FA). If you own one of these devices, you can input it's name here to be used for Two-Factor-Authentication + +![TWO-FACTOR AUTHENTICATION](/img/getting-started/2factors.png) + +## OpenID / SSO auth + +Kitsu also supports OpenID Connect (OIDC). + +Rather than creating and maintaining a separate password for Kitsu, team members can sign in with the same credentials they already use for everything else if the studio already relies on a centralized identity system like Google Workspace, Okta, Azure AD, or another OIDC-compatible provider. + +Once OIDC is enabled in your backend configuration, the login page automatically displays a "Login with [provider]" button alongside the standard login for: + +![OpenID auth](/img/openid.webp) diff --git a/docs/guides/privacy-security/index.md b/docs/guides/privacy-security/index.md new file mode 100644 index 0000000000..686db42eae --- /dev/null +++ b/docs/guides/privacy-security/index.md @@ -0,0 +1,4 @@ +# Privacy & Security + +- [Authentication](/guides/privacy-security/authentication/) - +- [Logs](/guides/privacy-security/logs/) - \ No newline at end of file diff --git a/docs/guides/privacy-security/logs/index.md b/docs/guides/privacy-security/logs/index.md new file mode 100644 index 0000000000..59fcf4c95c --- /dev/null +++ b/docs/guides/privacy-security/logs/index.md @@ -0,0 +1,27 @@ +# Log Pages + +Studio managers can use log pages in `Main Menu > Admin > Logs` to improve security or audit user activity for troubleshooting issues. + +## Activity Logs + +The activity logs list all API requests: + +![Activity Logs page](/img/activitylogs.jpg) + +It's possible to filter logs per day and user. + +## Login Logs + +Login logs give administrators better visibility into account access across their organization: + +![Login Logs page](/img/loginlogs.jpg) + +You can use it to see who logged in, how, and when. The log supports filtering by date and person to investigate specific activity, and includes pagination for navigating larger datasets. + +## Preview File Status Logs + +Preview file upload can be tricky for large videos, so this page lists all preview files in an intermediary state: processing or broken. + +![Preview File Status Logs page](/img/previewlogs.jpg) + +It shows how many preview files are being processed, or which file uploads failed to complete and why. \ No newline at end of file diff --git a/docs/guides/review-publishing/index.md b/docs/guides/review-publishing/index.md new file mode 100644 index 0000000000..bb14e25572 --- /dev/null +++ b/docs/guides/review-publishing/index.md @@ -0,0 +1,7 @@ +# Review & Publishing + +- [Update Task Progress](/guides/review-publishing/update-task-progress/) - How to change statuses and keep your team updated on the progress of work. +- [Publish](/guides/review-publishing/publish/) - How to publish and share work with your team. +- [Request Review](/guides/review-publishing/request-review/) - +- [Review](/guides/review-publishing/review/) - Learn how to review all feedback on a task. +- [Playlist](/guides/review-publishing/playlist/) - Quickly gather video versions and stay focused during internal and client reviews. \ No newline at end of file diff --git a/docs/guides/review-publishing/playlist/images/0.png b/docs/guides/review-publishing/playlist/images/0.png new file mode 100644 index 0000000000..e88d42cbe8 Binary files /dev/null and b/docs/guides/review-publishing/playlist/images/0.png differ diff --git a/docs/guides/review-publishing/playlist/images/1.png b/docs/guides/review-publishing/playlist/images/1.png new file mode 100644 index 0000000000..466ccb22a3 Binary files /dev/null and b/docs/guides/review-publishing/playlist/images/1.png differ diff --git a/docs/guides/review-publishing/playlist/images/2.png b/docs/guides/review-publishing/playlist/images/2.png new file mode 100644 index 0000000000..0c655c845f Binary files /dev/null and b/docs/guides/review-publishing/playlist/images/2.png differ diff --git a/docs/guides/review-publishing/playlist/images/3.png b/docs/guides/review-publishing/playlist/images/3.png new file mode 100644 index 0000000000..4649675d8e Binary files /dev/null and b/docs/guides/review-publishing/playlist/images/3.png differ diff --git a/docs/guides/review-publishing/playlist/index.md b/docs/guides/review-publishing/playlist/index.md new file mode 100644 index 0000000000..e84b0fba90 --- /dev/null +++ b/docs/guides/review-publishing/playlist/index.md @@ -0,0 +1,204 @@ +# Playlists + +A playlist is a list of curated versions / previews compiled for review and approval. + +## Accessing your Playlists + +**Production team members** can find the **Playlists** page in the drop-down menu. + +![Playlist main menu](/img/getting-started/drop_down_menu_playlist.png) + +The **Playlist** page is separated into two parts: + +- (1) A list of your playlists where you can **create** a new one or load an existing one. +- (2) The last created playlists and the last modified playlists. + +![Playlist page](/img/getting-started/playlist_page.png) + +**Clients** access playlists differently: click on the production avatar to reach the **Playlist** page, which gathers all the assets and shots they have to comment on. + +![Client Landing page](/img/getting-started/client_landing.png) + +![Client playlist global page](/img/getting-started/client_playlist_global.png) + +On the left, clients can sort the playlist per **Task Type**, **date**, or **name** (1), followed by the list of playlists created for them (2). The center part gives fast access to the recent playlists (3). + +In the detail view, the left part keeps access to the different playlists, the center part shows the elements of the selected playlist (assets or shots), and the right part gives access to the comment section, where clients can write a comment to approve the preview. + +![Client playlist global page](/img/getting-started/client_playlist_detaill.png) +![Client playlist global page](/img/getting-started/client_playlist_detail_comment.png) + +## Create a Playlist + +Start by creating a **Playlist** using the ![Playlist add button](/img/getting-started/playlist_add_button.png) button. The playlist name defaults to the current date & time, but you can change this. You can choose if the playlist will be shared with the **studio** or the **client** and if it's a **shot** or **asset** playlist. You can also add a **Task Type** tag to the playlist. + +![Playlist add page](/img/getting-started/playlist_add_page.png) + +> **For client playlists:** the process is the same, but make sure to select **The Client** under **To Be Shared With**. This ensures the proper permissions and gives the client access to only this specific playlist. +> +> ![Playlist Global](/img/getting-started/client_playlist_create.png) + +## Populating a Playlist + +Once the playlist is created, use the search/filter bar to select which shots to add to your playlist. + +You will also see options for adding: + +- An **entire episode** or **entire sequence** if you want to add large chunks of the project at once. +- The **whole movie**, which will add all the shots of the movie. +- **Daily pending**, which will add all the **WFA** tasks of the day. + +You can use the same **filters** as the global shot/asset page. For example, you can select all the **WFA** (short for "work for animation") tasks at the **Animation** stage by typing **animation=wfa** in the search bar. Validate your selection with the **Add selection** button. Kitsu will select the shots with the **WFA** status at the **Animation** stage and automatically load the **latest uploaded version**. + +The shots appear in the top part of the screen. Every change is automatically saved. + +![Playlist page](/img/getting-started/playlist_example.png) + +## Review Controls + +Once you have created a playlist, you have several options: + +![Playlist Global](/img/getting-started/playlist_global.png) + +- Play or Pause +- Jump between elements in your playlist +- See the position of the selected element compared to the total number of elements +- Mute or unmute the audio +- Change the speed: double speed (x2), full speed (x1), half speed (x0.50), or quarter speed (x0.25) +- Continuously loop a single element +- Display audio waveforms +- Display annotations during playback +- Show the timecode (TC) of the element compared to the TC of the whole playlist +- Display the number of frames +- Navigate frame by frame on the preview (you can also use the left & right arrow keys on the keyboard) +- Access the compare tool +- Undo and redo options for annotations +- Text and drawing options (including delete selection) +- Change the task type of all the elements in the playlist +- Display the comments section +- Hide elements in the playlist +- Switch between LD (low definition) and HD (high definition) +- Download the playlist as a **Zip** file with all the separate elements, a **.csv** text file, or **Build .mp4** to create the whole movie (only for shots) +- Enter fullscreen mode + +Clients see this same set of controls, laid out as follows: + +![Client playlist option](/img/getting-started/client_playlist_option.png) + +- (1) Previous shot / asset, (2) Next shot / asset, (3) position of the element +- (4) Play/pause, (5) speed (x1, x0.50, x0.25), (6) loop the selected shot +- (7) Time code of the shot vs. the global time code, (8) actual frame, (9) previous frame, (10) next frame +- (11) Split screen (compare two task types side by side) +- (12) Undo annotation, (13) Redo annotation +- (14) Write a comment on the picture and change the text color +- (15) Draw a comment on the picture and change the color/size of the line +- (16) Select a drawing and click the cross to delete it +- (17) Change the task type of all elements, (18) Open the comment/status panel, (19) Hide the element list, (20) Download the playlist, (21) Fullscreen + +Clients can also navigate from element to element by clicking on it, see the color status and length of each element compared to the total, and see the position of the selected element with a green dot. + +::: tip +Frame-by-frame navigation with the left/right arrow keys works the same way for clients. +::: + +::: danger Client Permissions +- Clients can see all versions of all task types. +- Clients can only see comments they have made and any replies to these comments. They cannot see your internal comments. +- Clients can only see when a revision has been published, but cannot see who published it. +- Clients can only see and use statuses with the **Is client allowed** tag. +::: + +::: warning +A client will only have access to a production if they are part of the team, and they will only see the **client playlist**. There is currently no way to segregate clients within the same production. +::: + +### Task, Version & Compare + +For each shot/asset in the playlist, you (or the client) can choose the **task** and the **version** to view. + +![Playlist task selection](/img/getting-started/playlist_task_selection.png) +![Playlist version selection](/img/getting-started/playlist_version_selection.png) + +You can also play two tasks of a shot side by side. Click on the **Compare** button ![Compare button](/img/getting-started/compare_button.png) and choose the second task type. + +![Playlist side by side](/img/getting-started/playlist_side_by_side.png) + +## Commenting + +The primary purpose of the playlist is to help review the shots and assets. You can comment directly from the preview by clicking the **comment** button. + +![Playlist comment](/img/getting-started/playlist_comment_button.png) + +This opens the right panel, which shows a history of the comments and their status. You can see drawing comments on the video (the red dot below the timeline). + +![Playlist comment](/img/getting-started/playlist_comment.png) + +You can draw or type on the video with the **draw** button ![draw button](/img/getting-started/draw.png) (similar to [Perform a review](../../../status-publish-review/index.md#perform-a-review)). + +> **For clients**, the comment button opens the same kind of panel, but showing only their own comments and status history, without access to internal comments or statuses. +> +> ![Playlist comment](/img/getting-started/playlist_comment_button_client.png) +> ![Playlist comment](/img/getting-started/playlist_comment_client.png) +> +> ::: warning +> Only the supervisor and production manager can see the client's comments — artists will only see the status. The supervisor and production manager can copy the client's comments, modify them if necessary, and publish them for the team. +> +> ![Playlist client comment](/img/getting-started/client_comment.png) +> ::: + +### Share your Comments + +First open the comment section. ![Comment button](/img/getting-started/comment_button.png) + +From there, you can change the status to ![Retake](/img/getting-started/retake_icon.png) if you want the artist to perform some changes. + +You can add a **checklist** to your comments. Click the **Add checklist** button, and the first item of the checklist appears. + +![client add checklist](/img/getting-started/client_checklist_retake.png) + +Type your comment, and hit **Enter** to add another line to your checklist, or click again on the **Add Checklist** button. + +![checklist](/img/getting-started/checklist_detailed.png) + +## Review Room + +The Review Room is a collaborative space designed for efficient and synchronized dailies review sessions, for both internal teams and clients. It ensures that all participants are viewing the same content simultaneously, facilitating real-time feedback and discussion. + +You can join the **Review Room** by clicking the button at the top of the playlist. Everyone in the room will see the play, pause, shot, and frame selections in real-time. + +The Review Room also supports synchronized drawing annotations: participants can draw directly on the frames being reviewed, with all annotations visible to everyone in the session. This makes it easier to point out specific details, suggest changes, and highlight important aspects of the work. + +![Playlist review room](/img/getting-started/playlist_review_room.png) + +## Share Playlist + +There are two ways to share playlists depending on if the reviewer has access to your Kitsu instance (internal review) or not (guest review). + +### 1. Invite Internal Reviewers + +TODO + +### 2. Guest Review Experience + +Getting feedback from temporary clients or external partners shouldn't require creating accounts. With Kitsu's public link sharing, you can send a playlist with a single link and let guests access a dedicated review player where they can: + +- Leave comments +- Make drawing annotations +- Update statuses +- Manage checklists on their own feedback + +1. In your playlist, click the `Share` button in the top right corner: + +![](/guides/review-publishing/playlist/images/0.png) + +2. Click `Add a new link`: + +![](/guides/review-publishing/playlist/images/1.png) + +3. Select if you want to allow guest comments and optionally pick an expiration date for the link: + +![](/guides/review-publishing/playlist/images/2.png) + +4. Share the public link with your guests. Anyone with the link can view the playlist, so be careful not to leak outside your safe space. + +![](/guides/review-publishing/playlist/images/3.png) \ No newline at end of file diff --git a/docs/guides/review-publishing/publish/index.md b/docs/guides/review-publishing/publish/index.md new file mode 100644 index 0000000000..6c6d59c35e --- /dev/null +++ b/docs/guides/review-publishing/publish/index.md @@ -0,0 +1,78 @@ +# Publishing + +## Publishing a Concept + +To publish a **Concept**, navigate to the **Concepts** page from the project navigation menu. + +![Concept Menu](/img/getting-started/menu_concept.png) + +To upload a concept, click the **Add a new reference to concepts** button. You can upload one or several concepts simultaneously. + +![Concept empty page](/img/getting-started/concept_empty_prod.png) + +After the upload is complete, previews will be generated and visible from your concepts page. + +![Concept filled page](/img/getting-started/concept_filled_prod.png) + +Click on the thumbnail to see an enlarged preview of your concept, or click on the status to open the **Comment Panel** on the right. + +With the comment panel open, you have two options: + +1) You can link a concept with an existing asset / delete and existing link. +2) You can comment and change the status of the concept. + +It is good practice to only have one version per **Concept**. If the concept is not approved and requires additional changes, then it's better to version-up that concept. + +![Concept options](/img/getting-started/concept_options.png) + +## Publish a Preview as a Version + +To publish a preview, picture, or video, access the task's comment panel and select the **PUBLISH REVISION** tab. + +Kitsu automatically switches to the **Publish Revision** tab when using a status with the **IS FEEDBACK REQUEST** option, such as the **WFA** Status. + +![Publish Revision](/img/getting-started/publish_revision.png) + +You can add one or several previews to any comments. These can be a picture (`.png`, `.jpg`, `.jpeg`, `.gif`), a video (`.mp4`, `.mov`, `.wmv`), or a `.glb` file. Additionally, you can review all the previews from the browser or mix everything. + +You can also review a `.glb` file as a wireframe or add a `.HDR` file to check the lighting. See the **Customization** section for more details. + +[Pipeline Customization](../../../configure-kitsu/index.md#3d-backgrounds) + +Other files like `.pdf`, `.zip`, `.rar`, `.ma`, or `.mb` cannot be viewed in the browser and need to be downloaded to be reviewed. + +Then, click on the **Add preview revision to publish** button. The explorer opens, allowing you to choose your file or several files. + +![Attach Preview](/img/getting-started/attach_preview.png) + +You can also **copy-paste a screenshot** from your clipboard into this upload dialogue, without needing to download it first. Once your file is selected, you will see its name near the **Add files to publish** button. + +![Attach Preview Filled](/img/getting-started/attach_preview_filled.png) + +You can also **drag & drop** files that you wish to upload into the comment section to automatically start the upload process. + +![Attach Preview Drag Drop](/img/getting-started/drag_drop_preview.png) + +On top of your preview, you can add a **Comment**. Click the **Leave a Comment** button to unfold the comment section. + +![Add a comment to a Publish](/img/getting-started/publish_revision_comment.png) + +You can then select your status and publish your preview with the **Post** Button. + +For more information on using publishes as thumbnails, [see this section here on thumbnails](../../../thumbnails/index.md). + +## Combining Previews Into a Version + +You can add multiple images simultaneously, or once you have uploaded an image, you can add another one. + +![Upload Several Pictures](/img/getting-started/upload_several_pictures.png) + +The **Add preview** pop-up asks you to choose a file. You can navigate through the pictures uploaded. + +You can change the preview order by clicking the number and then dragging and dropping them. + +![Preview Drag Drop](/img/getting-started/multiple_preview.png) + +To delete an additional preview, enlarge the comment panel, click on the number of versions, and then click on the ![Delete Button](/img/getting-started/delete_button.png). + +![Enlarge Comment Section Delete](/img/getting-started/enlarge_comment_delete.png) diff --git a/docs/guides/review-publishing/request-review/index.md b/docs/guides/review-publishing/request-review/index.md new file mode 100644 index 0000000000..0cbcec4c0f --- /dev/null +++ b/docs/guides/review-publishing/request-review/index.md @@ -0,0 +1,13 @@ +# Request a Review + +Once your task has been completed, you can submit it for review. To do this: + +1. Change the task status to **Waiting for Approval (WFA)**. +2. Attach a preview file by dragging it into the upload area or clicking **Attach Preview**. +3. Click **Post** to finalize your submission. + +![Request review](/img/getting-started/add_preview.png) + +Previous revisions are saved and remain accessible for reference. + +![Revision history](/img/getting-started/previewv2.png) diff --git a/docs/guides/review-publishing/review/images/0.png b/docs/guides/review-publishing/review/images/0.png new file mode 100644 index 0000000000..1b5fedd386 Binary files /dev/null and b/docs/guides/review-publishing/review/images/0.png differ diff --git a/docs/guides/review-publishing/review/images/1.png b/docs/guides/review-publishing/review/images/1.png new file mode 100644 index 0000000000..19d7c0d4ab Binary files /dev/null and b/docs/guides/review-publishing/review/images/1.png differ diff --git a/docs/guides/review-publishing/review/images/2.png b/docs/guides/review-publishing/review/images/2.png new file mode 100644 index 0000000000..67d04dde67 Binary files /dev/null and b/docs/guides/review-publishing/review/images/2.png differ diff --git a/docs/guides/review-publishing/review/images/3.png b/docs/guides/review-publishing/review/images/3.png new file mode 100644 index 0000000000..b75085caed Binary files /dev/null and b/docs/guides/review-publishing/review/images/3.png differ diff --git a/docs/guides/review-publishing/review/index.md b/docs/guides/review-publishing/review/index.md new file mode 100644 index 0000000000..774e71e0ff --- /dev/null +++ b/docs/guides/review-publishing/review/index.md @@ -0,0 +1,162 @@ +# Reviews + +## Reviewing Tasks + +When an artist needs someone to **review** their work, they can change the status of their task to ![wfa](/img/getting-started/wfa_icon.png). + +Click on the status to open the right hand panel and start the review. + +You can watch the version from the right panel, enlarge it by grabbing the side of the panel, or even enter fullscreen by clicking this icon ![Fullscreen](/img/getting-started/fullscreen.png). + +![review on global page](/img/getting-started/review_global.png) + +In the same way, you can also review 3D files (`.glb` file) as a wireframe or add a `.HDR` file to check the lighting. + +You can move around the 3D file by dragging and dropping your cursor and zooming in or out with the scroll wheel. + +![review 3d wireframe](/img/getting-started/review_wireframe.png) + +![Preview background example](/img/getting-started/preview_background_example.png) + +See the **Customization** section for more details. +[Pipeline Customization](../../../configure-kitsu/index.md#3d-backgrounds) + +You can select a color to use and then draw directly on the preview with the **Pencil** tool ![Pencil](/img/getting-started/draw.png). + +![review drawing](/img/getting-started/review_comment.png) + +### Drawing Annotations + +You can also annotate the frame with **text**. + +![review drawing text](/img/getting-started/review_comment_text.png) + +If you'd like to temporarily **hide annotations**, click the **Fountain Pen** button. +![Hide Annotation](/img/getting-started/hide_annotation.png) + +### Shape Annotations + +Reviewers can draw squares, circles, and arrows instead of being limited to freehand sketching alone. + +![](/guides/review-publishing/review/images/0.png) + +### Tagging Frames + +If you would like to refer back to a specific frame in your comments, you can easily tag a frame by typing `@`, which opens a sub-menu with the team list, and then start typing **frame**. + +This will then add a timestamp of the current frame to this comment, and clicking on that timestamp will jump to said frame. + +![Tag a frame](/img/getting-started/tag_frame.png) + +### Exporting Annotations + +You can also export your drawings on each frame by attaching the **screenshots as attachments**. + +Click on the **Add attachment** button. + +![attachment](/img/getting-started/attachment_retake.png) + +You can also choose to **Attach snapshots from your annotation** in the attachment options. This lets you take annotated frames and add them as attachments of the comment, which can be useful if you want to highlight specific annotations in your feedback. + +![Attachment snapshot](/img/getting-started/screenshot_attachment.png) + +Once you click the button, Kitsu will grab all the frames with annotations and display the result. You can publish them with **Confirm**. + +![Attachment snapshot detail](/img/getting-started/attachment_snapshot_detail.png) + +### Deleting Annotations & Eraser + +If you need to delete an annotation, click the `Eraser` icon: + +![](/guides/review-publishing/review/images/1.png) + +### Comparing Images + +By entering **Full-Screen**, you can compare two task types or versions side by side by clicking on the **Compare** button ![compare button](/img/getting-started/compare_button.png). + +![compare button](/img/getting-started/compare_version.png) + +From here, you can change the status to ![Retake](/img/getting-started/retake_icon.png) if you want the artist to make changes. + +Alternatively, you can change it to ![Done](/img/getting-started/done_icon.png) to notify the artist that their work is approved. + +### Onion Skinning + +If you need to check frame-to-frame consistency while reviewing animation in Kitsu, you can use onion skinning for annotations. + +Onion skinning overlays nearby annotation frames (up to 5 frames before and/or after the current frame) so you can see motion, spacing, and timing issues in one go without scrubbing back and forth. + +Here is the annotated frame N: + +![](/guides/review-publishing/review/images/2.png) + +And here is how the overlay looks in frame N + 4: + +![](/guides/review-publishing/review/images/3.png) + +## Reviewing Previews + +Now that everyone in your team knows what to do, you need to review their work. Typically, when an artist finishes a task, they will call you for a review. Frequent interruptions can be unproductive and make it difficult to maintain focus. To avoid this, set a specific timeframe for reviews. This approach benefits both you and your team by providing a structured schedule. Artists will know when they can expect feedback and can plan their work accordingly, while you can dedicate uninterrupted time to your own tasks. + +Click the **My Checks** button at the top of the screen to see a list of all your department's **WFA** tasks. + +![Supervisor My Check Page](/img/getting-started/supervisor_mycheck.png) + +This list covers all relevant **Productions**, **Task Types**, and **Task Statuses**. As with other pages in Kitsu, you can click on a **Status** to open the **Comment Panel** on the right and review tasks one by one. + +Alternatively, you can use the **Build playlist from list** button to create a playlist with all the tasks on the list. This playlist has the same options as other views, allowing you to open the comment panel, compare versions and task types, and add annotations. + +![Supervisor My Check Playlist](/img/getting-started/supervisor_mycheck_playlist.png) +![Supervisor My Check Playlist Option](/img/getting-started/supervisor_mycheck_playlist_option.png) + +Another option is to go to the **Task Type Page** and change the **Display as contact sheet**. For example, you can filter by **Due Date Status** and select **Due this week**. + +![Supervisor Contact Sheet](/img/getting-started/supervisor_contactsheet.png) + +From here, you can click on the contact sheet to open the comment panel or select several tasks to create a playlist. + +## Reviewing Concepts + +If you're a **Concept Artist**, you can upload and share concepts for review. + +When your artists upload a concept, you can review it through the navigation menu at the top of the screen by selecting the **Concepts** page. + +![Menu concept](/img/getting-started/menu_concept.png) + +On this page, you can see all uploaded concepts along with their status, assignment, and linked assets. + +![Concept filled status](/img/getting-started/concept_empty_prod_linked.png) + +To review a concept, click on its status to open the comment panel. You can enlarge the comment panel or enter fullscreen. You can then write a comment, set the status as **Approved** or **Rejected**, and confirm your changes with the **Post** button. + +![Concept status comment](/img/getting-started/concept_status_comment.png) + +You can narrow down the page using the **Status** filter to display all concepts with a **Neutral** status. + +![Concept status filter](/img/getting-started/concept_status_filter.png) + +Additionally, you can filter by artist and change the sort order to better hone in on the data you need to review. + +## Reviewing Concepts + +Once your artists upload a concept, you can review it with the supervisor or the director. + +To review the concept, use the navigation menu at the top of the screen and select the concept page. + +![Menu concept](/img/getting-started/menu_concept.png) + +You can see all the uploaded concepts, their statuses, assignments, and linked assets. + +![Concept filled status](/img/getting-started/concept_empty_prod_linked.png) + +To review a concept, click on the status to open the comment panel. You can enlarge the comment panel or go fullscreen. + +Then, proceed to write a comment, select the status **Approved** or **Rejected**, and confirm with the **Post** button. + +![Concept status comment](/img/getting-started/concept_status_comment.png) + +You can filter the page with the **Status** filter to display all the concepts with a **Neutral** status. You can also filter by artist and change the sort order. + +![Concept status filter](/img/getting-started/concept_status_filter.png) + +## The "My Checks" Page \ No newline at end of file diff --git a/docs/status/README.md b/docs/guides/review-publishing/update-task-progress/index.md similarity index 68% rename from docs/status/README.md rename to docs/guides/review-publishing/update-task-progress/index.md index 3ad186488c..84d6b10eb4 100644 --- a/docs/status/README.md +++ b/docs/guides/review-publishing/update-task-progress/index.md @@ -1,4 +1,19 @@ -# Statuses and Feedback +# Updating Task Progress + +Once you've made progress on your task, you'll want to update your team on its status. + +### Updating Task Statuses + +1. Click the task’s **Status** icon on the **My Tasks** page or the relevant asset page. +2. Add comments to provide updates or ask questions. +3. Change the status (e.g., from "Ready" to "WIP"). +4. Click **Post** to save changes. + +![Changing status](/img/getting-started/changing_status.png) + +You can edit your most recent comment by clicking the **History** button and selecting **Edit**. ![Edit button](/img/getting-started/edit_button.png) + +## Statuses and Feedback In Kitsu, statuses serve as indicators reflecting the current state or progress of a task. You can easily see the current status at a glance and add comments to update team members when a status changes. @@ -6,11 +21,11 @@ In Kitsu, statuses serve as indicators reflecting the current state or progress To change the status of a task and write a comment, click on the status of the task. -![Shot status](../img/getting-started/shot_status.png) +![Shot status](/img/getting-started/shot_status.png) A panel will appear on the right where you can write a comment, change the status, and attach a file. -![Comment Panel](../img/getting-started/comment_panel.png) +![Comment Panel](/img/getting-started/comment_panel.png) The **Comment Panel** is split into two tabs: - POST COMMENT @@ -24,82 +39,86 @@ Comments support the use of **Markdown**, which is a markup language used for fo You can also **tag** a team member in the comments to notify them directly. To do this, type `@`, which will open a submenu with a list of team members. Select the person you wish to notify, and upon submitting your comment, they will receive a notification. -![Tag someone](../img/getting-started/tag_team.png) +![Tag someone](/img/getting-started/tag_team.png) You can also **tag** an entire department by typing '@' followed by the department's name. -![Tag department](../img/getting-started/tag_department.png) +![Tag department](/img/getting-started/tag_department.png) ### Adding Checklists You can also add checklist items to keep track of miscellaneous items that don't warrant their own task. To add a **checklist** to your comments, click the **Add checklist** button. The first item of the checklist will appear. -![Add checklist](../img/getting-started/add_checklist.png) +![Add checklist](/img/getting-started/add_checklist.png) Hit **Enter** or click the button again to add more checklist items, and give each one a name. -![Checklist](../img/getting-started/checklist_detailed.png) +![Checklist](/img/getting-started/checklist_detailed.png) ### Adding Attachments To attach a file as a picture, click on the **Add attachment** button. -![Add Attachment Simple](../img/getting-started/attachment_snapshot.png) +![Add Attachment Simple](/img/getting-started/attachment_snapshot.png) Select a **file from your hard drive** or paste a **screenshot**. -![Attachment snapshot](../img/getting-started/add_attachmen_simplet.png) +![Attachment snapshot](/img/getting-started/add_attachmen_simplet.png) Validate the attachment by clicking on **Add file as attachment**. Next, select the **Status** you wish to change the task to from the dropdown menu. -![Status List](../img/getting-started/status_list.png) +![Status List](/img/getting-started/status_list.png) Finally, click the **Post** button to submit your comment and status update. ## Changing Statuses In Bulk + ### Updating Multiple Statuses at Once + You can also change the status for multiple tasks at once. Select multiple shots or assets by pressing **Ctrl / Cmd** or **Shift** and select the tasks you wish to include. Then, go to the action menu's **Change status** section. -![Action menu status](../img/getting-started/blue_menu_status.png) +![Action menu status](/img/getting-started/blue_menu_status.png) Choose the new status for your selected tasks (1). You can also add a comment for all the selected tasks (2). Save the new status with the **Confirm** button. -![Change status per batch](../img/getting-started/change_status_batch.png) +![Change status per batch](/img/getting-started/change_status_batch.png) -![Metadata Column Sort By](../img/getting-started/custom_column_sortby.png) +![Metadata Column Sort By](/img/getting-started/custom_column_sortby.png) ## Artist Board Statuses + ### Customizing Statuses Used on the Artist Board Page + When you assign a task to an artist, it will appear on their to-do page when they log in. While the default view shows their tasks in a traditional list view, they can also choose to display their tasks in a board view. Each **Status** will be be represented by a column, and the assigned tasks will be cards that can be dragged from status to status as the tasks progress. To customize the board view, go to the settings page of your production. -![Setting page](../img/getting-started/drop_down_menu_setting.png) +![Setting page](/img/getting-started/drop_down_menu_setting.png) Then go to the Task Status tab. You will see a list of the statuses used in your production. These statuses will be used as the columns on the board page. You can drag and move the statuses to change their order as they appear in the board view. -![Setting page status order](../img/getting-started/setting_status_order.png) +![Setting page status order](/img/getting-started/setting_status_order.png) Next, click on the **Board Status** section. -![Setting page status board](../img/getting-started/setting_status_board.png) +![Setting page status board](/img/getting-started/setting_status_board.png) -Here you can customize which permission roles can see what statuses on their **Board** page. +Here you can customize which permission roles can see what statuses on their **Board** page. To access this view, select the **Board** tab from the **My Tasks** page. Your team will see a page that looks similar to this -![Artist board page](../img/getting-started/artist_board_page.png) +![Artist board page](/img/getting-started/artist_board_page.png) ::: tip -Customizing which statuses appear in the **Board** view is set per permission role. It cannot be customized on an individual user basis. +Customizing which statuses appear in the **Board** view is set per permission role. It cannot be customized on an individual user basis. ::: diff --git a/docs/assignation/README.md b/docs/guides/scheduling/assign-tasks/index.md similarity index 61% rename from docs/assignation/README.md rename to docs/guides/scheduling/assign-tasks/index.md index 7f6a7f5764..2706f7bb69 100644 --- a/docs/assignation/README.md +++ b/docs/guides/scheduling/assign-tasks/index.md @@ -1,8 +1,9 @@ -# Tasks Assignments +# Task Assignments -In Kitsu, a task is a fundamental element used for planning, organizing, and tracking various aspects of your production. +In Kitsu, a task is a fundamental element used for planning, organizing, and tracking various aspects of your production. Assigning a task to a user offers several benefits: + - You have a clear understanding of who is responsible for each task. - Users are aware of their assigned tasks. - Users can log time spent on each task. @@ -12,30 +13,7 @@ Assigning a task to a user offers several benefits: - You can forecast team productivity. - You can track the actual performance of your team. - -## Add Users to the Team - -In the [section on preparing your team](../team/README.md), we cover how to add people to Kitsu, set their permission levels, and link them to a department. - -::: tip -In order for a user to be assigned to a task, they must first be added to a production. Please note that you cannot assign tasks to users outside of the production. -::: - -First, lets add some users to our production. Within your project, from the dropdown menu at the top of the page, select the **Team** page. - -![Drop down menu team](../img/getting-started/drop_down_menu_team.png) - -On the this page, you can see all the users who have been assigned to this project. If you've just created a brand new project, this page will be empty. for a specific project. You can also quickly navigate to the team page for a different project, by selecting the project name in the drop down menu. - -![Team page](../img/getting-started/team_page.png) - -::: warning -Permissions and departments are set at the **Studio Level**. You can't adjust these at the production level. -::: - - -## How to Assign Tasks -### Assign Tasks From the Global Page +## Assign Tasks From the Global Page Once you've added all your users to the production, it's now time to assign your first task! @@ -43,19 +21,19 @@ Once you've added all your users to the production, it's now time to assign your In Kitsu, tasks from each task type are visually represented by the Status of the task cell, as shown below. ::: -![Assigned a task](../img/getting-started/task_assigned.png) +![Assigned a task](/img/getting-started/task_assigned.png) Click the status on the task that you want to assign. You'll then see the **comment panel** appear on the right side of the screen, containing various options for configuring that task. -![Blue menu](../img/getting-started/blue_menu.png) +![Blue menu](/img/getting-started/blue_menu.png) Then, click on the assignee button to open the assignment dialogue -![Selected people](../img/getting-started/select_people.png) +![Selected people](/img/getting-started/select_people.png) -This is where you can assign users to the task. Click into the box to reveal a popup with available users. Alternatively you can start typing the users name to quickly narrow a specific user. Select the user you want to assign, and click on the **assign to selected task** button to complete the assignment. +This is where you can assign users to the task. Click into the box to reveal a popup with available users. Alternatively you can start typing the users name to quickly narrow a specific user. Select the user you want to assign, and click on the **assign to selected task** button to complete the assignment. ::: tip Note You can assign more than 1 user to a single task @@ -63,27 +41,37 @@ You can assign more than 1 user to a single task You can also assign a user to multiple tasks simultaneously. First, you'll need to select the tasks you want to assign. You can do this by holding **Ctrl / Cmd** on your keyboard and clicking on the tasks you want to select. Alternatively, you can use the **Shift** key to select a range of tasks. You'll notice that the selected tasks are highlighted in blue. -![Assigned multiple people](../img/getting-started/assigned_multiple.png) +![Assigned multiple people](/img/getting-started/assigned_multiple.png) Once you have your tasks highlighted, select a user to assign and confirm your selection by clicking the **Confirm** button. Similarly, you can use the **unassign from selection** option to remove these assignments. Now, you can see the artist's avatar next to each of the task's status. -![Assigned people](../img/getting-started/assignation.png) +![Assigned people](/img/getting-started/assignation.png) -You can toggle the visibility of task assignments on or off by using the **Show/Hide Assignments** button located at the top of the spreadsheet ![Hide assignations](../img/getting-started/hide_assignation.png). +You can toggle the visibility of task assignments on or off by using the **Show/Hide Assignments** button located at the top of the spreadsheet ![Hide assignations](/img/getting-started/hide_assignation.png). Keep in mind that task assignments can determine what a user sees, depending on their role (for instance, vendors need to be assigned to a task before they can view anything). With your assignments completed, everyone knows their tasks and responsibilities! -### Assign Tasks From the Detailed Task Type Page +## Assign Tasks From the Detailed Task Type Page You also have the option to assign tasks from the detailed task type page. To access this, click on the column header of the task type. Next simply click on a status to open the comment panel. From there, you'll have the same options available as on the global page. You can select one or multiple tasks simultaneously to assign a user. +## Assign Tasks as a Department Supervisor + +From the global shots / asset page, your view is automatically filtered by **My Department**. This shows you tasks from your departments **Task Type** and the **Custom Columns** linked to your department. + +![Supervisor Global Page](/img/getting-started/supervisor_global_page.png) +When you assign one or several tasks to someone, you will notice that you only have access to people from your department. This makes it faster to find the right artist for the task. +![Supervisor Assign Team](/img/getting-started/supervisor_assign_team.png) +## Next Steps +- [Find assignments to work on](/guides/scheduling/find-assignments/) +- [Fill in the **Estimates** for each task](/guides/scheduling/estimates/) \ No newline at end of file diff --git a/docs/estimation/README.md b/docs/guides/scheduling/estimates/index.md similarity index 61% rename from docs/estimation/README.md rename to docs/guides/scheduling/estimates/index.md index b0794fb74a..7be1ad6920 100644 --- a/docs/estimation/README.md +++ b/docs/guides/scheduling/estimates/index.md @@ -1,4 +1,6 @@ -# Estimates & Team Quotas +# Estimates + + Estimating the time for each task can feel overwhelming, but the benefits far outweigh the effort. By filling out task estimations, you can: @@ -10,16 +12,15 @@ Estimating the time for each task can feel overwhelming, but the benefits far ou Kitsu offers various features to help you easily track, review, and forecast task estimates. Let's look at some of the features that enable you to do this. - ## Add an Estimate for a Task To get started, click on the name of a task type. -![Task type](../img/getting-started/supervisor_tasktype.png) +![Task type](/img/getting-started/supervisor_tasktype.png) You'll then be taken to the Detailed Task Type view. Here you can see a list of of every task of that specific task type, along with additional details. -![Supervisor page](../img/getting-started/supervisor_page.png) +![Supervisor page](/img/getting-started/supervisor_page.png) To add an estimate to a task, click on the **Estimate (Est.)** field and input the number of days. You can select multiple tasks with **ctrl / cmd** or **shift** and apply the same estimate across all selected tasks. @@ -31,9 +32,10 @@ You can also define a **Start date** by clicking into the field, and choosing a The **Due date** is automatically calculated based on **Estimate** and **Start Date** provided. -![start date](../img/getting-started/set_estimation.png) +![start date](/img/getting-started/set_estimation.png) ### Detailed Task Type View Features: + Here is a summary of the cases and features you can leverage from the detailed task type view. - See and change the status of tasks @@ -46,58 +48,45 @@ Here is a summary of the cases and features you can leverage from the detailed t - See the WIP and Feedback dates automatically filled in - Monitor the latest comment section to keep an eye on the latest activity for this task type -## Forecasting Team Speed -### Forecast Your Team's Speed Using Estimated Quotas +## Forecasting Team Speed and Bidding Estimates -To help you set accurate estimates, you can use the **Estimation** tab. +Click on the name of a **Task Type** to open its dedicated page. On this page, you can access three tabs: **Tasks**, **Schedule**, and **Estimation**. To help you set accurate estimates and forecast your team's speed, we'll focus on the **Estimation** tab. -![Estimation tab](../img/getting-started/tasktype_estimation_tab.png) +![Estimation tab](/img/getting-started/tasktype_estimation_tab.png) The left half lists the tasks with their assignments and the number of frames (1). Based on the **FPS** you have set for the production, the number of **seconds** will be automatically calculated (2). ::: tip Definition -**Quotas** visualize your **team speed**. +**Quotas** visualize your **team speed**. You can see on average how many shots, frames, or seconds the artist needs to complete daily to finish all tasks within the **estimated number of days**. ::: The right half shows the entire department team (based on the assignments you made), the number of shots they need to complete, the number of frames and seconds, and the average quota. You will also see the **Remaining** line, which gives you the current status of your team. -The last column is the **Estimation**. To modify the estimate, hover over the row with your mouse and click the editable area. - -You can also select multiple tasks simultaneously to edit them all at once. +The last column is the **Estimation**. To modify the estimate, hover over the row with your mouse and click the editable area. You can also select multiple tasks simultaneously to edit them all at once. -![Estimation tab edit](../img/getting-started/tasktype_estimation_tab_edit.png) +![Estimation tab edit](/img/getting-started/tasktype_estimation_tab_edit.png) -Every time you change the **Estimation** (in the number of days) on the right side, you will see that the **Average Quota** updates in real time. +Every time you change the **Estimation** (in the number of days), you will see that the **Average Quota** updates in real time. -For more information about the **Schedule** tab, refer to [Task Type Schedule](../schedules/README.md#Set-a-Task-Estimation). +For more information about the **Schedule** tab, refer to [Task Type Schedule](../../../schedules/index.md#Set-a-Task-Estimation). -## Quotas -### Using Quotas to Understand Your Teams Speed +### Bidding Estimates by Artist -Kitsu has two ways to calculate quotas per **task type**. +The **Estimation** page can also be viewed from a per-artist perspective. -### Quotas Based on Timesheets -The first method is linked to the timesheet: -Shots are considered complete when the first feedback request is made. Quotas are then weighted according to the time spent on the task, as recorded in the timesheet by the artist. +![Supervisor Estimation](/img/getting-started/supervisor_estimation.png) -![Quotas stat page day weighted](../img/getting-started/quotas_day_weighted.png) +On the left, you have all the tasks sorted by artist, along with their number of frames and seconds. On the right, you have a summary of your team, with one line per artist showing the total number of assigned tasks, total number of frames and seconds, and the updated total number of estimated days. -In this example, Kitsu weights the daily quota based on the timesheet entries. +With this information, Kitsu can calculate different estimated **Quotas**: **per Second**, **per Frame**, and **per Task**. -![Quotas stat page day weighted detail](../img/getting-started/quotas_day_weighted_detail.png) +You can now fill the **Estimation** column on the left and see the result on the right. As soon as you fill in an **Estimation** for a task, the artist's row will update on the right. -### Quotas Based on Status Changes -If no timesheet is filled out, Kitsu uses status changes to estimate the duration: -- The task is considered started when the first status change to WIP occurs. -- The task is considered completed on the day the feedback request is made. +![Supervisor Estimation Filled](/img/getting-started/supervisor_estimation_filled.png) -Kitsu then distributes the completed frames across all business days between the start and end dates. It calculates the number of frames (or seconds, or tasks) completed per day/week/month per artist. - -![Quotas stat page day status](../img/getting-started/quotas_day_status.png) - -You can click on a number at any time to see its details in the right panel. +This allows you to ensure the distribution of tasks among your team members is equal and helps to understand their estimated quotas for production. You should consider artist's experience and the difficulty of each task when doing this. ## Changing Priorities @@ -105,21 +94,21 @@ Priorities are often changing during a production, and you may want to easily hi To do this, click on the space near a task's status (1). -![Task assigned](../img/getting-started/task_assigned.png) +![Task assigned](/img/getting-started/task_assigned.png) The action box will appear. -![Blue menu](../img/getting-started/blue_menu.png) +![Blue menu](/img/getting-started/blue_menu.png) Click on the icon in the action menu to choose **Change Priority**. -![Change priority](../img/getting-started/change_priority.png) +![Change priority](/img/getting-started/change_priority.png) -There are four levels of priority: **Normal**, which is the default value for all tasks, **High**, **Very High**, and **Emergency**. Save the changes with the **Confirm** button. +There are four levels of priority: **Normal**, which is the default value for all tasks, **High**, **Very High**, and **Emergency**. Save the changes with the **Confirm** button. As with changing statuses or assignments, you can change the priority across multiple tasks at the same time by selecting the tasks, and choosing **Change priority of the selected tasks**. -![Priority selection](../img/getting-started/priority.png) +![Priority selection](/img/getting-started/priority.png) You will now see exclamation marks next to the task status. The more exclamation marks there are, the more urgent the task is. @@ -128,4 +117,6 @@ You will now see exclamation marks next to the task status. The more exclamation * (3) is **Very High** * (4) is **Emergency** -![Priority level](../img/getting-started/priority_level.png) \ No newline at end of file +![Priority level](/img/getting-started/priority_level.png) + + \ No newline at end of file diff --git a/docs/guides/scheduling/find-assignments/index.md b/docs/guides/scheduling/find-assignments/index.md new file mode 100644 index 0000000000..b8a330ed59 --- /dev/null +++ b/docs/guides/scheduling/find-assignments/index.md @@ -0,0 +1,84 @@ +# Managing Your Assignments + +## The "My Tasks" Page + +Your **My Tasks** page is your main hub for assignments and opens automatically upon login. + +Here you can see a list of tasks you are assigned along with some key information. Think of it as a to-do list. + +By default, the list is sorted by priority, so the tasks at the top are the ones recommended to address first. + +### Key Information Available: + +- **Production**: The project your task is associated with. +- **Entity**: The specific asset or shot assigned to you. +- **Estimates & Duration**: Time-related information for your tasks. +- **Due Date**: The deadline for completing your task. +- **Status** and **Priority**: Key details to understand task urgency. + +![My tasks page](/img/getting-started/my_task_page.png) + +To view more details about a task, click on its **Status** to open the comment panel. Here, you can comment on the task and publish a new revision if needed. + +![Supervisor Todo Detailed Page](/img/getting-started/supervisor_todo_page_detail.png) + +### Sorting and Filtering: + +- Under the **Show** dropdown, you can choose to display **All Tasks** or focus on those **Due This Week**. +- Under the **Sorted By** dropdown, you can sort tasks by **Name**, **Priority**, **Status**, **Estimation**, or **Last Comment**. +- Use these filters, along with additional criteria like **Production**, **Task Type**, and **Status**, to narrow down your list of tasks, or use the search box to find a specific task. + +![Task sorting and filtering](/img/getting-started/mytask_sort.png) + +### Accessing My Tasks + +You can access **My Tasks** via: +- The shortcut at the top of the screen. +- The **User** section of the main menu under **MY TASKS**. +- Clicking the Kitsu logo. ![Main menu](/img/getting-started/main_button.png) + +## Board View + +You can also use the Board view to quickly update the status of multiple tasks by dragging and dropping into each status column. + +The **Board Tab** displays tasks organized in columns based on their status. Each task card includes: + +- A Thumbnail +- Task type name +- Entity name + +![Supervisor Todo Detailed Page board](/img/getting-started/supervisor_todo_page_detail_board.png) + +- Clicking a card opens a panel on the right to view or add comments. +- To update a task's status, drag it to the desired column. + +## Calendar View + +The **Calendar View** displays tasks according to their **Start** and **Due Dates**. Tasks spanning multiple days are visually extended across the calendar. + +![Calendar view](/img/getting-started/artist_calendar_page.png) + +- Clicking a task opens the right-side panel for updates and comments. +- Like other views, you can sort and filter tasks here. + +## The "Task Type" Page + +A supervisor will typically have tasks assigned to them in addition to supervising your department. You need to split your time between completing your work and managing your team. + +Once the assignments and estimates are done, you can focus on the day-to-day operations. To easily see an overview of tasks from your department, you can click on your task type name from any page. + +Once on the detail page, your first action is to click on the **Display tasks as a contact sheet** ![Display task as contact sheet](/img/getting-started/contact_sheet.png) button. + +![Task Type as contact sheet](/img/getting-started/task_type_contact_sheet.png) + +Now, you can easily hone in on tasks that require your attention using the built-in filters. For example, say you want to see only the tasks that are not done yet. In this case, you can filter tasks with the **-done** status, along with adding a **Due Date Status** filter, to show tasks that are **Due This Week**. + +![Task Type filtered as contact sheet](/img/getting-started/task_type_contact_sheet_filtered.png) + +You can easily enable / disable filters to quickly hone in on the right information. + +::: tip +If you need more information about a task, click on it's name to open the comment panel on the right. + +![Task Type filtered as contact sheet](/img/getting-started/task_type_contact_sheet_panel.png) +::: \ No newline at end of file diff --git a/docs/guides/scheduling/index.md b/docs/guides/scheduling/index.md new file mode 100644 index 0000000000..c3f615b456 --- /dev/null +++ b/docs/guides/scheduling/index.md @@ -0,0 +1,6 @@ +# Scheduling + +1. [Assign Tasks](/guides/scheduling/assign-tasks/) - Learn how to assign tasks to people +1. [Find Assignments](/guides/scheduling/find-assignments/) - Learn how to find tasks assigned to you +1. [Schedules](/guides/scheduling/schedules/) - Discover the different scheduling views of Kitsu, from the studio level to the task level +1. [Estimates](/guides/scheduling/estimates/) - Learn how to set and calculate the number of days estimated to do a task (bids) \ No newline at end of file diff --git a/docs/schedules/README.md b/docs/guides/scheduling/schedules/index.md similarity index 60% rename from docs/schedules/README.md rename to docs/guides/scheduling/schedules/index.md index c9329f3606..8c85a024f7 100644 --- a/docs/schedules/README.md +++ b/docs/guides/scheduling/schedules/index.md @@ -1,5 +1,25 @@ # Schedules +## Studio Schedule + +As a production manager, you have access to the Studio Schedule, which consolidates all production schedules in one place, aiding in better preparation for your productions. + +To access the Studio Schedule, navigate to the main menu (![Main menu button](/img/getting-started/main_button.png)) and click on **Main Schedule** under the **Studio** section. + +![Main Menu Schedule](/img/getting-started/main_menu_schedule.png) + +Here, you'll find all your productions listed on each row, including their start and end dates. Additionally, you can view the number of days planned for each production within the specified timeframe. Furthermore, you can see the milestones you've defined for each production. + +![Main Menu Schedule](/img/getting-started/main_schedule_fold.png) + +When you click on a production name, you can expand the view to see full details of each task type. The color scheme corresponds to the columns on the global pages. + +![Main Menu Schedule](/img/getting-started/main_schedule_unfold.png) + +It's important to note that you cannot modify your production schedules directly from this page. To make adjustments, you'll need to navigate back to the specific production schedule page you wish to modify. + +Access to this page is restricted to the **Studio Manager**. + ## Production Schedule As the Studio Manager, you can use the global schedule as a reference for your production. The main purpose of this schedule is to track the milestones linked to your contract. This is referred to as your **Reference Schedule**. @@ -8,78 +28,111 @@ In order to start filling out your global schedule, you need to populate the pro In the drop-down menu, choose **SCHEDULE**. -![Menu Schedule](../img/getting-started/menu_schedule.png) +![Menu Schedule](/img/getting-started/menu_schedule.png) + +### Gantt Schedule -### The Production Schedule Gantt Chart At the top of the schedule, you can see the project's start date (1) and the end date (2), which was defined when creating the production. You can modify these dates by clicking on the box to open the calendar and pick a date. -![Production Schedule](../img/getting-started/production_schedule.png) +![Production Schedule](/img/getting-started/production_schedule.png) You can modify the start and end dates for each of your task types on the Gantt schedule in one of two ways: the first is by moving the bar directly, and the second is by entering the date on the settings page under the task type section. -For the former, place your cursor on the start or end date; the cursor changes to a double arrow. Then, drag and slide to the desired date. +For the former, place your cursor on the start or end date; the cursor changes to a double arrow. Then, drag and slide to the desired date. This click-and-drag method is used throughout Kitsu's Gantt charts, so you'll see it again when scheduling individual tasks. -![Production Schedule Gantt](../img/getting-started/schedule_production_task_type.png) +![Production Schedule Gantt](/img/getting-started/schedule_production_task_type.png) -After setting the start and end dates for your task types, you should be able to see at a glance the flow of your production. +After setting the start and end dates for your task types, you should be able to see at a glance the flow of your production. ::: tip You can select all the Gantt chart bars and move them simultaneously with **CTRL / CMD** + **Left Click**. ::: -![Production Schedule Gantt filled](../img/getting-started/production_schedule_task_type_complete.png) +![Production Schedule Gantt filled](/img/getting-started/production_schedule_task_type_complete.png) With that complete, the next step is to unfold each task type to reveal the associated shots sequences / assets types. -![Production Schedule unfold task type](../img/getting-started/production_schedule_unfold.png) +![Production Schedule unfold task type](/img/getting-started/production_schedule_unfold.png) You can set the start and end dates the same way you would for the task type. You can also define the work period for all asset types. -![Production Schedule task type asset](../img/getting-started/production_schedule_task_type_detail.png) +![Production Schedule task type asset](/img/getting-started/production_schedule_task_type_detail.png) You can do the same for the shot task types and determine the start and end dates for the sequences. -![Production Schedule task type sequence](../img/getting-started/production_schedule_task_type_detail_sequence.png) +![Production Schedule task type sequence](/img/getting-started/production_schedule_task_type_detail_sequence.png) ### Milestones -A milestone is a significant point in a project that marks the completion of a major phase or task and serves as a checkpoint to assess progress. When hovering over a date in the schedule, you'll see ![Production Schedule add a milestone logo](../img/getting-started/production_schedule_add_milestone_plus.png) appears. -![Production Schedule add a milestone](../img/getting-started/production_schedule_add_milestone.png) +A milestone is a significant point in a project that marks the completion of a major phase or task and serves as a checkpoint to assess progress. When hovering over a date in the schedule, you'll see ![Production Schedule add a milestone logo](/img/getting-started/production_schedule_add_milestone_plus.png) appears. + +![Production Schedule add a milestone](/img/getting-started/production_schedule_add_milestone.png) When you click, you'll be prompted to give a name to your newly created milestone. -![Production Schedule name of a milestone](../img/getting-started/production_schedule_add_milestone_name.png) +![Production Schedule name of a milestone](/img/getting-started/production_schedule_add_milestone_name.png) Milestones are represented by a small black dot on the date and a vertical line on your schedule. If you hover over the little black dot, the milestone's name appears. This is a great way to quickly reference important upcoming dates or deliverables in your production against your productions schedule. -![Production Schedule global view milestone](../img/getting-started/production_schedule_milestone.png) +![Production Schedule global view milestone](/img/getting-started/production_schedule_milestone.png) -To edit a milestone, click on the ![Edit button](../img/getting-started/edit_button.png) or anywhere on the milestone name. From there, you can rename or delete the milestone. +To edit a milestone, click on the ![Edit button](/img/getting-started/edit_button.png) or anywhere on the milestone name. From there, you can rename or delete the milestone. -![Production Schedule edit milestone](../img/getting-started/production_schedule_edit_milestone.png) +![Production Schedule edit milestone](/img/getting-started/production_schedule_edit_milestone.png) Everyone assigned to the production can access the global schedule page, but only the **Studio Manager** can modify it. To view specific tasks in more detail, click on the task type's name. This will lead you to the **Schedule** tab of the task type page. +## Team Schedule + +As a studio manager, staying informed about team activities is crucial. For a comprehensive overview of each department's activities, the Team Schedule provides valuable insights. + +To access the Team Schedule, navigate to the main menu (![Main menu button](/img/getting-started/main_button.png)) and click on **Team Schedule** under the **Studio** section. + +![Team Menu Schedule](/img/getting-started/main_menu_teamschedule.png) + +In the Team Schedule, on each row you'll find a list of all personnel in the studio. + +At the top of the page, you can adjust the displayed timeframe by selecting the **Start Date** and **End Date**, as well as adjust the **Zoom Level** for a more detailed or broader view. +Additionally, you have the option to hone in on a specific **Department** or individual **Person**. + +![Team Schedule global](/img/getting-started/team_schedule_global.png) + +In cases where an artist has multiple simultaneous tasks, these tasks will be stacked atop one another for clarity. + +You can manipulate each task by selecting and moving it around as needed. These tasks are directly linked and reflected in the **task type schedule**, and can be edited in both areas. +### Managing Your Department's Schedule + +As a Supervisor, you can access your team's schedule the same way, from the main menu under the **Studio > Team Schedule** section. From this page, you can see all the artists in your current department working on your project. You can expand a person's schedule to see the details of their tasks. + +From there, you can: +- Move tasks to change their start and due dates. +- Adjust the length of tasks. +- Drag and drop tasks to reassign them to different team members. +- See days off. + +![Team Schedule Global](/img/getting-started/team_schedule_global.png) ## Task Type Schedule Whereas the **Global Schedule** is used to references task types across the entire production, the **Task Type** page is used to drill down into the details for tasks in a specific task type. -![Task type page](../img/getting-started/global_view_asset_task_export.png) +![Task type page](/img/getting-started/global_view_asset_task_export.png) There are 3 tabs on this page: **Tasks**, **Schedule**, and **Estimation**. -![Task type schedule tab](../img/getting-started/task_type_tab_schedule.png) +![Task type schedule tab](/img/getting-started/task_type_tab_schedule.png) There are two ways to set the artist's Schedule. -The first method is via the **Tasks** tab, where you will set **Estimated Time** and the **Start Date**. As we saw previously, setting both of these will automatically fill out the **Due Date**. Once those details are filled out, the Gantt chart on the **Schedule** tab will be automatically generated. +The first method is via the **Tasks** tab, where you will set **Estimated Time** and the **Start Date**. + +As we saw previously, setting both of these will automatically fill out the **Due Date**. Once those details are filled out, the Gantt chart on the **Schedule** tab will be automatically generated. ::: tip Remember that on the Gantt you can click and drag to modify the start / end date, but the duration of the task will always be auto-calculated using the end date and duration @@ -87,10 +140,9 @@ Remember that on the Gantt you can click and drag to modify the start / end date The second method is to set the length directly (**Estimate**), **Start Date**, and **Due Date** from the Gantt chart. -![Task type page schedule default](../img/getting-started/task_type_schedule_emplty.png) +![Task type page schedule default](/img/getting-started/task_type_schedule_emplty.png) - -Put your cursor on the start date, and the cursor will change to a double arrow. Then, drag and slide to adjust the start date. Define your **Due date** by filling in the **MD**. +As before, put your cursor on the start date until it changes to a double arrow, then drag and slide to adjust it. Define your **Due date** by filling in the **MD**. You can use the search bar (1) to narrow down a specific set of tasks. For example, you can search by **status**, **asset type**, **sequence**, **asset name**, **shot name** and **artist name**. (Note that you do not need to add the name of the task type as you are already on a specific task type page) @@ -98,79 +150,36 @@ You can also expand or collapse each Artist (2) section to make the schedule eas You can change the bar's color in the Gantt chart (3). By default, the coloring is set to Status Color. -![Task type page Schedule coloring](../img/getting-started/task_type_schedule_coloring.png) +![Task type page Schedule coloring](/img/getting-started/task_type_schedule_coloring.png) -**Status color** changes the bar's color based on its status. For example, blue is for **WIP**, red is for **RETAKE**, -purple for **WAITING FOR APPROVAL**, and green for **DONE**. +**Status color** changes the bar's color based on its status. For example, blue is for **WIP**, red is for **RETAKE**, purple for **WAITING FOR APPROVAL**, and green for **DONE**. -![Task type page schedule coloring status](../img/getting-started/task_type_schedule_coloring_status.png) +![Task type page schedule coloring status](/img/getting-started/task_type_schedule_coloring_status.png) You can quickly assess the status of your elements and team. From this view, you may want to visually identify tasks that are behind schedule. From the **Coloring** dropdown, select **late in red**. This view will highlight tasks where the due date has passed but that have not been approved yet. This indicates that they are behind schedule and will show on the Gantt chart as red. -![Task type page schedule coloring late in red](../img/getting-started/task_type_schedule_coloring_late.png) +![Task type page schedule coloring late in red](/img/getting-started/task_type_schedule_coloring_late.png) Changes made on the Gantt chart are reflected in other pages in Kitsu. The **Start date** and the **Due date** are displayed on the **Tasks** tab of the task type page. -![Task type page schedule due date](../img/getting-started/task_type_schedule_due_date.png) +![Task type page schedule due date](/img/getting-started/task_type_schedule_due_date.png) Additionally, you can view the **Due date** and **Estimation** days on the **Todo Page** of an Artist. -![Task type page schedule artist due date](../img/getting-started/my_task_page.png) - -Access to this page is visible to everyone, but only the **Studio Manager** can modify it. +![Task type page schedule artist due date](/img/getting-started/my_task_page.png) +As with the global schedule, access to this page is visible to everyone, but only the **Studio Manager** can modify it. ## Asset and Shot Schedule On the detail page of an asset or a shot, you can access the **Schedule** tab. -![Asset detail schedule](../img/getting-started/asset_detail_page_schedule.png) +![Asset detail schedule](/img/getting-started/asset_detail_page_schedule.png) If you have entered a start and due date on the **Task Type** schedule, the Gantt bar will be displayed. -From this page, you can modify the length, start, and end dates of each task in the asset or shot. - -## Studio Schedule - -As a production manager, you have access to the Studio Schedule, which consolidates all production schedules in one place, aiding in better preparation for your productions. - -To access the Studio Schedule, navigate to the main menu (![Main menu button](../img/getting-started/main_button.png)) and click on **Main Schedule** under the **Studio** section. - -![Main Menu Schedule](../img/getting-started/main_menu_schedule.png) - -Here, you'll find all your productions listed on each row, including their start and end dates. Additionally, you can view the number of days planned for each production within the specified timeframe. Furthermore, you can see the milestones you've defined for each production. - -![Main Menu Schedule](../img/getting-started/main_schedule_fold.png) - -When you click on a production name, you can expand the view to see full details of each task type. The color scheme corresponds to the columns on the global pages. - -![Main Menu Schedule](../img/getting-started/main_schedule_unfold.png) - -It's important to note that you cannot modify your production schedules directly from this page. To make adjustments, you'll need to navigate back to the specific production schedule page you wish to modify. - -Access to this page is restricted to the **Studio Manager**. - - -## Team Schedule - -As a studio manager, staying informed about team activities is crucial. For a comprehensive overview of each department's activities, the Team Schedule provides valuable insights. - -To access the Team Schedule, navigate to the main menu (![Main menu button](../img/getting-started/main_button.png)) and click on **Team Schedule** under the **Studio** section. - -![Team Menu Schedule](../img/getting-started/main_menu_teamschedule.png) - -In the Team Schedule, on each row you'll find a list of all personnel in the studio. - -At the top of the page, you can adjust the displayed timeframe by selecting the **Start Date** and **End Date**, as well as adjust the **Zoom Level** for a more detailed or broader view. - -Additionally, you have the option to hone in on a specific **Department** or individual **Person**. - -![Team Schedule global](../img/getting-started/team_schedule_global.png) - -In cases where an artist has multiple simultaneous tasks, these tasks will be stacked atop one another for clarity. - -You can manipulate each task by selecting and moving it around as needed. These tasks are directly linked and reflected in the **task type schedule**, and can be edited in both areas. \ No newline at end of file +From this page, you can modify the length, start, and end dates of each task in the asset or shot. \ No newline at end of file diff --git a/docs/guides/task-management/index.md b/docs/guides/task-management/index.md new file mode 100644 index 0000000000..424162c201 --- /dev/null +++ b/docs/guides/task-management/index.md @@ -0,0 +1,51 @@ +# Task Management + +Kitsu's data model organizes work around a hierarchy of production entities (studio → production → episode/sequence/shot, or → asset) crossed with a task-tracking system (task type, task status, department). + +## Table of Content + +- [Manage Studio Labels](/guides/task-management/manage-studios/) - +- [Manage Productions](/guides/task-management/manage-productions/) - +- [Manage Episodes](/guides/task-management/manage-episodes/) - +- [Manage Sequences](/guides/task-management/manage-sequences/) - +- [Manage Shots](/guides/task-management/manage-shots/) - +- [Manage Asset Types](/guides/task-management/managing-asset-types/) - +- [Manage Task Types](/guides/task-management/managing-task-types/) - +- [Manage Task Statuses](/guides/task-management/managing-task-statuses/) - +- [Manage Edits](/guides/task-management/manage-edits/) - + +## Data Model + +```mermaid +flowchart TD + STUDIO -->|defines| DEPARTMENT + STUDIO -->|runs| PRODUCTION + + PRODUCTION -->|contains| EPISODE + PRODUCTION -->|contains, non-episodic| SEQUENCE + EPISODE -->|contains| SEQUENCE + SEQUENCE -->|contains| SHOT + + PRODUCTION -->|contains| ASSET + ASSET_TYPE -->|categorizes| ASSET + ASSET -->|cast in| SHOT + + SEQUENCE -->|tracked by| TASK + SHOT -->|tracked by| TASK + ASSET -->|tracked by| TASK + DEPARTMENT -->|groups| TASK_TYPE + TASK_TYPE -->|type of| TASK + TASK_STATUS -->|current state of| TASK +``` + +- **Studio** - The top-level organization. A studio runs one or more productions and defines its own departments. +- **Department** - A functional group within a studio (e.g. Modeling, Animation, Lighting, Compositing). Departments group related task types. +- **Production** - A project (film, series, game, etc.) managed by the studio. Productions contain episodes (if episodic), sequences, shots, and assets. +- **Episode** - A subdivision of a production, used for series-style projects. Optional for feature-style productions. +- **Sequence** - A subdivision of an episode (or directly of a production for non-episodic work), grouping related shots. +- **Shot** - A unit of filmed/animated action within a sequence; the main container for shot-based tasks. +- **Asset** - A reusable production element (character, prop, set, FX setup) that can be cast into one or more shots. +- **Asset Type** - A category for assets (e.g. Character, Prop, Environment, FX). +- **Task** - A unit of tracked work, always attached to either a shot or an asset, with an assigned task type and current status. +- **Task Type** - Defines the kind of work a task represents (e.g. Layout, Animation, Lighting); belongs to a department. +- **Task Status** - The current state of a task (e.g. Todo, Work in Progress, Done, Retake, Waiting For Approval). \ No newline at end of file diff --git a/docs/guides/task-management/manage-edits/index.md b/docs/guides/task-management/manage-edits/index.md new file mode 100644 index 0000000000..332300b306 --- /dev/null +++ b/docs/guides/task-management/manage-edits/index.md @@ -0,0 +1,51 @@ +# Managing Edits + +TODO + +- what's an edit? +- what's an edit used for? + +## Create an Edit + +You can track tasks at the **Edit** Level in Kitsu. + +It's especially useful when you have several edits to track through several validation steps. For example, you can track your whole movie, several trailers, and the First Edit, Fine Edit, Mix, etc. + +::: warning +Per default, the **Edit** page will not be displayed until you have task types for it on your **production library** (setting page) +::: + +To use this page, you need to first create a dedicated task type on your **Global Library** + with the **Edit** attribute. + +See the [Creating a New Task Type](/guides/task-management/managing-task-types/#creating-a-new-task-type) section to create a new **Task Type**. + +Once you have created your **Task Types**  on your **Global Library**, add them to your **Production Library**, you will see the **Edit** displayed on the navigation drop-down menu. + +![Navigation Edit](/img/getting-started/drop_down_menu_edit.png) + +This new page behaves like the asset and shot global page. You can add your edits with the `+ New edit` button. + +You can assign tasks, do the review, change status, etc. + +You can add a metadata column, fill in the description, etc. + +::: tip +Depending on your deliveries, you can also change the resolution per **Edit**. +::: + +::: warning +The detail page is different from the other entities. + +As **Edit** focuses on a specific long video, the detail page looks more like the comment detail page. +::: + +You can **Rename** and **Delete** the Edit entity on this page for the asset and shot entity. + +## Update Edits + +TODO + +## Delete Edits + +TODO \ No newline at end of file diff --git a/docs/guides/task-management/manage-episodes/images/0.png b/docs/guides/task-management/manage-episodes/images/0.png new file mode 100644 index 0000000000..96912edfbd Binary files /dev/null and b/docs/guides/task-management/manage-episodes/images/0.png differ diff --git a/docs/guides/task-management/manage-episodes/images/1.png b/docs/guides/task-management/manage-episodes/images/1.png new file mode 100644 index 0000000000..c7c00a0902 Binary files /dev/null and b/docs/guides/task-management/manage-episodes/images/1.png differ diff --git a/docs/guides/task-management/manage-episodes/images/2.png b/docs/guides/task-management/manage-episodes/images/2.png new file mode 100644 index 0000000000..cd814e5374 Binary files /dev/null and b/docs/guides/task-management/manage-episodes/images/2.png differ diff --git a/docs/guides/task-management/manage-episodes/images/3.png b/docs/guides/task-management/manage-episodes/images/3.png new file mode 100644 index 0000000000..f441ec8942 Binary files /dev/null and b/docs/guides/task-management/manage-episodes/images/3.png differ diff --git a/docs/guides/task-management/manage-episodes/images/4.png b/docs/guides/task-management/manage-episodes/images/4.png new file mode 100644 index 0000000000..8da8c14d87 Binary files /dev/null and b/docs/guides/task-management/manage-episodes/images/4.png differ diff --git a/docs/guides/task-management/manage-episodes/images/5.png b/docs/guides/task-management/manage-episodes/images/5.png new file mode 100644 index 0000000000..18d26d021e Binary files /dev/null and b/docs/guides/task-management/manage-episodes/images/5.png differ diff --git a/docs/guides/task-management/manage-episodes/index.md b/docs/guides/task-management/manage-episodes/index.md new file mode 100644 index 0000000000..323648feab --- /dev/null +++ b/docs/guides/task-management/manage-episodes/index.md @@ -0,0 +1,46 @@ +# Managing Episodes + +```mermaid +flowchart TD + PRODUCTION -->|contains| EPISODE + EPISODE -->|contains| SEQUENCE +``` + +TV Show productions have access to Episode containers to organize sequences and shots. + +## Episodes Overview + +In your production menu, click `Episodes`: + +![episodes menu item](/guides/task-management/manage-episodes/images/0.png) + +You'll then reach the Episodes page with a full list of episodes for the current production: + +![episodes page](/guides/task-management/manage-episodes/images/1.png) + +## Create Episodes + +In the `Episodes` page, click `New episode` in the top right corner: + +![new episode button](/guides/task-management/manage-episodes/images/2.png) + +A modal appears. Fill the form and click `Confirm`: + +![new episode modal](/guides/task-management/manage-episodes/images/3.png) + +- **Name**: the episode name +- **Status**: the production status of the episode (canceled, complete, running, standby) +- **Description**: a short description of what the episode is about +- **Resolution**: the episode resolution e.g "1920x1080", "4K", etc. + +## Update Episodes + +Hover over the episode row you wish to edit in the list and click the `Edit` icon: + +![edit episode button](/guides/task-management/manage-episodes/images/4.png) + +## Delete Episodes + +Hover over the episode row you wish to remove in the list and click the `Delete` icon: + +![delete episode button](/guides/task-management/manage-episodes/images/5.png) \ No newline at end of file diff --git a/docs/guides/task-management/manage-productions/images/0.png b/docs/guides/task-management/manage-productions/images/0.png new file mode 100644 index 0000000000..cd94c481fb Binary files /dev/null and b/docs/guides/task-management/manage-productions/images/0.png differ diff --git a/docs/guides/task-management/manage-productions/images/1.png b/docs/guides/task-management/manage-productions/images/1.png new file mode 100644 index 0000000000..991a94add6 Binary files /dev/null and b/docs/guides/task-management/manage-productions/images/1.png differ diff --git a/docs/guides/task-management/manage-productions/images/2.png b/docs/guides/task-management/manage-productions/images/2.png new file mode 100644 index 0000000000..637fb97b59 Binary files /dev/null and b/docs/guides/task-management/manage-productions/images/2.png differ diff --git a/docs/guides/task-management/manage-productions/images/4.png b/docs/guides/task-management/manage-productions/images/4.png new file mode 100644 index 0000000000..ef03a89475 Binary files /dev/null and b/docs/guides/task-management/manage-productions/images/4.png differ diff --git a/docs/guides/task-management/manage-productions/images/prodtemplate.png b/docs/guides/task-management/manage-productions/images/prodtemplate.png new file mode 100644 index 0000000000..9810a6b85a Binary files /dev/null and b/docs/guides/task-management/manage-productions/images/prodtemplate.png differ diff --git a/docs/guides/task-management/manage-productions/index.md b/docs/guides/task-management/manage-productions/index.md new file mode 100644 index 0000000000..3200540510 --- /dev/null +++ b/docs/guides/task-management/manage-productions/index.md @@ -0,0 +1,157 @@ +# Managing Productions + +```mermaid +flowchart TD + STUDIO -->|runs| PRODUCTION + + PRODUCTION -->|contains| EPISODE + PRODUCTION -->|contains, non-episodic| SEQUENCE + + PRODUCTION -->|contains| ASSET +``` + +## Create a New Production + +Click on the `Create a new production` button: + +![Create a production](/img/getting-started/create_production.png) + +A dialog appears: + +![Add a production](/img/getting-started/add_production.png) + +Enter your production name, choose a **Production Type**, and select your production style (2D, 3D). + +Then, you must fill in technical information, such as the number of FPS, the Ration, and the Resolution. + +All these data will be used when Kitsu re-encodes the video previews uploaded. + +Then, you need to define your production's start and end dates. + +You can define your production workflow in the next part, 3 to 6. + +You need to select your asset task type (3), shot task type (4), task status (5), and asset types (6). + +![Add a production Pipeline](/img/getting-started/add_production_pipe.png) + + +::: tip +To create your **Production Workflow**, you will select Task Types from the Global Library. + +If you realize you missed some Task Types, you can create them later. + +See the [Studio Workflow](../../../configure-kitsu/index.html#studio-workflows) section. +::: + +Then, 7 and 8 are the option parts. If you already have a spreadsheet with your asset/shot. + +See the **Import from CSV** sections of each entity page for more details: + +- [Import Asset from CSV](/guides/pre-production/manage-assets/) +- [Import Shot from CSV](/guides/task-management/manage-shots/) + +Validate everything with the `All done` button. + +![all done button](/img/getting-started/all_done_go.png) + +### Using Production Templates + +Getting a new production set up often means repeating the same configuration steps over and over like choosing task types for shots and assets, defining task statuses, and adjusting project-wide settings to match your team's workflow. + +With Project Templates, you can start from a predefined setup in one click: + +![](/guides/task-management/manage-productions/images/prodtemplate.png) + +When creating a new production, simply pick a template and Kitsu will automatically apply your preferred settings. + +In the example above, the template comes bundled with pre-configured asset types, task types, task statuses, etc. we don't need to pick manually from the Global Library: + +![](/guides/task-management/manage-productions/images/2.png) + +Check out the section [Create Your Own Production Template](#create-your-own-production-template) below to add your own. + +## Configure Production-Specific Settings + +From the **Navigation Menu**, choose on the dropdown menu the **Setting**. + +![Drop Down menu Setting](/img/getting-started/drop_down_menu_setting.png) + +The first tab, **Parameters** allows you to change the **Technical information** of the production. + +::: warning +If you change the **FPS** or **Resolution** after uploading previews, the changes won't be applied; you must reupload the first previews. +::: + +![Setting Parameters](/img/getting-started/setting_parameters.png) + +Here, you can enable specific options for the production like: + +- Isolate Client Comments (Not Visible To Each Other) +- Allow Artists To Download Previews +- Set New Preview As Entity Thumbnail Automatically + +You can also specify the **Maximum Number of Retakes** for this production. + +::: tip +You can also change the avatar of the production on the **Parameters** tab. +::: + +### Artist Board Status Configuration + +In the **Task Status** tab, you can reorder the statuses for the **Board** view. + +![Setting status new](/img/getting-started/setting_status_new.png) + +![Setting status order](/img/getting-started/setting_status_order.png) + +Once it's done, go to the **Board Status** tab. + +![Setting board status order](/img/getting-started/setting_board_status.png) + +Here, you can choose who can see which status on the **Board view** + +If you don't select the status properly, it can be overwhelming for the artists if they have too much choice. + +![Board status bad example](/img/getting-started/board_all_status.png) + +Selecting the **Status** properly will make it easier for the artists. + +![Setting board status order](/img/getting-started/setting_board_status_selection.png) + + +![Board status good example](/img/getting-started/setting_board_status_selection_artist.png) + +## Close a Production (Archive) + +It's good practice to archive a production once it's over, in case you need to reuse assets or other production elements in the next one. + +First, click on the Edit button for the target production in the `Main Menu > Studio > Productions` page: + +![production edit button](/guides/task-management/manage-productions/images/0.png) + +In the dialog, select `Closed` for the production status and click `Confirm`: + +![close production](/guides/task-management/manage-productions/images/1.png) + +Your production is now listed as `Closed`. + +## Delete a Production + +Deleting a production requires you close it first. + +Once this is done, simply click the `Delete` button in the corresponding closed production list item and your production will be removed from your instance: + +![delete production](/guides/task-management/manage-productions/images/4.png) + +## Create Your Own Production Template + +Go to `Main Menu > Admin > Templates` to manage your production templates. + +To create a new one, click the `Add a production template` button and fill in the form: + +- Name: your template name +- Type: `Short`, `TV Show`, `Feature Film`, `Only Assets`, or `Only Shots` +- Style: `2D Animation`, `2D Animation (Paper)`, `3D Animation`, `2D/3D Animation`, `VFX`, `Commercial`, `Virtual Reality`, `Motion Design`, `Archviz`, `Stop Motion`, `Catalog`, `NFT collection`, `Video Game`, `Immersive Experience`, or `Augmented Reality` +- Description: a short description of your template + +Click `Confirm` to save your template for future usage. \ No newline at end of file diff --git a/docs/guides/task-management/manage-sequences/images/0.png b/docs/guides/task-management/manage-sequences/images/0.png new file mode 100644 index 0000000000..50657a9961 Binary files /dev/null and b/docs/guides/task-management/manage-sequences/images/0.png differ diff --git a/docs/guides/task-management/manage-sequences/images/1.png b/docs/guides/task-management/manage-sequences/images/1.png new file mode 100644 index 0000000000..e53201f5a1 Binary files /dev/null and b/docs/guides/task-management/manage-sequences/images/1.png differ diff --git a/docs/guides/task-management/manage-sequences/index.md b/docs/guides/task-management/manage-sequences/index.md new file mode 100644 index 0000000000..fe6149cb5e --- /dev/null +++ b/docs/guides/task-management/manage-sequences/index.md @@ -0,0 +1,67 @@ +# Managing Sequences + +```mermaid +flowchart TD + PRODUCTION -->|contains| EPISODE + PRODUCTION -->|contains, non-episodic| SEQUENCE + EPISODE -->|contains| SEQUENCE + SEQUENCE -->|contains| SHOT + + SEQUENCE -->|tracked by| TASK +``` + +In Kitsu, you can also track tasks at the **Sequence** Level. + +It's especially useful when you have macro tasks to track, like Story and color Board, Color Grading, etc. + +Use the navigation menu to go to the **Sequences** page: + +![Navigation Sequences](/img/getting-started/drop_down_menu_sequence_page.png) + +::: warning +This new page behaves like the asset and shot global page. + +To use this page, You first need to create dedicated task types on your **Global Library** + with the **Sequence** attribute. + +See the [Creating a New Task Type](/guides/task-management/managing-task-types/#creating-a-new-task-type) section to create a new Task Type. + +Once you have created your **Task Types**  on your **Global Library**, add them to your +**Production Library** (setting page). +::: + +## Create a Sequence + +Once you have your task types ready in the settings page, you can create a sequence. + +This new page behaves like the asset and shot global page. You can add your edits with the **+ New Sequence** button. + +You can assign tasks, do the review, change status, etc. + +You can add a metadata column, fill in the description, etc. + +::: tip +You can create a sequence directly from here (+New sequence button) or create a sequence linked to your shots from the global shot page. +::: + +You can **Rename** and **Delete** the Sequence entity on this page, as for the asset and shot entity. + +If you click on the name of a sequence, you will see the detail page of this sequence. + +![Sequence detailed page](/img/getting-started/sequence_detail_page.png) + +On the detailed page, you have access to the sequence casting to see all the assets used in the whole sequence. + +You can also access the schedule, Preview Files, Activity, and Timelog of the sequence **tasks**. + +## Update a Sequence + +Hover over the sequence row you wish to edit in the list and click the `Edit` icon: + +![edit sequence button](/guides/task-management/manage-sequences/images/0.png) + +## Delete a Sequence + +Hover over the sequence row you wish to remove in the list and click the `Delete` icon: + +![delete sequence button](/guides/task-management/manage-sequences/images/1.png) \ No newline at end of file diff --git a/docs/guides/task-management/manage-shots/images/0.png b/docs/guides/task-management/manage-shots/images/0.png new file mode 100644 index 0000000000..3923bf607e Binary files /dev/null and b/docs/guides/task-management/manage-shots/images/0.png differ diff --git a/docs/guides/task-management/manage-shots/index.md b/docs/guides/task-management/manage-shots/index.md new file mode 100644 index 0000000000..9fca612191 --- /dev/null +++ b/docs/guides/task-management/manage-shots/index.md @@ -0,0 +1,255 @@ +# Managing Shots + +```mermaid +flowchart TD + SEQUENCE -->|contains| SHOT + + ASSET -->|cast in| SHOT + + SHOT -->|tracked by| TASK +``` + +::: warning +Shots are linked to Sequences in Kitsu. +You must create a sequence first to populate it with shots. +::: + +## Create a Shot + +It's time to create **shots** for your production. + +You need to go to the **Shots** page: you can use the +dropdown menu and click on the **SHOTS**. + +![Drop down menu shot](/img/getting-started/drop_down_menu_shot.png) + +Click on the **Add shots** button to start with the shot creation. + +![First add shots](/img/getting-started/new_shot.png) + +::: warning +When you create a shot, the task workflow you have designed will be applied, and all the tasks will be created at the same time as the shot. +::: + +A new pop-up opens for the creation of the shots. You can now add sequences and corresponding shots: + +![Manage shots](/img/getting-started/manage_shot.png) + +Enter the first sequence, for instance, SQ01, then click `add`. + +To add shots to this sequence, select it and type a name in the input field of the shots column (e.g SH0020), then again click `add`. + +::: tip +You can also define padding for your shots instead of doing it manually. + +If you want to name your shots ten on ten as SH0010, SH0020, SH0030, etc, set the **Shot Padding** to 10. +::: + +You can now see that new shots are listed and linked by their sequence: you just created the first shot of the first sequence! + +Now, let's add more shots. + +The input field already pre-writes an incremented name code based on your padding, so you just have to keep clicking on `add` to create more shots: + +![Add shots](/img/getting-started/add_shots.png) + +To add more sequences, go to the left part, type the name of your new sequence, and then click on `add`. + +Your second sequence is selected, and you can now add shots. + +> [!TIP] +> If a shot is misplaced on a sequence, you have to edit the shot in its dedicated Shot page to change the sequence. Look at the section `Update your shots` for more information. + +## Import Shots + +### From an EDL File + +You may already have your shots list ready in an **EDL** file. +With Kitsu, you can directly import your **EDL** file to create the sequence, shot, number of frames, Frame in and out, and more. + +On the **Global Shot Page**, you will see an **Import EDL** button. + +![Import EDL Button](/img/getting-started/import_edl_button.png) + +You can select the naming convention of the video file used during the editing on the pop-up. + +![Import EDL Menu](/img/getting-started/import_edl_menu.png) + +It means the video clip on the editing is named as project_sequence_shot.extension. + +Here is an example of an EDL for the LGC production. + +![EDL Example](/img/getting-started/edl_example.png) + +The video files are named  LGC_100-000.mov, which means LGC is the production name, 100 is the sequence name, and 000 is the shot name. + +You can import the EDL file once you have the naming convention. + +Then click on **Upload EDL** + +Then Kitsu will create the shots. + +![EDL Shot creation](/img/getting-started/edl_shot_creation.png) + +### From a Spreadsheet File + +You may already have your shots list ready in a spreadsheet file. +With Kitsu, you have two ways to import them: importing a `.csv` file directly, or copy-pasting your data directly into Kitsu. + +#### Option 1: Import a CSV file + +First, save your spreadsheet as a `.csv` file. + +Then, return to the shot page on Kitsu and click the **Import** icon. +![Import Icon](/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. + +![Import csv file](/img/getting-started/import_csv_shot.png) + +#### Option 2: Copy / paste from a spreadsheet + +Open your spreadsheet, select your data, and copy them. + +![Import copy data](/img/getting-started/import_copypas_shot.png) + +Then, go back to the shot page on Kitsu and click on the **Import** icon. +![Import Icon](/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. + +![Import data copy paste tab](/img/getting-started/import_pastcsvdata_shot.png) + +You can paste your previously selected data. + +![Import data copy paste data](/img/getting-started/import_pastcsvdata2_shot.png) + +#### Previewing and confirming your import + +Whichever method you used, click on the **Preview** button to see the result. + +You can check and adjust the name of the columns by previewing your data. + +NB: the **Episode** column is only mandatory for a **TV Show** production. + +![Import data copy paste data](/img/getting-started/import_preview_data_shot.png) + +Once everything is good, click the **Confirm** button to import your data into Kitsu. + +All your shots are imported into Kitsu, and the task is created according to your **Settings**. + +![Import data copy paste data](/img/getting-started/import_result_shot.png) + +## See the Details of a Shot + +If you want to see the details of a shot, click on its name. + +![Shot detail](/img/getting-started/shot_detail.png) + +A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. +You can navigate through each by clicking on the name of the tabs. + +![Shot detail page](/img/getting-started/shot_detail_page.png) + +You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. + +![Shot detail page](/img/getting-started/shot_detail_page_panel.png) + +You can also access the **Casting**, + +![Asset detail casting](/img/getting-started/shot_detail_page_casting.png) + +The **Schedule** is available if you have previously filled out the task type page data. If you have already filled out the data, you can modify them directly here. + +![Asset detail casting](/img/getting-started/shot_detail_page_schedule.png) + +the **Preview Files** uploaded at various task types, + +![Asset detail casting](/img/getting-started/shot_detail_page_file.png) + +And the **Timelog** if people have filled out their timesheet on the tasks of this asset. + +![Asset detail casting](/img/getting-started/shot_detail_page_timelog.png) + +## Add More Tasks After Creating Shots + +If you realize after creating the shots that a task is missing, you can still add it afterwards. + +First, [make sure the missing task type is added](/guides/task-management/managing-task-types/) to the `Settings` page under the `Task Type` tab. + +Then go back to the `Shots` page and click on `+ Add tasks`. + +## Update Shots + +You can update your shots at any point, change their names and sequences, modify their descriptions, and add any custom information you added to the global page. + +You can edit shots by going to the shot page, hovering over the shot you want to modify, and then clicking on the **Edit** button: + +![Edit an asset](/img/getting-started/asset_edit01.png) + +To extend the description on the main shot page, click on the shot name, and a pop-up with the full description will open. + +### From CSV + +You can use the **CSV Import** to update your data in bulk. + +Open your spreadsheet, copy your data, and paste it like in the `Import Shots From CSV` section. + +The only difference is you need to switch on the **Option: Update existing data**. + +The updated shots will apear in blue: +  +NB: the **Episode** column is only mandatory for a **TV Show** production. +  +![Import data copy paste data](/img/getting-started/update_preview_data_shot.png) + +## Add the number of Frames and Frame ranges to the shots + +Once your animatic is done, you have the length (**number of frames**, **Frame range In**, and **Frame range Out**) for each shot. You can +add this information to the spreadsheet to make sure that all the frames are accounted for in your pipeline. + +::: warning +If you have created your shots and sequence by hand, the **Frame** column will be hidden. You must edit at least one shot and fill in the number of frames to display the **Frame** column. + +The column will be displayed if you have created your shots and imported the number of frames with a CSV/spreadsheet. +::: + +You need to edit the shots to fill in the frame range information. Click on the `Edit` icon on the right side of the shot line: + +![edit shot Change sequence](/img/getting-started/edit_shot.png) + +You can enter the shots **Frame In** and **Frame Out** in the new window. Then, save by clicking the **Confirm** button. + +![Shot edit page](/img/getting-started/shot_edit.png) + +Now, the frame range appears on the general spreadsheet of the shot page + +![Shot edit page](/img/getting-started/shot_framerange_global.png) + +::: tip +If you enter the **Frame In** and **Frame Out**, Kitsu automatically calculates the **Number of Frame**. +::: + +Now that you have unlocked the **Frames**, **In**, and **Out** columns, you can edit the cells directly from the global shot page. Simply, click on the cell you want to edit: + +![Shot edit page](/img/getting-started/shot_framerange_global_edit.png) + +Again, you can use the **CSV Import** to update your frame ranges faster. + +## Access a Shot's Change History + +You can also access the change history of your shots. + +Just click the `History` icon: + +![Shot framerange detail](/img/getting-started/shot_framerange_detail.png) + +And a dialog will appear with a table listing all your changes: + +![Shot Values History](/img/getting-started/shot_values_history.png) + +## Remove Shots + +Hover over the shot row you wish to remove in the list and click the `Delete` icon: + +![remove shot button](/guides/task-management/manage-shots/images/0.png) \ No newline at end of file diff --git a/docs/guides/task-management/manage-studios/images/0.png b/docs/guides/task-management/manage-studios/images/0.png new file mode 100644 index 0000000000..3eac1e2417 Binary files /dev/null and b/docs/guides/task-management/manage-studios/images/0.png differ diff --git a/docs/guides/task-management/manage-studios/images/1.png b/docs/guides/task-management/manage-studios/images/1.png new file mode 100644 index 0000000000..3eac1e2417 Binary files /dev/null and b/docs/guides/task-management/manage-studios/images/1.png differ diff --git a/docs/guides/task-management/manage-studios/images/2.png b/docs/guides/task-management/manage-studios/images/2.png new file mode 100644 index 0000000000..e3bedebd46 Binary files /dev/null and b/docs/guides/task-management/manage-studios/images/2.png differ diff --git a/docs/guides/task-management/manage-studios/images/3.png b/docs/guides/task-management/manage-studios/images/3.png new file mode 100644 index 0000000000..15fd4d674e Binary files /dev/null and b/docs/guides/task-management/manage-studios/images/3.png differ diff --git a/docs/guides/task-management/manage-studios/images/4.png b/docs/guides/task-management/manage-studios/images/4.png new file mode 100644 index 0000000000..15fd4d674e Binary files /dev/null and b/docs/guides/task-management/manage-studios/images/4.png differ diff --git a/docs/guides/task-management/manage-studios/index.md b/docs/guides/task-management/manage-studios/index.md new file mode 100644 index 0000000000..b76cc7142a --- /dev/null +++ b/docs/guides/task-management/manage-studios/index.md @@ -0,0 +1,39 @@ +# Managing Studios + +```mermaid +flowchart TD + STUDIO -->|defines| DEPARTMENT + STUDIO -->|runs| PRODUCTION +``` + +Go to `Main Menu > Admin > Studios` to reach the `Studios` page. + +![studios page](/guides/task-management/manage-studios/images/0.png) + +A studio is a label used to organize teams and tasks in multi-studio or multi-site productions. + +You can use it to filter tasks, schedules, and teams per studio. + +## Create a Studio + +To create a new studio, click the `Add a studio` button: + +![create studio button](/guides/task-management/manage-studios/images/1.png) + +It'll open a dialog to add a name for the studio and pick a color: + +![create studio modal](/guides/task-management/manage-studios/images/2.png) + +Just click `Confirm` to save. + +## Update a Studio + +Hover over the studio row you wish to edit in the list and click the `Edit` icon: + +![update studio button](/guides/task-management/manage-studios/images/3.png) + +## Remove a Studio + +Hover over the studio row you wish to remove in the list and click the `Delete` icon: + +![remove studio button](/guides/task-management/manage-studios/images/4.png) \ No newline at end of file diff --git a/docs/guides/task-management/managing-asset-types/images/0.png b/docs/guides/task-management/managing-asset-types/images/0.png new file mode 100644 index 0000000000..b938e13a18 Binary files /dev/null and b/docs/guides/task-management/managing-asset-types/images/0.png differ diff --git a/docs/guides/task-management/managing-asset-types/images/1.png b/docs/guides/task-management/managing-asset-types/images/1.png new file mode 100644 index 0000000000..d365677286 Binary files /dev/null and b/docs/guides/task-management/managing-asset-types/images/1.png differ diff --git a/docs/guides/task-management/managing-asset-types/images/2.png b/docs/guides/task-management/managing-asset-types/images/2.png new file mode 100644 index 0000000000..d365677286 Binary files /dev/null and b/docs/guides/task-management/managing-asset-types/images/2.png differ diff --git a/docs/guides/task-management/managing-asset-types/images/3.png b/docs/guides/task-management/managing-asset-types/images/3.png new file mode 100644 index 0000000000..6f1c6ba030 Binary files /dev/null and b/docs/guides/task-management/managing-asset-types/images/3.png differ diff --git a/docs/guides/task-management/managing-asset-types/index.md b/docs/guides/task-management/managing-asset-types/index.md new file mode 100644 index 0000000000..5771471553 --- /dev/null +++ b/docs/guides/task-management/managing-asset-types/index.md @@ -0,0 +1,89 @@ +# Managing Asset Types + +```mermaid +flowchart TD + ASSET_TYPE -->|categorizes| ASSET +``` + +## Define Your Asset Workflow + +After creating your global Workflow, you can define your **Asset Types**. + + + +Much like how shots can be organized by a sequence, an asset can be organised by it's **Asset Type**. Think of it as using folders to organize all your assets by category. + + +On the main menu ![Main menu](/img/getting-started/main_button.png) select the +**Asset Type** page under the **Admin** section. + +![Asset type menu](/img/getting-started/menu_asset_type.png) + +::: tip +By default, Kitsu provides some example asset types that can be used for a CGI production. +::: + +![Asset type default](/img/getting-started/asset_type_default.png) + +To create new **Asset Type**, click on the ![Add Asset Types](/img/getting-started/add_asset_types.png) button. + +Next, you will need to supply some information about your **Asset Type**, including: + +- The name of the asset type +- A workflow for the specific asset type + +Different Asset Types will have distinct workflows. For instance, you might have fewer tasks for an Environment compared to a Character, as Environment assets typically don't require Rigging tasks. +  + +![Add asset types name](/img/getting-started/add_asset_types_name.png) + +When you **create** or **edit** an **Asset Type**, you can add a specific **task type**; if you don't select a specific workflow for this asset type, your production asset workflow will be applied. + +However, if you choose specific Task types for this Asset type, only these will be applied to production. + +Click on **Confirm** to save your changes. + +Your new **Asset Type** is now created in your **Global Library**. It will be available to use when you create your production. + +::: tip +At any point during production, you can revisit this section to create additional **Asset Types** as necessary and add them into your workflow. +::: + + + +## Enabling Specific Asset Types for a Production + +On the **Navigation Menu**, choose on the dropdown menu the **Setting**. + +![Drop Down menu Setting](/img/getting-started/drop_down_menu_setting.png) + +Per default, Kitsu will load the **Asset Types** you have defined when creating the production. + +However, you can add or remove specific Asset Types if they are created on the Global Library first. + +![Setting Asset type new](/img/getting-started/setting_asset_new.png) + +On the **Asset Types** tab, you can choose which **Asset Types** you want to add or remove on this production, +validate your choice with the **add** button. + +![Setting Add Asset](/img/getting-started/setting_asset_add.png) + +## Update an Asset Type + +Go to `Main Menu > Asset Types`: + +![update asset type page](/guides/task-management/managing-asset-types/images/0.png) + +Hover over the asset type row you wish to select then click the `Edit` icon: + +![update asset type button](/guides/task-management/managing-asset-types/images/1.png) + +## Remove an Asset Type + +To remove an asset type from your studio's Global Library, go to `Main Menu > Asset Types` and hover over the asset type row you wish to select then click the `Delete` icon: + +![remove asset type global](/guides/task-management/managing-asset-types/images/2.png) + +To remove an asset type from your production library, go to `Production Menu > Settings > Asset Types` and click the `Remove` button to remove the asset type from the list: + +![remove asset type production](/guides/task-management/managing-asset-types/images/3.png) \ No newline at end of file diff --git a/docs/guides/task-management/managing-task-statuses/images/0.png b/docs/guides/task-management/managing-task-statuses/images/0.png new file mode 100644 index 0000000000..280021e13b Binary files /dev/null and b/docs/guides/task-management/managing-task-statuses/images/0.png differ diff --git a/docs/guides/task-management/managing-task-statuses/images/1.png b/docs/guides/task-management/managing-task-statuses/images/1.png new file mode 100644 index 0000000000..1443ce6fd0 Binary files /dev/null and b/docs/guides/task-management/managing-task-statuses/images/1.png differ diff --git a/docs/guides/task-management/managing-task-statuses/images/2.png b/docs/guides/task-management/managing-task-statuses/images/2.png new file mode 100644 index 0000000000..1443ce6fd0 Binary files /dev/null and b/docs/guides/task-management/managing-task-statuses/images/2.png differ diff --git a/docs/guides/task-management/managing-task-statuses/images/3.png b/docs/guides/task-management/managing-task-statuses/images/3.png new file mode 100644 index 0000000000..3f050896a5 Binary files /dev/null and b/docs/guides/task-management/managing-task-statuses/images/3.png differ diff --git a/docs/guides/task-management/managing-task-statuses/index.md b/docs/guides/task-management/managing-task-statuses/index.md new file mode 100644 index 0000000000..ae7d43872a --- /dev/null +++ b/docs/guides/task-management/managing-task-statuses/index.md @@ -0,0 +1,183 @@ +# Managing Task Statuses + +```mermaid +flowchart TD + SEQUENCE -->|tracked by| TASK + SHOT -->|tracked by| TASK + ASSET -->|tracked by| TASK + DEPARTMENT -->|groups| TASK_TYPE + TASK_TYPE -->|type of| TASK + TASK_STATUS -->|current state of| TASK +``` + +A status represents a specific stage or condition that a task must pass through as part of the review and approval process. + +In the main menu, select the **Task Status** page under the **Admin** section: + +![Task Status Menu](/img/getting-started/menu_status_type.png) + +::: tip +By default, Kitsu already provides some examples Statuses. +::: + +You'll reach the `Task Status` page: + +![Task Status Default](/img/getting-started/task_status_default.png) + +## Create a Task Status + + + +Let's create the statuses we intend to use during our **Approval Workflow**. + +For example: + +| Status | Icon | Description | +|---|---|---| +| **Ready** | ![Ready status](/img/getting-started/ready_icon.png) | Indicates that the artists have everything they need to start working and should not begin their tasks without reaching this status. | +| **WIP** | ![WIP status](/img/getting-started/wip_icon.png) | Used by artists to inform their team that they are actively working on the task, indicating that there is no need to assign it to someone else. | +| **WFA** | ![WFA status](/img/getting-started/wfa_icon.png) | Used by artists to notify their supervisors that they have completed their work and are awaiting review. Supervisors can also use a similar status to inform directors that work is ready for review. | +| **Done** | ![DONE Status](/img/getting-started/done_icon.png) | Indicates that all work has been completed & approved. This indicates that the current task is complete and the next step in the process can commence. | +| **Retake** | ![Retake status](/img/getting-started/retake_icon.png) | Indicates that a comment has been made, prompting the artists to continue working on their task and publish a new version until validation is achieved. | + +These statuses are **just examples** of what is achievable in Kitsu! You are free to create your own as needed. + +To do this, from the main page, click on the `Add a task status` button: + +![Add Task Status](/img/getting-started/add_task_status.png) + +You'll then need to define some details about you **Task Status**, including: + +![Add Status](/img/getting-started/add_status.png) + +- **NAME**, the explicit name of the status that will be displayed when you hover your mouse over it in the. +- **SHORT NAME**, what will be displayed in Kitsu. +- **IS DEFAULT**, the first status that Kitsu will display by default on all tasks. You can only have **ONE** default status in Kitsu. +- **IS DONE**, if this status is utilized to validate a task (which is beneficial for quota management, organizing the to-do list, and updating episode statistics). +- **HAS RETAKE VALUE**, if this status is used for commenting on a task (helpful for tracking the back-and-forth discussions on the task type page and for the episode stats page). +- **IS ARTIST ALLOWED**, are artists allowed to set tasks to this status? If **No**, the artist won't see this status in their list of available statuses. However, they can still post comments on it. +- **IS CLIENT ALLOWED**, Can the client use this Status? If **No**, the client won't see this status in their list of available statuses. +- **IS FEEDBACK REQUEST**, if this status is used to request a review (helpful for quota tracking if you don't use a timesheet, it will appear in the Pending tab of the to-do list, and all these statuses will be grouped on the **My Check** page. Kitsu will prompt you to **publish a preview** each time you use this status). +- Finally, choose a background **color** you prefer for this status. + +Click on **Confirm** to save your changes. + +Your **Status** is now created in your **Global Library** and will be available to use in your production. + +::: tip +At any point during the production, you can return here and create more **Task Status** if needed, +and then add them to your production. +::: + +::: warning +You'll notice a few tasks statuses listed under the category of *Concept Status*. These are used by the system and while you can modify them here, you cannot create new ones. +::: + + + +## Adding Task Statuses to a Production + +On the **Navigation Menu**, choose on the dropdown menu the **Setting**. + +![Drop Down menu Setting](/img/getting-started/drop_down_menu_setting.png) + +Per default, Kitsu will load the **Task Status** you have defined when creating the production. + +However, you can add or remove specific statuses during production if they are created on the Global Library first. + +![Setting status new](/img/getting-started/setting_status_new.png) + +On the **Task Status** tab, you can choose which **status** you want to add or remove on this production, +validate your choice with the **add** button. + +![Setting Add Status](/img/getting-started/setting_status_add.png) + +## Update a Task Status + +Go to `Main Menu > Task Status`: + +![update task status page](/guides/task-management/managing-task-statuses/images/0.png) + +Select the Entities or Concepts tab and hover over the task status row you wish to change then click the `Edit` icon: + +![update task status button](/guides/task-management/managing-task-statuses/images/1.png) + +## Remove a Task Status + +To remove a task status from your studio's Global Library, go to `Main Menu > Task Status` and hover over the task status row you wish to select then click the `Delete` icon: + +![remove task status global](/guides/task-management/managing-task-statuses/images/2.png) + +To remove an task status from your production library, go to `Production Menu > Settings > Task Status` and click the `Remove` button to remove the task status from the list: + +![remove task status production](/guides/task-management/managing-task-statuses/images/3.png) + +## Status Automation + +### Create a New Status Automation + + + +A **Status Automation** defines rules or conditions that automatically trigger changes in the status of tasks based on predefined criteria. You can set up **Status Automation** for both asset and shot tasks. + +For assets, you can establish **Status Automations** between tasks. For example, when the concept task status is set to `done`, the downstream modelling task status is automatically changed to `ready`. + +Additionally, you can create **Status Automations** that update the **Asset Status** based on task statuses. For example, when the concept task is set to `done` , then the linked asset status is set to ``layout``. + +::: tip +You can also ask Kitsu to **copy the latest preview** with the Automation. +::: + +Go to the main menu and select **Automations**: + +![Main menu Status Automation](/img/getting-started/main_menu_status_automation.png) + +From this page, you can create **Status Automations** by clicking the `+ Add status automation` button: + +![create Status Automation](/img/getting-started/status_automation_empy.png) + +You have the option to create **Status Automation** for either the **asset** or the **shot**. + +Next, you can select the **task type** and the **status** that will trigger the Automation. + +You can specify which **Task Type** will respond to the Automation and select the **Status** that will be changed. + +![detail create status automation](/img/getting-started/add_status_automation.png) + +You need to change the trigger from "Status" to **Ready For** in order to initiate the change in **Ready For** status. + +You will notice the **Applied Task Type** will now display **Shot task type**. + +![detail create status automation Ready For](/img/getting-started/add_status_automation_readyfor.png) + +To create a **Status Automation** for shots, you must change the **Entity Type** to shots. + +Your new **Status Automation** is now created in your **Global Library**. + +::: warning +You must add status automations to your **Production Library** once you have created your production. +::: + +::: tip +At any point during the production, you can return here and create more **Status Automations** if needed, and then add them to your production. +::: + + + +### Add a Status Automation to a Production + +On the **Navigation Menu**, choose on the dropdown menu the **Setting**. + +![Drop Down menu Setting](/img/getting-started/drop_down_menu_setting.png) + +Per default, Kitsu will load no **status automation** of your +status automation **Global Library** into your **Production Library**. + +![Setting Task Type new](/img/getting-started/setting_auto_new.png) + +But you can use only specific **Status Automation**, depending on your production type. + +On the **Status Automation** tab, you can choose which automation you want to use on this production, +validate your choice with the **add** button. + +![Setting Add Task Type](/img/getting-started/setting_auto_add.png) \ No newline at end of file diff --git a/docs/guides/task-management/managing-task-types/images/0.png b/docs/guides/task-management/managing-task-types/images/0.png new file mode 100644 index 0000000000..7c4efbf52c Binary files /dev/null and b/docs/guides/task-management/managing-task-types/images/0.png differ diff --git a/docs/guides/task-management/managing-task-types/images/1.png b/docs/guides/task-management/managing-task-types/images/1.png new file mode 100644 index 0000000000..0d3fd07d96 Binary files /dev/null and b/docs/guides/task-management/managing-task-types/images/1.png differ diff --git a/docs/guides/task-management/managing-task-types/images/2.png b/docs/guides/task-management/managing-task-types/images/2.png new file mode 100644 index 0000000000..0d3fd07d96 Binary files /dev/null and b/docs/guides/task-management/managing-task-types/images/2.png differ diff --git a/docs/guides/task-management/managing-task-types/images/3.png b/docs/guides/task-management/managing-task-types/images/3.png new file mode 100644 index 0000000000..e2fd8b796d Binary files /dev/null and b/docs/guides/task-management/managing-task-types/images/3.png differ diff --git a/docs/guides/task-management/managing-task-types/index.md b/docs/guides/task-management/managing-task-types/index.md new file mode 100644 index 0000000000..f6636c72f8 --- /dev/null +++ b/docs/guides/task-management/managing-task-types/index.md @@ -0,0 +1,128 @@ +# Managing Task Types + +```mermaid +flowchart TD + SEQUENCE -->|tracked by| TASK + SHOT -->|tracked by| TASK + ASSET -->|tracked by| TASK + DEPARTMENT -->|groups| TASK_TYPE + TASK_TYPE -->|type of| TASK + TASK_STATUS -->|current state of| TASK +``` + +Task types can be associated with multiple entities such as assets, shots, sequences, episodes, or edits. + +## Creating a New Task Type + + + +First, let's create all the **Task Types** needed to manage and track our production. + +From the main menu, select the **Task Types** page under the **Admin** section: + +![Task Type](/img/getting-started/menu_tasktype.png) + +::: tip +By default, Kitsu provides some example task types that can be used for a CGI production. You can rename or remove any that are not relevant to your production. +::: + +You will notice that these **Task Types** are already linked to a department. + +![Task Type Empty](/img/getting-started/task_type_empty.png) + +You can click on the `Add Task Type` button to create new **Task Type**: + +![add task type button](/img/getting-started/add_tasktype.png) + +Next, you will need to supply some information about your task type, including: + +- The name of the task type +- If team members need to time log their work for tasks with this task type +- For which entity it will be used +- To which department it should be linked +- The color (this will be reflect in the background color on the main spreadsheet page) + +![Create task](/img/getting-started/create_task.png) + +You'll notice that the **Departments** we created previously are available as an option to link task types to. Connecting a department to a specific task type can help your team stay organized. + +![Create task department](/img/getting-started/create_task_department.png) + +Click on **Confirm** to save your changes. + +::: warning +Newly created task types will appear at the bottom of the list +::: + +To adjust the order, simply click on the **Task Type** and drag it to its appropriate position in the list. + +![Create task top list](/img/getting-started/created_task_top.png) + +Congratulations, your task type has now be created in your **Global Library**. + +::: warning +Once you have created your production, you need to add the **Sequence**, **Episode**, and **Edit** task types to your **Production Library**. +::: + +::: tip +At any point during production, you can revisit this section to create additional **Task Types** as necessary and add them into your workflow. +::: + + + +## Adding Task Types in a Production + +On the **Navigation Menu**, choose on the dropdown menu the **Setting**. + +![Drop Down menu Setting](/img/getting-started/drop_down_menu_setting.png) + +By default, Kitsu will add the **Task Types** you have chosen when creating the production. + +![Setting Task Type new](/img/getting-started/setting_task_new.png) + +However, you can add or remove specific **Task Types** if they are created on the Global Library first. + +For example, you can import the task workflow from another production in your library. + +![Setting Add Task Type](/img/getting-started/setting_task_add.png) + +On the **Task Types** tab, you can choose which production or task type you want to import  or remove on this production, +validate your choice with the **Import** button. + +::: warning +If you had a new task type **AFTER** creating an asset or shot, here is the **DELIVERY** task type. + +![Setting Task Type add](/img/getting-started/setting_task_add2.png) + +You need to **add this task type** on the global page. + +![Add Task Type Global](/img/getting-started/global_add_task.png) + +A pop-in will appear, and you must select the new task type on the dropdown menu. + +![Add Task Type Global](/img/getting-started/add_task_current.png) + +Validate with **Confirm**. + +![Add Task Type example](/img/getting-started/add_task_example.png) +::: + +## Update a Task Type + +Go to `Main Menu > Task Types`: + +![update task type page](/guides/task-management/managing-task-types/images/0.png) + +Click the tab for the entity type you need (asset, shot, sequence, episode, or edit) and hover over the task type row you wish to select then click the `Edit` icon: + +![update task type button](/guides/task-management/managing-task-types/images/1.png) + +## Remove a Task Type + +To remove a task type from your studio's Global Library, go to `Main Menu > Task Types` and hover over the task type row you wish to select then click the `Delete` icon: + +![remove task type global](/guides/task-management/managing-task-types/images/2.png) + +To remove an task type from your production library, go to `Production Menu > Settings > Task Types` and click the `Remove` button to remove the task type from the list: + +![remove task type production](/guides/task-management/managing-task-types/images/3.png) \ No newline at end of file diff --git a/docs/guides/team-management/import-team/index.md b/docs/guides/team-management/import-team/index.md new file mode 100644 index 0000000000..244ce5940d --- /dev/null +++ b/docs/guides/team-management/import-team/index.md @@ -0,0 +1,35 @@ +# Import Your Team + +Chances are you already have a list of your employees somewhere. + +You have three ways to import them in Kitsu: + +1. Importing a `.csv` spreadsheet file directly +2. [Copy-pasting your data directly into Kitsu](/guides/team-management/managing-teams/) +3. Using the [Developer API](https://dev.kitsu.cloud/guides/team-management.html#inviting-and-managing-users) + +## Add Employees from a CSV Spreadsheet File + +First, save your spreadsheet as a `.csv` file. + +Then, go back to the People page on Kitsu and click on the **Import** icon: + +![Import Icon](/img/getting-started/import.png) + +A pop-up window **Import data from a CSV** will open. Click on **Browse** to pick your `.csv` file. + +![Import csv file](/img/getting-started/import_csv_people.png) + +To see the result, click on the **Preview** button. + +You can check and adjust the column names using the preview of your data. + +**Note:** The **Role** column is not mandatory. + +![Import data copy paste data](/img/getting-started/import_preview_data_people.png) + +Once everything looks good, click on the **Confirm** button to import your data into Kitsu. + +Now, you have all your people imported into Kitsu. + +![Import data copy paste data](/img/getting-started/import_result_people.png) diff --git a/docs/guides/team-management/index.md b/docs/guides/team-management/index.md new file mode 100644 index 0000000000..81ec6c045a --- /dev/null +++ b/docs/guides/team-management/index.md @@ -0,0 +1,7 @@ +# Team Management + +- [Managing Departments](/guides/team-management/managing-departments/) - Discover methods for effectively managing and overseeing your team. +- [Managing Teams](/guides/team-management/managing-teams/) - +- [User Permission Roles](/guides/team-management/team-roles/) - +- [Import Team](/guides/team-management/import-team/) - +- [User Profile Settings](/guides/team-management/profile-settings/) - \ No newline at end of file diff --git a/docs/guides/team-management/managing-departments/index.md b/docs/guides/team-management/managing-departments/index.md new file mode 100644 index 0000000000..c81fbae0e1 --- /dev/null +++ b/docs/guides/team-management/managing-departments/index.md @@ -0,0 +1,50 @@ +# Managing Departments + + + +Departments are designed to help supervisors and artists focus on their tasks. Once a user is linked to one or more departments, supervisors and artists gain direct access to a filtered view of all tasks associated with that task type. + +Departments are also used to define what metadata columns appear for users within that department. If a metadata column is linked to a department, then they will only show up for users in that department. If a metadata column is not associated with a department, they will show up for everyone. + +To manage your departments, select the **Department** page under the **Admin** section from the main navigation menu. + +![Task Type](/img/getting-started/deparment_menu.png) + +## Creating Departments + + + +Defining your studio's Departments is typically the first step in setup, as multiple objects such as people and task types are linked to a department. + +::: tip +By default, Kitsu provides some example departments to help you get started. +::: + +If you need to create more departments, you can click on the `Add a department` button: + +![create department button](/img/getting-started/create_department_button.png) + +When adding a department, you need to define: + +- The name of the department +- A color (it will be displayed as a small round circle next to a column task type or a custom column) + +![Create department](/img/getting-started/create_department_detail.png) + +Click on **Confirm** to save your changes. + +Once you finish creating the department, your page should look like this. Each department has a unique name and a corresponding color: + +![Customized department](/img/getting-started/customized_department.png) + + + +## Update Departments + +To update a department simply stay in the `Departments` page and hover your cursor over the department row you wish to edit and click the `Edit` icon. + +## Delete Departments + +To remove a department, hover over the department row you wish to select and click the `Delete` icon. + + diff --git a/docs/guides/team-management/managing-teams/index.md b/docs/guides/team-management/managing-teams/index.md new file mode 100644 index 0000000000..beb13bcdb6 --- /dev/null +++ b/docs/guides/team-management/managing-teams/index.md @@ -0,0 +1,91 @@ +# Managing Teams + + + +There are two libraries for users: +- The **People Page** (Global Library) is used to determine users' permissions, contracts, and departments they belong to. +- The **Team Page** (Production Library) is used to define who is working on a project and provide access to the production. + + + +## Creating Users + +To assign tasks to people, you first need to create an account for them in Kitsu. + +Go to the **Main Navigation Menu** and choose the **People** page under the **STUDIO** section. + +![People Menu](/img/getting-started/main_menu_people.png) + +Then, click on the `Add a new user` button to open the creation modal: + +![Create a new user](/img/getting-started/create_employee.png) + +You will then be prompted to enter the following information: (please note from of the fields are required in order to create the user) +- 1) First Name (**MANDATORY**) +- 2) Last Name +- 3) Email (**MANDATORY**) +- 4) Phone Number + +::: danger Important! +An email address is **mandatory** and must be unique in order to create an account. +::: + +- 5) You can specify one or multiple **Departments** to link a user to. + +Being assigned to a Departments will also affect what shows up on the **My Checks** page, displaying only tasks related to your department. + +Finally, the timesheet page will be filtered to only tasks within your department as well. + +Once a user is linked to a department, various options will become available to them. For example, they will have direct access to their department's view on the global homepage. + +The department supervisor will be able to comment on all tasks within their department and assign tasks only to people from the same department(s). + +![Department filtered view](/img/getting-started/department_filtered_view.png) + +- 6) Role: This is where you will define the permission role of the user (this will be explained below). + +- 7) Active + +This section lets you choose whether to activate users immediately. If the user needs immediate access to Kitsu, set this to **yes**. However, there might be instances where you want to create a user but are not ready to give them access to Kitsu (for example, if you want to schedule tasks for an artist who is due to start work in two weeks). In this case, you can create and schedule the user, then simply enable them once they start. + +::: danger Important! +Each user requires an individual account to log in to Kitsu. +::: + + + +## Adding Users to a Production Team + +Once you have created your production, you need to add users to the production's team to allow them access. + +Being part of a team also allows tasks to be assigned to you. + +::: tip +You don't need to add the Studio Manager role to a team to give them read permission (since this role will have access to it anyways). However, if you want to assign them tasks, they will need to be added to the team. +::: + +To add users to a team, within your project, use the **navigation** dropdown menu at the top of the page and select the **TEAM** page. + +![Drop down menu team](/img/getting-started/drop_down_menu_team.png) + +On the **Team** page, you can see all the users who have been assigned to this project. If you've just created a brand new project, this page will be empty. You can also quickly switch to the team page for a different project by selecting the project name in the drop down menu at the top of the page. + +![Team page](/img/getting-started/team_page.png) + +::: warning +Permissions and departments are set at the **Studio Level**. You can't adjust these at the production level. +::: + +## Removing Users From A Team + +To remove a user from a production, go to `Production Menu > Team`, hover your cursor over the row of the corresponding user, and click the `Remove` button. + +Removing a user from a department happens in the `Main Menu > Studio > People` page. Just click on the `Edit` button for the target user and in the departments section click the department you wish to remove the person from. + +## Delete Users + +To delete a user you must first edit their status to `Inactive` in the studio's `People` page. + +Then, go to the `Inactive` tab, hover your cursor over the user you wish to select, and click the `Delete` icon. + + \ No newline at end of file diff --git a/docs/guides/team-management/profile-settings/index.md b/docs/guides/team-management/profile-settings/index.md new file mode 100644 index 0000000000..3fcee149f6 --- /dev/null +++ b/docs/guides/team-management/profile-settings/index.md @@ -0,0 +1,35 @@ +# User Profile Settings + + + + +On your first connection, we encourage you to fill in your contact information into your profile. Setting this up helps your team recognize you and lets you tailor notifications and settings to fit your workflow. + +## Access Your Profile + +Click on your name/avatar on the top right of the screen (1), then on **Profile** (2). + +NB: This menu also gives you quick access to helpful resources at any time: a link to this **Documentation** (4), our **Tutorials**, our **Slack**/**Discord** community (5), our **YouTube** channel, and our public **Roadmap** (6). You can also toggle the **Dark Theme**/**Theme** color (3) and show or hide the **Support Chat** widget from here. + +![User profile](/img/getting-started/user_profil.png) + +## Customize Your Details + +On this new page, you can check your name (1) (2) and email (3), fill in your phone number (4), change your timezone (5) and the language of the website (6), and post a pic of yourself as your avatar (7). It helps to recognize who is doing what! + +![User detail](/img/getting-started/user_profil1.png) + +You can also define what kind of notification you want: email or Slack. + +![User detail](/img/getting-started/user_profil2.png) + +## Change Your Password + +If you keep scrolling, you can also change your password. + +For security purposes, it's highly recommended to replace the default password with a strong and unique one of your own. + +![User password](/img/getting-started/user_password.png) + + + \ No newline at end of file diff --git a/docs/guides/team-management/team-roles/index.md b/docs/guides/team-management/team-roles/index.md new file mode 100644 index 0000000000..8a241ec632 --- /dev/null +++ b/docs/guides/team-management/team-roles/index.md @@ -0,0 +1,160 @@ +# User Permission Roles + + + +::: warning Definition +A permission role defines a set of access rights and privileges granted to a user within a system or application, dictating what actions they can perform and what resources they can access. +::: + +Roles are very important, so it's useful to understand what each of them does and which ones might be relevant to specific team members. + +Here's the org hierarchy as a simple chart: + +```mermaid +graph TD + A[Studio Manager] --> B[Production Manager] + B --> C[Supervisor] + C --> D[Artist] + D --> E[Vendor] + F[Client] +``` + +And a summary of the permissions per role: + +| Role | Access Scope | Can Do | Cannot Do | +|---|---|---|---| +| **Artist** | Only productions/tasks they're assigned to | | | +| **Vendor** | Only specifically assigned tasks (narrower than Artist) | | | +| **Supervisor** | Their own department(s): assets, shots, tasks, assignments, stats, breakdown, playlists (inherits Artist permissions) | | | +| **Production Manager** | Productions they're assigned to: assets, shots, tasks, assignments, stats, breakdowns, playlists (inherits Supervisor permissions) | | | +| **Studio Manager** | All productions and settings (admin-level, inherits Supervisor permissions) | | — | +| **Client** | Only their own production | | | + +## Artist + +Artists can only access the productions they are part of. They can comment on tasks, upload media, and change statuses only on tasks that have been assigned to them. Their access is limited to a predefined set of statuses as determined by the Studio Manager. + +**They can:** +* Create personal filters on the global page and Task Type page. +* Edit their own comments. +* Check the checklist on their assigned tasks. +* Create playlists-on-the-fly for shots or assets, but won't be able to save these playlists. + +**They cannot:** +* See client comments. +* Access anything inside of projects that they haven't been assigned to. + +When an artist logs in to Kitsu, the first page they will see is their **My Tasks** page. + +![my task](/img/getting-started/my_task_page.png) + +## Supervisor + +Department supervisors inherit Artist permissions. + +Department supervisors have read and write access to their department(s) they work on: +assets, shots, tasks, assignments, statistics, breakdown, and playlists. + +**They can:** +* Assign tasks to their team artists (same department). +* Post comments on all tasks or their department(s). +* Check a checklist in their own department. +* Pin a comment. +* Edit their own comments. +* Add/edit a playlist for the studio or the client. +* See client comments and validations. +* See comments from other departments. +* View the timesheets of their team department(s). + +**They cannot:** +* Access the studio team, the main timesheets, and the production list +* Define task types, task statuses, and asset types. +* Comment on other departments than theirs; they can't assign artists from other departments. + +## Production Manager + +Production managers inherit Department supervisor permissions. + +Production managers have read and write access to the productions they are assigned to, including +assets, shots, tasks, assignments, statistics, breakdowns, and playlists. + +**They can:** + +* Create assets and shots, either manually or through a CSV batch import. +* Post comments on any tasks within the production. +* Edit any comment within the production. +* Check any checklist within the production. +* Pin any comment within the production. +* Add a task column. +* Delete or add a task. +* Add/edit a playlist for the studio or the client. +* See client comments and validations. + +**They cannot:** + +* Access the studio page, the main timesheets, and the production list. +* Define task types, task statuses, and asset types. + +## Studio Manager + +A Studio Manager acts in the same way as an Administrator, having read and write access to all productions and settings within Kitsu. Some of their privileges include: + +### Create and edit a production + +The Studio Manager can create a new production, define its type, FPS, ratio, and resolution, and add a cover picture. They can also edit and delete any production. + +### Manage the studio + +The Studio Manager has access to everything in the studio, including: + +* Read / write access across all the productions +* Access to the global timesheets page +* The ability to view all people in the studio +* Access to the main schedule + +In the People page, The Studio Manager **defines the permission role of each user**. + +They can also: + +* Customize global aspects of Kitsu: for example adding and modifying task types, task statuses, and asset types. +* Set permission roles +* Customize high-level studio information, such as customizing the studio name adding the company logo, and defining the number of hours per day of work etc. +* Choose to use the original filename for downloading media. + +### Manage productions + +They have full access to all productions on your Kitsu site. Additionally: + +* They have the same permissions as the supervisor. +* They can add / delete a task column. +* They are allowed to create custom metadata columns. + + +## Vendor + +Vendors have similar permissions to artists. + +The main difference is that while an artist can still see tasks in their production (though they can only edit tasks assigned to them), a vendor can only see and edit tasks that they are specifically assigned to. + +Everything else that is not assigned is hidden. + +## Client + +The client can only see the production of which they are part of. + +**They can:** + +* Access the global page of the assets/shots. +* Access the stats pages. +* Access Client playlists with limited access to task status when they post a comment + +**Note** +* Only Supervisors and the Studio Manager can see the Client retake or validation status. + + +**They cannot:** + +* See task assignments +* See comments that they didn't write + + \ No newline at end of file diff --git a/docs/guides/tracking-reporting/budget/images/0.png b/docs/guides/tracking-reporting/budget/images/0.png new file mode 100644 index 0000000000..d2670e6230 Binary files /dev/null and b/docs/guides/tracking-reporting/budget/images/0.png differ diff --git a/docs/guides/tracking-reporting/budget/images/1.png b/docs/guides/tracking-reporting/budget/images/1.png new file mode 100644 index 0000000000..36521d6b93 Binary files /dev/null and b/docs/guides/tracking-reporting/budget/images/1.png differ diff --git a/docs/guides/tracking-reporting/budget/images/2.png b/docs/guides/tracking-reporting/budget/images/2.png new file mode 100644 index 0000000000..48e3169585 Binary files /dev/null and b/docs/guides/tracking-reporting/budget/images/2.png differ diff --git a/docs/guides/tracking-reporting/budget/images/3.png b/docs/guides/tracking-reporting/budget/images/3.png new file mode 100644 index 0000000000..40a261d9ab Binary files /dev/null and b/docs/guides/tracking-reporting/budget/images/3.png differ diff --git a/docs/guides/tracking-reporting/budget/images/4.png b/docs/guides/tracking-reporting/budget/images/4.png new file mode 100644 index 0000000000..754ac9bf43 Binary files /dev/null and b/docs/guides/tracking-reporting/budget/images/4.png differ diff --git a/docs/guides/tracking-reporting/budget/images/5.png b/docs/guides/tracking-reporting/budget/images/5.png new file mode 100644 index 0000000000..10b37b05d1 Binary files /dev/null and b/docs/guides/tracking-reporting/budget/images/5.png differ diff --git a/docs/guides/tracking-reporting/budget/images/6.png b/docs/guides/tracking-reporting/budget/images/6.png new file mode 100644 index 0000000000..d4749d1f6e Binary files /dev/null and b/docs/guides/tracking-reporting/budget/images/6.png differ diff --git a/docs/guides/tracking-reporting/budget/images/7.png b/docs/guides/tracking-reporting/budget/images/7.png new file mode 100644 index 0000000000..24f28fb654 Binary files /dev/null and b/docs/guides/tracking-reporting/budget/images/7.png differ diff --git a/docs/guides/tracking-reporting/budget/images/8.png b/docs/guides/tracking-reporting/budget/images/8.png new file mode 100644 index 0000000000..c242aee2c5 Binary files /dev/null and b/docs/guides/tracking-reporting/budget/images/8.png differ diff --git a/docs/guides/tracking-reporting/budget/images/9.png b/docs/guides/tracking-reporting/budget/images/9.png new file mode 100644 index 0000000000..684605602a Binary files /dev/null and b/docs/guides/tracking-reporting/budget/images/9.png differ diff --git a/docs/guides/tracking-reporting/budget/index.md b/docs/guides/tracking-reporting/budget/index.md new file mode 100644 index 0000000000..0487e65f66 --- /dev/null +++ b/docs/guides/tracking-reporting/budget/index.md @@ -0,0 +1,109 @@ +# Budget + +In your Production menu, go to Budget to find the Budget Forecasting page: + +![](/guides/tracking-reporting/budget/images/0.png) + +You can use this page to forecast, compare, and manage production costs with accuracy: + +- Track expense distribution and monitor cost evolution over time for your hired crew +- Create multiple budget versions to plan for different scenarios +- Admins can enter daily rates at the person level, which are used when that person is assigned to a department role +- For predicted hires, you can use a seniority-based placeholder with a corresponding salary scale +- Automatically pulls cost data from your Software Licenses and Hardware Items lists + +## Create a new budget + +The first time you use the feature, click `Create a new budget`: + +![](/guides/tracking-reporting/budget/images/1.png) + +Pick a name and a currency: + +![](/guides/tracking-reporting/budget/images/2.png) + +## Add a new budget entry + +A budget entry represents one cost item you add to a production's budget plan. Things like a person's day rate for a task type, a piece of software/license cost, a hardware cost. + +In the `Budget` page, you can add labor entries by clicking the `Add an entry` button: + +![](/guides/tracking-reporting/budget/images/3.png) + +Then fill up the form and click `Confirm`: + +![](/guides/tracking-reporting/budget/images/4.png) + +- **Department**: the department the person belongs to +- **Person** (optional): the person you're budgeting for +- **Position**: artist, supervisor, or lead +- **Seniority**: junior, mid, or senior +- **Start date**: when their work starts +- **Months duration**: how many months the work last +- **Daily salary**: how much they are paid per day in the budget currency + +The monthly salary is calculated as `Daily Salary X 20 Work Days per month`. The total salary is just the monthly salary multiplied by the number of budgeted months. + +To make budgeting easier, it's possible to define a salary scale that Kitsu will use to generate default daily salary based on department, position and seniority. + +## Define a salary scale + +The salary scale page is accessed from `Main Menu > Admin > Salary Scale`: + +![](/guides/tracking-reporting/budget/images/5.png) + +Studio managers can define default day rates depending on the person's department, position, and seniority. + +Simply click the salary cell you wish to change and input your number. Kitsu autosaves any change. + +## Add a new budget version + +Sometimes you need to forecast different budget scenarios to see how they would impact your production. + +To do that, you can create a new budget version by clicking `New version` in the top right corner of your budget page. + +## Managing software licenses + +To manage software license costs, head to `Main Menu > Admin > Software Licences`: + +![](/guides/tracking-reporting/budget/images/6.png) + +Each budget entry has the following properties: + +- **Name**: the full software name +- **Short name**: a shorter name for reporting +- **Extension**: file extension if applicable (e.g .blend for Blender) +- **Version**: the software version number +- **Monthly cost**: how much the software costs per month +- **Inventory amount**: how many licenses have been purchased +- **Remaining amount**: how many licenses remain available + +## Accounting hardware items + +To manage hardware item costs, head to `Main Menu > Admin > Hardware Items`: + +![](/guides/tracking-reporting/budget/images/7.png) + +Each entry has the following properties: + +- **Name**: the full product name +- **Short name**: a shorter name for reporting +- **Monthly cost**: how much the product costs per month +- **Inventory amount**: how many products have been purchased +- **Remaining amount**: how many products remain available + +## Linking software licenses and hardware items to departments + +In the Departments page (`Main Menu > Admin > Departments`), you can navigate to the Linked Hardware and Linked Software tabs to assign costs to departments: + +![](/guides/tracking-reporting/budget/images/8.png) + +Simply click on the `Linked Item` to remove it, and click on an `Available Item` to add it to the department. + +Kitsu automatically breaks down costs per department depending on the number of people in it. It also updates the `Remaining Amount` field of accounting entries. + +## Budget forecast vs real costs + +Of course, reality isn't the same as planning. Kitsu accounts for that with a `Show real costs` button you can toggle to obtain a breakdown of how the budget forecast compares to the actual production budget: + +![](/guides/tracking-reporting/budget/images/9.png) diff --git a/docs/guides/tracking-reporting/durations-vs-estimates/index.md b/docs/guides/tracking-reporting/durations-vs-estimates/index.md new file mode 100644 index 0000000000..f1210180e5 --- /dev/null +++ b/docs/guides/tracking-reporting/durations-vs-estimates/index.md @@ -0,0 +1,51 @@ +# Durations over Estimates + +To focus on the big picture and have a global view of the **Bid**, you can compare the estimated **Person days** versus the reality **Days Spent** on various pages. + +## Estimation Summary + +On the shots' global page, you can see the sum-up of all the estimations versus duration. You can also apply filters for more specific insights. + +For example, to focus on a specific sequence, filter your global page by the sequence's name. The sum-up at the bottom will update accordingly. + +![Global Shot Page Sum-up Filtered](/img/getting-started/global_shot_sumup.png) + +This allows you to know the **Duration** versus **Estimation** for that particular **Sequence**. + +Similarly, you can filter the global asset page. + +For example, you can filter by a specific **Asset Type** such as **Character**. The sum-up at the bottom will update to show the estimation versus duration for that asset type. + +![Global Asset Page Sum-up Filtered](/img/getting-started/global_asset_sumup.png) + + +## Task Type Duration over Estimation + +To delve into details, click on the name of a task type. The sum-up at the bottom of the screen will show **Duration** versus **Estimation** for this specific task type. + +![Task Type Sum-up](/img/getting-started/task_type_sumup.png) + +You can get a global view or focus on a **specific status** or **Artist's name**. As on the global page, the sum-up will update with each filter applied. + + +![Task Type Sum-up Filtered](/img/getting-started/task_type_sumup_filter.png) + +This way, you can closely monitor the performance and efficiency of specific tasks and artists, ensuring that estimations align with actual durations and making adjustments as necessary. + +## Durations over Estimations for an Asset / Shot + +To closely examine the details, you can display **Estimation** and **Time Spent** columns (duration) for each asset and shot in Kitsu. + +On the global page for shots or assets, you can see the sum-up of each task's **Estimation** and **Duration**. This allows you to quickly identify discrepancies or issues. + +![Global Shot Estimation](/img/getting-started/global_shot_est.png) + +## Detailed Analysis + +If something appears wrong or needs further investigation, click on the asset or shot name to go to the detail page. + +On the detail page, at the top left of the screen, you'll find a summary of the asset's or shot's lifecycle. This includes details of each task's **Status**, **Estimation**, **Duration**, **Start and Due Date**, and **Assignation**. + +![Detail Shot Estimation](/img/getting-started/shot_detail_casting.png) + +This comprehensive view helps you understand where the discrepancies lie and take corrective actions if necessary. By closely monitoring these details, you can ensure better alignment between estimations and actual durations, leading to more accurate future planning and resource allocation. diff --git a/docs/guides/tracking-reporting/ensure-tasks-on-time/index.md b/docs/guides/tracking-reporting/ensure-tasks-on-time/index.md new file mode 100644 index 0000000000..d3579a842c --- /dev/null +++ b/docs/guides/tracking-reporting/ensure-tasks-on-time/index.md @@ -0,0 +1,59 @@ +# Ensure Tasks are On Time + +To know if a task is on time, you need two things: +- The **Task Type** of the task +- An **Estimation** (Bid) in days, along with an estimated **Start date** and **Due date** for the task. + +Once this information is entered, you can **compare estimation to reality** on the Task Type page. + +![Task Type Filled](/img/getting-started/task_type_schedule_due_date.png) + +## Methods to Compare Estimations and Actuals + +There are two main ways to do this: +1. **Filtering by Due Date Status** +2. **Using the Gantt Diagram** + +::: tip +Kitsu automatically grabs the date and status of **WIP** (Work in Progress) and **WFA** (Waiting for Approval). You can compare your **estimated start date** versus **when the Artist really starts**, and compare the **estimated due date** to **when the Artist asks for approval**. +::: + +## Filtering by Due Date Status + +On the **Tasks** tab, the first filter you see is **Due Date Status**. Set it to **Due before today** to display all tasks with a **Due date** set **Due Before Today**. + +Next, to determine what is finished and what still needs to be finished. Use the **-Done** filter to exclude completed tasks. + +![Task Type Due Before Today](/img/getting-started/task_type_due_before.png) + +This will show you all the late tasks with the two filters applied, meaning they are only validated after the **Estimated Due Date**. The summary at the bottom of the page updates in real time based on the applied filters. + +You can export this page as a `CSV` file and open it with spreadsheet software. + +## Using the Late Status Filter + +The **Late Status** filter built into the page helps you immediately see which tasks took more time than estimated (**Estimation over Duration**). + +![Task Type Estimation over duration](/img/getting-started/task_type_estimation_duration.png) + +Filter the late tasks using the **Due date late** option. There are two ways to calculate if a task is late: +1. **Estimated due date** versus **Feedback** +2. **Estimated due date** versus **Done** + +Depending on your studio's calculation method, Kitsu will provide the answer. + +![Task Type Late Feedback](/img/getting-started/task_type_late_feedback.png) + +## Using the Gantt Diagram + +On the **Task Type Page**, go to the **Schedule** tab. The **Start** and **End** dates of this task type, as set on the production schedule, are visible at the top of the screen. + +The **Gantt Diagram** will be dark grey before and after these dates, providing a visual cue for task timing. + +![Task Type Schedule](/img/getting-started/task_type_schedule_emplty.png) + +Change the **Coloring** from **Status color** to **Late in Red**. This will show tasks in **Grey** if they are on time and **Red** if they are late. + +![Task Type Schedule Late](/img/getting-started/task_type_schedule_coloring_late.png) + +You can return to the **Tasks** tab for more details, and Kitsu will retain your filters from tab to tab. diff --git a/docs/filter/README.md b/docs/guides/tracking-reporting/filter/index.md similarity index 83% rename from docs/filter/README.md rename to docs/guides/tracking-reporting/filter/index.md index 1310337110..14e18b7cf6 100644 --- a/docs/filter/README.md +++ b/docs/guides/tracking-reporting/filter/index.md @@ -1,19 +1,20 @@ -# Filters +# Advanced Search & Filters Filtering involves selectively retrieving data based on specific criteria or conditions. It enables users to easily hone in information they want to focus on, or extract relevant subsets of data for analysis. Kitsu provides a series of features that allow you to easily find what you are looking for. ## The Search Bar + ### Using the Search Bar to Create Filters In **Kitsu**, filters are set through the **search bar**. It allows you to **save** your search query. Once done, you can rerun your query with a simple click. -![Search bar](../img/getting-started/filter_search_bar.png) +![Search bar](/img/getting-started/filter_search_bar.png) You can find the **Search Bar**, **Filter Builder** and the **Save** option ![Search -bar](../img/getting-started/filter_save_button.png) in the following pages: +bar](/img/getting-started/filter_save_button.png) in the following pages: * Assets * Shots @@ -50,14 +51,14 @@ Kitsu expects to have thousands of elements, so to speed up the process, you mus For example, on the assets page, type the letter `Ot`, and you get the result of all the assets starting with an `Ot`. -![Search bar result](../img/getting-started/filter_autocompletion.png) +![Search bar result](/img/getting-started/filter_autocompletion.png) You can also search for some specific **type of asset**: `Props`, `Character`, `Environment`, `Fx` ... The result displays all the assets of this type. For example, let's search all the **FX** assets. -![Search asset type](../img/getting-started/filter_asset_type.png) +![Search asset type](/img/getting-started/filter_asset_type.png) Another example gets **shots page** of a specific **sequence**. For example, you can only see the shots of the second sequence of the first episode. @@ -65,7 +66,7 @@ For example, you can only see the shots of the second sequence of the first epis Select the first episode on the dropdown menu, then search `sq002`; the result  gets all the shots of all the episodes from sequence SQ002. -![Search bar sequence episode](../img/getting-started/filter_ep_seq.png) +![Search bar sequence episode](/img/getting-started/filter_ep_seq.png) In the same way, you can search **specific status** link to the task. @@ -95,17 +96,18 @@ You can do a mix of all the filters: ::: ## Creating Filters -### Utilising the Filter Builder + +### Using the Filter Builder The easiest way to achieve more advanced filtering is to use the filter builder. Click on the **Filter Builder** icon show below to get started. -![Filter build button](../img/getting-started/filter_builder.png) +![Filter build button](/img/getting-started/filter_builder.png) You can then use the interactive filter builder dialogue to create your desired filter criteria. -![Filter build button](../img/getting-started/filter_builder_example04.png) +![Filter build button](/img/getting-started/filter_builder_example04.png) -::: warning +::: warning The first option, **Match all the following filters**, will use all the options you select on the filter builder for the filtering: - Task Status @@ -121,7 +123,6 @@ The second option, **Match one of the following filters**, will skip the unavail ### Task Status Filtering - **Task Status** helps you filter a task type by status. - **Equal** will report all the tasks with this status on this task type @@ -133,13 +134,13 @@ You can use the **-** button to remove one of the statuses selected. You can use the **+** below the status to add more status. -![Filter build example 01](../img/getting-started/filter_builder_double_status.png) +![Filter build example 01](/img/getting-started/filter_builder_double_status.png) ::: tip If you want to filter the status of several task types, click on the **+** below the task status option on the left part of the screen. -![Filter build example 01](../img/getting-started/filter_builder_double_status01.png) +![Filter build example 01](/img/getting-started/filter_builder_double_status01.png) ::: @@ -151,13 +152,13 @@ The **Metadata** filter allows you to filter your page based on the information - **Not Equal** will report all the task **except** this information - **In** report all the tasks with all the information you've selected -![Filter build MEtadata](../img/getting-started/filter_builder_metadata.png) +![Filter build MEtadata](/img/getting-started/filter_builder_metadata.png) ::: tip If you want to filter elements on several Metadata, you can click on the **+** below the Metadata option on the left part of the screen. -![Filter build example 01](../img/getting-started/filter_builder_metadata2.png) +![Filter build example 01](/img/getting-started/filter_builder_metadata2.png) ::: @@ -190,11 +191,11 @@ Then you have the choice between: You can filter a task type with a specific level of priority. ::: tip -To learn more about priorities, see -[Change Priorities](../estimation/README.md#change-priorities) +To learn more about priorities, see +[Change Priorities](../estimation/index.md#change-priorities) ::: -First, select your task type, then you can choose between +First, select your task type, then you can choose between - **Normal** (the default level of priority) - **High** - **Very High** @@ -206,7 +207,6 @@ You can only filter priority on **ONE** Task type for **ONE** level of priority. You can not add several priority filters. ::: - ### Using the "Ready For" status Depending on whether you are filtering on the asset or shot global page, you can filter on the **Ready For** status. @@ -216,62 +216,56 @@ Depending on whether you are filtering on the asset or shot global page, you can On the shot page, you will check whether all the assets for these tasks are ready (see Create your production). ::: warning -You can only filter **Ready for**** on **ONE** Task type +You can only filter **Ready for**** on **ONE** Task type You can not add several **Ready For** filters. ::: - ## Managing Saved Filters Kitsu allows you to save any filter queries to be re-used later. You can save them by pressing the **Enter**, or click on the **Save** button -![Save button](../img/getting-started/filter_save_button.png). +![Save button](/img/getting-started/filter_save_button.png). Now, under the **search bar**, you can see your saved queries as buttons. -![Search saved](../img/getting-started/filter_saved.png) +![Search saved](/img/getting-started/filter_saved.png) ::: tip Notice the first icon on the left and the colored buttons. It allows you to Create a Filter Group. This way, you can keep your saved filters organized under a colored Group. -![Add A Filter Group](../img/getting-started/filter_group_new.png) +![Add A Filter Group](/img/getting-started/filter_group_new.png) ::: The buttons are there every time you return to this page. They help you run common queries faster. - - Once you have created your filter and saved it, it will appear as a button under the search bar. You can rename the filter with a more explicit choice of words. - The saved filter is quite long and hard to read. Hover your mouse over the saved filter. You will see two icons, one to edit and the other to delete. -![Search saved example edit](../img/getting-started/filter_edit.png) +![Search saved example edit](/img/getting-started/filter_edit.png) You can now change the name displayed in the **Name** section in the pop-up window. -![Edit filtered name](../img/getting-started/filter_edit_name.png) +![Edit filtered name](/img/getting-started/filter_edit_name.png) You can choose if you want to keep your saved queries in or out of a **Filtered Group** -![Filtered Group Example](../img/getting-started/filter_group_example.png) - +![Filtered Group Example](/img/getting-started/filter_group_example.png) ### Deleting a Filter If you have created a **filter button** by mistake, click on the cross next to -it ![Filter delete](../img/getting-started/filter_delete.png). +it ![Filter delete](/img/getting-started/filter_delete.png). The result of the filter is displayed, but the button is not. Just cancel your research by deleting the text or use the cross next to the Search -bar ![Search delete](../img/getting-started/filter_cross_delete.png) - +bar ![Search delete](/img/getting-started/filter_cross_delete.png) ### Pre-built Filters diff --git a/docs/guides/tracking-reporting/index.md b/docs/guides/tracking-reporting/index.md new file mode 100644 index 0000000000..dd56f22255 --- /dev/null +++ b/docs/guides/tracking-reporting/index.md @@ -0,0 +1,14 @@ +# Tracking & Reporting + +- [Ensure Tasks are On-Time](/guides/tracking-reporting/ensure-tasks-on-time/) - +- [Understand Why a Task Is Late](/guides/tracking-reporting/understand-why-late-task/) - +1. [Quotas](/guides/tracking-reporting/quotas/) - Learn how to check your team efficiency against estimates +- [Studio Overview](/guides/tracking-reporting/studio-overview/) - Ensure you're ahead of the game with your studio's productions. +- [Studio Occupancy](/guides/tracking-reporting/studio-occupancy/) - +- [Production Overview](/guides/tracking-reporting/production-overview/) - +- [Timesheets](/guides/tracking-reporting/timesheets/) - +- [Durations vs Estimates](/guides/tracking-reporting/durations-vs-estimates/) - +- [Advanced Search & Filters](/guides/tracking-reporting/filter/) - Hone in on key information with powerful search functionality. +- [Main Schedule](/guides/tracking-reporting/main-schedule/) - +- [Budget](/guides/tracking-reporting/budget/) - +- [Thumbnails](/guides/tracking-reporting/thumbnails/) - How to apply thumbnails to assets and shots. \ No newline at end of file diff --git a/docs/guides/tracking-reporting/main-schedule/index.md b/docs/guides/tracking-reporting/main-schedule/index.md new file mode 100644 index 0000000000..c98c5fcbce --- /dev/null +++ b/docs/guides/tracking-reporting/main-schedule/index.md @@ -0,0 +1,15 @@ +# Using the Main Schedule + +With the **Main Schedule**, you can access all the **Production Schedules** at once. + +![Main Schedule](/img/getting-started/main_schedule_fold.png) + +If you unfold a production, you will see the details of each **Task Type** used in that production. By unfolding multiple productions, you can which teams are being utilized simultaneously. + +![Main Schedule Unfolded](/img/getting-started/main_schedule_unfold.png) + +You can move each **Task Type Bar** to adjust the schedule to fit the studio's needs. + +::: warning +Each change you make will be applied to the Production Schedule. +::: diff --git a/docs/guides/tracking-reporting/production-overview/index.md b/docs/guides/tracking-reporting/production-overview/index.md new file mode 100644 index 0000000000..8d86e0bf2b --- /dev/null +++ b/docs/guides/tracking-reporting/production-overview/index.md @@ -0,0 +1,115 @@ +# Production Overview + +As a Producer, having a comprehensive overview of the entire production process is essential. + +Kitsu offers various tools to help you stay informed and manage production efficiently without getting overwhelmed by notifications or losing focus. + +## News Feed Features + +The news feed section show real-time updates relating to your production, including: + +- **Real-Time Updates**: View all status changes as they happen, minute by minute. +- **Summarized View**: The right part of the screen displays the total number of news items and a breakdown by status. +- **Filtering Options**: Filter the list by Task Status, Task Type, and Person to focus on specific areas. +- **Comment Panel**: Clicking on a line opens the comment panel on the right, providing all necessary details. + +![Newsfeed Page](/img/getting-started/newsfeed_comment_all.png) + +### Using Filters + +You can customize the time frame for displaying information using the **Filters Builder** button. This is useful for focusing on specific supervisors or time periods. + +![Newsfeed Page Detail](/img/getting-started/newsfeed_details.png) + +### Example + +If you want to focus on a supervisor for a specific month, select their name and pick a date in the **From** box. + +![Newsfeed Page Comment](/img/getting-started/newsfeed_comment_panel.png) + +## Know the Current State of the Production + +Understanding the current state of your production is crucial. Kitsu provides detailed statistics and visualizations to help you track progress effectively. + +### Short / Feature Specific + +We're going to look at some features that are specific to Short / Feature Film workflows. + +#### Sequence Stats + +The **Sequence Stats** page offers pie charts that depict the status of your production, sequence by sequence. The color scheme of the pie charts corresponds to the status, allowing you to quickly understand the state of your production. + +![Global View Sequence](/img/getting-started/global_view_sequence.png) + +- **All Sequences**: The first line represents the whole production. +- **All Tasks**: The first column includes all tasks simultaneously. + +By focusing on the first pie chart, you can see the exact state of your production. For more details, look at the rest of the line to get a global view of each task type's state. + +#### Asset Types Stats + +Similar to Sequence Stats, the **Asset Types Stats** page provides pie charts for asset types, giving you a clear view of the asset status across the production. + +![Global View Asset](/img/getting-started/global_view_asset.png) + +#### Count View + +You can also display data as **Counts** to see the exact number of assets, shots, or frames, along with their percentage per status. + +![Global View Sequence Counts](/img/getting-started/global_view_sequence_detail_count_stat.png) + +#### Exporting Data + +You can export this page as a `.csv` text file and import it into spreadsheet software for further analysis and reporting. + +By leveraging these tools, you can stay on top of the production process, ensuring everything runs smoothly and on schedule. + +### TV Show Specific + +You can access an extra information level on a TV show through the **Episodes Stats Page**. + +### Retakes Display + +The default setting for the **Episodes Stats** page is **Retakes**. This display lets you see the number of retakes (back and forth) for each episode on each task type. Only three colors are displayed: +- **Validated as Green** +- **Retakes as Red** +- **In progress as Grey** + +![Global View Episode](/img/getting-started/global_view_episode_retake.png) + +If you unfold an episode, you will see the percentage of each take and the evolution of the retakes versus approval. This helps you see the progress of each episode per task. + +![Global View Episode Unfold](/img/getting-started/global_view_episode_retake_detail.png) + +Usually, the first episodes have many back-and-forths, but it should get better over time. However, if late episodes still have many retakes, something must be fixed. It's time to discuss the issue with the director and the supervisor. + +### Status Display + +The second option for data display is **Status**. This status display works like the **Sequence** / **Asset Type** Stats page. + +![Global View Episode Status](/img/getting-started/global_view_episode_stat.png) + +You can also display data as **Counts**. This way, you'll see the exact number of shots/frames with the percentage per status. + +![Global View Episode Status Count](/img/getting-started/global_view_episode_stat_count.png) + +You can export this page as a `.csv` text file and import it into spreadsheet software. +  +## Production Report + +To ease the communication with the studio, you have direct access to the production report, separated into two parts: the **Sequence Stats** and the **Asset Types Stats** + +![Client dropdown menu sequence stat](/img/getting-started/client_dropdown_sequence.png) + +The **Sequence Stats** page is updated in real-time. Every time you look at this page, you are sure to have updated information. + +![Client sequence stat](/img/getting-started/client_sequence_stat.png) + +You can choose to display the stats per number of shots or number of frames. + +You can also change the **Display Mode**; you can switch from the **Pie charts** View +to the **Counts** view. + +![Client sequence stat count](/img/getting-started/client_sequence_stat_count.png) + +It's this presentation that you can download to keep track of the production progress. diff --git a/docs/guides/tracking-reporting/quotas/index.md b/docs/guides/tracking-reporting/quotas/index.md new file mode 100644 index 0000000000..f11d20aa11 --- /dev/null +++ b/docs/guides/tracking-reporting/quotas/index.md @@ -0,0 +1,66 @@ +# Quotas + +**Quotas** visualize your **team speed**. + +A quota refers to the specific amount of work or number of tasks an artist is expected to complete within a given timeframe, ensuring that the project progresses according to schedule and meets production deadlines. + +You can see on average how many shots, frames, or seconds the artist needs to complete daily to finish all tasks within the **estimated number of days**. + +Kitsu has two ways to calculate quotas per **task type**. + +## Quotas Based on Timesheets + +The first calculation method is based on daily timesheets filled out by the artists. + +Quotas are calculated from when the artist fills out their first timesheet on a task until they stop. + +Shots are considered complete when the first feedback request is made. + +Quotas are then weighted according to the time spent on the task, as recorded in the timesheet by the artist. + +![Quotas stat page day weighted](/img/getting-started/quotas_day_weighted.png) + +In this example, Kitsu weights the daily quota based on the timesheet entries. + +![Quotas stat page day weighted detail](/img/getting-started/quotas_day_weighted_detail.png) + +## Quotas Based on Status Changes + +If no timesheet is filled out, Kitsu uses status changes to estimate the duration: + +- The task is considered started when the first status change to WIP occurs. +- The task is considered completed on the day the feedback request (WFA status) is made. + +This is First Take quotas, meaning that back-and-forth comments are not included in the calculation. + +Kitsu then distributes the completed frames across all business days between the start and end dates. It calculates the number of frames (or seconds, or tasks) completed per day/week/month per artist. + +![Quotas stat page day status](/img/getting-started/quotas_day_status.png) + +You can click on a number at any time to see its details in the right panel. + +::: danger +**Note**: If no timesheet is filled, Kitsu defaults to considering: +- The task started with the first status change to WIP. +- The task was completed on the day the feedback request was made. +::: + +This method ensures that even in the absence of detailed timesheet data, there is a reliable way to track task progress and calculate quotas accurately. + +## Managing Department Quotas + +At the beginning of production, while setting estimates for each task, a supervisor can also define estimated quotas for each of their artists. + +Once a task is approved, the remaining line on the Estimation tab of the Task Type page will update and display the remaining number of tasks and the updated estimated quotas. + +You can monitor each team member to see if their estimated quotas stay within the initially established range. + +![Supervisor Estimated Quotas](/img/getting-started/supervisor_quotas_estimated.png) + +To check their **Actual Quotas**, go to the **Quotas** page. + +![Quotas](/img/getting-started/supervisor_quotas.png) + +The first column, **Average**, is the most important. Kitsu calculates the average quotas for each artist per **Day**, **Week**, or **Month**. + +![Weekly Quotas](/img/getting-started/supervisor_quotas_week.png) \ No newline at end of file diff --git a/docs/guides/tracking-reporting/studio-occupancy/index.md b/docs/guides/tracking-reporting/studio-occupancy/index.md new file mode 100644 index 0000000000..b65ca409f4 --- /dev/null +++ b/docs/guides/tracking-reporting/studio-occupancy/index.md @@ -0,0 +1,19 @@ +# Studio Occupancy Rate + +The **Team Schedule** allows you to see all artists with assigned tasks. Each row represents an artist, and unfolding an artist's row will show the details of their tasks. + +![Team Schedule](/img/getting-started/team_schedule_global.png) + +## Focusing on Specific Timeframes + +You can focus on a specific timeframe by setting the **Start** and **End Date**. Adjust the zoom level to get more detailed information on the assigned tasks. You can choose to see all **Departments** or only a specific one and focus on a single **Person**. + +If an artist has several tasks on the same day, the tasks will be piled up, with **one line for each task**. + +![Team Schedule Filtered](/img/getting-started/team_schedule_filtered.png) + +## Modifying the Schedule + +You can move tasks around by grabbing them and placing them on another day. Any changes you make on the Team Schedule will be applied to the task type schedule. + +If an artist has a break between two tasks, the sum-up line will not break to show it. Instead, it shows the first and last tasks assigned to the artist. diff --git a/docs/studio-report/README.md b/docs/guides/tracking-reporting/studio-overview/index.md similarity index 52% rename from docs/studio-report/README.md rename to docs/guides/tracking-reporting/studio-overview/index.md index 96ca6ace38..4a2daed0f7 100644 --- a/docs/studio-report/README.md +++ b/docs/guides/tracking-reporting/studio-overview/index.md @@ -1,6 +1,4 @@ -# Building Studio Reports - -## Studio Resource Overview +# Studio Resource Overview As a Producer, you need to know everything. @@ -10,7 +8,7 @@ The perfect solution is to have all the production stats on one page, always up- Welcome to the **All Tasks** page. -![Newsfeed Studio Page](../img/getting-started/all_tasks_stat.png) +![Newsfeed Studio Page](/img/getting-started/all_tasks_stat.png) Here, you can see the status of all productions at once. You can filter the list by **Production**, **Task Status**, **Task Type**, and **Person**. Clicking on a line opens the comment panel on the right, providing all the information you need. @@ -18,18 +16,18 @@ If you need more detailed information, especially about a specific timeframe, yo With the **Filters Builder** button, you can define a specific time frame. -![Newsfeed Studio detailed Page](../img/getting-started/newsfeed_studio_detail.png) +![Newsfeed Studio detailed Page](/img/getting-started/newsfeed_studio_detail.png) For example, if you want to focus on the workload a supervisor for a specific month, select their name and then pick a date in the **From** box. -## Current State of All Productions +## Current State of All Productions To ensure your studio functions smoothly, you need to stay on top of all ongoing productions. This is where the **Productions** section can help. Access it from the global menu under the **Studio** section. From there, click on the **Load stats** button to see the current state of your productions. -![Productions Stats](../img/getting-started/production_stat.png) +![Productions Stats](/img/getting-started/production_stat.png) For more detailed information, visit the **Sequence Stats** and **Asset Types Stats** pages of all the productions. @@ -39,58 +37,20 @@ The **Sequence Stats** page provides pie charts of the entire production on a si The first line is **all sequences**, representing the whole production, and the first column, **All**, includes all the tasks simultaneously. -![Sequence Stat Page](../img/getting-started/global_view_sequence.png) +![Sequence Stat Page](/img/getting-started/global_view_sequence.png) By focusing on this first pie chart, you can see the exact state of your production. For more details, look at the rest of the line for a global view of each task type's state. The **Asset Types Stats** page provides the same level of detail for assets. -![Asset Type Stat Page](../img/getting-started/global_view_asset.png) +![Asset Type Stat Page](/img/getting-started/global_view_asset.png) You can also display data as **Counts**, showing the exact number of shots/frames with the percentage per status. -![Asset count Stat Page](../img/getting-started/global_view_asset_detail.png) +![Asset count Stat Page](/img/getting-started/global_view_asset_detail.png) You can also export this page as a `.csv` text file to import it into spreadsheet software. Navigate from production to production using the **Navigation** menu at the top of the screen. You will stay on the same page, allowing you to check all the production stats by selecting each production. -![Sequence Stat Navigation](../img/getting-started/global_sequence_navigation.png) - - -## Studio Occupancy Rate - -The **Team Schedule** allows you to see all artists with assigned tasks. Each row represents an artist, and unfolding an artist's row will show the details of their tasks. - -![Team Schedule](../img/getting-started/team_schedule_global.png) - -### Focusing on Specific Timeframes - -You can focus on a specific timeframe by setting the **Start** and **End Date**. Adjust the zoom level to get more detailed information on the assigned tasks. You can choose to see all **Departments** or only a specific one and focus on a single **Person**. - -If an artist has several tasks on the same day, the tasks will be piled up, with **one line for each task**. - -![Team Schedule Filtered](../img/getting-started/team_schedule_filtered.png) - -### Modifying the Schedule - -You can move tasks around by grabbing them and placing them on another day. Any changes you make on the Team Schedule will be applied to the task type schedule. - -If an artist has a break between two tasks, the sum-up line will not break to show it. Instead, it shows the first and last tasks assigned to the artist. - - -## Utilize the Main Schedule - -With the **Main Schedule**, you can access all the **Production Schedules** at once. - -![Main Schedule](../img/getting-started/main_schedule_fold.png) - -If you unfold a production, you will see the details of each **Task Type** used in that production. By unfolding multiple productions, you can which teams are being utilized simultaneously. - -![Main Schedule Unfolded](../img/getting-started/main_schedule_unfold.png) - -You can move each **Task Type Bar** to adjust the schedule to fit the studio's needs. - -::: warning -Each change you make will be applied to the Production Schedule. -::: +![Sequence Stat Navigation](/img/getting-started/global_sequence_navigation.png) diff --git a/docs/thumbnails/README.md b/docs/guides/tracking-reporting/thumbnails/index.md similarity index 73% rename from docs/thumbnails/README.md rename to docs/guides/tracking-reporting/thumbnails/index.md index ebc8bb4286..d72369001e 100644 --- a/docs/thumbnails/README.md +++ b/docs/guides/tracking-reporting/thumbnails/index.md @@ -1,34 +1,35 @@ # Thumbnails + ## Add Thumbnails Manually To define a preview as a thumbnail, the preview MUST have been uploaded as a revision. Click on the status you want on the list page, then click the **Preview** button (1) on the right panel. -![Thumbnail Button](../img/getting-started/pannel_history.png) +![Thumbnail Button](/img/getting-started/pannel_history.png) Once you click on the button, you can choose to pick the first or any frame. Once the frame is selected, the thumbnail appears, and the button turns gray. -![Thumbnail Applied](../img/getting-started/pannel_history_thumbnail.png) +![Thumbnail Applied](/img/getting-started/pannel_history_thumbnail.png) ## Add Thumbnails Automatically If you prefer to have your thumbnails populate automatically, you can navigate to the settings page from the production using the navigation menu. -![Settings Menu](../img/getting-started/drop_down_menu_setting.png) +![Settings Menu](/img/getting-started/drop_down_menu_setting.png) On the **Parameters** tab, select **set new preview as entity thumbnail automatically**. -![Settings Preview Auto](../img/getting-started/setting_preview_auto.png) +![Settings Preview Auto](/img/getting-started/setting_preview_auto.png) Don't forget to **Save** changes when you are done. Now, as soon as you upload a preview, it will be used automatically as a thumbnail. ## Batch Upload Previews (as Thumbnails) -Use the **Add Thumbnails** button ![Add Thumbnails Button](../img/getting-started/add_thumbnails.png) on the global page to import thumbnails in bulk. +Use the **Add Thumbnails** button ![Add Thumbnails Button](/img/getting-started/add_thumbnails.png) on the global page to import thumbnails in bulk. -![History](../img/getting-started/add_thumbnails_menu.png) +![History](/img/getting-started/add_thumbnails_menu.png) A new pop-up opens and asks you to choose which task types the thumbnails are linked to. diff --git a/docs/guides/tracking-reporting/timesheets/index.md b/docs/guides/tracking-reporting/timesheets/index.md new file mode 100644 index 0000000000..aea29e6321 --- /dev/null +++ b/docs/guides/tracking-reporting/timesheets/index.md @@ -0,0 +1,54 @@ +# Team Timesheets + +::: warning +All of the previous chapters are based on the fact that **Estimation** and **Duration** are filled for each task. +::: + +Everybody has to do their part. You and the supervisor will handle the estimation, while your team will fill out their timesheets. + +Navigate to the main menu and select the Timesheet page. + +![Timesheet Global Day](/img/getting-started/timesheet_day.png) + +### Viewing Timesheets + +On this page, you can view each team member's timesheet by day. This allows you to check whether they fill it out daily, took a day off, or worked extra hours. + +If you have a question about a timesheet entry, click on it to see the details of the production, task type, and specific task. + +![Timesheet Detail Day](/img/getting-started/timesheet_detail.png) + +Once everything looks good at the day level, you can change the **Detail Level** from Day to Week, Month, or Year. + +![Timesheet Global Week](/img/getting-started/timesheet_week.png) + +You can view all the productions you manage simultaneously or look at each production individually. + +### Exporting Timesheets + +As with all other pages in Kitsu, you can export the timesheet data as a CSV file and open it in spreadsheet software for further analysis. + +## Complete Your Timesheet + +If your production requires it, you can log your time spent using the **Timesheets** tab or the **Timesheets** shortcut button at the top of the screen. + +### How to Log Time: +- Use the slider next to each task to record hours spent. +- For quick input, use the **1**, **4**, or **8 hours** buttons. + +![Timesheet view](/img/getting-started/timesheets.png) + +### Missed a Day? +Click the date picker to backfill entries. You can also mark days as **Day Off** if you weren't working on that day. + +![Backfill timesheets](/img/getting-started/timesheet_change_date.png) + +## Department Timesheets + +As a Supervisor, you may also be responsible for monitoring your team's hours. The Timesheet page shows how many hours they work daily, weekly, and monthly. + +![Timesheet](/img/getting-started/supervisor_timesheet_team.png) + +It's important to highlight abnormal patterns such as extra hours, sick days, or lack of vacation. The timesheet view can provide a high-level overview of where artists are spending their time, which can help you take care of your team to ensure they are not burning out. + +![Timesheet Detailed](/img/getting-started/supervisor_timesheet_team_detail.png) diff --git a/docs/guides/tracking-reporting/understand-why-late-task/index.md b/docs/guides/tracking-reporting/understand-why-late-task/index.md new file mode 100644 index 0000000000..0230041335 --- /dev/null +++ b/docs/guides/tracking-reporting/understand-why-late-task/index.md @@ -0,0 +1,36 @@ +# Understanding Why a Task is Late + +Now that you know which tasks are late or will be late, you need to understand **why**. There are several reasons why a task might be late: + +- The artist is overwhelmed with too many tasks. +- There is too much back-and-forth on the task. +- The task might be underestimated, making it difficult to finish on time. +- The previous task was already late. + +### Checking an Artist's Workload + +To check an artist's number of tasks, filter the **Task Type** page by the artist's name under the **Task** tab. + +![Task Type Artist](/img/getting-started/task_type_artist.png) + +You can also add the **-done** filter to see what the artist has left to do. Then add the **Due Date Status** filter to **Due previous week** or **Due this week**, depending on what you are looking for. + +![Task Type Artist Filtered](/img/getting-started/task_type_artist_filtered.png) + +This will show you how many tasks your artist has to complete. + +### Identifying Back-and-Forth + +To identify the number of back-and-forths, look at the Retakes column on the Tasks tab. Each **Red Dot** represents a **retake**. Click on the line to open the **Comment panel** and read the entire task history. This is the best way to understand what is happening—whether the artist misunderstood the brief or if the brief changed with each version. + +![Task Type Retake](/img/getting-started/task_type_retake.png) + +### Checking if the Task is Underestimated + +To check if the task is underestimated, go back to the global page, click on the name of the shot or asset, and see the casting and all the extra information. For example, there might be too many characters in the scene, or it might be a big action scene. + +![Shot Detail Casting](/img/getting-started/shot_detail_casting.png) + +### Checking the Previous Task + +Lastly, you can check the previous task while viewing the asset/shot in detail. Click on it to go to the dedicated **Task Type** page, where you can find detailed information about what was happening before. This can help you understand if delays in earlier tasks are affecting the current one. diff --git a/docs/img/activitylogs.jpg b/docs/img/activitylogs.jpg new file mode 100644 index 0000000000..88019bf89c Binary files /dev/null and b/docs/img/activitylogs.jpg differ diff --git a/docs/img/loginlogs.jpg b/docs/img/loginlogs.jpg new file mode 100644 index 0000000000..b0631e95f8 Binary files /dev/null and b/docs/img/loginlogs.jpg differ diff --git a/docs/img/openid.webp b/docs/img/openid.webp new file mode 100644 index 0000000000..32e8818476 Binary files /dev/null and b/docs/img/openid.webp differ diff --git a/docs/img/previewlogs.jpg b/docs/img/previewlogs.jpg new file mode 100644 index 0000000000..73ddcf3bae Binary files /dev/null and b/docs/img/previewlogs.jpg differ diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000000..083281c42c --- /dev/null +++ b/docs/index.md @@ -0,0 +1,140 @@ +--- +prev: + text: '' + link: '' +next: + text: 'Getting Started' + link: '/start-here/getting-started' +--- + + + +![Kitsu Banner](./img/kitsu-banner.png#logo-kitsu) + +# Kitsu Documentation + +[Kitsu](https://cg-wire.com/kitsu) is a collaboration platform for animation and VFX productions. Through its clean UI and shared database, it connects all relevant stakeholders throughout the production process, including artists, production managers, supervisors, vendors, and clients. + +## Start Here + +Here are some links to familiarize yourself with the basic concepts in Kitsu you'll need to be successful with your production: + +- [Getting Started](/start-here/getting-started/) - Learn key principles and common vocabulary terms used within Kitsu to better plan your production workflow. + +- [Quickstart for TV Shows](/recipes/for-tvshows/) - Create a TV show production with assets, shots, sequences, episodes and edits. +- [Quickstart for Feature Films](/recipes/for-feature-films/) - Create a feature film production (approximately 1 000 entities) with assets, shots, sequences and edit. +- [Quickstart for Shorts](/recipes/for-shorts/) - Create a short production (approximately 500 assets and shots) with assets, shots, sequences and edit. +- [Quickstart for Video Games](/recipes/for-videogames/) - Create a Video game production with Assets, Maps, Level and Chapters. +- [Quickstart for NFTs](/recipes/for-nfts/) - Create a NFT Collection with Assets and NFT Collections. +- [Quickstart for Shots-Only Productions](/recipes/shots-only-production/) - Create a short production (about 500 shots) with only shots, sequences and edit. +- [Quickstart for Assets-Only Productions](/recipes/assets-only-production/) - Create a short production (about 500 assets) with only assets. + +## Workflows + +- [For Supervisors](/workflows/for-supervisors/) - +- [For Producers](/workflows/for-producers/) - +- [For Artists](/workflows/for-artists/) - +- [For Clients](/workflows/for-clients/) - +- [For Developers](https://dev.kitsu.cloud/) - + +## Guides + +### Team Management + +- [Managing Departments](/guides/team-management/managing-departments/) - Discover methods for effectively managing and overseeing your team. +- [Managing Teams](/guides/team-management/managing-teams/) - +- [User Permission Roles](/guides/team-management/team-roles/) - +- [Import Team](/guides/team-management/import-team/) - +- [User Profile Settings](/guides/team-management/profile-settings/) - + +### Task Management + +- [Manage Studios](/guides/task-management/manage-studios/) - +- [Manage Productions](/guides/task-management/manage-productions/) - +- [Manage Episodes](/guides/task-management/manage-episodes/) - +- [Manage Sequences](/guides/task-management/manage-sequences/) - +- [Manage Shots](/guides/task-management/manage-shots/) - +- [Manage Asset Types](/guides/task-management/managing-asset-types/) - +- [Manage Task Types](/guides/task-management/managing-task-types/) - +- [Manage Task Statuses](/guides/task-management/managing-task-statuses/) - +- [Manage Edits](/guides/task-management/manage-edits/) - + +### Pre-Production + +- [Manage Concepts](/guides/pre-production/manage-concepts/) - +- [Manage Assets](/guides/pre-production/manage-assets/) - +- [Breakdown & Casting](/guides/pre-production/breakdown-casting/) - +- [Meta-Columns](/guides/pre-production/meta-column/) - Learn how to create and organize metadata from your production. + +### Scheduling + +- [Assign Tasks](/guides/scheduling/assign-tasks/) - Learn how to assign people to a task. +- [Find Assignments](/guides/scheduling/find-assignments/) - Learn how to stay on top of task assignments. +- [Schedules](/guides/scheduling/schedules/) - Discover the different scheduling capabilities in Kitsu, from the studio level to the task level. +- [Estimates](/guides/scheduling/estimates/) - Learn how to calculate the number of days estimated to do a task (bids). + +### Review & Publishing + +- [Update Task Progress](/guides/review-publishing/update-task-progress/) - How to change statuses and keep your team updated on the progress of work. +- [Publish](/guides/review-publishing/publish/) - How to publish and share work with your team. +- [Request Review](/guides/review-publishing/request-review/) - +- [Review](/guides/review-publishing/review/) - Learn how to review all feedback on a task. +- [Playlist](/guides/review-publishing/playlist/) - Quickly gather video versions and stay focused during the review. +- [Client Playlist](/guides/review-publishing/client-playlist/) - Collect and share your work with your client in a managed environment. + +### Tracking & Reporting + +- [Ensure Tasks are On-Time](/guides/tracking-reporting/ensure-tasks-on-time/) - +- [Understand Why a Task Is Late](/guides/tracking-reporting/understand-why-late-task/) - +- [Quotas](/guides/tracking-reporting/quotas/) - Learn how to check your team efficiency. +- [Studio Overview](/guides/tracking-reporting/studio-overview/) - Ensure you're ahead of the game with your studio's productions. +- [Studio Occupancy](/guides/tracking-reporting/studio-occupancy/) - +- [Production Overview](/guides/tracking-reporting/production-overview/) - +- [Timesheets](/guides/tracking-reporting/timesheets/) - +- [Durations vs Estimates](/guides/tracking-reporting/durations-vs-estimates/) - +- [Advanced Search & Filters](/guides/tracking-reporting/filter/) - Hone in on key information with powerful search functionality. +- [Main Schedule](/guides/tracking-reporting/main-schedule/) - +- [Budget](/guides/tracking-reporting/budget/) - +- [Thumbnails](/guides/tracking-reporting/thumbnails/) - How to apply thumbnails to assets and shots. + +### Privacy & Security + +- [Authentication](/guides/privacy-security/authentication/) - +- [Logs](/guides/privacy-security/logs/) - + +## Recipes + +- [3D Background](/recipes/3d-background/) - + +## Resources + +- [Frequently Asked Questions](/resources/faq/) - +- [Changelog](https://cgwire.canny.io/changelog) - + +## Tutorials + +Access comprehensive video tutorials on YouTube, highlighting crucial functionalities of Kitsu. Click the link below to view. + +[Kitsu Tutorials Channel](https://www.youtube.com/playlist?list=PLp_1gB5ZBHXqnQgZ4TCrAt7smxesaDo29) + +## About the Authors + +Kitsu is written by CG Wire, a company based in France. We help animation studios to manage their productions and build efficient pipelines. + +We adhere to software craftsmanship principles whenever feasible. Our passion for coding is reflected in our commitment to delivering robust quality and providing an exceptional developer experience. With our extensive expertise, we help studios navigate the complexities of production, fostering more efficient collaboration, quicker delivery, resulting in better pictures. + +Visit [cg-wire.com](https://cg-wire.com) for more information. + +[![CG Wire Logo](./img/cgwire.png#logo-cgwire)](https://cg-wire.com) diff --git a/docs/installation/README.md b/docs/installation/README.md deleted file mode 100644 index fddfa32e83..0000000000 --- a/docs/installation/README.md +++ /dev/null @@ -1,98 +0,0 @@ -# Open Source Setup - -## Cloud Hosting - -If your version of Kitsu is hosted and maintained by CGWire, you don't have anything to install. Simply connect to the URL provided to you to start using Kitsu! - -## Self-Hosting - -To run properly, Kitsu requires Zou, the database API. Information related to the installation of both modules is located in the Zou installation documentation. - -* [Deploying Zou](https://zou.cg-wire.com/) -* [Deploying Kitsu](https://zou.cg-wire.com/#deploying-kitsu) - -If you have technical skills, you can run Kitsu/Zou through Docker to try it out: - -```shell -docker run -d -p 80:80 --name cgwire cgwire/cgwire -``` - -Then you can access Kitsu through [http://localhost](http://localhost). - -## Development Environment - -### Prerequisites - -Prior to setting up the Kitsu development environment, make sure you have the following elements installed: - -* [Node.js](https://nodejs.org) >= 20.18 -* A [Zou development instance](https://zou.cg-wire.com/development/) up and running on port 5000 -* A [Zou Events development instance](https://zou.cg-wire.com/development/) up and running on port 5001 (optional) - -### Using Docker Image - -You can use our [Docker image](https://hub.docker.com/r/cgwire/cgwire), but you will need to set two environment variables: - -* `KITSU_API_TARGET` (default: http://localhost:5000): The URL where the API can be reached. -* `KITSU_EVENT_TARGET` (default: http://localhost:5001): The URL where the event stream can be reached. - -In that case, run the development environment with the following command: - -```shell -KITSU_API_TARGET=http://localhost/api KITSU_EVENT_TARGET=http://localhost npm run dev -``` - -The credentials for the Docker image are: admin@example.com / mysecretpassword - -## Development - -To start modifying Kitsu, clone the repository: - -```shell -git clone https://github.com/cgwire/kitsu.git -``` - -Then download the dependencies: - -```shell -cd kitsu -npm install -``` - -Finally, start the development environment and view the results at `http://localhost:8080`: - -```shell -npm run dev -``` - -Any changes will automatically update the page. - -## Build - -To build your code, run this command: - -```shell -npm run build -``` - -## Tests - -Run tests with the following command: - -```shell -npm run test:unit -``` - -## Architecture - -Kitsu is based on the [Vue.js](https://vuejs.org/guide/) framework. The Vue.js documentation is exhaustive and very clear. We encourage you to read it before making significant changes to the code. - -The architecture is based on [Vuex](https://vuex.vuejs.org) and [vue-router](https://router.vuejs.org). Their documentation is also very good, and we recommend reading it. The main idea is that: - -* URL routes give the main context. -* Views are described in components through HTML, CSS, and small pieces of JavaScript. -* Shared state is stored inside stores, which are modified through mutations (a kind of event bus to request state changes) and actions. -* Actions are similar to mutations but allow asynchronous operations. Mainly, actions fire mutations and send requests to the server. -* Stores provide getters to access state properties from components. -* Local change logic is kept inside components. -* Getters, actions, and mutations must be testable without a browser. diff --git a/docs/ja/README.md b/docs/ja/README.md deleted file mode 100644 index 29846f419d..0000000000 --- a/docs/ja/README.md +++ /dev/null @@ -1,114 +0,0 @@ - - -![Kitsu Banner](../img/kitsu-banner.png#logo-kitsu) - -# Kitsu ドキュメント - -[Kitsu](https://cg-wire.com/kitsu) は、アニメーションおよび VFX 制作のためのコラボレーションプラットフォームです。 そのクリーンな UI と共有データベースを通じて、アーティスト、制作マネージャー、スーパーバイザー、ベンダー、クライアントなど、制作プロセスに関わるすべての関係者を結びつけます。 - -### Kitsuの紹介 - -制作を成功させるために必要なKitsuの基本的なコンセプトを理解するためのリンクをいくつかご紹介します。 - -* [Getting Started With Kitsu](configure-kitsu/README.md): Kitsuで使用される主な原則と一般的な用語を学び、制作ワークフローをよりよく計画しましょう。 -* [Preparing Your Team](team/README.md): チームメンバーを準備し、各メンバーの部署と権限を定義します。 - -### 制作物の作成 - -以下では、作成を検討している制作物の種類に合わせたガイドをご覧いただけます。 - -* [テレビ番組制作物の作成](tvshow/README.md) アセット、ショット、シーケンス、エピソード、編集を使用してテレビ番組制作物を作成します -* [長編映画制作物の作成](feature/README.md) アセット、ショット、シーケンス、編集を使用して長編映画制作物(約1,000エンティティ)を作成します。 -* [ショート制作の作成](short/README.md): ショート制作(約500のアセットとショット)を、アセット、ショット、シーケンス、編集で作成します。 -* [ショットのみの制作の作成](short-shot/README.md) ショート制作(約500ショット)を、ショット、シーケンス、編集のみで作成します -* [アセットのみの制作を作成する](short-asset/README.md) アセットのみを使用した短い制作(約500アセット)を作成します。 -* [ビデオゲーム制作を作成する](videogame/README.md) アセット、マップ、レベル、チャプター(テレビ番組として)を使用したビデオゲーム制作を作成します。 -* [NFTコレクションを作成する](nft/README.md) アセットとNFTコレクションを使用したNFTコレクションを作成します。 - -### メタカラム、フィルター、制作設定 - -* [メタカラム](meta-column/README.md): 制作物のメタデータの作成と整理方法について学びます。 -* [フィルター](filter/README.md): 強力な検索機能で重要な情報に絞り込みます -* [制作固有のワークフロー設定](configure-prod/README.md): さまざまな強力な設定で、特定の制作物を好みに合わせて微調整します。 - -### 割り当て、見積もり、スケジュール - -このセクションでは、Kitsuの主な使用例をいくつかご紹介します。 - -* [タスクの割り当て](assignation/README.md): チームに誰かを追加し、タスクを割り当てる方法を学びます。 -* [見積もり & チームのノルマ](estimation/README.md): タスクの完了までに必要な日数(入札)を計算する方法と、チームの効率性を確認する方法を学びます。 -* [スケジュール](schedules/README.md): スタジオレベルからタスクレベルまで、Kitsuのさまざまなスケジュール機能を確認できます。 - -### ステータス、公開、サムネイル - -作業を整理し、チームにその進捗状況を通知する方法 - -* [ステータスとフィードバック](status/README.md): ステータスの変更方法と、作業の進捗状況をチームに知らせる方法。 -* [公開](publish/README.md): 作業を公開し、チームと共有する方法。 -* [サムネイル](thumbnails/README.md): アセットとショットにサムネイルを適用する方法。 - -### 社内レビューとクライアントのプレイリスト - -社内および社外レビューの整理方法: - -* [レビュー](review/README.md): タスクに関するすべてのフィードバックを確認する方法を学びましょう。 -* [デイリーおよびウィークリーレビュー](review-weekly/README.md): ビデオ版を素早く収集し、レビューに集中しましょう。 -* [クライアント用プレイリスト](playlist-client/README.md): 管理された環境でクライアントと作業を収集し、共有しましょう。 - - -### スーパーバイザーのワークフロー - -スーパーバイザーの場合、Kitsu を使用する際のユースケースは制作チームの場合とは異なる場合があります。 - -* [部署の管理](supervisor-team/README.md): チームを効果的に管理し監督する方法を発見します。 -* [タスクの監督](supervisor-tasks/README.md): タスクの割り当てを常に把握する方法を学びます。 - -### プロデューサーのワークフロー - -プロデューサーとして、詳細から全体像へと視点を移す能力を習得することは不可欠です。 - -* [制作レポートの作成](production-report/README.md): 制作レポートを作成するために必要なすべてを学びましょう。 -* [スタジオレポートの作成](studio-report/README.md): スタジオの制作で常に一歩先を行くために。 - - -### 開発者のワークフロー - -開発者の方は、スタジオのパイプライン内でKitsuを拡張および統合するための可能性について、いくつかご確認ください。 - -* [カスタムアクション](custom-actions/README.md): カスタムアクションは、現在のKitsuの選択からカスタムエンドに情報を送信するシンプルなHTTPリクエストです。 -* [Bots](bots/README.md): 主な用途は、gazu(KitsuのPythonクライアント)を使用したスクリプト作成、および当社のAPIを使用できるその他の用途です。 -* [Kitsu Publisher](publisher/README.md): 制作の進捗状況を共有し、配信を検証するために使用するウェブアプリケーションです。 -* [チャット統合](chat-integration/README.md): Discord、Slack、Mattermostなどの人気メッセージングアプリに直接Kitsuの通知を受け取ることができます。 -* [オープンソースセットアップ](installation/README.md): スタジオ環境内でローカルバージョンのKitsuをセルフデプロイする方法について学びます。 - - - - -### チュートリアル - -Kitsuの重要な機能に焦点を当てた、YouTubeの包括的なビデオチュートリアルにアクセスできます。下記リンクをクリックしてご覧ください。 - -[Kitsuチュートリアルチャンネル](https://www.youtube.com/playlist?list=PLp_1gB5ZBHXqnQgZ4TCrAt7smxesaDo29) - - -### 著者について - -Kitsuは、フランスに拠点を置くCG Wire社によって開発されました。当社は、アニメーションスタジオの制作管理と効率的なパイプライン構築を支援しています。 - -可能な限り、ソフトウェア職人の原則に従っています。当社のコーディングに対する情熱は、堅牢な品質の提供と優れた開発者体験の提供に対する当社の取り組みに反映されています。当社の幅広い専門知識を活用し、スタジオが制作の複雑性を克服し、より効率的なコラボレーション、より迅速な納品を実現し、より優れた画像の制作を支援しています。 - -詳細については、[cg-wire.com](https://cg-wire.com)をご覧ください。 - -[![CG Wire ロゴ](./img/cgwire.png#logo-cgwire)](https://cg-wire.com) diff --git a/docs/ja/artist/README.md b/docs/ja/artist/index.md similarity index 100% rename from docs/ja/artist/README.md rename to docs/ja/artist/index.md diff --git a/docs/ja/assignation/README.md b/docs/ja/assignation/index.md similarity index 95% rename from docs/ja/assignation/README.md rename to docs/ja/assignation/index.md index 4e65b81ccf..2bd935a8a5 100644 --- a/docs/ja/assignation/README.md +++ b/docs/ja/assignation/index.md @@ -15,7 +15,7 @@ ## チームにユーザーを追加する -チームの準備に関するセクション](../team/README.md)では、Kitsuにユーザーを追加する方法、そのユーザーの権限レベルを設定する方法、およびユーザーを部署にリンクする方法について説明しています。 +チームの準備に関するセクション](../team)では、Kitsuにユーザーを追加する方法、そのユーザーの権限レベルを設定する方法、およびユーザーを部署にリンクする方法について説明しています。 ::: ヒント ユーザーにタスクを割り当てるには、まずそのユーザーをプロダクションに追加する必要があります。プロダクション外のユーザーにはタスクを割り当てることができないことにご注意ください。 diff --git a/docs/ja/bots/README.md b/docs/ja/bots/README.md deleted file mode 100644 index 39ab927b9b..0000000000 --- a/docs/ja/bots/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# ボット - -Kitsuのボットは、自動化されたタスクを実行できる非物理的なユーザーです。これにより、実際のユーザーとしてログインすることなく、スクリプトを実行したり、KitsuのAPIとやりとりしたりすることができます。 - -::: ヒント -ボットはアクティブユーザーとしてカウントされないため、契約プランに関係なく、必要な数だけ作成することができます。 -:::B - -## ボットを使用する理由 - -ボットの主な用途は、Gazu や Kitsu API を使用できるその他のアプリケーションでのスクリプト作成です。ボットは、実ユーザーに限定されているものを除き、ほぼすべての API ルートにアクセスできます。 - -主な利点:** -- 自動化されたタスクやスクリプトの実行 -- Kitsu API とのやりとり -- トークンを使用することでシステムセキュリティを維持 - -## ボットの作成方法 - -::: 警告 -初めてボットを作成すると、**JWTトークン**が発行されます。このトークンはAPIへの接続に不可欠ですので、安全に保管してください。 -::: - -1. **ボットページに移動します。**メインメニューの管理セクションで、ボットページに移動します。 - -![メインメニューボット](../img/getting-started/main_menu_bots.png) - -2. **新しいボットを追加:** [新しいボット] ボタンをクリックします。 ![新しいボット](../img/getting-started/add_new_bot.png) ポップアップウィンドウが表示され、ボットの詳細を入力できます。 - -- **名前:** ボットに名前を付けます。 -- **有効期限:** 必要に応じて有効期限を設定します。 -- **部署:** ボットを特定の部署にリンクします。 -- **役割:** ボットの役割を定義します。 -- **アクティブ:** ボットをアクティブにするか非アクティブにするかを選択します。 - -![ボットの作成例](../img/getting-started/add_new_bot_pop.png) - -3. **ボットの作成:** 詳細を入力し、**ユーザー作成**をクリックします。 - -![ボット作成例](../img/getting-started/bot_example.png) - -新しいポップアップにボットの**APIトークン**が表示されます。 - -![ボットトークン例](../img/getting-started/bot_token.png) - -## ボットの管理 - -ボットページでは、他のユーザーと同様に、ボットを管理することができます。例えば、以下の操作が可能です。 -- 役割の割り当て -- 有効期限の設定 -- ステータスの変更(アクティブまたは非アクティブ - -## ボットの使用例 - -以下は、ボットを使用してプロジェクト**MyProduction**全体を取得するためのスクリプトの例です。 - -```js -import gazu -gazu.set_host(「yourkitsu.cg-wire.com/api/」) -gazu.set_token(「my_jwt_token」) -p = gazu.project.get_project_by_name(「MyProduction」) -``` - -このスクリプトは、実際のユーザーのログイン認証情報を使用せずに、ボットを使用してKitsu APIとやりとりする方法を示しています。必要に応じて、コメントを公開するボットがある場合は、そのボットに実際のユーザーと同じ権限を付与して、権限を考慮することができます。 - -## セキュリティに関する考慮事項 - -ボットのトークンが侵害された場合は、新しいトークンを再生成することで、古いトークンを無効にすることができ、システムのセキュリティを確保することができます。 diff --git a/docs/ja/chat-integration/README.md b/docs/ja/chat-integration/README.md deleted file mode 100644 index 69c660c10b..0000000000 --- a/docs/ja/chat-integration/README.md +++ /dev/null @@ -1,183 +0,0 @@ -# チャットの統合 - -## Discordの統合 - -### ボットアカウントの作成 - -1. [Discordウェブサイト](https://discord.com/)にログインしていることを確認してください。 -2. [アプリケーションページ](https://discord.com/developers/applications)に移動します。 -3. 「新規アプリケーション」ボタンをクリックします。 -4. アプリケーションに名前を付け(例:「Kitsu」)、「作成」をクリックします。 - -![アプリケーションの作成](../img/discord/create_application.png) - -5. 「Bot」タブに移動し、「Add Bot」をクリックして、Botユーザーを作成します。 -「Yes, do it!」をクリックして続行します。 - -![ボットの作成](../img/discord/create_bot_user.png) - -6. 「Username」の隣にあるアイコンをクリックすると、ボットのアイコンを追加できます。このアイコンはボットがチャットを行う際に使用されます。 - -7. 他のユーザーにボットを招待してもらいたい場合は、「Public Bot」にチェックが入っていることを確認してください。 - -![Public Botにチェックが入っている](../img/discord/public_bot.png) - -8. ボットが他のメンバーを確認できるようにするには、「Server Members Intent」にチェックが入っていることを確認してください。 - -![Server Members Intent ticked](../img/discord/server_members_intent.png) - -9. 「Copy」ボタンをクリックしてトークンをコピーします。 - -10. Kitsuの「設定」画面で、テキストフィールド「Discord token (optional)」にトークンを貼り付け、「Save settings」をクリックします。 - -![Add discord token to settings](../img/discord/add_discord_token_settings.png) - -### ボットの招待 - -ボットユーザーを作成したら、それをサーバーに追加する必要があります。以下の手順に従ってください。 - -1. [Discord ウェブサイト](https://discord.com/) にログインしていることを確認してください。 -2. [アプリケーションページ](https://discord.com/developers/applications) に移動します。 -3. ボットのページをクリックします。 -4. 「OAuth2」タブから「URL Generator」に進みます。 -5. 「Scopes」で「bot」のみにチェックを入れます。 - -![URL Generator Scopes](../img/discord/url_generator_scopes.png) - -6. 「Bot Permissions」で「Send Messages」のみにチェックを入れます。 - -![URL Generator Bot permissions](../img/discord/bot_permissions.png) - -7. 生成されたURLを使用して、サーバーにボットを追加します。URLをブラウザにコピー&ペーストし、ボットを招待するサーバーを選択して、「Authorize(認証)」をクリックします。 - -> **_注意:_** ボットを追加するには、そのユーザーに「Manage Server(サーバー管理)」権限が必要です。 - -> **_注意:_** 通知を有効にするには、ユーザーはボットと同じサーバー上にいる必要があります。 - -### Discord 通知を有効にする - -各ユーザーは、プロフィールで Discord にプッシュ通知を設定できます。「Discord 通知を有効にする」を「はい」に切り替え、「Discord ユーザー名」(フォーマットは username#number)を入力する必要があります。 - -![プロフィールに discord ユーザー名を追加](../img/discord/add_discord_username_profile.png) - -完了です! - -## Slack 統合 - -Slack との連携には、Slack スペースに専用のアプリケーションを作成する必要があります。以下の手順で設定を進めてください。 - -### Slack に Kitsu アプリケーションを作成 - -まず、[https://api.slack.com/apps](https://api.slack.com/apps) に接続します。 - -「新しいアプリを作成」ボタンをクリックします。 - -![新しいアプリを作成](../img/slack/slack_create_app_01.png) - -名前に「Kitsu」と入力し、Kitsuインスタンスとリンクするワークスペースを選択します。 - -![ワークスペースの選択](../img/slack/slack_create_app_02.png) - - -適切な権限を設定する - -アプリを作成したら、リストからアプリの名前をクリックしてアプリのページに移動します。「基本情報」セクションに移動し、右下の「権限」ボタンをクリックします。 - -![権限ボタン](../img/slack/slack_create_app_03.png) - -スコープセクションで、必要な権限を追加します。 - -![スコープの追加](../img/slack/slack_create_app_04.png) - -必要な権限のスコープは `chat:write:bot` です。 - -![権限スコープ](../img/slack/slack_create_app_05.png) - - -### ワークスペースにアプリをインストール - -ワークスペースにアプリをインストールします。「アプリのインストール」セクションに移動し、「ワークスペースにアプリをインストール」ボタンをクリックしてインストールします。 - -![アプリのインストール](../img/slack/slack_create_app_06.png) - -インストールを確認します。 - -![インストール確認](../img/slack/slack_create_app_07.png) - -これで、Kitsu Slack アプリが稼働しました。あとは、Slack ワークスペースに送信される通知に Kitsu をリンクするだけです。 - -### トークンの取得 - -*アプリのインストール*セクションに戻ります。Kitsu インスタンスを Slack にリンクするために必要なトークンが表示されます。 - -![トークンの取得](../img/slack/slack_create_app_08.png) - -### Kitsuを新しいSlackアプリケーションにリンク - -有効なトークンを使って、Kitsuの設定ページに移動し、トークンを入力します。 - -![設定にトークンを追加](../img/slack/slack_kitsu_settings.png) - -### プロフィールでSlack通知を有効にする - -最後に、プロフィールセクションでSlack通知をオンにします。Slackのプロフィールで「その他」をクリックすると表示される、Slackで使用しているメンバーIDを入力します。 - -![メンバーIDの確認](../img/slack/slack_display_name1.png) - -![メンバーID](../img/slack/slack_display_name2.png) - -Kitsuのプロフィールで、Slack通知を「オン」に設定し、Slackのニックネームを入力します。 - -![Slack通知の設定](../img/slack/slack_configuration.png) - -これで、Slackワークスペースで直接通知を受け取ることができます! - -![Slack通知](../img/slack/slack_kitsu_notifications.png) - -## Mattermost 統合 - -### 受信 Webhook、カスタムユーザー名、Webhook 用プロフィール画像を有効にする - -1. Mattermost サーバーにシステム管理アカウントでログインしていることを確認してください。 -2. Mattermost インストールで受信 Webhook を受信でき、Webhook 用にカスタムユーザー名とプロフィール画像を設定できるか確認してください。 -1. 「システムコンソール」 --> 「統合」 --> 「統合管理」に進みます。 - -![Integration management](../img/mattermost/integration-management.png) - -2. パラメータ「Enable incoming Webhooks」、「Enable integrations to override usernames」、および「Enable integrations to override profile picture icons」が「true」に設定されていることを確認します。 - -![Enable incoming webhooks](../img/mattermost/enable-incoming-webhooks.png) - -### MattermostでWebhookを設定する - -1. Mattermostサーバーにシステム管理アカウントでログインしていることを確認してください。 -2. 「Integrations」 --> 「Incoming Webhooks」 --> 「Add incoming Webhook」の順にアクセスします。 - -![Add incoming webhook](../img/mattermost/add-incoming-webhook.png) - -3. 受信Webhookを作成します。 - -![Create incoming webhook](../img/mattermost/create-incoming-webhook.png) - -* **Title**: Kitsu -* **Description**: Kitsu -* **Channel**: メッセージはユーザーに送信されるので、新しいチャンネルを作成するか、既存のチャンネルを使用します。 -* **Lock to this channel**: False に設定します。 -* **Username**: Kitsu (これは Kitsu によって上書きされます)。 -* **プロフィール画像**: 重要ではありません。Kitsuによって上書きされます。 - -4. 「保存」をクリックすると、Mattermostが新しいURLを生成します。このURLをコピーします。 - -5. Kitsuの「設定」で、テキストフィールド「Mattermost Webhooks (オプション)」にURLを貼り付け、「設定を保存」をクリックします。 - -![Mattermost ウェブフック設定の追加](../img/mattermost/add_mattermost_webhook_settings.png) - -> **_注意:_** 通知を有効にしたいユーザーは、これらの手順で使用したのと同じ Mattermost サーバー上に存在していなければなりません。 - -### Mattermost 通知を有効にする - -各ユーザーは、プロフィールで Mattermost にプッシュ通知を行うように設定できます。「Mattermost 通知を有効にする」を「はい」に切り替え、「Mattermost ユーザー名」を入力する必要があります。 - -![プロフィールに Mattermost ユーザー名を追加](../img/mattermost/add_mattermost_username_profile.png) - -完了です! diff --git a/docs/ja/configure-kitsu/README.md b/docs/ja/configure-kitsu/index.md similarity index 99% rename from docs/ja/configure-kitsu/README.md rename to docs/ja/configure-kitsu/index.md index 3ce2ac644d..6540511374 100644 --- a/docs/ja/configure-kitsu/README.md +++ b/docs/ja/configure-kitsu/index.md @@ -50,7 +50,7 @@ Kitsuには2種類の**ライブラリ**があります。 メタデータ列が部署に関連付けられている場合、その列は、その部署内のユーザーのみに表示されます。メタデータ列が部署に関連付けられていない場合、その列は、すべてのユーザーに表示されます。 -::: ヒント +::: ヒント デフォルトでは、Kitsuは、作業を開始する際に役立ついくつかのサンプル部署を提供しています。 ::: @@ -75,7 +75,7 @@ Kitsuには2種類の**ライブラリ**があります。 変更を保存するには、**Confirm**をクリックします。 -部門の作成が完了すると、ページは次のようになります。各部門には固有の名前と色が割り当てられています。 +部門の作成が完了すると、ページは次のようになります。各部門には固有の名前と色が割り当てられています。 ![Customized department](../img/getting-started/customized_department.png) @@ -91,7 +91,7 @@ Kitsuには2種類の**ライブラリ**があります。 ![タスクタイプ](../img/getting-started/menu_tasktype.png) -::: ヒント +::: ヒント デフォルトでは、KitsuはCGI制作で使用できるいくつかのサンプルタスクタイプを提供しています。制作に関連のないものは、名前を変更したり削除したりすることができます。 ::: @@ -120,7 +120,7 @@ Kitsuには2種類の**ライブラリ**があります。 **確認**をクリックして変更を保存します。 -::: 警告 +::: 警告 新しく作成したタスクタイプはリストの一番下に表示されます ::: @@ -132,7 +132,7 @@ Kitsuには2種類の**ライブラリ**があります。 -おめでとうございます。これで、お客様の**グローバルライブラリ**にタスクタイプが作成されました。 +おめでとうございます。これで、お客様の**グローバルライブラリ**にタスクタイプが作成されました。 ::: 警告 制作を作成したら、**シーケンス**、**エピソード**、**編集**の各タスクタイプを**制作ライブラリ**に追加する必要があります。 @@ -352,7 +352,7 @@ Ready For**ステータスで変更を開始するには、トリガーを「ス デフォルトの Kitsu ロゴをスタジオのロゴに置き換えるなど、スタジオに適用されるいくつかのグローバル設定を構成することができます。 -これを行うには、メインメニューボタン +これを行うには、メインメニューボタン ![メインメニューボタン](../img/getting-started/main_button.png) をクリックし、**管理**セクションで**設定**をクリックします。 ![メインメニューの設定](../img/getting-started/menu_settings.png) @@ -370,7 +370,7 @@ Ready For**ステータスで変更を開始するには、トリガーを「ス ![Kitsu Settings](../img/getting-started/kitsu_setting.png) -最後に、さまざまなチャット統合に関する設定も見つかります。設定方法の詳細については、[Chat Integration](../chat-integration/README.md) セクションを参照してください。 +最後に、さまざまなチャット統合に関する設定も見つかります。設定方法の詳細については、[Chat Integration](../chat-integration/index.md) セクションを参照してください。 ::: 警告 作業が完了したら、最後に必ず**設定を保存**してください。 diff --git a/docs/ja/configure-prod/README.md b/docs/ja/configure-prod/index.md similarity index 100% rename from docs/ja/configure-prod/README.md rename to docs/ja/configure-prod/index.md diff --git a/docs/ja/custom-actions/README.md b/docs/ja/custom-actions/README.md deleted file mode 100644 index e417400667..0000000000 --- a/docs/ja/custom-actions/README.md +++ /dev/null @@ -1,67 +0,0 @@ -# カスタムアクション - -## カスタムアクションとは? - -カスタムアクションとは、現在選択されているKitsuの情報をカスタムエンドポイントに送信するシンプルなHTTPリクエストです。 基本的に、ユーザーがKitsuのUIにいる場合、選択された要素のIDを含むリクエストを別のサーバーに送信することができます。 - -### 目的 - -目標は、Kitsu/Zouのコアコードを変更することなく、Kitsu以外のアクションを作成することです(プラグインシステムが利用可能になるまで)。基本的には、ご自身で管理するページやサービスへのウェブリクエスト、通常はPOST(GETも可能)です。リクエストをキャッチし、それを使ってアクションを実行します。 - -例としては、 - -- デバッグページ(フィールド名など、指定のオブジェクトのアクセス可能な情報をすべて表示する) -- CGRUまたはFlamencoでレンダリングを起動する -- APM用の統計ページを生成する -- 特別なプレイリストを作成する -- カスタムプロトコル(サービスが待機)を起動して、ビデオプレーヤー、DCCなどを開始する -- Kabaretなどのアセットマネージャーと統合して、適切な場所でアセットを開いたり、アクションを起動する - -カスタムアクションは、リクエストをキャッチできるものであれば何でも可能です(例えば、Flask や Tornado.web などの Python ウェブサーバーを使用)。 カスタムアクションは、あなたが管理するシステムに Kitsu を拡張するために設計されています。 - -現在の選択、閲覧中のページ、アクションを起動したユーザーなど、リクエストをキャッチしたものには、便利な情報が提供されます。提供された情報に基づいて応答を適応させることができます。 - -ユーザーにフィードバックを提供する必要がない場合は、カスタムアクションをバックグラウンドで実行することもできます(新しいページを開く代わりにAJAXリクエストを使用)。 - - -## カスタムアクションの設定方法 - -### 作成 - -カスタムアクションの設定は、スタジオマネージャーのみが行うことができます。 カスタムアクションページは、管理セクションの右パネルで利用できます。 - -カスタムアクションページにアクセスできる場合、右上にある追加ボタンから新しいアクションを作成できます。 アクションの作成には、以下の4つの情報が必要です。 - -![Add Custom Action](../img/getting-started/add_custom_action.png) - -- **名前**:アクションの名前。 -- **URL**:ターゲットURL(Kitsuのインストールと同じドメインを使用することを強くお勧めします)。 -- **エンティティタイプ**:カスタムアクションが利用可能なエンティティの種類。 -- **AJAXを使用**:リクエストをAJAXリクエストとして送信する必要があるか、フォームとして送信する必要があるかを指定します。 - -アクションが作成されると、アクションのトップバーからアクセスできるようになります。ユーザーがアセットまたはショットリストでタスクを選択し、「**カスタムアクションの実行**」セクションに移動すると、現在の選択に対してカスタムアクションを実行できるようになります。 - -### カスタムアクション経由で送信されるデータ - -データはJSON形式で送信されます。データには、以下のフィールドを持つオブジェクトが含まれます。 - -* `personid`:アクションを要求するユーザーのID。 -* `personemail`: アクションを要求するユーザーのメールアドレス。 -* `projectid`: 選択されたエンティティのプロジェクトID。 -* `currentpath`: Kitsuウェブアプリケーションの現在のURLパス。 -* `currentserver`: カスタムアクションを送信するKitsuのホスト。 -* `selection`: 選択されたタスクIDのリスト。 -* `entitytype`: タスクが選択されたエンティティの種類。 - -例: -``` -{ -「personid「: 」b01bae1e-f829-458a-a1eb-131bb66628cc「, -「personemail」: 「admin@example.com」, -「projectid「: 」fa4d7f04-b8e0-4518-8dbc-2f24997ca76e」, -「currentpath「: 」/productions/fa4d7f04-b8e0-4518-8dbc-2f24997ca76e/assets「, -「currentserver」: 「localhost」, -「selection「: 」95c171e1-dfff-498f-93e3-548a739e3202」, -「entitytype「: 」asset」 -} -``` diff --git a/docs/ja/estimation/README.md b/docs/ja/estimation/index.md similarity index 98% rename from docs/ja/estimation/README.md rename to docs/ja/estimation/index.md index 9490dc365b..d3297cd66e 100644 --- a/docs/ja/estimation/README.md +++ b/docs/ja/estimation/index.md @@ -71,7 +71,7 @@ Kitsuは、タスクの見積もりを簡単に追跡、確認、予測できる 右側の**見積もり**(日数)を変更するたびに、**平均ノルマ**がリアルタイムで更新されます。 -**スケジュール**タブの詳細については、[タスクタイプのスケジュール](../schedules/README.md#Set-a-Task-Estimation)を参照してください。 +**スケジュール**タブの詳細については、[タスクタイプのスケジュール](../schedules/index.md#Set-a-Task-Estimation)を参照してください。 ## ノルマ ### チームのスピードを把握するためのノルマの使用 diff --git a/docs/ja/faq/README.md b/docs/ja/faq/index.md similarity index 100% rename from docs/ja/faq/README.md rename to docs/ja/faq/index.md diff --git a/docs/ja/feature/README.md b/docs/ja/feature/index.md similarity index 97% rename from docs/ja/feature/README.md rename to docs/ja/feature/index.md index 398306d321..88d711403b 100644 --- a/docs/ja/feature/README.md +++ b/docs/ja/feature/index.md @@ -1,6 +1,6 @@ # 長編映画制作の作成 -Kitsuでワークフローを設計し、より多くの人を招待したので、今度は制作を作成します。 +Kitsuでワークフローを設計し、より多くの人を招待したので、今度は制作を作成します。 [新しい制作を作成]ボタンをクリック します。 @@ -32,16 +32,16 @@ Kitsuでワークフローを設計し、より多くの人を招待したので タスクタイプをいくつか見落としていたことに気づいた場合は、後で作成することができます。 -[スタジオワークフロー](../first_production/README_configure_Kitsu.md#studio-workflow) のセクションを参照してください。 +[スタジオワークフロー](../configure-kitsu/index.md#studio-workflow) のセクションを参照してください。 ::: 次に、7と8はオプション部分です。アセット/ショットの一覧が記載されたスプレッドシートがすでに用意されている場合は、 **インポートCSV**のセクションを参照してください。 -[アセットのインポート](../batch-action/README.md#create-assets-from-a-csv-spreadsheet-file) +アセットのインポート -[ショットのインポート](../batch-action/README.md#create-shots-from-a-csv-spreadsheet-file) +ショットのインポート ![All done](../img/getting-started/all_done_go.png) ボタンですべてを検証します。 @@ -73,7 +73,7 @@ Kitsuのグローバルアセットページへようこそ。 ::: 詳細 メインメニューの詳細 **ワークスペース** -- マイタスク:割り当てられたタスク +- マイタスク:割り当てられたタスク - マイチェック:あなたの部署に応じて、ステータスが**フィードバックリクエスト**となっているすべてのタスク - マイプロダクション:プロダクションページの選択に戻ります。 @@ -357,11 +357,11 @@ Kitsuでは、インポートする方法が2つあります。1つ目は、`.cs ![アセット詳細キャスティング](../img/getting-started/asset_detail_page_concept.png) -**スケジュール**は、タスクタイプページのデータを事前に記入していれば利用できます。すでにデータを記入している場合は、ここで直接修正できます。 +**スケジュール**は、タスクタイプページのデータを事前に記入していれば利用できます。すでにデータを記入している場合は、ここで直接修正できます。 ![アセット詳細キャスティング](../img/getting-started/asset_detail_page_schedule.png) -さまざまなタスクタイプでアップロードされた**プレビューファイル**、 +さまざまなタスクタイプでアップロードされた**プレビューファイル**、 ![アセット詳細キャスティング](../img/getting-started/asset_detail_page_file.png) @@ -396,7 +396,7 @@ Kitsuでは、インポートする方法が2つあります。1つ目は、`.cs アセットのメインページの説明を拡張するには、最初の語句 (2) をクリックすると、説明の全文を含むポップアップが開きます。 -アセットを削除するには、FAQ : [アセットの削除方法](../faq-deletion/README.md##how-to-delete-an-asset)を参照してください。 +アセットを削除するには、FAQ : アセットの削除方法を参照してください。 ::: 詳細 CSV インポートによるアセットの更新 @@ -580,9 +580,9 @@ Kitsu は、コメントパネルの上部にリンクされたアセットを ::: -ショットを削除するには、FAQを参照してください。 : [ショットの削除方法](../faq-deletion/README.md#how-to-delete-a-shot) +ショットを削除するには、FAQを参照してください。 : ショットの削除方法 -シーケンスを削除するには、FAQを参照してください。 : [シーケンスの削除方法](../faq-deletion/README.md#how-to-delete-a-sequence) +シーケンスを削除するには、FAQを参照してください。 : シーケンスの削除方法 @@ -696,7 +696,7 @@ Kitsuでは、インポートする方法が2つあります。1つ目は、`.cs ![アセット詳細キャスティング](../img/getting-started/shot_detail_page_casting.png) -**スケジュール**は、タスクタイプページのデータを事前に記入している場合に利用できます。すでにデータを記入している場合は、ここで直接修正できます。 +**スケジュール**は、タスクタイプページのデータを事前に記入している場合に利用できます。すでにデータを記入している場合は、ここで直接修正できます。 ![アセット詳細キャスティング](../img/getting-started/shot_detail_page_schedule.png) @@ -812,7 +812,7 @@ CSVインポート**を使用して、**NBフレーム**、**フレームIN**、 **CSVインポート**を使用して、フレーム範囲をすばやく更新することもできます。 -[CSVインポートでショット情報を更新](../batch-action/README.md#update-shots-information-with-csv-import) +CSVインポートでショット情報を更新 ショット値の履歴にもアクセスできます。 @@ -844,7 +844,7 @@ CSVインポート**を使用して、**NBフレーム**、**フレームIN**、 ![メタデータ カラム詳細](../img/getting-started/custom_column_detail.png) -::: 警告 +::: 警告 **テキスト**、**数値**、および**チェックボックス**では、各エンティティに対して異なる情報を追加することができます。 最初に計画する必要はありません。 **値のリスト**、**タグのリスト**、および**チェックリスト**では、各エンティティに対して同じ選択肢が提供されます。さらに、これは現在入力する必要があります。 @@ -921,7 +921,7 @@ Kitsuでは、**シーケンス**レベルでタスクを追跡することも 新しい **タスクタイプ** を作成するには、**新しいタスクタイプの作成** セクションを参照してください。 -[新しいタスクタイプの作成](../configure-kitsu/README.md#タスクの種類) +[新しいタスクタイプの作成](../configure-kitsu/index.md#タスクの種類) グローバルライブラリで**タスクタイプ**を作成したら、それを** プロダクションライブラリ**(設定ページ)に追加します。 @@ -975,7 +975,7 @@ Kitsuでは、**編集**レベルでタスクを追跡できます。 新しい **タスクタイプ** を作成するには、**新しいタスクタイプの作成** セクションを参照してください。 -[新しいタスクタイプの作成](../configure-kitsu/README.md#タスクの種類) +[新しいタスクタイプの作成](../configure-kitsu/index.md#タスクの種類) グローバルライブラリで**タスクタイプ**を作成したら、**プロダクションライブラリ**に追加します。 @@ -1126,7 +1126,7 @@ Kitsuでは、**編集**レベルでタスクを追跡できます。 ![インポートコピーデータ](../img/getting-started/import_copypas_breakdown.png) -次に、Kitsuのブレークダウンページに戻り、**インポート**アイコンをクリックします +次に、Kitsuのブレークダウンページに戻り、**インポート**アイコンをクリックします ![インポートアイコン](../img/getting-started/import.png)。 ポップアップウィンドウ「**CSVからデータをインポート**」が開きますので、「**CSVデータを貼り付け**」タブをクリックします。 @@ -1168,7 +1168,7 @@ Kitsuでは、**編集**レベルでタスクを追跡できます。 ::: ヒント **自動化**を使用して、重労働を軽減することができます。 -「準備完了」トリガーで自動化を設定できます。 +「準備完了」トリガーで自動化を設定できます。 ::: アセットの状態をいくつか「準備完了」に変更したので、ショットページで結果を確認できます。 diff --git a/docs/ja/filter/README.md b/docs/ja/filter/index.md similarity index 99% rename from docs/ja/filter/README.md rename to docs/ja/filter/index.md index 7d3ef68098..facb0f2ae9 100644 --- a/docs/ja/filter/README.md +++ b/docs/ja/filter/index.md @@ -105,7 +105,7 @@ Kitsuには数千もの要素が存在すると予想されるため、処理を ![フィルター作成ボタン](../img/getting-started/filter_builder_example04.png) -::: 警告 +::: 警告 最初のオプション「**以下のすべてのフィルタに一致**」では、フィルタビルダーで選択したすべてのオプションがフィルタリングに使用されます。 - タスクのステータス @@ -191,10 +191,10 @@ Kitsuには数千もの要素が存在すると予想されるため、処理を ヒント 優先度についての詳細は、 -[優先度の変更](../estimation/README.md#change-priorities) +[優先度の変更](../estimation/index.md#change-priorities) を参照してください。 -まず、タスクタイプを選択し、次に以下のいずれかを選択します。 +まず、タスクタイプを選択し、次に以下のいずれかを選択します。 - **通常**(優先度のデフォルトレベル) - **高** - **非常に高い** @@ -216,7 +216,7 @@ Kitsuには数千もの要素が存在すると予想されるため、処理を ショットページでは、これらのタスクのすべてのアセットが準備完了であるかどうかを確認します(「制作物の作成」を参照)。 ::: 警告 -**準備完了**のフィルタリングは、**1つ**のタスクタイプのみ可能です +**準備完了**のフィルタリングは、**1つ**のタスクタイプのみ可能です 複数の**準備完了**フィルタを追加することはできません。 ::: diff --git a/docs/ja/getting-started-client/README.md b/docs/ja/getting-started-client/index.md similarity index 100% rename from docs/ja/getting-started-client/README.md rename to docs/ja/getting-started-client/index.md diff --git a/docs/ja/index.md b/docs/ja/index.md new file mode 100644 index 0000000000..0d71da6a45 --- /dev/null +++ b/docs/ja/index.md @@ -0,0 +1,114 @@ + + +![Kitsu Banner](../img/kitsu-banner.png#logo-kitsu) + +# Kitsu ドキュメント + +[Kitsu](https://cg-wire.com/kitsu) は、アニメーションおよび VFX 制作のためのコラボレーションプラットフォームです。 そのクリーンな UI と共有データベースを通じて、アーティスト、制作マネージャー、スーパーバイザー、ベンダー、クライアントなど、制作プロセスに関わるすべての関係者を結びつけます。 + +### Kitsuの紹介 + +制作を成功させるために必要なKitsuの基本的なコンセプトを理解するためのリンクをいくつかご紹介します。 + +* [Getting Started With Kitsu](./configure-kitsu/index.md): Kitsuで使用される主な原則と一般的な用語を学び、制作ワークフローをよりよく計画しましょう。 +* [Preparing Your Team](./team/index.md): チームメンバーを準備し、各メンバーの部署と権限を定義します。 + +### 制作物の作成 + +以下では、作成を検討している制作物の種類に合わせたガイドをご覧いただけます。 + +* [テレビ番組制作物の作成](./tvshow/index.md) アセット、ショット、シーケンス、エピソード、編集を使用してテレビ番組制作物を作成します +* [長編映画制作物の作成](./feature/index.md) アセット、ショット、シーケンス、編集を使用して長編映画制作物(約1,000エンティティ)を作成します。 +* [ショート制作の作成](./short/index.md): ショート制作(約500のアセットとショット)を、アセット、ショット、シーケンス、編集で作成します。 +* [ショットのみの制作の作成](./short-shot/index.md) ショート制作(約500ショット)を、ショット、シーケンス、編集のみで作成します +* [アセットのみの制作を作成する](./short-asset/index.md) アセットのみを使用した短い制作(約500アセット)を作成します。 +* [ビデオゲーム制作を作成する](./videogame/index.md) アセット、マップ、レベル、チャプター(テレビ番組として)を使用したビデオゲーム制作を作成します。 +* [NFTコレクションを作成する](./nft/index.md) アセットとNFTコレクションを使用したNFTコレクションを作成します。 + +### メタカラム、フィルター、制作設定 + +* [メタカラム](./meta-column/index.md): 制作物のメタデータの作成と整理方法について学びます。 +* [フィルター](./filter/index.md): 強力な検索機能で重要な情報に絞り込みます +* [制作固有のワークフロー設定](./configure-prod/index.md): さまざまな強力な設定で、特定の制作物を好みに合わせて微調整します。 + +### 割り当て、見積もり、スケジュール + +このセクションでは、Kitsuの主な使用例をいくつかご紹介します。 + +* [タスクの割り当て](./assignation/index.md): チームに誰かを追加し、タスクを割り当てる方法を学びます。 +* [見積もり & チームのノルマ](./estimation/index.md): タスクの完了までに必要な日数(入札)を計算する方法と、チームの効率性を確認する方法を学びます。 +* [スケジュール](./schedules/index.md): スタジオレベルからタスクレベルまで、Kitsuのさまざまなスケジュール機能を確認できます。 + +### ステータス、公開、サムネイル + +作業を整理し、チームにその進捗状況を通知する方法 + +* [ステータスとフィードバック](./status/index.md): ステータスの変更方法と、作業の進捗状況をチームに知らせる方法。 +* [公開](./publish/index.md): 作業を公開し、チームと共有する方法。 +* [サムネイル](./thumbnails/index.md): アセットとショットにサムネイルを適用する方法。 + +### 社内レビューとクライアントのプレイリスト + +社内および社外レビューの整理方法: + +* [レビュー](./review/index.md): タスクに関するすべてのフィードバックを確認する方法を学びましょう。 +* [デイリーおよびウィークリーレビュー](./review-weekly/index.md): ビデオ版を素早く収集し、レビューに集中しましょう。 +* [クライアント用プレイリスト](./playlist-client/index.md): 管理された環境でクライアントと作業を収集し、共有しましょう。 + + +### スーパーバイザーのワークフロー + +スーパーバイザーの場合、Kitsu を使用する際のユースケースは制作チームの場合とは異なる場合があります。 + +* [部署の管理](./supervisor-team/index.md): チームを効果的に管理し監督する方法を発見します。 +* [タスクの監督](./supervisor-tasks/index.md): タスクの割り当てを常に把握する方法を学びます。 + +### プロデューサーのワークフロー + +プロデューサーとして、詳細から全体像へと視点を移す能力を習得することは不可欠です。 + +* [制作レポートの作成](./production-report/index.md): 制作レポートを作成するために必要なすべてを学びましょう。 +* [スタジオレポートの作成](./studio-report/index.md): スタジオの制作で常に一歩先を行くために。 + + +### 開発者のワークフロー + +開発者の方は、スタジオのパイプライン内でKitsuを拡張および統合するための可能性について、いくつかご確認ください。 + +* [カスタムアクション](./custom-actions/index.md): カスタムアクションは、現在のKitsuの選択からカスタムエンドに情報を送信するシンプルなHTTPリクエストです。 +* [Bots](./bots/index.md): 主な用途は、gazu(KitsuのPythonクライアント)を使用したスクリプト作成、および当社のAPIを使用できるその他の用途です。 +* [Kitsu Publisher](./publisher/index.md): 制作の進捗状況を共有し、配信を検証するために使用するウェブアプリケーションです。 +* [チャット統合](./chat-integration/index.md): Discord、Slack、Mattermostなどの人気メッセージングアプリに直接Kitsuの通知を受け取ることができます。 +* [オープンソースセットアップ](./installation/index.md): スタジオ環境内でローカルバージョンのKitsuをセルフデプロイする方法について学びます。 + + + + +### チュートリアル + +Kitsuの重要な機能に焦点を当てた、YouTubeの包括的なビデオチュートリアルにアクセスできます。下記リンクをクリックしてご覧ください。 + +[Kitsuチュートリアルチャンネル](https://www.youtube.com/playlist?list=PLp_1gB5ZBHXqnQgZ4TCrAt7smxesaDo29) + + +### 著者について + +Kitsuは、フランスに拠点を置くCG Wire社によって開発されました。当社は、アニメーションスタジオの制作管理と効率的なパイプライン構築を支援しています。 + +可能な限り、ソフトウェア職人の原則に従っています。当社のコーディングに対する情熱は、堅牢な品質の提供と優れた開発者体験の提供に対する当社の取り組みに反映されています。当社の幅広い専門知識を活用し、スタジオが制作の複雑性を克服し、より効率的なコラボレーション、より迅速な納品を実現し、より優れた画像の制作を支援しています。 + +詳細については、[cg-wire.com](https://cg-wire.com)をご覧ください。 + +[![CG Wire ロゴ](./img/cgwire.png#logo-cgwire)](https://cg-wire.com) diff --git a/docs/ja/installation/README.md b/docs/ja/installation/README.md deleted file mode 100644 index 7cd77c8d05..0000000000 --- a/docs/ja/installation/README.md +++ /dev/null @@ -1,98 +0,0 @@ -# オープンソースのセットアップ - -## クラウドホスティング - -KitsuのバージョンがCGWireによってホスティングおよび管理されている場合は、インストールする必要はありません。 ご提供するURLに接続するだけで、Kitsuの使用を開始できます。 - -## セルフホスティング - -Kitsuを適切に実行するには、ZouというデータベースAPIが必要です。 両方のモジュールのインストールに関する情報は、Zouのインストールドキュメントに記載されています。 - -* [Zouのデプロイ](https://zou.cg-wire.com/) -* [Kitsuのデプロイ](https://zou.cg-wire.com/#deploying-kitsu) - -技術的なスキルをお持ちの場合は、DockerでKitsu/Zouを実行して試すことができます。 - -```shell -docker run -d -p 80:80 --name cgwire cgwire/cgwire -``` - -その後、[http://localhost](http://localhost) から Kitsu にアクセスできます。 - -## 開発環境 - -### 前提条件 - -Kitsu の開発環境をセットアップする前に、以下の要素がインストールされていることを確認してください。 - -* [Node.js](https://nodejs.org) 20.18 以上 -* [Zou 開発インスタンス](https://zou.cg-wire.com/development/) がポート 5000 で稼働している -* [Zou Events 開発インスタンス](https://zou.cg-wire.com/development/) がポート 5001 で稼働している(オプション) - -### Docker イメージの使用 - -弊社が提供する [Docker イメージ](https://hub.docker.com/r/cgwire/cgwire) を使用することもできますが、その場合は以下の2つの環境変数を設定する必要があります。 - -* `KITSU_API_TARGET` (デフォルト: http://localhost:5000): API にアクセスできる URL。 -* `KITSU_EVENT_TARGET` (デフォルト: http://localhost:5001): イベントストリームにアクセスできる URL。 - -その場合は、次のコマンドで開発環境を実行します。 - -```shell -KITSU_API_TARGET=http://localhost/api KITSU_EVENT_TARGET=http://localhost npm run dev -``` - -Docker イメージの認証情報は次のとおりです。admin@example.com / mysecretpassword - -## 開発 - -Kitsu の変更を開始するには、リポジトリをクローンします。 - -```shell -git clone https://github.com/cgwire/kitsu.git -``` - -次に、依存関係をダウンロードします。 - -```shell -cd kitsu -npm install -``` - -最後に、開発環境を起動し、`http://localhost:8080` で結果を表示します。 - -```shell -npm run dev -``` - -変更があれば、ページが自動的に更新されます。 - -## ビルド - -コードをビルドするには、次のコマンドを実行します。 - -```shell -npm run build -``` - -## テスト - -次のコマンドでテストを実行します。 - -```shell -npm run test:unit -``` - -## アーキテクチャ - -Kitsu は [Vue.js](https://vuejs.org/guide/) フレームワークをベースとしています。Vue.js のドキュメントは網羅的で非常にわかりやすいです。コードに大幅な変更を加える前に、ぜひ一読されることをお勧めします。 - -アーキテクチャは [Vuex](https://vuex.vuejs.org) と [vue-router](https://router.vuejs.org) をベースとしています。 これらのドキュメントも非常に充実しており、ぜひお読みください。 主な考え方は以下の通りです。 - -* URL ルートが主なコンテキストを提供します。 -* ビューは、HTML、CSS、および少量の JavaScript からなるコンポーネントで記述されます。 -* 共有状態はストア内に保存され、状態変更を要求するイベントバス(一種)であるミューテーション(mutation)とアクション(action)によって変更されます。 -* アクションはミューテーションに似ていますが、非同期処理が可能です。主に、アクションはミューテーションを実行し、サーバーにリクエストを送信します。 -* ストアは、コンポーネントから状態プロパティにアクセスするためのゲッターを提供します。 -* ローカルの変更ロジックはコンポーネント内に保持されます。 -* ゲッター、アクション、およびミューテーションは、ブラウザなしでもテスト可能でなければなりません。 diff --git a/docs/ja/meta-column/README.md b/docs/ja/meta-column/index.md similarity index 97% rename from docs/ja/meta-column/README.md rename to docs/ja/meta-column/index.md index df3fad4459..66ec049ff4 100644 --- a/docs/ja/meta-column/README.md +++ b/docs/ja/meta-column/index.md @@ -23,15 +23,15 @@ - **値のリスト**: - このタイプでは、一意の要素を1つだけ選択できるオプションのリストを定義します。選択肢が限られているデータを追跡する際に最適です。例えば、カメラの動きを追跡する場合、「静止」、「パン」、「チルト」、「ズーム」などのオプションが考えられます。 -- **タグのリスト**: -- ここでは、複数のタグを定義できます。1つの項目のみを選択できる値のリストとは異なり、このタイプではリストから複数のエントリを選択できます。 +- **タグのリスト**: +- ここでは、複数のタグを定義できます。1つの項目のみを選択できる値のリストとは異なり、このタイプではリストから複数のエントリを選択できます。 -- **チェックリスト**: +- **チェックリスト**: このタイプでは、オプションのリストが提示され、それぞれにチェックボックスが付いています。 制作パイプラインにおいて独自のタスクとして扱うほどではない、ショットやアセットに関連する細かいサブタスクを追跡するのに便利です。 ![メタデータカラムの詳細](../img/getting-started/custom_column_detail.png) -:::警告 +:::警告 テキスト**および**数値**のメタデータタイプを作成する際、作成時にデフォルト値は必要ありません。 ただし、「**値のリスト**」、「**タグのリスト**」、および「**チェックリスト**」を使用する場合は、作成時に含める値を指定する必要があります。 @@ -45,7 +45,7 @@ メタデータカラムを1つまたは複数の部門にリンクすることもできます。アーティスト/スーパーバイザーは、自分のToDoページと部門フィルタリングされたビューでそれを見ることができます。 -部門をさらに作成するには、[部門の作成](../configure-kitsu/README.md#create-departments)を参照してください。 +部門をさらに作成するには、[部門の作成](../configure-kitsu/index.md#create-departments)を参照してください。 メタデータ列を1つまたは複数の部門にリンクすることができます。 リストから部門をクリックし、**追加**をクリックして確定します。 @@ -83,7 +83,7 @@ ![メタデータ列の詳細](../img/getting-started/edit_asset_custom.png) :::: -メタデータ列を編集または削除する必要がある場合は、メタデータ列の名前の隣にあるスプレッドシートのページで、矢印をクリックします![メタデータ列の詳細](../img/getting-started/arrow.png)。 +メタデータ列を編集または削除する必要がある場合は、メタデータ列の名前の隣にあるスプレッドシートのページで、矢印をクリックします![メタデータ列の詳細](../img/getting-started/arrow.png)。 ::: ヒント メタデータ列の編集や削除に加えて、ここから**ソート**をクリックして、新しい列でグローバルページを**ソート**することもできます。 @@ -101,13 +101,13 @@ これを行うには、ページの右上にある「追加情報の非表示」 ![最小化ボタン](../img/getting-started/maximize.png) ボタンをクリックします。 -![すべての情報を表示](../img/getting-started/hide_extra_information1.png) +![すべての情報を表示](../img/getting-started/hide_extra_information1.png) 情報を再度表示するには、同じボタンをクリックします。 ![最大化ボタン](../img/getting-started/minimize.png) グレーでハイライトされません。 -![すべての情報表示](../img/getting-started/hide_extra_information2.png) +![すべての情報表示](../img/getting-started/hide_extra_information2.png) ### メタデータカラムの表示または非表示 @@ -131,4 +131,3 @@ ![固定オプション](../img/getting-started/sticky.png) ![固定オプション](../img/getting-started/sticky_example.png) - diff --git a/docs/ja/nft/README.md b/docs/ja/nft/index.md similarity index 98% rename from docs/ja/nft/README.md rename to docs/ja/nft/index.md index 12e9a7160e..5eef5b0a50 100644 --- a/docs/ja/nft/README.md +++ b/docs/ja/nft/index.md @@ -1,6 +1,6 @@ # NFTコレクションを作成する -Kitsuでワークフローを設計し、より多くの人を招待したので、今度は作品を作成する番です。 +Kitsuでワークフローを設計し、より多くの人を招待したので、今度は作品を作成する番です。 **新しい作品を作成**ボタンをクリックします。 @@ -31,16 +31,16 @@ Kitsuでワークフローを設計し、より多くの人を招待したので タスクタイプをいくつか見落としていたことに気づいた場合は、後で作成できます。 -「スタジオワークフロー」(../first_production/README_configure_Kitsu.md#studio-workflow)セクションを参照してください。 +「スタジオワークフロー」(../configure-kitsu/index.md#studio-workflow)セクションを参照してください。 ::: 次に、7と8はオプション部分です。アセット/NFTコレクションの一覧が記載されたスプレッドシートがすでに用意されている場合。 詳細は「**CSVのインポート**」セクションを参照してください。 -[アセットのインポート](../batch-action/README.md#create-assets-from-a-csv-spreadsheet-file) +アセットのインポート -[NFTコレクションのインポート](../batch-action/README.md#create-shots-from-a-csv-spreadsheet-file) +NFTコレクションのインポート ![All done](../img/getting-started/all_done_go.png)ボタンですべてを確認します。 @@ -72,7 +72,7 @@ Kitsuのグローバルアセットページへようこそ。 ::: 詳細 メインメニューの詳細 **ワークスペース** -- マイタスク:割り当てられたタスク +- マイタスク:割り当てられたタスク - マイチェック:あなたの部署に応じて、ステータスが**フィードバックリクエスト**となっているすべてのタスク - マイプロダクション:プロダクションページの選択に戻ります。 @@ -148,7 +148,7 @@ Kitsuのグローバルアセットページへようこそ。 アセットページから開始しますが、制作のホームページを他のエンティティに変更することができます(設定ページを参照)。 ::: -::: 警告 +::: 警告 エピソードなど、追加のナビゲーションレベルが必要になった場合は、プロダクションタイプを**テレビ番組**に変更する必要があります。 逆に、**アセット**や**NFTコレクション**が必要ない場合は、プロダクションタイプを**アセットのみ**または**NFTコレクションのみ**に切り替える必要があります。 @@ -356,7 +356,7 @@ Kitsuでは、インポートする方法が2つあります。1つ目は、`.cs ![アセット詳細キャスティング](../img/getting-started/asset_detail_page_concept.png) -**スケジュール**は、タスクタイプページのデータを事前に記入していれば利用できます。データがすでに記入されている場合は、ここで直接修正することができます。 +**スケジュール**は、タスクタイプページのデータを事前に記入していれば利用できます。データがすでに記入されている場合は、ここで直接修正することができます。 ![アセット詳細キャスティング](../img/getting-started/asset_detail_page_schedule.png) @@ -395,7 +395,7 @@ Kitsuでは、インポートする方法が2つあります。1つ目は、`.cs アセットのメインページの説明を拡張するには、最初の語句 (2) をクリックすると、説明の全文を含むポップアップが開きます。 -アセットを削除するには、FAQ : [アセットの削除方法](../faq-deletion/README.md##how-to-delete-an-asset)を参照してください。 +アセットを削除するには、FAQ : アセットの削除方法を参照してください。 ::: 詳細 CSV インポートによるアセットの更新 @@ -579,9 +579,9 @@ NFTコレクションがシーケンス上で誤った場所に配置されて ::: -NFTコレクションを削除するには、FAQを参照してください。 : [NFTコレクションの削除方法](../faq-deletion/README.md#how-to-delete-a-shot) +NFTコレクションを削除するには、FAQを参照してください。 : NFTコレクションの削除方法 -シーケンスを削除するには、FAQを参照してください。 : [シーケンスの削除方法](../faq-deletion/README.md#how-to-delete-a-sequence) +シーケンスを削除するには、FAQを参照してください。 : シーケンスの削除方法 @@ -607,7 +607,7 @@ NFTコレクションの詳細を確認したい場合は、その名前をク ![アセット詳細キャスティング](../img/getting-started/shot_detail_page_casting.png) -**スケジュール**は、事前にタスクタイプページのデータを入力している場合に利用できます。データがすでに記入されている場合は、ここで直接修正することができます。 +**スケジュール**は、事前にタスクタイプページのデータを入力している場合に利用できます。データがすでに記入されている場合は、ここで直接修正することができます。 ![アセット詳細キャスティング](../img/getting-started/shot_detail_page_schedule.png) @@ -702,7 +702,7 @@ CSVインポート**を使用して、**NBフレーム**、**フレームIN**、 ![メタデータカラムの詳細](../img/getting-started/custom_column_detail.png) -::: 警告 +::: 警告 テキスト、数値、およびチェックボックスでは、各エンティティに異なる情報を追加できます。最初に計画する必要はありません。 リスト値、タグリスト、およびチェックリストでは、各エンティティに同じ選択肢が与えられます。さらに、これは現在入力する必要があります。 @@ -881,7 +881,7 @@ CSVインポート**を使用して、**NBフレーム**、**フレームIN**、 ![インポートコピーデータ](../img/getting-started/import_copypas_breakdown.png) -次に、Kitsuのブレークダウンページに戻り、**インポート**アイコンをクリックします +次に、Kitsuのブレークダウンページに戻り、**インポート**アイコンをクリックします ![インポートアイコン](../img/getting-started/import.png)。 ポップアップウィンドウ「**CSVからデータをインポート**」が開きますので、「**CSVデータを貼り付け**」タブをクリックします。 @@ -923,7 +923,7 @@ CSVインポート**を使用して、**NBフレーム**、**フレームIN**、 ::: ヒント **自動化**機能を使用して、作業を自動化することができます。 -**準備完了**のトリガーで自動化を設定できます。 +**準備完了**のトリガーで自動化を設定できます。 ::: いくつかのアセットの状態を**準備完了**に変更したので、NFTコレクションページで結果を確認できます。 diff --git a/docs/ja/playlist-client/README.md b/docs/ja/playlist-client/index.md similarity index 98% rename from docs/ja/playlist-client/README.md rename to docs/ja/playlist-client/index.md index 2cc01d79d7..603c91bf17 100644 --- a/docs/ja/playlist-client/README.md +++ b/docs/ja/playlist-client/index.md @@ -4,7 +4,7 @@ クライアントとレビューを行うための最初のステップは、共有およびレビューしたいコンテンツのプレイリストを作成することです。このプロセスは通常のプレイリストの作成と似ていますが、Kitsuには、スタジオ外の関係者との共同作業を支援する便利な機能がいくつか含まれています。 -まず、プレイリストを作成し、レビューしたいアイテムを追加します。 作成方法については、このセクションを参照してください(../review/README.md#create-a-playlist)。 +まず、プレイリストを作成し、レビューしたいアイテムを追加します。 作成方法については、このセクションを参照してください(../review#create-a-playlist)。 主な違いは、「共有先」で「クライアント」を選択することです。これにより、適切な権限が確保され、クライアントにはこの特定のプレイリストへのアクセスのみが提供されます。 diff --git a/docs/ja/production-report/README.md b/docs/ja/production-report/index.md similarity index 100% rename from docs/ja/production-report/README.md rename to docs/ja/production-report/index.md diff --git a/docs/ja/production-report/specific_task_type_creation.txt b/docs/ja/production-report/specific_task_type_creation.txt index c0598edc4d..3362f20b70 100644 --- a/docs/ja/production-report/specific_task_type_creation.txt +++ b/docs/ja/production-report/specific_task_type_creation.txt @@ -64,7 +64,7 @@ validate your choice with the "Add" button. You can also see the sum up of the parameters of each status. -(To add new Task Status, see [Customization of the workflow](../customization/README.md#create-a-new-task-status) ) +(To add new Task Status, see [Customization of the workflow](../customization#create-a-new-task-status) ) ### Select specific Task Types for a production @@ -75,7 +75,7 @@ Per default, Kitsu will load all the Task Types of your Task Types library into ![Setting Task Type new](../img/getting-started/setting_task_new.png) But you can choose to use only specific Task Types, depending on the type of your production. -(To add a new Task Type, see [Customization of the workflow](../customization/README.md#create-a-new-task-type) ) +(To add a new Task Type, see [Customization of the workflow](../customization#create-a-new-task-type) ) For example, you can create a 2D and A CGI workflow on your library and add the needed task types into this production. diff --git a/docs/ja/publish/README.md b/docs/ja/publish/index.md similarity index 98% rename from docs/ja/publish/README.md rename to docs/ja/publish/index.md index 8f2daf186f..7f518293d8 100644 --- a/docs/ja/publish/README.md +++ b/docs/ja/publish/index.md @@ -18,7 +18,7 @@ コメントパネルが開いている場合、次の2つのオプションがあります。 -1) コンセプトを既存のアセットにリンクしたり、既存のリンクを削除したりすることができます。 +1) コンセプトを既存のアセットにリンクしたり、既存のリンクを削除したりすることができます。 2) コンセプトにコメントを追加したり、ステータスを変更したりすることができます。 **コンセプト**は1バージョンのみにしておくのが望ましいです。コンセプトが承認されず、さらに変更が必要な場合は、そのコンセプトをバージョンアップした方が良いでしょう。 @@ -71,7 +71,7 @@ WFA**ステータスなど、**[フィードバックリクエスト]**オプシ また、`.glb`ファイルをワイヤーフレームとして確認したり、`.HDR`ファイルを追加して照明を確認することもできます。詳細は**カスタマイズ**セクションを参照してください。 -[パイプラインのカスタマイズ](../configure-kitsu/README.md#3d-backgrounds). +[パイプラインのカスタマイズ](../configure-kitsu/index.md#3d-backgrounds). pdf、.zip、.rar、.ma、.mbなどの他のファイルはブラウザで表示できないため、確認するにはダウンロードする必要があります。 @@ -93,7 +93,7 @@ pdf、.zip、.rar、.ma、.mbなどの他のファイルはブラウザで表示 次に、ステータスを選択し、**[投稿]** ボタンでプレビューを公開します。 -サムネイルとして公開を使用する方法の詳細については、[サムネイルに関するこのセクションを参照してください](../thumbnails/README.md)。 +サムネイルとして公開を使用する方法の詳細については、[サムネイルに関するこのセクションを参照してください](../thumbnails/index.md)。 ## プレビューをバージョンにまとめる diff --git a/docs/ja/publisher/README.md b/docs/ja/publisher/README.md deleted file mode 100644 index 11e3d446c5..0000000000 --- a/docs/ja/publisher/README.md +++ /dev/null @@ -1,354 +0,0 @@ -# Kitsu Publisher - -Kitsu は、制作進行の共有と配信の検証を合理化し、関係者間のコミュニケーションを強化することで、より迅速で高品質なアウトプットを実現するウェブアプリケーションです。 - -Kitsu Publisher はデスクトップアプリケーションで、DCC ツールと Kitsu を橋渡しし、アーティストがそれぞれのツールから直接タスクの管理、コメントの追加、プレビューの送信を行うことを可能にします。 - -## DCC 統合 ステータス: - -現在サポートされているもの: -- Blender -- Toon Boom Harmony -- Unreal Engine - -現在作業中のもの: -- Photoshop -- Nuke - -## インストール - -### Kitsu Publisher のインストール - -#### 事前要件 - -リリース](https://github.com/cgwire/kitsu-publisher-next/releases/latest) から、お使いの OS に該当するアプリ用のインストーラー/パッケージ/ポータブル版をダウンロード(または、ご希望であればビルド: [開発環境](#development-environment) 参照)する必要があります。 - -すべてのコマンドのファイル名にはキーワード {version} が含まれています。このバージョンを、お使いの Kitsu Publisher の現在のバージョンに置き換える必要があります。 - -#### Linuxの場合 - -- **debパッケージ**(Debianベースのディストリビューション用): -- パッケージをインストールするには: - -```shell -dpkg -i kitsu-publisher_{version}_amd64.deb -``` - -- パッケージはアプリケーションと$PATHに追加されます。 - -- **rpmパッケージ**(RHELベースのディストリビューション用): -- パッケージをインストールするには: - -```シェル -rpm -i kitsu-publisher_{version}_x86_64.rpm -``` - -- パッケージはこれでアプリケーションと $PATH に追加されました。 - -- **snap パッケージ**: -- パッケージをインストールするには: - -```シェル -snap install kitsu-publisher_{version}_amd64.snap --dangerous -``` - -- パッケージは現在、アプリケーションおよび $PATH にあります。 - -- **tar.gz アーカイブ**: -- アーカイブを展開するには: - -```shell -tar -xf kitsu-publisher-{version}.tar.gz -``` - -- アプリケーションを実行するには: - -```shell -kitsu-publisher-{version}/kitsu-publisher -``` - -- **AppImage**: -- アプリケーションを実行するには: - -```shell. -/Kitsu publisher-{version}.AppImage -``` - - -Windowsの場合 - -- **NSISインストーラー**: -インストーラー `Kitsu-publisher-Setup-{version}.exe` をダブルクリックし、指示に従ってください。 - -- **MSIインストーラー**: -インストーラー `Kitsu-publisher-{version}-ia32.msi` をダブルクリックしてアプリをインストールします。 - -- **ポータブルアプリケーション**: -実行ファイル `Kitsu-publisher-{version}.exe` をダブルクリックします。 - -- **Zipポータブルアプリケーション**: -Zipファイル `Kitsu-publisher-{version}-ia32-win.zip` を解凍し、`Kitsu publisher.exe` をダブルクリックします。 - -MacOSの場合 - -- **DMGインストーラー**: -インストーラー `Kitsu-publisher-{version}.dmg` をダブルクリックし、Kitsuのロゴを「アプリケーション」フォルダにドラッグします。 - -- **PKGインストーラー**: -```shell -sudo installer -package Kitsu-publisher-{version}.pkg -target / -``` - -- **Zip形式のポータブルアプリケーション**: -zip形式の「Kitsu-publisher-{version}-mac.zip」をダブルクリックし、Kitsu Publisherアイコンをダブルクリックします。 - - -## 開発環境 - -### 前提条件 - -Electronアプリを開発またはビルドするには、[Node.js](https://nodejs.org/en/)>=16.11がインストールされている必要があります。 - -### 依存関係 - -Electron アプリに必要なすべての依存関係をインストールするには、プロジェクトフォルダで次のコマンドを実行する必要があります。 - -```shell -npm install -``` - -### 実行 - -Electron アプリを開発モードで実行するには、npm スクリプトを実行する必要があります。 - -```shell -npm run dev -``` - -これにより、Electron インスタンスと Vite 開発サーバーが起動します。 - -### Electron アプリのビルド - -#### 事前準備 - -- DebianベースのLinuxでは、以下のものが必要です。 - -- 以下のパッケージをインストールします。 - -```shell -apt-get install build-essential libcairo2-dev libpango1.0-dev -libjpeg-dev libgif-dev librsvg2-dev -``` - -- rpmのような特定のターゲットをビルドしたい場合は、以下のものをインストールする必要があります。 - -```shell -apt-get install rpm -``` - -- Windows では、次のものが必要です: - -- node-canvas の [wiki](https://github.com/Automattic/node-canvas/wiki/Installation:-Windows) を参照してください。 - -- macOS では、次のものが必要です (Homebrew(https://brew.sh/) を使用): - -```shell -brew install pkg-config cairo pango libpng jpeg giflib librsvg -``` - -#### アプリケーションのビルド - -npm scripts を実行する必要があります。 - -- パッケージ化されていないディレクトリのみをビルドする場合: - -```shell -npm run build -``` - -- すべてのターゲットをビルドする場合: - -```shell -npm run build:all -``` - -## DCCs コネクタのインストール - -#### 事前準備 - -最新リリース](https://github.com/cgwire/kitsu-publisher-next/releases/latest) から `connectors-{version}.zip` をダウンロードし、解凍します。 - -#### Blender (バージョン>2.80) - -- connectors/blender ディレクトリに移動する必要があります。 - -- Windows (PowerShell を使用): - -- プラグインのインストール手順に従う場合は、スクリプト「install.ps1」を右クリックして「PowerShellで実行」を選択し、プロンプトモードでスクリプトを実行します。Blenderのインストーラーで複数のインストールを行った場合、すべてのインストールに対してプラグインがインストールされます(ポータブルBlenderを選択した場合はインストールされません)。 - -- PowerShellコマンドラインでスクリプトを実行したい場合は、次のヘルプを参照してください。 - -```shell. -\install.ps1 -help -``` - -- Linuxの場合: - -- Blenderがシステムパッケージ(例:debまたはrpm)でインストールされている場合: - -```shell -bash ./install.sh --system -``` - -- Blenderが解凍されたディレクトリ(tar.xzアーカイブ)の場合: - -```shell -bash ./install.sh --unpacked-directory=PATH_TO_YOUR_PORTABLE_BLENDER -``` - -- Blender が snap パッケージでインストールされている場合: - -```shell -bash ./install.sh --snap -``` - -- macOS の場合: - -- Blender が dmg イメージまたは Homebrew でインストールされている場合: - -```shell -bash ./install.sh --dmg -``` - -#### Toon Boom Harmony - -- connectors/harmony ディレクトリに移動する必要があります。 - -- Windows(PowerShell を使用): - -- プラグインのインストール手順に従う場合は、スクリプト install.ps1 を右クリックして「PowerShell で実行」を選択し、プロンプトモードでスクリプトを実行します。Toon Boom Harmony のインストーラを使用して複数のインストールを行うと、すべてのインストールに対してプラグインがインストールされます。 - -- PowerShellのコマンドラインでスクリプトを実行したい場合は、次のヘルプを参照してください。 - -```shell. -\install.ps1 -help -``` - -- macOSの場合: - -- 近日公開予定 - -#### Unreal Editor (バージョン>=5) - -- connectors/unrealディレクトリに移動する必要があります。 - -- Windowsの場合 (PowerShellを使用): - -- プラグインのインストール手順に従う場合は、スクリプト「install.ps1」を右クリックして「PowerShellで実行」を選択し、プロンプトモードでスクリプトを実行する必要があります。Unreal Editorのインストーラーを使用して複数のインストールを行うと、すべてのインストールに対してプラグインがインストールされます。 - -- PowerShellのコマンドラインでスクリプトを実行する場合は、次のヘルプを参照してください。 - -```shell. -\install.ps1 -help -``` - -- Linuxの場合: - -- 近日公開予定 - -- macOSの場合: - -- 近日公開予定 - -## Kitsu Publisherでのプレビューの公開 - -まず、Kitsu Publisherとプラグインをコンピュータにインストールする必要があります。 - -## To-Doリストを確認する - -Kitsuの認証情報を使ってKitsu Publisherにログインします。Kitsuと同様のオプションを持つToDoリストが表示されます。 - -![Kitsu Publisher todo list](../img/getting-started/publisher_todolist.png) - -タスクにコメントを追加したり、公開したりするには、ステータスをクリックします。 - -![Kitsu Publisher todo list status](../img/getting-started/publisher_todolist_status.png) - -コメントパネルが開き、プレビューとこのタスクの全履歴が表示されます。 - -新しい要素として、タイムシートに直接アクセスできるようになりました。カーソルを移動させると、この特定のタスクに費やした時間数に合わせてタイムラインが調整されます。 - -![Kitsu PublisherのToDoリスト コメントパネル](../img/getting-started/publisher_todolist_comment.png) - -作業を公開する準備ができたら、**「レビューを追加して公開」**ボタンをクリックします。 - - -## プレビューを公開する プレビューを公開する - -プレビューを手動でアップロードするか、Kitsu Publisherに任せることもできます。 Kitsu Publisherは、開いているDCCとプロジェクトを検出します。 - -![Kitsu Publisher DCC リスト](../img/getting-started/publisher_dcc_list.png) - -お使いのカメラとレンダリングエンジンを選択し、スクリーンショットまたはフルアニメーションレンダリングのどちらかを選択します。 - -ここでは、例えば「スクリーンショット」オプションを選択します。Kitsu PublisherがDCCにレンダリングを実行させ、結果を表示します。 - -![Kitsu Publisher DCC スクリーンショット](../img/getting-started/publisher_dcc_screenshot.png) - -納得したら、**[確認]**をクリックし、コメントを追加してステータスを変更し、**[コメントを投稿]**をクリックしてプレビューをアップロードします。 - -![Kitsu Publisher コメント](../img/getting-started/publisher_post_comment.png) - -これで、Kitsuにログインした全員があなたのコメントと公開されたコメントを見ることができます。 - - -## パブリッシャーの設定 - -### 保存ディレクトリの変更とスクリプトの追加 - -アバターから設定にアクセスできます。 - -![Kitsu Publisher 設定メニュー](../img/getting-started/publisher_settings_menu.png) - -ここでは2つのオプションがあります。1つ目は、DCCsによって作成されたエクスポートのディレクトリです。 - -デフォルトでは、一時ディレクトリに設定されています。変更すると、この特定のフォルダがすべてのエクスポートに使用されます。ネットワークドライブを使用することもできます。 - -2つ目のオプションは、DCCでエクスポートした後、Kitsuにアップロードする前に実行できるコマンドについてです。 - -エクスポートされたファイルやフォルダなどに対して、直接コマンドやスクリプトを実行することができます。 - -![Kitsu Publisherの設定オプション](../img/getting-started/publisher_settings_option.png) - - -コマンドに変数を挿入することができます。 選択した変数を波括弧内に配置するだけです(例:{exportFile})。 これらの変数は実行時の環境変数にも含まれます。 以下にリストを示します。 - -- exportsDirectory (String) : エクスポートが行われるディレクトリパス。 -- exportFile (String): エクスポートされるファイルのパス。 -- exportIsAnimation (Boolean) : エクスポートがアニメーションの場合は true、それ以外は false。 -- exportIsScreenshot (Boolean) : エクスポートがスクリーンショットの場合は true、それ以外は false。 -- DCCName (String) : DCC の名前。 -- DCCVersion (String) : DCC のバージョン。 -- currentProject (String) : DCC で開かれている現在のプロジェクトのパス。 -- cameraSelected (String) : 選択されたカメラの名前。 -- rendererSelected (String) : 選択されたレンダラーの名前。 -- extensionSelected (String) : 選択された拡張子の名前。 -- entityName (String) : エンティティの名前。 -- entityTypeName (String) : エンティティタイプの名前。 -- episodeName (String) : エピソードタイプの名前。 -- fullEntityName (String) : エンティティの完全な名前。 -- projectName (String) : プロジェクトの名前。 -- taskStatusName (String) : タスクステータスの名前。 -- taskTypeName (String) : タスクタイプの名前 - -### エクスポートポップアップでの設定結果の表示 - -プレビューがレンダリングされたら、ディレクトリと起動されたスクリプトを確認できます。 - -![Kitsu Publisherの設定結果](../img/getting-started/publisher_settings_result.png) - -オプションアイコンをクリックすると、インポート前に実行されたコマンドを確認できます。 - -![Kitsu Publisherの設定結果詳細](../img/getting-started/publisher_settings_resul_detailt.png) - -すべてが正しいことを確認したら、通常通りコメントを投稿します。 diff --git a/docs/ja/review-weekly/README.md b/docs/ja/review-weekly/index.md similarity index 100% rename from docs/ja/review-weekly/README.md rename to docs/ja/review-weekly/index.md diff --git a/docs/ja/review/README.md b/docs/ja/review/index.md similarity index 97% rename from docs/ja/review/README.md rename to docs/ja/review/index.md index fb76542a62..9b0e23a06c 100644 --- a/docs/ja/review/README.md +++ b/docs/ja/review/index.md @@ -19,7 +19,7 @@ ![プレビュー背景の例](../img/getting-started/preview_background_example.png) 詳細は**カスタマイズ**のセクションを参照してください。 -[パイプラインのカスタマイズ](../configure-kitsu/README.md#3d-backgrounds) +[パイプラインのカスタマイズ](../configure-kitsu/index.md#3d-backgrounds) 使用する色を選択し、**鉛筆**ツールでプレビュー上に直接描画することができます ![鉛筆](../img/getting-started/draw.png)。 @@ -181,10 +181,10 @@ ![プレイリストコメント](../img/getting-started/playlist_comment.png) -[描画]ボタン ![描画ボタン](../img/getting-started/draw.png)を使用して、動画上に描画したり文字を入力したりすることができます([レビューの実行](../getting-started-production/README.md#perform-a-review)と同様)。 +[描画]ボタン ![描画ボタン](../img/getting-started/draw.png)を使用して、動画上に描画したり文字を入力したりすることができます(レビューの実行と同様)。 ## レビュールーム レビュールームは、効率的で同期されたデイリーズレビューセッションを行うために設計された共同作業スペースです。これにより、すべての参加者が同時に同じコンテンツを閲覧することができ、リアルタイムのフィードバックやディスカッションが容易になります。 -レビュールームについてさらに詳しく知りたい場合は、[このセクションを参照してください](../playlist-client/README.md#review-room)。 +レビュールームについてさらに詳しく知りたい場合は、[このセクションを参照してください](../playlist-client/index.md#review-room)。 diff --git a/docs/ja/schedules/README.md b/docs/ja/schedules/index.md similarity index 100% rename from docs/ja/schedules/README.md rename to docs/ja/schedules/index.md diff --git a/docs/ja/short-asset/README.md b/docs/ja/short-asset/index.md similarity index 97% rename from docs/ja/short-asset/README.md rename to docs/ja/short-asset/index.md index 8dab15e4bd..2d3c83c9b0 100644 --- a/docs/ja/short-asset/README.md +++ b/docs/ja/short-asset/index.md @@ -1,6 +1,6 @@ # アセットのみの制作を作成 -Kitsuでワークフローを設計し、より多くのユーザーを招待したので、今度は制作を作成します。 +Kitsuでワークフローを設計し、より多くのユーザーを招待したので、今度は制作を作成します。 **新しい制作を作成**ボタンをクリックします。 @@ -31,16 +31,16 @@ Kitsuでワークフローを設計し、より多くのユーザーを招待し タスクタイプをいくつか見落としていたことに気づいた場合は、後でそれらを作成することができます。 -[スタジオワークフロー](../first_production/README_configure_Kitsu.md#studio-workflow) のセクションを参照してください。 +[スタジオワークフロー](../configure-kitsu/index.md#studio-workflow) のセクションを参照してください。 ::: 次に、6はオプション部分です。アセットの入ったスプレッドシートがすでに用意されている場合。 詳細は**インポートCSV**のセクションを参照してください。 -[アセットのインポート](../batch-action/README.md#create-assets-from-a-csv-spreadsheet-file) +アセットのインポート -[Import shot](../batch-action/README.md#create-shots-from-a-csv-spreadsheet-file) +Import shot ![All done](../img/getting-started/all_done_go.png) ボタンですべてを検証します。 @@ -72,7 +72,7 @@ Kitsuのグローバルアセットページへようこそ。 ::: 詳細 メインメニューの詳細 **ワークスペース** -- マイタスク:割り当てられたタスク +- マイタスク:割り当てられたタスク - マイチェック:あなたの部署に応じて、ステータスが**フィードバックリクエスト**となっているすべてのタスク - マイプロダクション:プロダクションページの選択に戻ります。 @@ -145,7 +145,7 @@ Kitsuのグローバルアセットページへようこそ。 アセットページから開始しますが、制作ホームページを他のエンティティに変更することができます(設定ページを参照)。 ::: -::: 警告 +::: 警告 エピソードなど、追加のナビゲーションレベルが必要だと気づいた場合は、制作タイプを**テレビ番組**に変更する必要があります。 逆に、ショットが必要だと気づいた場合は、制作タイプを**アセットのみ**から**ショート**に変更する必要もあります。 @@ -256,7 +256,7 @@ Kitsuのグローバルアセットページへようこそ。 ::: 最後のアセットを追加したら、 -「確認」をクリックします。アセットが作成され、ウィンドウが閉じます。 +「確認」をクリックします。アセットが作成され、ウィンドウが閉じます。 ::: ヒント 「確認して戻る」をクリックしたものの、追加するアセットがもうないことに気づいた場合は、「閉じる」をクリックすると、ウィンドウがキャンセルされます。 @@ -353,7 +353,7 @@ Kitsuでは、それらをインポートする方法が2つあります。1つ ![アセット詳細キャスティング](../img/getting-started/asset_detail_page_concept.png) -**スケジュール**は、タスクタイプのページのデータを事前に記入している場合に表示されます。データがすでに記入されている場合は、ここで直接修正することができます。 +**スケジュール**は、タスクタイプのページのデータを事前に記入している場合に表示されます。データがすでに記入されている場合は、ここで直接修正することができます。 ![アセット詳細キャスティング](../img/getting-started/asset_detail_page_schedule.png) @@ -392,7 +392,7 @@ Kitsuでは、それらをインポートする方法が2つあります。1つ アセットのメインページの説明を拡張するには、最初の語句 (2) をクリックすると、説明の全文を含むポップアップが開きます。 -アセットを削除するには、FAQ : [アセットの削除方法](../faq-deletion/README.md##how-to-delete-an-asset)を参照してください。 +アセットを削除するには、FAQ : アセットの削除方法を参照してください。 ::: 詳細 CSV インポートによるアセットの更新 @@ -538,7 +538,7 @@ Kitsu は、コメントパネルの上部にリンクされたアセットを ![メタデータカラムの詳細](../img/getting-started/custom_column_detail.png) -::: 警告 +::: 警告 テキスト、数値、およびチェックボックスでは、各エンティティに異なる情報を追加できます。最初に計画する必要はありません。 リスト値、タグリスト、およびチェックリストでは、各エンティティに同じ選択肢が与えられます。さらに、これは現在入力する必要があります。 @@ -614,7 +614,7 @@ Kitsuでは、**編集**レベルでタスクを追跡することができま 新しい **タスクタイプ** を作成するには、**新しいタスクタイプの作成** セクションを参照してください。 -[新しいタスクタイプの作成](../configure-kitsu/README.md#タスクの種類) +[新しいタスクタイプの作成](../configure-kitsu/index.md#タスクの種類) グローバルライブラリで**タスクタイプ**を作成したら、**プロダクションライブラリ**に追加します。 @@ -750,7 +750,7 @@ Kitsuでは、**編集**レベルでタスクを追跡することができま ![インポートコピーデータ](../img/getting-started/import_copypas_breakdown.png) -次に、Kitsuのブレークダウンページに戻り、**インポート**アイコンをクリックします +次に、Kitsuのブレークダウンページに戻り、**インポート**アイコンをクリックします ![インポートアイコン](../img/getting-started/import.png)。 ポップアップウィンドウ「**CSVからデータをインポート**」が開きますので、「**CSVデータを貼り付け**」タブをクリックします。 diff --git a/docs/ja/short-shot/README.md b/docs/ja/short-shot/index.md similarity index 97% rename from docs/ja/short-shot/README.md rename to docs/ja/short-shot/index.md index 834fbb1050..db3e73a5c0 100644 --- a/docs/ja/short-shot/README.md +++ b/docs/ja/short-shot/index.md @@ -18,7 +18,7 @@ Kitsuでワークフローを設計し、さらに多くのユーザーを招待 ![制作物の追加](../img/getting-started/add_production_shot.png) -ショットのワークフロー(タスクタイプ)(3)と検証プロセス(タスクステータス)(4)を選択する必要があります。 +ショットのワークフロー(タスクタイプ)(3)と検証プロセス(タスクステータス)(4)を選択する必要があります。 ![Add a production Pipeline](../img/getting-started/add_production_pipe_shot.png) @@ -28,7 +28,7 @@ Kitsuでワークフローを設計し、さらに多くのユーザーを招待 タスクタイプをいくつか見落としていたことに気づいた場合は、後で作成できます。 -[スタジオワークフロー](../first_production/README_configure_Kitsu.md#studio-workflow)セクションを参照してください。 +[スタジオワークフロー](../configure-kitsu/index.md#studio-workflow)セクションを参照してください。 ::: 次に、5はオプションパーツです。ショットの入ったスプレッドシートをすでに持っている場合は、 @@ -36,7 +36,7 @@ Kitsuでワークフローを設計し、さらに多くのユーザーを招待 詳細は**インポートCSV**のセクションをご覧ください。 -[ショットのインポート](../batch-action/README.md#create-shots-from-a-csv-spreadsheet-file) +ショットのインポート ![All done](../img/getting-started/all_done_go.png)ボタンで全てを検証します。 @@ -68,7 +68,7 @@ Kitsuのグローバルアセットページへようこそ。 ::: 詳細 メインメニューの詳細 **ワークスペース** -- マイタスク:割り当てられたタスク +- マイタスク:割り当てられたタスク - マイチェック:所属部署に応じて、ステータスが**フィードバックリクエスト**となっているすべてのタスク - マイプロダクション:プロダクションページの選択に戻ります。 @@ -142,7 +142,7 @@ Production] を選択できます。実際の Production の名前とページ アセットページから開始しますが、制作ホームページを他のエンティティに変更することができます(設定ページを参照)。 ::: -::: 警告 +::: 警告 エピソードなど、追加のナビゲーションレベルが必要だと気づいた場合は、プロダクションタイプを「テレビ番組」に変更する必要があります。 逆に、オンリーショットではなくアセットが必要だと気づいた場合は、プロダクションタイプを「オンリーショット」から「ショート」に変更する必要があります。 @@ -283,9 +283,9 @@ Production] を選択できます。実際の Production の名前とページ ::: -ショットを削除するには、FAQを参照してください。 : [ショットの削除方法](../faq-deletion/README.md#how-to-delete-a-shot) +ショットを削除するには、FAQを参照してください。 : ショットの削除方法 -シーケンスを削除するには、FAQを参照してください。 : [シーケンスの削除方法](../faq-deletion/README.md#how-to-delete-a-sequence) +シーケンスを削除するには、FAQを参照してください。 : シーケンスの削除方法 @@ -399,7 +399,7 @@ Kitsuでは、インポートする方法が2つあります。1つ目は、`.cs ![アセット詳細キャスティング](../img/getting-started/shot_detail_page_casting.png) -**スケジュール**は、タスクタイプページのデータを事前に記入している場合に利用できます。データがすでに記入されている場合は、ここで直接修正することができます。 +**スケジュール**は、タスクタイプページのデータを事前に記入している場合に利用できます。データがすでに記入されている場合は、ここで直接修正することができます。 ![アセット詳細キャスティング](../img/getting-started/shot_detail_page_schedule.png) @@ -515,7 +515,7 @@ CSVインポート**を使用して、**NBフレーム**、**フレームIN**、 **CSVインポート**を使用して、フレーム範囲をすばやく更新することもできます。 -[CSVインポートでショット情報を更新](../batch-action/README.md#update-shots-information-with-csv-import) +CSVインポートでショット情報を更新 ショット値の履歴にもアクセスできます。 @@ -547,7 +547,7 @@ CSVインポート**を使用して、**NBフレーム**、**フレームIN**、 ![メタデータ カラム詳細](../img/getting-started/custom_column_detail.png) -::: 警告 +::: 警告 **テキスト**、**数値**、および**チェックボックス**では、各エンティティに対して異なる情報を追加することができます。 最初に計画する必要はありません。 **値のリスト**、**タグのリスト**、および**チェックリスト**では、各エンティティに対して同じ選択肢が提供されます。さらに、これは現在入力する必要があります。 @@ -624,7 +624,7 @@ Kitsuでは、**シーケンス**レベルでタスクを追跡することも 新しい **タスクタイプ** を作成するには、**新しいタスクタイプの作成** セクションを参照してください。 -[新しいタスクタイプの作成](../configure-kitsu/README.md#タスクの種類) +[新しいタスクタイプの作成](../configure-kitsu/index.md#タスクの種類) グローバルライブラリで**タスクタイプ**を作成したら、それを** プロダクションライブラリ**(設定ページ)に追加します。 @@ -677,7 +677,7 @@ Kitsuでは、**編集**レベルでタスクを追跡できます。 新しい **タスクタイプ** を作成するには、**新しいタスクタイプの作成** セクションを参照してください。 -[新しいタスクタイプの作成](../configure-kitsu/README.md#タスクの種類) +[新しいタスクタイプの作成](../configure-kitsu/index.md#タスクの種類) グローバルライブラリで**タスクタイプ**を作成したら、**プロダクションライブラリ**に追加します。 @@ -704,5 +704,3 @@ Kitsuでは、**編集**レベルでタスクを追跡できます。 ::: このページでは、アセットおよびショットエンティティの**Edit** を**Rename**(名前の変更)および**Delete**(削除)することができます。 - - diff --git a/docs/ja/short/README.md b/docs/ja/short/index.md similarity index 98% rename from docs/ja/short/README.md rename to docs/ja/short/index.md index 5eedc898d8..049b5c8b57 100644 --- a/docs/ja/short/README.md +++ b/docs/ja/short/index.md @@ -1,6 +1,6 @@ # ショートプロダクション(アセットとショット)を作成する -Kitsuでワークフローを設計し、さらに多くのユーザーを招待したので、今度はプロダクションを作成する番です。 +Kitsuでワークフローを設計し、さらに多くのユーザーを招待したので、今度はプロダクションを作成する番です。 [**新しいプロダクションを作成する**]ボタンをクリックします。 @@ -31,16 +31,16 @@ Kitsuでワークフローを設計し、さらに多くのユーザーを招待 タスクタイプをいくつか見落としていたことに気づいた場合は、後で作成することができます。 -[スタジオワークフロー](../first_production/README_configure_Kitsu.md#studio-workflow) のセクションを参照してください。 +[スタジオワークフロー](../configure-kitsu/index.md#studio-workflow) のセクションを参照してください。 ::: 次に、7と8はオプション部分です。アセット/ショットの一覧が記載されたスプレッドシートがすでに用意されている場合は、 **インポートCSV**のセクションを参照してください。 -[アセットのインポート](../batch-action/README.md#create-assets-from-a-csv-spreadsheet-file) +アセットのインポート -[ショットのインポート](../batch-action/README.md#create-shots-from-a-csv-spreadsheet-file) +ショットのインポート ![All done](../img/getting-started/all_done_go.png) ボタンですべてを検証します。 @@ -148,7 +148,7 @@ Kitsu のグローバルアセットページへようこそ。 アセットページから開始しますが、制作のホームページを他のエンティティに変更することができます(設定ページを参照)。 ::: -::: 警告 +::: 警告 エピソードなど、追加のナビゲーションレベルが必要だと気づいた場合は、制作タイプをテレビ番組に変更する必要があります。 逆に、アセットやショットが必要ないと気づいた場合は、制作タイプを「アセットのみ」または「ショットのみ」に切り替える必要があります。 @@ -260,7 +260,7 @@ Kitsu のグローバルアセットページへようこそ。 ::: 最後のアセットを追加したら、 -「確認」をクリックします。これによりアセットが作成され、ウィンドウが閉じます。 +「確認」をクリックします。これによりアセットが作成され、ウィンドウが閉じます。 ::: ヒント 「確認して戻る」をクリックし、追加するアセットがもうないことに気づき、「閉じる」をクリックすると、ウィンドウがキャンセルされます。 @@ -357,11 +357,11 @@ Kitsuでは、それらをインポートする方法が2つあります。1つ ![アセット詳細キャスティング](../img/getting-started/asset_detail_page_concept.png) -**スケジュール**は、タスクタイプページのデータを事前に記入していれば利用できます。すでにデータを記入している場合は、ここで直接修正できます。 +**スケジュール**は、タスクタイプページのデータを事前に記入していれば利用できます。すでにデータを記入している場合は、ここで直接修正できます。 ![アセット詳細キャスティング](../img/getting-started/asset_detail_page_schedule.png) -さまざまなタスクタイプでアップロードされた**プレビューファイル**、 +さまざまなタスクタイプでアップロードされた**プレビューファイル**、 ![アセット詳細キャスティング](../img/getting-started/asset_detail_page_file.png) @@ -396,7 +396,7 @@ Kitsuでは、それらをインポートする方法が2つあります。1つ アセットのメインページの説明を拡張するには、最初の語句 (2) をクリックすると、説明の全文を含むポップアップが開きます。 -アセットを削除するには、FAQ : [アセットの削除方法](../faq-deletion/README.md##how-to-delete-an-asset)を参照してください。 +アセットを削除するには、FAQ : アセットの削除方法を参照してください。 ::: 詳細 CSV インポートによるアセットの更新 @@ -581,9 +581,9 @@ Kitsu は、リンクされたアセットをコメントパネルの上部に ::: -ショットを削除するには、FAQを参照してください。 : [ショットの削除方法](../faq-deletion/README.md#how-to-delete-a-shot) +ショットを削除するには、FAQを参照してください。 : ショットの削除方法 -シーケンスを削除するには、FAQを参照してください。 : [シーケンスの削除方法](../faq-deletion/README.md#how-to-delete-a-sequence) +シーケンスを削除するには、FAQを参照してください。 : シーケンスの削除方法 @@ -697,7 +697,7 @@ Kitsuでは、インポートする方法が2つあります。1つ目は、`.cs ![アセット詳細キャスティング](../img/getting-started/shot_detail_page_casting.png) -**スケジュール**は、タスクタイプページのデータを事前に記入している場合に利用できます。すでにデータを記入している場合は、ここで直接修正できます。 +**スケジュール**は、タスクタイプページのデータを事前に記入している場合に利用できます。すでにデータを記入している場合は、ここで直接修正できます。 ![アセット詳細キャスティング](../img/getting-started/shot_detail_page_schedule.png) @@ -813,7 +813,7 @@ CSVインポート**を使用して、**NBフレーム**、**フレームIN**、 **CSVインポート**を使用してフレーム範囲を素早く更新することもできます。 -[CSVインポートでショット情報を更新](../batch-action/README.md#update-shots-information-with-csv-import) +CSVインポートでショット情報を更新 ショット値の履歴にもアクセスできます。 @@ -845,7 +845,7 @@ CSVインポート**を使用して、**NBフレーム**、**フレームIN**、 ![メタデータカラムの詳細](../img/getting-started/custom_column_detail.png) -::: 警告 +::: 警告 テキスト**、**数値**、および**チェックボックス**では、エンティティごとに異なる情報を追加できます。事前に計画しておく必要はありません。 リスト**、**タグ**、および**チェックリスト**では、エンティティごとに同じ選択肢が提供されます。さらに、これは現在入力する必要があります。 @@ -922,7 +922,7 @@ Kitsuでは、**シーケンス**レベルでタスクを追跡することも 新しい **タスクタイプ** を作成するには、**新しいタスクタイプの作成** セクションを参照してください。 -[新しいタスクタイプの作成](../configure-kitsu/README.md#タスクの種類) +[新しいタスクタイプの作成](../configure-kitsu/index.md#タスクの種類) グローバルライブラリで**タスクタイプ**を作成したら、それを** プロダクションライブラリ**(設定ページ)に追加します。 @@ -975,7 +975,7 @@ Kitsuでは、**編集**レベルでタスクを追跡できます。 新しい **タスクタイプ** を作成するには、**新しいタスクタイプの作成** セクションを参照してください。 -[新しいタスクタイプの作成](../configure-kitsu/README.md#タスクの種類) +[新しいタスクタイプの作成](../configure-kitsu/index.md#タスクの種類) グローバルライブラリで**タスクタイプ**を作成したら、**プロダクションライブラリ**に追加します。 @@ -1126,7 +1126,7 @@ Kitsuでは、**編集**レベルでタスクを追跡できます。 ![インポートコピーデータ](../img/getting-started/import_copypas_breakdown.png) -次に、Kitsuのブレークダウンページに戻り、**インポート**アイコンをクリックします +次に、Kitsuのブレークダウンページに戻り、**インポート**アイコンをクリックします ![インポートアイコン](../img/getting-started/import.png)。 ポップアップウィンドウ「**CSVからデータをインポート**」が開きますので、「**CSVデータを貼り付け**」タブをクリックします。 @@ -1168,7 +1168,7 @@ Kitsuでは、**編集**レベルでタスクを追跡できます。 ::: ヒント **自動化**を使用して、重労働を軽減することができます。 -「準備完了」トリガーで自動化を設定できます。 +「準備完了」トリガーで自動化を設定できます。 ::: アセットの状態を「準備完了」に変更したので、ショットページで結果を確認できます。 diff --git a/docs/ja/status-publish-review/README.md b/docs/ja/status-publish-review/index.md similarity index 98% rename from docs/ja/status-publish-review/README.md rename to docs/ja/status-publish-review/index.md index da2667fbe9..2ce640541b 100644 --- a/docs/ja/status-publish-review/README.md +++ b/docs/ja/status-publish-review/index.md @@ -126,7 +126,7 @@ Kitsu は、アップロードしたコンセプトにリンク可能なすべ **ファイルを添付**をクリックして添付ファイルを検証します。 -次に、ドロップダウンメニューから必要な**ステータス**を選択します。 +次に、ドロップダウンメニューから必要な**ステータス**を選択します。 ![ステータスリスト](../img/getting-started/status_list.png) @@ -343,7 +343,7 @@ WFA**ステータスのように、**「フィードバックリクエスト」* また、**CSVインポート**を使用して、カスタムメタデータ列を素早く埋めることもできます。 まず、**メタデータ列**をKitsuに作成し、スプレッドシートに追加し、データを**CSVインポート**にコピー&ペーストします。 -[CSVインポートでショット情報を更新](../batch-action/README.md#update-shots-information-with-csv-import) +CSVインポートでショット情報を更新 # プレイリスト @@ -454,7 +454,7 @@ Kitsuは**Animation**ステージで**WFA**ステータスを持つショット ![プレイリストのコメント](../img/getting-started/playlist_comment.png) ビデオ上に描画したり、文字を入力したりすることができます( -[レビューを行う](../getting-started-production/README.md#perform-a-review)と同じ方法で、**描画**ボタンを使用します![描画ボタン](../img/getting-started/draw.png) +[レビューを行う](../review/index.md)と同じ方法で、**描画**ボタンを使用します![描画ボタン](../img/getting-started/draw.png) ## レビュールーム diff --git a/docs/ja/status/README.md b/docs/ja/status/index.md similarity index 100% rename from docs/ja/status/README.md rename to docs/ja/status/index.md diff --git a/docs/ja/studio-report/README.md b/docs/ja/studio-report/index.md similarity index 100% rename from docs/ja/studio-report/README.md rename to docs/ja/studio-report/index.md diff --git a/docs/ja/supervisor-tasks/README.md b/docs/ja/supervisor-tasks/index.md similarity index 100% rename from docs/ja/supervisor-tasks/README.md rename to docs/ja/supervisor-tasks/index.md diff --git a/docs/ja/supervisor-team/README.md b/docs/ja/supervisor-team/index.md similarity index 100% rename from docs/ja/supervisor-team/README.md rename to docs/ja/supervisor-team/index.md diff --git a/docs/ja/team/README.md b/docs/ja/team/index.md similarity index 100% rename from docs/ja/team/README.md rename to docs/ja/team/index.md diff --git a/docs/ja/thumbnails/README.md b/docs/ja/thumbnails/index.md similarity index 100% rename from docs/ja/thumbnails/README.md rename to docs/ja/thumbnails/index.md diff --git a/docs/ja/tvshow/README.md b/docs/ja/tvshow/index.md similarity index 98% rename from docs/ja/tvshow/README.md rename to docs/ja/tvshow/index.md index 288255c5b9..db1969f93b 100644 --- a/docs/ja/tvshow/README.md +++ b/docs/ja/tvshow/index.md @@ -32,7 +32,7 @@ Kitsuでワークフローを設計し、チームメンバーを追加したの タスクタイプをいくつか見落としていたことに気づいた場合は、後で作成することができます。 -[Kitsuの入門ガイド](../configure-kitsu/README.md)を参照してください。 +[Kitsuの入門ガイド](../configure-kitsu/index.md)を参照してください。 ::: 次に、ステップ7と8はオプションです。アセットまたはショットの一覧がすでにスプレッドシートにある場合は、**CSVのインポート**セクションを参照してください。 @@ -218,7 +218,7 @@ WORKSPACEセクションは、アーティストには表示されない「My Ch - **アセットタイプ**を選択するよう求められます(1)。新しいアセットタイプを追加していない場合、Kitsuは「キャラクター」、「環境」、「FX」、「小道具」などの例を提供します。まずはキャラクターから始めましょう。 ::: ヒント -アセットタイプのリストとタスクパイプラインはカスタマイズすることもできます。 [アセットタイプのワークフローを参照](../configure-kitsu/README.md#specific-asset-types-workflow) +アセットタイプのリストとタスクパイプラインはカスタマイズすることもできます。 [アセットタイプのワークフローを参照](../configure-kitsu/index.md#specific-asset-types-workflow) ::: このアセットをエピソードにリンクし(Kitsuではデフォルトで編集や削除ができない**Main Pack**が提供されます)、最初のエピソードとして**E01**を選択して作業を開始します。 E01の名前を変更したり削除することもできます。 @@ -348,7 +348,7 @@ Kitsuでは、インポートする方法が2つあります。1つ目は、`.cs アセットのメインページで詳細を表示するには、最初の文字 (2) をクリックすると、詳細が記載されたポップアップが開きます。 -アセットを削除するには、FAQ: [アセットの削除方法](../faq-deletion/README.md##how-to-delete-an-asset)を参照してください。 +アセットを削除するには、FAQ: アセットの削除方法を参照してください。 ::: 詳細 CSV インポートによるアセットの更新 CSV インポートを使用すると、データをすばやく更新することができます。 @@ -393,7 +393,7 @@ CSV インポートを使用すると、データをすばやく更新するこ アセットを作成した後で、タスクが不足していることに気づいた場合でも、追加することができます。 -まず、不足しているタスクタイプが設定ページのタスクタイプタブに追加されていることを確認してください(そうでなければ、[Kitsuの使い方](../configure-kitsu/README.md)を参照)。 +まず、不足しているタスクタイプが設定ページのタスクタイプタブに追加されていることを確認してください(そうでなければ、[Kitsuの使い方](../configure-kitsu/index.md)を参照)。 次に、アセットページに戻り、**+ タスクを追加**をクリックします。 @@ -488,7 +488,7 @@ Kitsu は、リンクされたアセットをコメントパネルの上部に ::: 警告 ショットを作成すると、設計したタスクワークフローが適用され、すべてのタスクがショットと同時に作成されます。 -[Kitsuの使い方](../configure-kitsu/README.md)を参照してください。 +[Kitsuの使い方](../configure-kitsu/index.md)を参照してください。 ::: ショットの作成用に新しいポップアップが開きます。 @@ -537,9 +537,9 @@ Kitsuは最初のエピソードとして例として**E01**を提供してい ![シーケンスの変更](../img/getting-started/change_seq.png) ::: -ショットを削除するには、FAQを参照してください。[ショットの削除方法](../faq-deletion/README.md#how-to-delete-a-shot) +ショットを削除するには、FAQを参照してください。ショットの削除方法 -シーケンスを削除するには、FAQを参照してください。[シーケンスの削除方法](../faq-deletion/README.md#how-to-delete-a-sequence) +シーケンスを削除するには、FAQを参照してください。シーケンスの削除方法 @@ -647,7 +647,7 @@ LGC制作のEDLの例を以下に示します。 ![アセット詳細キャスティング](../img/getting-started/shot_detail_page_casting_tv.png) -タスクタイプページのデータを事前に記入している場合は、**スケジュール**を利用できます。データがすでに記入されている場合は、ここで直接修正できます。 +タスクタイプページのデータを事前に記入している場合は、**スケジュール**を利用できます。データがすでに記入されている場合は、ここで直接修正できます。 ![アセット詳細キャスティング](../img/getting-started/shot_detail_page_schedule_tv.png) @@ -715,7 +715,7 @@ CSVインポート**を使用して、**NBフレーム**、**フレームIN**、 ## ショットを作成した後にタスクを追加する ショットを作成した後にタスクが不足していることに気づいた場合でも、追加することができます。 -まず、不足しているタスクの種類がタスクの種類タブの設定ページに追加されていることを確認します(そうでなければ、http://localhost:8080/tvshow/#update-your-shots)。 +まず、不足しているタスクの種類がタスクの種類タブの設定ページに追加されていることを確認します(そうでなければ)。 次に、ショットのページに戻り、+タスクを追加をクリックします。 @@ -749,7 +749,7 @@ CSVインポート**を使用して、**NBフレーム**、**フレームIN**、 ![ショット編集ページ](../img/getting-started/shot_framerange_global_edit.png) -4. **CSV インポート:** フレーム範囲を素早く更新するには、CSV インポートも利用できます。 [CSV インポートでショット情報を更新](README.md#update-your-shots) +4. **CSV インポート:** フレーム範囲を素早く更新するには、CSV インポートも利用できます。 [CSV インポートでショット情報を更新](#update-your-shots) 5. **ショット履歴へのアクセス:** フレーム範囲を含むショット値の履歴を表示できます。 @@ -784,7 +784,7 @@ CSVインポート**を使用して、**NBフレーム**、**フレームIN**、 ![メタデータ カラム詳細](../img/getting-started/custom_column_detail.png) -::: 警告 +::: 警告 - **テキスト**、**数値**、および**チェックボックス**は、事前の計画なしに各エンティティに異なる情報を追加することができます。 - **値のリスト**、**タグのリスト**、および**チェックリスト**は、各エンティティに同じオプションを提供し、事前に記入する必要があります。 @@ -850,7 +850,7 @@ Kitsuでは、**シーケンス**レベルでタスクを追跡することも このページを使用するには、まず**グローバルライブラリ**に**シーケンス**属性を持つ専用のタスクタイプを作成する必要があります。 -[新しいタスクタイプの作成方法](../configure-kitsu/README.md#studio-workflow-create-a-new-task-type)を参照してください +[新しいタスクタイプの作成方法](../configure-kitsu/index.md#studio-workflow-create-a-new-task-type)を参照してください グローバルライブラリに**タスクタイプ**を作成したら、それを** プロダクションライブラリ**(設定ページ)に追加します。 @@ -895,7 +895,7 @@ Kitsuでは、**編集**レベルでタスクを追跡することができま ::: 警告 デフォルトでは、**Edit** ページは、**プロダクションライブラリ**(設定ページ)にそれ用のタスクタイプが作成されるまで表示されません。 -[新しいタスクタイプの作成方法](../configure-kitsu/README.md#studio-workflow-create-a-new-task-type)を参照してください。 +[新しいタスクタイプの作成方法](../configure-kitsu/index.md#studio-workflow-create-a-new-task-type)を参照してください。 ::: このページを使用するには、まず**グローバルライブラリ**で**編集**属性を持つ専用のタスクタイプを作成する必要があります。 @@ -1039,7 +1039,7 @@ Kitsuでは、**編集**レベルでタスクを追跡することができま ![データのコピーをインポート](../img/getting-started/import_copypas_breakdown_tv.png) -次に、Kitsuのブレークダウンページに戻り、**インポート**アイコンをクリックします +次に、Kitsuのブレークダウンページに戻り、**インポート**アイコンをクリックします ![インポートアイコン](../img/getting-started/import.png)。 ポップアップウィンドウ「**CSVからデータをインポート**」が開きますので、「**CSVデータを貼り付け**」タブをクリックします。 @@ -1080,9 +1080,9 @@ Kitsuでは、**編集**レベルでタスクを追跡することができま ::: ヒント **自動化**を使用して、作業の大部分を自動化することができます。 -**準備完了**トリガーで自動化を設定できます。 +**準備完了**トリガーで自動化を設定できます。 -[ステータス自動化の作成方法](../configure-kitsu/README.md#automation)を参照 +[ステータス自動化の作成方法](../configure-kitsu/index.md#automation)を参照 ::: diff --git a/docs/ja/videogame/README.md b/docs/ja/videogame/index.md similarity index 97% rename from docs/ja/videogame/README.md rename to docs/ja/videogame/index.md index 00eb32efbb..fa493a2e0a 100644 --- a/docs/ja/videogame/README.md +++ b/docs/ja/videogame/index.md @@ -1,6 +1,6 @@ # ビデオゲームの制作 -Kitsuでワークフローを設計し、より多くの人を招待したので、今度は制作を開始します。 +Kitsuでワークフローを設計し、より多くの人を招待したので、今度は制作を開始します。 [**新しい制作を作成**]ボタンをクリックします。 @@ -31,16 +31,16 @@ Kitsuでワークフローを設計し、より多くの人を招待したので タスクタイプをいくつか見落としていたことに気づいた場合は、後で作成することができます。 -[スタジオワークフロー](../first_production/README_configure_Kitsu.md#studio-workflow) のセクションを参照してください。 +[スタジオワークフロー](../configure-kitsu/index.md#studio-workflow) のセクションを参照してください。 ::: 次に、7と8はオプション部分です。アセット/マップのスプレッドシートをすでに持っている場合は、 **インポートCSV**のセクションを参照してください。 -[アセットのインポート](../batch-action/README.md#create-assets-from-a-csv-spreadsheet-file) +アセットのインポート -[マップのインポート](../batch-action/README.md#create-shots-from-a-csv-spreadsheet-file) +マップのインポート ![All done](../img/getting-started/all_done_go.png) ボタンですべてを検証します。 @@ -68,7 +68,7 @@ Kitsuのグローバルアセットページへようこそ。 ::: 詳細 メインメニューの詳細 **ワークスペース** -- マイタスク:割り当てられたタスク +- マイタスク:割り当てられたタスク - マイチェック:あなたの部署に応じて、ステータスが**フィードバックリクエスト**となっているすべてのタスク - マイプロダクション:プロダクションページの選択に戻ります。 @@ -144,7 +144,7 @@ Kitsuのグローバルアセットページへようこそ。 アセットページから開始しますが、制作のホームページを他のエンティティに変更することができます(設定ページを参照)。 ::: -::: 警告 +::: 警告 チャプターとして追加のナビゲーションレベルが必要だと気づいた場合は、制作タイプを**TV Show**に変更する必要があります。 逆に、**assets**や**maps**が必要ないことに気づいた場合は、制作タイプを**Only Assets**または**Only Maps**に切り替える必要があります。 @@ -255,7 +255,7 @@ Kitsuのグローバルアセットページへようこそ。 ::: 最後のアセットを追加したら、 -「確認」をクリックします。これによりアセットが作成され、ウィンドウが閉じます。 +「確認」をクリックします。これによりアセットが作成され、ウィンドウが閉じます。 ::: ヒント 「確認して戻る」をクリックし、追加するアセットがもうないことに気づき、「閉じる」をクリックすると、ウィンドウがキャンセルされます。 @@ -352,7 +352,7 @@ Kitsuでは、それらをインポートする方法が2つあります。1つ ![アセット詳細キャスティング](../img/getting-started/asset_detail_page_concept.png) -**スケジュール**は、タスクタイプページのデータを事前に記入していれば利用できます。データがすでに記入されている場合は、ここで直接修正することができます。 +**スケジュール**は、タスクタイプページのデータを事前に記入していれば利用できます。データがすでに記入されている場合は、ここで直接修正することができます。 ![アセット詳細キャスティング](../img/getting-started/asset_detail_page_schedule.png) @@ -391,7 +391,7 @@ Kitsuでは、それらをインポートする方法が2つあります。1つ アセットのメインページの説明を拡張するには、最初の語句 (2) をクリックすると、説明の全文を含むポップアップが開きます。 -アセットを削除するには、FAQ : [アセットの削除方法](../faq-deletion/README.md##how-to-delete-an-asset)を参照してください。 +アセットを削除するには、FAQ : アセットの削除方法を参照してください。 ::: 詳細 CSV インポートによるアセットの更新 @@ -413,7 +413,7 @@ CSV インポートを使用すると、データをすばやく更新するこ ![インポート コピーデータ](../img/getting-started/import_copypas_asset.png) -次に、Kitsuのアセットページに戻り、**インポート**アイコンをクリックします +次に、Kitsuのアセットページに戻り、**インポート**アイコンをクリックします ![インポートアイコン](../img/getting-started/import.png)。 ポップアップウィンドウ「**CSVからデータをインポート**」が開きますので、「**CSVデータを貼り付け**」タブをクリックします。 @@ -575,9 +575,9 @@ Kitsu は、コメントパネルの上部にリンクされたアセットを ::: -マップを削除するには、FAQを参照してください。 : [マップの削除方法](../faq-deletion/README.md#how-to-delete-a-shot) +マップを削除するには、FAQを参照してください。 : マップの削除方法 -レベルを削除するには、FAQを参照してください。 : [レベルの削除方法](../faq-deletion/README.md#how-to-delete-a-sequence) +レベルを削除するには、FAQを参照してください。 : レベルの削除方法 @@ -691,7 +691,7 @@ Kitsuでは、インポートする方法が2つあります。1つ目は、`.cs ![アセット詳細キャスティング](../img/getting-started/shot_detail_page_casting.png) -**スケジュール**は、タスクタイプページのデータを事前に記入している場合に利用できます。データがすでに記入されている場合は、ここで直接修正することができます。 +**スケジュール**は、タスクタイプページのデータを事前に記入している場合に利用できます。データがすでに記入されている場合は、ここで直接修正することができます。 ![アセット詳細キャスティング](../img/getting-started/shot_detail_page_schedule.png) @@ -807,7 +807,7 @@ CSV インポート**を使用して、**NB フレーム**、**フレーム IN** **CSVインポート**を使用してフレーム範囲を素早く更新することもできます。 -[CSVインポートでマップ情報を更新](../batch-action/README.md#update-shots-information-with-csv-import) +CSVインポートでマップ情報を更新 マップ値の履歴にもアクセスできます。 @@ -839,7 +839,7 @@ CSV インポート**を使用して、**NB フレーム**、**フレーム IN** ![メタデータカラムの詳細](../img/getting-started/custom_column_detail.png) -::: 警告 +::: 警告 テキスト**、**数値**、および**チェックボックス**では、エンティティごとに異なる情報を追加できます。事前に計画しておく必要はありません。 リスト**、**タグ**、および**チェックリスト**では、エンティティごとに同じ選択肢が提供されます。さらに、これは現在入力する必要があります。 @@ -916,7 +916,7 @@ Kitsuでは、**レベル**レベルでタスクを追跡することもでき 新しい **タスクタイプ** を作成するには、**新しいタスクタイプの作成** セクションを参照してください。 -[新しいタスクタイプの作成](../configure-kitsu/README.md#タスクの種類) +[新しいタスクタイプの作成](../configure-kitsu/index.md#タスクの種類) グローバルライブラリに**タスクタイプ**を作成したら、それを** プロダクションライブラリ**(設定ページ)に追加します。 @@ -969,7 +969,7 @@ Kitsuでは、**編集**レベルでタスクを追跡できます。 新しい **タスクタイプ** を作成するには、**新しいタスクタイプの作成** セクションを参照してください。 -[新しいタスクタイプの作成](../configure-kitsu/README.md#タスクの種類) +[新しいタスクタイプの作成](../configure-kitsu/index.md#タスクの種類) **グローバルライブラリ**に**タスクタイプ**を作成したら、**プロダクションライブラリ**に追加します。 @@ -1120,7 +1120,7 @@ Kitsuでは、**編集**レベルでタスクを追跡できます。 ![インポートコピーデータ](../img/getting-started/import_copypas_breakdown.png) -次に、Kitsuのブレークダウンページに戻り、**インポート**アイコンをクリックします +次に、Kitsuのブレークダウンページに戻り、**インポート**アイコンをクリックします ![インポートアイコン](../img/getting-started/import.png)。 ポップアップウィンドウ「**CSVからデータをインポート**」が開きますので、「**CSVデータを貼り付け**」タブをクリックします。 @@ -1162,7 +1162,7 @@ Kitsuでは、**編集**レベルでタスクを追跡できます。 ::: ヒント **自動化**を使用して、重労働を軽減することができます。 -**準備完了**トリガーで自動化を設定できます。 +**準備完了**トリガーで自動化を設定できます。 ::: アセットの状態をいくつか**準備完了**に変更したので、マップページで結果を確認できます。 diff --git a/docs/logo.png b/docs/logo.png new file mode 100644 index 0000000000..880bb6b6f6 Binary files /dev/null and b/docs/logo.png differ diff --git a/docs/nft/README.md b/docs/nft/README.md deleted file mode 100644 index 51f60bd97d..0000000000 --- a/docs/nft/README.md +++ /dev/null @@ -1,958 +0,0 @@ -# Create a NFT Collection - -Now that you have designed your workflow in Kitsu and invited more people, it's time to create your production. - -Click on the **Create a new -production** button. - -![Create a production](../img/getting-started/create_production.png) - -Enter your production name, choose **short** as the **type**, and then select your production style (2D, 3D). - - -Then, you must fill in technical information, such as the number of FPS, the Ration, and the Resolution. - -All these data will be used when Kitsu re-encodes the video previews uploaded. - -Then, you need to define your production's start and end dates. - -![Add a production](../img/getting-started/add_production.png) - -You can define your production workflow in the next part, 3 to 6. - - - -You need to select your asset task type (3), NFT Collection task type (4), task status (5), and asset types (6). - -![Add a production Pipeline](../img/getting-started/add_production_pipe.png) - - -::: tip -To create your **Production Workflow**, you will select Task Types from the Global Library. - -If you realize you missed some Task Types, you can create them later. - -See the [Studio Workflow](../configure-kitsu/README.md#studio-workflows) section. -::: - -Then, 7 and 8 are the option parts. If you already have a spreadsheet with your asset/NFT Collection. - -See the **import CSV** section for more details. - -[Import asset](../nft/README.md#create-an-asset) - -[Import NFT Collection](../nft/README.md#create-a-nft-collection) - -Validate everything with the ![All done](../img/getting-started/all_done_go.png) button. - - - - - - -## Introduction to the Kitsu Global Page - - - -Welcome to Kitsu's global asset page. - -Let's take a look around. - -![Presentation of the global page](../img/getting-started/presentation_global.png) - -On the top part (1), you have the **global navigation**, which is always visible throughout all the production pages. - -**From left to right:** - - -### Main Menu - -By clicking on the top left button, Kitsu![Main menu button](../img/getting-started/main_button.png) (or your Studio logo), you will open the Main Menu. - -On the Main Menu, you will find direct access to your assigned tasks, productions, global and team schedules, the workflow customization page, and the Kitsu settings. - -::: details Main Menu Details -**WORKSPACE** -- My Tasks: your assigned tasks -- My Checks: All the tasks with status **Is Feedback Request** depending on your department(s) -- My Productions: Get back to the selection on the production page. - - -**STUDIO** -- Productions -- People -- Timesheets -- Main Schedule -- Team Schedule -- All tasks -- News Feed -- Entity Search - - -**ADMIN** -- Departments -- Task Types -- Asset Types -- Custom Actions -- Automation -- 3D Backgrounds -- Bots -- Settings -- Logs - -::: warning Permission Visibility -The WORKSPACE section is enabled for all permissions except My Checks, which artists do not see. - -Artist (and above) can also see their own **Timesheets**, and have access to the **Entity Search** -::: - -### Navigation - -You will see the navigation dropdown menu on the right of the main menu icon. - -![Presentation of the global page](../img/getting-started/presentation_global_header.png) - - -You can choose between production. The name of the actual production and actual page are always displayed. - -You can use the dropdown menu to navigate from production to production (if you have several). - -Once you have selected a production, the next dropdown menu will help you navigate through the different pages of this production. - - -::: details Navigation details -The first section is about the tracking of your tasks -- Assets -- NFT Collections -- Sequence -- Edits (If you have created specific tasks) - -The second section is more about the side of the production -- Concepts -- Breakdown -- Playlists -- News feed - -The third section is about statistics -- Sequence Stats -- Asset Type Stats - -The fourth section is related to Team Management -- Schedule -- Quotas -- Team - -The fifth section is about the settings of your production -- Settings - -::: tip -You start with the asset page, but you can change your production homepage to other entities (see setting page) -::: - -::: warning -If you realize you need an extra level of navigation, such as **Episodes**, you need to change your production Type to a **TV Show**. - -If, on the contrary, you realize you don't need the **assets** or the **NFT Collections**, you also need to switch your production type to **Only Assets** or **Only NFT Collections**. -::: - -### Global Search, News, Notification and Documentation -You have the global search on the right of the navigation dropdown menu. It's a quick access search that will display the four first results. If you need more results and filtering options, see the **Entity Search** page. - - -The next icon ![News](../img/getting-started/canny.png) is a direct link to our news and feedback page. - -You can see all the new features with an animated gif and also add suggestions about the next feature you want to see in Kitsu. - -Next, the bell icon ![Notification](../img/getting-started/notification_icon_on.png) displays your notifications (assignments, comments, tags). The number of unread notifications will be shown on the bell icon. There are various filters to help you stay on top of updates and revisit important ones when needed. You can easily mark notifications as read or unread or quickly filter by watching/non-watching to focus on what matters most and declutter your feed. - -The last icon before your avatar is the documentation button. -![documentation button](../img/getting-started/documentation_button.png), that you are reading right now! - - -### Personal Settings -You can click on your avatar to open your menu (setting, documentation, etc.). - -![Profile enlarged](../img/getting-started/profil_enlarge.png). - -## The Tasks Spreadsheet - -### Entity spreadsheet - -The second part of the screen is common to all the entities (asset, NFT Collection, sequence, Edit). This is the global tasks spreadsheet. - -Here, you see the status, assignation, priority, etc, for each task. - -::: tip -The first line and column header of the spreadsheet always appear at the top of the page, even if you scroll down. - -You can also **Stick** other columns to keep them visible at all times. -::: - -### Filters - -The first element on the left is the filter box. You can type anything you want for simple filtering, sequence, asset type, etc. - -If you need more advanced filtering, please use the filter builder button. - -![Filter Builder](../img/getting-started/filter_builder.png) - -You can then save all the filters and use them as your pages. - -### Simplify the display - -On the right part of the screen, there are some buttons (from left to right) to hide or display the assignation, hide or display the extra column, enlarge or reduce the thumbnail, -![display and Hide option](../img/getting-started/display_hide_option.png) - - -### Import / Export -batch import thumbnail ![batch import thumbnail](../img/getting-started/add_thumbnails.png), and finally import ![Import button](../img/getting-started/import.png) or export ![export button](../img/getting-started/export.png) data. - - - -### Metadata column -Below, you have the name of the column. the (+) next to **Name** ![Add metadata column](../img/getting-started/add_column_custom.png) is here to create a new metadata column. Then, you have the name of the task type column. - -### Customize the view -On the far right of the screen, next to the scroll bar, is the option to hide and display a text column - -![Display/hide text column](../img/getting-started/visible_column_detail.png). - - -### Sum-up of your view -The last part (4), at the bottom of the screen, is the sum-up of your displayed page. It means the sum-up will update if you filter the page. - -You can see the number of elements (assets or NFT Collections), the total number of estimated days, and the total number of days already spent. - - - -## Create an Asset -### Create your first asset -So, now that we have created our production and have a general grasp of the Kitsu interface, it's time to create our very first asset. - -On the asset page, click on **Add assets**. - -![Asset page first time](../img/getting-started/add_assets_first.png) - -::: warning -When you create an asset, your task workflow will be applied, and **all the tasks will be created simultaneously as the asset**. -::: - -A pop-up window opens: - -It asks you to choose the **Asset Type** (1). -If you didn't add a new asset type, Kitsu will provide you with examples such as Characters, Environment, FX, Props, etc. -Let's start with a character. - -::: tip -You can also customize the asset type list and the tasks pipeline. See the guide ( -[Customization of the workflow](../configure-kitsu/README.md#asset-types)) for more details -::: - -We give it a **Name** (2) and enter a description that helps the Artist know what to do and quickly identify the asset. - -Click on **Confirm and stay** if you have multiple assets to create. - - -![Create an asset](../img/getting-started/add_asset_popup.png) - -You can change the asset type and keep adding assets. - -::: tip -The newly created asset appears in the background whenever you click on **Confirm and stay**. -::: - -After adding your last asset, click -on **Confirm**. It will create the asset and close the window. - -::: tip -If you click on **Confirm and stay, ** realize you don't have more assets to add, and click on **Close, ** the window will be canceled. -::: - -![Global asset page](../img/getting-started/asset_edit.png) - -You will also see the tasks that are selected for your assets workflow are created at the same time. - - -If you need to add more **Assets**, click the **+ Create assets** button. - -::: details Create Assets from a CSV Spreadsheet File -You may already have your asset list ready in a spreadsheet file. -With Kitsu, you have two ways to import them; the first is to import a `.csv` file and copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file. - -Then, go back to the asset page on Kitsu and click on the **Import** icon. -![Import Icon](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Import csv file](../img/getting-started/import_csv_asset.png) - -To see the result, click on the **Preview** button. -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, you have imported all your assets into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_asset.png) -::: - -::: details Create Assets by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_asset.png) - -Then, go back to the asset page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_asset.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_asset.png) -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, you have imported all your assets into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_asset.png) -::: - -### See the Details of an Asset - -To see an asset's detail, click on its name. - -![Asset detail](../img/getting-started/asset_detail.png) - -A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. - - -![Asset detail page](../img/getting-started/asset_detail_page.png) - -You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. - - -![Asset detail page](../img/getting-started/asset_detail_page_panel.png) - - - -You can also access the **Casting**, - -![Asset detail casting](../img/getting-started/asset_detail_page_casting.png) - -**concept** linked to this asset, - -![Asset detail casting](../img/getting-started/asset_detail_page_concept.png) - -The **Schedule** is available if you have previously filled out the task type page data. If the data have already been filled out, you will be able to modify them directly here. - -![Asset detail casting](../img/getting-started/asset_detail_page_schedule.png) - -the **Preview Files** uploaded at various task types, - -![Asset detail casting](../img/getting-started/asset_detail_page_file.png) - -And the **Timelog** if people have filled out their timesheet on the tasks of this asset. - -![Asset detail casting](../img/getting-started/asset_detail_page_timelog.png) - - - -## Add more tasks after creating the assets - - -If you realize **after** creating the assets that the task is missing, you can still add them. - -First, be sure that the missing task type is added to the settings page under the task type tab. - -Then go back to the asset page and click on **+ Add tasks** - - - - - - - ### Update your assets -You can update your assets at any point, change their name and asset type, modify their description, and add any custom information you added to the global page. - -You can edit assets by going to the asset page, hovering over the asset you want to modify, and then clicking on the **edit** button -![Edit button](../img/getting-started/edit_button.png) (1) on the right side of -the line. - -![Edit an asset](../img/getting-started/asset_edit01.png) - -To extend the description on the main asset page, click on the first words (2), and a pop-up with the full description will open. - - -::: details Update Assets with the CSV Import -You can use the CSV import to update your data quickly. - -You can update the **type** of an asset, the **Assignation**, the **Status** of tasks, and add a **Comment**. - -You need to switch on the option **Update existing data**. Then, the lines that will be updated -will be highlighted in blue. - -![Import data copy paste data](../img/getting-started/import_update_asset.png) - -::: - - -::: details Update Assets by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_asset.png) - -Then, go back to the asset page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_asset.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_asset.png) -  -You can check and adjust the name of the columns by previewing your data. - -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -You need to switch on the option **Update existing data**. Then, the lines that will be updated -will be highlighted in blue. - -![Import data copy paste data](../img/getting-started/import_update_asset.png) - -Now, you have imported all your assets into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_asset.png) -::: - - -## Create a Concept -### Upload a Concept - -To create a **Concept**, go to the **Concept** page with the navigation menu. - -![Concept Menu](../img/getting-started/menu_concept.png) - -To upload a concept, click the **Add a new reference to concepts** button. - -You can upload one or several concepts at the same time. - -![Concept empty page](../img/getting-started/concept_empty_prod.png) - -Once you upload your previews, the concept page will look like this. - -![Concept filled page](../img/getting-started/concept_filled_prod.png) - - -You can interact with the concept in two ways: click on the picture to see an enlarged view. -The second is to click on the status part to open the **Comment Panel** on the right. - -On the comment panel, you have two options: link a concept to an existing asset or delete it. -You can also comment and change the status of the asset. - -The idea is to have one version per **Concept**. If it's not validated, you need to upload a new concept, not to have multiple versions of the same concept. - -One concept is one task. - - -![Concept options](../img/getting-started/concept_options.png) - - -### Link a Concept to an Asset - -Once concepts are uploaded, you can link them to the assets. - -You can see the links on the status part of the assets. - -Click on the status part of the concept; it will open the comment panel on the right. - -![Concept Comment Panel](../img/getting-started/concept_comment_panel.png) - -On the comment panel, you have two options at the top: Link a concept to an asset and delete the concept. - -To link an asset, click on the **Link** ![Link button](../img/getting-started/link_icon.png) button. - -Kitsu will display all the **Assets** available to link with the concept uploaded. - -Kitsu will list the linked assets at the top of the comment panel. For now, there are No Links. - - -![Concept link](../img/getting-started/concept_link.png) - -To link an asset, click on it. The linked assets' names will appear at the top of the screen under the preview of the concept. - - -![Concept asset linked](../img/getting-started/concept_asset_linked.png) - -Once a concept is linked to an asset, it can be seen on the asset's detail page. - -Return to the asset page, and click on the asset name you want to see the concept. - -![Detail asset page](../img/getting-started/asset_detail_page.png) - -Per default, the casting detail is displayed on the second part of the screen. -Use the dropdown menu to choose the concept. - -![asset detail concept](../img/getting-started/asset_detail_concept.png) - -Once in the concept section, you will see all the concepts created for this asset. You can filter them per status. - -![asset detail concept list](../img/getting-started/asset_detail_concep_listt.png) - - -## Create a NFT Collection -### Create your first NFT Collection - -It's time to create **NFT Collections** for your production. - -::: warning -NFT Collections are linked to Sequences in Kitsu. -You must create a sequence and then populate it with NFT Collections. -::: - -You need to go to the **NFT Collections** page: you can use the -dropdown menu and click on the **NFT CollectionS**. - -![Drop down menu NFT Collection](../img/getting-started/drop_down_menu_shot.png) - -Click on the **Add NFT Collections** button to start with the NFT Collection creation. - -![First add NFT Collections](../img/getting-started/new_shot.png) - -::: warning -When you create an NFT Collection, the task workflow you have designed will be applied, and all the tasks will be created at the same time as the NFT Collection. -::: - -A new pop-up opens for the creation of the NFT Collections. -You can now create the sequences and the NFT Collections. - -Enter the first sequence, for instance, sq01, -then **add**. - -Now, you can see your sequence has been created. To add NFT Collections to this sequence, you need to select it and create your NFT Collections. - -For example, type sh0010 on the NFT Collections column, then again **add**. -You can also define padding for your NFT Collections. - -::: tip -If you want to name your NFT Collections 10 on ten as SH0010, SH0020, SH0030, etc, set the **NFT Collection Padding** as 10 -::: - -![Manage NFT Collections](../img/getting-started/manage_shot.png) - -You can now see that new NFT Collections are listed and linked by their sequence. -You have created the first NFT Collection of the first sequence. - -Now, let's add more NFT Collections than just one! As you can see, the box already contains your name -code but incremented, so you have to continue to click on **add** to -create more NFT Collections. - -![Add NFT Collections](../img/getting-started/add_shots.png) - -To add more sequences, go to the left part, type the name of your new sequence, and then click on **add**. -Your second sequence is selected, and you can now add NFT Collections. - -::: tip -If a NFT Collection is misplaced on a sequence, you have to edit the NFT Collection -![Edit button](../img/getting-started/edit_button.png), and change the -sequence. -![edit NFT Collection Change sequence](../img/getting-started/edit_shot.png) - -![Change sequence](../img/getting-started/change_seq.png) -::: - - - -### See the Details of an NFT Collection - -If you want to see the details of an NFT Collection, click on its name. - -![NFT Collection detail](../img/getting-started/shot_detail.png) - -A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. -You can navigate through each by clicking on the name of the tabs. - -![NFT Collection detail page](../img/getting-started/shot_detail_page.png) - -You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. - - -![NFT Collection detail page](../img/getting-started/shot_detail_page_panel.png) - - -You can also access the **Casting**, - -![Asset detail casting](../img/getting-started/shot_detail_page_casting.png) - - -The **Schedule** is available if you have previously filled out the task type page data. If the data have already been filled out, you will be able to modify them directly here. - -![Asset detail casting](../img/getting-started/shot_detail_page_schedule.png) - -the **Preview Files** uploaded at various task types, - -![Asset detail casting](../img/getting-started/shot_detail_page_file.png) - -And the **Timelog** if people have filled out their timesheet on the tasks of this asset. - -![Asset detail casting](../img/getting-started/shot_detail_page_timelog.png) - - - - -## Add more tasks after creating the NFT Collections -If you realize after creating the NFT Collections that tasks are missing, you can still add them. - -First, be sure that the missing task type is added to the settings page under the task type tab. - -Then go to the NFT Collection page and click + Add tasks. - - -### Update your NFT Collections - -At any point, you can update your NFT Collections, change their name and sequence, modify their description, and any custom information you added to the global page. - -You can edit NFT Collections by going to the NFT Collection page, hovering over the NFT Collection you want to modify, and then clicking on the **edit** button -![Edit button](../img/getting-started/edit_button.png) (1) on the right side of the line. - -![Edit an asset](../img/getting-started/asset_edit01.png) - -To extend the description on the main NFT Collection page, click on the first words (2), and a pop-up with the full description will open. - - -::: details Update NFT Collections Information with CSV Import -You can use the **CSV Import** to update your data as the **NB Frames**, **Frame IN**, **Frame Out**, or any custom **Metadata column**. - -You can update the **Assignation**, and the **Status** of tasks and add a **Comment**. - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_shot.png) - -Then, go back to the NFT Collection page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_shot.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_shot.png) -  -You need to switch on the **Option: Update existing data**. -The updated NFT Collections will be in blue - -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/update_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, you have imported all your NFT Collections into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_shot.png) -::: - - - -## Create Custom Metadata Columns - -To add more information on the general spreadsheet pages, you must create a custom **metadata column**. - -You may have extra information to add to your pages, such as the **level of difficulties**, **Weather**, **Tag**, etc. You can store all text (or number) information in the custom metadata column. - - -Click on the **+** near the Name column. - -![Metadata Column](../img/getting-started/add_column_custom.png) - - - -With the **Type** option, you can choose how you want to store your information: -- a free **Text**, -- a **Number**, -- a **Checkbox**, -- a **List of value**, -- a **List of tags**, -- a **Checklist**. - -![Metadata Column detail](../img/getting-started/custom_column_detail.png) - -::: warning -The **Text**, **Number**, and **Checkbox** allow you to add different information for each entity. You don't have to plan it first. - -The **List of value**, **List of tags**, and **Checklist** give you the same choice for each entity. Moreover, it has to be filled now. - -![Metadata Column list](../img/getting-started/custom_column_list.png) - -Type the list elements below **Available values**, and confirm them by clicking on **Add value**. -::: - -You can also link the **metadata column** to one or several **departments**. - -::: tip -Link a metadata column to a department. The artists/supervisors will see it on their to-do page and in the department-filtered view. - -You can link the metadata column to one or more departments. Click on the department from the list and then click on **add** to be effective. - -Here, the VFX column is linked to two departments. - -![Department metadata column filtered view](../img/getting-started/department_filtered_view_column.png) - -::: - -::: details Edit meta column -On the asset's global page or the NFT Collection's global page, click on the arrow to the right of your metadata column and click on **Edit**. - -![Metadata column Edit](../img/getting-started/custom_column_edit.png) -::: - - -You can fill in this information directly on the global spreadsheets page. -The cases are editable. - -![Metadata Column detail](../img/getting-started/custom_column_list_edit.png) - -::: tip -You can batch-modify the metadata column by selecting several entities on the left and then modifying your metadata column. -::: - -::: details Edit by hand -You can also modify the information with the edit button ![Edit button](../img/getting-started/edit_button.png). - -You now see a new line on the edit pop-up. You can select the information from the list, -alternatively, enter the free text or number, check a box, or use the checklist, depending on your previous choice. - -Remember to press the **Confirm** button when you are done. - -![Metadata Column detail](../img/getting-started/edit_asset_custom.png) -::: - -Go to the general spreadsheet page if you need to edit or delete the metadata column. -Nearby the name of your metadata column, click on the arrow ![Metadata Column detail](../img/getting-started/arrow.png). - -::: tip -You can **sort** your global page with this new column. Click the arrow on the right of the column name to open his menu. Then click on **Sort By**. - -You can also **Stick** the metadata column to the left. -::: - - - - -## Create a Breakdown List - -Filling out the breakdown helps you with the assembly of the NFT Collections. With the -breakdown, you have all the details of the assets you need to add to create your -NFT Collection and we are sure we will omit nothing. - -On the dropdown menu, choose **BREAKDOWN**. - -![drop down Menu breakdown](../img/getting-started/drop_down_menu_breakdown.png) - -On the left of the breakdown page is the episode/sequence/NFT Collection menu (1); you can choose between those you created. They are the right part of -the screen; all the assets created are available for this production (main pack and episodes) (3). Moreover, in -the middle section, your selection for the NFT Collection (2). - -![Breakdown page](../img/getting-started/breakdown_general_empty.png) - -So now you have to select the NFT Collection you want to cast. - -You can display the assets as text if you don't have thumbnails yet or enlarge the -thumbnails size. - - -![Breakdown page text display](../img/getting-started/breakdown_text_display.png) - -You may also realize an asset needs to be added to the list during your breakdown. - -You can create a new asset directly from the breakdown page. Click the **+** on the right of the **All available assets**. - -![Breakdown page create asset](../img/getting-started/breakdown_create_asset.png) - - -You can also select multiple NFT Collections at once. Click on the first NFT Collection, hold the **shift** key, and click on the last NFT Collection of your selection. - -![Breakdown page global bulk select](../img/getting-started/breakdown_general_bulk_select.png) - -Then click on the assets you want -to assign: characters, backgrounds, ... from the right part (3). -If you have selected multiple NFT Collections, your selection is applied to the numerous NFT Collections. - -Copy an NFT Collection filled with assets and paste this asset selection into another NFT Collection. - -You can see a **+1** or **+10** when you pass over the asset. It's the number -of times you add this asset, and you can click on it as many times as you need. - -![Breakdown add asset](../img/getting-started/breakdown_add_asset.png) - -You can also link all your assets to episodes on a TV show without specifying a sequence or NFT Collection. - -![Breakdown episode asset](../img/getting-started/breakdown_episode.png) - -This way, you can link all your assets to one or several episodes before the storyboard/animatic stage. - -You can now see the asset in the middle of the screen (2). Next -to the asset's name is the number of times it has been added. In this -example, we have added the character asset Llama two times. - - -If you add an asset twice by mistake, you must go to the screen's middle part to select assets for this NFT Collection (2). From there, click on -**-1**. When you finish this NFT Collection, continue with the other NFT Collections. -Your selection is automatically saved. - -![Breakdown remove asset](../img/getting-started/breakdown_remove_asset.png) - -If a new asset is created during the storyboard, return to the asset -page (using the dropdown menu) and create the needed assets. The tasks previously created are applied immediately to these new -assets. However, you have to do the assignment, and then you can -continue with the breakdown. - -Now, your **Breakdown** page should look like this. - -![breakdown add asset bulk](../img/getting-started/breakdown_general_bulk_select_full.png) - -You can also make a breakdown list for your assets if you need to assemble them and keep track of the separate parts. - -On the top left corner of the screen, choose **asset** in the dropdown menu below **FOR**. - -![Breakdown asset menu](../img/getting-started/breakdown_asset_menu.png) - -You can now access a second dropdown menu to choose your asset type: **Character**, **Environment**, **Props**, **FX**, ... - -![Breakdown asset type](../img/getting-started/breakdown_asset_menu_type.png) - -You can complete the asset breakdown page the same way you did the NFT Collections. First, select one or more assets on the left and then add the elements on the right. - -::: details Create a Breakdown List from a CSV File - -You may already have your breakdown list ready in a spreadsheet file. With Kitsu, you have two ways to import it: the first is to import a .csv file directly, and the second is to copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file following Kitsu's recommendation. - -Click on the **import** button ![Import button](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Breakdown import csv file](../img/getting-started/import_breakdown_csv_file.png) - -To see the result, click on the **Preview** button. - -You can check and adjust the name of the columns by previewing your data. - -NB: the **Episode** column is only mandatory for a **TV Show** production. - -![Breakdown import Preview](../img/getting-started/import_breakdown_preview.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, you have your breakdown imported into Kitsu. - -![Breakdown import Preview](../img/getting-started/breakdown_general_bulk_select_full.png) -::: - -::: details Create a Breakdown List by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_breakdown.png) - -Then, go back to the breakdown page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started//import_breakdown_csv_file.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_breakdown_preview.png) -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_breakdown_preview.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, all your assets have been imported into Kitsu. - -![Import data copy paste data](../img/getting-started/breakdown_general_bulk_select_full.png) -::: - -## Casting from the Asset Library -It is also possible to cast assets from the global **Asset Library** into your production. This allows you to cast an already existing asset, without the need to re-create it for each production. - -![Asset Library Display](../img/getting-started/asset_library_display.png) - -To see assets outside of your production from the asset library, click the **Display Library** Button (1) - -Assets from the global asset library will appear, and will be highlighted with a yellow boarder (2). They can then be cast in your breakdown exactly the same as other assets. - -![Asset Library View](../img/getting-started/asset_library_view.png) - -Back on your productions asset page, you can choose to display global assets that have been cast in your production by toggling the **Display Library** button (1). These assets will be highlighted in yellow, indicating that they originate from the global asset library, and not your current production. (2). - -## Introduction to Asset State: Ready For - -Most of the time, you don't need to wait for an asset's tasks to be approved to use it on an NFT Collection task. - -For example, when an asset is approved at the **Concept** stage, it can be used for the **Storyboard** stage. -Then, when it's approved at the **Modeling** stage, you can use it for the **Layout** stage and so on. - -That's exactly what the asset state **Ready For** is doing: let you know the state of the tasks of an asset and compare its usability for the NFT collection tasks. - -Now that we have filled out our breakdown, we know which asset is used on every NFT Collection. - -First, we need to define an asset's state relative to its task status. You can modify the **Ready for** by clicking on a cell. You will see a dropdown menu with the NFT Collection task. - -![Asset Status](../img/getting-started/asset_status.png) - -::: tip -You can use the **automations** to do the heavy lifting for you. - -You can set automation with the **ready for** trigger. -::: - -Now that we have changed some asset states to **Ready for**, we can see the result on the NFT Collection page. - -You can notice that some white boxes are now **Green**: all the assets cast in this NFT Collection are ready for this specific task. - -![Asset Status](../img/getting-started/asset_status_box.png) - -If you see the white box, Kitsu will display how many assets are ready for this task. - -![Asset Status](../img/getting-started/asset_status_empty.png) - -::: tip -If you don't see any boxes, no assets are casted for this NFT Collection. -::: -  -Then, you can click on the NFT Collection's name to go to its detail page. -Then, you will see all the assets cast in this NFT Collection and their status. - -![Asset Status](../img/getting-started/asset_status_detail.png) - -It's the fastest way to know if you can start an NFT Collection for a specific task. - diff --git a/docs/playlist-client/README.md b/docs/playlist-client/README.md deleted file mode 100644 index e9f94e975b..0000000000 --- a/docs/playlist-client/README.md +++ /dev/null @@ -1,105 +0,0 @@ -# Client Playlists - -## Creating Client Playlists - -The first step in preparing a review with your client is to create a playlist of the content you wish to share and review. The process is similar to creating a regular playlist but Kitsu includes some nice features to aid with collaborate from parties outside your studio. - -To get started, you'll need to create your playlist and add the items you want to review. [See this section here for a reminder on how to do this](../review/README.md#create-a-playlist). - -The main difference is to ensure under **To Be Shared With** you select **The Client**. This will ensure the proper permissions and only provide the client access to this specific playlist. - -![Playlist Global](../img/getting-started/client_playlist_create.png) - -## Reviewing Client Playlists - -Once you have created a playlist, you can notify your client that it is ready for review. - -![Playlist Global](../img/getting-started/playlist_global_client.png) - -::: warning -Your client will only have access to the production if they are part of the team, and they will only see the **client playlist**. Please note there is currently no way to segregate clients within the same production, -::: - -The client has several options to control the playlist. - -::: danger Client Permissions -- Clients can see all versions of all task types. -- Clients can only see comments they have made and any replies to these comments. They cannot see your internal comments. -- Clients can only see when a revision has been published, but cannot see who published it. -- Clients can only see and use statuses with the **Is client Allowed** tag. -::: - -![Playlist Review client](../img/getting-started/playlist_review_client.png) - -Clients can (from left to right): -* Play or Pause the video. -* Loop on one element. -* Switch between LD (low definition) and HD (high definition). -* Change the speed: double speed (x2), full speed (x1), half speed (x0.50), or quarter speed (x0.25). -* Display annotations during playback. -* Mute or unmute the audio. -* Display the audio waveform. -* Change the task type of all the elements in the playlist. -* Use the compare tool. -* Use text and drawing options, and delete selections. -* Display the comment section. -* Hide elements of the playlist. -* Download the playlist as a **Zip** file with all the separate elements, a **.csv** text file, or **Build .mp4** to create the whole movie (only for shots). -* Enter fullscreen. - -::: tip -The client can navigate frame by frame on the preview using the left and right arrows on the keyboard. -::: - -The client can also: -* Navigate from element to element by clicking on it. -* See the color status and length of each element compared to the total. -* See the position of the selected element compared to the total with the green dot. - -## Playback Controls - -For each playlisted shot/asset, the client can choose the **task** and the **version** they want to see. - -![Playlist task selection](../img/getting-started/playlist_task_selection.png) -![Playlist version selection](../img/getting-started/playlist_version_selection.png) - -They can also play two tasks of a shot side by side by clicking on the **Compare** button ![Compare button](../img/getting-started/compare_button.png) and choosing the second task type. - -![Playlist side by side](../img/getting-started/playlist_side_by_side.png) - -::: tip -The primary purpose of the playlist is to help the client review the shots and assets. They can comment on the shots directly from the preview. -::: - -To comment, they need to click on the **comment** button. - -![Playlist comment](../img/getting-started/playlist_comment_button_client.png) - -This will open the right panel, showing their comments and status history, but without access to internal comments and statuses. - -They can draw or type on the video with the **draw** button ![draw button](../img/getting-started/draw.png) and write a comment at the same time. - -![Playlist comment](../img/getting-started/playlist_comment_client.png) - -You can see the drawing comments on the video (indicated by the red dot below the timeline). - -::: warning -Only the supervisor and production manager can see the client's comments. Artists will only see the status. - -The supervisor and production manager can copy the client's comments, modify them if necessary, and publish them for the team. - -![Playlist client comment](../img/getting-started/client_comment.png) -::: - -## Review Room - -The Review Room is a collaborative space designed for efficient and synchronized dailies review sessions. It ensures that all participants are viewing the same content simultaneously, facilitating real-time feedback and discussion. - -You can join the **Review Room** by clicking the button at the top of the playlist. The review room will synchronize all the participants. - -Everyone in the review room will see the play, pause, shot, and frame selections in real-time. - -Additionally, the Review Room supports synchronized drawing annotations. This feature allows participants to draw directly on the frames being reviewed, with all annotations visible to everyone in the session. This capability enhances communication and clarity, making it easier to point out specific details, suggest changes, and highlight important aspects of the work. - -![Playlist review room](../img/getting-started/playlist_review_room.png) - diff --git a/docs/production-report/README.md b/docs/production-report/README.md deleted file mode 100644 index d8210bccd4..0000000000 --- a/docs/production-report/README.md +++ /dev/null @@ -1,325 +0,0 @@ -# Building Production Reports - -## Production Overview - -As a Producer, having a comprehensive overview of the entire production process is essential. - -Kitsu offers various tools to help you stay informed and manage production efficiently without getting overwhelmed by notifications or losing focus. - -### News Feed Features -The news feed section show real-time updates relating to your production, including: - -- **Real-Time Updates**: View all status changes as they happen, minute by minute. -- **Summarized View**: The right part of the screen displays the total number of news items and a breakdown by status. -- **Filtering Options**: Filter the list by Task Status, Task Type, and Person to focus on specific areas. -- **Comment Panel**: Clicking on a line opens the comment panel on the right, providing all necessary details. - -![Newsfeed Page](../img/getting-started/newsfeed_comment_all.png) - -#### Using Filters - -You can customize the time frame for displaying information using the **Filters Builder** button. This is useful for focusing on specific supervisors or time periods. - -![Newsfeed Page Detail](../img/getting-started/newsfeed_details.png) - -#### Example - -If you want to focus on a supervisor for a specific month, select their name and pick a date in the **From** box. - -![Newsfeed Page Comment](../img/getting-started/newsfeed_comment_panel.png) - - -## Know the Current State of the Production -Understanding the current state of your production is crucial. Kitsu provides detailed statistics and visualizations to help you track progress effectively. - - -### Short / Feature Specific -We're going to look at some features that are specific to Short / Feature Film workflows. - -#### Sequence Stats - -The **Sequence Stats** page offers pie charts that depict the status of your production, sequence by sequence. The color scheme of the pie charts corresponds to the status, allowing you to quickly understand the state of your production. - -![Global View Sequence](../img/getting-started/global_view_sequence.png) - -- **All Sequences**: The first line represents the whole production. -- **All Tasks**: The first column includes all tasks simultaneously. - -By focusing on the first pie chart, you can see the exact state of your production. For more details, look at the rest of the line to get a global view of each task type's state. - -#### Asset Types Stats - -Similar to Sequence Stats, the **Asset Types Stats** page provides pie charts for asset types, giving you a clear view of the asset status across the production. - -![Global View Asset](../img/getting-started/global_view_asset.png) - -#### Count View - -You can also display data as **Counts** to see the exact number of assets, shots, or frames, along with their percentage per status. - -![Global View Sequence Counts](../img/getting-started/global_view_sequence_detail_count_stat.png) - -#### Exporting Data - -You can export this page as a `.csv` text file and import it into spreadsheet software for further analysis and reporting. - -By leveraging these tools, you can stay on top of the production process, ensuring everything runs smoothly and on schedule. - - -### TV Show Specific - -You can access an extra information level on a TV show through the **Episodes Stats Page**. - -### Retakes Display -The default setting for the **Episodes Stats** page is **Retakes**. This display lets you see the number of retakes (back and forth) for each episode on each task type. Only three colors are displayed: -- **Validated as Green** -- **Retakes as Red** -- **In progress as Grey** - -![Global View Episode](../img/getting-started/global_view_episode_retake.png) - -If you unfold an episode, you will see the percentage of each take and the evolution of the retakes versus approval. This helps you see the progress of each episode per task. - -![Global View Episode Unfold](../img/getting-started/global_view_episode_retake_detail.png) - -Usually, the first episodes have many back-and-forths, but it should get better over time. However, if late episodes still have many retakes, something must be fixed. It's time to discuss the issue with the director and the supervisor. - -### Status Display - -The second option for data display is **Status**. This status display works like the **Sequence** / **Asset Type** Stats page. - -![Global View Episode Status](../img/getting-started/global_view_episode_stat.png) - -You can also display data as **Counts**. This way, you'll see the exact number of shots/frames with the percentage per status. - -![Global View Episode Status Count](../img/getting-started/global_view_episode_stat_count.png) - -You can export this page as a `.csv` text file and import it into spreadsheet software. -  - -## Ensure Tasks are On Time - -To know if a task is on time, you need two things: -- The **Task Type** of the task -- An **Estimation** (Bid) in days, along with an estimated **Start date** and **Due date** for the task. - -Once this information is entered, you can **compare estimation to reality** on the Task Type page. - -![Task Type Filled](../img/getting-started/task_type_schedule_due_date.png) - -### Methods to Compare Estimations and Actuals - -There are two main ways to do this: -1. **Filtering by Due Date Status** -2. **Using the Gantt Diagram** - -::: tip -Kitsu automatically grabs the date and status of **WIP** (Work in Progress) and **WFA** (Waiting for Approval). You can compare your **estimated start date** versus **when the Artist really starts**, and compare the **estimated due date** to **when the Artist asks for approval**. -::: - -### Filtering by Due Date Status - -On the **Tasks** tab, the first filter you see is **Due Date Status**. Set it to **Due before today** to display all tasks with a **Due date** set **Due Before Today**. - -Next, to determine what is finished and what still needs to be finished. Use the **-Done** filter to exclude completed tasks. - -![Task Type Due Before Today](../img/getting-started/task_type_due_before.png) - -This will show you all the late tasks with the two filters applied, meaning they are only validated after the **Estimated Due Date**. The summary at the bottom of the page updates in real time based on the applied filters. - -You can export this page as a `CSV` file and open it with spreadsheet software. - -### Using the Late Status Filter - -The **Late Status** filter built into the page helps you immediately see which tasks took more time than estimated (**Estimation over Duration**). - -![Task Type Estimation over duration](../img/getting-started/task_type_estimation_duration.png) - -Filter the late tasks using the **Due date late** option. There are two ways to calculate if a task is late: -1. **Estimated due date** versus **Feedback** -2. **Estimated due date** versus **Done** - -Depending on your studio's calculation method, Kitsu will provide the answer. - -![Task Type Late Feedback](../img/getting-started/task_type_late_feedback.png) - -### Using the Gantt Diagram - -On the **Task Type Page**, go to the **Schedule** tab. The **Start** and **End** dates of this task type, as set on the production schedule, are visible at the top of the screen. - -The **Gantt Diagram** will be dark grey before and after these dates, providing a visual cue for task timing. - -![Task Type Schedule](../img/getting-started/task_type_schedule_emplty.png) - -Change the **Coloring** from **Status color** to **Late in Red**. This will show tasks in **Grey** if they are on time and **Red** if they are late. - -![Task Type Schedule Late](../img/getting-started/task_type_schedule_coloring_late.png) - -You can return to the **Tasks** tab for more details, and Kitsu will retain your filters from tab to tab. - - -## Understanding Why a Task is Late - -Now that you know which tasks are late or will be late, you need to understand **why**. There are several reasons why a task might be late: - -- The artist is overwhelmed with too many tasks. -- There is too much back-and-forth on the task. -- The task might be underestimated, making it difficult to finish on time. -- The previous task was already late. - -### Checking an Artist's Workload - -To check an artist's number of tasks, filter the **Task Type** page by the artist's name under the **Task** tab. - -![Task Type Artist](../img/getting-started/task_type_artist.png) - -You can also add the **-done** filter to see what the artist has left to do. Then add the **Due Date Status** filter to **Due previous week** or **Due this week**, depending on what you are looking for. - -![Task Type Artist Filtered](../img/getting-started/task_type_artist_filtered.png) - -This will show you how many tasks your artist has to complete. - -### Identifying Back-and-Forth - -To identify the number of back-and-forths, look at the Retakes column on the Tasks tab. Each **Red Dot** represents a **retake**. Click on the line to open the **Comment panel** and read the entire task history. This is the best way to understand what is happening—whether the artist misunderstood the brief or if the brief changed with each version. - -![Task Type Retake](../img/getting-started/task_type_retake.png) - -### Checking if the Task is Underestimated - -To check if the task is underestimated, go back to the global page, click on the name of the shot or asset, and see the casting and all the extra information. For example, there might be too many characters in the scene, or it might be a big action scene. - -![Shot Detail Casting](../img/getting-started/shot_detail_casting.png) - -### Checking the Previous Task - -Lastly, you can check the previous task while viewing the asset/shot in detail. Click on it to go to the dedicated **Task Type** page, where you can find detailed information about what was happening before. This can help you understand if delays in earlier tasks are affecting the current one. - - - -## Durations over Estimates - -To focus on the big picture and have a global view of the **Bid**, you can compare the estimated **Person days** versus the reality **Days Spent** on various pages. - -### Estimation Summary - -On the shots' global page, you can see the sum-up of all the estimations versus duration. You can also apply filters for more specific insights. - -For example, to focus on a specific sequence, filter your global page by the sequence's name. The sum-up at the bottom will update accordingly. - -![Global Shot Page Sum-up Filtered](../img/getting-started/global_shot_sumup.png) - -This allows you to know the **Duration** versus **Estimation** for that particular **Sequence**. - -Similarly, you can filter the global asset page. - -For example, you can filter by a specific **Asset Type** such as **Character**. The sum-up at the bottom will update to show the estimation versus duration for that asset type. - -![Global Asset Page Sum-up Filtered](../img/getting-started/global_asset_sumup.png) - - -### Task Type Duration over Estimation - -To delve into details, click on the name of a task type. The sum-up at the bottom of the screen will show **Duration** versus **Estimation** for this specific task type. - -![Task Type Sum-up](../img/getting-started/task_type_sumup.png) - -You can get a global view or focus on a **specific status** or **Artist's name**. As on the global page, the sum-up will update with each filter applied. - - -![Task Type Sum-up Filtered](../img/getting-started/task_type_sumup_filter.png) - -This way, you can closely monitor the performance and efficiency of specific tasks and artists, ensuring that estimations align with actual durations and making adjustments as necessary. - - -### Durations over Estimations for an Asset / Shot - -To closely examine the details, you can display **Estimation** and **Time Spent** columns (duration) for each asset and shot in Kitsu. - -On the global page for shots or assets, you can see the sum-up of each task's **Estimation** and **Duration**. This allows you to quickly identify discrepancies or issues. - -![Global Shot Estimation](../img/getting-started/global_shot_est.png) - -### Detailed Analysis - -If something appears wrong or needs further investigation, click on the asset or shot name to go to the detail page. - -On the detail page, at the top left of the screen, you'll find a summary of the asset's or shot's lifecycle. This includes details of each task's **Status**, **Estimation**, **Duration**, **Start and Due Date**, and **Assignation**. - -![Detail Shot Estimation](../img/getting-started/shot_detail_casting.png) - -This comprehensive view helps you understand where the discrepancies lie and take corrective actions if necessary. By closely monitoring these details, you can ensure better alignment between estimations and actual durations, leading to more accurate future planning and resource allocation. - - - -## Checking Quotas - -Kitsu provides two methods for calculating quotas per **shot Task Type**. - -### Method 1: Timesheet-Based Calculation - -This method weights quotas according to the time spent on tasks as recorded in the timesheets. - -- **Task Completion**: Shots are considered completed upon the first feedback request. The quotas are then weighted based on the time recorded in the timesheet. - -![Quotas stat page day weighted](../img/getting-started/quotas_day_weighted.png) - -In this example, Kitsu calculates the daily quota using timesheet data. - -![Quotas stat page day weighted detail](../img/getting-started/quotas_day_weighted_detail.png) - -### Method 2: Status-Based Calculation - -If no timesheet data is available, Kitsu uses status changes to calculate quotas. - -- **Task Start**: The task is considered to have started when its status changes to WIP. -- **Task Completion**: The task is considered completed on the day the feedback request is made. - -### Detailed Quota Calculation - -Kitsu splits the completed frames among all business days between the task's start and end dates, attributing the number of frames (or seconds, or tasks) submitted per day/week/month to each artist. - -![Quotas stat page day status](../img/getting-started/quotas_day_status.png) - -At any point, you can click on a number to see detailed information in the right panel. - -![Quotas stat page day weighted](../img/getting-started/quotas_day_status.png) - -::: danger -**Note**: If no timesheet is filled, Kitsu defaults to considering: -- The task started with the first status change to WIP. -- The task was completed on the day the feedback request was made. -::: - -This method ensures that even in the absence of detailed timesheet data, there is a reliable way to track task progress and calculate quotas accurately. - - -## Team Timesheets - -::: warning -All of the previous chapters are based on the fact that **Estimation** and **Duration** are filled for each task. -::: - -Everybody has to do their part. You and the supervisor will handle the estimation, while your team will fill out their timesheets. - -Navigate to the main menu and select the Timesheet page. - -![Timesheet Global Day](../img/getting-started/timesheet_day.png) - -### Viewing Timesheets - -On this page, you can view each team member's timesheet by day. This allows you to check whether they fill it out daily, took a day off, or worked extra hours. - -If you have a question about a timesheet entry, click on it to see the details of the production, task type, and specific task. - -![Timesheet Detail Day](../img/getting-started/timesheet_detail.png) - -Once everything looks good at the day level, you can change the **Detail Level** from Day to Week, Month, or Year. - -![Timesheet Global Week](../img/getting-started/timesheet_week.png) - -You can view all the productions you manage simultaneously or look at each production individually. - -### Exporting Timesheets - -As with all other pages in Kitsu, you can export the timesheet data as a CSV file and open it in spreadsheet software for further analysis. diff --git a/docs/production-report/specific_task_type_creation.txt b/docs/production-report/specific_task_type_creation.txt deleted file mode 100644 index c0598edc4d..0000000000 --- a/docs/production-report/specific_task_type_creation.txt +++ /dev/null @@ -1,106 +0,0 @@ -Now, you are into your production on the asset page. - -![Main page production](../img/getting-started/first_production.png) - -You need to click on the avatar of the production to access its different pages. - -The first step you need to do is to set the **settings** of your production. - -Use the navigation menu and go to the **Settings** page. - -![Production settings](../img/getting-started/drop_down_menu_setting.png) - -### Add a Brief - -On the first tab of the **Settings** page, Kitsu asks you about a brief. It's a good way to keep track of the first -brief of the production and being able to get back to it later. - -/!\ **Only Studio manager permission have access to the Settings page** /!\ - -![Production settings Brief](../img/getting-started/settings_brief.png) - - -### Define Production's Parameters - -The second tab is the more **important**. You need to define your production's parameters to be sure that everything will go smoothly. - -![Production settings Parameters](../img/getting-started/settings_parameters.png) - -- 1/ You can change the name of the production - -- 2/ You can define the start and end date of the production to set the schedule - -- 3/ You can change the Type of the production: Short, TV Show, Feature Film - -- 4/ You can add the number of episodes of your TV Show for information - -- 5/ You need to set the FPS of the video preview. Kitsu will use this FPS to encode them. **Per default, Kitsu will encode everything at 24 FPS** - -- 6/ You can enter the ratio for information only - -- 7/ You need to set the resolution of the video preview. **Kitsu will use this resolution to encode the videos**. - -- 8/ You can add a picture to identify your production better. - -Validate everything with the **Save** button. - - - - -### Select a specific Task Status for a production - - -Per default, Kitsu will load all the Task Status of your status library into your production. - -But you can choose to use only specific status. - -![Setting status new](../img/getting-started/setting_status_new.png) - -On the "Task Status" tab, you can choose which status you want to use on this production, -validate your choice with the "Add" button. - - -![Setting Add Status](../img/getting-started/setting_status_add.png) - -You can also see the sum up of the parameters of each status. - -(To add new Task Status, see [Customization of the workflow](../customization/README.md#create-a-new-task-status) ) - - -### Select specific Task Types for a production - - -Per default, Kitsu will load all the Task Types of your Task Types library into your production. - -![Setting Task Type new](../img/getting-started/setting_task_new.png) - -But you can choose to use only specific Task Types, depending on the type of your production. -(To add a new Task Type, see [Customization of the workflow](../customization/README.md#create-a-new-task-type) ) - -For example, you can create a 2D and A CGI workflow on your library and add the needed task types into this production. - - -On the "Task Types" tab, you can choose which Task Types you want to use on this production, -validate your choice with the "Add" button. - -You can also enter the start date and the due date for each task type. - -Once you add assets and shots to your production; your schedule will be set automatically. - -![Setting Add Task Type](../img/getting-started/setting_task_add.png) - - -### Select specific Asset Types for a production - - -Per default, Kitsu will load all the Asset Types of your status library into your production. - -But you can choose to use only specific Asset Types, depending on the type of your production. - -![Setting Asset type new](../img/getting-started/setting_asset_new.png) - -On the "Asset Types" tab, you can choose which Asset Types you want to use on this production, -validate your choice with the "Add" button. - -![Setting Add Asset](../img/getting-started/setting_asset_add.png) - diff --git a/docs/public/illustration_developer_documentation.png b/docs/public/illustration_developer_documentation.png new file mode 100644 index 0000000000..7031a4d023 Binary files /dev/null and b/docs/public/illustration_developer_documentation.png differ diff --git a/docs/public/kitsu.png b/docs/public/kitsu.png new file mode 100644 index 0000000000..2a8339d6d0 Binary files /dev/null and b/docs/public/kitsu.png differ diff --git a/docs/publish/README.md b/docs/publish/README.md deleted file mode 100644 index 400681a759..0000000000 --- a/docs/publish/README.md +++ /dev/null @@ -1,113 +0,0 @@ -# Publishes - -## Publishing a Concept - -To publish a **Concept**, navigate to the **Concepts** page from the project navigation menu. - -![Concept Menu](../img/getting-started/menu_concept.png) - -To upload a concept, click the **Add a new reference to concepts** button. You can upload one or several concepts simultaneously. - -![Concept empty page](../img/getting-started/concept_empty_prod.png) - -After the upload is complete, previews will be generated and visible from your concepts page. - -![Concept filled page](../img/getting-started/concept_filled_prod.png) - -Click on the thumbnail to see an enlarged preview of your concept, or click on the status to open the **Comment Panel** on the right. - -With the comment panel open, you have two options: - -1) You can link a concept with an existing asset / delete and existing link. -2) You can comment and change the status of the concept. - -It is good practice to only have one version per **Concept**. If the concept is not approved and requires additional changes, then it's better to version-up that concept. - -![Concept options](../img/getting-started/concept_options.png) - -## Linking a Concept to an Asset - -Once concepts are uploaded, you can link them to assets. - -The name of the linked asset is displayed below the thumbnail of the concept, and above the status. If no asset is linked, this area will be blank. - -Click on the status of the concept to open the comment panel on the right. - -![Concept Comment Panel](../img/getting-started/concept_comment_panel.png) - -From here you can adjust what the concept is linked to, or delete it. In our example below, the concept is not currently linked to an asset. - -To link an asset, click on the **Link** ![Link button](../img/getting-started/link_icon.png) button. - -Kitsu will display all the **Assets** available to link with the uploaded concept. - -![Concept link](../img/getting-started/concept_link.png) - -Select the assets from the list that you want to link to. The linked asset names will then appear at the top of the screen and will also display under the concept's thumbnail. - -![Concept asset linked](../img/getting-started/concept_asset_linked.png) - -Once a concept is linked to an asset, it can be seen and referenced from the asset's detail page. Return to the asset page and click on the asset which you just linked to your concept. - -![Detail asset page](../img/getting-started/asset_detail_page.png) - -By default, the casting detail is displayed on the second part of the screen. Use the dropdown menu to choose the concept. - -![Asset detail concept](../img/getting-started/asset_detail_concept.png) - -Once in the concept section, you will see all the concepts created for this asset. You can filter them by status. - -![Asset detail concept list](../img/getting-started/asset_detail_concep_listt.png) - - -## Publish a Preview as a Version -To publish a preview, picture, or video, access the task's comment panel and select the **PUBLISH REVISION** tab. - -Kitsu automatically switches to the **Publish Revision** tab when using a status with the **IS FEEDBACK REQUEST** option, such as the **WFA** Status. - -![Publish Revision](../img/getting-started/publish_revision.png) - -You can add one or several previews to any comments. These can be a picture (`.png`, `.jpg`, `.jpeg`, `.gif`), a video (`.mp4`, `.mov`, `.wmv`), or a `.glb` file. Additionally, you can review all the previews from the browser or mix everything. - -You can also review a `.glb` file as a wireframe or add a `.HDR` file to check the lighting. See the **Customization** section for more details. - -[Pipeline Customization](../configure-kitsu/README.md#3d-backgrounds) - -Other files like `.pdf`, `.zip`, `.rar`, `.ma`, or `.mb` cannot be viewed in the browser and need to be downloaded to be reviewed. - -Then, click on the **Add preview revision to publish** button. The explorer opens, allowing you to choose your file or several files. - -![Attach Preview](../img/getting-started/attach_preview.png) - -You can also **copy-paste a screenshot** from your clipboard into this upload dialogue, without needing to download it first. Once your file is selected, you will see its name near the **Add files to publish** button. - -![Attach Preview Filled](../img/getting-started/attach_preview_filled.png) - -You can also **drag & drop** files that you wish to upload into the comment section to automatically start the upload process. - -![Attach Preview Drag Drop](../img/getting-started/drag_drop_preview.png) - -On top of your preview, you can add a **Comment**. Click the **Leave a Comment** button to unfold the comment section. - -![Add a comment to a Publish](../img/getting-started/publish_revision_comment.png) - -You can then select your status and publish your preview with the **Post** Button. - -For more information on using publishes as thumbnails, [see this section here on thumbnails](../thumbnails/README.md). - - -## Combining Previews Into a Version - -You can add multiple images simultaneously, or once you have uploaded an image, you can add another one. - -![Upload Several Pictures](../img/getting-started/upload_several_pictures.png) - -The **Add preview** pop-up asks you to choose a file. You can navigate through the pictures uploaded. - -You can change the preview order by clicking the number and then dragging and dropping them. - -![Preview Drag Drop](../img/getting-started/multiple_preview.png) - -To delete an additional preview, enlarge the comment panel, click on the number of versions, and then click on the ![Delete Button](../img/getting-started/delete_button.png). - -![Enlarge Comment Section Delete](../img/getting-started/enlarge_comment_delete.png) \ No newline at end of file diff --git a/docs/publisher/README.md b/docs/publisher/README.md deleted file mode 100644 index 60463305af..0000000000 --- a/docs/publisher/README.md +++ /dev/null @@ -1,354 +0,0 @@ -# Kitsu Publisher - -Kitsu is a web application designed to streamline production progress sharing and delivery validation, enhancing communication among stakeholders for faster, higher-quality outputs. - -The Kitsu Publisher is a desktop application that bridges DCC tools with Kitsu, allowing artists to manage their tasks, add comments, and send previews directly from their tools. - -## DCC Integrations Status: - -Currently supported: -- Blender -- Toon Boom Harmony -- Unreal Engine - -Work in progress: -- Photoshop -- Nuke - -## Installation - -### Installation of the Kitsu Publisher - -#### Pre-Requisites - -You need to download (or to build if you want to: see [Development Environment](#development-environment)) your preferred installer/package/portable for the app corresponding to your OS in the [releases](https://github.com/cgwire/kitsu-publisher-next/releases/latest). - -All commands have the keyword {version} in the filenames, you need to replace the version with the current version of the Kitsu Publisher. - -#### On Linux - -- **deb package** (for Debian-based distributions): - - To install the package: - - ```shell - dpkg -i kitsu-publisher_{version}_amd64.deb - ``` - - - The package is now in your applications and in your $PATH. - -- **rpm package** (for RHEL-based distributions): - - To install the package: - - ```shell - rpm -i kitsu-publisher_{version}_x86_64.rpm - ``` - - - The package is now in your applications and in your $PATH. - -- **snap package**: - - To install the package: - - ```shell - snap install kitsu-publisher_{version}_amd64.snap --dangerous - ``` - - - The package is now in your applications and in your $PATH. - -- **tar.gz archive**: - - To extract the archive: - - ```shell - tar -xf kitsu-publisher-{version}.tar.gz - ``` - - - To run the app: - - ```shell - kitsu-publisher-{version}/kitsu-publisher - ``` - -- **AppImage**: - - to run the app: - - ```shell - ./Kitsu publisher-{version}.AppImage - ``` - - -#### On Windows - -- **NSIS Installer**: - Double-click the installer `Kitsu-publisher-Setup-{version}.exe` and follow the instructions. - -- **MSI Installer**: - Double-click the installer `Kitsu-publisher-{version}-ia32.msi` to install the app. - -- **Portable application**: - Double-click the executable `Kitsu-publisher-{version}.exe`. - -- **Zip portable application**: - Extract the zip `Kitsu-publisher-{version}-ia32-win.zip`, and double-click `Kitsu publisher.exe`. - -#### On MacOS - -- **DMG Installer**: - Double-click the installer `Kitsu-publisher-{version}.dmg`, drag the Kitsu logo to the "Applications" folder. - -- **PKG Installer**: - ```shell - sudo installer -package Kitsu-publisher-{version}.pkg -target / - ``` - -- **Zip portable application**: - Double-click the zip `Kitsu-publisher-{version}-mac.zip`, then double-click the Kitsu Publisher icon. - - -## Development Environment - -### Pre-Requisites - -To develop or to build the Electron app you need [Node.js](https://nodejs.org/en/)>=16.11 installed. - -### Dependencies - -To install all the dependencies needed by the Electron app you have to run in the project folder: - -```shell -npm install -``` - -### Run - -To run the Electron app in development mode you have to run an npm script: - -```shell -npm run dev -``` - -It will spawn an electron instance and a Vite development server. - -### Build the Electron App - -#### Pre-Requisites - -- On debian based Linux you need: - - - To install these packages: - - ```shell - apt-get install build-essential libcairo2-dev libpango1.0-dev \ - libjpeg-dev libgif-dev librsvg2-dev - ``` - - - If you want to build specific target like rpm you need to install: - - ```shell - apt-get install rpm - ``` - -- On Windows you need: - - - See the [wiki](https://github.com/Automattic/node-canvas/wiki/Installation:-Windows) of node-canvas. - -- On macOS you need (with [Homebrew](https://brew.sh/)): - - ```shell - brew install pkg-config cairo pango libpng jpeg giflib librsvg - ``` - -#### Building the App - -You need to run npm scripts: - -- If you only want to build an unpackaged directory: - - ```shell - npm run build - ``` - -- If you want to build for all targets: - - ```shell - npm run build:all - ``` - -## Installation of the DCCs connectors - -#### Pre-requisites - -Download the `connectors-{version}.zip` from the [latest releases](https://github.com/cgwire/kitsu-publisher-next/releases/latest) and unzip it. - -#### Blender (version>2.80) - -- You need to go inside the connectors/blender directory. - -- On Windows (with PowerShell): - - - If you want to be guided through the installation of the plugin, you have to right-click on the script install.ps1 and select "Run with PowerShell" to run the script in prompt mode. If you have multiple installations from installer of Blender it will install the plugin for all the installations (not if you select a portable Blender). - - - If you want to run the script with PowerShell command line it's possible, look at the help with: - - ```shell - .\install.ps1 -help - ``` - -- On Linux: - - - If Blender is installed with a system package (for example: deb or rpm): - - ```shell - bash ./install.sh --system - ``` - - - If Blender is an unpacked directory (tar.xz archive): - - ```shell - bash ./install.sh --unpacked-directory=PATH_TO_YOUR_PORTABLE_BLENDER - ``` - - - If Blender is installed with a snap package: - - ```shell - bash ./install.sh --snap - ``` - -- On macOS: - - - If Blender is installed with a dmg image or Homebrew: - - ```shell - bash ./install.sh --dmg - ``` - -#### Toon Boom Harmony - -- You need to go inside the connectors/harmony directory. - -- On Windows (with PowerShell): - - - If you want to be guided through the installation of the plugin, you have to right-click on the script install.ps1 and select "Run with PowerShell" to run the script in prompt mode. If you have multiple installations from installer of Toon Boom Harmony it will install the plugin for all the installations. - - - If you want to run the script with PowerShell command line it's possible, look at the help with: - - ```shell - .\install.ps1 -help - ``` - -- On macOS: - - - coming soon - -#### Unreal Editor (version>=5) - -- You need to go inside the connectors/unreal directory. - -- On Windows (with PowerShell): - - - If you want to be guided through the installation of the plugin, you have to right-click on the script install.ps1 and select "Run with PowerShell" to run the script in prompt mode. If you have multiple installations from installer of Unreal Editor it will install the plugin for all the installations. - - - If you want to run the script with PowerShell command line it's possible, look at the help with: - - ```shell - .\install.ps1 -help - ``` - -- On Linux: - - - coming soon - -- On macOS: - - - coming soon - -## Publishing Previews with the Kitsu Publisher - -You must first have the Kitsu publisher and the plugin installed on your computer. - -## Consult Your To-Do List - -Log in to the Kitsu Publisher using your Kitsu credentials. You will see your to-do list with similar options as in Kitsu. - -![Kitsu Publisher todo list](../img/getting-started/publisher_todolist.png) - -To comment or publish on a task, click on the status. - -![Kitsu Publisher todo list status](../img/getting-started/publisher_todolist_status.png) - -The comment panel will open with the previews and the whole history of this task. - -The first new element is that you have direct access to your timesheet. You can move the cursor to adapt the timeline to the number of hours spent on this specific task. - -![Kitsu Publisher to-do list Comment panel](../img/getting-started/publisher_todolist_comment.png) - -When you are ready to publish your work, click on the **Add a review to publish** button. - - -## Publish a Preview From the Publisher - -You can either upload the preview manually or let the Kitsu Publisher do it for you. Kitsu Publisher will detect the open DCC and project. - -![Kitsu Publisher DCC list](../img/getting-started/publisher_dcc_list.png) - -Select your camera and render engine, and choose between a screenshot or full animation render. - -Here, for example, we select the **Screenshot** option. Kitsu publisher will ask your DCC to do the render for you and display the result. - -![Kitsu Publisher DCC Screenshot](../img/getting-started/publisher_dcc_screenshot.png) - -Once satisfied, click **Confirm**, add your comment, change the status, and click **Post Comment** to upload the preview. - -![Kitsu Publisher comment](../img/getting-started/publisher_post_comment.png) - -Now everybody logged in to Kitsu will see your comment and publish. - - -## Setup the Publisher - -### Change the Save Directory and Add Scripts - -You can access settings via your avatar. - -![Kitsu Publisher settings Menu](../img/getting-started/publisher_settings_menu.png) - -You have two options here: the first one is the directory for exports made by the DCCs. - -Per default, it's set to your temporary directory. You can change it, and then this specific folder will be used for all the exports. You can also use a network drive. - -The second option is about the command you can launch after the exports made by the DCCs but before the upload into Kitsu. - -You can launch a command or a script directly on the exported file, the folder, etc. - -![Kitsu Publisher settings option](../img/getting-started/publisher_settings_option.png) - - -You can insert variables in your command. You just have to put the chosen variable under curly brackets (for example: {exportFile}). These variables are also in the environment variables at runtime. They are listed below: - -- exportsDirectory (String) : the directory path where the exports are made. -- exportFile (String): the path of the file that will be exported. -- exportIsAnimation (Boolean) : true if the export is an animation else false. -- exportIsScreenshot (Boolean) : true if the export is a screenshot else false. -- DCCName (String) : the name of the DCC. -- DCCVersion (String) : the version of the DCC. -- currentProject (String) : the path of the current project opened in the DCC. -- cameraSelected (String) : the name of the Camera selected. -- rendererSelected (String) : the name of the renderer selected. -- extensionSelected (String) : the name of the extension selected. -- entityName (String) : the name of the entity. -- entityTypeName (String) : the name of the entity type. -- episodeName (String) : the name of the episode type. -- fullEntityName (String) : the full name of the entity. -- projectName (String) : the name of the project. -- taskStatusName (String) : the name of the task status. -- taskTypeName (String) : the name of the task type - -### View the Result of the Setting on the Export Pop-Up - -Once your preview is rendered, you can check the directory and the scripts launched. - -![Kitsu Publisher settings result](../img/getting-started/publisher_settings_result.png) - -Click on the options icon to see the command executed before the import. - -![Kitsu Publisher settings result detailed](../img/getting-started/publisher_settings_resul_detailt.png) - -Confirm if everything is correct, then post your comment as usual. diff --git a/docs/recipes/3d-background/index.md b/docs/recipes/3d-background/index.md new file mode 100644 index 0000000000..08b5628bd0 --- /dev/null +++ b/docs/recipes/3d-background/index.md @@ -0,0 +1,65 @@ +--- +prev: false +next: false +--- + +# 3D Backgrounds + +## Create a Global Library of HDR Files + +The 3D Backgrounds feature enhances your review of 3D files (`.GLB`) by incorporating an `.HDR` background to make things easier to review. + +The `.GLB` file format is a binary container that encompasses various 3D assets and resources. These assets may comprise 3D models, textures, materials, and animations. + +::: warning Definition +It means you can review your 3D files with lighting information. +::: + +In this section, you can create your own. `.HDR` files library that you can use in your production. + +Go to the main menu ![Main menu](/img/getting-started/main_button.png), and select **3D Backgrounds**. + +![Main menu preview background](/img/getting-started/main_menu_preview_backgrounds.png) + + +From here, you can add a `.HDR` Background by clicking the **+Add a new background** button. + +![add preview background](/img/getting-started/preview_background_empty.png) + + +From this point, you'll need to select your `.HDR` background, provide a name for it, and decide whether you want this `.HDR` to serve as the default background. + +::: tip +Checking the `Is Default` option means this HDR will be applied across your entire production instead of the default grey background. +::: + +![Main menu preview background](/img/getting-started/preview_background_new.png) + +Once you have uploaded all your `.HDR` files, Kitsu will display them as a list. + +![Preview background filled](/img/getting-started/preview_background_filled.png) + + +Your new **3D Background** is now created in your **Global Library**. + +::: warning +You must add them to your **Production Library** once you have created your production. +::: + +## Select Specific Preview Background for a Production + +On the **Navigation Menu**, choose on the dropdown menu the **Setting**. + +![Drop Down menu Setting](/img/getting-started/drop_down_menu_setting.png) + +On the **Preview Backgrounds** tab, you can choose which HDR file you want to add or remove on this production, + +![Setting Status automation new](/img/getting-started/preview_background_setting.png) + +Validate your choice with the **add** button. + +![Setting Add Asset](/img/getting-started/preview_background_setting_filled.png) + +You can review your 3D file with an HDR background. + +![Preview background example](/img/getting-started/preview_background_example.png) diff --git a/docs/recipes/assets-only-production/index.md b/docs/recipes/assets-only-production/index.md new file mode 100644 index 0000000000..da9943df19 --- /dev/null +++ b/docs/recipes/assets-only-production/index.md @@ -0,0 +1,64 @@ +--- +prev: false +next: false +--- + + + +# Quickstart for Assets-Only Productions + +## 1. Create a new production + + + + + +## 2. Create an Asset + + + + + +## 3. Update Your Assets + + + + + +## 4. Add More Tasks After Creating the Assets + + + + + +## 5. Create a Concept + + + + + +## 6. Creating Custom Metadata Columns + + + + + +## 7. Create an Edit + + + + + +## 8. Create a Breakdown List + + + + + +## 9. Casting from the Asset Library + + + + \ No newline at end of file diff --git a/docs/recipes/for-feature-films/index.md b/docs/recipes/for-feature-films/index.md new file mode 100644 index 0000000000..18868c4fb0 --- /dev/null +++ b/docs/recipes/for-feature-films/index.md @@ -0,0 +1,108 @@ +--- +prev: false +next: false +--- + + + +# Quickstart for Feature Film Productions + +## 1. Create a new production + + + + + +## 2. Create an Asset + +So, now that we have created our production and have a general grasp of the Kitsu interface, it's time to create our first asset. + + + + + +## 3. Update Your Assets + + + + + +## 4. Add More Tasks After Creating the Assets + + + + + +## 5. Create a Concept + + + + + +## 6. Create a Shot + + + + + +## 7. Create Shots from an EDL File + + + + + +## 8. Update your shots + + + + + +## 9. Add more tasks after creating the shots + + + + + +## 10. Adding Frame Numbers and Ranges to Shots + + + + + +## 11. Creating Custom Metadata Columns + + + + + +## 12. Create a Sequence + + + + + +## 13. Create an Edit + + + + + +## 14. Create a Breakdown List + + + + + +## 15. Casting from the Asset Library + + + + + +## 16. Introduction to Asset State: Ready For + + + + \ No newline at end of file diff --git a/docs/recipes/for-nfts/index.md b/docs/recipes/for-nfts/index.md new file mode 100644 index 0000000000..77fb207729 --- /dev/null +++ b/docs/recipes/for-nfts/index.md @@ -0,0 +1,88 @@ +--- +prev: false +next: false +--- + + + +# Quickstart for NFT Productions + +## 1. Create a new production + + + + + +## 2. Create an Asset + + + + + +## 3. Update Your Assets + + + + + +## 4. Add More Tasks After Creating the Assets + + + + + +## 5. Create a Concept + + + + + +## 6. Create a NFT Collection + + + + + +## 7. Create NFT Collections from an EDL File + + + + + +## 8. Update your NFT Collections + + + + + +## 9. Add more tasks after creating the NFT Collections + + + + + +## 10. Creating Custom Metadata Columns + + + + + +## 11. Create a Breakdown List + + + + + +## 12. Casting from the Asset Library + + + + + +## 13. Introduction to Asset State: Ready For + + + + \ No newline at end of file diff --git a/docs/recipes/for-shorts/index.md b/docs/recipes/for-shorts/index.md new file mode 100644 index 0000000000..f73e587d92 --- /dev/null +++ b/docs/recipes/for-shorts/index.md @@ -0,0 +1,106 @@ +--- +prev: false +next: false +--- + + + +# Quickstart for Shorts Productions + +## 1. Create a new production + + + + + +## 2. Create an Asset + + + + + +## 3. Update Your Assets + + + + + +## 4. Add More Tasks After Creating the Assets + + + + + +## 5. Create a Concept + + + + + +## 6. Create a Shot + + + + + +## 7. Create Shots from an EDL File + + + + + +## 8. Update your shots + + + + + +## 9. Add more tasks after creating the shots + + + + + +## 10. Adding Frame Numbers and Ranges to Shots + + + + + +## 11. Creating Custom Metadata Columns + + + + + +## 12. Create a Sequence + + + + + +## 13. Create an Edit + + + + + +## 14. Create a Breakdown List + + + + + +## 15. Casting from the Asset Library + + + + + +## 16. Introduction to Asset State: Ready For + + + + \ No newline at end of file diff --git a/docs/recipes/for-tvshows/index.md b/docs/recipes/for-tvshows/index.md new file mode 100644 index 0000000000..097b997967 --- /dev/null +++ b/docs/recipes/for-tvshows/index.md @@ -0,0 +1,106 @@ +--- +prev: false +next: false +--- + + + +# Quickstart for TV Show Productions + +## 1. Create a new production + + + + + +## 2. Create an Asset + + + + + +## 3. Update Your Assets + + + + + +## 4. Add More Tasks After Creating the Assets + + + + + +## 5. Create a Concept + + + + + +## 6. Create a Shot + + + + + +## 7. Create Shots from an EDL File + + + + + +## 8. Update your shots + + + + + +## 9. Add more tasks after creating the shots + + + + + +## 10. Adding Frame Numbers and Ranges to Shots + + + + + +## 11. Creating Custom Metadata Columns + + + + + +## 12. Create a Sequence + + + + + +## 13. Create an Edit + + + + + +## 14. Create a Breakdown List + + + + + +## 15. Casting from the Asset Library + + + + + +## 16. Introduction to Asset State: Ready For + + + + \ No newline at end of file diff --git a/docs/recipes/for-videogames/index.md b/docs/recipes/for-videogames/index.md new file mode 100644 index 0000000000..5f6d963573 --- /dev/null +++ b/docs/recipes/for-videogames/index.md @@ -0,0 +1,106 @@ +--- +prev: false +next: false +--- + + + +# Quickstart for Video Game Productions + +## 1. Create a new production + + + + + +## 2. Create an Asset + + + + + +## 3. Update Your Assets + + + + + +## 4. Add More Tasks After Creating the Assets + + + + + +## 5. Create a Concept + + + + + +## 6. Create a Map + + + + + +## 7. Create Maps from an EDL File + + + + + +## 8. Update your maps + + + + + +## 9. Add more tasks after creating the maps + + + + + +## 10. Adding Frame Numbers and Ranges to Maps + + + + + +## 11. Creating Custom Metadata Columns + + + + + +## 12. Create a Level + + + + + +## 13. Create an Edit + + + + + +## 14. Create a Breakdown List + + + + + +## 15. Casting from the Asset Library + + + + + +## 16. Introduction to Asset State: Ready For + + + + \ No newline at end of file diff --git a/docs/recipes/shots-only-production/index.md b/docs/recipes/shots-only-production/index.md new file mode 100644 index 0000000000..bd54877cbd --- /dev/null +++ b/docs/recipes/shots-only-production/index.md @@ -0,0 +1,64 @@ +--- +prev: false +next: false +--- + + + +# Quickstart for Shots-Only Productions + +## 1. Create a new production + + + + + +## 2. Create a Shot + + + + + +## 3. Create Shots from an EDL File + + + + + +## 4. Update your shots + + + + + +## 5. Add more tasks after creating the shots + + + + + +## 6. Adding Frame Numbers and Ranges to Shots + + + + + +## 7. Creating Custom Metadata Columns + + + + + +## 8. Create a Sequence + + + + + +## 9. Create an Edit + + + + \ No newline at end of file diff --git a/docs/faq/README.md b/docs/resources/faq/index.md similarity index 74% rename from docs/faq/README.md rename to docs/resources/faq/index.md index 706332f3e0..a5d08eaba4 100644 --- a/docs/faq/README.md +++ b/docs/resources/faq/index.md @@ -1,159 +1,159 @@ -# Frequently Asked Questions - -This FAQ guide provides quick solutions to common Kitsu issues, such as login problems, task management, and production organization. Explore the sections below for step-by-step instructions and helpful tips. For further support, check the detailed [Kitsu documentation](../configure-kitsu/) or contact support. - ---- - -## Login Issues - -### I can't log in to Kitsu anymore -The first thing to check is the **web address** you are using to log in. - -- If the web address is **account.cg-wire.com/signin** and you see the CGWire logo, you are on the **wrong page**. - - ![Account login](../img/getting-started/account_login.png) - - The **account page** is only for managing subscriptions, invoices, etc. You won't have access unless you've registered for a subscription. - -- The correct web address for your Kitsu instance should look like **your-studio-name.cg-wire.com**. On this page, you'll be prompted to log in, and you should see the Kitsu logo. - - ![Kitsu login](../img/getting-started/kitsu_login.png) - -If you're unsure of the correct link: -- Check the invitation email you received. -- Contact your studio manager for assistance. - ---- - -## Task Management - -### I created a new Task Type, but I don't see it in my production -If you've created a new task type ([see documentation](../configure-kitsu/#task-types)) but it isn’t appearing in your production, it’s likely because task types need to be explicitly added to your **Production Library** after being created in the **Studio Library**. - -#### Understanding the Difference: -- **Studio Library**: This is where all task types are initially created and stored for your studio. -- **Production Library**: Each production has its own library, and task types must be added here before they can be used within that production. - - -#### Steps to Add Task Types to Your Production -1. Go to your production **Settings** page from the navigation menu. - ![Production Settings page](../img/getting-started/drop_down_menu_setting.png) - -2. Navigate to the **Task Types** tab. - ![Task Type Settings page](../img/getting-started/setting_task_add.png) - -3. Select the appropriate entity tab (e.g., assets, shots, sequences, episodes, edits). -4. Find your task type in the list on the right and click to add it. - -Once added, go back to your entity page and click **Add Task Type**. -![Add Task Type](../img/getting-started/add_tasktype.png) - -:::warning -**Permissions**: - If you can't see the **Settings** option in the main menu, you may not have the necessary permissions. Please contact your studio administrator if you do not have this option. -::: - ---- - -### My Task Type columns are not in the right order -If task type columns appear out of order, you can adjust them: - -- **Studio-wide order**: - 1. Go to the main menu under the **ADMIN** section and click **Task Types**. - ![Task Type admin Menu](../img/getting-started/menu_tasktype.png) - 2. Drag and drop task types into the desired order. - ![Task Type order](../img/getting-started/created_task_top.png) - -- **Production-specific order**: - 1. Go to the **Settings** page for your production. - 2. Navigate to the **Task Types** tab and adjust the order by dragging and dropping. - ---- - -### Task Type columns are missing -If some task type columns are missing on the entity page: - -1. Check the department filter and ensure it is set to **All Departments**. - ![Department filtered view](../img/getting-started/department_filtered_view.png) - -2. Ensure the **Show additional information** button is highlighted. - ![Hide option](../img/getting-started/display_hide_option.png) - -3. If columns are reduced, they won't display unless additional information is shown. - ---- - -## Team and Assignments - -### I can't assign anyone to a task -If the list of assignees in the comment panel is empty, it means the people you've added to the **People** page haven't been added to the production. - -#### Steps to Add People to a Production -1. Navigate to the **Team** page from the production menu. - ![Team menu](../img/getting-started/drop_down_menu_team.png) - -2. The **Team** page will be empty, but you'll see a list of people on the right. - ![Team page empty](../img/getting-started/people_empty.png) - -3. Add people individually or by department. - -Once added, they'll have access to the production, and you can assign them tasks. - ---- - -### All assignments have disappeared -If assignees' avatars are no longer visible: - -1. Ensure you haven’t accidentally clicked the **Hide Assignments** button. - ![Hide option](../img/getting-started/display_hide_option.png) - -2. Click the button again to make the avatars reappear. - ---- - -## Production Management - -### How to Delete or Archive a Production - -If you no longer need access to a production, you can choose to archive or delete it. - -- **Archiving**: This will remove the production from the navigation menu but keep it accessible for reference. -- **Deleting**: This is a permanent, non-reversible action that will completely remove the production from your Kitsu instance. - -#### Steps to Archive a Production -1. Go to the main menu and select **Productions** under the **STUDIO** section. - ![Main Menu Productions](../img/getting-started/main_menu_production.png) - -2. Locate the production you want to archive and click the edit button. - ![Edit Productions](../img/getting-started/edit_production.png) - -3. Change the **Status** from **Open** to **Closed** and confirm. - ![Edit Productions option](../img/getting-started/production_edit_status.png) - -The production is now archived and will no longer appear in the navigation menu. - ---- - -#### Steps to Delete a Production -Only archived productions can be deleted. If you're sure you want to permanently remove a production: - -1. From the **Productions** list, hover over the archived (closed) production. A trash icon will appear. -2. Click the trash icon, and a confirmation dialog will open. -3. Type the name of the production to confirm the deletion. - -![Delete Production](../img/getting-started/delete_production.png) - -:::warning -Deleting a production is permanent and cannot be undone. Only proceed if you’re certain the data is no longer needed. -::: - ---- - -## Miscellaneous - -### Where can I see the storage I'm using? -Currently, Kitsu does not display storage usage directly in the interface or on your account page. This means you won't find a section in the app showing how much storage your productions or assets are consuming. - -If you need to check your storage usage: -- Contact your system administrator or IT team if Kitsu is hosted on your studio's servers. -- If you're using a cloud-hosted Kitsu instance, email **support@cg-wire.com** with your studio name and account details, where our team can provide you with the necessary information. \ No newline at end of file +# Frequently Asked Questions + +This FAQ guide provides quick solutions to common Kitsu issues, such as login problems, task management, and production organization. Explore the sections below for step-by-step instructions and helpful tips. For further support, check the detailed [Kitsu documentation](../configure-kitsu/) or contact support. + +--- + +## Login Issues + +### I can't log in to Kitsu anymore +The first thing to check is the **web address** you are using to log in. + +- If the web address is **account.cg-wire.com/signin** and you see the CGWire logo, you are on the **wrong page**. + + ![Account login](/img/getting-started/account_login.png) + + The **account page** is only for managing subscriptions, invoices, etc. You won't have access unless you've registered for a subscription. + +- The correct web address for your Kitsu instance should look like **your-studio-name.cg-wire.com**. On this page, you'll be prompted to log in, and you should see the Kitsu logo. + + ![Kitsu login](/img/getting-started/kitsu_login.png) + +If you're unsure of the correct link: +- Check the invitation email you received. +- Contact your studio manager for assistance. + +--- + +## Task Management + +### I created a new Task Type, but I don't see it in my production +If you've created a new task type ([see documentation](../configure-kitsu/#task-types)) but it isn’t appearing in your production, it’s likely because task types need to be explicitly added to your **Production Library** after being created in the **Studio Library**. + +#### Understanding the Difference: +- **Studio Library**: This is where all task types are initially created and stored for your studio. +- **Production Library**: Each production has its own library, and task types must be added here before they can be used within that production. + + +#### Steps to Add Task Types to Your Production +1. Go to your production **Settings** page from the navigation menu. + ![Production Settings page](/img/getting-started/drop_down_menu_setting.png) + +2. Navigate to the **Task Types** tab. + ![Task Type Settings page](/img/getting-started/setting_task_add.png) + +3. Select the appropriate entity tab (e.g., assets, shots, sequences, episodes, edits). +4. Find your task type in the list on the right and click to add it. + +Once added, go back to your entity page and click **Add Task Type**. +![Add Task Type](/img/getting-started/add_tasktype.png) + +:::warning +**Permissions**: + If you can't see the **Settings** option in the main menu, you may not have the necessary permissions. Please contact your studio administrator if you do not have this option. +::: + +--- + +### My Task Type columns are not in the right order +If task type columns appear out of order, you can adjust them: + +- **Studio-wide order**: + 1. Go to the main menu under the **ADMIN** section and click **Task Types**. + ![Task Type admin Menu](/img/getting-started/menu_tasktype.png) + 2. Drag and drop task types into the desired order. + ![Task Type order](/img/getting-started/created_task_top.png) + +- **Production-specific order**: + 1. Go to the **Settings** page for your production. + 2. Navigate to the **Task Types** tab and adjust the order by dragging and dropping. + +--- + +### Task Type columns are missing +If some task type columns are missing on the entity page: + +1. Check the department filter and ensure it is set to **All Departments**. + ![Department filtered view](/img/getting-started/department_filtered_view.png) + +2. Ensure the **Show additional information** button is highlighted. + ![Hide option](/img/getting-started/display_hide_option.png) + +3. If columns are reduced, they won't display unless additional information is shown. + +--- + +## Team and Assignments + +### I can't assign anyone to a task +If the list of assignees in the comment panel is empty, it means the people you've added to the **People** page haven't been added to the production. + +#### Steps to Add People to a Production +1. Navigate to the **Team** page from the production menu. + ![Team menu](/img/getting-started/drop_down_menu_team.png) + +2. The **Team** page will be empty, but you'll see a list of people on the right. + ![Team page empty](/img/getting-started/people_empty.png) + +3. Add people individually or by department. + +Once added, they'll have access to the production, and you can assign them tasks. + +--- + +### All assignments have disappeared +If assignees' avatars are no longer visible: + +1. Ensure you haven’t accidentally clicked the **Hide Assignments** button. + ![Hide option](/img/getting-started/display_hide_option.png) + +2. Click the button again to make the avatars reappear. + +--- + +## Production Management + +### How to Delete or Archive a Production + +If you no longer need access to a production, you can choose to archive or delete it. + +- **Archiving**: This will remove the production from the navigation menu but keep it accessible for reference. +- **Deleting**: This is a permanent, non-reversible action that will completely remove the production from your Kitsu instance. + +#### Steps to Archive a Production +1. Go to the main menu and select **Productions** under the **STUDIO** section. + ![Main Menu Productions](/img/getting-started/main_menu_production.png) + +2. Locate the production you want to archive and click the edit button. + ![Edit Productions](/img/getting-started/edit_production.png) + +3. Change the **Status** from **Open** to **Closed** and confirm. + ![Edit Productions option](/img/getting-started/production_edit_status.png) + +The production is now archived and will no longer appear in the navigation menu. + +--- + +#### Steps to Delete a Production +Only archived productions can be deleted. If you're sure you want to permanently remove a production: + +1. From the **Productions** list, hover over the archived (closed) production. A trash icon will appear. +2. Click the trash icon, and a confirmation dialog will open. +3. Type the name of the production to confirm the deletion. + +![Delete Production](/img/getting-started/delete_production.png) + +:::warning +Deleting a production is permanent and cannot be undone. Only proceed if you’re certain the data is no longer needed. +::: + +--- + +## Miscellaneous + +### Where can I see the storage I'm using? +Currently, Kitsu does not display storage usage directly in the interface or on your account page. This means you won't find a section in the app showing how much storage your productions or assets are consuming. + +If you need to check your storage usage: +- Contact your system administrator or IT team if Kitsu is hosted on your studio's servers. +- If you're using a cloud-hosted Kitsu instance, email **support@cg-wire.com** with your studio name and account details, where our team can provide you with the necessary information. diff --git a/docs/review-weekly/README.md b/docs/review-weekly/README.md deleted file mode 100644 index 74e9f7de7d..0000000000 --- a/docs/review-weekly/README.md +++ /dev/null @@ -1,111 +0,0 @@ -# Daily & Weekly review - -For your dailies or weeklies, you can create a **Playlist** - -## Create a Playlist for your internal review - - -You can find the **Playlists** page on the drop-down menu. - -![Playlist main menu](../img/getting-started/drop_down_menu_playlist.png) - -The **playlist** page is separated into two parts: - -- (1) The playlist list where you can **create** a playlist or load an existing one. -- (2) The last created playlists and the last modified playlists - -![Playlist page](../img/getting-started/playlist_page.png) - -Start by creating a **Playlist** -![Playlist add button](../img/getting-started/playlist_add_button.png). Your default name -is the date and the hour. You can change it immediately. You can choose if the playlist -will be shared with the **studio** or the **client** and if it's a **shot** or **asset** playlist. -You can also add a **Task Type** tag to the playlist. - -![Playlist add page](../img/getting-started/playlist_add_page.png) - -Once the playlist is created, via the search/filter bar, you can select which shots to add -to your playlist. - -You can also choose to **add the whole movie**, and it will add all the shots of the movie. - -You can select **Daily pending**, which will add all the **WFA** tasks of the day. - -Otherwise, you can **Add the whole sequence** if you want to focus only on a particular sequence. - -You can use the same **filter** than on the global shot/asset page. For example, you can select all the -WFA is short for the animation stage. -You have to type **animation=wfa** in the search bar. Valid your selection with the **Add selection** button. -Kitsu will select the shots with the **WFA** status at the **Animation** stage. Still, Kitsu will automatically load **the latest uploaded version**. - -The shots appear on the top part of the screen. Every change are -automatically saved. - - - -![Playlist page](../img/getting-started/playlist_example.png) - - -## Review and Validations - -Once you have created a playlist, you have several options: - - -![Playlist Global](../img/getting-started/playlist_global.png) - -* Play or Pause -* Navigate from element to element -* See the position of the selected element compared to the total number of elements -* Mute or unmute the sound -* Change the speed, double speed (x2), full speed (x1), half of the speed (x0.50), or a quarter of the speed (x0.25) -* Loop on one element -* Display the sound wave -* Display annotations during the play -* TC of the element compared to the TC of the whole playlist -* Number of frames -* Navigate frame per frame on the preview. You can also do it with the arrow on the Keyboard. -* Compare tool - - -* Undo and Redo option for the drawing comment -* Text and drawing option, and delete selection - - -* Change the task type of all the elements of the playlist -* Display the comment section -* Hide the elements of the playlist -* Switch between LD (low definition) to HD (High definition) -* Download the playlist as a **Zip** files with all the separated elements, a **.csv** text file, or **Build .mp4** to create the whole movie (only for shots) -* Fullscreen - - - -For each playlisted shot/asset, you can choose the **task** and the -**version** you want to see. - -![Playlist task selection](../img/getting-started/playlist_task_selection.png) -![Playlist version selection](../img/getting-started/playlist_version_selection.png) - -You can also play two tasks of a shot side by side. - -Click on the **Compare** button ![Compare button](../img/getting-started/compare_button.png) and choose the second task type. - -![Playlist side by side](../img/getting-started/playlist_side_by_side.png) - - - -The primary purpose of the playlist is to help you review the shots and assets. - -You can comment on the shots directly from the preview. - -Click on the **comment** button. - -![Playlist comment](../img/getting-started/playlist_comment_button.png) - -You now have access to the right panel, which has a history of the comments and their status. - -You can see the drawing comment on the video (the red dot below the timeline). - -![Playlist comment](../img/getting-started/playlist_comment.png) - -You can draw or type on the video with the **draw** button ![draw button](../img/getting-started/draw.png) diff --git a/docs/review/README.md b/docs/review/README.md deleted file mode 100644 index 928879a1a5..0000000000 --- a/docs/review/README.md +++ /dev/null @@ -1,190 +0,0 @@ -# Reviews - -## Reviewing Tasks - -When an artist needs someone to **review** their work, they can change the status of their task to ![wfa](../img/getting-started/wfa_icon.png). - -Click on the status to open the right hand panel and start the review. - -You can watch the version from the right panel, enlarge it by grabbing the side of the panel, or even enter fullscreen by clicking this icon ![Fullscreen](../img/getting-started/fullscreen.png). - -![review on global page](../img/getting-started/review_global.png) - -In the same way, you can also review 3D files (`.glb` file) as a wireframe or add a `.HDR` file to check the lighting. - -You can move around the 3D file by dragging and dropping your cursor and zooming in or out with the scroll wheel. - -![review 3d wireframe](../img/getting-started/review_wireframe.png) - -![Preview background example](../img/getting-started/preview_background_example.png) - -See the **Customization** section for more details. -[Pipeline Customization](../configure-kitsu/README.md#3d-backgrounds) - -You can select a color to use and then draw directly on the preview with the **Pencil** tool ![Pencil](../img/getting-started/draw.png). - -![review drawing](../img/getting-started/review_comment.png) - -### Drawing Annotations - -You can also annotate the frame with **text**. - -![review drawing text](../img/getting-started/review_comment_text.png) - -If you'd like to temporarily **hide annotations**, click the **Fountain Pen** button. -![Hide Annotation](../img/getting-started/hide_annotation.png) - -### Tagging Frames -If you would like to refer back to a specific frame in your comments, you can easily tag a frame by typing `@`, which opens a sub-menu with the team list, and then start typing **frame**. - -This will then add a timestamp of the current frame to this comment, and clicking on that timestamp will jump to said frame. - -![Tag a frame](../img/getting-started/tag_frame.png) - -### Exporting Annotations -You can also export your drawings on each frame by attaching the **screenshots as attachments**. - -Click on the **Add attachment** button. - -![attachment](../img/getting-started/attachment_retake.png) - -You can also choose to **Attach snapshots from your annotation** in the attachment options. This lets you take annotated frames and add them as attachments of the comment, which can be useful if you want to highlight specific annotations in your feedback. - -![Attachment snapshot](../img/getting-started/screenshot_attachment.png) - -Once you click the button, Kitsu will grab all the frames with annotations and display the result. You can publish them with **Confirm**. - -![Attachment snapshot detail](../img/getting-started/attachment_snapshot_detail.png) - -### Deleting Annotations -If you need to delete a line, click the pencil icon again. The cursor changes to a multi-directional cross ![Pencil](../img/getting-started/direction_arrow.png), and you can then select your line and move it around. - -![review drawing](../img/getting-started/review_edit.png) - -Select the line with the directional cross, then press the **delete** icon ![Delete line](../img/getting-started/delete_line.png). - -### Comparing Images -By entering **Full-Screen**, you can compare two task types or versions side by side by clicking on the **Compare** button ![compare button](../img/getting-started/compare_button.png). - -![compare button](../img/getting-started/compare_version.png) - -From here, you can change the status to ![Retake](../img/getting-started/retake_icon.png) if you want the artist to make changes. - -Alternatively, you can change it to ![Done](../img/getting-started/done_icon.png) to notify the artist that their work is approved. - -## Reviewing Concepts - -Once your artists upload a concept, you can review it with the supervisor or the director. - -To review the concept, use the navigation menu at the top of the screen and select the concept page. - -![Menu concept](../img/getting-started/menu_concept.png) - -You can see all the uploaded concepts, their statuses, assignments, and linked assets. - -![Concept filled status](../img/getting-started/concept_empty_prod_linked.png) - -To review a concept, click on the status to open the comment panel. You can enlarge the comment panel or go fullscreen. - -Then, proceed to write a comment, select the status **Approved** or **Rejected**, and confirm with the **Post** button. - -![Concept status comment](../img/getting-started/concept_status_comment.png) - -You can filter the page with the **Status** filter to display all the concepts with a **Neutral** status. You can also filter by artist and change the sort order. - -![Concept status filter](../img/getting-started/concept_status_filter.png) - -## Playlists - -### Create a Playlist - -A playlist is list of curated versions / previews compiled for review and approval. You can find the **Playlists** page in the drop-down menu. - -![Playlist main menu](../img/getting-started/drop_down_menu_playlist.png) - -The **Playlist** page is separated into two parts: - -- (1) A list of your playlists where you can **create** a news ones or load an existing one. -- (2) The last created playlists and the last modified playlists. - -![Playlist page](../img/getting-started/playlist_page.png) - -Start by creating a **Playlist** using the ![Playlist add button](../img/getting-started/playlist_add_button.png) button. The playlist name defaults to the current date & time, but you can change this. You can choose if the playlist will be shared with the **studio** or the **client** and if it's a **shot** or **asset** playlist. You can also add a **Task Type** tag to the playlist. - -![Playlist add page](../img/getting-started/playlist_add_page.png) - -### Populating a Playlist - -Once the playlist is created, use the search/filter bar to select which shots to add to your playlist. - -You will also see options for adding the an **entire episode** / **entire sequence** if you want to add large chunks of the project at once. - -You can select **Daily pending**, which will add all the **WFA** tasks of the day. - -You can use the same **filters** as the global shot/asset page. For example, you can select all the **WFA** (short for "work for animation") tasks at the **Animation** stage by typing **animation=wfa** in the search bar. Validate your selection with the **Add selection** button. Kitsu will select the shots with the **WFA** status at the **Animation** stage and automatically load the **latest uploaded version**. - -The shots appear in the top part of the screen. Every change is automatically saved. - -![Playlist page](../img/getting-started/playlist_example.png) - -## Review Controls - -Once you have created a playlist, you have several options: - -![Playlist Global](../img/getting-started/playlist_global.png) - -* Play or Pause -* Jump between elements in your playlist -* See the position of the selected element compared to the total number of elements -* Mute or unmute the audio -* Change the speed: double speed (x2), full speed (x1), half speed (x0.50), or quarter speed (x0.25) -* Continuously loop a single element -* Display audio waveforms -* Display annotations during playback -* Show timecode (TC) of the element compared to the TC of the whole playlist -* Display the number of frames -* Navigate frame by frame on the preview (you can also use the left & right arrow keys on the keyboard) -* Access the cmpare tool - -* Undo and redo options annotations -* Text and drawing options (including delete selection) - -* Change the task type of all the elements in the playlist -* Display the comments section -* Hide elements in the playlist -* Switch between LD (low definition) and HD (high definition) -* Download the playlist as a **Zip** file with all the separate elements, a **.csv** text file, or **Build .mp4** to create the whole movie (only for shots) -* Enter fullscreen mode - -For each shot/asset in the playlist, you can choose the **task** and the **version** you want to see. - -![Playlist task selection](../img/getting-started/playlist_task_selection.png) -![Playlist version selection](../img/getting-started/playlist_version_selection.png) - -You can also play two tasks of a shot side by side. - -Click on the **Compare** button ![Compare button](../img/getting-started/compare_button.png) and choose the second task type. - -![Playlist side by side](../img/getting-started/playlist_side_by_side.png) - -You can comment on the shots directly from the preview. - -Click on the **comment** button. - - - -![Playlist comment](../img/getting-started/playlist_comment_button.png) - -You now have access to the right panel, which shows a history of the comments and their statuses. - -You can see the drawing comment on the video (the red dot below the timeline). - -![Playlist comment](../img/getting-started/playlist_comment.png) - -You can draw or type on the video (similar to [Perform a review](../status-publish-review/README.md#perform-a-review)) using the **draw** button ![draw button](../img/getting-started/draw.png). - -## Review Room - -The Review Room is a collaborative space designed for efficient and synchronized dailies review sessions. It ensures that all participants are viewing the same content simultaneously, facilitating real-time feedback and discussion. - -To learn more about the Review Room, [visit this section here](../playlist-client/README.md#review-room). \ No newline at end of file diff --git a/docs/short-asset/README.md b/docs/short-asset/README.md deleted file mode 100644 index 5232535f10..0000000000 --- a/docs/short-asset/README.md +++ /dev/null @@ -1,789 +0,0 @@ -# Create an ASSET-only Production - -Now that you have designed your workflow in Kitsu and invited more people, it's time to create your production. - -Click on the **Create a new -production** button. - -![Create a production](../img/getting-started/create_production.png) - -Enter your production name, and choose **only Asset** as the **type**, then select the style of your production (2D, 3D). - - -Then, you must fill in technical information, such as the number of FPS, the Ration, and the Resolution. - -All these data will be used when Kitsu re-encodes the video previews uploaded. - -Then, you need to define your production's start and end dates. - -![Add a production](../img/getting-started/add_production.png) - -You can define your production workflow in the next part, 3 to 6. - - - -You need to select your asset task type (3), task status (4), and asset types (5). - -![Add a production Pipeline](../img/getting-started/add_production_pipe.png) - - -::: tip -To create your **Production Workflow**, you will select Task Types from the Global Library. - -If you realize you missed some Task Types, you will be able to create them later. - -See the [Studio Workflow](../configure-kitsu/README.md#studio-workflows) section. -::: - -Then, 6 is the option part. If you already have a spreadsheet with your Asset. - -See the **import CSV** section for more details. - -[Import asset](../short-asset/README.md#create-an-asset) - -Validate everything with the ![All done](../img/getting-started/all_done_go.png) button. - - - - - - -## Introduction to the Kitsu Global Page - - - -Welcome to Kitsu's global asset page. - -Let's take a look around. - -![Presentation of the global page](../img/getting-started/presentation_global.png) - -On the top part (1), you have the **global navigation**, which is always visible throughout all the production pages. - -**From left to right:** - - -### Main Menu - -By clicking on the top left button, Kitsu![Main menu button](../img/getting-started/main_button.png) (or your Studio logo), you will open the Main Menu. - -On the Main Menu, you will find direct access to your assigned tasks, productions, global and team schedules, the workflow customization page, and the Kitsu settings. - -::: details Main Menu Details -**WORKSPACE** -- My Tasks: your assigned tasks -- My Checks: All the tasks with status **Is Feedback Request** depending on your department(s) -- My Productions: Get back to the selection on the production page. - - -**STUDIO** -- Productions -- People -- Timesheets -- Main Schedule -- Team Schedule -- All tasks -- News Feed -- Entity Search - - -**ADMIN** -- Departments -- Task Types -- Asset Types -- Custom Actions -- Automation -- 3D Backgrounds -- Bots -- Settings -- Logs - -::: warning Permission Visibility -The WORKSPACE section is enabled for all permissions except My Checks, which artists do not see. - -Artist (and above) can also see their own **Timesheets**, and have access to the **Entity Search** -::: - -### Navigation - -You will see the navigation dropdown menu on the right of the main menu icon. - -![Presentation of the global page](../img/getting-started/presentation_global_header.png) - - -You can choose between production. The name of the actual production and actual page are always displayed. - -You can use the dropdown menu to navigate from production to production (if you have several). - -Once you have selected a production, the next dropdown menu will help you navigate through the different pages of this production. - - -::: details Navigation details -The first section is about the tracking of your tasks -- Assets -- Edits (If you have created specific tasks) - -The second section is more about the side of the production -- Concepts -- Breakdown -- Playlists -- News feed - -The third section is about statistics -- Asset Type Stats - -The fourth section is related to Team Management -- Schedule -- Quotas -- Team - -The fifth section is about the settings of your production -- Settings - -::: tip -You start with the asset page, but you can change your production homepage to other entities (see setting page) -::: - -::: warning -If you realize you need an extra level of navigation, such as **Episodes**, you need to change your production Type to a **TV Show**. - -If, on the contrary, you realize you need the **shots**, you also need to switch your production type from **Only Assets** to **Short**. -::: - -### Global Search, News, Notification and Documentation -You have the global search on the right of the navigation dropdown menu. It's a quick access search that will display the four first results. If you need more results and filtering options, see the **Entity Search** page. - - -The next icon ![News](../img/getting-started/canny.png) is a direct link to our news and feedback page. - -You can see all the new features with an animated gif and also add suggestions about the next feature you want to see in Kitsu. - -Next, the bell icon ![Notification](../img/getting-started/notification_icon_on.png) displays your notifications (assignments, comments, tags). The number of unread notifications will be shown on the bell icon. There are various filters to help you stay on top of updates and revisit important ones when needed. You can easily mark notifications as read or unread or quickly filter by watching/non-watching to focus on what matters most and declutter your feed. - -The last icon before your avatar is the documentation button. -![documentation button](../img/getting-started/documentation_button.png), that you are reading right now! - - -### Personal Settings -You can click on your avatar to open your menu (setting, documentation, etc.). - -![Profile enlarged](../img/getting-started/profil_enlarge.png). - -## The Tasks Spreadsheet - -### Entity spreadsheet - -The second part of the screen is common to all the entities (Asset, shot, sequence, Edit). This is the global tasks spreadsheet. - -Here, you see the status, assignation, priority, etc, for each task. - -::: tip -The first line and column header of the spreadsheet always appear at the top of the page, even if you scroll down. - -You can also **Stick** other columns to keep them visible at all times. -::: - -### Filters - -The first element on the left is the filter box. You can type anything you want for simple filtering, sequence, asset type, etc. - -If you need more advanced filtering, please use the filter builder button. - -![Filter Builder](../img/getting-started/filter_builder.png) - -You can then save all the filters and use them as your pages. - -### Simplify the display - -On the right part of the screen, there are some buttons (from left to right) to hide or display the assignation, hide or display the extra column, enlarge or reduce the thumbnail, -![display and Hide option](../img/getting-started/display_hide_option.png) - - -### Import / Export -batch import thumbnail ![batch import thumbnail](../img/getting-started/add_thumbnails.png), and finally import ![Import button](../img/getting-started/import.png) or export ![export button](../img/getting-started/export.png) data. - - - -### Metadata column -Below, you have the name of the column. the (+) next to **Name** ![Add metadata column](../img/getting-started/add_column_custom.png) is here to create a new metadata column. Then, you have the name of the task type column. - -### Customize the view -On the far right of the screen, next to the scroll bar, is the option to hide and display a text column - -![Display/hide text column](../img/getting-started/visible_column_detail.png). - - -### Sum-up of your view -The last part (4), at the bottom of the screen, is the sum-up of your displayed page. It means the sum-up will update if you filter the page. - -You can see the number of elements (assets or shots), the total number of estimated days, and the total number of days already spent. - - - -## Create an Asset -### Create your first Asset -So, now that we have created our production and have a general grasp of the Kitsu interface, it's time to create our very first Asset. - -On the asset page, click on **Add assets**. - -![Asset page first time](../img/getting-started/add_assets_first.png) - -::: warning -When you create an asset, your task workflow will be applied, and **all the tasks will be created simultaneously as the Asset**. -::: - -A pop-up window opens: - -It asks you to choose the **Asset Type** (1). -If you didn't add a new asset type, Kitsu will provide you with examples such as Characters, Environment, FX, Props, etc. -Let's start with a character. - -::: tip -You can also customize the asset type list and the tasks pipeline. See the guide ( -[Customization of the workflow](../configure-kitsu/README.md#asset-types)) for more details -::: - -We give it a **Name** (2) and enter a description that helps the Artist know what to do and quickly identify the Asset. - -Click on **Confirm and stay** if you have multiple assets to create. - - -![Create an asset](../img/getting-started/add_asset_popup.png) - -You can change the asset type and keep adding assets. - -::: tip -The newly created Asset appears in the background whenever you click on **Confirm and stay**. -::: - -After adding your last Asset, click -on **Confirm**. It will create the Asset and close the window. - -::: tip -If you click on **Confirm and stay ** but realize you don't have more assets to add, click on **Close**, and the winwill bew is canceled. -::: - -![Global asset page](../img/getting-started/asset_edit.png) - -You will also see the tasks that are selected for your assets workflow are created at the same time. - - -If you need to add more **Assets**, click the **+ Create assets** button. - -::: details Create Assets from a CSV Spreadsheet File -You may already have your asset list ready in a spreadsheet file. -With Kitsu, you have two ways to import them; the first is to import a `.csv` file and copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file. - -Then, go back to the asset page on Kitsu and click on the **Import** icon. -![Import Icon](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Import csv file](../img/getting-started/import_csv_asset.png) - -To see the result, click on the **Preview** button. -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, you have imported all your assets into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_asset.png) -::: - -::: details Create Assets by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_asset.png) - -Then, go back to the asset page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_asset.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_asset.png) -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, you have imported all your assets into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_asset.png) -::: - -### See the Details of an Asset - -To see an asset's detail, click on its name. - -![Asset detail](../img/getting-started/asset_detail.png) - -A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. - - -![Asset detail page](../img/getting-started/asset_detail_page.png) - -You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. - - -![Asset detail page](../img/getting-started/asset_detail_page_panel.png) - - - -You can also access the **Casting**, - -![Asset detail casting](../img/getting-started/asset_detail_page_casting.png) - -**concept** linked to this Asset, - -![Asset detail casting](../img/getting-started/asset_detail_page_concept.png) - -The **Schedule** is available if you have previously filled out the task type page data. If the data have already been filled out, you will be able to modify them directly here. - -![Asset detail casting](../img/getting-started/asset_detail_page_schedule.png) - -the **Preview Files** uploaded at various task types, - -![Asset detail casting](../img/getting-started/asset_detail_page_file.png) - -And the **Timelog** if people have filled out their timesheet on the tasks of this Asset. - -![Asset detail casting](../img/getting-started/asset_detail_page_timelog.png) - - - -## Add more tasks after creating the assets - - -If you realize **after** creating the assets that the task is missing, you can still add them. - -First, be sure that the missing task type is added to the settings page under the task type tab. - -Then go back to the asset page and click on **+ Add tasks** - - - - - - - ### Update your assets -At any point, you can update your assets, change their name and asset type, modify their description, and any custom information you added to the global page. - -You can edit assets by going to the asset page, hovering over the Asset you want to modify, and then clicking on the **edit** button -![Edit button](../img/getting-started/edit_button.png) (1) on the right side of -the line. - -![Edit an asset](../img/getting-started/asset_edit01.png) - -To extend the description on the main asset page, click on the first words (2), and a pop-up with the full description will open. - - -::: details Update Assets with the CSV Import -You can use the CSV import to update your data quickly. - -You can update the **type** of an asset, the **Assignation**, the **Status** of tasks, and add a **Comment**. - -You need to switch on the option **Update existing data**. Then the lines that will be updated -will be highlighted in blue. - -![Import data copy paste data](../img/getting-started/import_update_asset.png) - -::: - - -::: details Update Assets by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_asset.png) - -Then, go back to the asset page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_asset.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_asset.png) -  -You can check and adjust the name of the columns by previewing your data. - -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -You need to switch on the option **Update existing data**. Then, the lines that will be updated -will be highlighted in blue. - -![Import data copy paste data](../img/getting-started/import_update_asset.png) - -Now, you have imported all your assets into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_asset.png) -::: - - -## Create a Concept -### Upload a Concept - -To create a **Concept**, go to the **Concept** page with the navigation menu. - -![Concept Menu](../img/getting-started/menu_concept.png) - -To upload a concept, click the **Add a new reference to concepts** button. - -You can upload one or several concepts at the same time. - -![Concept empty page](../img/getting-started/concept_empty_prod.png) - -Once you upload your previews, the concept page will look like this. - -![Concept filled page](../img/getting-started/concept_filled_prod.png) - - -You can interact with the concept in two ways: click on the picture to see an enlarged view. -The second is to click on the status part to open the **Comment Panel** on the right. - -On the comment panel, you have two options: link a concept to an existing asset or delete it. -You can also comment and change the status of the Asset. - -The idea is to have one version per **Concept**. If it's not approved, you need to upload a new concept, not to have multiple versions of the same concept. - -One concept is one task. - - -![Concept options](../img/getting-started/concept_options.png) - - -### Link a Concept to an Asset - -Once concepts are uploaded, you can link them to the assets. - -You can see the links on the status part of the assets. - -Click on the status part of the concept; it will open the comment panel on the right. - -![Concept Comment Panel](../img/getting-started/concept_comment_panel.png) - -On the comment panel, you have two options at the top: Link a concept to an asset and delete the concept. - -To link an asset, click on the **Link** ![Link button](../img/getting-started/link_icon.png) button. - -Kitsu will display all the **Assets** available to link with the concept uploaded. - -Kitsu will list the linked assets at the top of the comment panel. For now, there are No Links. - - -![Concept link](../img/getting-started/concept_link.png) - -To link an asset, you have to click on it. The linked assets' names will appear at the top of the screen and under the preview of the concept. - - -![Concept asset linked](../img/getting-started/concept_asset_linked.png) - -Once a concept is linked to an asset, it can be seen on the asset's detail page. - -Return to the asset page, and click on the asset name you want to see the concept. - -![Detail asset page](../img/getting-started/asset_detail_page.png) - -Per default, the casting detail is displayed on the second part of the screen. -Use the dropdown menu to choose the concept. - -![asset detail concept](../img/getting-started/asset_detail_concept.png) - -Once in the concept section, you will see all the concepts created for this Asset. You can filter them per status. - -![asset detail concept list](../img/getting-started/asset_detail_concep_listt.png) - - - -## Create Custom Metadata Columns - -To add more information on the general spreadsheet pages, you must create a custom **metadata column**. - -You may have extra information to add to your pages, such as the **level of difficulties**, **Weather**, **Tag**, etc. You can store all text (or number) information in the custom metadata column. - - -Click on the **+** near the Name column. - -![Metadata Column](../img/getting-started/add_column_custom.png) - - - -With the **Type** option, you can choose how you want to store your information: -- a free **Text**, -- a **Number**, -- a **Checkbox**, -- a **List of value**, -- a **List of tags**, -- a **Checklist**. - -![Metadata Column detail](../img/getting-started/custom_column_detail.png) - -::: warning -The **Text**, **Number**, and **Checkbox** allow you to add different information for each entity. You don't have to plan it first. - -The **List of value**, **List of tags**, and **Checklist** give you the same choice for each entity. Moreover, it has to be filled now. - -![Metadata Column list](../img/getting-started/custom_column_list.png) - -Type the list elements below **Available values**, and confirm them by clicking on **Add value**. -::: - -You can also link the **metadata column** to one or several **departments**. - -::: tip -Link a metadata column to a department. The artists/supervisors will see it on their to-do page and in the department-filtered view. - -You can link the metadata column to one or more departments. Click on the department from the list and then click on **add** to be effective. - -Here, the VFX column is linked to two departments. - -![Department metadata column filtered view](../img/getting-started/department_filtered_view_column.png) - -::: - -::: details Edit meta column -On the global page of the Asset or the shot, click on the arrow to the right of your metadata column and click on **Edit**. - -![Metadata column Edit](../img/getting-started/custom_column_edit.png) -::: - - -You can fill in this information directly on the global spreadsheets page. -The cases are editable. - -![Metadata Column detail](../img/getting-started/custom_column_list_edit.png) - -::: tip -You can batch-modify the metadata column by selecting several entities on the left and then modifying your metadata column. -::: - -::: details Edit by hand -You can also modify the information with the edit button ![Edit button](../img/getting-started/edit_button.png). - -You now see a new line on the edit pop-up. You can select the information from the list, -alternatively, enter the free text or number, check a box, or use the checklist, depending on your previous choice. - -Remember to press the **Confirm** button when you are done. - -![Metadata Column detail](../img/getting-started/edit_asset_custom.png) -::: - -Go to the general spreadsheet page if you need to edit or delete the metadata column. -Nearby the name of your metadata column, click on the arrow ![Metadata Column detail](../img/getting-started/arrow.png). - -::: tip -You can **sort** your global page with this new column. Click the arrow on the right of the column name to open his menu. Then click on **Sort By**. - -You can also **Stick** the metadata column to the left. -::: - -## Create an Edit - -You can track tasks at the **Edit** Level in Kitsu. - -It's especially useful when -You have several edits to track through several validation steps. For example, you can track your whole movie, several trailers, and the First Edit, Fine Edit, Mix, etc. - -::: warning -Per default, the **Edit** page will not be displayed until you have task types for it on your **production library** (setting page) -::: - - - -To use this page, you need to first create a dedicated task type on your **Global Library** - with the **Edit** attribute. - -See the **Creating a New Task Type** Section to create a new **Task Type**. - -[Creating a New Task Type](../configure-kitsu/README.md#task-types) - - -Once you have created your **Task Types**  on your **Global Library**, add them to your -**Production Library**, you will see the **Edit** displayed on the navigation drop-down menu. - - -![Navigation Edit](../img/getting-started/drop_down_menu_edit.png) - - -This new page behaves like the Asset and Shot global page. You can add your edits with the **+ New edit** button. - -You can assign tasks, do the review, change status, etc. - -You can add a metadata column, fill in the description, etc. - -::: tip -Depending on your deliveries, you can also change the resolution per **Edit**. -::: - -::: warning -The detail page is different from the other entities. - -As **Edit** focuses on a specific long video, the detail page looks more like the comment detail page. -::: - -You can **Rename** and **Delete** the Edit entity on this page, as you can for the Asset and shot entities. - - - - - - - -## Create a Breakdown List - -Filling out the breakdown helps you with the assembly of the Asset. With the -breakdown, you have all the details of the assets you need to add to create your -main Asset and we are sure we will omit nothing. - -On the dropdown menu, choose **BREAKDOWN**. - -![drop down Menu breakdown](../img/getting-started/drop_down_menu_breakdown.png) - -On the left of the breakdown page is the asset menu (1); you can choose between those you created. They are the right part of -the screen; all the assets created are available for this production (3). Moreover, in -the middle section, your selection for the Asset (2). - -![Breakdown page](../img/getting-started/breakdown_general_empty.png) - -So now you have to select the Asset you want to cast. - -You can display the assets as text if you don't have thumbnails yet or enlarge the -thumbnails size. - - -![Breakdown page text display](../img/getting-started/breakdown_text_display.png) - -You may also realize an asset needs to be added to the list during your breakdown. - -You can create a new asset directly from the breakdown page. Click the **+** on the right of the **All available assets**. - -![Breakdown page create asset](../img/getting-started/breakdown_create_asset.png) - - -You can also select multiple assets at once. Click on the first Asset, hold the **shift** key, and click on the last Asset of your selection. - -![Breakdown page global bulk select](../img/getting-started/breakdown_general_bulk_select.png) - -Then click on the assets you want -to assign: characters, backgrounds, ... from the right part (3). -If you have selected multiple assets, your selection is applied to the numerous assets. - -Copy an asset filled with assets and paste this asset selection into another asset. - -You can see a **+1** or **+10** when you pass over the Asset. It's the number -of times you add this Asset, and you can click on it as many times as you need. - -![Breakdown add asset](../img/getting-started/breakdown_add_asset.png) - - - -You can now see the Asset in the middle of the screen (2). Next -to the Asset's name is the number of times it has been added. In this -example, we have added the character asset Llama two times. - - -If you add an asset twice by mistake, you must go to the screen's middle part to select assets for this shot (2). From there, click on -**-1**. When you finish this shot, go on with the other shots. -Your selection is automatically saved. - -![Breakdown remove asset](../img/getting-started/breakdown_remove_asset.png) - -If a new asset is created during the task, return to the asset -page (using the dropdown menu) and create the needed assets. The tasks previously created are applied immediately to these new -assets. However, you have to do the assignment, and then you can -continue with the breakdown. - -Now, your **Breakdown** page should look like this. - -![breakdown add asset bulk](../img/getting-started/breakdown_general_bulk_select_full.png) - - - -::: details Create a Breakdown List from a CSV File - -You may already have your breakdown list ready in a spreadsheet file. With Kitsu, you have two ways to import it: the first is to import a .csv file directly, and the second is to copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file following Kitsu's recommendation. - -Click on the **import** button ![Import button](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Breakdown import csv file](../img/getting-started/import_breakdown_csv_file.png) - -To see the result, click on the **Preview** button. - -You can check and adjust the name of the columns by previewing your data. - -NB: the **Episode** column is only mandatory for a **TV Show** production. - -![Breakdown import Preview](../img/getting-started/import_breakdown_preview.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, you have your breakdown imported into Kitsu. - -![Breakdown import Preview](../img/getting-started/breakdown_general_bulk_select_full.png) -::: - -::: details Create a Breakdown List by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_breakdown.png) - -Then, go back to the breakdown page on Kitsu, and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started//import_breakdown_csv_file.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_breakdown_preview.png) -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_breakdown_preview.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, all your assets have been imported into Kitsu. - -![Import data copy paste data](../img/getting-started/breakdown_general_bulk_select_full.png) -::: - -## Casting from the Asset Library -It is also possible to cast assets from the global **Asset Library** into your production. This allows you to cast an already existing asset, without the need to re-create it for each production. - -![Asset Library Display](../img/getting-started/asset_library_display.png) - -To see assets outside of your production from the asset library, click the **Display Library** Button (1) - -Assets from the global asset library will appear, and will be highlighted with a yellow boarder (2). They can then be cast in your breakdown exactly the same as other assets. - -![Asset Library View](../img/getting-started/asset_library_view.png) - -Back on your productions asset page, you can choose to display global assets that have been cast in your production by toggling the **Display Library** button (1). These assets will be highlighted in yellow, indicating that they originate from the global asset library, and not your current production. (2). diff --git a/docs/short-shot/README.md b/docs/short-shot/README.md deleted file mode 100644 index 6beadfcb95..0000000000 --- a/docs/short-shot/README.md +++ /dev/null @@ -1,703 +0,0 @@ -# Create a SHOTS-only Production - -Now that you have designed your workflow in Kitsu and invited more people, it's time to create your Production. - -Click on the **Create a new -production** button. - -![Create a production](../img/getting-started/create_production.png) - -Enter your production name, select **only shots** as the **type**, and select the style that best suits your Production. - - -Then, you must fill in technical information, such as the number of FPS, the Ration, and the Resolution. - -All these data will be used when Kitsu re-encodes the video previews uploaded. - -Then, you need to define your Production's start and end dates. - -![Add a production](../img/getting-started/add_production_shot.png) - - -You need to select your shots workflow (Task Type) (3) and your validation process (Task Status) (4), - -![Add a production Pipeline](../img/getting-started/add_production_pipe_shot.png) - - -::: tip -To create your **Production Workflow**, you will select Task Types from the Global Library. - -If you realize you missed some Task Types, you can create them later. - -See the [Studio Workflow](../configure-kitsu/README.md#studio-workflows) section. -::: - -Then, 5 is the option parts. If you already have a spreadsheet with your shot. - -See the **import CSV** section for more details. - -[Import shot](../short-shot/README.md#create-shots-from-an-edl-file - -Validate everything with the ![All done](../img/getting-started/all_done_go.png) button. - - - - - - -## Introduction to the Kitsu Global Page - - - -Welcome to Kitsu's global asset page. - -Let's take a look around. - -![Presentation of the global page](../img/getting-started/presentation_global.png) - -On the top part (1), you have the **global navigation**, which is always visible throughout all the production pages. - -**From left to right:** - - -### Main Menu - -By clicking on the top left button, Kitsu![Main menu button](../img/getting-started/main_button.png) (or your Studio logo), you will open the **Main Menu**. - -On the Main Menu, you will find direct access to your assigned tasks, productions, global and team schedules, the workflow customization page, and the Kitsu settings. - -::: details Main Menu Details -**WORKSPACE** -- My Tasks: your assigned tasks -- My Checks: All the tasks with status **Is Feedback Request** depending on your department(s) -- My Productions: Get back to the selection on the production page. - - -**STUDIO** -- Productions -- People -- Timesheets -- Main Schedule -- Team Schedule -- All tasks -- News Feed -- Entity Search - - -**ADMIN** -- Departments -- Task Types -- Asset Types -- Custom Actions -- Automation -- 3D Backgrounds -- Bots -- Settings -- Logs - -::: warning Permission Visibility -The WORKSPACE section is enabled for all permissions except My Checks, which artists do not see. - -Artist (and above) can also see their own **Timesheets**, and have access to the **Entity Search** -::: - -### Navigation - -You will see the navigation dropdown menu on the right of the main menu icon. - -![Presentation of the global page](../img/getting-started/presentation_global_header.png) - - -You can choose between Production. The name of the actual Production and page are always displayed. - -You can use the dropdown menu to navigate from Production to Production (if you have several). - -Once you have selected a production, the next dropdown menu will help you navigate through the different pages of this Production. - - -::: details Navigation details -The first section is about the tracking of your tasks -- Shots -- Sequence -- Edits (If you have created specific tasks) - -The second section is more about the side of the Production -- Concepts -- Playlists -- News feed - -The third section is about statistics -- Sequence Stats - - -The fourth section is related to Team Management -- Schedule -- Quotas -- Team - -The fifth section is about the settings of your Production -- Settings - -::: tip -You start with the asset page, but you can change your production homepage to other entities (see setting page) -::: - -::: warning -If you realize you need an extra level of navigation, such as **Episodes**, you need to change your production Type to a **TV Show**. - -If, on the contrary, you realize you need the assets instead of the Only Shots, you need to switch your production type from Only Shots to Short. -::: - -### Global Search, News, Notification and Documentation -You have the global search on the right of the navigation dropdown menu. It's a quick access search that will display the four first results. If you need more results and filtering options, see the **Entity Search** page. - - -The next icon ![News](../img/getting-started/canny.png) is a direct link to our news and feedback page. - -You can see all the new features with an animated gif and also add suggestions about the next feature you want to see in Kitsu. - -Next, the bell icon ![Notification](../img/getting-started/notification_icon_on.png) displays your notifications (assignments, comments, tags). The number of unread notifications will be shown on the bell icon. There are various filters to help you stay on top of updates and revisit important ones when needed. You can easily mark notifications as read or unread or quickly filter by watching/non-watching to focus on what matters most and declutter your feed. - -The last icon before your avatar is the documentation button. -![documentation button](../img/getting-started/documentation_button.png), that you are reading right now! - - -### Personal Settings -You can click on your avatar to open your menu (setting, documentation, etc.). - -![Profile enlarged](../img/getting-started/profil_enlarge.png). - -## The Tasks Spreadsheet - -### Entity spreadsheet - -The second part of the screen is common to all the entities (asset, shot, sequence, Edit). This is the global tasks spreadsheet. - -Here, you see the status, assignation, priority, etc, for each task. - -::: tip -The first line and column header of the spreadsheet always appear at the top of the page, even if you scroll down. - -You can also **Stick** other columns to keep them visible at all times. -::: - -### Filters - -The first element on the left is the filter box. You can type anything you want for simple filtering, sequence, asset type, etc. - -If you need more advanced filtering, please use the filter builder button. - -![Filter Builder](../img/getting-started/filter_builder.png) - -You can then save all the filters and use them as your pages. - -### Simplify the display - -On the right part of the screen, there are some buttons (from left to right) to hide or display the assignation, hide or display the extra column, enlarge or reduce the thumbnail, -![display and Hide option](../img/getting-started/display_hide_option.png) - - -### Import / Export -batch import thumbnail ![batch import thumbnail](../img/getting-started/add_thumbnails.png), and finally import ![Import button](../img/getting-started/import.png) or export ![export button](../img/getting-started/export.png) data. - - - -### Metadata column -Below, you have the name of the column. the (+) next to **Name** ![Add metadata column](../img/getting-started/add_column_custom.png) is here to create a new metadata column. Then, you have the name of the task type column. - -### Customize the view -On the far right of the screen, next to the scroll bar, is the option to hide and display a text column - -![Display/hide text column](../img/getting-started/visible_column_detail.png). - - -### Sum-up of your view -The last part (4), at the bottom of the screen, is the sum-up of your displayed page. It means the sum-up will update if you filter the page. - -You can see the number of elements (assets or shots), the total number of estimated days, and the total number of days already spent. - - - -## Create a Shot -### Create your first shot - -It's time to create **shots** for your Production. - -::: warning -Shots are linked to Sequences in Kitsu. -This means you need to first create a sequence and then populate this sequence with shots. -::: - -You need to go to the **Shots** page: you can use the -dropdown menu and click on the **SHOTS**. - -![Drop down menu shot](../img/getting-started/drop_down_menu_shot.png) - -Click on the **Add shots** button to start with the shot creation. - -![First add shots](../img/getting-started/new_shot.png) - -::: warning -When you create a shot, the task workflow you have designed will be applied, and all the tasks will be created at the same time as the shot. -::: - -A new pop-up opens for the creation of the shots. -You can now create the sequences and the shots. - -Enter the first sequence, for instance, sq01, -then **add**. - -Now, you can see your sequence has been created. To add shots to this sequence, you need to select it and create your shots. - -For example, type sh0010 on the shots column, then again **add**. -You can also define padding for your shots. - -::: tip -If you want to name your shots ten on ten as SH0010, SH0020, SH0030, etc, set the **Shot Padding** as 10 -::: - -![Manage shots](../img/getting-started/manage_shot.png) - -You can now see that new shots are listed and linked by their sequence. -You have created the first shot of the first sequence. - -Now, let's add more shots than just one! As you can see, the box already contains your name -code but incremented, so you have to continue to click on **add** to -create more shots. - -![Add shots](../img/getting-started/add_shots.png) - -To add more sequences, go to the left part, type the name of your new sequence, and then click on **add**. -Your second sequence is selected, and you can now add shots. - -::: tip -If a shot is misplaced on a sequence, you have to edit the shot -![Edit button](../img/getting-started/edit_button.png), and change the -sequence. -![edit shot Change sequence](../img/getting-started/edit_shot.png) - -![Change sequence](../img/getting-started/change_seq.png) -::: - - - - -## Create Shots from an EDL File -You may already have your shots list ready in an **EDL** file. -With Kitsu, you can import your **EDL** file directly to create the sequence, shot, number of frames, Frame in and frame out, and more. - -On the **Global Shot Page**, you will see an **Import EDL** button. - -![Import EDL Button](../img/getting-started/import_edl_button.png) - -You can select the naming convention of the video file used during the editing on the pop-up. - -![Import EDL Menu](../img/getting-started/import_edl_menu.png) - -It means the video clip on the editing is named as project_sequence_shot.extension. - -Here is an example of an EDL for the LGC production. - -![EDL Example](../img/getting-started/edl_example.png) - -The video files are named  LGC_100-000.mov, which means LGC is the production name, 100 is the sequence name, and 000 is the shot name. - -You can import the EDL file once you are set with the naming convention. - -Then click on **Upload EDL** - -Then Kitsu will create the shots. - -![EDL Shot creation](../img/getting-started/edl_shot_creation.png) -::: - -::: details Create Shots from a CSV Spreadsheet File -You may already have your shots list ready in a spreadsheet file. -With Kitsu, you have two ways to import them; the first is to import a `.csv` file directly, and the second is to copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file. - -Then, return to the shot page on Kitsu and click the **Import** icon. -![Import Icon](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Import csv file](../img/getting-started/import_csv_shot.png) - -To see the result, click on the **Preview** button. -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, all your shots are imported into Kitsu, and the task is created according to your **Settings**. - -![Import data copy paste data](../img/getting-started/import_result_shot.png) -::: - - -::: details Create Shots by Copying / Pasting a Spreadsheet File -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_shot.png) - -Then, go back to the shot page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_shot.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_shot.png) -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, all your shots are imported into Kitsu, and the task is created according to your **Settings**. - -![Import data copy paste data](../img/getting-started/import_result_shot.png) -::: - -### See the Details of a Shot - -If you want to see the details of a shot, click on its name. - -![Shot detail](../img/getting-started/shot_detail.png) - -A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. -You can navigate through each by clicking on the name of the tabs. - -![Shot detail page](../img/getting-started/shot_detail_page.png) - -You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. - - -![Shot detail page](../img/getting-started/shot_detail_page_panel.png) - - -You can also access the **Casting**, - -![Asset detail casting](../img/getting-started/shot_detail_page_casting.png) - - -The **Schedule** is available if you have previously filled out the task type page data. If the data have already been filled out, you will be able to modify them directly here. - -![Asset detail casting](../img/getting-started/shot_detail_page_schedule.png) - -the **Preview Files** uploaded at various task types, - -![Asset detail casting](../img/getting-started/shot_detail_page_file.png) - -And the **Timelog** if people have filled out their timesheet on the tasks of this asset. - -![Asset detail casting](../img/getting-started/shot_detail_page_timelog.png) - - - - -## Add more tasks after creating the shots -If you realize after creating the shots that the task is missing, you can still add them. - -First, be sure that the missing task type is added to the settings page under the task type tab. - -Then go back to the shot page and click on + Add tasks. - - -### Update your shots - -You can update your shots at any point, change their names and sequences, modify their descriptions, and add any custom information you added to the global page. - -You can edit shots by going to the shot page, hovering over the shot you want to modify, and then clicking on the **edit** button -![Edit button](../img/getting-started/edit_button.png) (1) on the right side of the line. - -![Edit an asset](../img/getting-started/asset_edit01.png) - -To extend the description on the main shot page, click on the first words (2), and a pop-up with the full description will open. - - -::: details Update Shots Information with CSV Import -You can use the **CSV Import** to update your data as the **NB Frames**, **Frame IN**, **Frame Out**, or any custom **Metadata column**. - -You can update the **Assignation** , and the **Status** of tasks and add a **Comment**. - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_shot.png) - -Then, go back to the shot page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_shot.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_shot.png) -  -You need to switch on the **Option: Update existing data**. -The updated shots will be in blue - -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/update_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, all your shots are imported into Kitsu, and the task is created according to your **Settings**. - -![Import data copy paste data](../img/getting-started/import_result_shot.png) -::: - - - -## Add the number of Frames and Frame ranges to the shots - -At this stage of the Production, the animatic should be done. This means you have -the length (**number of frames**, **Frame range In**, and **Frame range Out**) for each shot. You can -add this information to the spreadsheet. This way, you are sure that all -the frames are calculated and none are missing or over-computed. - -::: warning -If you have created your shots and sequence by hand, -the **Frame** column will be hidden. You must edit at least one shot and fill in the number of frames to display the **Frame** column. -The column will be displayed if you have created your shots and imported the number of frames with a CSV/spreadsheet. -::: - - - -You need to edit the shots to fill in the frame range information. Click on the -edit button ![Edit button](../img/getting-started/edit_button.png) on the right -side of the shot line. - -![edit shot Change sequence](../img/getting-started/edit_shot.png) - -On the new window, you can enter the shots **In** and **Out**. Then, save by clicking the **Confirm** button. - - - -![Shot edit page](../img/getting-started/shot_edit.png) - -Now, the frame range appears on the general spreadsheet of the shot page. - -![Shot edit page](../img/getting-started/shot_framerange_global.png) - -Now that you have unlocked the **Frames**, **In**, and **Out** columns, you can fill them -directly from the global shot page. - -Click on the case you want to fill in and add the data. - -::: tip -If you enter the **Frame In** and **Frame Out**, Kitsu automatically calculates the **Number of Frame**. -::: - -![Shot edit page](../img/getting-started/shot_framerange_global_edit.png) - - -You can also use the **CSV Import** to update your frame range quickly. - [Update Shots information with CSV Import](../short-shot/README.md#update-your-shots) - -You can also access the history of shot values. - -![Shot framerange detail](../img/getting-started/shot_framerange_detail.png) - -![Shot Values History](../img/getting-started/shot_values_history.png) - - -## Create Custom Metadata Columns - -To add more information on the general spreadsheet pages, you must create a custom **metadata column**. - -You may have extra information to add to your pages, such as the **level of difficulties**, **Weather**, **Tag**, etc. You can store all text (or number) information in the custom metadata column. - - -Click on the **+** near the Name column. - -![Metadata Column](../img/getting-started/add_column_custom.png) - - - -With the **Type** option, you can choose how you want to store your information: -- a free **Text**, -- a **Number**, -- a **Checkbox**, -- a **List of value**, -- a **List of tags**, -- a **Checklist**. - -![Metadata Column detail](../img/getting-started/custom_column_detail.png) - -::: warning -The **Text**, **Number**, and **Checkbox** allow you to add different information for each entity. You don't have to plan it first. - -The **List of value**, **List of tags**, and **Checklist** give you the same choice for each entity. Moreover, it has to be filled now. - -![Metadata Column list](../img/getting-started/custom_column_list.png) - -Type the list elements below **Available values**, and confirm them by clicking on **Add value**. -::: - -You can also link the **metadata column** to one or several **departments**. - -::: tip -Link a metadata column to a department. The artists/supervisors will see it on their to-do page and in the department-filtered view. - -You can link the metadata column to one or more departments. Click on the department from the list and then click on **add** to be effective. - -Here, the VFX column is linked to two departments. - -![Department metadata column filtered view](../img/getting-started/department_filtered_view_column.png) - -::: - -::: details Edit meta column -On the global page of the asset or the shot, click on the arrow on the direct right of your metadata column and click on **Edit**. - -![Metadata column Edit](../img/getting-started/custom_column_edit.png) -::: - - -You can fill in this information directly on the global spreadsheets page. -The cases are editable. - -![Metadata Column detail](../img/getting-started/custom_column_list_edit.png) - -::: tip -You can batch-modify the metadata column by selecting several entities on the left and then modifying your metadata column. -::: - -::: details Edit by hand -You can also modify the information with the edit button ![Edit button](../img/getting-started/edit_button.png). - -You now see a new line on the edit pop-up. You can select the information from the list, -alternatively, enter the free text or number, check a box, or use the checklist, depending on your previous choice. - -Remember to press the **Confirm** button when you are done. - -![Metadata Column detail](../img/getting-started/edit_asset_custom.png) -::: - -Go to the general spreadsheet page if you need to edit or delete the metadata column. -Nearby the name of your metadata column, click on the arrow ![Metadata Column detail](../img/getting-started/arrow.png). - -::: tip -You can **sort** your global page with this new column. Click the arrow on the right of the column name to open his menu. Then click on **Sort By**. - -You can also **Stick** the metadata column to the left. -::: - - -## Create a Sequence - -In Kitsu, you can also track tasks at the **Sequence** Level. -It's especially useful when -you have macro tasks to track, like Story and color Board, Color Grading, etc. - -Use the navigation menu to go to the **Sequences** page. - -![Navigation Sequences](../img/getting-started/drop_down_menu_sequence_page.png) - -::: warning -This new page behaves like the asset and shot global page. - -To use this page, You first need to create dedicated task types on your **Global Library** - with the **Sequence** attribute. - -See the **Creating a New Task Type** Section to create a new **Task Type**. - -[Creating a New Task Type](../configure-kitsu/README.md#task-types) - -Once you have created your **Task Types**  on your **Global Library**, add them to your -**Production Library** (setting page). -::: - -Once your task types are ready on the settings page, you need to create a sequence (the same as the assets or shots). - - - - -This new page behaves like the asset and shot global page. You can add your edits with the **+ New Sequence** button. - -You can assign tasks, do the review, change status, etc. - -You can add a metadata column, fill in the description, etc. - - -::: tip -You can create a sequence directly from here (+New sequence button) or create a sequence linked to your shots from the global shot page. -::: - - -You can **Rename** and **Delete** the Sequence entity on this page, as for the asset and shot entity. - -If you click on the name of a sequence, you will see the detail page of this sequence. - -![Sequence detailed page](../img/getting-started/sequence_detail_page.png) - -On the detailed page, you have access to the sequence casting. -You can see all the assets used in the whole sequence. - -You can also access the schedule, Preview Files, Activity, and Timelog of the sequence **tasks**. - - - -## Create an Edit - -You can track tasks at the **Edit** Level in Kitsu. - -It's especially useful when -You have several edits to track through several validation steps. For example, you can track your whole movie, several trailers, and the First Edit, Fine Edit, Mix, etc. - -::: warning -Per default, the **Edit** page will not be displayed until you have task types for it on your **production library** (setting page) -::: - - - -To use this page, you need to first create a dedicated task type on your **Global Library** - with the **Edit** attribute. - -See the **Creating a New Task Type** Section to create a new **Task Type**. - -[Creating a New Task Type](../configure-kitsu/README.md#task-types) - - -Once you have created your **Task Types**  on your **Global Library**, add them to your -**Production Library**, you will see the **Edit** displayed on the navigation drop-down menu. - - -![Navigation Edit](../img/getting-started/drop_down_menu_edit.png) - - -This new page behaves like the asset and shot global page. You can add your edits with the **+ New edit** button. - -You can assign tasks, do the review, change status, etc. - -You can add a metadata column, fill in the description, etc. - -::: tip -Depending on your deliveries, you can also change the resolution per **Edit**. -::: - -::: warning -The detail page is different from the other entities. - -As **Edit** focuses on a specific long video, the detail page looks more like the comment detail page. -::: - -You can **Rename** and **Delete** the Edit entity on this page for the asset and shot entity. - - - diff --git a/docs/short/README.md b/docs/short/README.md deleted file mode 100644 index b68ff791c9..0000000000 --- a/docs/short/README.md +++ /dev/null @@ -1,1205 +0,0 @@ -# Create a Short Production (assets and shots) - -Now that you have designed your workflow in Kitsu and invited more people, it's time to create your production. - -Click on the **Create a new -production** button. - -![Create a production](../img/getting-started/create_production.png) - -Enter your production name, choose **short** as the **type**, and select your production style (2D, 3D). - - -Then, you must fill in technical information, such as the number of FPS, the Ration, and the Resolution. - -All these data will be used when Kitsu re-encodes the video previews uploaded. - -Then, you need to define your production's start and end dates. - -![Add a production](../img/getting-started/add_production.png) - -You can define your production workflow in the next part, 3 to 6. - - - -You need to select your asset task type (3), shot task type (4), task status (5), and asset types (6). - -![Add a production Pipeline](../img/getting-started/add_production_pipe.png) - - -::: tip -To create your **Production Workflow**, you will select Task Types from the Global Library. - -If you realize you missed some Task Types, you can create them later. - -See the [Studio Workflow](../configure-kitsu/README.md#studio-workflows) section. -::: - -Then, 7 and 8 are the option parts. If you already have a spreadsheet with your asset/shot. - -See the **import CSV** section for more details. - -[Import asset](../short/README.md#create-an-asset) - -[Import shot](../short/README.md#create-shots-from-an-edl-file) - -Validate everything with the ![All done](../img/getting-started/all_done_go.png) button. - - - - - - -## Introduction to the Kitsu Global Page - - - -Welcome to Kitsu's global asset page. - -Let's take a look around. - -![Presentation of the global page](../img/getting-started/presentation_global.png) - -On the top part (1), you have the **global navigation**, which is always visible throughout all the production pages. - -**From left to right:** - - -### Main Menu - -You will open the main menu by clicking on the top left button, Kitsu![Main menu button](../img/getting-started/main_button.png) (or your Studio logo). - -You will find direct access to your assigned tasks, productions, global and team schedules, the workflow customization page, and the Kitsu settings on the main menu. - -::: details Main Menu Details -**WORKSPACE** -- My Tasks: your assigned tasks -- My Checks: All the tasks with status **Is Feedback Request** depending on your department(s) -- My Productions: Get back to the selection on the production page. - - -**STUDIO** -- Productions -- People -- Timesheets -- Main Schedule -- Team Schedule -- All tasks -- News Feed -- Entity Search - - -**ADMIN** -- Departments -- Task Types -- Asset Types -- Custom Actions -- Automation -- 3D Backgrounds -- Bots -- Settings -- Logs - -::: warning Permission Visibility -The WORKSPACE section is enabled for all permissions except My Checks, which artists do not see. - -Artist (and above) can also see their own **Timesheets**, and have access to the **Entity Search** -::: - -### Navigation - -You will see the navigation dropdown menu on the right of the main menu icon. - -![Presentation of the global page](../img/getting-started/presentation_global_header.png) - - -You can choose between production. The name of the actual production and actual page are always displayed. - -You can use the dropdown menu to navigate from production to production (if you have several). - -Once you have selected a production, the next dropdown menu will help you navigate through the different pages of this production. - - -::: details Navigation details -The first section is about the tracking of your tasks -- Assets -- Shots -- Sequence -- Edits (If you have created specific tasks) - -The second section is more about the side of the production -- Concepts -- Breakdown -- Playlists -- News feed - -The third section is about statistics -- Sequence Stats -- Asset Type Stats - -The fourth section is related to Team Management -- Schedule -- Quotas -- Team - -The fifth section is about the settings of your production -- Settings - -::: tip -You start with the asset page, but you can change your production homepage to other entities (see setting page) -::: - -::: warning -If you realize you need an extra level of navigation, such as Episodes, you need to change your production Type to a TV Show. - -If, on the contrary, you realize you don't need the **assets** or the **shots**, you also need to switch your production type to **Only Assets** or **Only Shots**. -::: - -### Global Search, News, Notification and Documentation -You have the global search on the right of the navigation dropdown menu. It's a quick access search that will display the four first results. If you need more results and filtering options, see the **Entity Search** page. - - -The next icon ![News](../img/getting-started/canny.png) is a direct link to our news and feedback page. - -You can see all the new features with an animated gif and also add suggestions about the next feature you want to see in Kitsu. - -Next, the bell icon ![Notification](../img/getting-started/notification_icon_on.png) displays your notifications (assignments, comments, tags). The number of unread notifications will be shown on the bell icon. There are various filters to help you stay on top of updates and revisit important ones when needed. You can easily mark notifications as read or unread or quickly filter by watching/non-watching to focus on what matters most and declutter your feed. - -The last icon before your avatar is the documentation button. -![documentation button](../img/getting-started/documentation_button.png), that you are reading right now! - - -### Personal Settings -You can click on your avatar to open your menu (setting, documentation, etc.). - -![Profile enlarged](../img/getting-started/profil_enlarge.png). - -## The Tasks Spreadsheet - -### Entity spreadsheet - -The second part of the screen is common to all the entities (asset, shot, sequence, Edit). This is the global tasks spreadsheet. - -Here, you see the status, assignation, priority, etc, for each task. - -::: tip -The spreadsheet's first line and column header always appear at the top of the page, even if you scroll down. - -You can also **Stick** other columns to keep them visible at all times. -::: - -### Filters - -The first element on the left is the filter box. You can type anything you want for simple filtering, sequence, asset type, etc. - -If you need more advanced filtering, please use the filter builder button. - -![Filter Builder](../img/getting-started/filter_builder.png) - -You can then save all the filters and use them as your pages. - -### Simplify the display - -On the right part of the screen, there are some buttons (from left to right) to hide or display the assignation, hide or display the extra column, enlarge or reduce the thumbnail, -![display and Hide option](../img/getting-started/display_hide_option.png) - - -### Import / Export -batch import thumbnail ![batch import thumbnail](../img/getting-started/add_thumbnails.png), and finally import ![Import button](../img/getting-started/import.png) or export ![export button](../img/getting-started/export.png) data. - - - -### Metadata column -Below, you have the name of the column. the (+) next to **Name** ![Add metadata column](../img/getting-started/add_column_custom.png) is here to create a new metadata column. Then, you have the name of the task type column. - -### Customize the view -On the far right of the screen, next to the scroll bar, is the option to hide and display a text column - -![Display/hide text column](../img/getting-started/visible_column_detail.png). - - -### Sum-up of your view -The last part (4), at the bottom of the screen, is the sum-up of your displayed page. It means the sum-up will update if you filter the page. - -You can see the number of elements (assets or shots), the total number of estimated days, and the total number of days already spent. - - - - -## Create an Asset -### Create your first asset -So, now that we have created our production and have a general grasp of the Kitsu interface, it's time to create our first asset. - -On the asset page, click on **Add assets**. - -![Asset page first time](../img/getting-started/add_assets_first.png) - -::: warning -When you create an asset, your task workflow will be applied, and **all the tasks will be created simultaneously as the asset**. -::: - -A pop-up window opens: - -It asks you to choose the **Asset Type** (1). -If you didn't add a new asset type, Kitsu will provide examples such as Characters, Environment, FX, Props, etc. -Let's start with a character. - -::: tip -You can also customize the asset type list and the tasks pipeline. See the guide ( -[Customization of the workflow](../configure-kitsu/README.md#asset-types)) for more details -::: - -We give it a **Name** (2) and enter a description that helps the Artist know what to do and quickly identify the asset. - -Click on **Confirm and stay** if you have multiple assets to create. - - -![Create an asset](../img/getting-started/add_asset_popup.png) - -You can change the asset type and keep adding assets. - -::: tip -The newly created asset appears in the background whenever you click on **Confirm and stay**. -::: - -After adding your last asset, click -on **Confirm**. It will create the asset and close the window. - -::: tip -If you click on **Confirm and stay, ** realize you don't have more assets to add, and click on **Close, ** the window will be canceled. -::: - -![Global asset page](../img/getting-started/asset_edit.png) - -You will also see the tasks that are selected for your assets workflow are created at the same time. - - -If you need to add more **Assets**, click the **+ Create assets** button. - -::: details Create Assets from a CSV Spreadsheet File -You may already have your asset list ready in a spreadsheet file. -With Kitsu, you have two ways to import them; the first is to import a `.csv` file and copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file. - -Then, go back to the asset page on Kitsu and click on the **Import** icon. -![Import Icon](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Import csv file](../img/getting-started/import_csv_asset.png) - -To see the result, click on the **Preview** button. -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -You have imported all your assets into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_asset.png) -::: - -::: details Create Assets by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_asset.png) - -Then, go back to the asset page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_asset.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_asset.png) -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -You have imported all your assets into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_asset.png) -::: - -### See the Details of an Asset - -To see an asset's detail, click on its name. - -![Asset detail](../img/getting-started/asset_detail.png) - -A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. - - -![Asset detail page](../img/getting-started/asset_detail_page.png) - -You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. - - -![Asset detail page](../img/getting-started/asset_detail_page_panel.png) - - - -You can also access the **Casting**, - -![Asset detail casting](../img/getting-started/asset_detail_page_casting.png) - -**concept** linked to this asset, - -![Asset detail casting](../img/getting-started/asset_detail_page_concept.png) - -The **Schedule** is available if you have previously filled out the task type page data. If you have already filled out the data, you can modify them directly here. - -![Asset detail casting](../img/getting-started/asset_detail_page_schedule.png) - -the **Preview Files** uploaded at various task types, - -![Asset detail casting](../img/getting-started/asset_detail_page_file.png) - -And the **Timelog** if people have filled out their timesheet on the tasks of this asset. - -![Asset detail casting](../img/getting-started/asset_detail_page_timelog.png) - - - -## Add more tasks after creating the assets - - -If you realize **after** creating the assets that the task is missing, you can still add them. - -First, ensure the missing task type is added to the settings page under the task type tab. - -Then go back to the asset page and click on **+ Add tasks** - - - - - - - ### Update your assets -You can update your assets at any point, change their name and asset type, modify their description, and add any custom information you added to the global page. - -You can edit assets by going to the asset page, hovering over the asset you want to modify, and then clicking on the **edit** button -![Edit button](../img/getting-started/edit_button.png) (1) on the right side of -the line. - -![Edit an asset](../img/getting-started/asset_edit01.png) - -To extend the description on the main asset page, click on the first words (2), and a pop-up with the full description will open. - - -::: details Update Assets with the CSV Import -You can use the CSV import to update your data quickly. - -You can update the **type** of an asset, the **Assignation**, the **Status** of tasks, and add a **Comment**. - -You need to switch on the option **Update existing data**. Then, the lines that will be updated -will be highlighted in blue. - -![Import data copy paste data](../img/getting-started/import_update_asset.png) - -::: - - -::: details Update Assets by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_asset.png) - -Then, go back to the asset page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_asset.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_asset.png) -  -You can check and adjust the name of the columns by previewing your data. - -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -You need to switch on the option **Update existing data**. Then, the lines that will be updated -will be highlighted in blue. - -![Import data copy paste data](../img/getting-started/import_update_asset.png) - -You have imported all your assets into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_asset.png) -::: - - -## Create a Concept -### Upload a concept - -To create a **Concept**, go to the **Concept** page with the navigation menu. - -![Concept Menu](../img/getting-started/menu_concept.png) - -To upload a concept, click the **Add a new reference to concepts** button. - -You can upload one or several concepts at the same time. - -![Concept empty page](../img/getting-started/concept_empty_prod.png) - -Once you upload your previews, the concept page will look like this. - -![Concept filled page](../img/getting-started/concept_filled_prod.png) - - -You can interact with the concept in two ways: click on the picture to see an enlarged view. -The second is to click on the status part to open the **Comment Panel** on the right. - -On the comment panel, you have two options: link a concept to an existing asset or delete it. -You can also comment and change the status of the asset. - -The idea is to have one version per **Concept**. If it's not approved, you need to upload a new concept, not to have multiple versions of the same concept. - -One concept is one task. - - -![Concept options](../img/getting-started/concept_options.png) - - -### Link a Concept to an Asset - -Once concepts are uploaded, you can link them to the assets. - -You can see the links on the status part of the assets. - -Click on the status part of the concept; it will open the comment panel on the right. - -![Concept Comment Panel](../img/getting-started/concept_comment_panel.png) - -At the top of the comment panel, you have two options: Link a concept to an asset and delete the concept. - -To link an asset, click on the **Link** ![Link button](../img/getting-started/link_icon.png) button. - -Kitsu will display all the **Assets** available to link with the concept uploaded. - -Kitsu will list the linked assets at the top of the comment panel. For now, there are No Links. - - -![Concept link](../img/getting-started/concept_link.png) - -To link an asset, click on it. The names of the linked assets will appear at the top of the screen under the preview of the concept. - - -![Concept asset linked](../img/getting-started/concept_asset_linked.png) - -Once a concept is linked to an asset, it can be seen on the asset's detail page. - -Return to the asset page, and click on the asset name you want to see the concept. - -![Detail asset page](../img/getting-started/asset_detail_page.png) - -Per default, the casting detail is displayed on the second part of the screen. -Use the dropdown menu to choose the concept. - -![asset detail concept](../img/getting-started/asset_detail_concept.png) - -Once in the concept section, you will see all the concepts created for this asset. You can filter them per status. - -![asset detail concept list](../img/getting-started/asset_detail_concep_listt.png) - - - -## Create a Shot -### Create your first shot - -It's time to create **shots** for your production. - -::: warning -Shots are linked to Sequences in Kitsu. -This means you must create a sequence and then populate this sequence with shots. -::: - -You need to go to the **Shots** page: you can use the -dropdown menu and click on the **SHOTS**. - -![Drop down menu shot](../img/getting-started/drop_down_menu_shot.png) - -Click on the **Add shots** button to start with the shot creation. - -![First add shots](../img/getting-started/new_shot.png) - -::: warning -When you create a shot, the task workflow you have designed will be applied, and all the tasks will be created at the same time as the shot. -::: - -A new pop-up opens for the creation of the shots. -You can now create the sequences and the shots. - -Enter the first sequence, for instance, sq01, -then **add**. - -Now, you can see your sequence has been created. To add shots to this sequence, select it and create your shots. - -For example, type sh0010 on the shots column, then again **add**. -You can also define padding for your shots. - -::: tip -If you want to name your shots ten on ten as SH0010, SH0020, SH0030, etc, set the **Shot Padding** as 10 -::: - -![Manage shots](../img/getting-started/manage_shot.png) - -You can now see that new shots are listed and linked by their sequence. -You have created the first shot of the first sequence. - -Now, let's add more shots than just one! As you can see, the box already contains your name -code but incremented, so you have to continue to click on **add** to -create more shots. - -![Add shots](../img/getting-started/add_shots.png) - -To add more sequences, go to the left part, type the name of your new sequence, and then click on **add**. -Your second sequence is selected, and you can now add shots. - -::: tip -If a shot is misplaced on a sequence, you have to edit the shot -![Edit button](../img/getting-started/edit_button.png), and change the -sequence. -![edit shot Change sequence](../img/getting-started/edit_shot.png) - -![Change sequence](../img/getting-started/change_seq.png) -::: - - - - -## Create Shots from an EDL File -You may already have your shots list ready in an **EDL** file. -With Kitsu, you can directly import your **EDL** file to create the sequence, shot, number of frames, Frame in and out, and more. - -On the **Global Shot Page**, you will see an **Import EDL** button. - -![Import EDL Button](../img/getting-started/import_edl_button.png) - -You can select the naming convention of the video file used during the editing on the pop-up. - -![Import EDL Menu](../img/getting-started/import_edl_menu.png) - -It means the video clip on the editing is named as project_sequence_shot.extension. - -Here is an example of an EDL for the LGC production. - -![EDL Example](../img/getting-started/edl_example.png) - -The video files are named  LGC_100-000.mov, which means LGC is the production name, 100 is the sequence name, and 000 is the shot name. - -You can import the EDL file once you have the naming convention. - -Then click on **Upload EDL** - -Then Kitsu will create the shots. - -![EDL Shot creation](../img/getting-started/edl_shot_creation.png) -::: - -::: details Create Shots from a CSV Spreadsheet File -You may already have your shots list ready in a spreadsheet file. -With Kitsu, you have two ways to import them; the first is to import a `.csv` file directly, and the second is to copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file. - -Then, return to the shot page on Kitsu and click the **Import** icon. -![Import Icon](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Import csv file](../img/getting-started/import_csv_shot.png) - -To see the result, click on the **Preview** button. -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -All your shots are imported into Kitsu, and the task is created according to your **Settings**. - -![Import data copy paste data](../img/getting-started/import_result_shot.png) -::: - - -::: details Create Shots by Copying / Pasting a Spreadsheet File -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_shot.png) - -Then, go back to the shot page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_shot.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_shot.png) -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -All your shots are imported into Kitsu, and the task is created according to your **Settings**. - -![Import data copy paste data](../img/getting-started/import_result_shot.png) -::: - -### See the Details of a Shot - -If you want to see the details of a shot, click on its name. - -![Shot detail](../img/getting-started/shot_detail.png) - -A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. -You can navigate through each by clicking on the name of the tabs. - -![Shot detail page](../img/getting-started/shot_detail_page.png) - -You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. - - -![Shot detail page](../img/getting-started/shot_detail_page_panel.png) - - -You can also access the **Casting**, - -![Asset detail casting](../img/getting-started/shot_detail_page_casting.png) - - -The **Schedule** is available if you have previously filled out the task type page data. If you have already filled out the data, you can modify them directly here. - -![Asset detail casting](../img/getting-started/shot_detail_page_schedule.png) - -the **Preview Files** uploaded at various task types, - -![Asset detail casting](../img/getting-started/shot_detail_page_file.png) - -And the **Timelog** if people have filled out their timesheet on the tasks of this asset. - -![Asset detail casting](../img/getting-started/shot_detail_page_timelog.png) - - - - -## Add more tasks after creating the shots -If you realize after creating the shots that the task is missing, you can still add them. - -First, ensure the missing task type is added to the settings page under the task type tab. - -Then go back to the shot page and click on + Add tasks. - - -### Update your shots - -You can update your shots at any point, change their names and sequences, modify their descriptions, and add any custom information you added to the global page. - -You can edit shots by going to the shot page, hovering over the shot you want to modify, and then clicking on the **edit** button -![Edit button](../img/getting-started/edit_button.png) (1) on the right side of the line. - -![Edit an asset](../img/getting-started/asset_edit01.png) - -To extend the description on the main shot page, click on the first words (2), and a pop-up with the full description will open. - - -::: details Update Shots Information with CSV Import -You can use the **CSV Import** to update your data as the **NB Frames**, **Frame IN**, **Frame Out**, or any custom **Metadata column**. - -You can update the **Assignation**the **Status** of tasks and add a **Comment**. - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_shot.png) - -Then, go back to the shot page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_shot.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_shot.png) -  -You need to switch on the **Option: Update existing data**. -The updated shots will be in blue. - -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/update_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -All your shots are imported into Kitsu, and the task is created according to your **Settings**. - -![Import data copy paste data](../img/getting-started/import_result_shot.png) -::: - - - -## Add the number of Frames and Frame ranges to the shots - -At this stage of the production, the animatic should be done. This means you have -the length (**number of frames**, **Frame range In**, and **Frame range Out**) for each shot. You can -add this information to the spreadsheet. This way, you are sure that all -the frames are calculated and none are missing or over-computed. - -::: warning -If you have created your shots and sequence by hand, -the **Frame** column will be hidden. You must edit at least one shot and fill in the number of frames to display the **Frame** column. -The column will be displayed if you have created your shots and imported the number of frames with a CSV/spreadsheet. -::: - - - -You need to edit the shots to fill in the frame range information. Click on the -edit button ![Edit button](../img/getting-started/edit_button.png) on the right -side of the shot line. - -![edit shot Change sequence](../img/getting-started/edit_shot.png) - -You can enter the shots **In** and **Out ** in the new window. Then, save by clicking the **Confirm** button. - - - -![Shot edit page](../img/getting-started/shot_edit.png) - -Now, the frame range appears on the general spreadsheet of the shot page. - -![Shot edit page](../img/getting-started/shot_framerange_global.png) - -Now that you have unlocked the **Frames**, **In**, and **Out** columns, you can fill them -directly from the global shot page. - -Click on the case you want to fill in and add the data. - -::: tip -If you enter the **Frame In** and **Frame Out**, Kitsu automatically calculates the **Number of Frame**. -::: - -![Shot edit page](../img/getting-started/shot_framerange_global_edit.png) - - -You can also use the **CSV Import** to update your frame range quickly. - [Update Shots information with CSV Import](../short/README.md#update-your-shots) - -You can also access the history of shot values. - -![Shot framerange detail](../img/getting-started/shot_framerange_detail.png) - -![Shot Values History](../img/getting-started/shot_values_history.png) - - -## Create Custom Metadata Columns - -To add more information on the general spreadsheet pages, you must create a custom **metadata column**. - -You may have extra information to add to your pages, such as the **level of difficulties**, **Weather**, **Tag**, etc. You can store all text (or number) information in the custom metadata column. - - -Click on the **+** near the Name column. - -![Metadata Column](../img/getting-started/add_column_custom.png) - - - -With the **Type** option, you can choose how you want to store your information: -- a free **Text**, -- a **Number**, -- a **Checkbox**, -- a **List of value**, -- a **List of tags**, -- a **Checklist**. - -![Metadata Column detail](../img/getting-started/custom_column_detail.png) - -::: warning -The **Text**, **Number**, and **Checkbox** allow you to add different information for each entity. You don't have to plan it first. - -The **List of value**, **List of tags**, and **Checklist** give you the same choice for each entity. Moreover, it has to be filled now. - -![Metadata Column list](../img/getting-started/custom_column_list.png) - -Type the list elements below **Available values**, and confirm them by clicking on **Add value**. -::: - -You can also link the **metadata column** to one or several **departments**. - -::: tip -Link a metadata column to a department. The artists/supervisors will see it on their to-do page and in the department-filtered view. - -You can link the metadata column to one or more departments. Click on the department from the list and then click on **add** to be effective. - -Here, the VFX column is linked to two departments. - -![Department metadata column filtered view](../img/getting-started/department_filtered_view_column.png) - -::: - -::: details Edit meta column -On the global page of the asset or the shot, click on the arrow on the direct right of your metadata column and click on **Edit**. - -![Metadata column Edit](../img/getting-started/custom_column_edit.png) -::: - - -You can fill in this information directly on the global spreadsheets page. -The cases are editable. - -![Metadata Column detail](../img/getting-started/custom_column_list_edit.png) - -::: tip -You can batch-modify the metadata column by selecting several entities on the left and then modifying your metadata column. -::: - -::: details Edit by hand -You can also modify the information with the edit button ![Edit button](../img/getting-started/edit_button.png). - -You now see a new line on the edit pop-up. You can select the information from the list, -alternatively, enter the free text or number, check a box, or use the checklist, depending on your previous choice. - -Remember to press the **Confirm** button when you are done. - -![Metadata Column detail](../img/getting-started/edit_asset_custom.png) -::: - -Go to the general spreadsheet page if you need to edit or delete the metadata column. -Nearby the name of your metadata column, click on the arrow ![Metadata Column detail](../img/getting-started/arrow.png). - -::: tip -You can **sort** your global page with this new column. Click the arrow on the right of the column name to open his menu. Then click on **Sort By**. - -You can also **Stick** the metadata column to the left. -::: - - -## Create a Sequence - -In Kitsu, you can also track tasks at the **Sequence** Level. -It's especially useful when -you have macro tasks to track, like Story and color Board, Color Grading, etc. - -Use the navigation menu to go to the **Sequences** page. - -![Navigation Sequences](../img/getting-started/drop_down_menu_sequence_page.png) - -::: warning -This new page behaves like the asset and shot global page. - -To use this page, You first need to create dedicated task types on your **Global Library** - with the **Sequence** attribute. - -See the **Creating a New Task Type** Section to create a new **Task Type**. - -[Creating a New Task Type](../configure-kitsu/README.md#task-types) - -Once you have created your **Task Types**  on your **Global Library**, add them to your -**Production Library** (setting page). -::: - -Once you have your task types ready on the settings page, you need to create a sequence (the same as the assets or shots). - - - - -This new page behaves like the asset and shot global page. You can add your edits with the **+ New Sequence** button. - -You can assign tasks, do the review, change status, etc. - -You can add a metadata column, fill in the description, etc. - - -::: tip -You can create a sequence directly from here (+New sequence button) or create a sequence linked to your shots from the global shot page. -::: - - -You can **Rename** and **Delete** the Sequence entity on this page, as for the asset and shot entity. - -If you click on the name of a sequence, you will see the detail page of this sequence. - -![Sequence detailed page](../img/getting-started/sequence_detail_page.png) - -On the detailed page, you have access to the sequence casting. -You can see all the assets used in the whole sequence. - -You can also access the schedule, Preview Files, Activity, and Timelog of the sequence **tasks**. - - - -## Create an Edit - -You can track tasks at the **Edit** Level in Kitsu. - -It's especially useful when -You have several edits to track through several validation steps. For example, you can track your whole movie, several trailers, and the First Edit, Fine Edit, Mix, etc. - -::: warning -Per default, the **Edit** page will not be displayed until you have task types for it on your **production library** (setting page) -::: - - - -To use this page, you need to first create a dedicated task type on your **Global Library** - with the **Edit** attribute. - -See the **Creating a New Task Type** Section to create a new **Task Type**. - -[Creating a New Task Type](../configure-kitsu/README.md#task-types) - - -Once you have created your **Task Types**  on your **Global Library**, add them to your -**Production Library**, you will see the **Edit** displayed on the navigation drop-down menu. - - -![Navigation Edit](../img/getting-started/drop_down_menu_edit.png) - - -This new page behaves like the asset and shot global page. You can add your edits with the **+ New edit** button. - -You can assign tasks, do the review, change status, etc. - -You can add a metadata column, fill in the description, etc. - -::: tip -Depending on your deliveries, you can also change the resolution per **Edit**. -::: - -::: warning -The detail page is different from the other entities. - -As **Edit** focuses on a specific long video, the detail page looks more like the comment detail page. -::: - -You can **Rename** and **Delete** the Edit entity on this page for the asset and shot entity. - - - - - - - -## Create a Breakdown List - -Filling out the breakdown helps you with the assembly of the shots. With the -breakdown, you have all the details of the assets you need to add to create your -shot, and we are sure to omit nothing. - -On the dropdown menu, choose **BREAKDOWN**. - -![drop down Menu breakdown](../img/getting-started/drop_down_menu_breakdown.png) - -On the left of the breakdown page is the episode/sequence/shot menu (1); you can choose between those you created. They are the right part of -the screen; all the assets created are available for this production (main pack and episodes) (3). Moreover, in -the middle section, it is your selection for the shot (2). - -![Breakdown page](../img/getting-started/breakdown_general_empty.png) - -So now you have to select the shot you want to cast. - -You can display the assets as text if you don't have thumbnails yet or enlarge the -thumbnails size. - - -![Breakdown page text display](../img/getting-started/breakdown_text_display.png) - -You may also realize an asset needs to be added to the list during your breakdown. - -You can create a new asset directly from the breakdown page. Click the **+** on the right of the **All available assets**. - -![Breakdown page create asset](../img/getting-started/breakdown_create_asset.png) - - -You can also choose multiple shots at once. Click on the first shot, hold the **shift** key, and click on the last shot of your selection. - -![Breakdown page global bulk select](../img/getting-started/breakdown_general_bulk_select.png) - -Then click on the assets you want -to assign: characters, backgrounds, ... from the right part (3). -If you have selected multiple shots, your selection is applied to the numerous shots. - -Copy a shot filled with assets and paste this asset selection into another shot. - -You can see a **+1** or **+10** when you pass over the asset. It's the number -of times you add this asset, and you can click on it as many times as you need. - -![Breakdown add asset](../img/getting-started/breakdown_add_asset.png) - -You can also link all your assets to episodes on a TV show without specifying a sequence or shot. - -![Breakdown episode asset](../img/getting-started/breakdown_episode.png) - -This way, you can link all your assets to one or several episodes before the storyboard/animatic stage. - -You can now see the asset in the middle of the screen (2). Next -to the asset's name is the number of times it has been added. In this -example, we have added the character asset Llama two times. - - -If you add an asset twice by mistake, you must go to the screen's middle part to select assets for this shot (2). From there, click on -**-1**. When you finish this shot, go on with the other shots. -Your selection is automatically saved. - -![Breakdown remove asset](../img/getting-started/breakdown_remove_asset.png) - -If a new asset is created during the storyboard, return to the asset -page (using the dropdown menu) and create the needed assets. The tasks previously created are applied immediately to these new -assets. However, you have to do the assignment, and then you can -continue with the breakdown. - -Now, your **Breakdown** page should look like this. - -![breakdown add asset bulk](../img/getting-started/breakdown_general_bulk_select_full.png) - -You can also make a breakdown list for your assets if you need to assemble them and keep track of the separate parts. - -On the top left corner of the screen, choose **asset** in the dropdown menu below **FOR**. - -![Breakdown asset menu](../img/getting-started/breakdown_asset_menu.png) - -You can now access a second dropdown menu to choose your asset type: **Character**, **Environment**, **Props**, **FX**, ... - -![Breakdown asset type](../img/getting-started/breakdown_asset_menu_type.png) - -You can complete the asset breakdown page the same way you did the shots. First, select one or more assets on the left part and then add the right part's elements. - -::: details Create a Breakdown List from a CSV File - -You may already have your breakdown list ready in a spreadsheet file. With Kitsu, you have two ways to import it: the first is to import a .csv file directly, and the second is to copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file following Kitsu's recommendation. - -Click on the **import** button ![Import button](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Breakdown import csv file](../img/getting-started/import_breakdown_csv_file.png) - -To see the result, click on the **Preview** button. - -You can check and adjust the name of the columns by previewing your data. - -NB: the **Episode** column is only mandatory for a **TV Show** production. - -![Breakdown import Preview](../img/getting-started/import_breakdown_preview.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, you have your breakdown imported into Kitsu. - -![Breakdown import Preview](../img/getting-started/breakdown_general_bulk_select_full.png) -::: - -::: details Create a Breakdown List by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_breakdown.png) - -Then, go back to the breakdown page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started//import_breakdown_csv_file.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_breakdown_preview.png) -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_breakdown_preview.png) - -Once everything is good, click on the **Confirm** button to import your data into Kitsu. - -Now, all your assets have been imported into Kitsu. - -![Import data copy paste data](../img/getting-started/breakdown_general_bulk_select_full.png) -::: - -## Casting from the Asset Library -It is also possible to cast assets from the global **Asset Library** into your production. This allows you to cast an already existing asset, without the need to re-create it for each production. - -![Asset Library Display](../img/getting-started/asset_library_display.png) - -To see assets outside of your production from the asset library, click the **Display Library** Button (1) - -Assets from the global asset library will appear, and will be highlighted with a yellow boarder (2). They can then be cast in your breakdown exactly the same as other assets. - -![Asset Library View](../img/getting-started/asset_library_view.png) - -Back on your productions asset page, you can choose to display global assets that have been cast in your production by toggling the **Display Library** button (1). These assets will be highlighted in yellow, indicating that they originate from the global asset library, and not your current production. (2). - -## Introduction to Asset State: Ready For - -Most of the time, you don't need to wait for an asset's tasks to be approved to use it on a shot task. - -For example, when an asset is approved at the **Concept** stage, it can be used for the **Storyboard** stage. -Then, when it's approved at the **Modeling** stage, you can use it for the **Layout** stage and so on. - -That's exactly what the asset state **Ready For** is doing: it lets you know the state of an asset's tasks and compares its usability for the shot tasks. - -Now that we have filled out our breakdown, we know exactly which asset is used on every shot. - -First, we need to define an asset's state relative to its task status. You can modify the **Ready for** by clicking on a cell. You will see a dropdown menu with the shot task. - -![Asset Status](../img/getting-started/asset_status.png) - -::: tip -You can use the **automations** to do the heavy lifting. - -You can set automation with the **ready for** trigger. -::: - -We can see the result in the shot page now that we have changed some asset states **Ready for**. - -You can notice that some white boxes are now **Green**: all the assets cast in this shot are ready for this specific task. - -![Asset Status](../img/getting-started/asset_status_box.png) - -If you see the white box, Kitsu will display how many assets are ready for this task. - -![Asset Status](../img/getting-started/asset_status_empty.png) - -::: tip -If you don't see any boxes, no assets are cast for this shot. -::: -  -Then, you can click on the shot's name to go to its detail page. -Then, you will see all the assets cast in this shot and their status. - -![Asset Status](../img/getting-started/asset_status_detail.png) - -It's the fastest way to know if you can start a shot for a specific task. - diff --git a/docs/start-here/getting-started/index.md b/docs/start-here/getting-started/index.md new file mode 100644 index 0000000000..6b9837128d --- /dev/null +++ b/docs/start-here/getting-started/index.md @@ -0,0 +1,305 @@ + + +# Getting Started With Kitsu + +With Kitsu, users can track various production projects, encompassing 2D and 3D production, VFX, video games, and other related endeavors. + +The content tracked by Kitsu can be as simple as still-frame advertisements, to extensive 3-hour feature films, accommodating projects with varying numbers of elements + +But before jumping into our production, we must first configure our **Studio Workflow**. + +## 1. Studio Workflows + +### Understanding Studio Workflows + +::: warning Definition +A workflow is defined as the structured coordination of tasks constituting the operational processes within a production. +::: + +For example, within a CGI production, tasks such as modeling, rigging, and shading are undertaken to finalize an asset. + +::: warning Definition +- Processes such as modeling, shading, etc., are referred to as a **Task Type**. +- An individual objects such as asset, shot, etc., are called **Entities**. +- A **task** can be defined as a specific action or activity that needs to be done. Tasks can be attributed to **entities** and will usually be categorized with a **task type**. +::: + +Entities with corresponding tasks form foundation of your asset workflow. Each task will then be assigned to an artist. Once you have determined your assets workflow, you will do the same for the shots, sequences, etc. + +Once the workflow for tasks is defined, the next step involves establishing an **Approval Workflow**, which entails defining all the statuses utilized for communication within the team. Statuses will also be useful for tracking the progress of your production. + +The **Workflow** of your production is the sum of your Tasks and Status. + +### Global Library VS Production Library + +In Kitsu, you have two kinds of **libraries**: +- The first is the **Global Library** at the studio level. +Only the Studio manager has access to it. + +- The second is the **Production Library**, where you will pick elements created in the global library to fill out. + +The idea is to keep each production separated with a specific workflow. + + +Your **Global Library** is where you can create and modify departments, task types, task statuses, asset types, and status automation. You can create as many elements as needed, name them as you wish, and select the best colors and options to suit your needs. + + + + + + + + + + + + + + + + + + + + + +Once your **Global Library** is populated, you can fill out the **Production Library** with the newly created elements from the **Global Library**. + +## 2. Main Kitsu Settings + +### Configuring Kitsu + +Several global settings can be configured that apply to your studio, such as replacing the default Kitsu logo with your studio's logo. + +To do this, click on the main menu button +![Main Menu Button](/img/getting-started/main_button.png), then under the **Admin** section, click on the **Settings**. + +![Main Menu Settings](/img/getting-started/menu_settings.png) + +### Studio Settings + +Click on the **Set studio logo** and select an image to use. This will replace the Kitsu logo on your site and in various places across the app. You can also change the **Studio Name** to be used in your Kitsu instance. + + +The remaining settings on this page are global settings that affect every production. Some of these include: + +- How many hours per day should your team be working. +- You can opt to use original file names for downloads. +- Display images in HD quality by default. Use this option only if you have a very fast internet connection. +- Regarding the timesheet, you can also restrict artists from modifying timesheets older than one week. + +![Kitsu Settings](/img/getting-started/kitsu_setting.png) + +Finally, you will also find settings relating to various chat integrations. Please refer to [Chat Integration](../chat-integration/index.md) section for more information on how to configure this. + +::: warning +Remember to **Save Settings** at the end once you are finished. +::: + +## 3. Preparing Your Team + +Now that you have defined your workflow, it's time to organize your team so you have people to assign tasks to. + +We will learn how to add users to Kitsu, link them to departments, grant them permissions, and finally, add them to a production team so that they can begin working. + + + + + +## 4. Quick UI Tour + +### Introduction to the Kitsu Global Page + +Welcome to Kitsu's global asset page. + +Let's take a look around. + +![Presentation of the global page](/img/getting-started/presentation_global.png) + +On the top part (1), you have the **global navigation**, which is always visible throughout all the production pages. + +**From left to right:** + + +### Main Menu + +You will open the main menu by clicking on the top left button, Kitsu![Main menu button](/img/getting-started/main_button.png) (or your Studio logo). + +You will find direct access to your assigned tasks, productions, global and team schedules, the workflow customization page, and the Kitsu settings on the main menu. + +::: details Main Menu Details +**WORKSPACE** +- My Tasks: your assigned tasks +- My Checks: All the tasks with status **Is Feedback Request** depending on your department(s) +- My Productions: Get back to the selection on the production page. + + +**STUDIO** +- Productions +- People +- Timesheets +- Main Schedule +- Team Schedule +- All tasks +- News Feed +- Entity Search + + +**ADMIN** +- Departments +- Task Types +- Asset Types +- Custom Actions +- Automation +- 3D Backgrounds +- Bots +- Settings +- Logs + +::: warning Permission Visibility +The WORKSPACE section is enabled for all permissions except My Checks, which artists do not see. + +Artist (and above) can also see their own **Timesheets**, and have access to the **Entity Search** +::: + +### Navigation + +You will see the navigation dropdown menu on the right of the main menu icon. + +![Presentation of the global page](/img/getting-started/presentation_global_header.png) + + +You can choose between production. The name of the actual production and actual page are always displayed. + +You can use the dropdown menu to navigate from production to production (if you have several). + +Once you have selected a production, the next dropdown menu will help you navigate through the different pages of this production. + + +::: details Navigation details +The first section is about the tracking of your tasks +- Assets +- Shots +- Sequence +- Edits (If you have created specific tasks) + +The second section is more about the side of the production +- Concepts +- Breakdown +- Playlists +- News feed + +The third section is about statistics +- Sequence Stats +- Asset Type Stats + +The fourth section is related to Team Management +- Schedule +- Quotas +- Team + +The fifth section is about the settings of your production +- Settings + +::: tip +You start with the asset page, but you can change your production homepage to other entities (see setting page) +::: + +::: warning +If you realize you need an extra level of navigation, such as Episodes, you need to change your production Type to a TV Show. + +If, on the contrary, you realize you don't need the **assets** or the **shots**, you also need to switch your production type to **Only Assets** or **Only Shots**. +::: + +### Global Search, News, Notification and Documentation + +You have the global search on the right of the navigation dropdown menu. It's a quick access search that will display the four first results. If you need more results and filtering options, see the **Entity Search** page. + + +The next icon ![News](/img/getting-started/canny.png) is a direct link to our news and feedback page. + +You can see all the new features with an animated gif and also add suggestions about the next feature you want to see in Kitsu. + +Next, the bell icon ![Notification](/img/getting-started/notification_icon_on.png) displays your notifications (assignments, comments, tags). The number of unread notifications will be shown on the bell icon. There are various filters to help you stay on top of updates and revisit important ones when needed. You can easily mark notifications as read or unread or quickly filter by watching/non-watching to focus on what matters most and declutter your feed. + +The last icon before your avatar is the documentation button. +![documentation button](/img/getting-started/documentation_button.png), that you are reading right now! + + +### Personal Settings + +You can click on your avatar to open your menu (setting, documentation, etc.). + +![Profile enlarged](/img/getting-started/profil_enlarge.png). + +### The Tasks Spreadsheet + +#### Entity spreadsheet + +The second part of the screen is common to all the entities (asset, shot, sequence, Edit). This is the global tasks spreadsheet. + +Here, you see the status, assignation, priority, etc, for each task. + +::: tip +The spreadsheet's first line and column header always appear at the top of the page, even if you scroll down. + +You can also **Stick** other columns to keep them visible at all times. +::: + +#### Filters + +The first element on the left is the filter box. You can type anything you want for simple filtering, sequence, asset type, etc. + +If you need more advanced filtering, please use the filter builder button. + +![Filter Builder](/img/getting-started/filter_builder.png) + +You can then save all the filters and use them as your pages. + +#### Simplify the display + +On the right part of the screen, there are some buttons (from left to right) to hide or display the assignation, hide or display the extra column, enlarge or reduce the thumbnail, +![display and Hide option](/img/getting-started/display_hide_option.png) + +#### Import / Export + +batch import thumbnail ![batch import thumbnail](/img/getting-started/add_thumbnails.png), and finally import ![Import button](/img/getting-started/import.png) or export ![export button](/img/getting-started/export.png) data. + +#### Metadata column + +Below, you have the name of the column. the (+) next to **Name** ![Add metadata column](/img/getting-started/add_column_custom.png) is here to create a new metadata column. Then, you have the name of the task type column. + +#### Customize the view + +On the far right of the screen, next to the scroll bar, is the option to hide and display a text column + +![Display/hide text column](/img/getting-started/visible_column_detail.png). + +### Sum-up of your view + +The last part (4), at the bottom of the screen, is the sum-up of your displayed page. It means the sum-up will update if you filter the page. + +You can see the number of elements (assets or shots), the total number of estimated days, and the total number of days already spent. + +## 5. Create a New Production + +Now that you have designed your global workflow and invited more people, it's time to create your production: + +- [Quickstart for TV Shows](/recipes/for-tvshows/) +- [Quickstart for Feature Films](/recipes/for-feature-films/) +- [Quickstart for Shorts](/recipes/for-shorts/) +- [Quickstart for Video Games](/recipes/for-videogames/) +- [Quickstart for NFTs](/recipes/for-nfts/) +- [Quickstart for Shots-Only Productions](/recipes/shots-only-productions/) +- [Quickstart for Assets-Only Productions](/recipes/assets-only-productions/) + +## 6. Next Steps + +- [About Team Roles](/guides/team-management/team-roles/) - An overview of the different team roles and corresponding permissions available in Kitsu. +- [Kitsu for Supervisors](/workflows/for-supervisors/) - A list of the main workflows for supervisors. +- [Kitsu for Producers](/workflows/for-producers/) - A list of the main workflows for producers. +- [Kitsu for Artists](/workflows/for-artists/) - A list of the main workflows for artists. +- [Kitsu for Clients](/workflows/for-clients/) - A list of the main workflows for clients. +- [Kitsu for Developers](https://dev.kitsu.cloud/) - A list of resources for developers. diff --git a/docs/status-publish-review/README.md b/docs/status-publish-review/README.md deleted file mode 100644 index 449d729810..0000000000 --- a/docs/status-publish-review/README.md +++ /dev/null @@ -1,484 +0,0 @@ -# Status, publish and review - - - -## Publish a Concept - -To publish a **Concept**, go to the **Concept** page with the navigation menu. - -![Concept Menu](../img/getting-started/menu_concept.png) - -To upload a concept, click the **Add a new reference to concepts** button. - -You can upload one or several concepts at the same time. - -![Concept empty page](../img/getting-started/concept_empty_prod.png) - -Once you upload your previews, the concept page will look like this. - -![Concept filled page](../img/getting-started/concept_filled_prod.png) - - -You can interact with the concept in two ways: click on the picture to see an enlarged view. -The second is to click on the status part to open the **Comment Panel** on the right. - -You have two options on the comment panel: link a concept with an existing asset or delete the concept. -You can also comment and change the status of the asset. - -The idea is to have one version per **Concept**. If it's not approved, you need to upload a new concept, not to have multiple versions of the same concept. - -One concept is one task. - - -![Concept options](../img/getting-started/concept_options.png) - - -## Link a Concept to an Asset - -Once concepts are uploaded, you can link them to the assets. - -You can see the links on the status part of the assets. - -Click on the status part of the concept; it will open the comment panel on the right. - -![Concept Comment Panel](../img/getting-started/concept_comment_panel.png) - -On the comment panel, you have two options on top of the panel: Link a concept to an asset and delete the concept. - -To link an asset, click on the **Link** ![Link button](../img/getting-started/link_icon.png) button. - -Kitsu will display all the **Assets** available to link with the concept uploaded. - -On top of the comment panel, Kitsu will list the linked assets. For now, there are **No Links**. - - -![Concept link](../img/getting-started/concept_link.png) - -To link an asset, you have to click on it. You will see the name of the assets linked on the top of the screen, but also under the preview of the concept. - - -![Concept asset linked](../img/getting-started/concept_asset_linked.png) - -Once a concept is linked to an asset, you can see the concepts on the detail page of an asset. - -Return to the asset page, and click on the asset name you want to see the concept. - -![Detail asset page](../img/getting-started/asset_detail_page.png) - -Per default, the casting detail is displayed on the second part of the screen. -Use the dropdown menu to choose the concept. - -![asset detail concept](../img/getting-started/asset_detail_concept.png) - -Once in the concept section, you will see all the concepts created for this asset. You can filter them per status. - -![asset detail concept list](../img/getting-started/asset_detail_concep_listt.png) - - - -## Change Status and Add a Comment - -To change the status of a task and write a comment, you need to click on the -status of the task. - -![Shot status](../img/getting-started/shot_status.png) - -It makes a panel appear on the right, and here, you can write a comment, change the status, and attach a file. - -![Comment Panel](../img/getting-started/comment_panel.png) - -The **Commen Panel** is split into 2 tabs : -- POST COMMENT -- PUBLISH REVISION - -To change the **Status**, stay in **POST COMMENT** tab. - -The comment uses the **Markdown** language. If you need specific syntax, feel free to look at the markdown guide website: https://www.markdownguide.org/basic-syntax/ - - -On the **Leave a Comment...** section, you can **tag** someone on the team in the comments. Type the `@`and it opens a sub-menu with the list of the team. - -![Tag someone](../img/getting-started/tag_team.png) - -You can also **tag** a full department by typing '@' and the department's name. - -![Tag department](../img/getting-started/tag_department.png) - -You can add a **checklist** to your comments. - -You need to click on the **Add checklist** button, and the first item of the checklist appears. - -![add checklist](../img/getting-started/add_checklist.png) - -Type your comments, hit the **Enter** key to add another line to your checklist, or click the **Add Checklist** button again. - -![checklist](../img/getting-started/checklist_detailed.png) - -Besides your comment, you can also attach a file as a picture. Click on the **Add attachment** button. - -![Add Attachment Simple](../img/getting-started/attachment_snapshot.png) - -Select a **file from your hard drive** or past a **screenshot** here. - -![Attachment snapshot](../img/getting-started/add_attachmen_simplet.png) - - -Validate the attachment by clicking on **Add file as attachment**. - - -Then select the **Status** that you need on the dropdown menu. - -![Status List](../img/getting-started/status_list.png) - -Then click the **Post** button to post it to the world. - - -## Publish a Preview as a Version - -To publish a preview, picture, or video, select the **PUBLISH REVISION** tab on the comment panel of the task. - -Kitsu will automatically switch to the **Publish Revision** tab when you use status with the option **IS FEEDBACK REQUEST**, like the **WFA** Status. - -![Publish Revision](../img/getting-started/publish_revision.png) - - -You can add one or several previews to any comments. It can be a picture (`.png`, `.jpg`, `.jpeg`, `.gif`), a video (`.mp4`, `.mov`, `.wmv`), -or an `.glb` file. You can review all the previews from the browser or mix everything. - -For the `.glb` file you can also review it as wireframe, or add a `.HDR` file to check the lighting. Other files like `.pdf`, `.zip`, `.rar`, `.ma`, or `.mb`, however, need to be -downloaded to be reviewed. - - -Then, click on the **Add preview revision to publish** button. The explorer opens and lets you choose your file or several files. - -![attach preview](../img/getting-started/attach_preview.png) - -You can also **copy-paste a screenshot** to this screen. - -You will see a preview of the attached files. - -![attach preview filled](../img/getting-started/attach_preview_filled.png) - - -Once your file is selected, you will see its name near the **Attach preview** button. - -![attach preview confirmed](../img/getting-started/attach_preview_confirm.png) - -You can also **drag & drop** the file in the comment section. - -![attach preview drag drop](../img/getting-started/drag_drop_preview.png) - - -On top of your preview, you can add a **Comment**. - -Click the **Leave a Comment** button to unfold the comment section. - -![Add a comment to a Publish](../img/getting-started/publish_revision_comment.png) - - -You can select your status and publish your preview with the **Post** Button. - - - - -## Add a Thumbnail - -To define a preview as a thumbnail, the preview MUST have been uploaded as a revision. - -To publish a preview, picture, or video, select the **PUBLISH REVISION** tab on the comment panel of the task. - -You can use the preview as a **thumbnail** on the asset or shot task. It -helps to recognize the assets/shots on the main pages. -On the list page, click on the status you want, then on the right panel, click the **Preview** button (1). - -![Thumbnail Button](../img/getting-started/pannel_history.png) - -Once you have clicked on the button, you can choose if you want to pick the first or any frame; once the frame is selected, you see the thumbnail appear, and the button turns gray. - -![thumbnail applied](../img/getting-started/pannel_history_thumbnail.png) - - -## Perform a Review - -When an artist needs a **review**, he changes the status of his task, too ![wfa](../img/getting-started/wfa_icon.png). - -Click on status to open the right panel and start the review. - -You can watch the version from the right panel, enlarge it by grabbing the side of the panel, or even go fullscreen ![Fullscreen](../img/getting-started/fullscreen.png). - -![review on global page](../img/getting-started/review_global.png) - -For the 3D file (`.glb` file) you can also review it as wireframe, or add a `.HDR` file to check the lighting. - -You can move around the 3d file with a drag and move with your cursor, and zoom in or out with the scroll. - -![review 3d wireframe](../img/getting-started/review_wireframe.png) - -![Preview background example](../img/getting-started/preview_background_example.png) - -You can draw directly on the preview with the **Pencil** tool and select a color ![Pencil](../img/getting-started/draw.png). - -![review drawing](../img/getting-started/review_comment.png) - -You can also add **text** on the frame. - -![review drawing text](../img/getting-started/review_comment_text.png) - - -If you need to see the preview without your comment, **hide your annotation**, you can click on the **Fountain Pen** button. -![Hide Annotation](../img/getting-started/hide_annotation.png) - - -You can tag a frame (whatever version you are in), type the `@`and it opens a sub-menu with the team list, and start typing **frame**. - -![Tag a frame](../img/getting-started/tag_frame.png) - - -You can also export your drawings on each frame by attaching the **screenshots as attachments**. - -Click on the **Add attachment** button. - -![attachment](../img/getting-started/attachment_retake.png) - -You can also choose to **Attach snapshots from your annotation** on the attachment option. - -![Attachment snapshot](../img/getting-started/screenshot_attachment.png) - -Once you click the button, Kitsu will grab all the frames with annotation and display the result. You can publish them with **Confirm**. - -![Attachment snapshot detail](../img/getting-started/attachment_snapshot_detail.png) - - -If you need to delete your line, click the **pencil** icon again, and the cursor changes to a multi-directional cross ![Pencil](../img/getting-started/direction_arrow.png), and then you can select your line and move it around. - -![review drawing](../img/getting-started/review_edit.png) - -Select the line with the directional cross, then press the **delete** icon ![Delete line](../img/getting-started/delete_line.png) - - -If you go into **Full-Screen**, you can compare two task types or versions side by side when you click on the **Compare** button -![compare button](../img/getting-started/compare_button.png). - -![compare button](../img/getting-started/compare_version.png) - -From there, you can change the status too![Retake](../img/getting-started/retake_icon.png) if you want the Artist to perform some changes. - - -Alternatively, you can change it to ![Done](../img/getting-started/done_icon.png) to notify the Artist that his work is approved. - - -## Review a Concept - -Once your artists upload the concept, you can review it with the supervisor or the director. - -To review the concept, you use the navigation menu at the top of the screen and select the concept page. - -![Menu concept](../img/getting-started/menu_concept.png) - -You can see all the concepts uploaded, the status, assignation, and linked assets. - -![Ccncept filled status](../img/getting-started/concept_empty_prod_linked.png) - - -To review a concept, click the status part to open the comment panel. You can enlarge the comment panel or go fullscreen. - -Then, write a comment, select the status **Approved** or **Rejected**, and validate with the **Post** button. - -![Ccncept status comment](../img/getting-started/concept_status_comment.png) - -You can filter the page with the **Status** filter to display all the **Neutral** status concepts. - -![Ccncept status filter](../img/getting-started/concept_status_filter.png) - -You can also filter per artist and change the order sort. - -## Add Multiple Previews as one Version - -You can add multiple images simultaneously, or once you have uploaded an image, you can add another one. - -![attach preview drag drop](../img/getting-started/upload_several_pictures.png) - -The **Add preview** pop-up asks you to choose a file. - -You can navigate through the pictures uploaded. - -You can change the preview order by clicking the number and then dragging and dropping them. - -![preview drag drop](../img/getting-started/multiple_preview.png) - - -To delete an additional preview, you need to enlarge the comment panel by dragging it and clicking on the number of versions. - -![enlarge comment section](../img/getting-started/enlarge_comment.png) - -And then click on the ![delete button](../img/getting-started/delete_button.png) - -![enlarge comment section delete](../img/getting-started/enlarge_comment_delete.png) - - -## Change Status per Batch - -Alternatively, you can do it per **batch**. - -You can select multiple shots or assets by pressing the **ctrl** or -**shift** key. - -Then, go to the **Change status** section on the action menu. - -![action menu status](../img/getting-started/blue_menu_status.png) - -Choose the new status for your selected tasks (1). You can also add a comment for all the selected tasks (2) -You validate the new status with the **Confirm** button. - -![Change status per batch](../img/getting-started/change_status_batch.png) -![Metadata Column Sort By](../img/getting-started/custom_column_sortby.png) - -The shots are not sorted by name but by the metadata column information. - -![Metadata Column Sort By result](../img/getting-started/custom_column_sortby_result.png) - -You can also select in the menu if you want to edit the name of the metadata column and its information or if you want to delete it. - -You can also use the **CSV Import** to fill your custom metadata column quickly. -First, you must create your **Metadata column** into Kitsu, add it to your spreadsheet, and copy-paste your data into the **CSV Import**. - -[Update Shots information with CSV Import](../feature/README.md#update-your-shots) - - -# Playlists - -## Create a Playlist - - -You can find the **Playlists** page on the drop-down menu. - -![Playlist main menu](../img/getting-started/drop_down_menu_playlist.png) - -The **playlist** page is separated into two parts: - -- (1) The playlist list where you can **create** a playlist or load an existing one. -- (2) The last created playlists and the last modified playlists - -![Playlist page](../img/getting-started/playlist_page.png) - -Start by creating a **Playlist** -![Playlist add button](../img/getting-started/playlist_add_button.png). Your default name -is the date and the hour. You can change it immediately. You can choose if the playlist -will be shared with the **studio** or the **client** and if it's a **shot** or **asset** playlist. -You can also add a **Task Type** tag to the playlist. - -![Playlist add page](../img/getting-started/playlist_add_page.png) - -Once the playlist created, via the search/filter bar, you can select which shots to add -to your playlist. - -You can also choose to **add whole movie**, and it will add all the shots of the movie. - -You can select **Daily pending**, which will add all the **WFA** tasks of the day. - -Otherwise, you can **Add the whole sequence** if you want to focus only on a particular sequence. - -You can use the same **filter** than on the global shot/asset page. For example, you can select all the -WFA short for the animation stage. -You have to type **animation=wfa** in the search bar. Valid your selection with the **Add selection** button. -Kitsu will select the shots that have the **WFA** status at the **Animation** stage, but Kitsu will automatically load **the latest uploaded version**. - -The shots appear on the top part of the screen. Every change are -automatically saved. - - - -![Playlist page](../img/getting-started/playlist_example.png) - - -## Review and Validations - -Once you have created a playlist; you have several options: - - -![Playlist Global](../img/getting-started/playlist_global.png) - -* Play or Pause -* Navigate from element to element -* See the position of the selected element compare to the total number of elements -* Mute or unmute the sound -* Change the speed, double speed (x2), full speed (x1), half of the speed (x0.50), or a quarter of the speed (x0.25) -* Loop on one element -* Display the sound wave -* Display annotations during the play -* TC of the element compared to the TC of the whole playlist -* Number of frame -* Navigate frame per frame on the preview. You can also do it with the arrow on the Keyboard. -* Compare tool - - -* Undo and Redo option for the drawing comment -* Text and drawing option, and delete selection - - -* Change the task type of all the elements of the playlist -* Display the comment section -* Hide the elements of the playlist -* Switch between LD (low definition) to HD (High definition) -* Download the playlist as a **Zip** files with all the separated elements, a **.csv** text file, or **Build .mp4** to create the whole movie (only for shots) -* Fullscreen - - - -For each playlisted shot/asset, you can choose the **task** and the -**version** you want to see. - -![Playlist task selection](../img/getting-started/playlist_task_selection.png) -![Playlist version selection](../img/getting-started/playlist_version_selection.png) - -You can also play side by side two tasks of a shot. - -Click on the **Compare** button ![Compare button](../img/getting-started/compare_button.png) and choose the second task type. - -![Playlist side by side](../img/getting-started/playlist_side_by_side.png) - - - -The primary purpose of the playlist is to help you with the review of the shots and assets. - -You can comment on the shots directly from the preview. - -Click on the **comment** button. - -![Playlist comment](../img/getting-started/playlist_comment_button.png) - -You now have access to the right panel, with all the history of the comments and status. - -You can see the drawing comment on the video (the red dot below the timeline). - -![Playlist comment](../img/getting-started/playlist_comment.png) - -You can draw or type on the video (same than -[Perform a review](../getting-started-production/README.md#perform-a-review)), with the **draw** button ![draw button](../img/getting-started/draw.png) - - -## Review Room - -On top of the playlist you have a button to **Join Review Room**. The review room will synchronize all the participants. - -Everybody in the review room will see in real time the play and pause, the shots and frame selection. - -The people in the review room will also see the drawing annotation synchronized. - -![Playlist review room](../img/getting-started/playlist_review_room.png) - -## Batch Upload Previews (as Thumbnails) - -You can use the **Add Thumbnails** button ![Add thumbnails button](../img/getting-started/add_thumbnails.png) on the global page to massively import thumbnails. - - -![History](../img/getting-started/add_thumbnails_menu.png) - -A new pop-up opens and asks you to choose which task types the thumbnails are linked. - -**Thumbnails batch import accept images files and video files**. - -For the video files, only the first frame is used as the thumbnail. - -You have to name your thumbnails as sequence_shot. - diff --git a/docs/supervisor-tasks/README.md b/docs/supervisor-tasks/README.md deleted file mode 100644 index 9623d1283a..0000000000 --- a/docs/supervisor-tasks/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# Task Supervision - -## Check Your Tasks - -A supervisor will typically have tasks assigned to them in addition to supervising your department. This means you need to split your time between completing your work and managing your team. Here's how to effectively manage what tasks you need to do. - -When you log into Kitsu, you'll notice the **My Tasks** button at the top of the screen. This provides direct access to your **to-do list**. By default, the list is sorted by priority, so the task at the top are the ones recommended address first. - -On the My Tasks page, you can filter the task list by Production, Task Type, Status, and other criteria. - -![Supervisor Todo Page](../img/getting-started/supervisor_todo_page.png) - -To view more details about a task, click on its **Status** to open the comment panel. Here, you can comment on the task and publish a new revision if needed. - -![Supervisor Todo Detailed Page](../img/getting-started/supervisor_todo_page_detail.png) - -You can also use the Board to quickly update the status of multiple tasks by dragging and dropping into each status column. - -![Supervisor Todo Detailed Page board](../img/getting-started/supervisor_todo_page_detail_board.png) - -## Reviewing Previews - -Now that everyone in your team knows what to do, you need to review their work. Typically, when an artist finishes a task, they will call you for a review. Frequent interruptions can be unproductive and make it difficult to maintain focus. To avoid this, set a specific timeframe for reviews. This approach benefits both you and your team by providing a structured schedule. Artists will know when they can expect feedback and can plan their work accordingly, while you can dedicate uninterrupted time to your own tasks. - -Click the **My Checks** button at the top of the screen to see a list of all your department's **WFA** tasks. - -![Supervisor My Check Page](../img/getting-started/supervisor_mycheck.png) - -This list covers all relevant **Productions**, **Task Types**, and **Task Statuses**. As with other pages in Kitsu, you can click on a **Status** to open the **Comment Panel** on the right and review tasks one by one. - -Alternatively, you can use the **Build playlist from list** button to create a playlist with all the tasks on the list. This playlist has the same options as other views, allowing you to open the comment panel, compare versions and task types, and add annotations. - -![Supervisor My Check Playlist](../img/getting-started/supervisor_mycheck_playlist.png) -![Supervisor My Check Playlist Option](../img/getting-started/supervisor_mycheck_playlist_option.png) - -Another option is to go to the **Task Type Page** and change the **Display as contact sheet**. For example, you can filter by **Due Date Status** and select **Due this week**. - -![Supervisor Contact Sheet](../img/getting-started/supervisor_contactsheet.png) - -From here, you can click on the contact sheet to open the comment panel or select several tasks to create a playlist. - -## Reviewing Concepts - -When your artists upload a concept, you can review it through the navigation menu at the top of the screen by selecting the **Concepts** page. - -![Menu concept](../img/getting-started/menu_concept.png) - -On this page, you can see all uploaded concepts along with their status, assignment, and linked assets. - -![Concept filled status](../img/getting-started/concept_empty_prod_linked.png) - -To review a concept, click on its status to open the comment panel. You can enlarge the comment panel or enter fullscreen. You can then write a comment, set the status as **Approved** or **Rejected**, and confirm your changes with the **Post** button. - -![Concept status comment](../img/getting-started/concept_status_comment.png) - -You can narrow down the page using the **Status** filter to display all concepts with a **Neutral** status. - -![Concept status filter](../img/getting-started/concept_status_filter.png) - -Additionally, you can filter by artist and change the sort order to better hone in on the data you need to review. \ No newline at end of file diff --git a/docs/supervisor-team/README.md b/docs/supervisor-team/README.md deleted file mode 100644 index 0dc63b1d60..0000000000 --- a/docs/supervisor-team/README.md +++ /dev/null @@ -1,95 +0,0 @@ -# Managing Your Department - -A supervisor's role is to oversee the creative and technical aspects of visual effects production, ensuring that the final output meets the project's artistic vision, quality standards, and deadlines. A key aspect of this is to ensure your team knows what they are working on. - -## Assigning Tasks & Bidding Estimates - -From the global shots / asset page, your view is automatically filtered by **My Department**. This shows you tasks from your departments **Task Type** and the **Custom Columns** linked to your department. - -![Supervisor Global Page](../img/getting-started/supervisor_global_page.png) - -When you assign one or several tasks to someone, you will notice that you only have access to people from your department. This makes it faster to find the right artist for the task. - -![Supervisor Assign Team](../img/getting-started/supervisor_assign_team.png) - -Now that you have assigned tasks to all your artists, it's time to fill in the **Estimates** for each task. - -Click on the name of a **Task Type** column to open its dedicated page. On this page, you can access three tabs: **Tasks**, **Schedule**, and **Estimation**. We will focus on the last one. - -![Supervisor Estimation](../img/getting-started/supervisor_estimation.png) - -The **Estimation** page is split into two parts. On the left, you have all the tasks sorted by artist, along with their number of frames and seconds. On the right, you have a summary of your team, with one line per artist showing the total number of assigned tasks, total number of frames and seconds, and the updated total number of estimated days. - -With this information, Kitsu can calculate different estimated **Quotas**: **per Second**, **per Frame**, and **per Task**. - -You can now fill the **Estimation** column on the left and see the result on the right. As soon as you fill in an **Estimation** for a task, the artist's row will update on the right. - -![Supervisor Estimation Filled](../img/getting-started/supervisor_estimation_filled.png) - -This allows you to ensure the distribution of tasks among your team members is equal and helps to understand their estimated quotas for production. You should consider artist's experience and the difficulty of each task when doing this. - -## Daily Supervision Tasks - -Once the assignments and estimates are done, you can focus on the day-to-day operations. To easily see an overview of tasks from your department, you can click on your task type name from any page. - -Once on the detail page, your first action is to click on the **Display tasks as a contact sheet** ![Display task as contact sheet](../img/getting-started/contact_sheet.png) button. - -![Task Type as contact sheet](../img/getting-started/task_type_contact_sheet.png) - -Now, you can easily hone in on tasks that require your attention using the built-in filters. For example, say you want to see only the tasks that are yet not complete yet. In this case, you can filter our tasks with the **-done** status, along with adding a **Due Date Status** filter, to show tasks that are **Due This Week**. - -![Task Type filtered as contact sheet](../img/getting-started/task_type_contact_sheet_filtered.png) - -You can easily enable / disable filters to quickly hone in on the right information. - -::: tip -If you need more information about a task, click on it's name to open the comment panel on the right. - -![Task Type filtered as contact sheet](../img/getting-started/task_type_contact_sheet_panel.png) -::: - -## Managing Your Department's Schedule - -As a Supervisor, you can access your team's schedule from the main menu under the **Studio > Team Schedule** section. - -From this page, you can see all the artists in your current department working on your project. You can expand a person's schedule to see the details of their tasks. - -From there, you can: -- Move tasks to change their start and due dates. -- Adjust the length of tasks. -- Drag and drop tasks to reassign them to different team members. -- See days off. - -![Team Schedule Global](../img/getting-started/team_schedule_global.png) - -## Managing Department Quotas - -A quota refers to the specific amount of work or number of tasks an artist is expected to complete within a given timeframe, ensuring that the project progresses according to schedule and meets production deadlines. - -At the beginning of production, while setting estimates for each task, you can also define estimated quotas for each of your artists. Once a task is approved, the remaining line on the Estimation tab of the Task Type page will update and display the remaining number of tasks and the updated estimated quotas. - -You can monitor each team member to see if their estimated quotas stay within the initially established range. - -![Supervisor Estimated Quotas](../img/getting-started/supervisor_quotas_estimated.png) - -To check their **Actual Quotas**, go to the **Quotas** page. - -![Quotas](../img/getting-started/supervisor_quotas.png) - -Kitsu has two ways to calculate quotas. The first is based on daily timesheets filled out by the artists. Quotas are calculated from when the artist fills out their first timesheet on a task until they stop. - -The second way is based on status. The calculation starts with the **WIP** status and ends with the **WFA** status. This is **First Take** quotas, meaning that back-and-forth comments are not included in the calculation. - -![Weekly Quotas](../img/getting-started/supervisor_quotas_week.png) - -The first column, **Average**, is the most important. Kitsu calculates the average quotas for each artist per **Day**, **Week**, or **Month**. - -## Department Timesheets - -As a Supervisor, you may also be responsible for monitoring your team's hours. The Timesheet page shows how many hours they work daily, weekly, and monthly. - -![Timesheet](../img/getting-started/supervisor_timesheet_team.png) - -It's important to highlight abnormal patterns such as extra hours, sick days, or lack of vacation. The timesheet view can provide a high-level overview of where artists are spending their time, which can help you take care of your team to ensure they are not burning out. - -![Timesheet Detailed](../img/getting-started/supervisor_timesheet_team_detail.png) \ No newline at end of file diff --git a/docs/team/README.md b/docs/team/README.md deleted file mode 100644 index d622038142..0000000000 --- a/docs/team/README.md +++ /dev/null @@ -1,266 +0,0 @@ -# Preparing Your Team - -Now that you have defined your workflow, it's time to organize your team so you have people to assign tasks to. - -We will learn how to add users to Kitsu, link them to departments, grant them permissions, and finally, add them to a production team so that they can begin working. - -## Creating Users -### Creating Users and Linking Them to Departments - -To assign tasks to people, you first need to create an account for them in Kitsu. - - -::: warning Definition -As with other aspects in Kitsu, there are two libraries for users: -- The **People Page** (Global Library) is used to determine users' permissions, contracts, and departments they belong to. -- The **Team Page** (Production Library) is used to define who is working on a project and provide access to the production. -::: - - -Go to the **Main Menu** ![Main -menu](../img/getting-started/main_button.png), and under the **STUDIO** -section, choose **People** page. - -![People Menu](../img/getting-started/main_menu_people.png) - -Then, click on the ![Add a new user](../img/getting-started/add_employee.png) button. - - -![Create a new user](../img/getting-started/create_employee.png) - -You will then be prompted to enter the following information: (please note from of the fields are required in order to create the user) -- 1) First Name (**MANDATORY**) -- 2) Last Name -- 3) Email (**MANDATORY**) -- 4) Phone Number - -::: danger Important! -An email address is **mandatory** and must be unique in order to create an account. -::: - -- 5) You can specify one or multiple **Departments** to link a user to. - -Being assigned to a Departments will also affect what shows up on the **My Checks** page, displaying only tasks related to your department. - -Finally, the timesheet page will be filtered to only tasks within your department as well. - -::: details Some more details about Departements -Once a user is linked to a department, various options will become available to them. For example, they will have direct access to their department's view on the global homepage. - -The department supervisor will be able to comment on all tasks within their department and assign tasks only to people from the same department(s). - -![Department filtered view](../img/getting-started/department_filtered_view.png) -::: - -- 6) Role: This is where you will define the permission role of the user (this will be explained below). - -- 7) Active - -This section lets you choose whether to activate users immediately. If the user needs immediate access to Kitsu, set this to **yes**. However, there might be instances where you want to create a user but are not ready to give them access to Kitsu (for example, if you want to schedule tasks for an artist who is due to start work in two weeks). In this case, you can create and schedule the user, then simply enable them once they start. - -::: danger Important! -Each user requires an individual account to log in to Kitsu. -::: - -## Permission Roles -### Understanding Permission Roles - -::: warning Definition -A permission role defines a set of access rights and privileges granted to a user within a system or application, dictating what actions they can perform and what resources they can access. -::: - -Roles are very important, so it's useful to understand what each of them does and which ones might be relevant to specific team members. Click into each of the sections below to learn more about each permission role. - -- **Artist** -::: details Artist Permissions -Artists can only access the productions they are part of. They can comment on tasks, upload media, and change statuses only on tasks that have been assigned to them. Their access is limited to a predefined set of statuses as determined by the Studio Manager. - -**They can:** -* Create personal filters on the global page and Task Type page. -* Edit their own comments. -* Check the checklist on their assigned tasks. -* Create playlists-on-the-fly for shots or assets, but won't be able to save these playlists. - -**They cannot:** -* See client comments. -* Access anything inside of projects that they haven't been assigned to. - -When an artist logs in to Kitsu, the first page they will see is their **My Tasks** page. - -![my task](../img/getting-started/my_task_page.png) -::: - -- **Supervisor** -::: details Supervisor Permissions -Department supervisors inherit Artist permissions. - -Department supervisors have read and write access to their department(s) they work on: -assets, shots, tasks, assignments, statistics, breakdown, and playlists. - -**They can:** -* Assign tasks to their team artists (same department). -* Post comments on all tasks or their department(s). -* Check a checklist in their own department. -* Pin a comment. -* Edit their own comments. -* Add/edit a playlist for the studio or the client. -* See client comments and validations. -* See comments from other departments. -* View the timesheets of their team department(s). - -**They cannot:** -* Access the studio team, the main timesheets, and the production list -* Define task types, task statuses, and asset types. -* Comment on other departments than theirs; they can't assign artists from other departments. -::: - -- **Production Manager** -::: details Production Manager Permissions -Production managers inherit Department supervisor permissions. - -Production managers have read and write access to the productions they are assigned to, including -assets, shots, tasks, assignments, statistics, breakdowns, and playlists. - -**They can:** - -* Create assets and shots, either manually or through a CSV batch import. -* Post comments on any tasks within the production. -* Edit any comment within the production. -* Check any checklist within the production. -* Pin any comment within the production. -* Add a task column. -* Delete or add a task. -* Add/edit a playlist for the studio or the client. -* See client comments and validations. - -**They cannot:** - -* Access the studio page, the main timesheets, and the production list. -* Define task types, task statuses, and asset types. -::: - -- **Studio Manager** -::: details Studio Manager / Administrator Permissions -A Studio Manager acts in the same way as an Administrator, having read and write access to all productions and settings within Kitsu. Some of their privileges include: - -#### Create and edit a production - -The Studio Manager can create a new production, define its type, FPS, ratio, and resolution, and add a cover picture. They can also edit and delete any production. - -#### Manage the studio - -The Studio Manager has access to everything in the studio, including: - -* Read / write access across all the productions -* Access to the global timesheets page -* The ability to view all people in the studio -* Access to the main schedule - -In the People page, The Studio Manager **defines the permission role of each user**. - -They can also: - -* Customize global aspects of Kitsu: for example adding and modifying task types, task statuses, and asset types. -* Set permission roles -* Customize high-level studio information, such as customizing the studio name adding the company logo, and defining the number of hours per day of work etc. -* Choose to use the original filename for downloading media. - -#### Manage productions - -They have full access to all productions on your Kitsu site. Additionally: - -* They have the same permissions as the supervisor. -* They can add / delete a task column. -* They are allowed to create custom metadata columns. -::: - - -- **Vendor** -::: details Vendor Permissions -Vendors have similar permissions to artists. The main difference is that while an artist can still see tasks in their production (though they can only edit tasks assigned to them), a vendor can only see and edit tasks that they are specifically assigned to. Everything else that is not assigned is hidden. -::: - -- **Client** -::: details Clients Permissions -The client can only see the production of which they are part of. - -**They can:** - -* Access the global page of the assets/shots. -* Access the stats pages. -* Access Client playlists with limited access to task status when they post a comment - -**Note** -* Only Supervisors and the Studio Manager can see the Client retake or validation status. - - -**They cannot:** - -* See task assignments -* See comments that they didn't write -::: - - -::: details Add Employees from a CSV Spreadsheet File - -You may already have your employee list ready in a spreadsheet file. With Kitsu, you have two ways to import them: importing a `.csv` file directly or copy-pasting your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file. - -Then, go back to the People page on Kitsu and click on the **Import** icon. -![Import Icon](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** will open. Click on **Browse** to pick your `.csv` file. - -![Import csv file](../img/getting-started/import_csv_people.png) - -To see the result, click on the **Preview** button. - -You can check and adjust the column names using the preview of your data. - -**Note:** The **Role** column is not mandatory. - -![Import data copy paste data](../img/getting-started/import_preview_data_people.png) - -Once everything looks good, click on the **Confirm** button to import your data into Kitsu. - -Now, you have all your people imported into Kitsu. - -![Import data copy paste data](../img/getting-started/import_result_people.png) - -::: - -## Two-Factor Authentication -### Add Additional Security to Your Studio - -**Two-Factor Authentication** provides an additional layer for security for users logging in to Kitsu. It can be enabled on a per-user basis, so you can decide for which users it is enforced. - -To enable this, click on their avatar at the top right of the screen, then select **Profile**. -At the bottom of the page, they will find various **Two-Factor Authentication** options. - -### Available Two-Factor Authentication Methods -- **TOTP**: This lets you use a Two-Factors Authentication app as a secondary password for your account. Selecting this option will present you with a QR, that once scanned into your 2FA app of choice, will prompt you for a one-time code each time you login. -- **OTP Via Email** Similar to TOTP, but instead of using an app the 2FA code is sent to your email address -- **FIDO Device** A FIDO device refers to a hardware security key that supports the FIDO (Fast IDentity Online) standard for two-factor authentication (2FA). If you own one of these devices, you can input it's name here to be used for Two-Factor-Authentication - -![TWO-FACTOR AUTHENTICATION](../img/getting-started/2factors.png) - - - -## Adding Users to the Team -Once you have created your production, you need to add users to the production's team to allow them access. Being part of a team also allows tasks to be assigned to you. - -::: tip -You don't need to add the Studio Manager role to a team to give them read permission (since this role will have access to it anyways). However, if you want to assign them tasks, they will need to be added to the team. -::: - -To add users to a team: - -1. On a production, use the **navigation** dropdown menu at the top of the page and select the **TEAM** page. - - ![Drop down menu team](../img/getting-started/drop_down_menu_team.png) - -2. On the **Team** page, you can see all the assignees for a specific project. Switch to the top of the page if you want to check another project team. - - ![Team page](../img/getting-started/team_page.png) - diff --git a/docs/tvshow/README.md b/docs/tvshow/README.md deleted file mode 100644 index d88fc349a1..0000000000 --- a/docs/tvshow/README.md +++ /dev/null @@ -1,1117 +0,0 @@ -# Create a TV Show Production - -Now that you have designed your workflow in Kitsu and invited additional team members, it's time to create your production. - -Click on the **Create a New Production** button. - -![Create a production](../img/getting-started/create_production.png) - -Enter your production name, choose **TV Show** as the **type**, and select the style of your production (2D, 3D). - -Next, fill in the technical information, such as the number of FPS, the aspect ratio, and the resolution. - -::: warning -All this data will be used when Kitsu re-encodes the video previews you upload. -::: - -Next, define the start and end dates for your production. - -![Add a production](../img/getting-started/add_production.png) - -You can define your production workflow in the next part, 3 to 6. - - - -You need to select your asset task type (3), shot task type (4), task status (5), and asset types (6). - -![Add a production Pipeline](../img/getting-started/add_production_pipe.png) - - -::: tip -To create your **Production Workflow**, select Task Types from the Global Library. - -If you realize you missed some Task Types, you can create them later. - -[See Getting Started With Kitsu](../configure-kitsu/README.md) -::: - -Then, steps 7 and 8 are optional. If you already have a spreadsheet with your assets or shots, refer to the **import CSV** section for more details. - -Validate everything with the ![All done](../img/getting-started/all_done_go.png) button. - - - -## Introduction to Kitsu's Global Page - -Welcome to Kitsu's global asset page. Let's take a look around. - -![Presentation of the global page](../img/getting-started/presentation_global_tv.png) - -At the top, you’ll find the **global navigation**, which remains visible across all production pages. - -**From left to right:** - -### Main Menu - -By clicking on the top left button, Kitsu ![Main menu button](../img/getting-started/main_button.png) (or your Studio logo), you will open the Main Menu. - -In the Main Menu, you’ll have direct access to your assigned tasks, productions, global and team schedules, the workflow customization page, and Kitsu settings. - -::: details Main Menu Details -**WORKSPACE** -- **My Tasks:** Your assigned tasks. -- **My Checks:** All tasks with the status **Is Feedback Request**, depending on your department(s). -- **My Productions:** Return to the production selection page. - -**STUDIO** -- **Productions:** List of all productions (opened or closed) with details. -- **People:** List of all the people (active or not) in your studio with information. -- **Timesheets:** Details of the time entered by the team across productions. -- **Main Schedule:** All your productions in one schedule. -- **Team Schedule:** Schedule of all the people in your studio and their tasks. -- **All Tasks:** Access all tasks across all productions at once. -- **News Feed:** Stay updated on what happened. -- **Entity Search:** Find any assets or shots across productions. - -**ADMIN** -- **Departments:** Create and edit departments. -- **Task Types:** Create and edit task types. -- **Asset Types:** Create and edit asset types. -- **Custom Actions:** Create and edit custom actions. -- **Automation:** Create and edit automation. -- **3D Backgrounds:** Add HDR backgrounds. -- **Bots:** Create and edit bots. -- **Settings:** Set up your studio. -- **Logs** - -::: warning Permission Visibility -The WORKSPACE section is enabled for all permissions except My Checks, which artists do not see. - -Artists (and above) can also see their own **Timesheets** and have access to the **Entity Search**. -::: - -### Navigation - -You will see the navigation dropdown menu to the right of the main menu icon. - -![Presentation of the global page](../img/getting-started/presentation_global_header_tv.png) - -You can choose between different productions. The name of the current production and the current page are always displayed. - -Use the dropdown menu to navigate from one production to another if you have several. Once you have selected a production, the next dropdown menu will help you navigate through the different pages of that production. - -::: details Navigation Details -The first section is about tracking your tasks: -- **Assets** -- **Shots** -- **Sequence** -- **Episodes** -- **Edits** (If you have created specific tasks) - -The second section focuses more on the production side: -- **Concepts** -- **Breakdown** -- **Playlists** -- **News Feed** - -The third section is about statistics: -- **Sequence Stats** -- **Episodes Stats** -- **Asset Type Stats** - -The fourth section is related to team management: -- **Schedule** -- **Quotas** -- **Team** - -The fifth section is about the settings of your production: -- **Settings** - -::: tip -You start with the asset page, but you can change your production homepage to other entities (see settings page). -::: - -::: warning -If you realize you don't need an extra level of navigation, such as **Episodes**, you need to change your production type to **Short**. -::: - -### Global Search, News, Notification, and Documentation - -To the right of the navigation dropdown menu, you’ll find the global search. This quick-access feature shows the first four results. For more results and filtering options, visit the **Entity Search** page in the Main Menu. - -The next icon ![News](../img/getting-started/canny.png) is a direct link to our news and feedback page. Here, you can view all the new features, complete with animated GIFs, and also submit suggestions for the next feature you’d like to see in Kitsu. - -Next, the bell icon ![Notification](../img/getting-started/notification_icon_on.png) displays your notifications (assignments, comments, tags). The number of unread notifications will be shown on the bell icon. There are various filters to help you stay on top of updates and revisit important ones when needed. You can easily mark notifications as read or unread or quickly filter by watching/non-watching to focus on what matters most and declutter your feed. - -The last icon before your avatar is the documentation button ![documentation button](../img/getting-started/documentation_button.png), which you are reading right now! - - -### Personal Settings -You can click on your avatar to open your profile menu (Profile, Color Theme, Video tutorials, etc.). - -![Profile enlarged](../img/getting-started/profil_enlarge.png) - -## The Tasks Spreadsheet - -### Entity Spreadsheet - -The second part of the screen is common to all entities (Asset, Shot, Sequence, Edit). This is the global tasks spreadsheet. - -Here, you can see the status, assignment, priority, and other details for each task. - -::: tip -The first row and column header of the spreadsheet always remain at the top of the page, even when you scroll down. - -You can also **stick** other columns to keep them visible at all times. -::: - -### Filters - -The first element on the left is the filter box. You can type anything you want for simple filtering, such as sequence, asset type, etc. - -For more advanced filtering, please use the filter builder button. - -![Filter Builder](../img/getting-started/filter_builder.png) - -You can save all the filters and use them as your pages. - -### Simplify the Display - -On the right part of the screen, there are some buttons (from left to right) to hide or display the assignment, hide or display the extra column, enlarge or reduce the thumbnail. - -![Display and Hide Option](../img/getting-started/display_hide_option.png) - -### Import / Export -Here we have the Batch import thumbnail ![Batch import thumbnail](../img/getting-started/add_thumbnails.png), and finally import ![Import button](../img/getting-started/import.png) or export ![Export button](../img/getting-started/export.png) data. - -### Metadata Column -Below, you have the name of the column. The (+) next to **Name** ![Add metadata column](../img/getting-started/add_column_custom.png) is here to create a new metadata column. Then, you have the name of the task type column. - -### Customize the View -On the far right of the screen, next to the scroll bar, is the option to hide and display an extra column (everything but the task type). - -![Display/Hide Text Column](../img/getting-started/visible_column_detail.png). - -### Sum-up of your view -The last part (4), at the bottom of the screen, is the sum-up of your displayed page. It means the sum-up will update if you filter the page. - -You can see the number of elements (assets or shots), the total number of estimated days, and the total number of days already spent. - -![Display Sumup](../img/getting-started/sumup.png) - - -## Create an Asset -### Create Your First Asset - -Now that we have created our production and have a general grasp of the Kitsu interface, it's time to create our very first asset. - -On the asset page, click on **Add Assets**. - -![Asset Page First Time](../img/getting-started/add_assets_first.png) - -::: warning -When you create an asset, your task workflow will be applied, and **all tasks will be created simultaneously**. -::: - -A pop-up window opens: - -- It asks you to choose the **Asset Type** (1). If you haven't added a new asset type, Kitsu will provide examples such as Characters, Environment, FX, Props. Let's start with a character. - -::: tip -You can also customize the asset type list and the task pipeline. [See Asset Types Workflow](../configure-kitsu/README.md#specific-asset-types-workflow) -::: - -Link this asset to an Episode (Kitsu provides the **Main Pack** by default, which is not editable or removable) and select a first episode to help you get started **E01**. You can rename or delete E01. - -- Give it a **Name** (3) and enter a description to help the artist know what to do and quickly identify the asset. - -- Click on **Confirm and Stay** if you have multiple assets to create. - -![Create an Asset](../img/getting-started/add_asset_popup.png) - -You can change the asset type and continue adding assets. - -::: tip -The newly created asset appears in the background whenever you click on **Confirm and Stay**. -::: - -After adding your last asset, click on **Confirm**. It will create the asset and close the window. - -::: tip -If you click on **Confirm and Stay** but realize you don't have more assets to add, click on **Close**, and the window is canceled. -::: - -![Global Asset Page](../img/getting-started/asset_edit.png) - -You will also see that the tasks selected for your asset's workflow are created at the same time. - -If you need to add more **Assets**, click the **+ Create Assets** button. - -::: details Create Assets from a CSV Spreadsheet File -You may already have your asset list ready in a spreadsheet file. -With Kitsu, you have two ways to import them: the first is to import a `.csv` file and copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file. - -Then, go back to the asset page on Kitsu and click on the **Import** icon. -![Import Icon](../img/getting-started/import.png) - -A pop-up window **Import Data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Import CSV File](../img/getting-started/import_csv_asset_tv.png) - -To see the result, click on the **Preview** button. - -You can check and adjust the column names by previewing your data. - -Note: the **Episode** column is only mandatory for a **TV Show** production. - -Once everything is correct, click the **Confirm** button to import your data into Kitsu. - -Now, you have imported all your assets into Kitsu and created the tasks according to your settings. - -![Import Result](../img/getting-started/import_result_asset.png) -::: - -::: details Create Assets by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import Copy Data](../img/getting-started/import_copypas_asset.png) - -Then, go back to the asset page on Kitsu and click on the **Import** icon. -![Import Icon](../img/getting-started/import.png) - -A pop-up window **Import Data from a CSV** opens; click on the **Paste a CSV Data** tab. - -![Import Data Copy Paste Tab](../img/getting-started/import_pastcsvdata_asset_tv.png) - -You can paste your previously selected data and see the result with the **Preview** button. - -![Import Data Copy Paste Data](../img/getting-started/import_pastcsvdata2_asset_tv.png) - -You can check and adjust the column names by previewing your data. - -Note: the **Episode** column is only mandatory for a **TV Show** production. - -Once everything is correct, click the **Confirm** button to import your data into Kitsu. - -Now, you have imported all your assets into Kitsu and created the tasks according to your settings. - -![Import Result](../img/getting-started/import_result_asset.png) -::: - -### Viewing Details of an Asset - -To see the details of an asset, click on its name. - -![Asset Detail](../img/getting-started/asset_detail.png) - -A new page opens with the list of tasks, assignments, and status updates on the right. - -![Asset Detail Page](../img/getting-started/asset_detail_page.png) - -You can click on the status of each task to open the comment panel and view the history of comments and different versions. - -![Asset Detail Page](../img/getting-started/asset_detail_page_panel.png) - -You can also access the following: - -- **Casting** - -![Asset Detail Casting](../img/getting-started/asset_detail_page_casting.png) - -- **Concepts** linked to this asset - -![Asset Detail Concepts](../img/getting-started/asset_detail_page_concept.png) - -- The **Schedule** is available if you have previously filled out the task type page data. If the data has already been filled out, you will be able to modify them directly here. - -![Asset Detail Schedule](../img/getting-started/asset_detail_page_schedule.png) - -- The **Preview Files** uploaded at various task types - -![Asset Detail Preview Files](../img/getting-started/asset_detail_page_file.png) - -- And the **Timelog** if people have filled out their timesheets on the tasks of this asset. - -![Asset Detail Timelog](../img/getting-started/asset_detail_page_timelog.png) - - - -## Update Your Assets -You can update your assets at any point, change their name and asset type, modify their description, and add any custom information you added to the global page. - -To edit assets, go to the asset page, hover over the asset you want to modify, and then click on the **Edit** button ![Edit Button](../img/getting-started/edit_button.png) (1) on the right side of the line. - -![Edit an Asset](../img/getting-started/asset_edit01.png) - -To view the full description on the main asset page, click on the first words (2), and a pop-up with the full description will open. - -::: details Update Assets with the CSV Import -You can use the CSV import to update your data quickly. - -You can update the **type** of an asset, the **Assignment**, the **Status** of tasks, and add a **Comment**. - -You need to switch on the option **Update existing data**. Then, the lines that will be updated will be highlighted in blue. - -![Import Data Copy Paste Data](../img/getting-started/import_update_asset.png) -::: - -::: details Update Assets by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import Copy Data](../img/getting-started/import_copypas_asset_tv.png) - -Then, go back to the asset page on Kitsu and click on the **Import** icon ![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import Data from a CSV** opens; click on the **Paste a CSV Data** tab. - -![Import Data Copy Paste Tab](../img/getting-started/import_pastcsvdata_asset_tv.png) - -You can paste your previously selected data and see the result with the **Preview** button. - -![Import Data Copy Paste Data](../img/getting-started/import_pastcsvdata2_asset_tv.png) - -You can check and adjust the name of the columns by previewing your data. - -You need to switch on the option **Update existing data**. Then, the lines that will be updated will be highlighted in blue. - -![Import Data Copy Paste Data](../img/getting-started/import_update_asset_tv.png) - -Now, you have imported all your assets into Kitsu and updated the tasks according to your settings. - -![Import Result](../img/getting-started/import_result_asset.png) -::: - - - -## Add More Tasks After Creating the Assets - -If you realize **after** creating the assets that tasks are missing, you can still add them. - -First, ensure that the missing task type is added in the settings page under the task type tab (otherwise, [See Getting Started with Kitsu](../configure-kitsu/README.md)). - -Then, go back to the asset page and click on **+ Add Tasks**. - -## Create a Concept -### Upload a Concept - -To create a **Concept**, navigate to the **Concepts** page using the navigation menu. - -![Concept Menu](../img/getting-started/menu_concept_tv.png) - -To upload a concept, click the **Add a new reference to concepts** button. - -You can upload one or several concepts at the same time. - -![Concept Empty Page](../img/getting-started/concept_empty_prod.png) - -Once you upload your previews, the concept page will look like this. - -![Concept Filled Page](../img/getting-started/concept_filled_prod.png) - -You can interact with the concept in two ways: click on the picture to see an enlarged view. The second is to click on the status part to open the **Comment Panel** on the right. - -On the comment panel, you have two options: link a concept to an existing asset or delete it. You can also comment and change the status of the asset. - -The idea is to have one version per **Concept**. If it's not approved, you need to upload a new concept, not to have multiple versions of the same concept. - -One concept is one task. - -![Concept Options](../img/getting-started/concept_options.png) - - -### Link a Concept to an Asset - -Once concepts are uploaded, you can link them to the assets. - -You can see the links on the status part of the assets. - -Click on the status part of the concept; it will open the comment panel on the right. - -![Concept Comment Panel](../img/getting-started/concept_comment_panel.png) - -On the comment panel, you have two options at the top: Link a concept to an asset and delete the concept. - -To link an asset, click on the **Link** ![Link button](../img/getting-started/link_icon.png) button. - -Kitsu will display all the **Assets** available to link with the concept uploaded. - -Kitsu will list the linked assets at the top of the comment panel. For now, there are No Links. - - -![Concept link](../img/getting-started/concept_link.png) - -To link an asset, click on it. The linked assets' names will appear at the top of the screen under the preview of the concept. - - -![Concept asset linked](../img/getting-started/concept_asset_linked.png) - -Once a concept is linked to an asset, it can be seen on the asset's detail page. - -Return to the asset page, and click on the asset name you want to see the concept. - -![Detail asset page](../img/getting-started/asset_detail_page.png) - -Per default, the casting detail is displayed on the second part of the screen. -Use the dropdown menu to choose the concept. - -![asset detail concept](../img/getting-started/asset_detail_concept.png) - -Once in the concept section, you will see all the concepts created for this asset. You can filter them per status. - -![asset detail concept list](../img/getting-started/asset_detail_concep_listt.png) - - -## Create a Shot -### Create Your First Shot - -It's time to create **shots** for your production. - -::: warning -**Shots** are linked to a **Sequence** which is also linked to an **Episode** in Kitsu. -This means you must create an episode, then a sequence, and populate this sequence with shots. -::: - -Navigate to the **Shots** page using the dropdown menu and click on **SHOTS**. - -![Drop Down Menu Shot](../img/getting-started/drop_down_menu_shot_tv.png) - -Click on the **Add Shots** button to start with shot creation. - -![First Add Shots](../img/getting-started/new_shot.png) - -::: warning -When you create a shot, the task workflow you have designed will be applied, and all the tasks will be created at the same time as the shot. - -[See Getting Started With Kitsu](../configure-kitsu/README.md) -::: - -A new pop-up opens for the creation of the shots. -You can now create Episodes, sequences, and shots. - -Kitsu provides a first episode as an example **E01**; you can select it and add to it your first sequence, for instance, sq01, -then click **Add**. - -Now, you can see your sequence has been created. To add shots to this sequence, you need to select it and create your shots. - -For example, type sh0010 in the shots column, then click **Add**. -You can also define padding for your shots. - -::: tip -If you want to name your shots ten on ten as SH0010, SH0020, SH0030, etc, set the **Shot Padding** as 10 -::: - -![Manage Shots](../img/getting-started/manage_shot_tv.png) - -You can now see that new shots are listed and linked by their sequence, and the shelves are linked to the Episode. -You have created the first shot of the first sequence of the first Episode. - -Now, let's add more shots than just one! As you can see, the box already contains your name -code but incremented, so you have to continue to click on **Add** to -create more shots. - -![Add Shots](../img/getting-started/add_shots.png) - -To add more sequences, go to the left part, type the name of your new sequence, and then click on **Add**. -Your second sequence is selected, and you can now add shots. - -You can follow the same process to add more episodes. - -Once you create a new episode, it will be selected and created sequentially. -Once the sequence is created, it will be selected, and you can create shots on this sequence. - -::: tip -If a shot is misplaced on a sequence, you have to edit the shot -![Edit Button](../img/getting-started/edit_button.png), and change the -sequence. - -**But you can't change the Episode of a shot.** - -![Edit Shot Change Sequence](../img/getting-started/edit_shot.png) - -![Change Sequence](../img/getting-started/change_seq.png) -::: - - - - -## Create Shots from an EDL File - -You may already have your shots list ready in an **EDL** file. With Kitsu, you can directly import your **EDL** file to create the sequence, shot, number of frames, and Frame in and out. - -On the **Global Shot Page**, you will see an **Import EDL** button. - -![Import EDL Button](../img/getting-started/import_edl_button.png) - -You can select the naming convention of the video file used during the editing on the pop-up. - -![Import EDL Menu](../img/getting-started/import_edl_menu.png) - -It means the video clip on the editing is named as project_sequence_shot.extension. - -Here is an example of an EDL for the LGC production. - -![EDL Example](../img/getting-started/edl_example.png) - -The video files are named LGC_100-000.mov, which means LGC is the production name, 100 is the sequence name, and 000 is the shot name. - -You can import the EDL file once you are set with the naming convention. - -Then click on **Upload EDL**. - -Then Kitsu will create the shots. - -![EDL Shot Creation](../img/getting-started/edl_shot_creation.png) - -::: details Create Shots from a CSV Spreadsheet File -You may already have your shots list ready in a spreadsheet file. With Kitsu, you have two ways to import them; the first is to import a `.csv` file directly, and the second is to copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file. - -Then, return to the shot page on Kitsu and click the **Import** icon. -![Import Icon](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Import CSV File](../img/getting-started/import_csv_shot_tv.png) - -To see the result, click on the **Preview** button. - -You can check and adjust the name of the columns by previewing your data. - -NB: the **Episode** column is mandatory for a **TV Show** production. - -![Import Preview Data](../img/getting-started/import_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, all your shots are imported into Kitsu, and the task is created according to your **Settings**. - -![Import Result](../img/getting-started/import_result_shot.png) -::: - -::: details Create Shots by Copying / Pasting a Spreadsheet File -Open your spreadsheet, select your data, and copy them. - -![Copy Data](../img/getting-started/import_copypas_shot.png) - -Then, go back to the shot page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Paste CSV Data](../img/getting-started/import_pastcsvdata_shot_tv.png) - -You can paste your previously selected data and see the result with the **Preview** button. - -![Preview Data](../img/getting-started/import_pastcsvdata2_shot_tv.png) - -You can check and adjust the name of the columns by previewing your data. - -NB: the **Episode** column is only mandatory for a **TV Show** production. - -![Preview Data](../img/getting-started/import_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, all your shots are imported into Kitsu, and the task is created according to your **Settings**. - -![Import Result](../img/getting-started/import_result_shot.png) -::: - -### See the Details of a Shot - -If you want to see the details of a shot, click on its name. - -![Shot Detail](../img/getting-started/shot_detail.png) - -A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. -You can navigate through each by clicking on the name of the tabs. - -![Shot Detail Page](../img/getting-started/shot_detail_page_tv.png) - -You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. - -![Shot Detail Page](../img/getting-started/shot_detail_page_panel_tv.png) - -You can also access the **Casting**, - -![Asset Detail Casting](../img/getting-started/shot_detail_page_casting_tv.png) - -The **Schedule** is available if you have previously filled out the task type page data. If the data have already been filled out, you will be able to modify them directly here. - -![Asset Detail Casting](../img/getting-started/shot_detail_page_schedule_tv.png) - -the **Preview Files** uploaded at various task types, - -![Asset Detail Casting](../img/getting-started/shot_detail_page_file_tv.png) - -And the **Timelog** if people have filled out their timesheet on the tasks of this asset. - -![Asset Detail Casting](../img/getting-started/shot_detail_page_timelog_tv.png) - - - - - -## Update your shots - -You can update your shots at any point, change their names and sequences, modify their descriptions, and add any custom information you added to the global page. - -You can edit shots by going to the shot page, hovering over the shot you want to modify, and then clicking on the **edit** button -![Edit button](../img/getting-started/edit_button.png) (1) on the right side of the line. - -![Edit an asset](../img/getting-started/asset_edit01.png) - -To extend the description on the main shot page, click on the first words (2), and a pop-up with the full description will open. - - -::: details Update Shots Information with CSV Import -You can use the **CSV Import** to update your data as the **NB Frames**, **Frame IN**, **Frame Out**, or any custom **Metadata column**. - -You can update the **Assignation**and the **Status** of tasks and add a **Comment**. - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_shot.png) - -Then, go back to the shot page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_shot_tv.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_shot_tv.png) -  -You need to switch on the **Option: Update existing data**. -The updated shots will be in blue. - -  -NB: the **Episode** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/update_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, all your shots are imported into Kitsu, and the task is created according to your **Settings**. - -![Import data copy paste data](../img/getting-started/import_result_shot.png) -::: - - - -## Add more tasks after creating the shots -If you realize after creating the shots that the task is missing, you can still add them. - -First, ensure the missing task type is added to the settings page under the task type tab (otherwise, http://localhost:8080/tvshow/#update-your-shots)). - -Then go back to the shot page and click on + Add tasks. - -## Adding Frame Numbers and Ranges to Shots - -At this stage of production, the animatic should be complete. This means you have the duration (number of frames) and the frame range (Frame In and Frame Out) for each shot. You can input this information into the spreadsheet to ensure accurate frame calculation without any missing or redundant frames. - -::: warning -If you've manually created your shots and sequences, the Frame column might be hidden. To reveal it, you need to edit at least one shot and input the number of frames. Alternatively, if you've imported the number of frames via CSV/spreadsheet, the Frame column will be visible. -::: - -To add frame range information to shots, follow these steps: - -1. **Edit Shots:** Click on the edit button (![Edit button](../img/getting-started/edit_button.png)) located on the right side of the shot line. - - ![edit shot Change sequence](../img/getting-started/edit_shot.png) - -2. **Input Frame Range:** In the editing window, enter the In and Out frames for the shot, then save by clicking the Confirm button. - - ![Shot edit page](../img/getting-started/shot_edit.png) - - The frame range will now be displayed on the general spreadsheet of the shot page. - - ![Shot edit page](../img/getting-started/shot_framerange_global.png) - -3. **Fill Frame Information:** Once the Frames, In, and Out columns are unlocked, you can directly input data from the global shot page. Simply click on the case you want to fill in and add the data. - - ::: tip - If you input Frame In and Frame Out, Kitsu will automatically calculate the Number of Frames. - ::: - - ![Shot edit page](../img/getting-started/shot_framerange_global_edit.png) - -4. **CSV Import:** You can also utilize CSV Import to swiftly update your frame ranges. [Update Shots information with CSV Import](README.md#update-your-shots) - -5. **Access Shot History:** You can view the history of shot values, including frame ranges. - - ![Shot framerange detail](../img/getting-started/shot_framerange_detail.png) - - ![Shot Values History](../img/getting-started/shot_values_history.png) - - -## Creating Custom Metadata Columns - -To include additional information on the general spreadsheet pages, you'll need to create a custom **metadata column**. - -You might have extra details to add, such as **level of difficulty**, **weather**, **tags**, etc. All textual or numerical information can be stored in the custom metadata column. - -::: warning -Any Custom Metadata Column created in one episode will be applied to all episodes. -::: - -Follow these steps to create a custom metadata column: - -1. **Add Column:** Click on the **+** near the Name column. - - ![Metadata Column](../img/getting-started/add_column_custom.png) - -2. **Choose Type:** With the Type option, select how you want to store your information: - - **Text** - - **Number** - - **Checkbox** - - **List of Values** - - **List of Tags** - - **Checklist** - - ![Metadata Column detail](../img/getting-started/custom_column_detail.png) - - ::: warning - - **Text**, **Number**, and **Checkbox** allow you to add different information for each entity without prior planning. - - **List of Values**, **List of Tags**, and **Checklist** offer the same options for each entity and must be filled in advance. - - ![Metadata Column list](../img/getting-started/custom_column_list.png) - Type the list elements below Available values and confirm them by clicking on Add value. - ::: - -3. **Link to Departments:** Optionally, you can link the metadata column to one or several departments. This allows artists/supervisors to view it on their to-do page and in department-filtered views. - - ::: tip - To link a metadata column to a department, click on the department from the list and then click on **add** to apply it. - - Here, the VFX column is linked to two departments. - - ![Department metadata column filtered view](../img/getting-started/department_filtered_view_column.png) - ::: - - ::: details Edit Metadata Column - On the global page of the asset or the shot, click on the arrow to the right of your metadata column and select **Edit**. - - ![Metadata column Edit](../img/getting-started/custom_column_edit.png) - ::: - -4. **Fill Information:** You can input information directly on the global spreadsheet page. The cases are editable. - - ![Metadata Column detail](../img/getting-started/custom_column_list_edit.png) - - ::: tip - You can batch-modify the metadata column by selecting several entities on the left and then modifying your metadata column. - ::: - - ::: details Edit Manually - You can also modify the information manually by clicking the edit button (![Edit button](../img/getting-started/edit_button.png)). - - You'll see a new line on the edit pop-up where you can select the information from the list, enter free text or a number, check a box, or use a checklist, depending on your previous choice. - - Remember to press the Confirm button when you're done. - - ![Metadata Column detail](../img/getting-started/edit_asset_custom.png) - ::: - -5. **Edit or Delete:** To edit or delete the metadata column, go to the general spreadsheet page. Next to the name of your metadata column, click on the arrow. - - ::: tip - You can also sort your global page with this new column by clicking the arrow on the right of the column name to open its menu and then selecting Sort By. - - You can also Stick the metadata column to the left. - ::: - - -## Create a Sequence - -In Kitsu, you can also track tasks at the **Sequence** Level. -It's especially useful when -you have macro tasks to track, like Story and color Board, Color Grading, etc. - -Use the navigation menu to go to the **Sequences** page. - -![Navigation Sequences](../img/getting-started/drop_down_menu_sequence_page_tv.png) - -::: warning -This new page behaves like the asset and shot global page. - -To use this page, You first need to create dedicated task types on your **Global Library** - with the **Sequence** attribute. - - [See How to Create a New Task Type](../configure-kitsu/README.md#studio-workflow-create-a-new-task-type) - -Once you have created your **Task Types**  on your **Global Library**, add them to your -**Production Library** (setting page). -::: - -Once your task types are ready on the settings page, you need to create a sequence (the same as the assets or shots). - - - - -This new page behaves like the asset and shot global page. You can add your edits with the **+ New Sequence** button. - -You can assign tasks, do the review, change status, etc. - -You can add a metadata column, fill in the description, etc. - - -::: tip -You can create a sequence directly from here (**+New sequence** button) or create a sequence linked to your shots from the global shot page. -::: - - -You can **Rename** and **Delete** the Sequence entity on this page, as for the asset and shot entity. - -If you click on the name of a sequence, you will see the detail page of this sequence. - -![Sequence detailed page](../img/getting-started/sequence_detail_page_tv.png) - -On the detailed page, you have access to the sequence casting. -You can see all the assets used in the whole sequence. - -You can also access the schedule, Preview Files, Activity, and Timelog of the sequence **tasks**. - - - -## Create an Edit - -You can track tasks at the **Edit** level in Kitsu. - -It's especially useful when you have several edits to track through several validation steps. For example, you can track your whole movie, several trailers, and the First Edit, Fine Edit, Mix, etc. - -::: warning -By default, the **Edit** page will not be displayed until you have task types for it in your **production library** (setting page). - -[See How to Create a New Task Type](../configure-kitsu/README.md#studio-workflow-create-a-new-task-type) -::: - -To use this page, you need to first create a dedicated task type in your **Global Library** with the **Edit** attribute. - -Once you have created your **Task Types** in your **Global Library**, add them to your **Production Library**. After this, you will see the **Edit** option displayed in the navigation drop-down menu. - -![Navigation Edit](../img/getting-started/drop_down_menu_edit_tv.png) - -This new page behaves like the asset and shot global page. You can add your edits with the **+ New edit** button. - -You can assign tasks, conduct reviews, change status, etc. - -You can also add a metadata column, fill in the description, etc. - -::: tip -Depending on your deliveries, you can also change the resolution per **Edit**. -::: - -::: warning -The detail page is different from the other entities. - -As **Edit** focuses on a specific long video, the detail page resembles the comment detail page more closely. -::: - -You can **Rename** and **Delete** the Edit entity on this page, similar to the asset and shot entity. - -## Create a Breakdown List - -Filling out the breakdown helps you with the assembly of the shots. With the -breakdown, you have all the details of the assets you need to add to create your -shot, and we are sure to omit nothing. - -On the dropdown menu, choose **BREAKDOWN**. - -![drop down Menu breakdown](../img/getting-started/drop_down_menu_breakdown_tv.png) - -On the left of the breakdown page is the episode/sequence/shot menu (1); you can choose between those you created. They are the right part of -the screen; all the assets created are available for this production (main pack and episodes) (3). Moreover, in -the middle section, it is your selection for the shot (2). - -![Breakdown page](../img/getting-started/breakdown_general_empty.png) - -So now you have to select the shot you want to cast. - -You can display the assets as text if you don't have thumbnails yet or enlarge the -thumbnails size. - - -![Breakdown page text display](../img/getting-started/breakdown_text_display.png) - -You may also realize an asset needs to be added to the list during your breakdown. - -You can create a new asset directly from the breakdown page. Click the **+** on the right of the **All available assets**. - -![Breakdown page create asset](../img/getting-started/breakdown_create_asset.png) - - -You can also choose multiple shots at once. Click on the first shot, hold the **shift** key, and click on the last shot of your selection. - -![Breakdown page global bulk select](../img/getting-started/breakdown_general_bulk_select.png) - -Then click on the assets you want -to assign: characters, backgrounds, ... from the right part (3). -If you have selected multiple shots, your selection is applied to the numerous shots. - -Copy a shot filled with assets and paste this asset selection into another shot. - -You can see a **+1** or **+10** when you pass over the asset. It's the number -of times you add this asset, and you can click on it as many times as you need. - -![Breakdown add asset](../img/getting-started/breakdown_add_asset.png) - -You can also link all your assets to episodes on a TV show without specifying a sequence or shot. - -![Breakdown episode asset](../img/getting-started/breakdown_episode.png) - -This way, you can link all your assets to one or several episodes before the storyboard/animatic stage. - -You can now see the asset in the middle of the screen (2). Next -to the asset's name is the number of times it has been added. In this -example, we have added the character asset Llama two times. - - -If you add an asset twice by mistake, you must go to the screen's middle part to select assets for this shot (2). From there, click on -**-1**. When you finish this shot, go on with the other shots. -Your selection is automatically saved. - -![Breakdown remove asset](../img/getting-started/breakdown_remove_asset.png) - -If a new asset is created during the storyboard, return to the asset -page (using the dropdown menu) and create the needed assets. The tasks previously created are applied immediately to these new -assets. However, you have to do the assignment, and then you can -continue with the breakdown. - -Now, your **Breakdown** page should look like this. - -![breakdown add asset bulk](../img/getting-started/breakdown_general_bulk_select_full.png) - -You can also make a breakdown list for your assets if you need to assemble them and keep track of the separate parts. - -On the top left corner of the screen, choose **asset** in the dropdown menu below **FOR**. - -![Breakdown asset menu](../img/getting-started/breakdown_asset_menu.png) - -You can now access a second dropdown menu to choose your asset type: **Character**, **Environment**, **Props**, **FX**, ... - -![Breakdown asset type](../img/getting-started/breakdown_asset_menu_type.png) - -You can complete the asset breakdown page the same way you did the shots. First, select one or more assets on the left part and then add the right part's elements. - -::: details Create a Breakdown List from a CSV File - -You may already have your breakdown list ready in a spreadsheet file. With Kitsu, you have two ways to import it: the first is to import a .csv file directly, and the second is to copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file following Kitsu's recommendation. - -Click on the **import** button ![Import button](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Breakdown import csv file](../img/getting-started/import_breakdown_csv_file_tv.png) - -To see the result, click on the **Preview** button. - -You can check and adjust the name of the columns by previewing your data. - -NB: the **Episode** column is only mandatory for a **TV Show** production. - -![Breakdown import Preview](../img/getting-started/import_breakdown_preview_tv.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, you have your breakdown imported into Kitsu. - -![Breakdown import Preview](../img/getting-started/breakdown_general_bulk_select_full.png) -::: - -::: details Create a Breakdown List by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_breakdown_tv.png) - -Then, go back to the breakdown page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started//import_breakdown_csv_file_tv.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_breakdown_preview_tv.png) -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **Episode** column is mandatory for a **TV Show** production. - - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, all your assets have been imported into Kitsu. - -![Import data copy paste data](../img/getting-started/breakdown_general_bulk_select_full.png) -::: - -## Casting from the Asset Library -It is also possible to cast assets from the global **Asset Library** into your production. This allows you to cast an already existing asset, without the need to re-create it for each production. - -![Asset Library Display](../img/getting-started/asset_library_display.png) - -To see assets outside of your production from the asset library, click the **Display Library** Button (1) - -Assets from the global asset library will appear, and will be highlighted with a yellow boarder (2). They can then be cast in your breakdown exactly the same as other assets. - -![Asset Library View](../img/getting-started/asset_library_view.png) - -Back on your productions asset page, you can choose to display global assets that have been cast in your production by toggling the **Display Library** button (1). These assets will be highlighted in yellow, indicating that they originate from the global asset library, and not your current production. (2). - -## Introduction to Asset State: Ready For - -Most of the time, you don't need to wait for an asset's tasks to be approved to use it on a shot task. - -For example, when an asset is approved at the **Concept** stage, it can be used for the **Storyboard** stage. -Then, when it's approved at the **Modeling** stage, you can use it for the **Layout** stage and so on. - -That's exactly what the asset state **Ready For** is doing: it lets you know the state of an asset's tasks and compares its usability for the shot tasks. - -Now that we have filled out our breakdown, we know exactly which asset is used on every shot. - -First, we need to define an asset's state relative to its task status. You can modify the **Ready for** by clicking on a cell. You will see a dropdown menu with the shot task. - -![Asset Status](../img/getting-started/asset_status.png) - -::: tip -You can use the **automations** to do the heavy lifting for you. - -You can set automation with the **ready for** trigger. - -[See How to Create Status Automation](../configure-kitsu/README.md#automation) - -::: - -Now that we have changed some asset states to **Ready for**, we can see the result on the shot page. - -You can notice that some white boxes are now **Green**: all the assets cast in this shot are ready for this specific task. - -![Asset Status](../img/getting-started/asset_status_box_tv.png) - -If you see the white box, Kitsu will display how many assets are ready for this task. - -![Asset Status](../img/getting-started/asset_status_empty_tv.png) - -::: tip -No assets are cast for this shot if you don't see any boxes. -::: -  -Then, you can click on the shot's name to go to its detail page. -Then, you will see all the assets cast in this shot and their status. - -![Asset Status](../img/getting-started/asset_status_detail_tv.png) - -It's the fastest way to know if you can start a shot for a specific task. - diff --git a/docs/videogame/README.md b/docs/videogame/README.md deleted file mode 100644 index c8f4d66c54..0000000000 --- a/docs/videogame/README.md +++ /dev/null @@ -1,1201 +0,0 @@ -# Create a Video Game Production - -Now that you have designed your workflow in Kitsu and invited more people, it's time to create your production. - -Click on the **Create a new -production** button. - -![Create a production](../img/getting-started/create_production.png) - -Enter your production name, choose **short** as the **type**, and then select your production style (2D, 3D). - - -Then, you must fill in technical information, such as the number of FPS, the Ration, and the Resolution. - -All these data will be used when Kitsu re-encodes the video previews uploaded. - -Then, you need to define your production's start and end dates. - -![Add a production](../img/getting-started/add_production.png) - -You can define your production workflow in the next part, 3 to 6. - - - -You need to select your asset task type (3), map task type (4), task status (5), and asset types (6). - -![Add a production Pipeline](../img/getting-started/add_production_pipe.png) - - -::: tip -To create your **Production Workflow**, you will select Task Types from the Global Library. - -If you realize you missed some Task Types, you can create them later. - -See the [Studio Workflow](../configure-kitsu/README.md#studio-workflows) section. -::: - -Then, 7 and 8 are the option parts. If you already have a spreadsheet with your asset/map. - -See the **import CSV** section for more details. - -[Import asset](../videogame/README.md#create-an-asset) - -[Import map](../videogame/README.md#create-maps-from-an-edl-file) - -Validate everything with the ![All done](../img/getting-started/all_done_go.png) button. - - - - - - -## Introduction to the Kitsu Global Page - - - -Welcome to Kitsu's global asset page. - -Let's take a look around. - -![Presentation of the global page](../img/getting-started/presentation_global.png) - -On the top part (1), you have the **global navigation**, which is always visible throughout all the production pages. - -**From left to right:** - - -### Main Menu - -By clicking on the top left button, Kitsu![Main menu button](../img/getting-started/main_button.png) (or your Studio logo), you will open the Main Menu. - -On the Main Menu, you will find direct access to your assigned tasks, productions, global and team schedules, the workflow customization page, and the Kitsu settings. - -::: details Main Menu Details -**WORKSPACE** -- My Tasks: your assigned tasks -- My Checks: All the tasks with status **Is Feedback Request** depending on your department(s) -- My Productions: Get back to the selection on the production page. - - -**STUDIO** -- Productions -- People -- Timesheets -- Main Schedule -- Team Schedule -- All tasks -- News Feed -- Entity Search - - -**ADMIN** -- Departments -- Task Types -- Asset Types -- Custom Actions -- Automation -- 3D Backgrounds -- Bots -- Settings -- Logs - -::: warning Permission Visibility -The WORKSPACE section is enabled for all permissions except My Checks, which artists do not see. - -Artist (and above) can also see their own **Timesheets**, and have access to the **Entity Search** -::: - -### Navigation - -You will see the navigation dropdown menu on the right of the main menu icon. - -![Presentation of the global page](../img/getting-started/presentation_global_header.png) - - -You can choose between production. The name of the actual production and actual page are always displayed. - -You can use the dropdown menu to navigate from production to production (if you have several). - -Once you have selected a production, the next dropdown menu will help you navigate through the different pages of this production. - - -::: details Navigation details -The first section is about the tracking of your tasks -- Assets -- maps -- level -- Edits (If you have created specific tasks) - -The second section is more about the side of the production -- Concepts -- Breakdown -- Playlists -- News feed - -The third section is about statistics -- level Stats -- Asset Type Stats - -The fourth section is related to Team Management -- Schedule -- Quotas -- Team - -The fifth section is about the settings of your production -- Settings - -::: tip -You start with the asset page, but you can change your production homepage to other entities (see setting page) -::: - -::: warning -If you realize you need an extra level of navigation as **chapters**, You need to change your production Type to a **TV Show**. - -If, on the contrary, you realize you don't need the **assets** or the **maps**, you need to switch your production type to **Only Assets** or **Only Maps**. -::: - -### Global Search, News, Notification and Documentation -You have the global search on the right of the navigation dropdown menu. It's a quick access search that will display the four first results. If you need more results and filtering options, see the **Entity Search** page. - - -The next icon ![News](../img/getting-started/canny.png) is a direct link to our news and feedback page. - -You can see all the new features with an animated gif and also add suggestions about the next feature you want to see in Kitsu. - -Next, the bell icon ![Notification](../img/getting-started/notification_icon_on.png) displays your notifications (assignments, comments, tags). The number of unread notifications will be shown on the bell icon. There are various filters to help you stay on top of updates and revisit important ones when needed. You can easily mark notifications as read or unread or quickly filter by watching/non-watching to focus on what matters most and declutter your feed. - -The last icon before your avatar is the documentation button. -![documentation button](../img/getting-started/documentation_button.png), that you are reading right now! - - -### Personal Settings -You can click on your avatar to open your menu (setting, documentation, etc.). - -![Profile enlarged](../img/getting-started/profil_enlarge.png). - -## The Tasks Spreadsheet - -### Entity spreadsheet - -The second part of the screen is common to all the entities (asset, map, level, Edit). This is the global tasks spreadsheet. - -Here, you see the status, assignation, priority, etc, for each task. - -::: tip -The first line and column header of the spreadsheet always appear at the top of the page, even if you scroll down. - -You can also **Stick** other columns to keep them visible at all times. -::: - -### Filters - -The first element on the left is the filter box. For simple filtering, you can type anything you want, such as level, asset type, etc. - -If you need more advanced filtering, please use the filter builder button. - -![Filter Builder](../img/getting-started/filter_builder.png) - -You can then save all the filters and use them as your pages. - -### Simplify the display - -On the right part of the screen, there are some buttons (from left to right) to hide or display the assignation, hide or display the extra column, enlarge or reduce the thumbnail, -![display and Hide option](../img/getting-started/display_hide_option.png) - - -### Import / Export -batch import thumbnail ![batch import thumbnail](../img/getting-started/add_thumbnails.png), and finally import ![Import button](../img/getting-started/import.png) or export ![export button](../img/getting-started/export.png) data. - - - -### Metadata column -Below, you have the name of the column. the (+) next to **Name** ![Add metadata column](../img/getting-started/add_column_custom.png) is here to create a new metadata column. Then, you have the name of the task type column. - -### Customize the view -On the far right of the screen, next to the scroll bar, is the option to hide and display a text column - -![Display/hide text column](../img/getting-started/visible_column_detail.png). - - -### Sum-up of your view -The last part (4), at the bottom of the screen, is the sum-up of your displayed page. It means the sum-up will update if you filter the page. - -You can see the number of elements (assets or maps), the total number of estimated days, and the total number of days already spent. - - - -## Create an Asset -### Create your first asset -So, now that we have created our production and have a general grasp of the Kitsu interface, it's time to create our very first asset. - -On the asset page, click on **Add assets**. - -![Asset page first time](../img/getting-started/add_assets_first.png) - -::: warning -When you create an asset, your task workflow will be applied, and **all the tasks will be created simultaneously as the asset**. -::: - -A pop-up window opens: - -It asks you to choose the **Asset Type** (1). -If you didn't add a new asset type, Kitsu will provide you with examples such as Characters, Environment, FX, Props, etc. -Let's start with a character. - -::: tip -You can also customize the asset type list and the tasks pipeline. See the guide ( -[Customization of the workflow](../configure-kitsu/README.md#asset-types)) for more details -::: - -We give it a **Name** (2) and enter a description that helps the Artist know what to do and quickly identify the asset. - -Click on **Confirm and stay** if you have multiple assets to create. - - -![Create an asset](../img/getting-started/add_asset_popup.png) - -You can change the asset type and keep adding assets. - -::: tip -The newly created asset appears in the background whenever you click on **Confirm and stay**. -::: - -After adding your last asset, click -on **Confirm**. It will create the asset and close the window. - -::: tip -If you click on **Confirm and stay, ** realize you don't have more assets to add, and click on **Close, ** the window will be canceled. -::: - -![Global asset page](../img/getting-started/asset_edit.png) - -You will also see the tasks that are selected for your assets workflow are created at the same time. - - -If you need to add more **Assets**, click the **+ Create assets** button. - -::: details Create Assets from a CSV Spreadsheet File -You may already have your asset list ready in a spreadsheet file. -With Kitsu, you have two ways to import them; the first is to import a `.csv` file and copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file. - -Then, go back to the asset page on Kitsu and click on the **Import** icon. -![Import Icon](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Import csv file](../img/getting-started/import_csv_asset.png) - -To see the result, click on the **Preview** button. -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **chapter** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, you have imported all your assets into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_asset.png) -::: - -::: details Create Assets by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_asset.png) - -Then, go back to the asset page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_asset.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_asset.png) -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **chapter** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, you have imported all your assets into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_asset.png) -::: - -### See the Details of an Asset - -To see an asset's detail, click on its name. - -![Asset detail](../img/getting-started/asset_detail.png) - -A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. - - -![Asset detail page](../img/getting-started/asset_detail_page.png) - -You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. - - -![Asset detail page](../img/getting-started/asset_detail_page_panel.png) - - - -You can also access the **Casting**, - -![Asset detail casting](../img/getting-started/asset_detail_page_casting.png) - -**concept** linked to this asset, - -![Asset detail casting](../img/getting-started/asset_detail_page_concept.png) - -The **Schedule** is available if you have previously filled out the task type page data. If the data have already been filled out, you will be able to modify them directly here. - -![Asset detail casting](../img/getting-started/asset_detail_page_schedule.png) - -the **Preview Files** uploaded at various task types, - -![Asset detail casting](../img/getting-started/asset_detail_page_file.png) - -And the **Timelog** if people have filled out their timesheet on the tasks of this asset. - -![Asset detail casting](../img/getting-started/asset_detail_page_timelog.png) - - - -## Add more tasks after creating the assets - - -If you realize **after** creating the assets that the task is missing, you can still add them. - -First, be sure that the missing task type is added to the settings page under the task type tab. - -Then go back to the asset page and click on **+ Add tasks** - - - - - - - ### Update your assets -You can update your assets at any point, change their name and asset type, modify their description, and add any custom information you added to the global page. - -You can edit assets by going to the asset page, hovering over the asset you want to modify, and then clicking on the **edit** button -![Edit button](../img/getting-started/edit_button.png) (1) on the right side of -the line. - -![Edit an asset](../img/getting-started/asset_edit01.png) - -To extend the description on the main asset page, click on the first words (2), and a pop-up with the full description will open. - - -::: details Update Assets with the CSV Import -You can use the CSV import to update your data quickly. - -You can update the **type** of an asset, the **Assignation**, the **Status** of tasks, and add a **Comment**. - -You need to switch on the option **Update existing data**. Then the lines that will be updated -will be highlighted in blue. - -![Import data copy paste data](../img/getting-started/import_update_asset.png) - -::: - - -::: details Update Assets by Copying / Pasting a Spreadsheet. File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_asset.png) - -Then, go back to the asset page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_asset.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_asset.png) -  -You can check and adjust the name of the columns by previewing your data. - -NB: the **chapter** column is only mandatory for a **TV Show** production. -  -You need to switch on the option **Update existing data**. Then, the lines that will be updated -will be highlighted in blue. - -![Import data copy paste data](../img/getting-started/import_update_asset.png) - -Now, you have imported all your assets into Kitsu and created the task according to your Settings. - -![Import data copy paste data](../img/getting-started/import_result_asset.png) -::: - - -## Create a Concept -### Upload a Concept - -To create a **Concept**, go to the **Concept** page with the navigation menu. - -![Concept Menu](../img/getting-started/menu_concept.png) - -To upload a concept, click the **Add a new reference to concepts** button. - -You can upload one or several concepts at the same time. - -![Concept empty page](../img/getting-started/concept_empty_prod.png) - -Once you upload your previews, the concept page will look like this. - -![Concept filled page](../img/getting-started/concept_filled_prod.png) - - -You can interact with the concept in two ways: click on the picture to see an enlarged view. -The second is to click on the status part to open the **Comment Panel** on the right. - -On the comment panel, you have two options: link a concept to an existing asset or delete it. -You can also comment and change the status of the asset. - -The idea is to have one version per **Concept**. If it's not approved, you need to upload a new concept, not to have multiple versions of the same concept. - -One concept is one task. - - -![Concept options](../img/getting-started/concept_options.png) - - -### Link a Concept to an Asset - -Once concepts are uploaded, you can link them to the assets. - -You can see the links on the status part of the assets. - -Click on the status part of the concept; it will open the comment panel on the right. - -![Concept Comment Panel](../img/getting-started/concept_comment_panel.png) - -On the comment panel, you have two options at the top: Link a concept to an asset and delete the concept. - -To link an asset, click on the **Link** ![Link button](../img/getting-started/link_icon.png) button. - -Kitsu will display all the **Assets** available to link with the concept uploaded. - -Kitsu will list the linked assets at the top of the comment panel. For now, there are No Links. - - -![Concept link](../img/getting-started/concept_link.png) - -To link an asset, you have to click on it. The name of the linked assets will appear at the top of the screen but also under the preview of the concept. - - -![Concept asset linked](../img/getting-started/concept_asset_linked.png) - -Once a concept is linked to an asset, it can be seen on the asset's detail page. - -Return to the asset page, and click on the asset name you want to see the concept. - -![Detail asset page](../img/getting-started/asset_detail_page.png) - -Per default, the casting detail is displayed on the second part of the screen. -Use the dropdown menu to choose the concept. - -![asset detail concept](../img/getting-started/asset_detail_concept.png) - -Once in the concept section, you will see all the concepts created for this asset. You can filter them per status. - -![asset detail concept list](../img/getting-started/asset_detail_concep_listt.png) - - -## Create a map -### Create your first map - -It's time to create **maps** for your production. - -::: Warning -maps are linked to levels in Kitsu. -This means you need to first create a level and then populate this level with maps. -::: - -You need to go to the **maps** page: you can use the -dropdown menu and click on the **mapS**. - -![Drop down menu map](../img/getting-started/drop_down_menu_shot.png) - -Click on the **Add maps** button to start with the map creation. - -![First add maps](../img/getting-started/new_shot.png) - -::: warning -When you create a map, the task workflow you have designed will be applied, and all the tasks will be created at the same time as the map. -::: - -A new pop-up opens for the creation of the maps. -You can now create the levels and the maps. - -Enter the first level, for instance, sq01, -then **add**. - -Now, you can see your level has been created. You need to select the maps you want to add to this level and create them. - -For example, type sh0010 on the maps column, then again **add**. -You can also define Padding for your maps. - -::: tip -If you want to name your maps ten on ten as SH0010, SH0020, SH0030, etc, set the **map Padding** as 10 -::: - -![Manage maps](../img/getting-started/manage_shot.png) - -You can now see that new maps are listed and linked by their level. -You have created the first map of the first level. - -Now, let's add more maps than just one! As you can see, the box already contains your name -code but incremented, so you have to continue to click on **add** to -create more maps. - -![Add maps](../img/getting-started/add_shots.png) - -To add more levels, go to the left part, type the name of your new level, and then click on **add**. -Your second level is selected, and you can now add maps. - -::: tip -If a map is misplaced on a level, you have to edit the map -![Edit button](../img/getting-started/edit_button.png), and change the -level. -![edit map Change level](../img/getting-started/edit_shot.png) - -![Change level](../img/getting-started/change_seq.png) -::: - - -## Create maps from an EDL File -You may already have your maps list ready in an **EDL** file. -With Kitsu, you can directly import your **EDL** file to create the level, map, and several frames, Frame in and frame out. - -On the **Global map Page**, you will see an **Import EDL** button. - -![Import EDL Button](../img/getting-started/import_edl_button.png) - -You can select the naming convention of the video file used during the editing on the pop-up. - -![Import EDL Menu](../img/getting-started/import_edl_menu.png) - -It means the video clip on the editing is named as project_level_map.extension. - -Here is an example of an EDL for the LGC production. - -![EDL Example](../img/getting-started/edl_example.png) - -The video files are named  LGC_100-000.mov, which means LGC is the production name, 100 is the level name, and 000 is the map name. - -Once you are set with the naming convention, you can import the EDL file. - -Then click on **Upload EDL** - -Then, Kitsu will create the maps. - -![EDL map creation](../img/getting-started/edl_shot_creation.png) -::: - -::: details Create maps from a CSV Spreadsheet File -You may already have your maps list ready in a spreadsheet file. -With Kitsu, you have two ways to import them; the first is to import a `.csv` file directly, and the second is to copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file. - -Then, go back to the map page on Kitsu and click on the **Import** icon. -![Import Icon](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Import csv file](../img/getting-started/import_csv_shot.png) - -To see the result, click on the **Preview** button. -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **chapter** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, all your maps are imported into Kitsu, and the task is created according to your **Settings**. - -![Import data copy paste data](../img/getting-started/import_result_shot.png) -::: - - -::: details Create maps by Copying / Pasting a Spreadsheet File -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_shot.png) - -Then, go back to the map page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_shot.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_shot.png) -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **chapter** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, all your maps are imported into Kitsu, and the task is created according to your **Settings**. - -![Import data copy paste data](../img/getting-started/import_result_shot.png) -::: - -### See the Details of a map - -If you want to see the details of a map, click on its name. - -![map detail](../img/getting-started/shot_detail.png) - -A new page opens with the list of the tasks, the assignation, and the status newsfeed on the right. -You can navigate through each by clicking on the name of the tabs. - -![map detail page](../img/getting-started/shot_detail_page.png) - -You can click on the status of each task to open the comment panel and see the history of the comments and the different versions. - - -![map detail page](../img/getting-started/shot_detail_page_panel.png) - - -You can also access the **Casting**, - -![Asset detail casting](../img/getting-started/shot_detail_page_casting.png) - - -The **Schedule** is available if you have previously filled out the task type page data. If the data have already been filled out, you will be able to modify them directly here. - -![Asset detail casting](../img/getting-started/shot_detail_page_schedule.png) - -the **Preview Files** uploaded at various task types, - -![Asset detail casting](../img/getting-started/shot_detail_page_file.png) - -And the **Timelog** if people have filled out their timesheet on the tasks of this asset. - -![Asset detail casting](../img/getting-started/shot_detail_page_timelog.png) - - - - -## Add more tasks after creating the maps -If you realize after creating the maps that tasks are missing, you can still add them. - -First, be sure that the missing task type is added to the settings page under the task type tab. - -Then go back to the map page and click on + Add tasks. - - -### Update your maps - -You can update your maps at any point, change their name and level, modify their description, and add any custom information you added to the global page. - -You can edit maps by going to the map page, hovering over the map you want to modify, and then clicking on the **edit** button -![Edit button](../img/getting-started/edit_button.png) (1) on the right side of the line. - -![Edit an asset](../img/getting-started/asset_edit01.png) - -To extend the description on the main map page, click on the first words (2), and a pop-up with the full description will open. - - -::: details Update maps Information with CSV Import -You can use the **CSV Import** to update your data as the **NB Frames**, **Frame IN**, **Frame Out**, or any custom **Metadata column**. - -You can update the **Assignation**, and the **Status** of tasks and add a **Comment**. - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_shot.png) - -Then, go back to the map page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started/import_pastcsvdata_shot.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_pastcsvdata2_shot.png) -  -You need to switch on the **Option: Update existing data**. -The updated maps will be in blue. - -  -NB: the **chapter** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/update_preview_data_shot.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, all your maps are imported into Kitsu, and the task is created according to your **Settings**. - -![Import data copy paste data](../img/getting-started/import_result_shot.png) -::: - - - -## Add the number of Frames and Frame ranges to the maps - -At this stage of the production, the animatic should be done. This means you have -the length (**number of frames**, **Frame range In**, and **Frame range Out**) for each map. You can -add this information to the spreadsheet. This way, you are sure that all -the frames are calculated and none are missing or over-computed. - -::: warning -If you have created your maps and level by hand, -the **Frame** column will be hidden. You must edit at least one map and fill in the number of frames to display the **Frame** column. -The column will be displayed if you have created your maps and imported the number of frames with a CSV/spreadsheet. -::: - - - -You need to edit the maps to fill in the frame range information. Click on the -edit button ![Edit button](../img/getting-started/edit_button.png) on the right -side of the map line. - -![edit map Change level](../img/getting-started/edit_shot.png) - -On the new window, you can enter the maps **In** and **Out**. Then, save by clicking the **Confirm** button. - - - -![map edit page](../img/getting-started/shot_edit.png) - -Now, the frame range appears on the map page's general spreadsheet. - -![map edit page](../img/getting-started/shot_framerange_global.png) - -Now that you have unlocked the **Frames**, **In**, and **Out** columns, you can fill them -directly from the global map page. - -Click on the case you want to fill in and add the data. - -::: tip -If you enter the **Frame In** and **Frame Out**, Kitsu automatically calculates the **Number of Frame**. -::: - -![map edit page](../img/getting-started/shot_framerange_global_edit.png) - - -You can also use the **CSV Import** to update your frame range quickly. - [Update maps information with CSV Import](../videogame/README.md#update-your-maps) - -You can also access the map values history. - -![map framerange detail](../img/getting-started/shot_framerange_detail.png) - -![map Values History](../img/getting-started/shot_values_history.png) - - -## Create Custom Metadata Columns - -To add more information on the general spreadsheet pages, you must create a custom **metadata column**. - -You may have extra information to add to your pages, such as the **level of difficulties**, **Weather**, **Tag**, etc. You can store all text (or number) information in the custom metadata column. - - -Click on the **+** near the Name column. - -![Metadata Column](../img/getting-started/add_column_custom.png) - - - -With the **Type** option, you can choose how you want to store your information: -- a free **Text**, -- a **Number**, -- a **Checkbox**, -- a **List of value**, -- a **List of tags**, -- a **Checklist**. - -![Metadata Column detail](../img/getting-started/custom_column_detail.png) - -::: warning -The **Text**, **Number**, and **Checkbox** allow you to add different information for each entity. You don't have to plan it first. - -The **List of value**, **List of tags**, and **Checklist** give you the same choice for each entity. Moreover, it has to be filled now. - -![Metadata Column list](../img/getting-started/custom_column_list.png) - -Type the list elements below **Available values**, and confirm them by clicking on **Add value**. -::: - -You can also link the **metadata column** to one or several **departments**. - -::: tip -Link a metadata column to a department. The artists/supervisors will see it on their to-do page and in the department-filtered view. - -You can link the metadata column to one or more departments. Click on the department from the list and then click on **add** to be effective. - -Here, the VFX column is linked to two departments. - -![Department metadata column filtered view](../img/getting-started/department_filtered_view_column.png) - -::: - -::: details Edit meta column -On the asset's global page or the map, click on the arrow to the right of your metadata column and click on **Edit**. - -![Metadata column Edit](../img/getting-started/custom_column_edit.png) -::: - - -You can fill in this information directly on the global spreadsheets page. -The cases are editable. - -![Metadata Column detail](../img/getting-started/custom_column_list_edit.png) - -::: tip -You can batch-modify the metadata column by selecting several entities on the left and then modifying your metadata column. -::: - -::: details Edit by hand -You can also modify the information with the edit button ![Edit button](../img/getting-started/edit_button.png). - -You now see a new line on the edit pop-up. You can select the information from the list, -alternatively, enter the free text or number, check a box, or use the checklist, depending on your previous choice. - -Remember to press the **Confirm** button when you are done. - -![Metadata Column detail](../img/getting-started/edit_asset_custom.png) -::: - -Go to the general spreadsheet page if you need to edit or delete the metadata column. -Nearby the name of your metadata column, click on the arrow ![Metadata Column detail](../img/getting-started/arrow.png). - -::: tip -You can **sort** your global page with this new column. Click the arrow on the right of the column name to open his menu. Then click on **Sort By**. - -You can also **Stick** the metadata column to the left. -::: - - -## Create a level - -In Kitsu, you can also track tasks at the **level** Level. -It's especially useful when -you have macro tasks to track, like Story and color Board, Color Grading, etc. - -Use the navigation menu to go to the **levels** page. - -![Navigation levels](../img/getting-started/drop_down_menu_sequence_page.png) - -::: warning -This new page behaves like the asset and map global page. - -To use this page, You first need to create dedicated task types on your **Global Library** - with the **level** attribute. - -See the **Creating a New Task Type** Section to create a new **Task Type**. - -[Creating a New Task Type](../configure-kitsu/README.md#task-types) - -Once you have created your **Task Types**  on your **Global Library**, add them to your -**Production Library** (setting page). -::: - -Once your task types are ready on the settings page, you need to create a level (the same as the assets or maps). - - - - -This new page behaves like the asset and map global page. You can add your edits with the **+ New level** button. - -You can assign tasks, do the review, change status, etc. - -You can add a metadata column, fill in the description, etc. - - -::: tip -You can create a level directly from here (+New level button) or create a level linked to your maps from the global map page. -::: - - -On this page, you can **Rename** and **Delete** the level entity, as well as the asset and map entity. - -If you click on the name of a level, you will see the details page for this level. - -![level detailed page](../img/getting-started/sequence_detail_page.png) - -On the detailed page, you can access the casting of the level. -You can see all the assets used at the entire level. - -You can also access the schedule, Preview Files, Activity, and Timelog of the level **tasks**. - - - -## Create an Edit - -You can track tasks at the **Edit** Level in Kitsu. - -It's especially useful when -You have several edits to track through several validation steps. For example, you can track your whole movie, several trailers, and the First Edit, Fine Edit, Mix, etc. - -::: warning -Per default, the **Edit** page will not be displayed until you have task types for it on your **production library** (setting page) -::: - - - -To use this page, you need to first create a dedicated task type on your **Global Library** - with the **Edit** attribute. - -See the **Creating a New Task Type** Section to create a new **Task Type**. - -[Creating a New Task Type](../configure-kitsu/README.md#task-types) - - -Once you have created your **Task Types**  on your **Global Library**, add them to your -**Production Library**, you will see the **Edit** displayed on the navigation drop-down menu. - - -![Navigation Edit](../img/getting-started/drop_down_menu_edit.png) - - -This new page behaves like the asset and map global page. You can add your edits with the **+ New edit** button. - -You can assign tasks, do the review, change status, etc. - -You can add a metadata column, fill in the description, etc. - -::: tip -Depending on your deliveries, you can also change the resolution per **Edit**. -::: - -::: warning -The detail page is different from the other entities. - -As **Edit** focuses on a specific long video, the detail page looks more like the comment detail page. -::: - -You can **Rename** and **Delete** the Edit entity on this page, as you can for the asset and map entities. - - - - - - - -## Create a Breakdown List - -Filling out the breakdown helps you with the assembly of the maps. With the -breakdown, you have all the details of the assets you need to add to create your -map, and we are sure to omit nothing. - -On the dropdown menu, choose **BREAKDOWN**. - -![drop down Menu breakdown](../img/getting-started/drop_down_menu_breakdown.png) - -On the left of the breakdown page is the chapter/level/map menu (1); you can choose between those you created. They are the right part of -the screen; all the assets created are available for this production (main pack and chapters) (3). Moreover, in -the middle section, it is your selection for the map (2). - -![Breakdown page](../img/getting-started/breakdown_general_empty.png) - -So now you have to select the map you want to cast. - -You can display the assets as text if you don't have thumbnails yet or enlarge the -thumbnails size. - - -![Breakdown page text display](../img/getting-started/breakdown_text_display.png) - -You may also realize an asset needs to be added to the list during your breakdown. - -You can create a new asset directly from the breakdown page. Click the **+** on the right of the **All available assets**. - -![Breakdown page create asset](../img/getting-started/breakdown_create_asset.png) - - -You can also select multiple maps at once. Click on the first map, hold the **shift** key, and click on the last map of your selection. - -![Breakdown page global bulk select](../img/getting-started/breakdown_general_bulk_select.png) - -Then click on the assets you want -to assign: characters, backgrounds, ... from the right part (3). -If you have selected multiple maps, your selection is applied to the numerous maps. - -Copy a map filled with assets and paste this asset selection into another map. - -You can see a **+1** or **+10** when you pass over the asset. It's the number -of times you add this asset, and you can click on it as many times as you need. - -![Breakdown add asset](../img/getting-started/breakdown_add_asset.png) - -You can also link all your assets to chapters on a TV show without specifying a level or map. - -![Breakdown chapter asset](../img/getting-started/breakdown_episode.png) - -This way, you can link all your assets to one or several chapters before the storyboard/animatic stage. - -You can now see the asset in the middle of the screen (2). Next -to the asset's name is the number of times it has been added. In this -example, we have added the character asset Llama two times. - - -If you add an asset twice by mistake, you must go to the screen's middle part to select assets for this map (2). From there, click on -**-1**. When you finish this map, go on with the other maps. -Your selection is automatically saved. - -![Breakdown remove asset](../img/getting-started/breakdown_remove_asset.png) - -If a new asset is created during the storyboard, return to the asset -page (using the dropdown menu) and create the needed assets. The tasks previously created are applied immediately to these new -assets. However, you have to do the assignment, and then you can -continue with the breakdown. - -Now, your **Breakdown** page should look like this. - -![breakdown add asset bulk](../img/getting-started/breakdown_general_bulk_select_full.png) - -You can also make a breakdown list for your assets if you need to assemble them and keep track of the separate parts. - -On the top left corner of the screen, choose **asset** in the dropdown menu below **FOR**. - -![Breakdown asset menu](../img/getting-started/breakdown_asset_menu.png) - -You can now access a second dropdown menu to choose your asset type: **Character**, **Environment**, **Props**, **FX**, ... - -![Breakdown asset type](../img/getting-started/breakdown_asset_menu_type.png) - -You can complete the asset breakdown page the same way you would the maps. First, select one or more assets on the left part and then add the right part's elements. - -::: details Create a Breakdown List from a CSV File - -You may already have your breakdown list ready in a spreadsheet file. With Kitsu, you have two ways to import it: the first is to import a .csv file directly, and the second is to copy-paste your data directly into Kitsu. - -First, save your spreadsheet as a `.csv` file following Kitsu's recommendation. - -Click on the **import** button ![Import button](../img/getting-started/import.png) - -A pop-up window **Import data from a CSV** opens. Click on **Browse** to pick your `.csv` file. - -![Breakdown import csv file](../img/getting-started/import_breakdown_csv_file.png) - -To see the result, click on the **Preview** button. - -You can check and adjust the name of the columns by previewing your data. - -NB: the **chapter** column is only mandatory for a **TV Show** production. - -![Breakdown import Preview](../img/getting-started/import_breakdown_preview.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, you have your breakdown imported into Kitsu. - -![Breakdown import Preview](../img/getting-started/breakdown_general_bulk_select_full.png) -::: - -::: details Create a Breakdown List by Copying / Pasting a Spreadsheet File - -Open your spreadsheet, select your data, and copy them. - -![Import copy data](../img/getting-started/import_copypas_breakdown.png) - -Then, go back to the breakdown page on Kitsu and click on the **Import** icon -![Import Icon](../img/getting-started/import.png). - -A pop-up window **Import data from a CSV** opens; click on the **Paste a CSV data** tab. - -![Import data copy paste tab](../img/getting-started//import_breakdown_csv_file.png) -  -You can paste your previously selected data and see the result with the **Preview** button. -  -![Import data copy paste data](../img/getting-started/import_breakdown_preview.png) -  -You can check and adjust the name of the columns by previewing your data. -  -NB: the **chapter** column is only mandatory for a **TV Show** production. -  -![Import data copy paste data](../img/getting-started/import_breakdown_preview.png) - -Once everything is good, click the **Confirm** button to import your data into Kitsu. - -Now, all your assets have been imported into Kitsu. - -![Import data copy paste data](../img/getting-started/breakdown_general_bulk_select_full.png) -::: - -## Casting from the Asset Library -It is also possible to cast assets from the global **Asset Library** into your production. This allows you to cast an already existing asset, without the need to re-create it for each production. - -![Asset Library Display](../img/getting-started/asset_library_display.png) - -To see assets outside of your production from the asset library, click the **Display Library** Button (1) - -Assets from the global asset library will appear, and will be highlighted with a yellow boarder (2). They can then be cast in your breakdown exactly the same as other assets. - -![Asset Library View](../img/getting-started/asset_library_view.png) - -Back on your productions asset page, you can choose to display global assets that have been cast in your production by toggling the **Display Library** button (1). These assets will be highlighted in yellow, indicating that they originate from the global asset library, and not your current production. (2). - -## Introduction to Asset State: Ready For - -Most of the time, you don't need to wait for an asset's tasks to be approved to use it on a map task. - -For example, when an asset is approved at the **Concept** stage, it can be used for the **Storyboard** stage. -Then, when it's approved at the **Modeling** stage, you can use it for the **Layout** stage and so on. - -That's exactly what the asset state **Ready For** is doing: let you know the state of the tasks of an asset and compare its usability for the map tasks. - -Now that we have filled out our breakdown, we know exactly which asset is used on every map. - -First, we need to define an asset's state relative to its task status. You can modify the **Ready for** by clicking on a cell. You will see a dropdown menu with the map task. - -![Asset Status](../img/getting-started/asset_status.png) - -::: tip -You can use the **automations** to do the heavy lifting. - -You can set automation with the **ready for** trigger. -::: - -Now that we have changed some asset states to **Ready for**, we can see the result on the map page. - -You can notice that some white boxes are now **Green**: all the assets in this map are ready for this specific task. - -![Asset Status](../img/getting-started/asset_status_box.png) - -If you see the white box, Kitsu will display how many assets are ready for this task. - -![Asset Status](../img/getting-started/asset_status_empty.png) - -::: tip -If you don't see any boxes, no assets are cast for this map. -::: -  -Then, you can click on the map's name to go to its detail page. -Then, you will see all the assets cast in this map and their status. - -![Asset Status](../img/getting-started/asset_status_detail.png) - -It's the fastest way to know if you can start a map for a specific task. - diff --git a/docs/workflows/for-artists/index.md b/docs/workflows/for-artists/index.md new file mode 100644 index 0000000000..02d3d70740 --- /dev/null +++ b/docs/workflows/for-artists/index.md @@ -0,0 +1,48 @@ +--- +prev: false +next: false +--- + + + +# Getting Started as an Artist + +This guide will help you get started and understand the Kitsu's key features as an artist. + +## 1. Initial Profile Setup & Customization" + + + + + +## 2. Managing Your Assignments" + + + + + +## 3. Updating Task Progress" + + + + + +## 4. Publish a Concept" + + + + + +## 5. Request a Review" + + + + + +## 6. Complete Your Timesheet" + + + + \ No newline at end of file diff --git a/docs/workflows/for-clients/index.md b/docs/workflows/for-clients/index.md new file mode 100644 index 0000000000..b5bd5b0817 --- /dev/null +++ b/docs/workflows/for-clients/index.md @@ -0,0 +1,48 @@ +--- +prev: false +next: false +--- + + + +# Getting Started As A Client + +This guide will help you get started and understand the Kitsu's key features as a client. + +## 1. Initial Profile Setup & Customization + + + + + +## 2. See your Playlists + + + + + +## 3. Share your Comments + + + + + +## 4. Global View of the Assets + + + + + +## 5. Global View of the Shots + + + + + +## 6. Production Report + + + + \ No newline at end of file diff --git a/docs/workflows/for-producers/index.md b/docs/workflows/for-producers/index.md new file mode 100644 index 0000000000..b201bb5bef --- /dev/null +++ b/docs/workflows/for-producers/index.md @@ -0,0 +1,68 @@ +--- +prev: false +next: false +--- + + + +# Getting Started As A Producer / Production Manager + +A Producer needs a comprehensive overview of the entire production process. + +Kitsu offers various tools to help you stay informed and manage production efficiently without getting overwhelmed by notifications or losing focus. + +## 1. Production Overview + + + + + +## 2. Ensure Tasks are On Time + + + + + +## 3. Understanding Why a Task is Late + + + + + +## 4. Durations over Estimates + + + + + +## 5. Checking Quotas + + + + + +## 6. Team Timesheets + + + + + +## 7. Studio Resource Overview + + + + + +## 8. Studio Occupancy Rate + + + + + +## 9. Main Schedule + + + + \ No newline at end of file diff --git a/docs/workflows/for-supervisors/index.md b/docs/workflows/for-supervisors/index.md new file mode 100644 index 0000000000..87c7367879 --- /dev/null +++ b/docs/workflows/for-supervisors/index.md @@ -0,0 +1,62 @@ +--- +prev: false +next: false +--- + + + +# Getting Started As A Supervisor / Lead + +A supervisor's role is to oversee the creative and technical aspects of visual effects production, ensuring that the final output meets the project's artistic vision, quality standards, and deadlines. + +A key aspect of this is to ensure your team knows what they are working on. + +## 1. Manage Your Department + + + + + +## 2. Assign Tasks + + + + + +## 3. Bid Estimates + + + + + +## 4. Daily Supervision Tasks + + + + + +## 5. Team Schedule + + + + + +## 6. Timesheets + + + + + +## 7. Review Previews + + + + + +## 8. Review Concepts + + + + \ No newline at end of file diff --git a/docs/zou.png b/docs/zou.png new file mode 100644 index 0000000000..89d7e34151 Binary files /dev/null and b/docs/zou.png differ diff --git a/outline.md b/outline.md new file mode 100644 index 0000000000..b85665e56a --- /dev/null +++ b/outline.md @@ -0,0 +1,730 @@ +## from vuepress/config + +- **Introduction to Kitsu** + - Introduction + - Configure Kitsu + - Team +- **Create Your Production** + - TV Show + - Feature + - Short + - Short Shot + - Short Asset + - Video Game + - NFT +- **Meta Columns, Filters and Production Settings** + - Meta Column + - Filter + - Configure Production +- **Assignments, Estimates and Scheduling** + - Assignation + - Estimation + - Schedules +- **Statuses, Publishes, and Thumbnails** + - Status + - Publish + - Thumbnails +- **Internal Review and Client Playlists** + - Review + - Review Weekly + - Playlist Client +- **Supervisor Workflows** + - Supervisor Team + - Supervisor Tasks +- **Producer Workflows** + - Production Report + - Studio Report +- **Artist Workflows** + - Artist +- **Developer Workflows** + - Custom Actions + - Bots + - Publisher + - Chat Integration + - Installation +- **Frequently Asked Questions** + - FAQ + +## BEFORE from markdown docs + +- Getting Started With Kitsu + - Studio Workflows + - Understanding Studio Workflows + - Global Library VS Production Library + - Departments + - Creating Departments + - Task Types + - Creating a New Task Type + - Asset Types + - Define Your Asset Workflow + - Task Statuses + - Define Your Approval Workflow + - Automation + - Create a New Status Automation + - 3D Backgrounds + - Create a Global Library of HDR Files + - Asset Library + - What is the Asset Library? + - How to Use the Asset Library + - Adding Assets to the Library + - Settings + - Configuring Kitsu + - Studio Settings +- Preparing Your Team + - Creating Users + - Creating Users and Linking Them to Departments + - Permission Roles + - Understanding Permission Roles + - Create and edit a production + - Manage the studio + - Manage productions + - Two-Factor Authentication + - Add Additional Security to Your Studio + - Available Two-Factor Authentication Methods + - Adding Users to the Team +- Create Your Production + - Create a TV Show Production + - Introduction to Kitsu's Global Page + - Main Menu + - Navigation + - Global Search, News, Notification, and Documentation + - Personal Settings + - The Tasks Spreadsheet + - Entity Spreadsheet + - Filters + - Simplify the Display + - Import / Export + - Metadata Column + - Customize the View + - Sum-up of your view + - Create an Asset + - Create Your First Asset + - Viewing Details of an Asset + - Update Your Assets + - Add More Tasks After Creating the Assets + - Create a Concept + - Upload a Concept + - Link a Concept to an Asset + - Create a Shot + - Create Your First Shot + - Create Shots from an EDL File + - See the Details of a Shot + - Update your shots + - Add more tasks after creating the shots + - Adding Frame Numbers and Ranges to Shots + - Creating Custom Metadata Columns + - Create a Sequence + - Create an Edit + - Create a Breakdown List + - Casting from the Asset Library + - Introduction to Asset State: Ready For + - Create a Feature Film Production + - Introduction to the Kitsu Global Page + - Main Menu + - Navigation + - Global Search, News, Notification and Documentation + - Personal Settings + - The Tasks Spreadsheet + - Entity spreadsheet + - Filters + - Simplify the display + - Import / Export + - Metadata column + - Customize the view + - Sum-up of your view + - Create an Asset + - Create your first asset + - See the Details of an Asset + - Add more tasks after creating the assets + - Update your assets + - Create a Concept + - Upload a Concept + - Link a Concept to an Asset + - Create a Shot + - Create your first shot + - Create Shots from an EDL File + - See the Details of a Shot + - Add more tasks after creating the shots + - Update your shots + - Add the number of Frames and Frame ranges to the shots + - Create Custom Metadata Columns + - Create a Sequence + - Create an Edit + - Create a Breakdown List + - Casting from the Asset Library + - Introduction to Asset State: Ready For + - Create a Short Production (assets and shots) + - Introduction to the Kitsu Global Page + - Main Menu + - Navigation + - Global Search, News, Notification and Documentation + - Personal Settings + - The Tasks Spreadsheet + - Entity spreadsheet + - Filters + - Simplify the display + - Import / Export + - Metadata column + - Customize the view + - Sum-up of your view + - Create an Asset + - Create your first asset + - See the Details of an Asset + - Add more tasks after creating the assets + - Update your assets + - Create a Concept + - Upload a concept + - Link a Concept to an Asset + - Create a Shot + - Create your first shot + - Create Shots from an EDL File + - See the Details of a Shot + - Add more tasks after creating the shots + - Update your shots + - Add the number of Frames and Frame ranges to the shots + - Create Custom Metadata Columns + - Create a Sequence + - Create an Edit + - Create a Breakdown List + - Casting from the Asset Library + - Introduction to Asset State: Ready For + - Create a SHOTS-only Production + - Introduction to the Kitsu Global Page + - Main Menu + - Navigation + - Global Search, News, Notification and Documentation + - Personal Settings + - The Tasks Spreadsheet + - Entity spreadsheet + - Filters + - Simplify the display + - Import / Export + - Metadata column + - Customize the view + - Sum-up of your view + - Create a Shot + - Create your first shot + - Create Shots from an EDL File + - See the Details of a Shot + - Add more tasks after creating the shots + - Update your shots + - Add the number of Frames and Frame ranges to the shots + - Create Custom Metadata Columns + - Create a Sequence + - Create an Edit + - Create an ASSET-only Production + - Introduction to the Kitsu Global Page + - Main Menu + - Navigation + - Global Search, News, Notification and Documentation + - Personal Settings + - The Tasks Spreadsheet + - Entity spreadsheet + - Filters + - Simplify the display + - Import / Export + - Metadata column + - Customize the view + - Sum-up of your view + - Create an Asset + - Create your first Asset + - See the Details of an Asset + - Add more tasks after creating the assets + - Update your assets + - Create a Concept + - Upload a Concept + - Link a Concept to an Asset + - Create Custom Metadata Columns + - Create an Edit + - Create a Breakdown List + - Casting from the Asset Library + - Create a Video Game Production + - Introduction to the Kitsu Global Page + - Main Menu + - Navigation + - Global Search, News, Notification and Documentation + - Personal Settings + - The Tasks Spreadsheet + - Entity spreadsheet + - Filters + - Simplify the display + - Import / Export + - Metadata column + - Customize the view + - Sum-up of your view + - Create an Asset + - Create your first asset + - See the Details of an Asset + - Add more tasks after creating the assets + - Update your assets + - Create a Concept + - Upload a Concept + - Link a Concept to an Asset + - Create a map + - Create your first map + - Create maps from an EDL File + - See the Details of a map + - Add more tasks after creating the maps + - Update your maps + - Add the number of Frames and Frame ranges to the maps + - Create Custom Metadata Columns + - Create a level + - Create an Edit + - Create a Breakdown List + - Casting from the Asset Library + - Introduction to Asset State: Ready For + - Create a NFT Collection + - Introduction to the Kitsu Global Page + - Main Menu + - Navigation + - Global Search, News, Notification and Documentation + - Personal Settings + - The Tasks Spreadsheet + - Entity spreadsheet + - Filters + - Simplify the display + - Import / Export + - Metadata column + - Customize the view + - Sum-up of your view + - Create an Asset + - Create your first asset + - See the Details of an Asset + - Add more tasks after creating the assets + - Update your assets + - Create a Concept + - Upload a Concept + - Link a Concept to an Asset + - Create a NFT Collection + - Create your first NFT Collection + - See the Details of an NFT Collection + - Add more tasks after creating the NFT Collections + - Update your NFT Collections + - Create Custom Metadata Columns + - Create a Breakdown List + - Casting from the Asset Library + - Introduction to Asset State: Ready For +- Meta Columns, Filters and Production Settings + - Meta Columns + - Create Metadata Columns + - Linking Metadata Columns to Departments + - Organizing Metadata Columns + - Display or Hide All Metadata Columns + - Display or Hide a single Metadata Column + - Sticky Columns + - Filters + - The Search Bar + - Using the Search Bar to Create Filters + - Example Filters + - Creating Filters + - Utilising the Filter Builder + - Task Status Filtering + - Metadata Filtering + - Assignment Filtering + - Thumbnail Filtering + - Priority Filtering + - Using the "Ready For" status + - Managing Saved Filters + - Deleting a Filter + - Pre-built Filters + - Production Specific Workflow Settings + - Configure Production-Specific Settings + - Task Statuses + - Configuring Specific Task Types for a Production + - Task Types + - Enabling Specific Task Types for a Production + - Asset Types + - Enabling Specific Asset Types for a Production + - Status Automation + - Configuring Status Automation for a Production + - Preview Backgrounds + - Select Specific Preview Background for a Production + - Artist Board + - Artist Board Status Configuration +- Assignments, Estimates and Scheduling + - Tasks Assignments + - Add Users to the Team + - How to Assign Tasks + - Assign Tasks From the Global Page + - Assign Tasks From the Detailed Task Type Page + - Estimates & Team Quotas + - Add an Estimate for a Task + - Detailed Task Type View Features: + - Forecasting Team Speed + - Forecast Your Team's Speed Using Estimated Quotas + - Quotas + - Using Quotas to Understand Your Teams Speed + - Quotas Based on Timesheets + - Quotas Based on Status Changes + - Changing Priorities + - Schedules + - Production Schedule + - The Production Schedule Gantt Chart + - Milestones + - Task Type Schedule + - Asset and Shot Schedule + - Studio Schedule + - Team Schedule +- Statuses, Publishes, and Thumbnails + - Statuses and Feedback + - The Comment Panel + - Tagging Team Members + - Adding Checklists + - Adding Attachments + - Changing Statuses In Bulk + - Updating Multiple Statuses at Once + - Artist Board Statuses + - Customizing Statuses Used on the Artist Board Page + - Publishes + - Publishing a Concept + - Linking a Concept to an Asset + - Publish a Preview as a Version + - Combining Previews Into a Version + - Thumbnails + - Add Thumbnails Manually + - Add Thumbnails Automatically + - Batch Upload Previews (as Thumbnails) +- Internal Review and Client Playlists + - Reviews + - Reviewing Tasks + - Drawing Annotations + - Tagging Frames + - Exporting Annotations + - Deleting Annotations + - Comparing Images + - Reviewing Concepts + - Playlists + - Create a Playlist + - Populating a Playlist + - Review Controls + - Review Room + - Daily & Weekly review + - Create a Playlist for your internal review + - Review and Validations + - Client Playlists + - Creating Client Playlists + - Reviewing Client Playlists + - Playback Controls + - Review Room +- Supervisor Workflows + - Managing Your Department + - Assigning Tasks & Bidding Estimates + - Daily Supervision Tasks + - Managing Your Department's Schedule + - Managing Department Quotas + - Department Timesheets + - Task Supervision + - Check Your Tasks + - Reviewing Previews + - Reviewing Concepts +- Producer Workflows + - Building Production Reports + - Production Overview + - News Feed Features + - Using Filters + - Example + - Know the Current State of the Production + - Short / Feature Specific + - Sequence Stats + - Asset Types Stats + - Count View + - Exporting Data + - TV Show Specific + - Retakes Display + - Status Display + - Ensure Tasks are On Time + - Methods to Compare Estimations and Actuals + - Filtering by Due Date Status + - Using the Late Status Filter + - Using the Gantt Diagram + - Understanding Why a Task is Late + - Checking an Artist's Workload + - Identifying Back-and-Forth + - Checking if the Task is Underestimated + - Checking the Previous Task + - Durations over Estimates + - Estimation Summary + - Task Type Duration over Estimation + - Durations over Estimations for an Asset / Shot + - Detailed Analysis + - Checking Quotas + - Method 1: Timesheet-Based Calculation + - Method 2: Status-Based Calculation + - Detailed Quota Calculation + - Team Timesheets + - Viewing Timesheets + - Exporting Timesheets + - Building Studio Reports + - Studio Resource Overview + - Current State of All Productions + - Stats Pages + - Studio Occupancy Rate + - Focusing on Specific Timeframes + - Modifying the Schedule + - Utilize the Main Schedule +- Artist Workflows + - Getting Started as an Artist + - Initial Setup and Profile Customization + - Managing Your Assignments + - Key Information Available: + - Additional Features: + - Updating Task Progress + - Updating Task Statuses + - View Your Assignments (Board View) + - View Your Assignments (Calendar View) + - Share Your Concepts + - Uploading Concepts: + - Linking Concepts to Assets: + - Request a Review + - Complete Your Timesheet + - How to Log Time: + - Missed a Day? +- Developer Workflows + - Custom Actions + - What are Custom Actions? + - Goal + - How to Setup a Custom Action + - Creation + - Data Sent via a Custom Action + - Bots + - Why Use a Bot + - How to Create a Bot + - Managing Bots + - Example Bot Usage + - Security Considerations + - Kitsu Publisher + - DCC Integrations Status: + - Installation + - Installation of the Kitsu Publisher + - Pre-Requisites + - On Linux + - On Windows + - On MacOS + - Development Environment + - Pre-Requisites + - Dependencies + - Run + - Build the Electron App + - Pre-Requisites + - Building the App + - Installation of the DCCs connectors + - Pre-requisites + - Blender (version>2.80) + - Toon Boom Harmony + - Unreal Editor (version>=5) + - Publishing Previews with the Kitsu Publisher + - Consult Your To-Do List + - Publish a Preview From the Publisher + - Setup the Publisher + - Change the Save Directory and Add Scripts + - View the Result of the Setting on the Export Pop-Up + - Chat Integration + - Discord Integration + - Create a Bot Account + - Inviting Your Bot + - Enable Discord Notifications + - Slack Integration + - Create a Kitsu Application in Slack + - Set the Right Permissions + - Install the App in Your Workspace + - Get the Token + - Link Kitsu to Your New Slack Application + - Enable Slack Notifications in Your Profile + - Mattermost Integration + - Enable Incoming Webhooks, Custom Username, and Profile Picture for Webhooks + - Set a Webhook in Mattermost + - Enable Mattermost Notifications + - Open Source Setup + - Cloud Hosting + - Self-Hosting + - Development Environment + - Prerequisites + - Using Docker Image + - Development + - Build + - Tests + - Architecture +- Frequently Asked Questions + - Login Issues + - I can't log in to Kitsu anymore + - Task Management + - I created a new Task Type, but I don't see it in my production + - Understanding the Difference: + - Steps to Add Task Types to Your Production + - My Task Type columns are not in the right order + - Task Type columns are missing + - Team and Assignments + - I can't assign anyone to a task + - Steps to Add People to a Production + - All assignments have disappeared + - Production Management + - How to Delete or Archive a Production + - Steps to Archive a Production + - Steps to Delete a Production + - Miscellaneous + - Where can I see the storage I'm using? + +## AFTER proposed new structure + + +- Getting Started + - Why Kitsu + - Cloud vs self-hosted vs on-premise + - how to start a new studio (studio CRUD, studio settings) + - how to start a new production +- Migration + - General Process Overview + - From Shotgrid + - From ftrack +- Concepts / Glossary + - the Kitsu interface: Main Menu, Navigation, Global Search, Personal Settings + - studio, department, production, asset, episode, sequence, shot, task, etc. +- Self-hosting (link to self-hosting page in developer documentation) + +- Team Management + - department CRUD + - Roles: artist, supervisor, producer, client, vendor, etc. + - preparing your team: onboarding & adoption, invite team members, link them to departments, two-factor auth + - people CRUD + - people page +- Pre-production + - creating the production: Meta Columns and Production Settings + - production structure: episode, sequence, shot + - asset CRUD, task type CRUD, task status CRUD, breakdowns, casting + - importing csv data + - Concepts +- Scheduling & estimates + - task CRUD, assignments, scheduling, estimates + - My Tasks page +- Review & approval + - status updates, publishing previews, notifications & communication, thumbnails, internal playlists, client playlists, annotation, feedback loops + - My Checks page + - Entity Chats page + - Edits page +- Tracking & Reporting + - search bar, filters, quotas, metadata, schedule health, producer/supervisor views & charts, budget + - timesheets page + - main schedule page + - team schedule page + - production schedule page + - all tasks page + - news feed page + - sequence stats + - episodes stats + - asset types stats + - Budget + - budget page + - salary scale page + - software licenses page + - hardware items page +- File storage + - where files are stored, supported formats, preview generation, storage backends + - asset library page +- Privacy & Security + - IP Protection + - Authentication + - Authorization + +- For Supervisors +- For Producers +- For Artists +- For Developers (links to developer doc) + - Plugins + - Custom Actions + - Automations + - Bots +- For Clients + +- for TV Show +- for Feature Film +- for Shorts +- for video games +- for nfts +- Create a SHOTS-only Production +- Create an ASSET-only Production +- client portal +- 3D backgrounds + +- Support +- FAQ +- Changelog +- Roadmap +- Discord +- Youtube +- Blog +- Github + +## after refactoring + +- Start Here + - Getting Started + - Main Concepts + - Self-Hosting +- Workflows + - For Supervisors + - For Producers + - For Artists + - For Developers + - For Clients +- Guides + - Team Management + - Manage Departments + - Manage Teams + - Profile Settings + - Preparing Your Team + - Team Roles + - Import Team + - Task Management + - Manage Episodes + - Manage Sequences + - Manage Shots + - Manage Asset Types + - Manage Task Types + - Manage Task Statuses + - Pre-Production + - Breakdown + - Casting + - Manage Concepts + - Meta-Columns + - Production Settings + - Scheduling + - Assign Tasks + - Estimates + - Manage Edits + - Find Asignments + - Quotas + - Schedules + - Review & Publishing + - Playlist + - Client Playlist + - Publish + - Request a Review + - Review + - Share Concepts + - Update Task Progress + - Tracking & Reporting + - Durations vs Estimates + - Ensure Tasks Are On-Time + - Advanced Search & Filtering + - Production Overview + - Studio Occupancy + - Studio Overview + - Thumbnails + - Timesheets + - Understand Why a Task Is Late + - Main Schedule + - File Management + - Asset Library + - Privacy & Security + - Authentication +- Recipes + - For TV Shows + - For Feature Films + - For Shorts + - For Video Games + - For NFTs + - Shots-Only Productions + - Assets-Only Productions +- Resources + - Frequently Asked Questions + - Changelog \ No newline at end of file diff --git a/outline.sh b/outline.sh new file mode 100755 index 0000000000..2019b29dda --- /dev/null +++ b/outline.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash +# extract_toc.sh — Extract table of contents from a Markdown file +# Usage: ./extract_toc.sh + +set -euo pipefail + +if [[ $# -lt 1 ]]; then + echo "Usage: $0 " >&2 + exit 1 +fi + +FILE="$1" + +if [[ ! -f "$FILE" ]]; then + echo "Error: file '$FILE' not found." >&2 + exit 1 +fi + +# Convert a heading text to a GitHub-style anchor +make_anchor() { + local text="$1" + echo "$text" \ + | tr '[:upper:]' '[:lower:]' \ + | sed 's/[^a-z0-9 _-]//g' \ + | tr ' ' '-' +} + +in_code_block=0 +FENCE_REGEX='^[[:space:]]*(`{3,}|~{3,})' + +while IFS= read -r line; do + # Toggle fenced code block tracking (``` or ~~~) + if [[ "$line" =~ $FENCE_REGEX ]]; then + in_code_block=$(( !in_code_block )) + continue + fi + + # Skip lines inside code blocks + [[ "$in_code_block" -ne 0 ]] && continue + + # Match ATX headings: # through ###### + if [[ "$line" =~ ^(#{1,6})[[:space:]]+(.+)$ ]]; then + hashes="${BASH_REMATCH[1]}" + title="${BASH_REMATCH[2]}" + + # Strip trailing hashes and spaces (e.g. "## Heading ##") + title=$(echo "$title" | sed 's/[[:space:]]*#*[[:space:]]*$//') + + level="${#hashes}" + indent="" + for (( i=1; i=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@braintree/sanitize-url": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.2.tgz", + "integrity": "sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==", + "license": "MIT" + }, + "node_modules/@chevrotain/types": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.1.2.tgz", + "integrity": "sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==", + "license": "Apache-2.0" + }, + "node_modules/@cloudflare/kv-asset-handler": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.5.0.tgz", + "integrity": "sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg==", + "dev": true, + "license": "MIT OR Apache-2.0", + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@cloudflare/unenv-preset": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.16.1.tgz", + "integrity": "sha512-ECxObrMfyTl5bhQf/lZCXwo5G6xX9IAUo+nDMKK4SZ8m4Jvvxp52vilxyySSWh2YTZz8+HQ07qGH/2rEom1vDw==", + "dev": true, + "license": "MIT OR Apache-2.0", + "peerDependencies": { + "unenv": "2.0.0-rc.24", + "workerd": ">1.20260305.0 <2.0.0-0" + }, + "peerDependenciesMeta": { + "workerd": { + "optional": true + } + } + }, + "node_modules/@cloudflare/workerd-darwin-64": { + "version": "1.20260526.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260526.1.tgz", + "integrity": "sha512-/pR3GH3gfv0PUp7DjI8v0aAIDOqFwibq4bg5xT7TZgcVdBV/cJQWckdXCMqiRtHiawLwogUX00EIOINkYJ1Zqg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-darwin-arm64": { + "version": "1.20260526.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20260526.1.tgz", + "integrity": "sha512-rcyu0iANYfaiezKh3Mcao1O4IIgVfQldxduiL5TZT1sP0NIeRY4YReSTrzPxNnXxSYaIqaqRHMcHbUM/ic4knA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-linux-64": { + "version": "1.20260526.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260526.1.tgz", + "integrity": "sha512-5EZAEnlLwa9oGJRo8Nd3iY5Wcd9ROGNNG90xNIGp8MEjj8v2jTn42NC47fCZKFdnLj3+S+vWEhu1x0GVJnALjA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-linux-arm64": { + "version": "1.20260526.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260526.1.tgz", + "integrity": "sha512-X/YBQXeXFeCN7QTStoWrATEBc9WKl7PIqkw/dQkjyJ72gh3rkLe0+Xkzp3wO7gtxTDQMa7NPGy1W4+sdMf8q1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cloudflare/workerd-windows-64": { + "version": "1.20260526.1", + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260526.1.tgz", + "integrity": "sha512-R+tqpFFdcfZIljx8fIW9rj9fRTtDgfoA2yonsfAGa6e8snrmr+38mdFHtkRC0D3UyZpn/hOtmXiUBfdX2gMR7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@docsearch/css": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-4.6.3.tgz", + "integrity": "sha512-nlOwcXcsNAptQl4vlL4MA78qNJKO0Qlds5GuBjCoePgkebTXLSf8Qt1oyZ3YBshYupKXG9VRGEsk1zr23d+bzQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@docsearch/js": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-4.6.3.tgz", + "integrity": "sha512-qUIX2b4Apew3tv4F0qhmgShsl/Lfw4m6mqv/5/5dWNxwTcDdLMp2s3YwZ+NMGh3IKCg0pBaXm7Q5VdyU5Rj+cQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@docsearch/sidepanel-js": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/@docsearch/sidepanel-js/-/sidepanel-js-4.6.3.tgz", + "integrity": "sha512-grGSmvXzG0if+mrzdIKykvpIAuEQ9u0sEJ2eLRRCaQfJvsWqh2C2/aY04bIzWvDh7myi5rvl8D+tUNsVrjYQ3A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@iconify-json/simple-icons": { + "version": "1.2.84", + "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.84.tgz", + "integrity": "sha512-v4JVu6xIewGoETD4mm2k6UAdFAbTlY1duw5ZNSxYORfs2yFsHDhoU9Omn/BgrV0nR/ptWkF3ZIr/ZHoYXI/6Jw==", + "dev": true, + "license": "CC0-1.0", + "dependencies": { + "@iconify/types": "*" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "license": "MIT" + }, + "node_modules/@iconify/utils": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.3.tgz", + "integrity": "sha512-LPKOXPn/zV+zis1oOfGWogaXVpqUybF3ZS6SCZIsz8vg0ivVp9+fVqyYB7xq0aiST/VhUQYGO1qo6uoYSiEJqw==", + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^1.1.0", + "@iconify/types": "^2.0.0", + "import-meta-resolve": "^4.2.0" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "license": "MIT" + }, + "node_modules/@lucide/vue": { + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/@lucide/vue/-/vue-1.25.0.tgz", + "integrity": "sha512-hkEetV+v48ScIn3uwqwWQ66sI8foeP2q6OMI09GzLFH4SfvBlfe3JHYlMBdBCqFC7WRlhFsndyDn/awRKRc2OQ==", + "license": "ISC", + "peerDependencies": { + "vue": ">=3.0.1" + } + }, + "node_modules/@mermaid-js/parser": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-1.1.1.tgz", + "integrity": "sha512-VuHdsYMK1bT6X2JbcAaWAhugTRvRBRyuZgd+c22swUeI9g/ntaxF7CY7dYarhZovofCbUNO0G7JesfmNtjYOCw==", + "license": "MIT", + "dependencies": { + "@chevrotain/types": "~11.1.1" + } + }, + "node_modules/@poppinss/colors": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.6.tgz", + "integrity": "sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^4.1.5" + } + }, + "node_modules/@poppinss/dumper": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.5.tgz", + "integrity": "sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.5", + "@sindresorhus/is": "^7.0.2", + "supports-color": "^10.0.0" + } + }, + "node_modules/@poppinss/dumper/node_modules/@sindresorhus/is": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz", + "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@poppinss/dumper/node_modules/supports-color": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@poppinss/exception": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.3.tgz", + "integrity": "sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.61.0.tgz", + "integrity": "sha512-dnxczajOqt0gesZlN5pGQ1s1imQVrsmCw5G2Ci4oM+0WvNz3pyRnlWrT7McoZIb8VlFwCawdmbWRmxRn7HI+VQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.61.0.tgz", + "integrity": "sha512-Bp3JpGP00Vu3f238ivRrjf7z3xSzVPXqCmaJYA9t2c+c8vKYvOzmXF7LkkeUalTEGd6cZcSWe+PFIP3Vy48fRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.61.0.tgz", + "integrity": "sha512-zaYIpr670mUmmZ1tVzUFplbQbG7h3Gugx3L5FoqhsC2m/YnLlR1a7zVLmXNPy+iY1tFPEbNG+HHBXZGyId0G5w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.61.0.tgz", + "integrity": "sha512-+P49fvkv2dSoeevUW+lgZ/I2JHSsJCK1Lyjj7Cu6E4UHG4tS9XIefzIjo5qhgELjAclnen1rLzK2PMKJdo+Dyg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.61.0.tgz", + "integrity": "sha512-l3FAAOyKJXH2ea6KNFN+MMgC/rnE94YGLXs2ehYqDcCoHt1DpvgWX75BhUJxN38XojP7Ul+4H8PRn7EdyqSDrw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.61.0.tgz", + "integrity": "sha512-VokPN3TSctKj65cyCNPaUh4vMFA8awxOot/0sp+4J7ZlNRKQEhXhawqPwajoi8H5ZFt61i0ugZJuTKXBjGJ17Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.61.0.tgz", + "integrity": "sha512-DxH0P3wxm+Yzs/p3zrk9dw1rURu8p0Nv5+MRK/L7OtnLNg5rLZraSBFZ8iUXOd9f2BlhJyEpIZUH/emjq4UJ4g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.61.0.tgz", + "integrity": "sha512-T6ZvMNe84kAz6TBWHC7hGAoEtzP1LWYw/AqayGWEF6uISt3Abk/st06LqRD9THd7Xz3NxzurUpzAuEAUbZf+nw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.61.0.tgz", + "integrity": "sha512-q/4hzvQkDs8b4jIBab1pnLiiM0ayTZsN2amBFPDzuyZxjEd4wDwx0UJFYM3cOZzSf5Kw8fnWSprJzIBMkcR44Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.61.0.tgz", + "integrity": "sha512-vvYWX3akdEAY6km+9wAqFDnk6pQsbJKVnj7xawcvs/+fdlYBGp+U+Qq/lLfpIxYIZvZLHMAKD9HLdacSx/r3dw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.61.0.tgz", + "integrity": "sha512-DePa5cqOxDP/Zp0VOXpeWaGew5iIv5DXp9NYbzkX5PFQyWVX9184WCTh3hvr/7lhXo8ZVlbFLkz8+o/q1dU6gA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.61.0.tgz", + "integrity": "sha512-LV8aWMB8UChglMCEzs7RkN0GsH29RJaLLqwm9fCIjlqwxQTiWAqNcc7wjBkH31hV0PU/yVxGYvrYsgfea2qw6g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.61.0.tgz", + "integrity": "sha512-QoNSnwQtaeNu5grdBbsL0tt1uyl5EnS8DA8Mr3nluMXbhdQNyhN+G4tBax7VCdxLKj8YJ0/4OO9Ho84jMnJtKA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.61.0.tgz", + "integrity": "sha512-/zZp5MKapIIApE8trN8qLGNSiRN9TUoaUZ1cmVu4XnVdd5LQLOXTtyi+vtfUbNnT3iyjzpPqYeKXmvJ+gJGYWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.61.0.tgz", + "integrity": "sha512-RbrzcD3aJ1k3UbtMRRBNwojdVVyXjuVAFTfn/xPa6EEl6GE9Sm/akPgFTb9aAC9pMKGJ6CtWxaGrqWcabH+ySg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.61.0.tgz", + "integrity": "sha512-ZF+onDsBso8PJf1XaG9lB+O9RnBpKGnY6OrzC4CSHrtC1jb6jWLTKK4bRqdoCXHd22gyr2hiYmEAm8Wns/BOCw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.61.0.tgz", + "integrity": "sha512-Atk0aSIk5Zx2Wuh9dgRQgLP0Koc8hOeYpbWryMXyk8G8/HmPkwPPkMqIIDhrXHHYqfUzSJA/I7IWSBv8xSmRBA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.61.0.tgz", + "integrity": "sha512-0uMOcf3eZ5K+K4cYHkdxShFMPlPXCOdfDFEFn9dNYAEEd2cVvmOfH7zFgRVoDgmtQ1m9k5q7qfrHzyMAubKYUA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.61.0.tgz", + "integrity": "sha512-mvFtE4A/t/7hRJ7X8Ozmu8FsIkAUat2nzl12pgU337BRmq87AQUJztwHz2Zv5/tjo9/C95E66CK03SI/ToEDJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.61.0.tgz", + "integrity": "sha512-z9b9+aTxvt8n2rNltMPvyaUfB8NJ+CVyOrGK/MdIKHx7B+lXmZpm/XbRsU7Rpf3fRqJ2uS6mBJiJveCtq8LHDg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.61.0.tgz", + "integrity": "sha512-jXaXFqKMehsOc+g8R6oo33RRC6w07G9jDBxAE5eAKX7mOcCbZloYIPNhfG9Wl+P9O9IWHFO4OJgPi1Ml2qkt7w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.61.0.tgz", + "integrity": "sha512-OXNWVFocS2IA4+QplhTZZ2a+8hPZR7T8KuozsNmJKK8y7cp83StHvGksfHzPG3wczWTczyWHVQuqeiTUbjiyBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.61.0.tgz", + "integrity": "sha512-AlAbNtBO637LxSldqV43z0FfXoGfl2TW1DgAg/bs7aQswFbDewz2SJm3BUhiGfbOVtW571xbc9p+REdxhyN/Eg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.61.0.tgz", + "integrity": "sha512-QRSrQXyJ1M4tjNXdR0/G/IgV6lzfQQJYBjlWIEYkY2Xs86DRl/iEpQ4blMDjJxSl7n19eDKKXMg0AmuBVYy8pQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.61.0.tgz", + "integrity": "sha512-tkuFxhvKO/HlGd0VsINF6vHSYH8AF8W0TcNxKDK6JZmrehngFj78pToc8iemtnvwilDjs2G/qSzYFhe9U8q+fw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@shikijs/core": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.23.0.tgz", + "integrity": "sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.23.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.5" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.23.0.tgz", + "integrity": "sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.23.0", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.4" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.23.0.tgz", + "integrity": "sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.23.0", + "@shikijs/vscode-textmate": "^10.0.2" + } + }, + "node_modules/@shikijs/langs": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.23.0.tgz", + "integrity": "sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.23.0" + } + }, + "node_modules/@shikijs/themes": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.23.0.tgz", + "integrity": "sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.23.0" + } + }, + "node_modules/@shikijs/transformers": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-3.23.0.tgz", + "integrity": "sha512-F9msZVxdF+krQNSdQ4V+Ja5QemeAoTQ2jxt7nJCwhDsdF1JWS3KxIQXA3lQbyKwS3J61oHRUSv4jYWv3CkaKTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/core": "3.23.0", + "@shikijs/types": "3.23.0" + } + }, + "node_modules/@shikijs/types": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.23.0.tgz", + "integrity": "sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@speed-highlight/core": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.15.tgz", + "integrity": "sha512-BMq1K3DsElxDWawkX6eLg9+CKJrTVGCBAWVuHXVUV2u0s2711qiChLSId6ikYPfxhdYocLNt3wWwSvDiTvFabw==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/@types/d3": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" + }, + "node_modules/@types/d3-axis": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-brush": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-chord": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-contour": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", + "license": "MIT", + "dependencies": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", + "license": "MIT" + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", + "license": "MIT" + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "license": "MIT", + "dependencies": { + "@types/d3-dsv": "*" + } + }, + "node_modules/@types/d3-force": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "license": "MIT" + }, + "node_modules/@types/d3-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", + "license": "MIT" + }, + "node_modules/@types/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-polygon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", + "license": "MIT" + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", + "license": "MIT" + }, + "node_modules/@types/d3-random": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", + "license": "MIT" + }, + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-time-format": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "license": "MIT", + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.1.tgz", + "integrity": "sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@upsetjs/venn.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@upsetjs/venn.js/-/venn.js-2.0.0.tgz", + "integrity": "sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==", + "license": "MIT", + "optionalDependencies": { + "d3-selection": "^3.0.0", + "d3-transition": "^3.0.1" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.35.tgz", + "integrity": "sha512-BUmHaR1J+O+CKZ9uJucdVTEr1LHsdyvv7vG3eNRhK3CczEHeMd/LtsHAuD7PbrxvI2envCY2v7HI1vC1aBRzKw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@vue/shared": "3.5.35", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.35.tgz", + "integrity": "sha512-k+bprkXxuqhVajgTx5mUHuir7TwQzUKOWR40ng1ncAqQRPnrLngGGgqVEEhOnTMlc8btHYVKmrP8s5Qyg0hvYA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.35", + "@vue/shared": "3.5.35" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.35.tgz", + "integrity": "sha512-G5VPMcXTSywXBgtFOZOnHKBxKSrwXUcvY1iaF5/hRcy7t0J6CH/d8ha9F4nzi00Fax1eLV0QHM7v4mQu68jydw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@vue/compiler-core": "3.5.35", + "@vue/compiler-dom": "3.5.35", + "@vue/compiler-ssr": "3.5.35", + "@vue/shared": "3.5.35", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.15", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.35.tgz", + "integrity": "sha512-rGhAeXgdM7/ffTJGXT69rCCdTmjDewnFuUZfBQQHTdcEBeWdT5HCGY60y2ytLJr9/Dsu7IntUi5z/w0h6Rjnzw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.35", + "@vue/shared": "3.5.35" + } + }, + "node_modules/@vue/devtools-api": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-8.1.2.tgz", + "integrity": "sha512-vA0O112YqyDuNA1s7Yb2gCgToQ/OxOWiFDO5ThLCcDy0ldHnSd1dUTaSYhOldbqoNgumE4dxtGAoAaSUKUD1Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^8.1.2" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.1.2.tgz", + "integrity": "sha512-f75/upc+GCyjXErpgPGz4582ujS0L/adAltGy+tqXMGUJpgAcfGr6CxnnhpZY8BHuMYt6KpbF8uaFrrQG66rGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^8.1.2", + "birpc": "^2.6.1", + "hookable": "^5.5.3", + "perfect-debounce": "^2.0.0" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.1.2.tgz", + "integrity": "sha512-X9RyVFYAdkBe4IUf5v48TxBF/6QPmF8CmWrDAjXzfUHrgQ/HGfTC1A6TqgXqZ03ye66l3AD51BAGD69IvKM9sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/reactivity": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.35.tgz", + "integrity": "sha512-tVc+SsHConvh/Lz64qq1pP3rYArBmK42xonovEcxY74SQtvctZodG/zhq54P5dr38cVuw25d27cPNRdlMidpGQ==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.35" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.35.tgz", + "integrity": "sha512-A/xFNX9loIcWDygeQuNCfKuh0CoYBzxhqEMNah5TSFg9Z53DrFYEN2qi5CU9necjM1OWYegYREUTHmXTmhfXtg==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.35", + "@vue/shared": "3.5.35" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.35.tgz", + "integrity": "sha512-odrJ1C391dbGnyDRh8U+rnP7J2amIEzfmRk5vXy7xi3aZhEXofTvpi0T4HJb6jlNqQZTNPR5MPHSB3RHNkIORA==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.35", + "@vue/runtime-core": "3.5.35", + "@vue/shared": "3.5.35", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.35.tgz", + "integrity": "sha512-NkebSOYdB97wi8OQcO3HqzZSlymJi/aWsN/7h74OSVhRTm6qGs3Jp3e0rCXynmWwSlKeRrnlIug+ilYoHBmQDA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.35", + "@vue/shared": "3.5.35" + }, + "peerDependencies": { + "vue": "3.5.35" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.35.tgz", + "integrity": "sha512-zSbjL7gRXwks2ZQLRGCajBtBXEOXW9Ddhn/HvSdrGkE2dqGnumzW8XtusRrxrE9LvqtiqDXQ+A60Hp6mvdYxfA==", + "license": "MIT" + }, + "node_modules/@vueuse/core": { + "version": "14.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-14.3.0.tgz", + "integrity": "sha512-aHfz47g0ZhMtTVHmIzMVpJy8ePhhOy68GY5bv110+5DVtZ+W7BsOx+m61UNQqfrWyPztIHIanWa3E2tib3NFIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "14.3.0", + "@vueuse/shared": "14.3.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/integrations": { + "version": "14.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-14.3.0.tgz", + "integrity": "sha512-76I5FT2ESvCmCaSwapI+a/u/CFtNXmzl9f9lNp1hRtx8vKB8hfiokJr8IvQqcQG5ckGXElyXK516b54ozV3MvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vueuse/core": "14.3.0", + "@vueuse/shared": "14.3.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "async-validator": "^4", + "axios": "^1", + "change-case": "^5", + "drauu": "^0.4", + "focus-trap": "^7 || ^8", + "fuse.js": "^7", + "idb-keyval": "^6", + "jwt-decode": "^4", + "nprogress": "^0.2", + "qrcode": "^1.5", + "sortablejs": "^1", + "universal-cookie": "^7 || ^8", + "vue": "^3.5.0" + }, + "peerDependenciesMeta": { + "async-validator": { + "optional": true + }, + "axios": { + "optional": true + }, + "change-case": { + "optional": true + }, + "drauu": { + "optional": true + }, + "focus-trap": { + "optional": true + }, + "fuse.js": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "jwt-decode": { + "optional": true + }, + "nprogress": { + "optional": true + }, + "qrcode": { + "optional": true + }, + "sortablejs": { + "optional": true + }, + "universal-cookie": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "14.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-14.3.0.tgz", + "integrity": "sha512-BwxmbAzwAVF50+MW57GXOUEV61nFBGnlBvrTqj49PqWJu3uw7hdu72ztXeZ33RdZtDY6kO+bfCAE1PCn88Tktw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "14.3.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-14.3.0.tgz", + "integrity": "sha512-bZpge9eSXwa4ToSiqJ7j6KRwhAsneMFoSz3LMWKQDkqimm3D/tbFlrklrs/IOqC8tEcYmXQZJ6N0UrjhBirVCg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/birpc": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", + "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/blake3-wasm": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", + "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", + "dev": true, + "license": "MIT" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cose-base": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", + "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", + "license": "MIT", + "dependencies": { + "layout-base": "^1.0.0" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "license": "MIT" + }, + "node_modules/cytoscape": { + "version": "3.33.4", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.4.tgz", + "integrity": "sha512-HIN5Pmd9MrX9BkV7tDwnOcEJCSFvCpc8X97h3f508J6I5FsqAY65wKOCvgH2CuP42CaahWaz4tuh32SOOIH7ww==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/cytoscape-cose-bilkent": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", + "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", + "license": "MIT", + "dependencies": { + "cose-base": "^1.0.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", + "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", + "license": "MIT", + "dependencies": { + "cose-base": "^2.2.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/cose-base": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", + "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", + "license": "MIT", + "dependencies": { + "layout-base": "^2.0.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/layout-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", + "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==", + "license": "MIT" + }, + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-sankey": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", + "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "license": "BSD-3-Clause", + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-sankey/node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-path": "1" + } + }, + "node_modules/d3-sankey/node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "license": "ISC" + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es": { + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.14.tgz", + "integrity": "sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==", + "license": "MIT", + "dependencies": { + "d3": "^7.9.0", + "lodash-es": "^4.17.21" + } + }, + "node_modules/dayjs": { + "version": "1.11.21", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.21.tgz", + "integrity": "sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==", + "license": "MIT" + }, + "node_modules/delaunator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.1.0.tgz", + "integrity": "sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==", + "license": "ISC", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dompurify": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.7.tgz", + "integrity": "sha512-2jBxDJY4RR06tQNy4w5FlFH7kfxsQZlufd0sbv+chfHCxeJwrFw2baUDsSwvBISD4K4RDbd0PTfy3uNXsR6siA==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-stack-parser-es": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", + "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/es-toolkit": { + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.47.0.tgz", + "integrity": "sha512-n1GuoD0WEQZMBk5tttoZSqwgyLx01oqa5XsBmCHwPyNe1S9jPBEmtR2pSgp2kJuWE3ciFZ6yRHmY4pM4C3OOkw==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks" + ] + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/focus-trap": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-8.2.1.tgz", + "integrity": "sha512-6CxwrrFRquH7pDXb1mWxudkU9LSfYBMRZutpgddb2o6iwCk7cIRrBhyY3c8SGKcmIKdeMTrGSNg4Bedh2RSF/w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "tabbable": "^6.4.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/hachure-fill": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz", + "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==", + "license": "MIT" + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/katex": { + "version": "0.16.47", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.47.tgz", + "integrity": "sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/khroma": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", + "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==" + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/layout-base": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", + "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz", + "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/marked": { + "version": "16.4.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.2.tgz", + "integrity": "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/medium-zoom": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/medium-zoom/-/medium-zoom-1.1.0.tgz", + "integrity": "sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==", + "license": "MIT" + }, + "node_modules/mermaid": { + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.15.0.tgz", + "integrity": "sha512-pTMbcf3rWdtLiYGpmoTjHEpeY8seiy6sR+9nD7LOs8KfUbHE4lOUAprTRqRAcWSQ6MQpdX+YEsxShtGsINtPtw==", + "license": "MIT", + "dependencies": { + "@braintree/sanitize-url": "^7.1.1", + "@iconify/utils": "^3.0.2", + "@mermaid-js/parser": "^1.1.1", + "@types/d3": "^7.4.3", + "@upsetjs/venn.js": "^2.0.0", + "cytoscape": "^3.33.1", + "cytoscape-cose-bilkent": "^4.1.0", + "cytoscape-fcose": "^2.2.0", + "d3": "^7.9.0", + "d3-sankey": "^0.12.3", + "dagre-d3-es": "7.0.14", + "dayjs": "^1.11.19", + "dompurify": "^3.3.1", + "es-toolkit": "^1.45.1", + "katex": "^0.16.25", + "khroma": "^2.1.0", + "marked": "^16.3.0", + "roughjs": "^4.6.6", + "stylis": "^4.3.6", + "ts-dedent": "^2.2.0", + "uuid": "^11.1.0 || ^12 || ^13 || ^14.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/miniflare": { + "version": "4.20260526.0", + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20260526.0.tgz", + "integrity": "sha512-JYQ7jPZZWoaaj9jWHb8Ucp6Cu2SbDVqIsAJhumqdzzLkkfq0pYkDeino/sZfW1ixJWPjv/C44zjm9gVJC2izCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "0.8.1", + "sharp": "^0.34.5", + "undici": "7.24.8", + "workerd": "1.20260526.1", + "ws": "8.20.1", + "youch": "4.1.0-beta.10" + }, + "bin": { + "miniflare": "bootstrap.js" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/minisearch": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.2.0.tgz", + "integrity": "sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/oniguruma-parser": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz", + "integrity": "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==", + "dev": true, + "license": "MIT" + }, + "node_modules/oniguruma-to-es": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.6.tgz", + "integrity": "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "oniguruma-parser": "^0.12.2", + "regex": "^6.1.0", + "regex-recursion": "^6.0.2" + } + }, + "node_modules/package-manager-detector": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", + "license": "MIT" + }, + "node_modules/path-data-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz", + "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==", + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", + "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/points-on-curve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz", + "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==", + "license": "MIT" + }, + "node_modules/points-on-path": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz", + "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==", + "license": "MIT", + "dependencies": { + "path-data-parser": "0.1.0", + "points-on-curve": "0.2.0" + } + }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", + "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "dev": true, + "license": "MIT" + }, + "node_modules/robust-predicates": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", + "integrity": "sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==", + "license": "Unlicense" + }, + "node_modules/rollup": { + "version": "4.61.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.61.0.tgz", + "integrity": "sha512-T9mWdbWfQtp0B5lv/HX+wrhYsmXRlcWnXXmJbXqKJhlRaoS6KMhq0gpyzW4UJfclcxrEdLnTgjT2NjruLONu0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.9" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.61.0", + "@rollup/rollup-android-arm64": "4.61.0", + "@rollup/rollup-darwin-arm64": "4.61.0", + "@rollup/rollup-darwin-x64": "4.61.0", + "@rollup/rollup-freebsd-arm64": "4.61.0", + "@rollup/rollup-freebsd-x64": "4.61.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.61.0", + "@rollup/rollup-linux-arm-musleabihf": "4.61.0", + "@rollup/rollup-linux-arm64-gnu": "4.61.0", + "@rollup/rollup-linux-arm64-musl": "4.61.0", + "@rollup/rollup-linux-loong64-gnu": "4.61.0", + "@rollup/rollup-linux-loong64-musl": "4.61.0", + "@rollup/rollup-linux-ppc64-gnu": "4.61.0", + "@rollup/rollup-linux-ppc64-musl": "4.61.0", + "@rollup/rollup-linux-riscv64-gnu": "4.61.0", + "@rollup/rollup-linux-riscv64-musl": "4.61.0", + "@rollup/rollup-linux-s390x-gnu": "4.61.0", + "@rollup/rollup-linux-x64-gnu": "4.61.0", + "@rollup/rollup-linux-x64-musl": "4.61.0", + "@rollup/rollup-openbsd-x64": "4.61.0", + "@rollup/rollup-openharmony-arm64": "4.61.0", + "@rollup/rollup-win32-arm64-msvc": "4.61.0", + "@rollup/rollup-win32-ia32-msvc": "4.61.0", + "@rollup/rollup-win32-x64-gnu": "4.61.0", + "@rollup/rollup-win32-x64-msvc": "4.61.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rosie-skills": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/rosie-skills/-/rosie-skills-0.6.4.tgz", + "integrity": "sha512-ojfhSiQRdZ2QyWbmKAHOSAUbaLYrTc5zIH7mS1jKoP8KCFSQddwVhMyFqldckTeybTfW3zNcsZzyOTzGTN1SBA==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "rosie-skills": "dist/bin.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "rosie-skills-darwin-arm64": "0.6.4", + "rosie-skills-freebsd-x64": "0.6.4", + "rosie-skills-linux-x64": "0.6.4" + } + }, + "node_modules/rosie-skills-darwin-arm64": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/rosie-skills-darwin-arm64/-/rosie-skills-darwin-arm64-0.6.4.tgz", + "integrity": "sha512-rn1s5hqFKcxeiDEWWoFa1hdGPshR8TkwHLzy/cBavb9XJNAaUxbe3oQ78W9sQkRHAgRyzJYyk9tw68Qrdnizgg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/rosie-skills-freebsd-x64": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/rosie-skills-freebsd-x64/-/rosie-skills-freebsd-x64-0.6.4.tgz", + "integrity": "sha512-SxCRduPBMtfjkQ+q56Yw9OLA3PyaqoALzt7kER7IDKuUVfM2O/1w8sa5xhTDiCvWkZJixnH5d5Ya6KT+/Mwcng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/rosie-skills-linux-x64": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/rosie-skills-linux-x64/-/rosie-skills-linux-x64-0.6.4.tgz", + "integrity": "sha512-D9Y9mfu7goB0s0X59uU3hcFeUTef3VbpCIDwFMzyvJrAq3XhRACWBDMHQsHlyWdHxTXPX/ILyW65RXyrJlgqng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/roughjs": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz", + "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==", + "license": "MIT", + "dependencies": { + "hachure-fill": "^0.5.2", + "path-data-parser": "^0.1.0", + "points-on-curve": "^0.2.0", + "points-on-path": "^0.2.1" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, + "node_modules/shiki": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.23.0.tgz", + "integrity": "sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/core": "3.23.0", + "@shikijs/engine-javascript": "3.23.0", + "@shikijs/engine-oniguruma": "3.23.0", + "@shikijs/langs": "3.23.0", + "@shikijs/themes": "3.23.0", + "@shikijs/types": "3.23.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stylis": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.4.0.tgz", + "integrity": "sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==", + "license": "MIT" + }, + "node_modules/tabbable": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", + "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz", + "integrity": "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/undici": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.8.tgz", + "integrity": "sha512-6KQ/+QxK49Z/p3HO6E5ZCZWNnCasyZLa5ExaVYyvPxUwKtbCPMKELJOqh7EqOle0t9cH/7d2TaaTRRa6Nhs4YQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, + "node_modules/unenv": { + "version": "2.0.0-rc.24", + "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.24.tgz", + "integrity": "sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "pathe": "^2.0.3" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/uuid": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.0.tgz", + "integrity": "sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vitepress": { + "version": "2.0.0-alpha.17", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-2.0.0-alpha.17.tgz", + "integrity": "sha512-Z3VPUpwk/bHYqt1uMVOOK1/4xFiWQov1GNc2FvMdz6kvje4JRXEOngVI9C+bi5jeedMSHiA4dwKkff1NCvbZ9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@docsearch/css": "^4.5.3", + "@docsearch/js": "^4.5.3", + "@docsearch/sidepanel-js": "^4.5.3", + "@iconify-json/simple-icons": "^1.2.69", + "@shikijs/core": "^3.22.0", + "@shikijs/transformers": "^3.22.0", + "@shikijs/types": "^3.22.0", + "@types/markdown-it": "^14.1.2", + "@vitejs/plugin-vue": "^6.0.4", + "@vue/devtools-api": "^8.0.5", + "@vue/shared": "^3.5.27", + "@vueuse/core": "^14.2.0", + "@vueuse/integrations": "^14.2.0", + "focus-trap": "^8.0.0", + "mark.js": "8.11.1", + "minisearch": "^7.2.0", + "shiki": "^3.22.0", + "vite": "^7.3.1", + "vue": "^3.5.27" + }, + "bin": { + "vitepress": "bin/vitepress.js" + }, + "peerDependencies": { + "markdown-it-mathjax3": "^4", + "oxc-minify": "*", + "postcss": "^8" + }, + "peerDependenciesMeta": { + "markdown-it-mathjax3": { + "optional": true + }, + "oxc-minify": { + "optional": true + }, + "postcss": { + "optional": true + } + } + }, + "node_modules/vitepress/node_modules/@esbuild/linux-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vitepress/node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/vitepress/node_modules/@vitejs/plugin-vue": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.7.tgz", + "integrity": "sha512-km+p+XdSz9Sxm5rqUbqcSfZYaAniKxWBj1KURl+Jr7UaPvvX7BmaWMdP69I5rrFDeQGyxAG7NXdc57vz+snhWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/vitepress/node_modules/esbuild": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" + } + }, + "node_modules/vitepress/node_modules/vite": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.3.tgz", + "integrity": "sha512-/4XH147Ui7OGTjg3HbdWe5arnZQSbfuRzdr9Ec7TQi5I7R+ir0Rlc9GIvD4v0XZurELqA035KVXJXpR61xhiTA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.5.35", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.35.tgz", + "integrity": "sha512-cx89fnr+0kVGHiNFG6y6s0bdjypJRFNZn6x3WPstNdQR1bi1mbB7h4v5IBGTsPJU3nK1+0Iqj3Zf+hZWMieR4Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.5.35", + "@vue/compiler-sfc": "3.5.35", + "@vue/runtime-dom": "3.5.35", + "@vue/server-renderer": "3.5.35", + "@vue/shared": "3.5.35" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/workerd": { + "version": "1.20260526.1", + "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20260526.1.tgz", + "integrity": "sha512-IHzymht98p10JH1zzwdCpbViAqw97HrwKl7+KfZeASFMsYSrIsAULWdPn0LRC5FTUzBpamLNyKCCKxbgXHgRHQ==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "workerd": "bin/workerd" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "@cloudflare/workerd-darwin-64": "1.20260526.1", + "@cloudflare/workerd-darwin-arm64": "1.20260526.1", + "@cloudflare/workerd-linux-64": "1.20260526.1", + "@cloudflare/workerd-linux-arm64": "1.20260526.1", + "@cloudflare/workerd-windows-64": "1.20260526.1" + } + }, + "node_modules/wrangler": { + "version": "4.95.0", + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.95.0.tgz", + "integrity": "sha512-vgXzFVSCdUbeCadgVXvu8fK5tzNm8T9W+7lriyGWZMx0B1+CAdr4d8JTlZszHfgjypRAHmAxb49etZGIRD9pgg==", + "dev": true, + "license": "MIT OR Apache-2.0", + "dependencies": { + "@cloudflare/kv-asset-handler": "0.5.0", + "@cloudflare/unenv-preset": "2.16.1", + "blake3-wasm": "2.1.5", + "esbuild": "0.27.3", + "miniflare": "4.20260526.0", + "path-to-regexp": "6.3.0", + "rosie-skills": "^0.6.3", + "unenv": "2.0.0-rc.24", + "workerd": "1.20260526.1" + }, + "bin": { + "wrangler": "bin/wrangler.js", + "wrangler2": "bin/wrangler.js" + }, + "engines": { + "node": ">=22.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@cloudflare/workers-types": "^4.20260526.1" + }, + "peerDependenciesMeta": { + "@cloudflare/workers-types": { + "optional": true + } + } + }, + "node_modules/wrangler/node_modules/@esbuild/aix-ppc64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/android-arm": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/android-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/android-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/darwin-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/darwin-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/freebsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-arm": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-ia32": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-loong64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-mips64el": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-ppc64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-riscv64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-s390x": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/linux-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/netbsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/openbsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/sunos-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/win32-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/win32-ia32": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/@esbuild/win32-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/wrangler/node_modules/esbuild": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.3", + "@esbuild/android-arm": "0.27.3", + "@esbuild/android-arm64": "0.27.3", + "@esbuild/android-x64": "0.27.3", + "@esbuild/darwin-arm64": "0.27.3", + "@esbuild/darwin-x64": "0.27.3", + "@esbuild/freebsd-arm64": "0.27.3", + "@esbuild/freebsd-x64": "0.27.3", + "@esbuild/linux-arm": "0.27.3", + "@esbuild/linux-arm64": "0.27.3", + "@esbuild/linux-ia32": "0.27.3", + "@esbuild/linux-loong64": "0.27.3", + "@esbuild/linux-mips64el": "0.27.3", + "@esbuild/linux-ppc64": "0.27.3", + "@esbuild/linux-riscv64": "0.27.3", + "@esbuild/linux-s390x": "0.27.3", + "@esbuild/linux-x64": "0.27.3", + "@esbuild/netbsd-arm64": "0.27.3", + "@esbuild/netbsd-x64": "0.27.3", + "@esbuild/openbsd-arm64": "0.27.3", + "@esbuild/openbsd-x64": "0.27.3", + "@esbuild/openharmony-arm64": "0.27.3", + "@esbuild/sunos-x64": "0.27.3", + "@esbuild/win32-arm64": "0.27.3", + "@esbuild/win32-ia32": "0.27.3", + "@esbuild/win32-x64": "0.27.3" + } + }, + "node_modules/wrangler/node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/ws": { + "version": "8.20.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.1.tgz", + "integrity": "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/youch": { + "version": "4.1.0-beta.10", + "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.0-beta.10.tgz", + "integrity": "sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.5", + "@poppinss/dumper": "^0.6.4", + "@speed-highlight/core": "^1.2.7", + "cookie": "^1.0.2", + "youch-core": "^0.3.3" + } + }, + "node_modules/youch-core": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.3.tgz", + "integrity": "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@poppinss/exception": "^1.2.2", + "error-stack-parser-es": "^1.0.5" + } + }, + "node_modules/youch/node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/package.json b/package.json index 93ae64b18f..f6af06aedd 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,14 @@ "version": "1.0.0", "description": "Documentation for Kitsu, CG production manager", "main": "index.js", + "type": "module", "scripts": { - "docs:dev": "vuepress dev docs", - "docs:build": "vuepress build docs" + "dev": "vitepress dev docs", + "build": "vitepress build docs", + "docs:dev": "vitepress dev docs", + "docs:build": "vitepress build docs", + "preview": "vitepress preview docs", + "deploy": "wrangler deploy" }, "repository": { "type": "git", @@ -23,6 +28,13 @@ }, "homepage": "https://github.com/cgwire/kitsu#readme", "devDependencies": { - "vuepress": "1.9.10" + "vitepress": "^2.0.0-alpha.16", + "vue": "^3.5.13", + "wrangler": "^4.61.1" + }, + "dependencies": { + "@lucide/vue": "^1.25.0", + "medium-zoom": "^1.1.0", + "mermaid": "^11.13.0" } } diff --git a/toc.md b/toc.md new file mode 100644 index 0000000000..e07d7f90f2 --- /dev/null +++ b/toc.md @@ -0,0 +1,516 @@ +- Getting Started With Kitsu + - Studio Workflows + - Understanding Studio Workflows + - Global Library VS Production Library + - Departments + - Creating Departments + - Task Types + - Creating a New Task Type + - Asset Types + - Define Your Asset Workflow + - Task Statuses + - Define Your Approval Workflow + - Automation + - Create a New Status Automation + - 3D Backgrounds + - Create a Global Library of HDR Files + - Asset Library + - What is the Asset Library? + - How to Use the Asset Library + - Adding Assets to the Library + - Settings + - Configuring Kitsu + - Studio Settings +- Preparing Your Team + - Creating Users + - Creating Users and Linking Them to Departments + - Permission Roles + - Understanding Permission Roles + - Create and edit a production + - Manage the studio + - Manage productions + - Two-Factor Authentication + - Add Additional Security to Your Studio + - Available Two-Factor Authentication Methods + - Adding Users to the Team +- Create Your Production +- Create a TV Show Production + - Introduction to Kitsu's Global Page + - Main Menu + - Navigation + - Global Search, News, Notification, and Documentation + - Personal Settings + - The Tasks Spreadsheet + - Entity Spreadsheet + - Filters + - Simplify the Display + - Import / Export + - Metadata Column + - Customize the View + - Sum-up of your view + - Create an Asset + - Create Your First Asset + - Viewing Details of an Asset + - Update Your Assets + - Add More Tasks After Creating the Assets + - Create a Concept + - Upload a Concept + - Link a Concept to an Asset + - Create a Shot + - Create Your First Shot + - Create Shots from an EDL File + - See the Details of a Shot + - Update your shots + - Add more tasks after creating the shots + - Adding Frame Numbers and Ranges to Shots + - Creating Custom Metadata Columns + - Create a Sequence + - Create an Edit + - Create a Breakdown List + - Casting from the Asset Library + - Introduction to Asset State: Ready For +- Create a Feature Film Production + - Introduction to the Kitsu Global Page + - Main Menu + - Navigation + - Global Search, News, Notification and Documentation + - Personal Settings + - The Tasks Spreadsheet + - Entity spreadsheet + - Filters + - Simplify the display + - Import / Export + - Metadata column + - Customize the view + - Sum-up of your view + - Create an Asset + - Create your first asset + - See the Details of an Asset + - Add more tasks after creating the assets + - Update your assets + - Create a Concept + - Upload a Concept + - Link a Concept to an Asset + - Create a Shot + - Create your first shot + - Create Shots from an EDL File + - See the Details of a Shot + - Add more tasks after creating the shots + - Update your shots + - Add the number of Frames and Frame ranges to the shots + - Create Custom Metadata Columns + - Create a Sequence + - Create an Edit + - Create a Breakdown List + - Casting from the Asset Library + - Introduction to Asset State: Ready For +- Create a Short Production (assets and shots) + - Introduction to the Kitsu Global Page + - Main Menu + - Navigation + - Global Search, News, Notification and Documentation + - Personal Settings + - The Tasks Spreadsheet + - Entity spreadsheet + - Filters + - Simplify the display + - Import / Export + - Metadata column + - Customize the view + - Sum-up of your view + - Create an Asset + - Create your first asset + - See the Details of an Asset + - Add more tasks after creating the assets + - Update your assets + - Create a Concept + - Upload a concept + - Link a Concept to an Asset + - Create a Shot + - Create your first shot + - Create Shots from an EDL File + - See the Details of a Shot + - Add more tasks after creating the shots + - Update your shots + - Add the number of Frames and Frame ranges to the shots + - Create Custom Metadata Columns + - Create a Sequence + - Create an Edit + - Create a Breakdown List + - Casting from the Asset Library + - Introduction to Asset State: Ready For +- Create a SHOTS-only Production + - Introduction to the Kitsu Global Page + - Main Menu + - Navigation + - Global Search, News, Notification and Documentation + - Personal Settings + - The Tasks Spreadsheet + - Entity spreadsheet + - Filters + - Simplify the display + - Import / Export + - Metadata column + - Customize the view + - Sum-up of your view + - Create a Shot + - Create your first shot + - Create Shots from an EDL File + - See the Details of a Shot + - Add more tasks after creating the shots + - Update your shots + - Add the number of Frames and Frame ranges to the shots + - Create Custom Metadata Columns + - Create a Sequence + - Create an Edit +- Create an ASSET-only Production + - Introduction to the Kitsu Global Page + - Main Menu + - Navigation + - Global Search, News, Notification and Documentation + - Personal Settings + - The Tasks Spreadsheet + - Entity spreadsheet + - Filters + - Simplify the display + - Import / Export + - Metadata column + - Customize the view + - Sum-up of your view + - Create an Asset + - Create your first Asset + - See the Details of an Asset + - Add more tasks after creating the assets + - Update your assets + - Create a Concept + - Upload a Concept + - Link a Concept to an Asset + - Create Custom Metadata Columns + - Create an Edit + - Create a Breakdown List + - Casting from the Asset Library +- Create a Video Game Production + - Introduction to the Kitsu Global Page + - Main Menu + - Navigation + - Global Search, News, Notification and Documentation + - Personal Settings + - The Tasks Spreadsheet + - Entity spreadsheet + - Filters + - Simplify the display + - Import / Export + - Metadata column + - Customize the view + - Sum-up of your view + - Create an Asset + - Create your first asset + - See the Details of an Asset + - Add more tasks after creating the assets + - Update your assets + - Create a Concept + - Upload a Concept + - Link a Concept to an Asset + - Create a map + - Create your first map + - Create maps from an EDL File + - See the Details of a map + - Add more tasks after creating the maps + - Update your maps + - Add the number of Frames and Frame ranges to the maps + - Create Custom Metadata Columns + - Create a level + - Create an Edit + - Create a Breakdown List + - Casting from the Asset Library + - Introduction to Asset State: Ready For +- Create a NFT Collection + - Introduction to the Kitsu Global Page + - Main Menu + - Navigation + - Global Search, News, Notification and Documentation + - Personal Settings + - The Tasks Spreadsheet + - Entity spreadsheet + - Filters + - Simplify the display + - Import / Export + - Metadata column + - Customize the view + - Sum-up of your view + - Create an Asset + - Create your first asset + - See the Details of an Asset + - Add more tasks after creating the assets + - Update your assets + - Create a Concept + - Upload a Concept + - Link a Concept to an Asset + - Create a NFT Collection + - Create your first NFT Collection + - See the Details of an NFT Collection + - Add more tasks after creating the NFT Collections + - Update your NFT Collections + - Create Custom Metadata Columns + - Create a Breakdown List + - Casting from the Asset Library + - Introduction to Asset State: Ready For +- Meta Columns, Filters and Production Settings +- Meta Columns + - Create Metadata Columns + - Linking Metadata Columns to Departments + - Organizing Metadata Columns + - Display or Hide All Metadata Columns + - Display or Hide a single Metadata Column + - Sticky Columns +- Filters + - The Search Bar + - Using the Search Bar to Create Filters + - Example Filters + - Creating Filters + - Utilising the Filter Builder + - Task Status Filtering + - Metadata Filtering + - Assignment Filtering + - Thumbnail Filtering + - Priority Filtering + - Using the "Ready For" status + - Managing Saved Filters + - Deleting a Filter + - Pre-built Filters +- Production Specific Workflow Settings + - Configure Production-Specific Settings + - Task Statuses + - Configuring Specific Task Types for a Production + - Task Types + - Enabling Specific Task Types for a Production + - Asset Types + - Enabling Specific Asset Types for a Production + - Status Automation + - Configuring Status Automation for a Production + - Preview Backgrounds + - Select Specific Preview Background for a Production + - Artist Board + - Artist Board Status Configuration +- Assignments, Estimates and Scheduling +- Tasks Assignments + - Add Users to the Team + - How to Assign Tasks + - Assign Tasks From the Global Page + - Assign Tasks From the Detailed Task Type Page +- Estimates & Team Quotas + - Add an Estimate for a Task + - Detailed Task Type View Features: + - Forecasting Team Speed + - Forecast Your Team's Speed Using Estimated Quotas + - Quotas + - Using Quotas to Understand Your Teams Speed + - Quotas Based on Timesheets + - Quotas Based on Status Changes + - Changing Priorities +- Schedules + - Production Schedule + - The Production Schedule Gantt Chart + - Milestones + - Task Type Schedule + - Asset and Shot Schedule + - Studio Schedule + - Team Schedule +- Statuses, Publishes, and Thumbnails +- Statuses and Feedback + - The Comment Panel + - Tagging Team Members + - Adding Checklists + - Adding Attachments + - Changing Statuses In Bulk + - Updating Multiple Statuses at Once + - Artist Board Statuses + - Customizing Statuses Used on the Artist Board Page +- Publishes + - Publishing a Concept + - Linking a Concept to an Asset + - Publish a Preview as a Version + - Combining Previews Into a Version +- Thumbnails + - Add Thumbnails Manually + - Add Thumbnails Automatically + - Batch Upload Previews (as Thumbnails) +- Internal Review and Client Playlists +- Reviews + - Reviewing Tasks + - Drawing Annotations + - Tagging Frames + - Exporting Annotations + - Deleting Annotations + - Comparing Images + - Reviewing Concepts + - Playlists + - Create a Playlist + - Populating a Playlist + - Review Controls + - Review Room +- Daily & Weekly review + - Create a Playlist for your internal review + - Review and Validations +- Client Playlists + - Creating Client Playlists + - Reviewing Client Playlists + - Playback Controls + - Review Room +- Supervisor Workflows +- Managing Your Department + - Assigning Tasks & Bidding Estimates + - Daily Supervision Tasks + - Managing Your Department's Schedule + - Managing Department Quotas + - Department Timesheets +- Task Supervision + - Check Your Tasks + - Reviewing Previews + - Reviewing Concepts +- Producer Workflows +- Building Production Reports + - Production Overview + - News Feed Features + - Using Filters + - Example + - Know the Current State of the Production + - Short / Feature Specific + - Sequence Stats + - Asset Types Stats + - Count View + - Exporting Data + - TV Show Specific + - Retakes Display + - Status Display + - Ensure Tasks are On Time + - Methods to Compare Estimations and Actuals + - Filtering by Due Date Status + - Using the Late Status Filter + - Using the Gantt Diagram + - Understanding Why a Task is Late + - Checking an Artist's Workload + - Identifying Back-and-Forth + - Checking if the Task is Underestimated + - Checking the Previous Task + - Durations over Estimates + - Estimation Summary + - Task Type Duration over Estimation + - Durations over Estimations for an Asset / Shot + - Detailed Analysis + - Checking Quotas + - Method 1: Timesheet-Based Calculation + - Method 2: Status-Based Calculation + - Detailed Quota Calculation + - Team Timesheets + - Viewing Timesheets + - Exporting Timesheets +- Building Studio Reports + - Studio Resource Overview + - Current State of All Productions + - Stats Pages + - Studio Occupancy Rate + - Focusing on Specific Timeframes + - Modifying the Schedule + - Utilize the Main Schedule +- Artist Workflows +- Getting Started as an Artist + - Initial Setup and Profile Customization + - Managing Your Assignments + - Key Information Available: + - Additional Features: + - Updating Task Progress + - Updating Task Statuses + - View Your Assignments (Board View) + - View Your Assignments (Calendar View) + - Share Your Concepts + - Uploading Concepts: + - Linking Concepts to Assets: + - Request a Review + - Complete Your Timesheet + - How to Log Time: + - Missed a Day? +- Developer Workflows +- Custom Actions + - What are Custom Actions? + - Goal + - How to Setup a Custom Action + - Creation + - Data Sent via a Custom Action +- Bots + - Why Use a Bot + - How to Create a Bot + - Managing Bots + - Example Bot Usage + - Security Considerations +- Kitsu Publisher + - DCC Integrations Status: + - Installation + - Installation of the Kitsu Publisher + - Pre-Requisites + - On Linux + - On Windows + - On MacOS + - Development Environment + - Pre-Requisites + - Dependencies + - Run + - Build the Electron App + - Pre-Requisites + - Building the App + - Installation of the DCCs connectors + - Pre-requisites + - Blender (version>2.80) + - Toon Boom Harmony + - Unreal Editor (version>=5) + - Publishing Previews with the Kitsu Publisher + - Consult Your To-Do List + - Publish a Preview From the Publisher + - Setup the Publisher + - Change the Save Directory and Add Scripts + - View the Result of the Setting on the Export Pop-Up +- Chat Integration + - Discord Integration + - Create a Bot Account + - Inviting Your Bot + - Enable Discord Notifications + - Slack Integration + - Create a Kitsu Application in Slack + - Set the Right Permissions + - Install the App in Your Workspace + - Get the Token + - Link Kitsu to Your New Slack Application + - Enable Slack Notifications in Your Profile + - Mattermost Integration + - Enable Incoming Webhooks, Custom Username, and Profile Picture for Webhooks + - Set a Webhook in Mattermost + - Enable Mattermost Notifications +- Open Source Setup + - Cloud Hosting + - Self-Hosting + - Development Environment + - Prerequisites + - Using Docker Image + - Development + - Build + - Tests + - Architecture +- Frequently Asked Questions + - Login Issues + - I can't log in to Kitsu anymore + - Task Management + - I created a new Task Type, but I don't see it in my production + - Understanding the Difference: + - Steps to Add Task Types to Your Production + - My Task Type columns are not in the right order + - Task Type columns are missing + - Team and Assignments + - I can't assign anyone to a task + - Steps to Add People to a Production + - All assignments have disappeared + - Production Management + - How to Delete or Archive a Production + - Steps to Archive a Production + - Steps to Delete a Production + - Miscellaneous + - Where can I see the storage I'm using? diff --git a/wrangler.jsonc b/wrangler.jsonc new file mode 100644 index 0000000000..3a5f8b9b1f --- /dev/null +++ b/wrangler.jsonc @@ -0,0 +1,7 @@ +{ + "name": "kitsu-docs", + "compatibility_date": "2026-06-02", + "assets": { + "directory": "./docs/.vitepress/dist" + } +} diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 8216c62977..0000000000 --- a/yarn.lock +++ /dev/null @@ -1,8738 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== - dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" - -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" - integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== - -"@babel/core@^7.11.0", "@babel/core@^7.8.4": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.5.tgz#6e23f2acbcb77ad283c5ed141f824fd9f70101c7" - integrity sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.5" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.5" - "@babel/parser" "^7.23.5" - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.5" - "@babel/types" "^7.23.5" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/generator@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" - integrity sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA== - dependencies: - "@babel/types" "^7.23.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" - integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" - integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== - dependencies: - "@babel/types" "^7.22.15" - -"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.9.6": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" - integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== - dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.15" - browserslist "^4.21.9" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz#2a8792357008ae9ce8c0f2b78b9f646ac96b314b" - integrity sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-member-expression-to-functions" "^7.23.0" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - semver "^6.3.1" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" - integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - regexpu-core "^5.3.1" - semver "^6.3.1" - -"@babel/helper-define-polyfill-provider@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba" - integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== - dependencies: - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" - integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== - dependencies: - "@babel/types" "^7.23.0" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5", "@babel/helper-module-imports@^7.8.3": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== - dependencies: - "@babel/types" "^7.22.15" - -"@babel/helper-module-transforms@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" - integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.20" - -"@babel/helper-optimise-call-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" - integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - -"@babel/helper-remap-async-to-generator@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" - integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-wrap-function" "^7.22.20" - -"@babel/helper-replace-supers@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" - integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-member-expression-to-functions" "^7.22.15" - "@babel/helper-optimise-call-expression" "^7.22.5" - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" - integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" - integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== - -"@babel/helper-wrap-function@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" - integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== - dependencies: - "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.15" - "@babel/types" "^7.22.19" - -"@babel/helpers@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e" - integrity sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg== - dependencies: - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.5" - "@babel/types" "^7.23.5" - -"@babel/highlight@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" - integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.18.4", "@babel/parser@^7.22.15", "@babel/parser@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" - integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" - integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" - integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.23.3" - -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" - integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-proposal-class-properties@^7.8.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-decorators@^7.8.3": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.5.tgz#eeaa49d0dc9229aec4d23378653738cdc5a3ea0a" - integrity sha512-6IsY8jOeWibsengGlWIezp7cuZEFzNlAghFpzh9wiZwhQ42/hRcPnY/QV9HJoKTlujupinSlnQPiEy/u2C1ZfQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.23.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/plugin-syntax-decorators" "^7.23.3" - -"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": - version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" - integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-decorators@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz#a1d351d6c25bfdcf2e16f99b039101bc0ffcb0ca" - integrity sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-import-assertions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" - integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-attributes@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" - integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-meta@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.8.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" - integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" - integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-arrow-functions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" - integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-async-generator-functions@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" - integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.20" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-transform-async-to-generator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" - integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== - dependencies: - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.20" - -"@babel/plugin-transform-block-scoped-functions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" - integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-block-scoping@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" - integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-class-properties@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" - integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-class-static-block@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" - integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-transform-classes@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" - integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" - "@babel/helper-split-export-declaration" "^7.22.6" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" - integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.15" - -"@babel/plugin-transform-destructuring@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" - integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-dotall-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" - integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-duplicate-keys@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" - integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-dynamic-import@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" - integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-transform-exponentiation-operator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" - integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-export-namespace-from@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" - integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-transform-for-of@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559" - integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-function-name@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" - integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== - dependencies: - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-json-strings@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" - integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-transform-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" - integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-logical-assignment-operators@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" - integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-transform-member-expression-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" - integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-modules-amd@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" - integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== - dependencies: - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-modules-commonjs@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" - integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== - dependencies: - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - -"@babel/plugin-transform-modules-systemjs@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz#fa7e62248931cb15b9404f8052581c302dd9de81" - integrity sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ== - dependencies: - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.20" - -"@babel/plugin-transform-modules-umd@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" - integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== - dependencies: - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" - integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-new-target@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" - integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" - integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-transform-numeric-separator@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" - integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-transform-object-rest-spread@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" - integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== - dependencies: - "@babel/compat-data" "^7.23.3" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.23.3" - -"@babel/plugin-transform-object-super@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" - integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" - -"@babel/plugin-transform-optional-catch-binding@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" - integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" - integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-transform-parameters@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" - integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-private-methods@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" - integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-private-property-in-object@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" - integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-transform-property-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" - integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-regenerator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" - integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - regenerator-transform "^0.15.2" - -"@babel/plugin-transform-reserved-words@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" - integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-runtime@^7.11.0": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.4.tgz#5132b388580002fc5cb7c84eccfb968acdc231cb" - integrity sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw== - dependencies: - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" - semver "^6.3.1" - -"@babel/plugin-transform-shorthand-properties@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" - integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-spread@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" - integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - -"@babel/plugin-transform-sticky-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" - integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-template-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" - integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-typeof-symbol@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" - integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-escapes@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" - integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-property-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" - integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" - integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-sets-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" - integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/preset-env@^7.11.0": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.5.tgz#350a3aedfa9f119ad045b068886457e895ba0ca1" - integrity sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A== - dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.23.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3" - "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.23.3" - "@babel/plugin-syntax-import-attributes" "^7.23.3" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.23.3" - "@babel/plugin-transform-async-generator-functions" "^7.23.4" - "@babel/plugin-transform-async-to-generator" "^7.23.3" - "@babel/plugin-transform-block-scoped-functions" "^7.23.3" - "@babel/plugin-transform-block-scoping" "^7.23.4" - "@babel/plugin-transform-class-properties" "^7.23.3" - "@babel/plugin-transform-class-static-block" "^7.23.4" - "@babel/plugin-transform-classes" "^7.23.5" - "@babel/plugin-transform-computed-properties" "^7.23.3" - "@babel/plugin-transform-destructuring" "^7.23.3" - "@babel/plugin-transform-dotall-regex" "^7.23.3" - "@babel/plugin-transform-duplicate-keys" "^7.23.3" - "@babel/plugin-transform-dynamic-import" "^7.23.4" - "@babel/plugin-transform-exponentiation-operator" "^7.23.3" - "@babel/plugin-transform-export-namespace-from" "^7.23.4" - "@babel/plugin-transform-for-of" "^7.23.3" - "@babel/plugin-transform-function-name" "^7.23.3" - "@babel/plugin-transform-json-strings" "^7.23.4" - "@babel/plugin-transform-literals" "^7.23.3" - "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" - "@babel/plugin-transform-member-expression-literals" "^7.23.3" - "@babel/plugin-transform-modules-amd" "^7.23.3" - "@babel/plugin-transform-modules-commonjs" "^7.23.3" - "@babel/plugin-transform-modules-systemjs" "^7.23.3" - "@babel/plugin-transform-modules-umd" "^7.23.3" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" - "@babel/plugin-transform-new-target" "^7.23.3" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" - "@babel/plugin-transform-numeric-separator" "^7.23.4" - "@babel/plugin-transform-object-rest-spread" "^7.23.4" - "@babel/plugin-transform-object-super" "^7.23.3" - "@babel/plugin-transform-optional-catch-binding" "^7.23.4" - "@babel/plugin-transform-optional-chaining" "^7.23.4" - "@babel/plugin-transform-parameters" "^7.23.3" - "@babel/plugin-transform-private-methods" "^7.23.3" - "@babel/plugin-transform-private-property-in-object" "^7.23.4" - "@babel/plugin-transform-property-literals" "^7.23.3" - "@babel/plugin-transform-regenerator" "^7.23.3" - "@babel/plugin-transform-reserved-words" "^7.23.3" - "@babel/plugin-transform-shorthand-properties" "^7.23.3" - "@babel/plugin-transform-spread" "^7.23.3" - "@babel/plugin-transform-sticky-regex" "^7.23.3" - "@babel/plugin-transform-template-literals" "^7.23.3" - "@babel/plugin-transform-typeof-symbol" "^7.23.3" - "@babel/plugin-transform-unicode-escapes" "^7.23.3" - "@babel/plugin-transform-unicode-property-regex" "^7.23.3" - "@babel/plugin-transform-unicode-regex" "^7.23.3" - "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" - "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" - core-js-compat "^3.31.0" - semver "^6.3.1" - -"@babel/preset-modules@0.1.6-no-external-plugins": - version "0.1.6-no-external-plugins" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" - integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/regjsgen@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" - integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== - -"@babel/runtime@^7.11.0", "@babel/runtime@^7.8.4": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.5.tgz#11edb98f8aeec529b82b211028177679144242db" - integrity sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/template@^7.22.15", "@babel/template@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/traverse@^7.22.5", "@babel/traverse@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" - integrity sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.5" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.5" - "@babel/types" "^7.23.5" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.5", "@babel/types@^7.4.4": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" - integrity sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w== - dependencies: - "@babel/helper-string-parser" "^7.23.4" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" - -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.20" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" - integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@types/body-parser@*": - version "1.19.5" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" - integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/connect-history-api-fallback@*": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" - integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - -"@types/connect@*": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": - version "4.17.41" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz#5077defa630c2e8d28aa9ffc2c01c157c305bef6" - integrity sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express@*": - version "4.17.21" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" - integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/highlight.js@^9.7.0": - version "9.12.4" - resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.4.tgz#8c3496bd1b50cc04aeefd691140aa571d4dbfa34" - integrity sha512-t2szdkwmg2JJyuCM20e8kR2X59WCE5Zkl4bzm1u1Oukjm79zpbiAv+QjnwLnuuV0WHEcX2NgUItu0pAMKuOPww== - -"@types/http-errors@*": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" - integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== - -"@types/http-proxy@^1.17.5": - version "1.17.14" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" - integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== - dependencies: - "@types/node" "*" - -"@types/json-schema@^7.0.5": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - -"@types/linkify-it@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.5.tgz#1e78a3ac2428e6d7e6c05c1665c242023a4601d8" - integrity sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw== - -"@types/markdown-it@^10.0.0": - version "10.0.3" - resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-10.0.3.tgz#a9800d14b112c17f1de76ec33eff864a4815eec7" - integrity sha512-daHJk22isOUvNssVGF2zDnnSyxHhFYhtjeX4oQaKD6QzL3ZR1QSgiD1g+Q6/WSWYVogNXYDXODtbgW/WiFCtyw== - dependencies: - "@types/highlight.js" "^9.7.0" - "@types/linkify-it" "*" - "@types/mdurl" "*" - highlight.js "^9.7.0" - -"@types/mdurl@*": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.5.tgz#3e0d2db570e9fb6ccb2dc8fde0be1d79ac810d39" - integrity sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA== - -"@types/mime@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45" - integrity sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw== - -"@types/mime@^1": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" - integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== - -"@types/minimatch@*": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - -"@types/node@*": - version "20.10.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.3.tgz#4900adcc7fc189d5af5bb41da8f543cea6962030" - integrity sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg== - dependencies: - undici-types "~5.26.4" - -"@types/q@^1.5.1": - version "1.5.8" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.8.tgz#95f6c6a08f2ad868ba230ead1d2d7f7be3db3837" - integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== - -"@types/qs@*": - version "6.9.10" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.10.tgz#0af26845b5067e1c9a622658a51f60a3934d51e8" - integrity sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw== - -"@types/range-parser@*": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" - integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== - -"@types/send@*": - version "0.17.4" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" - integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/serve-static@*": - version "1.15.5" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.5.tgz#15e67500ec40789a1e8c9defc2d32a896f05b033" - integrity sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ== - dependencies: - "@types/http-errors" "*" - "@types/mime" "*" - "@types/node" "*" - -"@types/source-list-map@*": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.6.tgz#164e169dd061795b50b83c19e4d3be09f8d3a454" - integrity sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g== - -"@types/tapable@^1": - version "1.0.12" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.12.tgz#bc2cab12e87978eee89fb21576b670350d6d86ab" - integrity sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q== - -"@types/uglify-js@*": - version "3.17.4" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.17.4.tgz#3c70021f08023e5a760ce133d22966f200e1d31c" - integrity sha512-Hm/T0kV3ywpJyMGNbsItdivRhYNCQQf1IIsYsXnoVPES4t+FMLyDe0/K+Ea7ahWtMtSNb22ZdY7MIyoD9rqARg== - dependencies: - source-map "^0.6.1" - -"@types/webpack-dev-server@^3": - version "3.11.6" - resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz#d8888cfd2f0630203e13d3ed7833a4d11b8a34dc" - integrity sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ== - dependencies: - "@types/connect-history-api-fallback" "*" - "@types/express" "*" - "@types/serve-static" "*" - "@types/webpack" "^4" - http-proxy-middleware "^1.0.0" - -"@types/webpack-sources@*": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.3.tgz#b667bd13e9fa15a9c26603dce502c7985418c3d8" - integrity sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw== - dependencies: - "@types/node" "*" - "@types/source-list-map" "*" - source-map "^0.7.3" - -"@types/webpack@^4": - version "4.41.38" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.38.tgz#5a40ac81bdd052bf405e8bdcf3e1236f6db6dc26" - integrity sha512-oOW7E931XJU1mVfCnxCVgv8GLFL768pDO5u2Gzk82i8yTIgX6i7cntyZOkZYb/JtYM8252SN9bQp9tgkVDSsRw== - dependencies: - "@types/node" "*" - "@types/tapable" "^1" - "@types/uglify-js" "*" - "@types/webpack-sources" "*" - anymatch "^3.0.0" - source-map "^0.6.0" - -"@vue/babel-helper-vue-jsx-merge-props@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz#8d53a1e21347db8edbe54d339902583176de09f2" - integrity sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA== - -"@vue/babel-helper-vue-transform-on@^1.1.5": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.1.5.tgz#a976486b21e108e545524fe41ffe3fc9bbc28c7f" - integrity sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w== - -"@vue/babel-plugin-jsx@^1.0.3": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.5.tgz#5088bae7dbb83531d94df3742ff650c12fd54973" - integrity sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g== - dependencies: - "@babel/helper-module-imports" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - "@vue/babel-helper-vue-transform-on" "^1.1.5" - camelcase "^6.3.0" - html-tags "^3.3.1" - svg-tags "^1.0.0" - -"@vue/babel-plugin-transform-vue-jsx@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.4.0.tgz#4d4b3d46a39ea62b7467dd6e26ce47f7ceafb2fe" - integrity sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0" - html-tags "^2.0.0" - lodash.kebabcase "^4.1.1" - svg-tags "^1.0.0" - -"@vue/babel-preset-app@^4.1.2": - version "4.5.19" - resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.5.19.tgz#baee457da0065c016f74fac4149f7c97631ba5a7" - integrity sha512-VCNRiAt2P/bLo09rYt3DLe6xXUMlhJwrvU18Ddd/lYJgC7s8+wvhgYs+MTx4OiAXdu58drGwSBO9SPx7C6J82Q== - dependencies: - "@babel/core" "^7.11.0" - "@babel/helper-compilation-targets" "^7.9.6" - "@babel/helper-module-imports" "^7.8.3" - "@babel/plugin-proposal-class-properties" "^7.8.3" - "@babel/plugin-proposal-decorators" "^7.8.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" - "@babel/plugin-transform-runtime" "^7.11.0" - "@babel/preset-env" "^7.11.0" - "@babel/runtime" "^7.11.0" - "@vue/babel-plugin-jsx" "^1.0.3" - "@vue/babel-preset-jsx" "^1.2.4" - babel-plugin-dynamic-import-node "^2.3.3" - core-js "^3.6.5" - core-js-compat "^3.6.5" - semver "^6.1.0" - -"@vue/babel-preset-jsx@^1.2.4": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.4.0.tgz#f4914ba314235ab097bc4372ed67473c0780bfcc" - integrity sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA== - dependencies: - "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.4.0" - "@vue/babel-sugar-composition-api-inject-h" "^1.4.0" - "@vue/babel-sugar-composition-api-render-instance" "^1.4.0" - "@vue/babel-sugar-functional-vue" "^1.4.0" - "@vue/babel-sugar-inject-h" "^1.4.0" - "@vue/babel-sugar-v-model" "^1.4.0" - "@vue/babel-sugar-v-on" "^1.4.0" - -"@vue/babel-sugar-composition-api-inject-h@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.4.0.tgz#187e1389f8871d89ece743bb50aed713be9d6c85" - integrity sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-composition-api-render-instance@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.4.0.tgz#2c1607ae6dffdab47e785bc01fa45ba756e992c1" - integrity sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-functional-vue@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.4.0.tgz#60da31068567082287c7337c66ef4df04e0a1029" - integrity sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-inject-h@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.4.0.tgz#bf39aa6631fb1d0399b1c49b4c59e1c8899b4363" - integrity sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-v-model@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.4.0.tgz#a51d986609f430c4f70ada3a93cc560a2970f720" - integrity sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.4.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.4.0" - camelcase "^5.0.0" - html-tags "^2.0.0" - svg-tags "^1.0.0" - -"@vue/babel-sugar-v-on@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.4.0.tgz#43b7106a9672d8cbeefc0eb8afe1d376edc6166e" - integrity sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.4.0" - camelcase "^5.0.0" - -"@vue/compiler-sfc@2.7.15": - version "2.7.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-2.7.15.tgz#62135fb2f69559fc723fd9c56b8e8b0ac7864a0b" - integrity sha512-FCvIEevPmgCgqFBH7wD+3B97y7u7oj/Wr69zADBf403Tui377bThTjBvekaZvlRr4IwUAu3M6hYZeULZFJbdYg== - dependencies: - "@babel/parser" "^7.18.4" - postcss "^8.4.14" - source-map "^0.6.1" - -"@vue/component-compiler-utils@^3.1.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz#f9f5fb53464b0c37b2c8d2f3fbfe44df60f61dc9" - integrity sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ== - dependencies: - consolidate "^0.15.1" - hash-sum "^1.0.2" - lru-cache "^4.1.2" - merge-source-map "^1.1.0" - postcss "^7.0.36" - postcss-selector-parser "^6.0.2" - source-map "~0.6.1" - vue-template-es2015-compiler "^1.9.0" - optionalDependencies: - prettier "^1.18.2 || ^2.0.0" - -"@vuepress/core@1.9.10": - version "1.9.10" - resolved "https://registry.yarnpkg.com/@vuepress/core/-/core-1.9.10.tgz#ce17d603a0195ab2b8152f5a33bea274869184a3" - integrity sha512-H9ddo5fSinPb8QYl8OJFbZikMpOW84bm/U3Drzz8CnCXNtpda7CU2wX/XzOhe98G8jp45xhtZRkxOrqzBBAShA== - dependencies: - "@babel/core" "^7.8.4" - "@vue/babel-preset-app" "^4.1.2" - "@vuepress/markdown" "1.9.10" - "@vuepress/markdown-loader" "1.9.10" - "@vuepress/plugin-last-updated" "1.9.10" - "@vuepress/plugin-register-components" "1.9.10" - "@vuepress/shared-utils" "1.9.10" - "@vuepress/types" "1.9.10" - autoprefixer "^9.5.1" - babel-loader "^8.0.4" - bundle-require "2.1.8" - cache-loader "^3.0.0" - chokidar "^2.0.3" - connect-history-api-fallback "^1.5.0" - copy-webpack-plugin "^5.0.2" - core-js "^3.6.4" - cross-spawn "^6.0.5" - css-loader "^2.1.1" - esbuild "0.14.7" - file-loader "^3.0.1" - js-yaml "^3.13.1" - lru-cache "^5.1.1" - mini-css-extract-plugin "0.6.0" - optimize-css-assets-webpack-plugin "^5.0.1" - portfinder "^1.0.13" - postcss-loader "^3.0.0" - postcss-safe-parser "^4.0.1" - toml "^3.0.0" - url-loader "^1.0.1" - vue "^2.6.10" - vue-loader "^15.7.1" - vue-router "^3.4.5" - vue-server-renderer "^2.6.10" - vue-template-compiler "^2.6.10" - vuepress-html-webpack-plugin "^3.2.0" - vuepress-plugin-container "^2.0.2" - webpack "^4.8.1" - webpack-chain "^6.0.0" - webpack-dev-server "^3.5.1" - webpack-merge "^4.1.2" - webpackbar "3.2.0" - -"@vuepress/markdown-loader@1.9.10": - version "1.9.10" - resolved "https://registry.yarnpkg.com/@vuepress/markdown-loader/-/markdown-loader-1.9.10.tgz#076619a9079d4955bb73b59dc9e474c488d49bb7" - integrity sha512-94BlwKc+lOaN/A5DkyA9KWHvMlMC1sWunAXE3Tv0WYzgYLDs9QqCsx7L5kLkpcOOVVm/8kBJumnXvVBwhqJddw== - dependencies: - "@vuepress/markdown" "1.9.10" - loader-utils "^1.1.0" - lru-cache "^5.1.1" - -"@vuepress/markdown@1.9.10": - version "1.9.10" - resolved "https://registry.yarnpkg.com/@vuepress/markdown/-/markdown-1.9.10.tgz#63df6c6137e2d6bac2d03b5911e4326484761ba7" - integrity sha512-sXTLjeZzH8SQuAL5AEH0hhsMljjNJbzWbBvzaj5yQCCdf+3sp/dJ0kwnBSnQjFPPnzPg5t3tLKGUYHyW0KiKzA== - dependencies: - "@vuepress/shared-utils" "1.9.10" - markdown-it "^8.4.1" - markdown-it-anchor "^5.0.2" - markdown-it-chain "^1.3.0" - markdown-it-emoji "^1.4.0" - markdown-it-table-of-contents "^0.4.0" - prismjs "^1.13.0" - -"@vuepress/plugin-active-header-links@1.9.10": - version "1.9.10" - resolved "https://registry.yarnpkg.com/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.9.10.tgz#bcd96ee7c156310de30a9565ab9ca18e72f18a5a" - integrity sha512-2dRr3DE2UBFXhyMtLR3sGTdRyDM8YStuY6AOoQmoSgwy1IHt7PO7ypOuf1akF+1Nv8Q2aISU06q6TExZouu3Mw== - dependencies: - "@vuepress/types" "1.9.10" - lodash.debounce "^4.0.8" - -"@vuepress/plugin-last-updated@1.9.10": - version "1.9.10" - resolved "https://registry.yarnpkg.com/@vuepress/plugin-last-updated/-/plugin-last-updated-1.9.10.tgz#e2564512fe5652be892351cd95c5e611fd11a3be" - integrity sha512-YxzWGF/OfU6WsHSynZFn74NGGp7dY27Bjy9JyyFo8wF5+2V1gpyDjveHKHGKugS/pMXlxfjzhv9E2Wmy9R7Iog== - dependencies: - "@vuepress/types" "1.9.10" - cross-spawn "^6.0.5" - -"@vuepress/plugin-nprogress@1.9.10": - version "1.9.10" - resolved "https://registry.yarnpkg.com/@vuepress/plugin-nprogress/-/plugin-nprogress-1.9.10.tgz#945142c2db4a2a11942c063d5d0f01bc5d295f49" - integrity sha512-I1kkm6yWUQd7vwiV3lEDVpVP0Lr04K0zlczU502lDUa1RufSZ7vt+mlF5fOM28GqT+pKTEToWmm+VNT/R3qvMQ== - dependencies: - "@vuepress/types" "1.9.10" - nprogress "^0.2.0" - -"@vuepress/plugin-register-components@1.9.10": - version "1.9.10" - resolved "https://registry.yarnpkg.com/@vuepress/plugin-register-components/-/plugin-register-components-1.9.10.tgz#3f8fd91acefec32b115d4dce89b14863cbe29212" - integrity sha512-sgdJ5OydTPZAoTkselpvVP3Xsd6bfZ0FpaxOTinal0gJ99h49lvLu9bvzMx13rdGRFO/kRXn0qQQpwKTAfTPqA== - dependencies: - "@vuepress/shared-utils" "1.9.10" - "@vuepress/types" "1.9.10" - -"@vuepress/plugin-search@1.9.10": - version "1.9.10" - resolved "https://registry.yarnpkg.com/@vuepress/plugin-search/-/plugin-search-1.9.10.tgz#313a504020d60a2f694b27a8b6457ee99b4c71e7" - integrity sha512-bn2XJikaRgQZXvu8upCjOWrxbLHIRTqnJ3w7G0mo6jCYWGVsHNo6XhVpqylpLR2PWnHT/ImO2bGo38/5Bag/tQ== - dependencies: - "@vuepress/types" "1.9.10" - -"@vuepress/shared-utils@1.9.10", "@vuepress/shared-utils@^1.2.0": - version "1.9.10" - resolved "https://registry.yarnpkg.com/@vuepress/shared-utils/-/shared-utils-1.9.10.tgz#45aae7fcf07a2067fb340c71e5bd96837b48dfee" - integrity sha512-M9A3DocPih+V8dKK2Zg9FJQ/f3JZrYsdaM/vQ9F48l8bPlzxw5NvqXIYMK4kKcGEyerQNTWCudoCpLL5uiU0hg== - dependencies: - chalk "^2.3.2" - escape-html "^1.0.3" - fs-extra "^7.0.1" - globby "^9.2.0" - gray-matter "^4.0.1" - hash-sum "^1.0.2" - semver "^6.0.0" - toml "^3.0.0" - upath "^1.1.0" - -"@vuepress/theme-default@1.9.10": - version "1.9.10" - resolved "https://registry.yarnpkg.com/@vuepress/theme-default/-/theme-default-1.9.10.tgz#6e916e2164ab3d9cc9567610e4ada9c3a568f206" - integrity sha512-XnXn9t+pYCIhWi3cZXJlighuy93FFm5yXdISAAlFlcNkshuGtqamkjacHV8q/QZMfOhSIs6wX7Hj88u2IsT5mw== - dependencies: - "@vuepress/plugin-active-header-links" "1.9.10" - "@vuepress/plugin-nprogress" "1.9.10" - "@vuepress/plugin-search" "1.9.10" - "@vuepress/types" "1.9.10" - docsearch.js "^2.5.2" - lodash "^4.17.15" - stylus "^0.54.8" - stylus-loader "^3.0.2" - vuepress-plugin-container "^2.0.2" - vuepress-plugin-smooth-scroll "^0.0.3" - -"@vuepress/types@1.9.10": - version "1.9.10" - resolved "https://registry.yarnpkg.com/@vuepress/types/-/types-1.9.10.tgz#5b8d112a0d7dbaffce1e5d39b66754412c83ecc6" - integrity sha512-TDNQn4og85onmBpLTTXXmncW3rUnYGr2MkuI8OIFJZetDNM49t1WbjNVlrT+kx7C6qXi6okDQgrHGYXajHZWfg== - dependencies: - "@types/markdown-it" "^10.0.0" - "@types/webpack-dev-server" "^3" - webpack-chain "^6.0.0" - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -agentkeepalive@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-2.2.0.tgz#c5d1bd4b129008f1163f236f86e5faea2026e2ef" - integrity sha512-TnB6ziK363p7lR8QpeLC8aMr8EGYBKZTpgzQLfqTs3bR0Oo5VbKdwKf8h0dSzsYrB7lSCgfJnMZKqShvlq5Oyg== - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -algoliasearch@^3.24.5: - version "3.35.1" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-3.35.1.tgz#297d15f534a3507cab2f5dfb996019cac7568f0c" - integrity sha512-K4yKVhaHkXfJ/xcUnil04xiSrB8B8yHZoFEhWNpXg23eiCnqvTZw1tn/SqvdsANlYHLJlKl0qi3I/Q2Sqo7LwQ== - dependencies: - agentkeepalive "^2.2.0" - debug "^2.6.9" - envify "^4.0.0" - es6-promise "^4.1.0" - events "^1.1.0" - foreach "^2.0.5" - global "^4.3.2" - inherits "^2.0.1" - isarray "^2.0.1" - load-script "^1.0.0" - object-keys "^1.0.11" - querystring-es3 "^0.2.1" - reduce "^1.0.1" - semver "^5.1.0" - tunnel-agent "^0.6.0" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== - -ansi-align@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" - integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== - dependencies: - string-width "^4.1.0" - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-escapes@^4.1.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-html-community@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== - -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.0.0, anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== - -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== - dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-union@^1.0.1, array-union@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== - -array.prototype.reduce@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz#63149931808c5fc1e1354814923d92d45f7d96d5" - integrity sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.7" - -arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" - is-shared-array-buffer "^1.0.2" - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -assert@^1.1.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.1.tgz#038ab248e4ff078e7bc2485ba6e6388466c78f76" - integrity sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A== - dependencies: - object.assign "^4.1.4" - util "^0.10.4" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== - -async-each@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.6.tgz#52f1d9403818c179b7561e11a5d1b77eb2160e77" - integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@^2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autocomplete.js@0.36.0: - version "0.36.0" - resolved "https://registry.yarnpkg.com/autocomplete.js/-/autocomplete.js-0.36.0.tgz#94fe775fe64b6cd42e622d076dc7fd26bedd837b" - integrity sha512-jEwUXnVMeCHHutUt10i/8ZiRaCb0Wo+ZyKxeGsYwBDtw6EJHqEeDrq4UwZRD8YBSvp3g6klP678il2eeiVXN2Q== - dependencies: - immediate "^3.2.3" - -autoprefixer@^9.5.1: - version "9.8.8" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" - integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - picocolors "^0.2.1" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" - integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== - -babel-loader@^8.0.4: - version "8.3.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" - integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^2.0.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-polyfill-corejs2@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313" - integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== - dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.3" - semver "^6.3.1" - -babel-plugin-polyfill-corejs3@^0.8.5: - version "0.8.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz#25c2d20002da91fe328ff89095c85a391d6856cf" - integrity sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" - core-js-compat "^3.33.1" - -babel-plugin-polyfill-regenerator@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5" - integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-js@^1.0.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bluebird@^3.1.1, bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg== - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -boxen@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" - integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^3.0.0" - cli-boxes "^2.2.0" - string-width "^4.1.0" - term-size "^2.1.0" - type-fest "^0.8.1" - widest-line "^3.1.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.2.tgz#e78d4b69816d6e3dd1c747e64e9947f9ad79bc7e" - integrity sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg== - dependencies: - bn.js "^5.2.1" - browserify-rsa "^4.1.0" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.4" - inherits "^2.0.4" - parse-asn1 "^5.1.6" - readable-stream "^3.6.2" - safe-buffer "^5.2.1" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.9, browserslist@^4.22.1: - version "4.22.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" - integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== - dependencies: - caniuse-lite "^1.0.30001565" - electron-to-chromium "^1.4.601" - node-releases "^2.0.14" - update-browserslist-db "^1.0.13" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-json@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" - integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== - -bundle-require@2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-2.1.8.tgz#28f6de9d4468a6b7b76fb5c9bf52e70f5091245d" - integrity sha512-oOEg3A0hy/YzvNWNowtKD0pmhZKseOFweCbgyMqTIih4gRY1nJWsvrOCT27L9NbIyL5jMjTFrAUpGxxpW68Puw== - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cac@^6.5.6: - version "6.7.14" - resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" - integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== - -cacache@^12.0.2, cacache@^12.0.3: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cache-loader@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-3.0.1.tgz#cee6cf4b3cdc7c610905b26bad6c2fc439c821af" - integrity sha512-HzJIvGiGqYsFUrMjAJNDbVZoG7qQA+vy9AIoKs7s9DscNfki0I589mf2w6/tW+kkFH3zyiknoWV5Jdynu6b/zw== - dependencies: - buffer-json "^2.0.0" - find-cache-dir "^2.1.0" - loader-utils "^1.2.3" - mkdirp "^0.5.1" - neo-async "^2.6.1" - schema-utils "^1.0.0" - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== - dependencies: - function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" - -call-me-maybe@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" - integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== - -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w== - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001565: - version "1.0.30001566" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz#61a8e17caf3752e3e426d4239c549ebbb37fef0d" - integrity sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chokidar@^2.0.3, chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.4.1: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -ci-info@^3.1.1: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-css@4.2.x: - version "4.2.4" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" - integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== - dependencies: - source-map "~0.6.0" - -cli-boxes@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone-response@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" - integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== - dependencies: - mimic-response "^1.0.0" - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@2.17.x: - version "2.17.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@~2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - -component-emitter@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" - integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -connect-history-api-fallback@^1.5.0, connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -consola@^2.6.0: - version "2.15.3" - resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" - integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -consolidate@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" - integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== - dependencies: - bluebird "^3.1.1" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== - -copy-webpack-plugin@^5.0.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz#8a889e1dcafa6c91c6cd4be1ad158f1d3823bae2" - integrity sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ== - dependencies: - cacache "^12.0.3" - find-cache-dir "^2.1.0" - glob-parent "^3.1.0" - globby "^7.1.1" - is-glob "^4.0.1" - loader-utils "^1.2.3" - minimatch "^3.0.4" - normalize-path "^3.0.0" - p-limit "^2.2.1" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - webpack-log "^2.0.0" - -core-js-compat@^3.31.0, core-js-compat@^3.33.1, core-js-compat@^3.6.5: - version "3.33.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.3.tgz#ec678b772c5a2d8a7c60a91c3a81869aa704ae01" - integrity sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow== - dependencies: - browserslist "^4.22.1" - -core-js@^3.6.4, core-js@^3.6.5: - version "3.33.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.33.3.tgz#3c644a323f0f533a0d360e9191e37f7fc059088d" - integrity sha512-lo0kOocUlLKmm6kv/FswQL8zbkH7mVsLJ/FULClOhv8WRVmKLVcs6XPNQAzstfeJTCHMyButEwG+z1kHxHoDZw== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-loader@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz#d8254f72e412bb2238bb44dd674ffbef497333ea" - integrity sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w== - dependencies: - camelcase "^5.2.0" - icss-utils "^4.1.0" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.14" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^2.0.6" - postcss-modules-scope "^2.1.0" - postcss-modules-values "^2.0.0" - postcss-value-parser "^3.3.0" - schema-utils "^1.0.0" - -css-parse@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4" - integrity sha512-UNIFik2RgSbiTwIW1IsFwXWn6vs+bYdq83LKTSOsx7NJR7WII9dxewkHLltfTLVppoUApHV0118a4RZRI9FLwA== - dependencies: - css "^2.0.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-select@^4.1.3: - version "4.3.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" - integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== - dependencies: - boolbase "^1.0.0" - css-what "^6.0.1" - domhandler "^4.3.1" - domutils "^2.8.0" - nth-check "^2.0.1" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -css-what@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== - -css@^2.0.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" - integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== - dependencies: - inherits "^2.0.3" - source-map "^0.6.1" - source-map-resolve "^0.5.2" - urix "^0.1.0" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -csstype@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" - integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== - -cyclist@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.2.tgz#673b5f233bf34d8e602b949429f8171d9121bea3" - integrity sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA== - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== - dependencies: - mimic-response "^1.0.0" - -deep-equal@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.2.tgz#78a561b7830eef3134c7f6f3a3d6af272a678761" - integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg== - dependencies: - is-arguments "^1.1.1" - is-date-object "^1.0.5" - is-regex "^1.1.4" - object-is "^1.1.5" - object-keys "^1.1.1" - regexp.prototype.flags "^1.5.1" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deepmerge@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" - integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== - -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== - dependencies: - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - -des.js@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" - integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^2.0.0, dir-glob@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== - dependencies: - path-type "^3.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== - -dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" - integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ== - dependencies: - buffer-indexof "^1.0.0" - -docsearch.js@^2.5.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/docsearch.js/-/docsearch.js-2.6.3.tgz#57cb4600d3b6553c677e7cbbe6a734593e38625d" - integrity sha512-GN+MBozuyz664ycpZY0ecdQE0ND/LSgJKhTLA0/v3arIS3S1Rpf2OJz6A35ReMsm91V5apcmzr5/kM84cvUg+A== - dependencies: - algoliasearch "^3.24.5" - autocomplete.js "0.36.0" - hogan.js "^3.0.2" - request "^2.87.0" - stack-utils "^1.0.1" - to-factory "^1.0.0" - zepto "^1.2.0" - -dom-converter@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@^1.0.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" - integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" - integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== - dependencies: - domelementtype "^2.2.0" - -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^2.5.2, domutils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -duplexer3@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" - integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -electron-to-chromium@^1.4.601: - version "1.4.601" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.601.tgz#cac69868548aee89961ffe63ff5a7716f0685b75" - integrity sha512-SpwUMDWe9tQu8JX5QCO1+p/hChAi9AE9UpoC3rcHVc+gdCGlbT3SGb5I1klgb952HRIyvt9wZhSz9bNBYz9swA== - -elliptic@^6.5.3, elliptic@^6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -entities@~1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -envify@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/envify/-/envify-4.1.0.tgz#f39ad3db9d6801b4e6b478b61028d3f0b6819f7e" - integrity sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw== - dependencies: - esprima "^4.0.0" - through "~2.3.4" - -envinfo@^7.2.0: - version "7.11.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.11.0.tgz#c3793f44284a55ff8c82faf1ffd91bc6478ea01f" - integrity sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg== - -errno@^0.1.3, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.2, es-abstract@^1.22.1: - version "1.22.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" - integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== - dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.2" - available-typed-arrays "^1.0.5" - call-bind "^1.0.5" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.2" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.12" - is-weakref "^1.0.2" - object-inspect "^1.13.1" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - safe-array-concat "^1.0.1" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.0" - typed-array-byte-length "^1.0.0" - typed-array-byte-offset "^1.0.0" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.13" - -es-array-method-boxes-properly@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== - -es-set-tostringtag@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" - integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== - dependencies: - get-intrinsic "^1.2.2" - has-tostringtag "^1.0.0" - hasown "^2.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-promise@^4.1.0: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -esbuild-android-arm64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.7.tgz#8c78cbb617f9f216abfb5a84cca453b51421a1b6" - integrity sha512-9/Q1NC4JErvsXzJKti0NHt+vzKjZOgPIjX/e6kkuCzgfT/GcO3FVBcGIv4HeJG7oMznE6KyKhvLrFgt7CdU2/w== - -esbuild-darwin-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.7.tgz#7424bdb64c104556d36b7429af79ab51415ab8f4" - integrity sha512-Z9X+3TT/Xj+JiZTVlwHj2P+8GoiSmUnGVz0YZTSt8WTbW3UKw5Pw2ucuJ8VzbD2FPy0jbIKJkko/6CMTQchShQ== - -esbuild-darwin-arm64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.7.tgz#6a243dc0132aeb11c1991f968a6a9e393f43c6bc" - integrity sha512-68e7COhmwIiLXBEyxUxZSSU0akgv8t3e50e2QOtKdBUE0F6KIRISzFntLe2rYlNqSsjGWsIO6CCc9tQxijjSkw== - -esbuild-freebsd-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.7.tgz#e7281e50522e724c4da502504dcd75be0db46c94" - integrity sha512-76zy5jAjPiXX/S3UvRgG85Bb0wy0zv/J2lel3KtHi4V7GUTBfhNUPt0E5bpSXJ6yMT7iThhnA5rOn+IJiUcslQ== - -esbuild-freebsd-arm64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.7.tgz#31e513098efd181d76a3ba3ea285836d37f018a3" - integrity sha512-lSlYNLiqyzd7qCN5CEOmLxn7MhnGHPcu5KuUYOG1i+t5A6q7LgBmfYC9ZHJBoYyow3u4CNu79AWHbvVLpE/VQQ== - -esbuild-linux-32@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.7.tgz#82cf96accbf55d3007c3338dc3b3144efa9ae108" - integrity sha512-Vk28u409wVOXqTaT6ek0TnfQG4Ty1aWWfiysIaIRERkNLhzLhUf4i+qJBN8mMuGTYOkE40F0Wkbp6m+IidOp2A== - -esbuild-linux-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.7.tgz#67bdfe23a6ca918a0bb8e9558a3ee0fdf98c0bc0" - integrity sha512-+Lvz6x+8OkRk3K2RtZwO+0a92jy9si9cUea5Zoru4yJ/6EQm9ENX5seZE0X9DTwk1dxJbjmLsJsd3IoowyzgVg== - -esbuild-linux-arm64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.7.tgz#f79c69ff0c176559c418de8e59aa3cf388fff992" - integrity sha512-kJd5beWSqteSAW086qzCEsH6uwpi7QRIpzYWHzEYwKKu9DiG1TwIBegQJmLpPsLp4v5RAFjea0JAmAtpGtRpqg== - -esbuild-linux-arm@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.7.tgz#3d665b35e1c27dbe1c9deb8bf956d7d1f191a21b" - integrity sha512-OzpXEBogbYdcBqE4uKynuSn5YSetCvK03Qv1HcOY1VN6HmReuatjJ21dCH+YPHSpMEF0afVCnNfffvsGEkxGJQ== - -esbuild-linux-mips64le@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.7.tgz#226114a0cc6649ba0ffd3428118a8f622872f16d" - integrity sha512-mFWpnDhZJmj/h7pxqn1GGDsKwRfqtV7fx6kTF5pr4PfXe8pIaTERpwcKkoCwZUkWAOmUEjMIUAvFM72A6hMZnA== - -esbuild-linux-ppc64le@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.7.tgz#5c67ae56517f2644d567b2ca5ecb97f9520cfc49" - integrity sha512-wM7f4M0bsQXfDL4JbbYD0wsr8cC8KaQ3RPWc/fV27KdErPW7YsqshZZSjDV0kbhzwpNNdhLItfbaRT8OE8OaKA== - -esbuild-netbsd-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.7.tgz#69dc0469ea089013956d8c6aa71c9e7fc25fc567" - integrity sha512-J/afS7woKyzGgAL5FlgvMyqgt5wQ597lgsT+xc2yJ9/7BIyezeXutXqfh05vszy2k3kSvhLesugsxIA71WsqBw== - -esbuild-openbsd-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.7.tgz#3a9d04ecf820708e2e5b7d26fa7332e3f19f6b6c" - integrity sha512-7CcxgdlCD+zAPyveKoznbgr3i0Wnh0L8BDGRCjE/5UGkm5P/NQko51tuIDaYof8zbmXjjl0OIt9lSo4W7I8mrw== - -esbuild-sunos-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.7.tgz#7c33a682f0fd9565cae7df165d0e8736b7b62623" - integrity sha512-GKCafP2j/KUljVC3nesw1wLFSZktb2FGCmoT1+730zIF5O6hNroo0bSEofm6ZK5mNPnLiSaiLyRB9YFgtkd5Xg== - -esbuild-windows-32@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.7.tgz#24ec706a5f25b4499048f56146bcff0ed3839dce" - integrity sha512-5I1GeL/gZoUUdTPA0ws54bpYdtyeA2t6MNISalsHpY269zK8Jia/AXB3ta/KcDHv2SvNwabpImeIPXC/k0YW6A== - -esbuild-windows-64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.7.tgz#dd6d5b5bace93cd7a9174d31fbd727ba21885abf" - integrity sha512-CIGKCFpQOSlYsLMbxt8JjxxvVw9MlF1Rz2ABLVfFyHUF5OeqHD5fPhGrCVNaVrhO8Xrm+yFmtjcZudUGr5/WYQ== - -esbuild-windows-arm64@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.7.tgz#ecfd9ac289606f26760c4f737caaeeadfff3cfe3" - integrity sha512-eOs1eSivOqN7cFiRIukEruWhaCf75V0N8P0zP7dh44LIhLl8y6/z++vv9qQVbkBm5/D7M7LfCfCTmt1f1wHOCw== - -esbuild@0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.7.tgz#e85cead55b0e1001abf1b2ce4a11c1d4d709d13c" - integrity sha512-+u/msd6iu+HvfysUPkZ9VHm83LImmSNnecYPfFI01pQ7TTcsFR+V0BkybZX7mPtIaI7LCrse6YRj+v3eraJSgw== - optionalDependencies: - esbuild-android-arm64 "0.14.7" - esbuild-darwin-64 "0.14.7" - esbuild-darwin-arm64 "0.14.7" - esbuild-freebsd-64 "0.14.7" - esbuild-freebsd-arm64 "0.14.7" - esbuild-linux-32 "0.14.7" - esbuild-linux-64 "0.14.7" - esbuild-linux-arm "0.14.7" - esbuild-linux-arm64 "0.14.7" - esbuild-linux-mips64le "0.14.7" - esbuild-linux-ppc64le "0.14.7" - esbuild-netbsd-64 "0.14.7" - esbuild-openbsd-64 "0.14.7" - esbuild-sunos-64 "0.14.7" - esbuild-windows-32 "0.14.7" - esbuild-windows-64 "0.14.7" - esbuild-windows-arm64 "0.14.7" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== - -escape-html@^1.0.3, escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esrecurse@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - integrity sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw== - -events@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -eventsource@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-2.0.2.tgz#76dfcc02930fb2ff339520b6d290da573a9e8508" - integrity sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -express@^4.17.1: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^2.2.6: - version "2.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" - integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -faye-websocket@^0.11.3, faye-websocket@^0.11.4: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-loader@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" - integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== - dependencies: - loader-utils "^1.0.2" - schema-utils "^1.0.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -follow-redirects@^1.0.0: - version "1.15.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== - -foreach@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.6.tgz#87bcc8a1a0e74000ff2bf9802110708cfb02eb6e" - integrity sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg== - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== - dependencies: - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-stream@^4.0.0, get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig== - -glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" - integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== - dependencies: - ini "1.3.7" - -global@^4.3.2: - version "4.4.0" - resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" - integrity sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g== - dependencies: - array-union "^1.0.1" - dir-glob "^2.0.0" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - -globby@^9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" - integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^1.0.2" - dir-glob "^2.2.2" - fast-glob "^2.2.6" - glob "^7.1.3" - ignore "^4.0.3" - pify "^4.0.1" - slash "^2.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -gray-matter@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" - integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== - dependencies: - js-yaml "^3.13.1" - kind-of "^6.0.2" - section-matter "^1.0.0" - strip-bom-string "^1.0.0" - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" - integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== - dependencies: - get-intrinsic "^1.2.2" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -has@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" - integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash-sum@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" - integrity sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA== - -hash-sum@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" - integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== - dependencies: - function-bind "^1.1.2" - -he@1.2.x, he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -highlight.js@^9.7.0: - version "9.18.5" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825" - integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hogan.js@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/hogan.js/-/hogan.js-3.0.2.tgz#4cd9e1abd4294146e7679e41d7898732b02c7bfd" - integrity sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg== - dependencies: - mkdirp "0.3.0" - nopt "1.0.10" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== - -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== - -html-minifier@^3.2.3: - version "3.5.21" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" - integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== - dependencies: - camel-case "3.0.x" - clean-css "4.2.x" - commander "2.17.x" - he "1.2.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.4.x" - -html-tags@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" - integrity sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g== - -html-tags@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" - integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== - -htmlparser2@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" - integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" - -http-cache-semantics@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" - integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.5.1: - version "0.5.8" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" - integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== - -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy-middleware@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" - integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== - dependencies: - "@types/http-proxy" "^1.17.5" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.17.0, http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg== - -icss-utils@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== - -ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - -ignore@^4.0.3: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -immediate@^3.2.3: - version "3.3.0" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" - integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== - dependencies: - resolve-from "^3.0.0" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== - -infer-owner@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - -ini@1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== - -ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== - dependencies: - get-intrinsic "^1.2.2" - hasown "^2.0.0" - side-channel "^1.0.4" - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== - -ip@^1.1.0, ip@^1.1.5: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" - integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== - -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-accessor-descriptor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4" - integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== - dependencies: - hasown "^2.0.0" - -is-arguments@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.13.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" - -is-data-descriptor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb" - integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== - dependencies: - hasown "^2.0.0" - -is-date-object@^1.0.1, is-date-object@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-descriptor@^0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33" - integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== - dependencies: - is-accessor-descriptor "^1.0.1" - is-data-descriptor "^1.0.1" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306" - integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== - dependencies: - is-accessor-descriptor "^1.0.1" - is-data-descriptor "^1.0.1" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-installed-globally@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" - integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-npm@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" - integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-path-inside@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== - dependencies: - which-typed-array "^1.1.11" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isarray@^2.0.1, isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -javascript-stringify@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz#142d111f3a6e3dae8f4a9afd77d45855b5a9cce3" - integrity sha512-fnjC0up+0SjEJtgmmG+teeel68kutkvzfctO/KxE3qJlbunkJYAshgH3boU++gSBHP8z5/r0ts0qRIrHf0RTQQ== - -javascript-stringify@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz#27c76539be14d8bd128219a2d731b09337904e79" - integrity sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== - -json5@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2, json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== - dependencies: - is-buffer "^1.1.5" - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== - dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" - -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - -linkify-it@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" - integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== - dependencies: - uc.micro "^1.0.1" - -load-script@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/load-script/-/load-script-1.0.0.tgz#0491939e0bee5643ee494a7e3da3d2bac70c6ca4" - integrity sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA== - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug== - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: - version "1.4.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" - integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" - integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== - -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - -lodash.template@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== - -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.5: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -loglevel@^1.6.8: - version "1.8.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" - integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA== - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^4.1.2: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== - dependencies: - object-visit "^1.0.0" - -markdown-it-anchor@^5.0.2: - version "5.3.0" - resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz#d549acd64856a8ecd1bea58365ef385effbac744" - integrity sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA== - -markdown-it-chain@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz#ccf6fe86c10266bafb4e547380dfd7f277cc17bc" - integrity sha512-XClV8I1TKy8L2qsT9iX3qiV+50ZtcInGXI80CA+DP62sMs7hXlyV/RM3hfwy5O3Ad0sJm9xIwQELgANfESo8mQ== - dependencies: - webpack-chain "^4.9.0" - -markdown-it-container@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-2.0.0.tgz#0019b43fd02eefece2f1960a2895fba81a404695" - integrity sha512-IxPOaq2LzrGuFGyYq80zaorXReh2ZHGFOB1/Hen429EJL1XkPI3FJTpx9TsJeua+j2qTru4h3W1TiCRdeivMmA== - -markdown-it-emoji@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz#9bee0e9a990a963ba96df6980c4fddb05dfb4dcc" - integrity sha512-QCz3Hkd+r5gDYtS2xsFXmBYrgw6KuWcJZLCEkdfAuwzZbShCmCfta+hwAMq4NX/4xPzkSHduMKgMkkPUJxSXNg== - -markdown-it-table-of-contents@^0.4.0: - version "0.4.4" - resolved "https://registry.yarnpkg.com/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz#3dc7ce8b8fc17e5981c77cc398d1782319f37fbc" - integrity sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw== - -markdown-it@^8.4.1: - version "8.4.2" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54" - integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ== - dependencies: - argparse "^1.0.7" - entities "~1.1.1" - linkify-it "^2.0.0" - mdurl "^1.0.1" - uc.micro "^1.0.5" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== - dependencies: - source-map "^0.6.1" - -merge2@^1.2.3: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.0.3, mime@^2.4.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== - dependencies: - dom-walk "^0.1.0" - -mini-css-extract-plugin@0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz#a3f13372d6fcde912f3ee4cd039665704801e3b9" - integrity sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw== - dependencies: - loader-utils "^1.1.0" - normalize-url "^2.0.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" - integrity sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew== - -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.6, mkdirp@~0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mkdirp@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ== - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -nan@^2.12.1: - version "2.18.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" - integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== - -nanoid@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - dependencies: - lower-case "^1.1.1" - -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== - -nopt@1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== - dependencies: - abbrev "1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - -normalize-url@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== - dependencies: - path-key "^2.0.0" - -nprogress@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" - integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -nth-check@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.13.1, object-inspect@^1.9.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - -object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.0.11, object-keys@^1.1.0, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0, object.assign@^4.1.4: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== - dependencies: - call-bind "^1.0.5" - define-properties "^1.2.1" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.7" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz#7a466a356cd7da4ba8b9e94ff6d35c3eeab5d56a" - integrity sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g== - dependencies: - array.prototype.reduce "^1.0.6" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - safe-array-concat "^1.0.0" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -opencollective-postinstall@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -optimize-css-assets-webpack-plugin@^5.0.1: - version "5.0.8" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz#cbccdcf5a6ef61d4f8cc78cf083a67446e5f402a" - integrity sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q== - dependencies: - cssnano "^4.1.10" - last-call-webpack-plugin "^3.0.0" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== - dependencies: - retry "^0.12.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w== - dependencies: - no-case "^2.2.0" - -parse-asn1@^5.0.0, parse-asn1@^5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -portfinder@^1.0.13, portfinder@^1.0.26: - version "1.0.32" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" - integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== - dependencies: - async "^2.6.4" - debug "^3.2.7" - mkdirp "^0.5.6" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== - -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz#dd9953f6dd476b5fd1ef2d8830c8929760b56e63" - integrity sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - postcss-value-parser "^3.3.1" - -postcss-modules-scope@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64" - integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w== - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^7.0.6" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-safe-parser@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" - integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== - dependencies: - postcss "^7.0.26" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.13" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" - integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== - dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" - -postcss@^8.4.14: - version "8.4.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" - integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== - dependencies: - nanoid "^3.3.7" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== - -"prettier@^1.18.2 || ^2.0.0": - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -pretty-error@^2.0.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" - integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== - dependencies: - lodash "^4.17.20" - renderkid "^2.0.4" - -pretty-time@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" - integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== - -prismjs@^1.13.0: - version "1.29.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" - integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== - -psl@^1.1.28: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -pupa@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" - integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== - dependencies: - escape-goat "^2.0.0" - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== - -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -qs@^6.11.2: - version "6.11.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" - integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== - dependencies: - side-channel "^1.0.4" - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.0, querystring-es3@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@1.2.8, rc@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6, readable-stream@^3.6.0, readable-stream@^3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -reduce@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/reduce/-/reduce-1.0.2.tgz#0cd680ad3ffe0b060e57a5c68bdfce37168d361b" - integrity sha512-xX7Fxke/oHO5IfZSk77lvPa/7bjMh9BuCk4OOoX5XTXrM7s0Z+MkPfSDfz0q7r91BhhGSs8gii/VEN/7zhCPpQ== - dependencies: - object-keys "^1.1.0" - -regenerate-unicode-properties@^10.1.0: - version "10.1.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" - integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== - -regenerator-transform@^0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" - integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== - dependencies: - "@babel/runtime" "^7.8.4" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" - -regexpu-core@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" - integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== - dependencies: - "@babel/regjsgen" "^0.8.0" - regenerate "^1.4.2" - regenerate-unicode-properties "^10.1.0" - regjsparser "^0.9.1" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" - -registry-auth-token@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz#f02d49c3668884612ca031419491a13539e21fac" - integrity sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg== - dependencies: - rc "1.2.8" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -regjsparser@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" - integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== - dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== - -renderkid@^2.0.4: - version "2.0.7" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" - integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== - dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^3.0.1" - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - -request@^2.87.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg== - dependencies: - resolve-from "^3.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== - -resolve@^1.14.2, resolve@^1.22.0: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== - dependencies: - lowercase-keys "^1.0.0" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== - -rimraf@^2.5.4, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== - dependencies: - aproba "^1.1.1" - -safe-array-concat@^1.0.0, safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - isarray "^2.0.5" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.6.5: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -section-matter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" - integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== - dependencies: - extend-shallow "^2.0.1" - kind-of "^6.0.0" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== - -selfsigned@^1.10.8: - version "1.10.14" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.14.tgz#ee51d84d9dcecc61e07e4aba34f229ab525c1574" - integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA== - dependencies: - node-forge "^0.10.0" - -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - -semver@^5.1.0, semver@^5.5.0, semver@^5.6.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^6.0.0, semver@^6.1.0, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== - dependencies: - randombytes "^2.1.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== - dependencies: - define-data-property "^1.1.1" - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -set-function-name@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" - integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== - dependencies: - define-data-property "^1.0.1" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.0" - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg== - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -smoothscroll-polyfill@^0.4.3: - version "0.4.4" - resolved "https://registry.yarnpkg.com/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz#3a259131dc6930e6ca80003e1cb03b603b69abf8" - integrity sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg== - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@^1.5.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.6.1.tgz#350b8eda42d6d52ddc030c39943364c11dcad806" - integrity sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw== - dependencies: - debug "^3.2.7" - eventsource "^2.0.2" - faye-websocket "^0.11.4" - inherits "^2.0.4" - url-parse "^1.5.10" - -sockjs@^0.3.21: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== - dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@~0.5.12: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@0.5.6: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - integrity sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA== - -source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -sshpk@^1.7.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" - integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stack-utils@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" - integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== - dependencies: - escape-string-regexp "^2.0.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -std-env@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-2.3.1.tgz#d42271908819c243f8defc77a140fc1fcee336a1" - integrity sha512-eOsoKTWnr6C8aWrqJJ2KAReXoa7Vn5Ywyw6uCXgA/xDhxPoaIsBa5aNJmISY04dLwXPBnDHW4diGM7Sn5K4R/g== - dependencies: - ci-info "^3.1.1" - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.0.0, string-width@^4.1.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" - integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -stylus-loader@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.2.tgz#27a706420b05a38e038e7cacb153578d450513c6" - integrity sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA== - dependencies: - loader-utils "^1.0.2" - lodash.clonedeep "^4.5.0" - when "~3.6.x" - -stylus@^0.54.8: - version "0.54.8" - resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.8.tgz#3da3e65966bc567a7b044bfe0eece653e099d147" - integrity sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg== - dependencies: - css-parse "~2.0.0" - debug "~3.1.0" - glob "^7.1.6" - mkdirp "~1.0.4" - safer-buffer "^2.1.2" - sax "~1.2.4" - semver "^6.3.0" - source-map "^0.7.3" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svg-tags@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== - -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -term-size@^2.1.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" - integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== - -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@^4.1.2: - version "4.8.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" - integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@~2.3.4: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA== - -to-factory@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-factory/-/to-factory-1.0.0.tgz#8738af8bd97120ad1d4047972ada5563bf9479b1" - integrity sha512-JVYrY42wMG7ddf+wBUQR/uHGbjUHZbLisJ8N62AMm0iTZ0p8YTcZLzdtomU0+H+wa99VbkyvQGB3zxB7NDzgIQ== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== - dependencies: - kind-of "^3.0.2" - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - -toposort@^1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" - integrity sha512-FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg== - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" - -typed-array-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" - integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - -uc.micro@^1.0.1, uc.micro@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" - integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== - -uglify-js@3.4.x: - version "3.4.10" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" - integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== - dependencies: - commander "~2.19.0" - source-map "~0.6.1" - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" - integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.0, upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -update-notifier@^4.0.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" - integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== - dependencies: - boxen "^4.2.0" - chalk "^3.0.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.3.1" - is-npm "^4.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - pupa "^2.0.1" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== - -url-loader@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" - integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== - dependencies: - loader-utils "^1.1.0" - mime "^2.0.3" - schema-utils "^1.0.0" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== - dependencies: - prepend-http "^2.0.0" - -url-parse@^1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.3.tgz#6f495f4b935de40ce4a0a52faee8954244f3d3ad" - integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== - dependencies: - punycode "^1.4.1" - qs "^6.11.2" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util.promisify@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -util@^0.10.4: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -vue-hot-reload-api@^2.3.0: - version "2.3.4" - resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" - integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== - -vue-loader@^15.7.1: - version "15.11.1" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.11.1.tgz#dee91169211276ed43c5715caef88a56b1f497b0" - integrity sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q== - dependencies: - "@vue/component-compiler-utils" "^3.1.0" - hash-sum "^1.0.2" - loader-utils "^1.1.0" - vue-hot-reload-api "^2.3.0" - vue-style-loader "^4.1.0" - -vue-router@^3.4.5: - version "3.6.5" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.6.5.tgz#95847d52b9a7e3f1361cb605c8e6441f202afad8" - integrity sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ== - -vue-server-renderer@^2.6.10: - version "2.7.15" - resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.7.15.tgz#814fe0bb309843e5d3e343d456f7e449dbc2cd5e" - integrity sha512-5Wy6ls7ErawmgxlogoScTDOQzqBp4+B9CKV1Dl4280xVPBs1+iHpghW1nlKNd1JWKI3O2s4X4vwmg1C7Rvy7oA== - dependencies: - chalk "^4.1.2" - hash-sum "^2.0.0" - he "^1.2.0" - lodash.template "^4.5.0" - lodash.uniq "^4.5.0" - resolve "^1.22.0" - serialize-javascript "^6.0.0" - source-map "0.5.6" - -vue-style-loader@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35" - integrity sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg== - dependencies: - hash-sum "^1.0.2" - loader-utils "^1.0.2" - -vue-template-compiler@^2.6.10: - version "2.7.15" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.15.tgz#ec88ba8ceafe0f17a528b89c57e01e02da92b0de" - integrity sha512-yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og== - dependencies: - de-indent "^1.0.2" - he "^1.2.0" - -vue-template-es2015-compiler@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" - integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== - -vue@^2.6.10: - version "2.7.15" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.7.15.tgz#94cd34e6e9f22cd2d35a02143f96a5beac1c1f54" - integrity sha512-a29fsXd2G0KMRqIFTpRgpSbWaNBK3lpCTOLuGLEDnlHWdjB8fwl6zyYZ8xCrqkJdatwZb4mGHiEfJjnw0Q6AwQ== - dependencies: - "@vue/compiler-sfc" "2.7.15" - csstype "^3.1.0" - -vuepress-html-webpack-plugin@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/vuepress-html-webpack-plugin/-/vuepress-html-webpack-plugin-3.2.0.tgz#219be272ad510faa8750d2d4e70fd028bfd1c16e" - integrity sha512-BebAEl1BmWlro3+VyDhIOCY6Gef2MCBllEVAP3NUAtMguiyOwo/dClbwJ167WYmcxHJKLl7b0Chr9H7fpn1d0A== - dependencies: - html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" - pretty-error "^2.0.2" - tapable "^1.0.0" - toposort "^1.0.0" - util.promisify "1.0.0" - -vuepress-plugin-container@^2.0.2: - version "2.1.5" - resolved "https://registry.yarnpkg.com/vuepress-plugin-container/-/vuepress-plugin-container-2.1.5.tgz#37fff05662fedbd63ffd3a5463b2592c7a7f3133" - integrity sha512-TQrDX/v+WHOihj3jpilVnjXu9RcTm6m8tzljNJwYhxnJUW0WWQ0hFLcDTqTBwgKIFdEiSxVOmYE+bJX/sq46MA== - dependencies: - "@vuepress/shared-utils" "^1.2.0" - markdown-it-container "^2.0.0" - -vuepress-plugin-smooth-scroll@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/vuepress-plugin-smooth-scroll/-/vuepress-plugin-smooth-scroll-0.0.3.tgz#6eff2d4c186cca917cc9f7df2b0af7de7c8c6438" - integrity sha512-qsQkDftLVFLe8BiviIHaLV0Ea38YLZKKonDGsNQy1IE0wllFpFIEldWD8frWZtDFdx6b/O3KDMgVQ0qp5NjJCg== - dependencies: - smoothscroll-polyfill "^0.4.3" - -vuepress@1.9.10: - version "1.9.10" - resolved "https://registry.yarnpkg.com/vuepress/-/vuepress-1.9.10.tgz#14700fccd85bc56c810cf367ecc797fcbecc7c0f" - integrity sha512-UnGm9vjQvG918SZVNvgiUlNimLqawdYPq0aPRXDpEB1VksvqegVFy/GKdA8ShXJaEpOMPSt7YD4uK21jaMs3kA== - dependencies: - "@vuepress/core" "1.9.10" - "@vuepress/theme-default" "1.9.10" - "@vuepress/types" "1.9.10" - cac "^6.5.6" - envinfo "^7.2.0" - opencollective-postinstall "^2.0.2" - update-notifier "^4.0.0" - -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -webpack-chain@^4.9.0: - version "4.12.1" - resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-4.12.1.tgz#6c8439bbb2ab550952d60e1ea9319141906c02a6" - integrity sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ== - dependencies: - deepmerge "^1.5.2" - javascript-stringify "^1.6.0" - -webpack-chain@^6.0.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-6.5.1.tgz#4f27284cbbb637e3c8fbdef43eef588d4d861206" - integrity sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA== - dependencies: - deepmerge "^1.5.2" - javascript-stringify "^2.0.1" - -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@^3.5.1: - version "3.11.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#8c86b9d2812bf135d3c9bce6f07b718e30f7c3d3" - integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA== - dependencies: - ansi-html-community "0.0.8" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "^0.3.21" - sockjs-client "^1.5.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-merge@^4.1.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" - integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== - dependencies: - lodash "^4.17.15" - -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^4.8.1: - version "4.47.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.47.0.tgz#8b8a02152d7076aeb03b61b47dad2eeed9810ebc" - integrity sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" - -webpackbar@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-3.2.0.tgz#bdaad103fad11a4e612500e72aaae98b08ba493f" - integrity sha512-PC4o+1c8gWWileUfwabe0gqptlXUDJd5E0zbpr2xHP1VSOVlZVPBZ8j6NCR8zM5zbKdxPhctHXahgpNK1qFDPw== - dependencies: - ansi-escapes "^4.1.0" - chalk "^2.4.1" - consola "^2.6.0" - figures "^3.0.0" - pretty-time "^1.1.0" - std-env "^2.2.1" - text-table "^0.2.0" - wrap-ansi "^5.1.0" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -when@~3.6.x: - version "3.6.4" - resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" - integrity sha512-d1VUP9F96w664lKINMGeElWdhhb5sC+thXM+ydZGU3ZnaE09Wv6FaS+mpM9570kcDs/xMfcXJBTLsMdHEFYY9Q== - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-module@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" - integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== - -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^6.2.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== - dependencies: - async-limiter "~1.0.0" - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -zepto@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/zepto/-/zepto-1.2.0.tgz#e127bd9e66fd846be5eab48c1394882f7c0e4f98" - integrity sha512-C1x6lfvBICFTQIMgbt3JqMOno3VOtkWat/xEakLTOurskYIHPmzJrzd1e8BnmtdDVJlGuk5D+FxyCA8MPmkIyA==