diff --git a/components/axie-figure/AxieFigure.tsx b/components/axie-figure/AxieFigure.tsx index 2b00300..72ec1e9 100644 --- a/components/axie-figure/AxieFigure.tsx +++ b/components/axie-figure/AxieFigure.tsx @@ -1,38 +1,38 @@ -import * as PIXI from "pixi.js"; -import "pixi-spine"; -import React, { useEffect, useRef, useState } from "react"; -import { getSpineFromAdultCombo } from "@axieinfinity/mixer"; - -import { PuffLoading } from "../puff-loading/PuffLoading"; -import key from "./key.json"; -import s from "./styles.module.css"; -import { colorsArray, animationList } from "./constants"; -import { Part, Color } from "./types"; -import { PlaygroundGame } from "./PlaygroundGame"; -import { PartsDropdown } from "./parts-dropdown/PartsDropdown"; -import { ColorDropdown } from "./color-dropdown/ColorDropdown"; -import { BodyOrAnimationDropdown } from "./body-or-animation-dropdown/BodyOrAnimationDropdown"; +import * as PIXI from 'pixi.js' +import 'pixi-spine' +import React, { useEffect, useRef, useState } from 'react' +import { getSpineFromAdultCombo } from '@axieinfinity/mixer' + +import { PuffLoading } from '../puff-loading/PuffLoading' +import key from './key.json' +import s from './styles.module.css' +import { colorsArray, animationList } from './constants' +import { Part, Color } from './types' +import { PlaygroundGame } from './PlaygroundGame' +import { PartsDropdown } from './parts-dropdown/PartsDropdown' +import { ColorDropdown } from './color-dropdown/ColorDropdown' +import { BodyOrAnimationDropdown } from './body-or-animation-dropdown/BodyOrAnimationDropdown' interface AxieParts { - ears: Part; - eyes: Part; - mouth: Part; - horn: Part; - back: Part; - tail: Part; + ears: Part + eyes: Part + mouth: Part + horn: Part + back: Part + tail: Part } const initialPartValue = { - key: "", - name: "", - type: "", - sample: "", -}; + key: '', + name: '', + type: '', + sample: '', +} -PIXI.settings.PRECISION_FRAGMENT = PIXI.PRECISION.HIGH; +PIXI.settings.PRECISION_FRAGMENT = PIXI.PRECISION.HIGH export const AxieFigure = () => { - const [loading, setLoading] = useState(); + const [loading, setLoading] = useState() // const [axieCombo, setAxieCombo] = useState>(); // const [axieIdInput, setAxieIdInput] = useState(""); const [axieParts, setAxieParts] = useState({ @@ -42,14 +42,14 @@ export const AxieFigure = () => { horn: initialPartValue, back: initialPartValue, tail: initialPartValue, - }); - const [body, setBody] = useState(""); - const [animation, setAnimation] = useState("Animation"); + }) + const [body, setBody] = useState('') + const [animation, setAnimation] = useState('Animation') const [color, setColor] = useState({ - key: "beast-02", - primary1: "ffd500", - primary2: "fffeda", - }); + key: 'beast-02', + primary1: 'ffd500', + primary2: 'fffeda', + }) const [showHelperTextStatus, setShowHelperTextStatus] = useState({ ears: false, eyes: false, @@ -59,60 +59,60 @@ export const AxieFigure = () => { tail: false, body: false, color: false, - }); + }) const filterByBodyPart = (part: string) => { - return key.items.parts.filter((item) => item.type === part); - }; + return key.items.parts.filter((item) => item.type === part) + } const onAxiePartChange = (value: Part) => { - setAxieParts({ ...axieParts, [value.type]: value }); - }; + setAxieParts({ ...axieParts, [value.type]: value }) + } const createAxieCombo = () => { - const axieCombo = new Map(); - axieCombo.set("body-id", ""); - axieCombo.set("body", body); - axieCombo.set("back", axieParts.back.sample); - axieCombo.set("ears", axieParts.ears.sample); - axieCombo.set("ear", axieParts.ears.sample); - axieCombo.set("eyes", axieParts.eyes.sample); - axieCombo.set("horn", axieParts.horn.sample); - axieCombo.set("mouth", axieParts.mouth.sample); - axieCombo.set("tail", axieParts.tail.sample); - return axieCombo; - }; + const axieCombo = new Map() + axieCombo.set('body-id', '') + axieCombo.set('body', body) + axieCombo.set('back', axieParts.back.sample) + axieCombo.set('ears', axieParts.ears.sample) + axieCombo.set('ear', axieParts.ears.sample) + axieCombo.set('eyes', axieParts.eyes.sample) + axieCombo.set('horn', axieParts.horn.sample) + axieCombo.set('mouth', axieParts.mouth.sample) + axieCombo.set('tail', axieParts.tail.sample) + return axieCombo + } const updateHelperText = (axieCombo) => { - const copyShowHelperText = { ...showHelperTextStatus }; + const copyShowHelperText = { ...showHelperTextStatus } for (let [key, value] of axieCombo.entries()) { - if (value === "") { - copyShowHelperText[key] = true; - } else copyShowHelperText[key] = false; - setShowHelperTextStatus(copyShowHelperText); + if (value === '') { + copyShowHelperText[key] = true + } else copyShowHelperText[key] = false + setShowHelperTextStatus(copyShowHelperText) } - }; + } const onCreateSpineFromCombo = async () => { try { - const axieCombo = createAxieCombo(); - updateHelperText(axieCombo); + const axieCombo = createAxieCombo() + updateHelperText(axieCombo) for (let [key, value] of axieCombo.entries()) { - if (key !== "body-id" && !value) { - throw new Error("Axie part selection incomplete"); + if (key !== 'body-id' && !value) { + throw new Error('Axie part selection incomplete') } } - const spine = getSpineFromAdultCombo(axieCombo); - if (!spine) throw new Error("Spine undefined"); - const mixer = { spine: spine, variant: color.key }; - await gameRef.current.changeSpineFromMixer(mixer); + const spine = getSpineFromAdultCombo(axieCombo) + if (!spine) throw new Error('Spine undefined') + const mixer = { spine: spine, variant: color.key } + await gameRef.current.changeSpineFromMixer(mixer) } catch (e) { - console.log(e); + console.error(e) } - }; + } - const container = useRef(null); - const gameRef = useRef(null); + const container = useRef(null) + const gameRef = useRef(null) // const onChangeAxieGenes = async () => { // await gameRef.current.changeSpine(axieIdInput); @@ -124,20 +124,20 @@ export const AxieFigure = () => { // }; const onChangeAnimation = (animation: string) => { - setAnimation(animation); - gameRef.current.currentFigure.changeCurrentAnimation(animation, true); - }; + setAnimation(animation) + gameRef.current.currentFigure.changeCurrentAnimation(animation, true) + } useEffect(() => { - if (!container) return; - if (!container.current) return; - const canvasContainer = container.current; + if (!container) return + if (!container.current) return + const canvasContainer = container.current if (canvasContainer.childElementCount > 0) { - canvasContainer.lastChild?.remove(); + canvasContainer.lastChild?.remove() } - setLoading(true); + setLoading(true) - const { offsetWidth, offsetHeight } = canvasContainer; + const { offsetWidth, offsetHeight } = canvasContainer const game = new PlaygroundGame({ transparent: false, resolution: window.devicePixelRatio, @@ -145,21 +145,21 @@ export const AxieFigure = () => { width: offsetWidth, height: offsetHeight, backgroundColor: 0x282b39, - }); + }) - gameRef.current = game; - gameRef.current.startGame(); - canvasContainer.appendChild(game.view); + gameRef.current = game + gameRef.current.startGame() + canvasContainer.appendChild(game.view) - setLoading(false); + setLoading(false) return () => { // gameRef.current.cleanUpKeyListeners(); if (game) { - game.destroy(); + game.destroy() } - }; - }, []); + } + }, []) return (
@@ -167,21 +167,21 @@ export const AxieFigure = () => {
{
{ {loading && }
- ); -}; + ) +} diff --git a/components/axie-figure/Figure.ts b/components/axie-figure/Figure.ts index bf1f4ee..5df66f1 100644 --- a/components/axie-figure/Figure.ts +++ b/components/axie-figure/Figure.ts @@ -1,57 +1,59 @@ -import "pixi-spine"; +import "pixi-spine" import { AxieMixer, - VARIANT_LIST, -} from "@axieinfinity/mixer"; + getAxieColorPartShift, + getVariantAttachmentPath, + // VARIANT_LIST, +} from "@axieinfinity/mixer" -import { getAxieGenes } from "../../utils/axie"; -import { Mixer } from "./types"; +import { getAxieGenes } from "../../utils/axie" +import { Mixer } from "./types" export class Figure extends PIXI.spine.Spine { static readonly resourcePath = - "https://axiecdn.axieinfinity.com/mixer-stuffs/v1/"; - mixer: Mixer; + "https://axiecdn.axieinfinity.com/mixer-stuffs/v2/" + mixer: Mixer constructor(mixer: Mixer) { - const resources = Figure.getResources(mixer); - const allTextures: { [key: string]: PIXI.Texture } = {}; + const resources = Figure.getResources(mixer) + const allTextures: { [key: string]: PIXI.Texture } = {} resources.map((resource) => { - const texture = PIXI.Texture.from(resource.imagePath); - allTextures[resource.key] = texture; - }); + const texture = PIXI.Texture.from(resource.imagePath) + allTextures[resource.key] = texture + }) - const spineAtlas = new PIXI.spine.core.TextureAtlas(); - spineAtlas.addTextureHash(allTextures, false); + const spineAtlas = new PIXI.spine.core.TextureAtlas() + spineAtlas.addTextureHash(allTextures, false) const spineAtlasLoader = new PIXI.spine.core.AtlasAttachmentLoader( spineAtlas - ); + ) - const spineJsonParser = new PIXI.spine.core.SkeletonJson(spineAtlasLoader); + const spineJsonParser = new PIXI.spine.core.SkeletonJson(spineAtlasLoader) console.log(mixer.spine) - const spineData = spineJsonParser.readSkeletonData(mixer.spine); - super(spineData); + const spineData = spineJsonParser.readSkeletonData(mixer.spine) + super(spineData) - this.mixer = mixer; - this.scale.set(0.18); + this.mixer = mixer + this.scale.set(0.18) } static async loadAndSpawn(loader: PIXI.loaders.Loader, mixer: Mixer) { - await this.loadResources(loader, mixer); - return new Figure(mixer); + await this.loadResources(loader, mixer) + return new Figure(mixer) } static async fromAxieId(loader: PIXI.loaders.Loader, id: string) { try { - const genes = await getAxieGenes(id); - - const mixer = new AxieMixer(genes).getAssets(); - if(!mixer) throw new Error("invalid mixer") - const newFigure = await this.loadAndSpawn(loader, mixer); - newFigure.stateData.setMix("draft/run-origin", "action/idle/normal", 0.1 ); - newFigure.stateData.setMix("action/idle/normal", "draft/run-origin", 0.2 ); - return newFigure; + const genes = await getAxieGenes(id) + + const mixer = new AxieMixer(genes).getAssets() + if (!mixer) throw new Error("invalid mixer") + const newFigure = await this.loadAndSpawn(loader, mixer) + newFigure.stateData.setMix("draft/run-origin", "action/idle/normal", 0.1) + newFigure.stateData.setMix("action/idle/normal", "draft/run-origin", 0.2) + return newFigure } catch (e) { console.log(e) } @@ -59,68 +61,76 @@ export class Figure extends PIXI.spine.Spine { static async fromMixer(loader: PIXI.loaders.Loader, mixer: Mixer) { const newFigure = await this.loadAndSpawn(loader, mixer) - newFigure.stateData.setMix("draft/run-origin", "action/idle/normal", 0.1 ); - newFigure.stateData.setMix("action/idle/normal", "draft/run-origin", 0.2 ); - return newFigure; + newFigure.stateData.setMix("draft/run-origin", "action/idle/normal", 0.1) + newFigure.stateData.setMix("action/idle/normal", "draft/run-origin", 0.2) + return newFigure } static async loadResources(loader: PIXI.loaders.Loader, mixer: Mixer) { - loader.reset(); - const resources = this.getResources(mixer); + loader.reset() + const resources = this.getResources(mixer) resources.forEach((item) => { if (loader.resources[item.key] === undefined) { - loader.add(item.key, item.imagePath); + loader.add(item.key, item.imagePath) } - }); - await new Promise((resolve) => loader.load(resolve)); + }) + await new Promise((resolve) => loader.load(resolve)) } - static async loadResourcesFromCombo(loader: PIXI.loaders.Loader, spine, variant: string) { - loader.reset(); - const resources = this.getResourcesFromCombo(spine, variant); + static async loadResourcesFromCombo( + loader: PIXI.loaders.Loader, + spine, + variant: string + ) { + loader.reset() + const resources = this.getResourcesFromCombo(spine, variant) resources.forEach((item) => { if (loader.resources[item.key] === undefined) { - loader.add(item.key, item.imagePath); + loader.add(item.key, item.imagePath) } - }); - await new Promise((resolve) => loader.load(resolve)); + }) + await new Promise((resolve) => loader.load(resolve)) } static getResourcesFromCombo(spine, variant: string) { - const skinAttachments = spine.skins[0].attachments; - const imagesToLoad: { key: string; imagePath: string }[] = []; + const skinAttachments = spine.skins[0].attachments + const imagesToLoad: { key: string; imagePath: string }[] = [] + const partColorShift = getAxieColorPartShift(variant) for (const slotName in skinAttachments) { - const skinSlotAttachments = skinAttachments[slotName]; + const skinSlotAttachments = skinAttachments[slotName] for (const attachmentName in skinSlotAttachments) { - const path = skinSlotAttachments[attachmentName].path; - const directionPath = path.replace(".", "/"); - const variantPath = VARIANT_LIST.includes(path) - ? `/${variant}` - : ""; - const imagePath: string = `${this.resourcePath}${directionPath}${variantPath}.png`; - imagesToLoad.push({ key: path, imagePath }); + const path = skinSlotAttachments[attachmentName].path + let imagePath = + this.resourcePath + + getVariantAttachmentPath(slotName, path, variant, partColorShift) + imagesToLoad.push({ key: path, imagePath }) } } - return imagesToLoad; + return imagesToLoad } static getResources(mixer: Mixer) { - const skinAttachments = mixer.spine.skins[0].attachments; - const imagesToLoad: { key: string; imagePath: string }[] = []; + const skinAttachments = mixer.spine.skins[0].attachments + const imagesToLoad: { key: string; imagePath: string }[] = [] + const partColorShift = getAxieColorPartShift(mixer.variant) for (const slotName in skinAttachments) { - const skinSlotAttachments = skinAttachments[slotName]; + const skinSlotAttachments = skinAttachments[slotName] for (const attachmentName in skinSlotAttachments) { - const path = skinSlotAttachments[attachmentName].path; - const directionPath = path.replace(".", "/"); - const variantPath = VARIANT_LIST.includes(path) - ? `/${mixer.variant}` - : ""; - const imagePath: string = `${this.resourcePath}${directionPath}${variantPath}.png`; - imagesToLoad.push({ key: path, imagePath }); + const path = skinSlotAttachments[attachmentName].path + + let imagePath = + this.resourcePath + + getVariantAttachmentPath( + slotName, + path, + mixer.variant, + partColorShift + ) + imagesToLoad.push({ key: path, imagePath }) } } - return imagesToLoad; + return imagesToLoad } } diff --git a/components/axie-figure/body-or-animation-dropdown/Title.tsx b/components/axie-figure/body-or-animation-dropdown/Title.tsx index 2702363..0823b18 100644 --- a/components/axie-figure/body-or-animation-dropdown/Title.tsx +++ b/components/axie-figure/body-or-animation-dropdown/Title.tsx @@ -1,10 +1,8 @@ -import { SvgChevronDownIcon } from "@axieinfinity/icons"; - -import s from "./styles.module.css"; +import s from "./styles.module.css" interface ITitle { - value: string; - title: string; + value: string + title: string } export const Title = ({ value, title }: ITitle) => { @@ -23,8 +21,8 @@ export const Title = ({ value, title }: ITitle) => {
{value || title}
- +
- ); -}; + ) +} diff --git a/components/axie-figure/color-dropdown/Title.tsx b/components/axie-figure/color-dropdown/Title.tsx index 61c2654..5477bc0 100644 --- a/components/axie-figure/color-dropdown/Title.tsx +++ b/components/axie-figure/color-dropdown/Title.tsx @@ -1,11 +1,9 @@ -import { SvgChevronDownIcon } from "@axieinfinity/icons"; - -import { Color } from "../types"; -import s from "./styles.module.css"; +import { Color } from "../types" +import s from "./styles.module.css" interface ITitle { - value: Color; - title: string; + value: Color + title: string } export const Title = ({ value, title }: ITitle) => { @@ -20,8 +18,8 @@ export const Title = ({ value, title }: ITitle) => { >
{"#" + value.primary1 || title}
- +
- ); -}; + ) +} diff --git a/components/axie-figure/key.json b/components/axie-figure/key.json index 7b44ad5..a1ac849 100644 --- a/components/axie-figure/key.json +++ b/components/axie-figure/key.json @@ -2,1621 +2,168 @@ "version": 1, "items": { "colors": [ - { "key": "beast-00", "primary1": "fdfcf2", "primary2": "af8c56" }, - { "key": "beast-01", "primary1": "544f44", "primary2": "edd8b8" }, - { "key": "beast-02", "primary1": "ffd500", "primary2": "fffeda" }, - { "key": "beast-03", "primary1": "fdb014", "primary2": "fef0a3" }, - { "key": "beast-04", "primary1": "f5a037", "primary2": "fde5b6" }, - { "key": "beast-06", "primary1": "427cad", "primary2": "ffcd63" }, - { "key": "plant-00", "primary1": "fefdf1", "primary2": "98984a" }, - { "key": "plant-01", "primary1": "4e523e", "primary2": "efe5a7" }, - { "key": "plant-02", "primary1": "afdb1b", "primary2": "e3efdb" }, - { "key": "plant-03", "primary1": "decd00", "primary2": "f3eaba" }, - { "key": "plant-04", "primary1": "99ff73", "primary2": "fbfdf1" }, - { "key": "aquatic-00", "primary1": "f4fff4", "primary2": "3ca1d9" }, - { "key": "aquatic-01", "primary1": "4d545e", "primary2": "a9ead5" }, - { "key": "aquatic-02", "primary1": "00f1d2", "primary2": "befedb" }, - { "key": "aquatic-03", "primary1": "00dff3", "primary2": "bffef4" }, - { "key": "aquatic-04", "primary1": "00b8ff", "primary2": "c9eeff" }, - { "key": "aquatic-06", "primary1": "e12f64", "primary2": "62ffe2" }, - { "key": "bug-00", "primary1": "fffaf5", "primary2": "e22737" }, - { "key": "bug-01", "primary1": "553b39", "primary2": "ffe7e2" }, - { "key": "bug-02", "primary1": "ff606c", "primary2": "fff4f9" }, - { "key": "bug-03", "primary1": "ff433e", "primary2": "ffdcce" }, - { "key": "bug-04", "primary1": "df2e54", "primary2": "ffd8d6" }, - { "key": "bird-00", "primary1": "fff7ff", "primary2": "fa59a0" }, - { "key": "bird-01", "primary1": "583c44", "primary2": "fec3dd" }, - { "key": "bird-02", "primary1": "ff99b0", "primary2": "ffd8f3" }, - { "key": "bird-03", "primary1": "ffafc1", "primary2": "ffe0e7" }, - { "key": "bird-04", "primary1": "ff78b4", "primary2": "ffedff" }, - { "key": "reptile-00", "primary1": "fff7ff", "primary2": "bb68ce" }, - { "key": "reptile-01", "primary1": "5e436d", "primary2": "f4cdfe" }, - { "key": "reptile-02", "primary1": "c569cf", "primary2": "ffd2fe" }, - { "key": "reptile-03", "primary1": "9967fb", "primary2": "dac3ff" }, - { "key": "reptile-04", "primary1": "f8bbff", "primary2": "fff1fe" }, - { "key": "reptile-06", "primary1": "00c15f", "primary2": "f4aaff" }, - { "key": "dawn-00", "primary1": "fcfbf2", "primary2": "d4f8d0" }, - { "key": "dawn-01", "primary1": "594026", "primary2": "fede29" }, - { "key": "dawn-02", "primary1": "bbbaff", "primary2": "eaf8ff" }, - { "key": "dawn-03", "primary1": "ffff8d", "primary2": "feffe3" }, - { "key": "dawn-04", "primary1": "a5ffff", "primary2": "ffffff" }, - { "key": "dusk-00", "primary1": "f4fefb", "primary2": "feffff" }, - { "key": "dusk-01", "primary1": "1d4d4f", "primary2": "d0fec0" }, - { "key": "dusk-02", "primary1": "0097a0", "primary2": "abffac" }, - { "key": "dusk-03", "primary1": "007181", "primary2": "62feda" }, - { "key": "dusk-04", "primary1": "00aeb7", "primary2": "a4ffcb" }, - { "key": "mech-00", "primary1": "f6fbff", "primary2": "929292" }, - { "key": "mech-01", "primary1": "505050", "primary2": "e5e5e5" }, - { "key": "mech-02", "primary1": "ced5d7", "primary2": "f1fdf0" }, - { "key": "mech-03", "primary1": "ad6d3f", "primary2": "9ae6cb" }, - { "key": "mech-04", "primary1": "8c8e9e", "primary2": "ebe7de" }, - { "key": "body-frosty", "primary1": "f3fefe", "primary2": "f3fefe" } - ], - "bodies": [ - "body-normal", - "body-fuzzy", - "body-spiky", - "body-wetdog", - "body-curly", - "body-sumo", - "body-bigyak", - "body-frosty", - "body-agamo", - "body-mystic-normal", - "body-mystic-fuzzy" + {"key": "beast-00", "primary1": "fdfcf2", "primary2": "af8c56"}, {"key": "beast-01", "primary1": "544f44", "primary2": "edd8b8"}, {"key": "beast-02", "primary1": "ffd500", "primary2": "fffeda"}, + {"key": "beast-03", "primary1": "fdb014", "primary2": "fef0a3"}, {"key": "beast-04", "primary1": "f5a037", "primary2": "fde5b6"}, {"key": "beast-06", "primary1": "427cad", "primary2": "ffcd63"}, + {"key": "plant-00", "primary1": "fefdf1", "primary2": "98984a"}, {"key": "plant-01", "primary1": "4e523e", "primary2": "efe5a7"}, {"key": "plant-02", "primary1": "afdb1b", "primary2": "e3efdb"}, + {"key": "plant-03", "primary1": "decd00", "primary2": "f3eaba"}, {"key": "plant-04", "primary1": "99ff73", "primary2": "fbfdf1"}, {"key": "aquatic-00", "primary1": "f4fff4", "primary2": "3ca1d9"}, + {"key": "aquatic-01", "primary1": "4d545e", "primary2": "a9ead5"}, {"key": "aquatic-02", "primary1": "00f1d2", "primary2": "befedb"}, {"key": "aquatic-03", "primary1": "00dff3", "primary2": "bffef4"}, + {"key": "aquatic-04", "primary1": "00b8ff", "primary2": "c9eeff"}, {"key": "aquatic-06", "primary1": "e12f64", "primary2": "62ffe2"}, {"key": "bug-00", "primary1": "fffaf5", "primary2": "e22737"}, + {"key": "bug-01", "primary1": "553b39", "primary2": "ffe7e2"}, {"key": "bug-02", "primary1": "ff606c", "primary2": "fff4f9"}, {"key": "bug-03", "primary1": "ff433e", "primary2": "ffdcce"}, + {"key": "bug-04", "primary1": "df2e54", "primary2": "ffd8d6"}, {"key": "bird-00", "primary1": "fff7ff", "primary2": "fa59a0"}, {"key": "bird-01", "primary1": "583c44", "primary2": "fec3dd"}, + {"key": "bird-02", "primary1": "ff99b0", "primary2": "ffd8f3"}, {"key": "bird-03", "primary1": "ffafc1", "primary2": "ffe0e7"}, {"key": "bird-04", "primary1": "ff78b4", "primary2": "ffedff"}, + {"key": "reptile-00", "primary1": "fff7ff", "primary2": "bb68ce"}, {"key": "reptile-01", "primary1": "5e436d", "primary2": "f4cdfe"}, {"key": "reptile-02", "primary1": "c569cf", "primary2": "ffd2fe"}, + {"key": "reptile-03", "primary1": "9967fb", "primary2": "dac3ff"}, {"key": "reptile-04", "primary1": "f8bbff", "primary2": "fff1fe"}, {"key": "reptile-06", "primary1": "00c15f", "primary2": "f4aaff"}, + {"key": "dawn-00", "primary1": "fcfbf2", "primary2": "d4f8d0"}, {"key": "dawn-01", "primary1": "594026", "primary2": "fede29"}, {"key": "dawn-02", "primary1": "bbbaff", "primary2": "eaf8ff"}, + {"key": "dawn-03", "primary1": "ffff8d", "primary2": "feffe3"}, {"key": "dawn-04", "primary1": "a5ffff", "primary2": "ffffff"}, {"key": "dusk-00", "primary1": "f4fefb", "primary2": "feffff"}, + {"key": "dusk-01", "primary1": "1d4d4f", "primary2": "d0fec0"}, {"key": "dusk-02", "primary1": "0097a0", "primary2": "abffac"}, {"key": "dusk-03", "primary1": "007181", "primary2": "62feda"}, + {"key": "dusk-04", "primary1": "00aeb7", "primary2": "a4ffcb"}, {"key": "mech-00", "primary1": "f6fbff", "primary2": "929292"}, {"key": "mech-01", "primary1": "505050", "primary2": "e5e5e5"}, + {"key": "mech-02", "primary1": "ced5d7", "primary2": "f1fdf0"}, {"key": "mech-03", "primary1": "ad6d3f", "primary2": "9ae6cb"}, {"key": "mech-04", "primary1": "8c8e9e", "primary2": "ebe7de"}, + {"key": "body-frosty", "primary1": "f3fefe", "primary2": "f3fefe"}, {"key": "beast-summer", "primary1": "fe9701", "primary2": "fff6ec"}, {"key": "plant-summer", "primary1": "67e92f", "primary2": "f6fff7"}, + {"key": "aquatic-summer", "primary1": "00c5d0", "primary2": "f5fffd"}, {"key": "bug-summer", "primary1": "ff4363", "primary2": "fffdff"}, {"key": "bird-summer", "primary1": "ff78bb", "primary2": "fffdff"}, + {"key": "reptile-summer", "primary1": "e173ff", "primary2": "fefeff"}, {"key": "dawn-summer", "primary1": "ffda00", "primary2": "f8fdea"}, {"key": "mech-summer", "primary1": "c7d7e9", "primary2": "fefeff"}, + {"key": "dusk-summer", "primary1": "474b84", "primary2": "fefeff"} ], + "bodies": ["body-sumo", "body-curly", "body-summer", "body-mystic-normal", "body-frosty", "body-spiky", "body-normal", "body-mystic-fuzzy", "body-wetdog", "body-agamo", "body-bigyak", "body-fuzzy"], "parts": [ - { - "key": "eyes-zeal", - "name": "Zeal", - "type": "eyes", - "sample": "beast-02" - }, - { - "key": "eyes-calico-zeal", - "name": "Calico Zeal", - "type": "eyes", - "sample": "beast-mystic-02" - }, - { - "key": "eyes-little-peas", - "name": "Little Peas", - "type": "eyes", - "sample": "beast-04" - }, - { - "key": "eyes-snowflakes", - "name": "Snowflakes", - "type": "eyes", - "sample": "xmas-01" - }, - { - "key": "eyes-puppy", - "name": "Puppy", - "type": "eyes", - "sample": "beast-08" - }, - { - "key": "eyes-chubby", - "name": "Chubby", - "type": "eyes", - "sample": "beast-10" - }, - { - "key": "ears-nyan", - "name": "Nyan", - "type": "ears", - "sample": "beast-02" - }, - { - "key": "ears-pointy-nyan", - "name": "Pointy Nyan", - "type": "ears", - "sample": "beast-mystic-02" - }, - { - "key": "ears-nut-cracker", - "name": "Nut Cracker", - "type": "ears", - "sample": "beast-04" - }, - { - "key": "ears-innocent-lamb", - "name": "Innocent Lamb", - "type": "ears", - "sample": "beast-06" - }, - { - "key": "ears-merry-lamb", - "name": "Merry Lamb", - "type": "ears", - "sample": "xmas-01" - }, - { - "key": "ears-zen", - "name": "Zen", - "type": "ears", - "sample": "beast-08" - }, - { - "key": "ears-puppy", - "name": "Puppy", - "type": "ears", - "sample": "beast-10" - }, - { - "key": "ears-belieber", - "name": "Belieber", - "type": "ears", - "sample": "beast-12" - }, - { - "key": "back-ronin", - "name": "Ronin", - "type": "back", - "sample": "beast-02" - }, - { - "key": "back-hasagi", - "name": "Hasagi", - "type": "back", - "sample": "beast-mystic-02" - }, - { - "key": "back-hero", - "name": "Hero", - "type": "back", - "sample": "beast-04" - }, - { - "key": "back-jaguar", - "name": "Jaguar", - "type": "back", - "sample": "beast-06" - }, - { - "key": "back-risky-beast", - "name": "Risky Beast", - "type": "back", - "sample": "beast-08" - }, - { - "key": "back-hamaya", - "name": "Hamaya", - "type": "back", - "sample": "japan-02" - }, - { - "key": "back-timber", - "name": "Timber", - "type": "back", - "sample": "beast-10" - }, - { - "key": "back-furball", - "name": "Furball", - "type": "back", - "sample": "beast-12" - }, - { - "key": "horn-little-branch", - "name": "Little Branch", - "type": "horn", - "sample": "beast-02" - }, - { - "key": "horn-winter-branch", - "name": "Winter Branch", - "type": "horn", - "sample": "beast-mystic-02" - }, - { - "key": "horn-imp", - "name": "Imp", - "type": "horn", - "sample": "beast-04" - }, - { - "key": "horn-kendama", - "name": "Kendama", - "type": "horn", - "sample": "japan-03" - }, - { - "key": "horn-merry", - "name": "Merry", - "type": "horn", - "sample": "beast-06" - }, - { - "key": "horn-pocky", - "name": "Pocky", - "type": "horn", - "sample": "beast-08" - }, - { - "key": "horn-umaibo", - "name": "Umaibo", - "type": "horn", - "sample": "japan-02" - }, - { - "key": "horn-dual-blade", - "name": "Dual Blade", - "type": "horn", - "sample": "beast-10" - }, - { - "key": "horn-arco", - "name": "Arco", - "type": "horn", - "sample": "beast-12" - }, - { - "key": "tail-cottontail", - "name": "Cottontail", - "type": "tail", - "sample": "beast-02" - }, - { - "key": "tail-sakura-cottontail", - "name": "Sakura Cottontail", - "type": "tail", - "sample": "beast-mystic-02" - }, - { - "key": "tail-rice", - "name": "Rice", - "type": "tail", - "sample": "beast-04" - }, - { - "key": "tail-shiba", - "name": "Shiba", - "type": "tail", - "sample": "beast-06" - }, - { - "key": "tail-hare", - "name": "Hare", - "type": "tail", - "sample": "beast-08" - }, - { - "key": "tail-nut-cracker", - "name": "Nut Cracker", - "type": "tail", - "sample": "beast-10" - }, - { - "key": "tail-gerbil", - "name": "Gerbil", - "type": "tail", - "sample": "beast-12" - }, - { - "key": "mouth-nut-cracker", - "name": "Nut Cracker", - "type": "mouth", - "sample": "beast-02" - }, - { - "key": "mouth-skull-cracker", - "name": "Skull Cracker", - "type": "mouth", - "sample": "beast-mystic-02" - }, - { - "key": "mouth-goda", - "name": "Goda", - "type": "mouth", - "sample": "beast-04" - }, - { - "key": "mouth-axie-kiss", - "name": "Axie Kiss", - "type": "mouth", - "sample": "beast-08" - }, - { - "key": "mouth-confident", - "name": "Confident", - "type": "mouth", - "sample": "beast-10" - }, - { - "key": "mouth-mosquito", - "name": "Mosquito", - "type": "mouth", - "sample": "bug-02" - }, - { - "key": "mouth-feasting-mosquito", - "name": "Feasting Mosquito", - "type": "mouth", - "sample": "bug-mystic-02" - }, - { - "key": "mouth-pincer", - "name": "Pincer", - "type": "mouth", - "sample": "bug-04" - }, - { - "key": "mouth-cute-bunny", - "name": "Cute Bunny", - "type": "mouth", - "sample": "bug-08" - }, - { - "key": "mouth-kawaii", - "name": "Kawaii", - "type": "mouth", - "sample": "japan-03" - }, - { - "key": "mouth-square-teeth", - "name": "Square Teeth", - "type": "mouth", - "sample": "bug-10" - }, - { - "key": "horn-lagging", - "name": "Lagging", - "type": "horn", - "sample": "bug-02" - }, - { - "key": "horn-laggingggggg", - "name": "Laggingggggg", - "type": "horn", - "sample": "bug-mystic-02" - }, - { - "key": "horn-antenna", - "name": "Antenna", - "type": "horn", - "sample": "bug-04" - }, - { - "key": "horn-caterpillars", - "name": "Caterpillars", - "type": "horn", - "sample": "bug-06" - }, - { - "key": "horn-pliers", - "name": "Pliers", - "type": "horn", - "sample": "bug-08" - }, - { - "key": "horn-parasite", - "name": "Parasite", - "type": "horn", - "sample": "bug-10" - }, - { - "key": "horn-p4r451t3", - "name": "P4R451T3", - "type": "horn", - "sample": "agamo-01" - }, - { - "key": "horn-leaf-bug", - "name": "Leaf Bug", - "type": "horn", - "sample": "bug-12" - }, - { "key": "tail-ant", "name": "Ant", "type": "tail", "sample": "bug-02" }, - { - "key": "tail-fire-ant", - "name": "Fire Ant", - "type": "tail", - "sample": "bug-mystic-02" - }, - { - "key": "tail-twin-tail", - "name": "Twin Tail", - "type": "tail", - "sample": "bug-04" - }, - { - "key": "tail-fish-snack", - "name": "Fish Snack", - "type": "tail", - "sample": "bug-06" - }, - { - "key": "tail-maki", - "name": "Maki", - "type": "tail", - "sample": "japan-01" - }, - { - "key": "tail-gravel-ant", - "name": "Gravel Ant", - "type": "tail", - "sample": "bug-08" - }, - { - "key": "tail-pupae", - "name": "Pupae", - "type": "tail", - "sample": "bug-10" - }, - { - "key": "tail-thorny-caterpillar", - "name": "Thorny Caterpillar", - "type": "tail", - "sample": "bug-12" - }, - { - "key": "back-snail-shell", - "name": "Snail Shell", - "type": "back", - "sample": "bug-02" - }, - { - "key": "back-starry-shell", - "name": "Starry Shell", - "type": "back", - "sample": "bug-mystic-02" - }, - { - "key": "back-garish-worm", - "name": "Garish Worm", - "type": "back", - "sample": "bug-04" - }, - { - "key": "back-candy-canes", - "name": "Candy Canes", - "type": "back", - "sample": "xmas-01" - }, - { - "key": "back-buzz-buzz", - "name": "Buzz Buzz", - "type": "back", - "sample": "bug-06" - }, - { - "key": "back-sandal", - "name": "Sandal", - "type": "back", - "sample": "bug-08" - }, - { - "key": "back-scarab", - "name": "Scarab", - "type": "back", - "sample": "bug-10" - }, - { - "key": "back-spiky-wing", - "name": "Spiky Wing", - "type": "back", - "sample": "bug-12" - }, - { - "key": "ears-larva", - "name": "Larva", - "type": "ears", - "sample": "bug-02" - }, - { - "key": "ears-vector", - "name": "Vector", - "type": "ears", - "sample": "bug-mystic-02" - }, - { - "key": "ears-beetle-spike", - "name": "Beetle Spike", - "type": "ears", - "sample": "bug-04" - }, - { - "key": "ears-ear-breathing", - "name": "Ear Breathing", - "type": "ears", - "sample": "bug-06" - }, - { - "key": "ears-leaf-bug", - "name": "Leaf Bug", - "type": "ears", - "sample": "bug-08" - }, - { - "key": "ears-tassels", - "name": "Tassels", - "type": "ears", - "sample": "bug-10" - }, - { - "key": "ears-earwing", - "name": "Earwing", - "type": "ears", - "sample": "bug-12" - }, - { - "key": "ears-mon", - "name": "Mon", - "type": "ears", - "sample": "japan-03" - }, - { - "key": "eyes-bookworm", - "name": "Bookworm", - "type": "eyes", - "sample": "bug-02" - }, - { - "key": "eyes-broken-bookworm", - "name": "Broken Bookworm", - "type": "eyes", - "sample": "bug-mystic-02" - }, - { "key": "eyes-neo", "name": "Neo", "type": "eyes", "sample": "bug-04" }, - { - "key": "eyes-nerdy", - "name": "Nerdy", - "type": "eyes", - "sample": "bug-08" - }, - { - "key": "eyes-kotaro?", - "name": "Kotaro?", - "type": "eyes", - "sample": "bug-10" - }, - { - "key": "eyes-sleepless", - "name": "Sleepless", - "type": "eyes", - "sample": "aquatic-02" - }, - { - "key": "eyes-insomnia", - "name": "Insomnia", - "type": "eyes", - "sample": "aquatic-mystic-02" - }, - { - "key": "eyes-yen", - "name": "Yen", - "type": "eyes", - "sample": "japan-02" - }, - { - "key": "eyes-clear", - "name": "Clear", - "type": "eyes", - "sample": "aquatic-04" - }, - { - "key": "eyes-gero", - "name": "Gero", - "type": "eyes", - "sample": "aquatic-08" - }, - { - "key": "eyes-telescope", - "name": "Telescope", - "type": "eyes", - "sample": "aquatic-10" - }, - { - "key": "mouth-lam", - "name": "Lam", - "type": "mouth", - "sample": "aquatic-02" - }, - { - "key": "mouth-lam-handsome", - "name": "Lam Handsome", - "type": "mouth", - "sample": "aquatic-mystic-02" - }, - { - "key": "mouth-catfish", - "name": "Catfish", - "type": "mouth", - "sample": "aquatic-04" - }, - { - "key": "mouth-risky-fish", - "name": "Risky Fish", - "type": "mouth", - "sample": "aquatic-08" - }, - { - "key": "mouth-piranha", - "name": "Piranha", - "type": "mouth", - "sample": "aquatic-10" - }, - { - "key": "mouth-geisha", - "name": "Geisha", - "type": "mouth", - "sample": "japan-01" - }, - { - "key": "horn-babylonia", - "name": "Babylonia", - "type": "horn", - "sample": "aquatic-02" - }, - { - "key": "horn-candy-babylonia", - "name": "Candy Babylonia", - "type": "horn", - "sample": "aquatic-mystic-02" - }, - { - "key": "horn-teal-shell", - "name": "Teal Shell", - "type": "horn", - "sample": "aquatic-04" - }, - { - "key": "horn-clamshell", - "name": "Clamshell", - "type": "horn", - "sample": "aquatic-06" - }, - { - "key": "horn-anemone", - "name": "Anemone", - "type": "horn", - "sample": "aquatic-08" - }, - { - "key": "horn-oranda", - "name": "Oranda", - "type": "horn", - "sample": "aquatic-10" - }, - { - "key": "horn-shoal-star", - "name": "Shoal Star", - "type": "horn", - "sample": "aquatic-12" - }, - { - "key": "horn-5h04l-5t4r", - "name": "5H04L-5T4R", - "type": "horn", - "sample": "agamo-00" - }, - { - "key": "ears-nimo", - "name": "Nimo", - "type": "ears", - "sample": "aquatic-02" - }, - { - "key": "ears-red-nimo", - "name": "Red Nimo", - "type": "ears", - "sample": "aquatic-mystic-02" - }, - { - "key": "ears-tiny-fan", - "name": "Tiny Fan", - "type": "ears", - "sample": "aquatic-04" - }, - { - "key": "ears-bubblemaker", - "name": "Bubblemaker", - "type": "ears", - "sample": "aquatic-06" - }, - { - "key": "ears-inkling", - "name": "Inkling", - "type": "ears", - "sample": "aquatic-08" - }, - { - "key": "ears-gill", - "name": "Gill", - "type": "ears", - "sample": "aquatic-10" - }, - { - "key": "ears-seaslug", - "name": "Seaslug", - "type": "ears", - "sample": "aquatic-12" - }, - { - "key": "tail-koi", - "name": "Koi", - "type": "tail", - "sample": "aquatic-02" - }, - { - "key": "tail-kuro-koi", - "name": "Kuro Koi", - "type": "tail", - "sample": "aquatic-mystic-02" - }, - { - "key": "tail-koinobori", - "name": "Koinobori", - "type": "tail", - "sample": "japan-02" - }, - { - "key": "tail-nimo", - "name": "Nimo", - "type": "tail", - "sample": "aquatic-04" - }, - { - "key": "tail-tadpole", - "name": "Tadpole", - "type": "tail", - "sample": "aquatic-06" - }, - { - "key": "tail-ranchu", - "name": "Ranchu", - "type": "tail", - "sample": "aquatic-08" - }, - { - "key": "tail-navaga", - "name": "Navaga", - "type": "tail", - "sample": "aquatic-10" - }, - { - "key": "tail-shrimp", - "name": "Shrimp", - "type": "tail", - "sample": "aquatic-12" - }, - { - "key": "back-hermit", - "name": "Hermit", - "type": "back", - "sample": "aquatic-02" - }, - { - "key": "back-crystal-hermit", - "name": "Crystal Hermit", - "type": "back", - "sample": "aquatic-mystic-02" - }, - { - "key": "back-blue-moon", - "name": "Blue Moon", - "type": "back", - "sample": "aquatic-04" - }, - { - "key": "back-goldfish", - "name": "Goldfish", - "type": "back", - "sample": "aquatic-06" - }, - { - "key": "back-sponge", - "name": "Sponge", - "type": "back", - "sample": "aquatic-08" - }, - { - "key": "back-anemone", - "name": "Anemone", - "type": "back", - "sample": "aquatic-10" - }, - { - "key": "back-perch", - "name": "Perch", - "type": "back", - "sample": "aquatic-12" - }, - { - "key": "ears-pink-cheek", - "name": "Pink Cheek", - "type": "ears", - "sample": "bird-02" - }, - { - "key": "ears-heart-cheek", - "name": "Heart Cheek", - "type": "ears", - "sample": "bird-mystic-02" - }, - { - "key": "ears-early-bird", - "name": "Early Bird", - "type": "ears", - "sample": "bird-04" - }, - { "key": "ears-owl", "name": "Owl", "type": "ears", "sample": "bird-06" }, - { - "key": "ears-peace-maker", - "name": "Peace Maker", - "type": "ears", - "sample": "bird-08" - }, - { - "key": "ears-curly", - "name": "Curly", - "type": "ears", - "sample": "bird-10" - }, - { - "key": "ears-risky-bird", - "name": "Risky Bird", - "type": "ears", - "sample": "bird-12" - }, - { - "key": "ears-karimata", - "name": "Karimata", - "type": "ears", - "sample": "japan-02" - }, - { - "key": "tail-swallow", - "name": "Swallow", - "type": "tail", - "sample": "bird-02" - }, - { - "key": "tail-snowy-swallow", - "name": "Snowy Swallow", - "type": "tail", - "sample": "bird-mystic-02" - }, - { - "key": "tail-feather-fan", - "name": "Feather Fan", - "type": "tail", - "sample": "bird-04" - }, - { - "key": "tail-the-last-one", - "name": "The Last One", - "type": "tail", - "sample": "bird-06" - }, - { - "key": "tail-cloud", - "name": "Cloud", - "type": "tail", - "sample": "bird-08" - }, - { - "key": "tail-granmas-fan", - "name": "Granma's Fan", - "type": "tail", - "sample": "bird-10" - }, - { - "key": "tail-omatsuri", - "name": "Omatsuri", - "type": "tail", - "sample": "japan-03" - }, - { - "key": "tail-post-fight", - "name": "Post Fight", - "type": "tail", - "sample": "bird-12" - }, - { - "key": "back-balloon", - "name": "Balloon", - "type": "back", - "sample": "bird-02" - }, - { - "key": "back-starry-balloon", - "name": "Starry Balloon", - "type": "back", - "sample": "bird-mystic-02" - }, - { - "key": "back-cupid", - "name": "Cupid", - "type": "back", - "sample": "bird-04" - }, - { - "key": "back-origami", - "name": "Origami", - "type": "back", - "sample": "japan-01" - }, - { - "key": "back-raven", - "name": "Raven", - "type": "back", - "sample": "bird-06" - }, - { - "key": "back-pigeon-post", - "name": "Pigeon Post", - "type": "back", - "sample": "bird-08" - }, - { - "key": "back-kingfisher", - "name": "Kingfisher", - "type": "back", - "sample": "bird-10" - }, - { - "key": "back-tri-feather", - "name": "Tri Feather", - "type": "back", - "sample": "bird-12" - }, - { - "key": "horn-eggshell", - "name": "Eggshell", - "type": "horn", - "sample": "bird-02" - }, - { - "key": "horn-golden-shell", - "name": "Golden Shell", - "type": "horn", - "sample": "bird-mystic-02" - }, - { - "key": "horn-cuckoo", - "name": "Cuckoo", - "type": "horn", - "sample": "bird-04" - }, - { - "key": "horn-trump", - "name": "Trump", - "type": "horn", - "sample": "bird-06" - }, - { - "key": "horn-kestrel", - "name": "Kestrel", - "type": "horn", - "sample": "bird-08" - }, - { - "key": "horn-wing-horn", - "name": "Wing Horn", - "type": "horn", - "sample": "bird-10" - }, - { - "key": "horn-feather-spear", - "name": "Feather Spear", - "type": "horn", - "sample": "bird-12" - }, - { - "key": "horn-spruce-spear", - "name": "Spruce Spear", - "type": "horn", - "sample": "xmas-01" - }, - { - "key": "mouth-doubletalk", - "name": "Doubletalk", - "type": "mouth", - "sample": "bird-02" - }, - { - "key": "mouth-mr-doubletalk", - "name": "Mr. Doubletalk", - "type": "mouth", - "sample": "bird-mystic-02" - }, - { - "key": "mouth-peace-maker", - "name": "Peace Maker", - "type": "mouth", - "sample": "bird-04" - }, - { - "key": "mouth-hungry-bird", - "name": "Hungry Bird", - "type": "mouth", - "sample": "bird-08" - }, - { - "key": "mouth-little-owl", - "name": "Little Owl", - "type": "mouth", - "sample": "bird-10" - }, - { - "key": "eyes-mavis", - "name": "Mavis", - "type": "eyes", - "sample": "bird-02" - }, - { - "key": "eyes-sky-mavis", - "name": "Sky Mavis", - "type": "eyes", - "sample": "bird-mystic-02" - }, - { - "key": "eyes-lucas", - "name": "Lucas", - "type": "eyes", - "sample": "bird-04" - }, - { - "key": "eyes-icy-gaze", - "name": "Icy Gaze", - "type": "eyes", - "sample": "xmas-02" - }, - { - "key": "eyes-little-owl", - "name": "Little Owl", - "type": "eyes", - "sample": "bird-08" - }, - { - "key": "eyes-robin", - "name": "Robin", - "type": "eyes", - "sample": "bird-10" - }, - { - "key": "eyes-gecko", - "name": "Gecko", - "type": "eyes", - "sample": "reptile-02" - }, - { - "key": "eyes-crimson-gecko", - "name": "Crimson Gecko", - "type": "eyes", - "sample": "reptile-mystic-02" - }, - { - "key": "eyes-tricky", - "name": "Tricky", - "type": "eyes", - "sample": "reptile-04" - }, - { - "key": "eyes-scar", - "name": "Scar", - "type": "eyes", - "sample": "reptile-08" - }, - { - "key": "eyes-dokuganryu", - "name": "Dokuganryu", - "type": "eyes", - "sample": "japan-03" - }, - { - "key": "eyes-topaz", - "name": "Topaz", - "type": "eyes", - "sample": "reptile-10" - }, - { - "key": "eyes-kabuki", - "name": "Kabuki", - "type": "eyes", - "sample": "japan-01" - }, - { - "key": "mouth-toothless-bite", - "name": "Toothless Bite", - "type": "mouth", - "sample": "reptile-02" - }, - { - "key": "mouth-venom-bite", - "name": "Venom Bite", - "type": "mouth", - "sample": "reptile-mystic-02" - }, - { - "key": "mouth-kotaro", - "name": "Kotaro", - "type": "mouth", - "sample": "reptile-04" - }, - { - "key": "mouth-razor-bite", - "name": "Razor Bite", - "type": "mouth", - "sample": "reptile-08" - }, - { - "key": "mouth-tiny-turtle", - "name": "Tiny Turtle", - "type": "mouth", - "sample": "reptile-10" - }, - { - "key": "mouth-dango", - "name": "Dango", - "type": "mouth", - "sample": "japan-02" - }, - { - "key": "mouth-tiny-carrot", - "name": "Tiny Carrot", - "type": "mouth", - "sample": "xmas-02" - }, - { - "key": "ears-pogona", - "name": "Pogona", - "type": "ears", - "sample": "reptile-02" - }, - { - "key": "ears-deadly-pogona", - "name": "Deadly Pogona", - "type": "ears", - "sample": "reptile-mystic-02" - }, - { - "key": "ears-friezard", - "name": "Friezard", - "type": "ears", - "sample": "reptile-04" - }, - { - "key": "ears-curved-spine", - "name": "Curved Spine", - "type": "ears", - "sample": "reptile-06" - }, - { - "key": "ears-small-frill", - "name": "Small Frill", - "type": "ears", - "sample": "reptile-08" - }, - { - "key": "ears-swirl", - "name": "Swirl", - "type": "ears", - "sample": "reptile-10" - }, - { - "key": "ears-sidebarb", - "name": "Sidebarb", - "type": "ears", - "sample": "reptile-12" - }, - { - "key": "back-bone-sail", - "name": "Bone Sail", - "type": "back", - "sample": "reptile-02" - }, - { - "key": "back-rugged-sail", - "name": "Rugged Sail", - "type": "back", - "sample": "reptile-mystic-02" - }, - { - "key": "back-tri-spikes", - "name": "Tri Spikes", - "type": "back", - "sample": "reptile-04" - }, - { - "key": "back-green-thorns", - "name": "Green Thorns", - "type": "back", - "sample": "reptile-06" - }, - { - "key": "back-indian-star", - "name": "Indian Star", - "type": "back", - "sample": "reptile-08" - }, - { - "key": "back-1nd14n-5t4r", - "name": "1ND14N-5T4R", - "type": "back", - "sample": "agamo-00" - }, - { - "key": "back-frozen-bucket", - "name": "Frozen Bucket", - "type": "back", - "sample": "xmas-02" - }, - { - "key": "back-red-ear", - "name": "Red Ear", - "type": "back", - "sample": "reptile-10" - }, - { - "key": "back-croc", - "name": "Croc", - "type": "back", - "sample": "reptile-12" - }, - { - "key": "tail-wall-gecko", - "name": "Wall Gecko", - "type": "tail", - "sample": "reptile-02" - }, - { - "key": "tail-escaped-gecko", - "name": "Escaped Gecko", - "type": "tail", - "sample": "reptile-mystic-02" - }, - { - "key": "tail-iguana", - "name": "Iguana", - "type": "tail", - "sample": "reptile-04" - }, - { - "key": "tail-tiny-dino", - "name": "Tiny Dino", - "type": "tail", - "sample": "reptile-06" - }, - { - "key": "tail-fir-trunk", - "name": "Fir Trunk", - "type": "tail", - "sample": "xmas-02" - }, - { - "key": "tail-snake-jar", - "name": "Snake Jar", - "type": "tail", - "sample": "reptile-08" - }, - { - "key": "tail-december-surprise", - "name": "December Surprise", - "type": "tail", - "sample": "xmas-01" - }, - { - "key": "tail-gila", - "name": "Gila", - "type": "tail", - "sample": "reptile-10" - }, - { - "key": "tail-grass-snake", - "name": "Grass Snake", - "type": "tail", - "sample": "reptile-12" - }, - { - "key": "horn-unko", - "name": "Unko", - "type": "horn", - "sample": "reptile-02" - }, - { - "key": "horn-pinku-unko", - "name": "Pinku Unko", - "type": "horn", - "sample": "reptile-mystic-02" - }, - { - "key": "horn-scaly-spear", - "name": "Scaly Spear", - "type": "horn", - "sample": "reptile-04" - }, - { - "key": "horn-cerastes", - "name": "Cerastes", - "type": "horn", - "sample": "reptile-06" - }, - { - "key": "horn-scaly-spoon", - "name": "Scaly Spoon", - "type": "horn", - "sample": "reptile-08" - }, - { - "key": "horn-incisor", - "name": "Incisor", - "type": "horn", - "sample": "reptile-10" - }, - { - "key": "horn-bumpy", - "name": "Bumpy", - "type": "horn", - "sample": "reptile-12" - }, - { - "key": "tail-carrot", - "name": "Carrot", - "type": "tail", - "sample": "plant-02" - }, - { - "key": "tail-namek-carrot", - "name": "Namek Carrot", - "type": "tail", - "sample": "plant-mystic-02" - }, - { - "key": "tail-cattail", - "name": "Cattail", - "type": "tail", - "sample": "plant-04" - }, - { - "key": "tail-hatsune", - "name": "Hatsune", - "type": "tail", - "sample": "plant-06" - }, - { - "key": "tail-yam", - "name": "Yam", - "type": "tail", - "sample": "plant-08" - }, - { - "key": "tail-potato-leaf", - "name": "Potato Leaf", - "type": "tail", - "sample": "plant-10" - }, - { - "key": "tail-hot-butt", - "name": "Hot Butt", - "type": "tail", - "sample": "plant-12" - }, - { - "key": "mouth-serious", - "name": "Serious", - "type": "mouth", - "sample": "plant-02" - }, - { - "key": "mouth-humorless", - "name": "Humorless", - "type": "mouth", - "sample": "plant-mystic-02" - }, - { - "key": "mouth-zigzag", - "name": "Zigzag", - "type": "mouth", - "sample": "plant-04" - }, - { - "key": "mouth-rudolph", - "name": "Rudolph", - "type": "mouth", - "sample": "xmas-01" - }, - { - "key": "mouth-herbivore", - "name": "Herbivore", - "type": "mouth", - "sample": "plant-08" - }, - { - "key": "mouth-silence-whisper", - "name": "Silence Whisper", - "type": "mouth", - "sample": "plant-10" - }, - { - "key": "eyes-papi", - "name": "Papi", - "type": "eyes", - "sample": "plant-02" - }, - { - "key": "eyes-dreamy-papi", - "name": "Dreamy Papi", - "type": "eyes", - "sample": "plant-mystic-02" - }, - { - "key": "eyes-confused", - "name": "Confused", - "type": "eyes", - "sample": "plant-04" - }, - { - "key": "eyes-cucumber-slice", - "name": "Cucumber Slice", - "type": "eyes", - "sample": "plant-08" - }, - { - "key": "eyes-blossom", - "name": "Blossom", - "type": "eyes", - "sample": "plant-10" - }, - { - "key": "ears-leafy", - "name": "Leafy", - "type": "ears", - "sample": "plant-02" - }, - { - "key": "ears-the-last-leaf", - "name": "The Last Leaf", - "type": "ears", - "sample": "plant-mystic-02" - }, - { - "key": "ears-clover", - "name": "Clover", - "type": "ears", - "sample": "plant-04" - }, - { - "key": "ears-rosa", - "name": "Rosa", - "type": "ears", - "sample": "plant-06" - }, - { - "key": "ears-sakura", - "name": "Sakura", - "type": "ears", - "sample": "plant-08" - }, - { - "key": "ears-maiko", - "name": "Maiko", - "type": "ears", - "sample": "japan-01" - }, - { - "key": "ears-hollow", - "name": "Hollow", - "type": "ears", - "sample": "plant-10" - }, - { - "key": "ears-pinecones", - "name": "Pinecones", - "type": "ears", - "sample": "xmas-02" - }, - { - "key": "ears-lotus", - "name": "Lotus", - "type": "ears", - "sample": "plant-12" - }, - { - "key": "back-turnip", - "name": "Turnip", - "type": "back", - "sample": "plant-02" - }, - { - "key": "back-pink-turnip", - "name": "Pink Turnip", - "type": "back", - "sample": "plant-mystic-02" - }, - { - "key": "back-shiitake", - "name": "Shiitake", - "type": "back", - "sample": "plant-04" - }, - { - "key": "back-yakitori", - "name": "Yakitori", - "type": "back", - "sample": "japan-03" - }, - { - "key": "back-bidens", - "name": "Bidens", - "type": "back", - "sample": "plant-06" - }, - { - "key": "back-watering-can", - "name": "Watering Can", - "type": "back", - "sample": "plant-08" - }, - { - "key": "back-mint", - "name": "Mint", - "type": "back", - "sample": "plant-10" - }, - { - "key": "back-pumpkin", - "name": "Pumpkin", - "type": "back", - "sample": "plant-12" - }, - { - "key": "horn-bamboo-shoot", - "name": "Bamboo Shoot", - "type": "horn", - "sample": "plant-02" - }, - { - "key": "horn-golden-bamboo-shoot", - "name": "Golden Bamboo Shoot", - "type": "horn", - "sample": "plant-mystic-02" - }, - { - "key": "horn-beech", - "name": "Beech", - "type": "horn", - "sample": "plant-04" - }, - { - "key": "horn-yorishiro", - "name": "Yorishiro", - "type": "horn", - "sample": "japan-01" - }, - { - "key": "horn-rose-bud", - "name": "Rose Bud", - "type": "horn", - "sample": "plant-06" - }, - { - "key": "horn-strawberry-shortcake", - "name": "Strawberry Shortcake", - "type": "horn", - "sample": "plant-08" - }, - { - "key": "horn-cactus", - "name": "Cactus", - "type": "horn", - "sample": "plant-10" - }, - { - "key": "horn-santas-gift", - "name": "Santa's Gift", - "type": "horn", - "sample": "xmas-02" - }, - { - "key": "horn-watermelon", - "name": "Watermelon", - "type": "horn", - "sample": "plant-12" - } + {"key": "eyes-zeal", "name": "Zeal", "type": "eyes", "sample": "beast-02"}, {"key": "eyes-calico-zeal", "name": "Calico Zeal", "type": "eyes", "sample": "beast-mystic-02"}, + {"key": "eyes-little-peas", "name": "Little Peas", "type": "eyes", "sample": "beast-04"}, {"key": "eyes-snowflakes", "name": "Snowflakes", "type": "eyes", "sample": "xmas-01"}, + {"key": "eyes-puppy", "name": "Puppy", "type": "eyes", "sample": "beast-08"}, {"key": "eyes-chubby", "name": "Chubby", "type": "eyes", "sample": "beast-10"}, {"key": "ears-nyan", "name": "Nyan", "type": "ears", "sample": "beast-02"}, + {"key": "ears-pointy-nyan", "name": "Pointy Nyan", "type": "ears", "sample": "beast-mystic-02"}, {"key": "ears-coca", "name": "Coca", "type": "ears", "sample": "summer-a"}, + {"key": "ears-coca-shiny", "name": "Coca Shiny", "type": "ears", "sample": "summer-as"}, {"key": "ears-nut-cracker", "name": "Nut Cracker", "type": "ears", "sample": "beast-04"}, + {"key": "ears-innocent-lamb", "name": "Innocent Lamb", "type": "ears", "sample": "beast-06"}, {"key": "ears-merry-lamb", "name": "Merry Lamb", "type": "ears", "sample": "xmas-01"}, + {"key": "ears-zen", "name": "Zen", "type": "ears", "sample": "beast-08"}, {"key": "ears-puppy", "name": "Puppy", "type": "ears", "sample": "beast-10"}, + {"key": "ears-belieber", "name": "Belieber", "type": "ears", "sample": "beast-12"}, {"key": "back-ronin", "name": "Ronin", "type": "back", "sample": "beast-02"}, + {"key": "back-hasagi", "name": "Hasagi", "type": "back", "sample": "beast-mystic-02"}, {"key": "back-hero", "name": "Hero", "type": "back", "sample": "beast-04"}, + {"key": "back-jaguar", "name": "Jaguar", "type": "back", "sample": "beast-06"}, {"key": "back-risky-beast", "name": "Risky Beast", "type": "back", "sample": "beast-08"}, + {"key": "back-hamaya", "name": "Hamaya", "type": "back", "sample": "japan-02"}, {"key": "back-timber", "name": "Timber", "type": "back", "sample": "beast-10"}, + {"key": "back-furball", "name": "Furball", "type": "back", "sample": "beast-12"}, {"key": "back-beach-ball", "name": "Beach Ball", "type": "back", "sample": "summer-a"}, + {"key": "back-beach-ball-shiny", "name": "Beach Ball Shiny", "type": "back", "sample": "summer-tc"}, {"key": "horn-little-branch", "name": "Little Branch", "type": "horn", "sample": "beast-02"}, + {"key": "horn-winter-branch", "name": "Winter Branch", "type": "horn", "sample": "beast-mystic-02"}, {"key": "horn-imp", "name": "Imp", "type": "horn", "sample": "beast-04"}, + {"key": "horn-kendama", "name": "Kendama", "type": "horn", "sample": "japan-03"}, {"key": "horn-merry", "name": "Merry", "type": "horn", "sample": "beast-06"}, + {"key": "horn-pocky", "name": "Pocky", "type": "horn", "sample": "beast-08"}, {"key": "horn-umaibo", "name": "Umaibo", "type": "horn", "sample": "japan-02"}, + {"key": "horn-dual-blade", "name": "Dual Blade", "type": "horn", "sample": "beast-10"}, {"key": "horn-arco", "name": "Arco", "type": "horn", "sample": "beast-12"}, + {"key": "tail-cottontail", "name": "Cottontail", "type": "tail", "sample": "beast-02"}, {"key": "tail-sakura-cottontail", "name": "Sakura Cottontail", "type": "tail", "sample": "beast-mystic-02"}, + {"key": "tail-cotton-candy", "name": "Cotton Candy", "type": "tail", "sample": "summer-a"}, {"key": "tail-cotton-candy-shiny", "name": "Cotton Candy Shiny", "type": "tail", "sample": "summer-as"}, + {"key": "tail-rice", "name": "Rice", "type": "tail", "sample": "beast-04"}, {"key": "tail-shiba", "name": "Shiba", "type": "tail", "sample": "beast-06"}, {"key": "tail-hare", "name": "Hare", "type": "tail", "sample": "beast-08"}, + {"key": "tail-nut-cracker", "name": "Nut Cracker", "type": "tail", "sample": "beast-10"}, {"key": "tail-gerbil", "name": "Gerbil", "type": "tail", "sample": "beast-12"}, + {"key": "mouth-nut-cracker", "name": "Nut Cracker", "type": "mouth", "sample": "beast-02"}, {"key": "mouth-skull-cracker", "name": "Skull Cracker", "type": "mouth", "sample": "beast-mystic-02"}, + {"key": "mouth-goda", "name": "Goda", "type": "mouth", "sample": "beast-04"}, {"key": "mouth-axie-kiss", "name": "Axie Kiss", "type": "mouth", "sample": "beast-08"}, + {"key": "mouth-confident", "name": "Confident", "type": "mouth", "sample": "beast-10"}, {"key": "mouth-mosquito", "name": "Mosquito", "type": "mouth", "sample": "bug-02"}, + {"key": "mouth-feasting-mosquito", "name": "Feasting Mosquito", "type": "mouth", "sample": "bug-mystic-02"}, {"key": "mouth-pincer", "name": "Pincer", "type": "mouth", "sample": "bug-04"}, + {"key": "mouth-cute-bunny", "name": "Cute Bunny", "type": "mouth", "sample": "bug-08"}, {"key": "mouth-kawaii", "name": "Kawaii", "type": "mouth", "sample": "japan-03"}, + {"key": "mouth-square-teeth", "name": "Square Teeth", "type": "mouth", "sample": "bug-10"}, {"key": "horn-lagging", "name": "Lagging", "type": "horn", "sample": "bug-02"}, + {"key": "horn-laggingggggg", "name": "Laggingggggg", "type": "horn", "sample": "bug-mystic-02"}, {"key": "horn-antenna", "name": "Antenna", "type": "horn", "sample": "bug-04"}, + {"key": "horn-caterpillars", "name": "Caterpillars", "type": "horn", "sample": "bug-06"}, {"key": "horn-pliers", "name": "Pliers", "type": "horn", "sample": "bug-08"}, + {"key": "horn-parasite", "name": "Parasite", "type": "horn", "sample": "bug-10"}, {"key": "horn-p4r451t3", "name": "P4R451T3", "type": "horn", "sample": "agamo-01"}, + {"key": "horn-leaf-bug", "name": "Leaf Bug", "type": "horn", "sample": "bug-12"}, {"key": "tail-ant", "name": "Ant", "type": "tail", "sample": "bug-02"}, + {"key": "tail-fire-ant", "name": "Fire Ant", "type": "tail", "sample": "bug-mystic-02"}, {"key": "tail-twin-tail", "name": "Twin Tail", "type": "tail", "sample": "bug-04"}, + {"key": "tail-fish-snack", "name": "Fish Snack", "type": "tail", "sample": "bug-06"}, {"key": "tail-maki", "name": "Maki", "type": "tail", "sample": "japan-01"}, + {"key": "tail-gravel-ant", "name": "Gravel Ant", "type": "tail", "sample": "bug-08"}, {"key": "tail-pupae", "name": "Pupae", "type": "tail", "sample": "bug-10"}, + {"key": "tail-thorny-caterpillar", "name": "Thorny Caterpillar", "type": "tail", "sample": "bug-12"}, {"key": "back-snail-shell", "name": "Snail Shell", "type": "back", "sample": "bug-02"}, + {"key": "back-starry-shell", "name": "Starry Shell", "type": "back", "sample": "bug-mystic-02"}, {"key": "back-garish-worm", "name": "Garish Worm", "type": "back", "sample": "bug-04"}, + {"key": "back-candy-canes", "name": "Candy Canes", "type": "back", "sample": "xmas-01"}, {"key": "back-buzz-buzz", "name": "Buzz Buzz", "type": "back", "sample": "bug-06"}, + {"key": "back-sandal", "name": "Sandal", "type": "back", "sample": "bug-08"}, {"key": "back-scarab", "name": "Scarab", "type": "back", "sample": "bug-10"}, + {"key": "back-spiky-wing", "name": "Spiky Wing", "type": "back", "sample": "bug-12"}, {"key": "ears-larva", "name": "Larva", "type": "ears", "sample": "bug-02"}, + {"key": "ears-vector", "name": "Vector", "type": "ears", "sample": "bug-mystic-02"}, {"key": "ears-beetle-spike", "name": "Beetle Spike", "type": "ears", "sample": "bug-04"}, + {"key": "ears-ear-breathing", "name": "Ear Breathing", "type": "ears", "sample": "bug-06"}, {"key": "ears-leaf-bug", "name": "Leaf Bug", "type": "ears", "sample": "bug-08"}, + {"key": "ears-tassels", "name": "Tassels", "type": "ears", "sample": "bug-10"}, {"key": "ears-earwing", "name": "Earwing", "type": "ears", "sample": "bug-12"}, {"key": "ears-mon", "name": "Mon", "type": "ears", "sample": "japan-03"}, + {"key": "eyes-bookworm", "name": "Bookworm", "type": "eyes", "sample": "bug-02"}, {"key": "eyes-broken-bookworm", "name": "Broken Bookworm", "type": "eyes", "sample": "bug-mystic-02"}, + {"key": "eyes-neo", "name": "Neo", "type": "eyes", "sample": "bug-04"}, {"key": "eyes-flower-sunglasses", "name": "Flower Sunglasses", "type": "eyes", "sample": "summer-a"}, + {"key": "eyes-flower-sunglasses-shiny", "name": "Flower Sunglasses Shiny", "type": "eyes", "sample": "summer-as"}, {"key": "eyes-nerdy", "name": "Nerdy", "type": "eyes", "sample": "bug-08"}, + {"key": "eyes-kotaro?", "name": "Kotaro?", "type": "eyes", "sample": "bug-10"}, {"key": "eyes-sleepless", "name": "Sleepless", "type": "eyes", "sample": "aquatic-02"}, + {"key": "eyes-insomnia", "name": "Insomnia", "type": "eyes", "sample": "aquatic-mystic-02"}, {"key": "eyes-yen", "name": "Yen", "type": "eyes", "sample": "japan-02"}, + {"key": "eyes-clear", "name": "Clear", "type": "eyes", "sample": "aquatic-04"}, {"key": "eyes-gero", "name": "Gero", "type": "eyes", "sample": "aquatic-08"}, + {"key": "eyes-telescope", "name": "Telescope", "type": "eyes", "sample": "aquatic-10"}, {"key": "mouth-lam", "name": "Lam", "type": "mouth", "sample": "aquatic-02"}, + {"key": "mouth-lam-handsome", "name": "Lam Handsome", "type": "mouth", "sample": "aquatic-mystic-02"}, {"key": "mouth-catfish", "name": "Catfish", "type": "mouth", "sample": "aquatic-04"}, + {"key": "mouth-risky-fish", "name": "Risky Fish", "type": "mouth", "sample": "aquatic-08"}, {"key": "mouth-bubble-fish", "name": "Bubble Fish", "type": "mouth", "sample": "summer-a"}, + {"key": "mouth-bubble-fish-shiny", "name": "Bubble Fish Shiny", "type": "mouth", "sample": "summer-as"}, {"key": "mouth-piranha", "name": "Piranha", "type": "mouth", "sample": "aquatic-10"}, + {"key": "mouth-geisha", "name": "Geisha", "type": "mouth", "sample": "japan-01"}, {"key": "horn-babylonia", "name": "Babylonia", "type": "horn", "sample": "aquatic-02"}, + {"key": "horn-candy-babylonia", "name": "Candy Babylonia", "type": "horn", "sample": "aquatic-mystic-02"}, {"key": "horn-teal-shell", "name": "Teal Shell", "type": "horn", "sample": "aquatic-04"}, + {"key": "horn-clamshell", "name": "Clamshell", "type": "horn", "sample": "aquatic-06"}, {"key": "horn-anemone", "name": "Anemone", "type": "horn", "sample": "aquatic-08"}, + {"key": "horn-oranda", "name": "Oranda", "type": "horn", "sample": "aquatic-10"}, {"key": "horn-shoal-star", "name": "Shoal Star", "type": "horn", "sample": "aquatic-12"}, + {"key": "horn-5h04l-5t4r", "name": "5H04L-5T4R", "type": "horn", "sample": "agamo-00"}, {"key": "ears-nimo", "name": "Nimo", "type": "ears", "sample": "aquatic-02"}, + {"key": "ears-red-nimo", "name": "Red Nimo", "type": "ears", "sample": "aquatic-mystic-02"}, {"key": "ears-tiny-fan", "name": "Tiny Fan", "type": "ears", "sample": "aquatic-04"}, + {"key": "ears-bubblemaker", "name": "Bubblemaker", "type": "ears", "sample": "aquatic-06"}, {"key": "ears-inkling", "name": "Inkling", "type": "ears", "sample": "aquatic-08"}, + {"key": "ears-gill", "name": "Gill", "type": "ears", "sample": "aquatic-10"}, {"key": "ears-seaslug", "name": "Seaslug", "type": "ears", "sample": "aquatic-12"}, + {"key": "tail-koi", "name": "Koi", "type": "tail", "sample": "aquatic-02"}, {"key": "tail-kuro-koi", "name": "Kuro Koi", "type": "tail", "sample": "aquatic-mystic-02"}, + {"key": "tail-koinobori", "name": "Koinobori", "type": "tail", "sample": "japan-02"}, {"key": "tail-nimo", "name": "Nimo", "type": "tail", "sample": "aquatic-04"}, + {"key": "tail-tadpole", "name": "Tadpole", "type": "tail", "sample": "aquatic-06"}, {"key": "tail-ranchu", "name": "Ranchu", "type": "tail", "sample": "aquatic-08"}, + {"key": "tail-navaga", "name": "Navaga", "type": "tail", "sample": "aquatic-10"}, {"key": "tail-shrimp", "name": "Shrimp", "type": "tail", "sample": "aquatic-12"}, + {"key": "back-hermit", "name": "Hermit", "type": "back", "sample": "aquatic-02"}, {"key": "back-crystal-hermit", "name": "Crystal Hermit", "type": "back", "sample": "aquatic-mystic-02"}, + {"key": "back-blue-moon", "name": "Blue Moon", "type": "back", "sample": "aquatic-04"}, {"key": "back-goldfish", "name": "Goldfish", "type": "back", "sample": "aquatic-06"}, + {"key": "back-sponge", "name": "Sponge", "type": "back", "sample": "aquatic-08"}, {"key": "back-anemone", "name": "Anemone", "type": "back", "sample": "aquatic-10"}, + {"key": "back-perch", "name": "Perch", "type": "back", "sample": "aquatic-12"}, {"key": "ears-pink-cheek", "name": "Pink Cheek", "type": "ears", "sample": "bird-02"}, + {"key": "ears-heart-cheek", "name": "Heart Cheek", "type": "ears", "sample": "bird-mystic-02"}, {"key": "ears-early-bird", "name": "Early Bird", "type": "ears", "sample": "bird-04"}, + {"key": "ears-owl", "name": "Owl", "type": "ears", "sample": "bird-06"}, {"key": "ears-peace-maker", "name": "Peace Maker", "type": "ears", "sample": "bird-08"}, + {"key": "ears-curly", "name": "Curly", "type": "ears", "sample": "bird-10"}, {"key": "ears-risky-bird", "name": "Risky Bird", "type": "ears", "sample": "bird-12"}, + {"key": "ears-karimata", "name": "Karimata", "type": "ears", "sample": "japan-02"}, {"key": "tail-swallow", "name": "Swallow", "type": "tail", "sample": "bird-02"}, + {"key": "tail-snowy-swallow", "name": "Snowy Swallow", "type": "tail", "sample": "bird-mystic-02"}, {"key": "tail-feather-fan", "name": "Feather Fan", "type": "tail", "sample": "bird-04"}, + {"key": "tail-the-last-one", "name": "The Last One", "type": "tail", "sample": "bird-06"}, {"key": "tail-cloud", "name": "Cloud", "type": "tail", "sample": "bird-08"}, + {"key": "tail-granmas-fan", "name": "Granma's Fan", "type": "tail", "sample": "bird-10"}, {"key": "tail-omatsuri", "name": "Omatsuri", "type": "tail", "sample": "japan-03"}, + {"key": "tail-post-fight", "name": "Post Fight", "type": "tail", "sample": "bird-12"}, {"key": "back-balloon", "name": "Balloon", "type": "back", "sample": "bird-02"}, + {"key": "back-starry-balloon", "name": "Starry Balloon", "type": "back", "sample": "bird-mystic-02"}, {"key": "back-cupid", "name": "Cupid", "type": "back", "sample": "bird-04"}, + {"key": "back-origami", "name": "Origami", "type": "back", "sample": "japan-01"}, {"key": "back-raven", "name": "Raven", "type": "back", "sample": "bird-06"}, + {"key": "back-pigeon-post", "name": "Pigeon Post", "type": "back", "sample": "bird-08"}, {"key": "back-kingfisher", "name": "Kingfisher", "type": "back", "sample": "bird-10"}, + {"key": "back-tri-feather", "name": "Tri Feather", "type": "back", "sample": "bird-12"}, {"key": "horn-eggshell", "name": "Eggshell", "type": "horn", "sample": "bird-02"}, + {"key": "horn-golden-shell", "name": "Golden Shell", "type": "horn", "sample": "bird-mystic-02"}, {"key": "horn-cuckoo", "name": "Cuckoo", "type": "horn", "sample": "bird-04"}, + {"key": "horn-trump", "name": "Trump", "type": "horn", "sample": "bird-06"}, {"key": "horn-kestrel", "name": "Kestrel", "type": "horn", "sample": "bird-08"}, + {"key": "horn-wing-horn", "name": "Wing Horn", "type": "horn", "sample": "bird-10"}, {"key": "horn-feather-spear", "name": "Feather Spear", "type": "horn", "sample": "bird-12"}, + {"key": "horn-spruce-spear", "name": "Spruce Spear", "type": "horn", "sample": "xmas-01"}, {"key": "mouth-doubletalk", "name": "Doubletalk", "type": "mouth", "sample": "bird-02"}, + {"key": "mouth-mr-doubletalk", "name": "Mr. Doubletalk", "type": "mouth", "sample": "bird-mystic-02"}, {"key": "mouth-peace-maker", "name": "Peace Maker", "type": "mouth", "sample": "bird-04"}, + {"key": "mouth-hungry-bird", "name": "Hungry Bird", "type": "mouth", "sample": "bird-08"}, {"key": "mouth-little-owl", "name": "Little Owl", "type": "mouth", "sample": "bird-10"}, + {"key": "eyes-mavis", "name": "Mavis", "type": "eyes", "sample": "bird-02"}, {"key": "eyes-sky-mavis", "name": "Sky Mavis", "type": "eyes", "sample": "bird-mystic-02"}, + {"key": "eyes-lucas", "name": "Lucas", "type": "eyes", "sample": "bird-04"}, {"key": "eyes-icy-gaze", "name": "Icy Gaze", "type": "eyes", "sample": "xmas-02"}, + {"key": "eyes-little-owl", "name": "Little Owl", "type": "eyes", "sample": "bird-08"}, {"key": "eyes-robin", "name": "Robin", "type": "eyes", "sample": "bird-10"}, + {"key": "eyes-gecko", "name": "Gecko", "type": "eyes", "sample": "reptile-02"}, {"key": "eyes-crimson-gecko", "name": "Crimson Gecko", "type": "eyes", "sample": "reptile-mystic-02"}, + {"key": "eyes-tricky", "name": "Tricky", "type": "eyes", "sample": "reptile-04"}, {"key": "eyes-scar", "name": "Scar", "type": "eyes", "sample": "reptile-08"}, + {"key": "eyes-dokuganryu", "name": "Dokuganryu", "type": "eyes", "sample": "japan-03"}, {"key": "eyes-topaz", "name": "Topaz", "type": "eyes", "sample": "reptile-10"}, + {"key": "eyes-kabuki", "name": "Kabuki", "type": "eyes", "sample": "japan-01"}, {"key": "mouth-toothless-bite", "name": "Toothless Bite", "type": "mouth", "sample": "reptile-02"}, + {"key": "mouth-venom-bite", "name": "Venom Bite", "type": "mouth", "sample": "reptile-mystic-02"}, {"key": "mouth-kotaro", "name": "Kotaro", "type": "mouth", "sample": "reptile-04"}, + {"key": "mouth-razor-bite", "name": "Razor Bite", "type": "mouth", "sample": "reptile-08"}, {"key": "mouth-tiny-turtle", "name": "Tiny Turtle", "type": "mouth", "sample": "reptile-10"}, + {"key": "mouth-dango", "name": "Dango", "type": "mouth", "sample": "japan-02"}, {"key": "mouth-tiny-carrot", "name": "Tiny Carrot", "type": "mouth", "sample": "xmas-02"}, + {"key": "ears-pogona", "name": "Pogona", "type": "ears", "sample": "reptile-02"}, {"key": "ears-deadly-pogona", "name": "Deadly Pogona", "type": "ears", "sample": "reptile-mystic-02"}, + {"key": "ears-friezard", "name": "Friezard", "type": "ears", "sample": "reptile-04"}, {"key": "ears-curved-spine", "name": "Curved Spine", "type": "ears", "sample": "reptile-06"}, + {"key": "ears-small-frill", "name": "Small Frill", "type": "ears", "sample": "reptile-08"}, {"key": "ears-swirl", "name": "Swirl", "type": "ears", "sample": "reptile-10"}, + {"key": "ears-sidebarb", "name": "Sidebarb", "type": "ears", "sample": "reptile-12"}, {"key": "back-bone-sail", "name": "Bone Sail", "type": "back", "sample": "reptile-02"}, + {"key": "back-rugged-sail", "name": "Rugged Sail", "type": "back", "sample": "reptile-mystic-02"}, {"key": "back-tri-spikes", "name": "Tri Spikes", "type": "back", "sample": "reptile-04"}, + {"key": "back-green-thorns", "name": "Green Thorns", "type": "back", "sample": "reptile-06"}, {"key": "back-indian-star", "name": "Indian Star", "type": "back", "sample": "reptile-08"}, + {"key": "back-1nd14n-5t4r", "name": "1ND14N-5T4R", "type": "back", "sample": "agamo-00"}, {"key": "back-frozen-bucket", "name": "Frozen Bucket", "type": "back", "sample": "xmas-02"}, + {"key": "back-red-ear", "name": "Red Ear", "type": "back", "sample": "reptile-10"}, {"key": "back-turtle-buoy", "name": "Turtle Buoy", "type": "back", "sample": "summer-ta"}, + {"key": "back-turtle-buoy-shiny", "name": "Turtle Buoy Shiny", "type": "back", "sample": "summer-as"}, {"key": "back-croc", "name": "Croc", "type": "back", "sample": "reptile-12"}, + {"key": "tail-wall-gecko", "name": "Wall Gecko", "type": "tail", "sample": "reptile-02"}, {"key": "tail-escaped-gecko", "name": "Escaped Gecko", "type": "tail", "sample": "reptile-mystic-02"}, + {"key": "tail-iguana", "name": "Iguana", "type": "tail", "sample": "reptile-04"}, {"key": "tail-tiny-dino", "name": "Tiny Dino", "type": "tail", "sample": "reptile-06"}, + {"key": "tail-fir-trunk", "name": "Fir Trunk", "type": "tail", "sample": "xmas-02"}, {"key": "tail-snake-jar", "name": "Snake Jar", "type": "tail", "sample": "reptile-08"}, + {"key": "tail-december-surprise", "name": "December Surprise", "type": "tail", "sample": "xmas-01"}, {"key": "tail-gila", "name": "Gila", "type": "tail", "sample": "reptile-10"}, + {"key": "tail-grass-snake", "name": "Grass Snake", "type": "tail", "sample": "reptile-12"}, {"key": "horn-unko", "name": "Unko", "type": "horn", "sample": "reptile-02"}, + {"key": "horn-pinku-unko", "name": "Pinku Unko", "type": "horn", "sample": "reptile-mystic-02"}, {"key": "horn-watermelon-ice-cream", "name": "Watermelon Ice Cream", "type": "horn", "sample": "summer-tc"}, + {"key": "horn-strawberry-ice-cream", "name": "Strawberry Ice Cream", "type": "horn", "sample": "summer-a"}, {"key": "horn-vanilla-ice-cream", "name": "Vanilla Ice Cream", "type": "horn", "sample": "summer-tc"}, + {"key": "horn-watermelon-ice-cream-shiny", "name": "Watermelon Ice Cream Shiny", "type": "horn", "sample": "summer-ta"}, + {"key": "horn-strawberry-ice-cream-shiny", "name": "Strawberry Ice Cream Shiny", "type": "horn", "sample": "summer-as"}, + {"key": "horn-vanilla-ice-cream-shiny", "name": "Vanilla Ice Cream Shiny", "type": "horn", "sample": "summer-tb"}, {"key": "horn-scaly-spear", "name": "Scaly Spear", "type": "horn", "sample": "reptile-04"}, + {"key": "horn-cerastes", "name": "Cerastes", "type": "horn", "sample": "reptile-06"}, {"key": "horn-scaly-spoon", "name": "Scaly Spoon", "type": "horn", "sample": "reptile-08"}, + {"key": "horn-incisor", "name": "Incisor", "type": "horn", "sample": "reptile-10"}, {"key": "horn-bumpy", "name": "Bumpy", "type": "horn", "sample": "reptile-12"}, + {"key": "tail-carrot", "name": "Carrot", "type": "tail", "sample": "plant-02"}, {"key": "tail-namek-carrot", "name": "Namek Carrot", "type": "tail", "sample": "plant-mystic-02"}, + {"key": "tail-cattail", "name": "Cattail", "type": "tail", "sample": "plant-04"}, {"key": "tail-hatsune", "name": "Hatsune", "type": "tail", "sample": "plant-06"}, + {"key": "tail-yam", "name": "Yam", "type": "tail", "sample": "plant-08"}, {"key": "tail-potato-leaf", "name": "Potato Leaf", "type": "tail", "sample": "plant-10"}, + {"key": "tail-hot-butt", "name": "Hot Butt", "type": "tail", "sample": "plant-12"}, {"key": "mouth-serious", "name": "Serious", "type": "mouth", "sample": "plant-02"}, + {"key": "mouth-humorless", "name": "Humorless", "type": "mouth", "sample": "plant-mystic-02"}, {"key": "mouth-zigzag", "name": "Zigzag", "type": "mouth", "sample": "plant-04"}, + {"key": "mouth-rudolph", "name": "Rudolph", "type": "mouth", "sample": "xmas-01"}, {"key": "mouth-herbivore", "name": "Herbivore", "type": "mouth", "sample": "plant-08"}, + {"key": "mouth-silence-whisper", "name": "Silence Whisper", "type": "mouth", "sample": "plant-10"}, {"key": "eyes-papi", "name": "Papi", "type": "eyes", "sample": "plant-02"}, + {"key": "eyes-dreamy-papi", "name": "Dreamy Papi", "type": "eyes", "sample": "plant-mystic-02"}, {"key": "eyes-confused", "name": "Confused", "type": "eyes", "sample": "plant-04"}, + {"key": "eyes-cucumber-slice", "name": "Cucumber Slice", "type": "eyes", "sample": "plant-08"}, {"key": "eyes-blossom", "name": "Blossom", "type": "eyes", "sample": "plant-10"}, + {"key": "ears-leafy", "name": "Leafy", "type": "ears", "sample": "plant-02"}, {"key": "ears-the-last-leaf", "name": "The Last Leaf", "type": "ears", "sample": "plant-mystic-02"}, + {"key": "ears-clover", "name": "Clover", "type": "ears", "sample": "plant-04"}, {"key": "ears-rosa", "name": "Rosa", "type": "ears", "sample": "plant-06"}, + {"key": "ears-sakura", "name": "Sakura", "type": "ears", "sample": "plant-08"}, {"key": "ears-maiko", "name": "Maiko", "type": "ears", "sample": "japan-01"}, + {"key": "ears-hollow", "name": "Hollow", "type": "ears", "sample": "plant-10"}, {"key": "ears-pinecones", "name": "Pinecones", "type": "ears", "sample": "xmas-02"}, + {"key": "ears-lotus", "name": "Lotus", "type": "ears", "sample": "plant-12"}, {"key": "back-turnip", "name": "Turnip", "type": "back", "sample": "plant-02"}, + {"key": "back-pink-turnip", "name": "Pink Turnip", "type": "back", "sample": "plant-mystic-02"}, {"key": "back-shiitake", "name": "Shiitake", "type": "back", "sample": "plant-04"}, + {"key": "back-yakitori", "name": "Yakitori", "type": "back", "sample": "japan-03"}, {"key": "back-bidens", "name": "Bidens", "type": "back", "sample": "plant-06"}, + {"key": "back-watering-can", "name": "Watering Can", "type": "back", "sample": "plant-08"}, {"key": "back-mint", "name": "Mint", "type": "back", "sample": "plant-10"}, + {"key": "back-pumpkin", "name": "Pumpkin", "type": "back", "sample": "plant-12"}, {"key": "horn-bamboo-shoot", "name": "Bamboo Shoot", "type": "horn", "sample": "plant-02"}, + {"key": "horn-golden-bamboo-shoot", "name": "Golden Bamboo Shoot", "type": "horn", "sample": "plant-mystic-02"}, {"key": "horn-beech", "name": "Beech", "type": "horn", "sample": "plant-04"}, + {"key": "horn-yorishiro", "name": "Yorishiro", "type": "horn", "sample": "japan-01"}, {"key": "horn-rose-bud", "name": "Rose Bud", "type": "horn", "sample": "plant-06"}, + {"key": "horn-strawberry-shortcake", "name": "Strawberry Shortcake", "type": "horn", "sample": "plant-08"}, {"key": "horn-cactus", "name": "Cactus", "type": "horn", "sample": "plant-10"}, + {"key": "horn-santas-gift", "name": "Santa's Gift", "type": "horn", "sample": "xmas-02"}, {"key": "horn-watermelon", "name": "Watermelon", "type": "horn", "sample": "plant-12"} ] } } diff --git a/components/axie-figure/parts-dropdown/DropdownOptionsByClass.tsx b/components/axie-figure/parts-dropdown/DropdownOptionsByClass.tsx index aa71dce..6e2f441 100644 --- a/components/axie-figure/parts-dropdown/DropdownOptionsByClass.tsx +++ b/components/axie-figure/parts-dropdown/DropdownOptionsByClass.tsx @@ -1,11 +1,11 @@ -import { Listbox } from "@headlessui/react"; +import { Listbox } from '@headlessui/react' -import { Part } from "../types"; -import s from "./styles.module.css"; +import { Part } from '../types' +import s from './styles.module.css' interface IDropdownOptions { - options: Part[]; - axieClass: string; + options: Part[] + axieClass: string } export const DropdownOptionsByClass = ({ @@ -13,10 +13,8 @@ export const DropdownOptionsByClass = ({ axieClass, }: IDropdownOptions) => { const getOptionsByClass = (axieClass: string) => { - return options.filter( - (option) => option.sample.split("-")[0] === axieClass - ); - }; + return options.filter((option) => option.sample.split('-')[0] === axieClass) + } return ( <> @@ -37,8 +35,8 @@ export const DropdownOptionsByClass = ({ > {option.name} - ); + ) })} - ); -}; + ) +} diff --git a/components/axie-figure/parts-dropdown/PartsDropdown.tsx b/components/axie-figure/parts-dropdown/PartsDropdown.tsx index b0750da..0278e71 100644 --- a/components/axie-figure/parts-dropdown/PartsDropdown.tsx +++ b/components/axie-figure/parts-dropdown/PartsDropdown.tsx @@ -1,17 +1,17 @@ -import { Listbox } from "@headlessui/react"; -import cn from "classnames"; +import { Listbox } from '@headlessui/react' +import cn from 'classnames' -import { Title } from "./Title"; -import { Part } from "../types"; -import { DropdownOptionsByClass } from "./DropdownOptionsByClass"; -import s from "./styles.module.css"; +import { Title } from './Title' +import { Part } from '../types' +import { DropdownOptionsByClass } from './DropdownOptionsByClass' +import s from './styles.module.css' interface iPartsDropdown { - options: Part[]; - value: Part; - title: string; - setValue: (value: Part) => void; - show: boolean; + options: Part[] + value: Part + title: string + setValue: (value: Part) => void + show: boolean } export const PartsDropdown = ({ @@ -50,7 +50,8 @@ export const PartsDropdown = ({ + - ); -}; + ) +} diff --git a/components/axie-figure/parts-dropdown/Title.tsx b/components/axie-figure/parts-dropdown/Title.tsx index eb8d066..d14e343 100644 --- a/components/axie-figure/parts-dropdown/Title.tsx +++ b/components/axie-figure/parts-dropdown/Title.tsx @@ -1,11 +1,9 @@ -import { SvgChevronDownIcon } from "@axieinfinity/icons"; - -import { Part } from "../types"; -import s from "./styles.module.css"; +import { Part } from "../types" +import s from "./styles.module.css" interface ITitle { - value: Part; - title: string; + value: Part + title: string } export const Title = ({ value, title }: ITitle) => { @@ -20,8 +18,8 @@ export const Title = ({ value, title }: ITitle) => {
{value.name || title}
- +
- ); -}; + ) +} diff --git a/package.json b/package.json index 1e1f4ca..f34d9aa 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,7 @@ "lint": "next lint" }, "dependencies": { - "@axieinfinity/mixer": "1.1.1", - "@axieinfinity/mochi": "1.0.17", + "@axieinfinity/mixer": "1.1.2", "@headlessui/react": "^1.6.5", "next": "12.1.6", "pixi-spine": "1.6.2", @@ -22,6 +21,7 @@ "@types/node": "18.0.0", "@types/react": "18.0.14", "@types/react-dom": "18.0.5", + "classnames": "^2.3.1", "eslint": "8.18.0", "eslint-config-next": "12.1.6", "typescript": "4.7.4" diff --git a/public/chevron-down.png b/public/chevron-down.png new file mode 100644 index 0000000..a154619 Binary files /dev/null and b/public/chevron-down.png differ diff --git a/public/class-icons/summer.png b/public/class-icons/summer.png new file mode 100644 index 0000000..9375a14 Binary files /dev/null and b/public/class-icons/summer.png differ diff --git a/yarn.lock b/yarn.lock index 5991460..494c714 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,31 +2,14 @@ # yarn lockfile v1 -"@axieinfinity/icons@1.0.2": - version "1.0.2" - resolved "https://npm.pkg.github.com/download/@axieinfinity/icons/1.0.2/731c6e47b3dd33b76e4d49969f97bc17aed0234c8a7bca729b132d06ed29c134#b7aece7022e04ca7aea0cc5f3a98c83bb5bfcd33" - integrity sha512-pm+jFE/IOmuIHUBEss+mddqlWlYSqi7X+jA5/oZrMb4YZBn3OtCNLW7cYJVxJ65bg+/5QY4WHexhKXPSLtrtFA== - -"@axieinfinity/mixer@1.1.1": - version "1.1.1" - resolved "https://npm.pkg.github.com/download/@axieinfinity/mixer/1.1.1/f846a7991c6ed7948bf864ea3f0b4bafff22fcaab9950789245f9ab5f9a42107#c09250e45bc0475af72a1d640de9529b6132053b" - integrity sha512-U2i0NLNi4fFql4mvTdrduHU/4P91JSmJcehbF6C1ilC7W+6LYlBFXdQKSSo4L/9Aq6d41U1mSzoN4d2WGmgYsQ== +"@axieinfinity/mixer@1.1.2": + version "1.1.2" + resolved "https://npm.pkg.github.com/download/@axieinfinity/mixer/1.1.2/4b230bc890dd5460e4eba2b39075cdf7f306fb07#4b230bc890dd5460e4eba2b39075cdf7f306fb07" + integrity sha512-Rt9QxzoMZnJXhjNNQR4l5EBFyvE/w3PeTiJvdIgjCaebphRs1MLQwUbeXnl7pjgMGvadsUqeYorOyv5Ypg4Z7Q== dependencies: bn.js "^5.2.1" lodash "^4.17.21" -"@axieinfinity/mochi@1.0.17": - version "1.0.17" - resolved "https://npm.pkg.github.com/download/@axieinfinity/mochi/1.0.17/111e5005e5c273251be81baaf037c8facbf6398fbfa567260a7d3baf5190c679#78f65b5a804ca05f5d314bb875db23e72138a7d9" - integrity sha512-3ajRaPOtV7XtwVAupHKOdZQoK5PB5WFpD+DZNpv0WZF2kXNJsYsfF7o69HQIoVotOKIPJLpupTFHeQaV6QyuUQ== - dependencies: - "@axieinfinity/icons" "1.0.2" - "@headlessui/react" "^1.4.3" - "@popperjs/core" "^2.11.2" - classnames "^2.3.1" - react-laag "^2.0.3" - react-popper "^2.2.5" - "@babel/runtime-corejs3@^7.10.2": version "7.18.3" resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz#52f0241a31e0ec61a6187530af6227c2846bd60c" @@ -57,7 +40,7 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@headlessui/react@^1.4.3", "@headlessui/react@^1.6.5": +"@headlessui/react@^1.6.5": version "1.6.5" resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.6.5.tgz#5587c537de809cf3146eb2ff263e5e940b1bf69c" integrity sha512-3VkKteDxlxf3fE0KbfO9t60KC1lM7YNpZggLpwzVNg1J/zwL+h+4N7MBlFDVpInZI3rKlZGpNx0PWsG/9c2vQg== @@ -169,11 +152,6 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@popperjs/core@^2.11.2": - version "2.11.5" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64" - integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw== - "@rushstack/eslint-patch@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz#6801033be7ff87a6b7cadaf5b337c9f366a3c4b0" @@ -1216,7 +1194,7 @@ lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -1520,31 +1498,11 @@ react-dom@18.2.0: loose-envify "^1.1.0" scheduler "^0.23.0" -react-fast-compare@^3.0.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" - integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== - react-is@^16.13.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-laag@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/react-laag/-/react-laag-2.0.4.tgz#9a2787ca9d83bf4d8b6e304f29d22cff0365348c" - integrity sha512-9CGIwYJbysmpQC4KeeTx3fNzchvZT3AIYapi2/z7kOJrYopP2uCoPK39qHKuiyawE57EVRI8F1OtbJeyJ7NTrg== - dependencies: - tiny-warning "^1.0.3" - -react-popper@^2.2.5: - version "2.3.0" - resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.3.0.tgz#17891c620e1320dce318bad9fede46a5f71c70ba" - integrity sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q== - dependencies: - react-fast-compare "^3.0.1" - warning "^4.0.2" - react@18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" @@ -1747,11 +1705,6 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -tiny-warning@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" - integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - 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" @@ -1820,13 +1773,6 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -warning@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" - integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== - dependencies: - loose-envify "^1.0.0" - 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"