From a4203ef4f0a733f3aa72aba6f6464864173dbc05 Mon Sep 17 00:00:00 2001 From: zenn Date: Mon, 30 Mar 2026 13:42:23 +0900 Subject: [PATCH] =?UTF-8?q?v2026.03.30-01=20=EB=A0=88=ED=8F=AC=EC=A7=80?= =?UTF-8?q?=ED=86=A0=EB=A6=AC=20=EC=9E=AC=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .ai-rules.md | 39 + .cursorrules | 1 + .gitignore | 1 + .prettierrc.json | 14 + .vscode/settings.json | 8 + db/amiibo.db.js | 3555 ++++++++++++++++++++++++++++++++++++++ docs/convention.md | 22 + docs/history.md | 11 + docs/map.md | 33 + docs/spec.md | 46 + docs/todo.md | 12 + docs/update.md | 7 + filter.js | 0 images/amiibo/0001_A.jpg | Bin 0 -> 21238 bytes images/amiibo/0001_B.jpg | Bin 0 -> 17133 bytes images/amiibo/0002_A.jpg | Bin 0 -> 15711 bytes images/amiibo/0002_B.jpg | Bin 0 -> 15432 bytes images/amiibo/0003_A.jpg | Bin 0 -> 39045 bytes images/amiibo/0003_B.jpg | Bin 0 -> 20011 bytes images/amiibo/0004_A.jpg | Bin 0 -> 40489 bytes images/amiibo/0004_B.jpg | Bin 0 -> 20817 bytes images/amiibo/0005_A.jpg | Bin 0 -> 30213 bytes images/amiibo/0005_B.jpg | Bin 0 -> 18201 bytes images/amiibo/0006_A.jpg | Bin 0 -> 33104 bytes images/amiibo/0006_B.jpg | Bin 0 -> 19764 bytes images/amiibo/0007_A.jpg | Bin 0 -> 48674 bytes images/amiibo/0007_B.jpg | Bin 0 -> 19982 bytes images/amiibo/0008_A.jpg | Bin 0 -> 20016 bytes images/amiibo/0008_B.jpg | Bin 0 -> 16062 bytes images/amiibo/0009_A.jpg | Bin 0 -> 38660 bytes images/amiibo/0009_B.jpg | Bin 0 -> 19527 bytes images/amiibo/0010_A.jpg | Bin 0 -> 33100 bytes images/amiibo/0010_B.jpg | Bin 0 -> 16670 bytes images/amiibo/0011_A.jpg | Bin 0 -> 40198 bytes images/amiibo/0011_B.jpg | Bin 0 -> 19668 bytes images/amiibo/0012_A.jpg | Bin 0 -> 34196 bytes images/amiibo/0012_B.jpg | Bin 0 -> 19836 bytes images/amiibo/0013_A.jpg | Bin 0 -> 40729 bytes images/amiibo/0013_B.jpg | Bin 0 -> 19150 bytes images/amiibo/0014_A.jpg | Bin 0 -> 24153 bytes images/amiibo/0014_B.jpg | Bin 0 -> 18135 bytes images/amiibo/0015_A.jpg | Bin 0 -> 26234 bytes images/amiibo/0015_B.jpg | Bin 0 -> 16418 bytes images/amiibo/0016_A.jpg | Bin 0 -> 23864 bytes images/amiibo/0016_B.jpg | Bin 0 -> 18061 bytes images/amiibo/0017_A.jpg | Bin 0 -> 36617 bytes images/amiibo/0017_B.jpg | Bin 0 -> 19388 bytes images/amiibo/0018_A.jpg | Bin 0 -> 24843 bytes images/amiibo/0018_B.jpg | Bin 0 -> 16746 bytes images/amiibo/0019_A.jpg | Bin 0 -> 54045 bytes images/amiibo/0019_B.jpg | Bin 0 -> 18964 bytes images/amiibo/0020_A.jpg | Bin 0 -> 48842 bytes images/amiibo/0020_B.jpg | Bin 0 -> 19733 bytes images/amiibo/0021_A.jpg | Bin 0 -> 27485 bytes images/amiibo/0021_B.jpg | Bin 0 -> 18085 bytes images/amiibo/0022_A.jpg | Bin 0 -> 43569 bytes images/amiibo/0022_B.jpg | Bin 0 -> 19346 bytes images/amiibo/0023_A.jpg | Bin 0 -> 30947 bytes images/amiibo/0023_B.jpg | Bin 0 -> 17401 bytes images/amiibo/0024_A.jpg | Bin 0 -> 45180 bytes images/amiibo/0024_B.jpg | Bin 0 -> 19317 bytes images/amiibo/0025_A.jpg | Bin 0 -> 29804 bytes images/amiibo/0025_B.jpg | Bin 0 -> 18038 bytes images/amiibo/0026_A.jpg | Bin 0 -> 34628 bytes images/amiibo/0026_B.jpg | Bin 0 -> 17983 bytes images/amiibo/0027_A.jpg | Bin 0 -> 41175 bytes images/amiibo/0027_B.jpg | Bin 0 -> 18648 bytes images/amiibo/0028_A.jpg | Bin 0 -> 27489 bytes images/amiibo/0028_B.jpg | Bin 0 -> 18399 bytes images/amiibo/0029_A.jpg | Bin 0 -> 32816 bytes images/amiibo/0029_B.jpg | Bin 0 -> 17304 bytes images/amiibo/0030_A.jpg | Bin 0 -> 19718 bytes images/amiibo/0030_B.jpg | Bin 0 -> 20957 bytes images/amiibo/0031_A.jpg | Bin 0 -> 51125 bytes images/amiibo/0031_B.jpg | Bin 0 -> 21671 bytes images/amiibo/0032_A.jpg | Bin 0 -> 25065 bytes images/amiibo/0032_B.jpg | Bin 0 -> 18725 bytes images/amiibo/0033_A.jpg | Bin 0 -> 27977 bytes images/amiibo/0033_B.jpg | Bin 0 -> 22753 bytes images/amiibo/0034_A.jpg | Bin 0 -> 25888 bytes images/amiibo/0034_B.jpg | Bin 0 -> 18740 bytes images/amiibo/0035_A.jpg | Bin 0 -> 28020 bytes images/amiibo/0035_B.jpg | Bin 0 -> 21162 bytes images/amiibo/0036_A.jpg | Bin 0 -> 25216 bytes images/amiibo/0036_B.jpg | Bin 0 -> 18186 bytes images/amiibo/0037_A.jpg | Bin 0 -> 29148 bytes images/amiibo/0037_B.jpg | Bin 0 -> 17676 bytes images/amiibo/0038_A.jpg | Bin 0 -> 50039 bytes images/amiibo/0038_B.jpg | Bin 0 -> 18564 bytes images/amiibo/0039_A.jpg | Bin 0 -> 39347 bytes images/amiibo/0039_B.jpg | Bin 0 -> 19517 bytes images/amiibo/0040_A.jpg | Bin 0 -> 40385 bytes images/amiibo/0040_B.jpg | Bin 0 -> 17292 bytes images/amiibo/0041_A.jpg | Bin 0 -> 44050 bytes images/amiibo/0041_B.jpg | Bin 0 -> 20381 bytes images/amiibo/0042_A.jpg | Bin 0 -> 26354 bytes images/amiibo/0042_B.jpg | Bin 0 -> 20957 bytes images/amiibo/0043_A.jpg | Bin 0 -> 40132 bytes images/amiibo/0043_B.jpg | Bin 0 -> 22206 bytes images/amiibo/0044_A.jpg | Bin 0 -> 33150 bytes images/amiibo/0044_B.jpg | Bin 0 -> 19080 bytes images/amiibo/0045_A.jpg | Bin 0 -> 17706 bytes images/amiibo/0045_B.jpg | Bin 0 -> 15399 bytes images/amiibo/0046_A.jpg | Bin 0 -> 38692 bytes images/amiibo/0046_B.jpg | Bin 0 -> 22276 bytes images/amiibo/0047_A.jpg | Bin 0 -> 65425 bytes images/amiibo/0047_B.jpg | Bin 0 -> 19800 bytes images/amiibo/0048_A.jpg | Bin 0 -> 34591 bytes images/amiibo/0048_B.jpg | Bin 0 -> 20579 bytes images/amiibo/0049_A.jpg | Bin 0 -> 62156 bytes images/amiibo/0049_B.jpg | Bin 0 -> 19448 bytes images/amiibo/0050_A.jpg | Bin 0 -> 37212 bytes images/amiibo/0050_B.jpg | Bin 0 -> 20231 bytes images/amiibo/0051_A.jpg | Bin 0 -> 45426 bytes images/amiibo/0051_B.jpg | Bin 0 -> 19195 bytes images/amiibo/0052_A.jpg | Bin 0 -> 50811 bytes images/amiibo/0052_B.jpg | Bin 0 -> 19722 bytes images/amiibo/0053_A.jpg | Bin 0 -> 47539 bytes images/amiibo/0053_B.jpg | Bin 0 -> 19586 bytes images/amiibo/0054_A.jpg | Bin 0 -> 31250 bytes images/amiibo/0054_B.jpg | Bin 0 -> 17941 bytes images/amiibo/0055_A.jpg | Bin 0 -> 29941 bytes images/amiibo/0055_B.jpg | Bin 0 -> 19174 bytes images/amiibo/0056_A.jpg | Bin 0 -> 32922 bytes images/amiibo/0056_B.jpg | Bin 0 -> 19506 bytes images/amiibo/0057_A.jpg | Bin 0 -> 35646 bytes images/amiibo/0057_B.jpg | Bin 0 -> 18126 bytes images/amiibo/0058_A.jpg | Bin 0 -> 35684 bytes images/amiibo/0058_B.jpg | Bin 0 -> 18844 bytes images/amiibo/0059_A.jpg | Bin 0 -> 26307 bytes images/amiibo/0059_B.jpg | Bin 0 -> 18440 bytes images/amiibo/0060_A.jpg | Bin 0 -> 28483 bytes images/amiibo/0060_B.jpg | Bin 0 -> 18418 bytes images/amiibo/0061_A.jpg | Bin 0 -> 30757 bytes images/amiibo/0061_B.jpg | Bin 0 -> 18976 bytes images/amiibo/0062_A.jpg | Bin 0 -> 29437 bytes images/amiibo/0062_B.jpg | Bin 0 -> 20204 bytes images/amiibo/0063_A.jpg | Bin 0 -> 35246 bytes images/amiibo/0063_B.jpg | Bin 0 -> 19642 bytes images/amiibo/0064_A.jpg | Bin 0 -> 21436 bytes images/amiibo/0064_B.jpg | Bin 0 -> 18406 bytes images/amiibo/0065_A.jpg | Bin 0 -> 25902 bytes images/amiibo/0065_B.jpg | Bin 0 -> 16909 bytes images/amiibo/0066_A.jpg | Bin 0 -> 33315 bytes images/amiibo/0066_B.jpg | Bin 0 -> 16721 bytes images/amiibo/0067_A.jpg | Bin 0 -> 38651 bytes images/amiibo/0067_B.jpg | Bin 0 -> 19783 bytes images/amiibo/0068_A.jpg | Bin 0 -> 28101 bytes images/amiibo/0068_B.jpg | Bin 0 -> 19119 bytes images/amiibo/0069_A.jpg | Bin 0 -> 30042 bytes images/amiibo/0069_B.jpg | Bin 0 -> 20280 bytes images/amiibo/0070_A.jpg | Bin 0 -> 22483 bytes images/amiibo/0070_B.jpg | Bin 0 -> 18999 bytes images/amiibo/0071_A.jpg | Bin 0 -> 22596 bytes images/amiibo/0071_B.jpg | Bin 0 -> 19439 bytes images/amiibo/0072_A.jpg | Bin 0 -> 23183 bytes images/amiibo/0072_B.jpg | Bin 0 -> 19198 bytes images/amiibo/0073_A.jpg | Bin 0 -> 24215 bytes images/amiibo/0073_B.jpg | Bin 0 -> 19265 bytes images/amiibo/0074_A.jpg | Bin 0 -> 23979 bytes images/amiibo/0074_B.jpg | Bin 0 -> 18954 bytes images/amiibo/0075_A.jpg | Bin 0 -> 26158 bytes images/amiibo/0075_B.jpg | Bin 0 -> 18606 bytes images/amiibo/0076_A.jpg | Bin 0 -> 62734 bytes images/amiibo/0076_B.jpg | Bin 0 -> 20416 bytes images/amiibo/0077_A.jpg | Bin 0 -> 21536 bytes images/amiibo/0077_B.jpg | Bin 0 -> 18780 bytes images/amiibo/0078_A.jpg | Bin 0 -> 26030 bytes images/amiibo/0078_B.jpg | Bin 0 -> 20410 bytes images/amiibo/0079_A.jpg | Bin 0 -> 28238 bytes images/amiibo/0079_B.jpg | Bin 0 -> 20050 bytes images/amiibo/0080_A.jpg | Bin 0 -> 34729 bytes images/amiibo/0080_B.jpg | Bin 0 -> 21659 bytes images/amiibo/0081_A.jpg | Bin 0 -> 27512 bytes images/amiibo/0081_B.jpg | Bin 0 -> 18914 bytes images/amiibo/0082_A.jpg | Bin 0 -> 24643 bytes images/amiibo/0082_B.jpg | Bin 0 -> 17378 bytes images/amiibo/0083_A.jpg | Bin 0 -> 56681 bytes images/amiibo/0083_B.jpg | Bin 0 -> 20085 bytes images/amiibo/0084_A.jpg | Bin 0 -> 22154 bytes images/amiibo/0084_B.jpg | Bin 0 -> 19508 bytes images/amiibo/0085_A.jpg | Bin 0 -> 22217 bytes images/amiibo/0085_B.jpg | Bin 0 -> 18992 bytes images/amiibo/0086_A.jpg | Bin 0 -> 29242 bytes images/amiibo/0086_B.jpg | Bin 0 -> 20711 bytes images/amiibo/0087_A.jpg | Bin 0 -> 22556 bytes images/amiibo/0087_B.jpg | Bin 0 -> 19589 bytes images/amiibo/0088_A.jpg | Bin 0 -> 21663 bytes images/amiibo/0088_B.jpg | Bin 0 -> 52191 bytes images/amiibo/0089_A.jpg | Bin 0 -> 43428 bytes images/amiibo/0089_B.jpg | Bin 0 -> 60079 bytes images/amiibo/0090_A.jpg | Bin 0 -> 35092 bytes images/amiibo/0090_B.jpg | Bin 0 -> 54512 bytes images/amiibo/0091_A.jpg | Bin 0 -> 32277 bytes images/amiibo/0091_B.jpg | Bin 0 -> 18146 bytes images/amiibo/0092_A.jpg | Bin 0 -> 48765 bytes images/amiibo/0092_B.jpg | Bin 0 -> 19118 bytes images/amiibo/0093_A.jpg | Bin 0 -> 18863 bytes images/amiibo/0093_B.jpg | Bin 0 -> 54052 bytes images/amiibo/0094_A.jpg | Bin 0 -> 33409 bytes images/amiibo/0094_B.jpg | Bin 0 -> 19614 bytes images/amiibo/0095_A.jpg | Bin 0 -> 36315 bytes images/amiibo/0095_B.jpg | Bin 0 -> 23194 bytes images/amiibo/0096_A.jpg | Bin 0 -> 26650 bytes images/amiibo/0096_B.jpg | Bin 0 -> 21856 bytes images/amiibo/0097_A.jpg | Bin 0 -> 37927 bytes images/amiibo/0097_b.jpg | Bin 0 -> 22339 bytes images/amiibo/0098_A.jpg | Bin 0 -> 33045 bytes images/amiibo/0098_B.jpg | Bin 0 -> 22739 bytes images/amiibo/0099_A.jpg | Bin 0 -> 38133 bytes images/amiibo/0099_B.jpg | Bin 0 -> 22460 bytes images/amiibo/0100_A.jpg | Bin 0 -> 53548 bytes images/amiibo/0100_B.jpg | Bin 0 -> 25629 bytes images/amiibo/0101_A.jpg | Bin 0 -> 48308 bytes images/amiibo/0101_B.jpg | Bin 0 -> 24482 bytes images/amiibo/0102_A.jpg | Bin 0 -> 21724 bytes images/amiibo/0102_B.jpg | Bin 0 -> 16496 bytes images/amiibo/0103_A.jpg | Bin 0 -> 13756 bytes images/amiibo/0103_B.jpg | Bin 0 -> 17479 bytes images/amiibo/0104_A.jpg | Bin 0 -> 36744 bytes images/amiibo/0104_B.jpg | Bin 0 -> 21189 bytes images/amiibo/0105_A.jpg | Bin 0 -> 26097 bytes images/amiibo/0105_B.jpg | Bin 0 -> 21277 bytes images/amiibo/0106_A.jpg | Bin 0 -> 40575 bytes images/amiibo/0106_B.jpg | Bin 0 -> 20874 bytes images/amiibo/0107_A.jpg | Bin 0 -> 25835 bytes images/amiibo/0107_B.jpg | Bin 0 -> 17949 bytes images/amiibo/0108_A.jpg | Bin 0 -> 33935 bytes images/amiibo/0108_B.jpg | Bin 0 -> 20984 bytes images/amiibo/0109_A.jpg | Bin 0 -> 30537 bytes images/amiibo/0109_B.jpg | Bin 0 -> 21437 bytes images/amiibo/0110_A.jpg | Bin 0 -> 25876 bytes images/amiibo/0110_B.jpg | Bin 0 -> 19241 bytes images/amiibo/0111_A.jpg | Bin 0 -> 23821 bytes images/amiibo/0111_B.jpg | Bin 0 -> 18691 bytes images/amiibo/0112_A.jpg | Bin 0 -> 29706 bytes images/amiibo/0112_B.jpg | Bin 0 -> 20757 bytes images/amiibo/0113_A.jpg | Bin 0 -> 25472 bytes images/amiibo/0113_B.jpg | Bin 0 -> 16186 bytes images/amiibo/0114_A.jpg | Bin 0 -> 47590 bytes images/amiibo/0114_B.jpg | Bin 0 -> 22192 bytes images/amiibo/0115_A.jpg | Bin 0 -> 47743 bytes images/amiibo/0115_B.jpg | Bin 0 -> 22146 bytes images/amiibo/0116_A.jpg | Bin 0 -> 63213 bytes images/amiibo/0116_B.jpg | Bin 0 -> 24185 bytes images/amiibo/0117_A.jpg | Bin 0 -> 44549 bytes images/amiibo/0117_B.jpg | Bin 0 -> 18921 bytes images/amiibo/0118_A.jpg | Bin 0 -> 9359 bytes images/amiibo/0118_B.jpg | Bin 0 -> 10723 bytes images/amiibo/0119_A.jpg | Bin 0 -> 49319 bytes images/amiibo/0119_B.jpg | Bin 0 -> 33326 bytes images/amiibo/0120_A.jpg | Bin 0 -> 26003 bytes images/amiibo/0120_B.jpg | Bin 0 -> 54738 bytes images/amiibo/0121_A.jpg | Bin 0 -> 30638 bytes images/amiibo/0121_B.jpg | Bin 0 -> 20130 bytes images/amiibo/0122_A.jpg | Bin 0 -> 44441 bytes images/amiibo/0122_B.jpg | Bin 0 -> 55386 bytes images/amiibo/0123_A.jpg | Bin 0 -> 38304 bytes images/amiibo/0123_B.jpg | Bin 0 -> 57029 bytes images/amiibo/0124_A.jpg | Bin 0 -> 36513 bytes images/amiibo/0124_B.jpg | Bin 0 -> 6703 bytes images/amiibo/0125_A.jpg | Bin 0 -> 32318 bytes images/amiibo/0125_B.jpg | Bin 0 -> 6164 bytes images/amiibo/0126_A.jpg | Bin 0 -> 38621 bytes images/amiibo/0126_B.jpg | Bin 0 -> 22092 bytes images/amiibo/0127_A.jpg | Bin 0 -> 33908 bytes images/amiibo/0127_B.jpg | Bin 0 -> 20524 bytes images/amiibo/0128_A.jpg | Bin 0 -> 29032 bytes images/amiibo/0128_B.jpg | Bin 0 -> 22180 bytes images/amiibo/0129_A.jpg | Bin 0 -> 44689 bytes images/amiibo/0129_B.jpg | Bin 0 -> 21353 bytes images/amiibo/0130_A.jpg | Bin 0 -> 38054 bytes images/amiibo/0130_B.jpg | Bin 0 -> 21333 bytes images/amiibo/0131_A.jpg | Bin 0 -> 39091 bytes images/amiibo/0131_B.jpg | Bin 0 -> 18848 bytes images/amiibo/0132_A.jpg | Bin 0 -> 43727 bytes images/amiibo/0132_B.jpg | Bin 0 -> 19926 bytes images/amiibo/0133_A.jpg | Bin 0 -> 37544 bytes images/amiibo/0133_B.jpg | Bin 0 -> 23129 bytes images/amiibo/0134_A.jpg | Bin 0 -> 35864 bytes images/amiibo/0134_B.jpg | Bin 0 -> 19644 bytes images/amiibo/0135_A.jpg | Bin 0 -> 31916 bytes images/amiibo/0135_B.jpg | Bin 0 -> 18751 bytes images/amiibo/0136_A.jpg | Bin 0 -> 57823 bytes images/amiibo/0136_B.jpg | Bin 0 -> 19763 bytes images/amiibo/0137_A.jpg | Bin 0 -> 52417 bytes images/amiibo/0137_B.jpg | Bin 0 -> 20080 bytes images/amiibo/0138_A.jpg | Bin 0 -> 38714 bytes images/amiibo/0138_B.jpg | Bin 0 -> 22149 bytes images/amiibo/0139_A.jpg | Bin 0 -> 42235 bytes images/amiibo/0139_B.jpg | Bin 0 -> 22363 bytes images/amiibo/0140_A.jpg | Bin 0 -> 46858 bytes images/amiibo/0140_B.jpg | Bin 0 -> 20726 bytes images/amiibo/0141_A.jpg | Bin 0 -> 39021 bytes images/amiibo/0141_B.jpg | Bin 0 -> 6059 bytes images/amiibo/0142_A.jpg | Bin 0 -> 29298 bytes images/amiibo/0142_B.jpg | Bin 0 -> 6582 bytes images/amiibo/0143_A.jpg | Bin 0 -> 32619 bytes images/amiibo/0143_B.jpg | Bin 0 -> 41902 bytes images/amiibo/0144_A.jpg | Bin 0 -> 34742 bytes images/amiibo/0144_B.jpg | Bin 0 -> 40299 bytes images/amiibo/0145_A.jpg | Bin 0 -> 58268 bytes images/amiibo/0145_B.jpg | Bin 0 -> 23027 bytes images/amiibo/0146_A.jpg | Bin 0 -> 32987 bytes images/amiibo/0146_B.jpg | Bin 0 -> 21510 bytes images/amiibo/0147_A.jpg | Bin 0 -> 21775 bytes images/amiibo/0147_B.jpg | Bin 0 -> 20851 bytes images/amiibo/0148_A.jpg | Bin 0 -> 120546 bytes images/amiibo/0148_B.jpg | Bin 0 -> 58196 bytes images/amiibo/0149_A.jpg | Bin 0 -> 133206 bytes images/amiibo/0149_B.jpg | Bin 0 -> 56286 bytes images/amiibo/0150_A.jpg | Bin 0 -> 114809 bytes images/amiibo/0150_B.jpg | Bin 0 -> 53524 bytes images/amiibo/0151_A.jpg | Bin 0 -> 60749 bytes images/amiibo/0151_B.jpg | Bin 0 -> 55694 bytes images/amiibo/0152_A.jpg | Bin 0 -> 117758 bytes images/amiibo/0152_B.jpg | Bin 0 -> 56484 bytes images/amiibo/0153_A.jpg | Bin 0 -> 37601 bytes images/amiibo/0153_B.jpg | Bin 0 -> 19876 bytes images/amiibo/0154_A.jpg | Bin 0 -> 31762 bytes images/amiibo/0154_B.jpg | Bin 0 -> 19601 bytes images/amiibo/0155_A.jpg | Bin 0 -> 73099 bytes images/amiibo/0156_A.jpg | Bin 0 -> 90567 bytes images/amiibo/0157_A.jpg | Bin 0 -> 114652 bytes images/amiibo/0157_B.jpg | Bin 0 -> 57390 bytes images/amiibo/0158_A.jpg | Bin 0 -> 134979 bytes images/amiibo/0158_B.jpg | Bin 0 -> 63401 bytes images/amiibo/0159_A.jpg | Bin 0 -> 145203 bytes images/amiibo/0159_B.jpg | Bin 0 -> 62327 bytes images/amiibo/0160_A.jpg | Bin 0 -> 133161 bytes images/amiibo/0160_B.jpg | Bin 0 -> 54566 bytes images/amiibo/0161_A.jpg | Bin 0 -> 137073 bytes images/amiibo/0161_B.jpg | Bin 0 -> 47470 bytes images/amiibo/0162_A.jpg | Bin 0 -> 187634 bytes images/amiibo/0162_B.jpg | Bin 0 -> 52471 bytes images/amiibo/0163_A.jpg | Bin 0 -> 66589 bytes images/amiibo/0163_B.jpg | Bin 0 -> 47856 bytes images/amiibo/0164_A.jpg | Bin 0 -> 126328 bytes images/amiibo/0164_B.jpg | Bin 0 -> 53532 bytes images/amiibo/0165_A.jpg | Bin 0 -> 57969 bytes images/amiibo/0165_B.jpg | Bin 0 -> 49151 bytes images/amiibo/0166_A.jpg | Bin 0 -> 67059 bytes images/amiibo/0166_B.jpg | Bin 0 -> 44095 bytes images/amiibo/0167_A.jpg | Bin 0 -> 54516 bytes images/amiibo/0167_B.jpg | Bin 0 -> 51839 bytes images/amiibo/0168_A.jpg | Bin 0 -> 69697 bytes images/amiibo/0168_B.jpg | Bin 0 -> 27048 bytes images/amiibo/0169_A.jpg | Bin 0 -> 41988 bytes images/amiibo/0169_B.jpg | Bin 0 -> 41222 bytes images/amiibo/0170_A.jpg | Bin 0 -> 36027 bytes images/amiibo/0170_B.jpg | Bin 0 -> 46231 bytes images/amiibo/0171_A.jpg | Bin 0 -> 58596 bytes images/amiibo/0171_B.jpg | Bin 0 -> 68985 bytes images/amiibo/0172_A.jpg | Bin 0 -> 57963 bytes images/amiibo/0172_B.jpg | Bin 0 -> 40722 bytes images/amiibo/0173_A.jpg | Bin 0 -> 44455 bytes images/amiibo/0173_B.jpg | Bin 0 -> 45526 bytes images/amiibo/0174_A.jpg | Bin 0 -> 79369 bytes images/amiibo/0174_B.jpg | Bin 0 -> 54059 bytes images/amiibo/0175_A.jpg | Bin 0 -> 90510 bytes images/amiibo/0175_B.jpg | Bin 0 -> 66374 bytes images/amiibo/0176_A.jpg | Bin 0 -> 187114 bytes images/amiibo/0176_B.jpg | Bin 0 -> 80634 bytes images/amiibo/0177_A.jpg | Bin 0 -> 133936 bytes images/amiibo/0177_B.jpg | Bin 0 -> 68578 bytes images/amiibo/0178_A.jpg | Bin 0 -> 94199 bytes images/amiibo/0178_B.jpg | Bin 0 -> 51194 bytes images/amiibo/0179_A.jpg | Bin 0 -> 138114 bytes images/amiibo/0179_B.jpg | Bin 0 -> 77970 bytes images/amiibo/0180_A.jpg | Bin 0 -> 175039 bytes images/amiibo/0180_B.jpg | Bin 0 -> 80037 bytes images/amiibo/0181_A.jpg | Bin 0 -> 136694 bytes images/amiibo/0181_B.jpg | Bin 0 -> 57217 bytes images/amiibo/0182_A.jpg | Bin 0 -> 111409 bytes images/amiibo/0182_B.jpg | Bin 0 -> 47158 bytes images/amiibo/0183_A.jpg | Bin 0 -> 23370 bytes images/amiibo/0183_B.jpg | Bin 0 -> 9844 bytes images/amiibo/0184_A.jpg | Bin 0 -> 27687 bytes images/amiibo/0184_B.jpg | Bin 0 -> 11533 bytes images/amiibo/0185_A.jpg | Bin 0 -> 89172 bytes images/amiibo/0185_B.jpg | Bin 0 -> 50073 bytes images/amiibo/0186_A.jpg | Bin 0 -> 119489 bytes images/amiibo/0186_B.jpg | Bin 0 -> 50326 bytes images/amiibo/0187_A.jpg | Bin 0 -> 163953 bytes images/amiibo/0187_B.jpg | Bin 0 -> 76359 bytes images/amiibo/0188_A.jpg | Bin 0 -> 199208 bytes images/amiibo/0188_B.jpg | Bin 0 -> 84433 bytes images/amiibo/0189_A.jpg | Bin 0 -> 182553 bytes images/amiibo/0189_B.jpg | Bin 0 -> 68819 bytes images/amiibo/0190_A.jpg | Bin 0 -> 216019 bytes images/amiibo/0190_B.jpg | Bin 0 -> 68452 bytes images/amiibo/0191_A.jpg | Bin 0 -> 130298 bytes images/amiibo/0191_B.jpg | Bin 0 -> 60553 bytes images/amiibo/0192_A.jpg | Bin 0 -> 144754 bytes images/amiibo/0192_B.jpg | Bin 0 -> 62430 bytes images/amiibo/0193_A.jpg | Bin 0 -> 200185 bytes images/amiibo/0193_B.jpg | Bin 0 -> 92295 bytes images/amiibo/0194_A.jpg | Bin 0 -> 236138 bytes images/amiibo/0194_B.jpg | Bin 0 -> 74475 bytes images/amiibo/0195_A.jpg | Bin 0 -> 188300 bytes images/amiibo/0195_B.jpg | Bin 0 -> 72252 bytes images/amiibo/0196_A.jpg | Bin 0 -> 154348 bytes images/amiibo/0196_B.jpg | Bin 0 -> 80895 bytes images/amiibo/0197_A.jpg | Bin 0 -> 270717 bytes images/amiibo/0197_B.jpg | Bin 0 -> 53423 bytes images/amiibo/0198_A.jpg | Bin 0 -> 96283 bytes images/amiibo/0198_B.jpg | Bin 0 -> 34376 bytes images/amiibo/0199_A.jpg | Bin 0 -> 121031 bytes images/amiibo/0199_B.jpg | Bin 0 -> 55656 bytes images/amiibo/0200_A.jpg | Bin 0 -> 176204 bytes images/amiibo/0200_B.jpg | Bin 0 -> 1863836 bytes images/amiibo/0201_A.jpg | Bin 0 -> 49096 bytes images/amiibo/0201_B.jpg | Bin 0 -> 43891 bytes images/amiibo/0202_A.jpg | Bin 0 -> 50501 bytes images/amiibo/0202_B.jpg | Bin 0 -> 25667 bytes images/amiibo/0203_A.jpg | Bin 0 -> 130938 bytes images/amiibo/0203_B.jpg | Bin 0 -> 63475 bytes images/amiibo/0204_A.jpg | Bin 0 -> 95613 bytes images/amiibo/0204_B.jpg | Bin 0 -> 59515 bytes images/amiibo/0205_A.jpg | Bin 0 -> 95041 bytes images/amiibo/0205_B.jpg | Bin 0 -> 57877 bytes images/amiibo/0206_A.jpg | Bin 0 -> 113206 bytes images/amiibo/0206_B.jpg | Bin 0 -> 52876 bytes images/amiibo/0207_A.jpg | Bin 0 -> 147431 bytes images/amiibo/0207_B.jpg | Bin 0 -> 43794 bytes images/amiibo/0208_A.jpg | Bin 0 -> 101638 bytes images/amiibo/0208_B.jpg | Bin 0 -> 56843 bytes images/amiibo/0209_A.jpg | Bin 0 -> 85710 bytes images/amiibo/0210_A.jpg | Bin 0 -> 136013 bytes images/amiibo/0211_A.jpg | Bin 0 -> 75770 bytes images/amiibo/0212_A.jpg | Bin 0 -> 87485 bytes images/amiibo/0213_A.jpg | Bin 0 -> 80086 bytes images/amiibo/0214_A.jpg | Bin 0 -> 122082 bytes images/amiibo/0214_B.jpg | Bin 0 -> 91856 bytes images/amiibo/0215_A.jpg | Bin 0 -> 115153 bytes images/amiibo/0215_B.jpg | Bin 0 -> 91856 bytes images/amiibo/0216_A.jpg | Bin 0 -> 48834 bytes images/amiibo/0216_B.jpg | Bin 0 -> 55420 bytes images/amiibo/0217_A.jpg | Bin 0 -> 78165 bytes images/amiibo/0217_B.jpg | Bin 0 -> 57399 bytes images/amiibo/0218_A.jpg | Bin 0 -> 117874 bytes images/amiibo/0218_B.jpg | Bin 0 -> 79643 bytes images/amiibo/0219_A.jpg | Bin 0 -> 129712 bytes images/amiibo/0219_B.jpg | Bin 0 -> 60074 bytes images/amiibo/0220_A.jpg | Bin 0 -> 131835 bytes images/amiibo/0220_B.jpg | Bin 0 -> 61412 bytes images/amiibo/0221_A.jpg | Bin 0 -> 44140 bytes images/amiibo/0221_B.jpg | Bin 0 -> 62275 bytes images/amiibo/0222_A.jpg | Bin 0 -> 53180 bytes images/amiibo/0222_B.jpg | Bin 0 -> 62275 bytes images/amiibo_thumb.png | Bin 0 -> 695225 bytes images/nsw_thumb.png | Bin 0 -> 134835 bytes index.html | 476 +++++ package-lock.json | 1330 ++++++++++++++ package.json | 6 + script/amiibo.js | 533 ++++++ style/input.css | 1 + style/tailwind.css | 1426 +++++++++++++++ 458 files changed, 7521 insertions(+) create mode 100644 .ai-rules.md create mode 100644 .cursorrules create mode 100644 .gitignore create mode 100644 .prettierrc.json create mode 100644 .vscode/settings.json create mode 100644 db/amiibo.db.js create mode 100644 docs/convention.md create mode 100644 docs/history.md create mode 100644 docs/map.md create mode 100644 docs/spec.md create mode 100644 docs/todo.md create mode 100644 docs/update.md create mode 100644 filter.js create mode 100644 images/amiibo/0001_A.jpg create mode 100644 images/amiibo/0001_B.jpg create mode 100644 images/amiibo/0002_A.jpg create mode 100644 images/amiibo/0002_B.jpg create mode 100644 images/amiibo/0003_A.jpg create mode 100644 images/amiibo/0003_B.jpg create mode 100644 images/amiibo/0004_A.jpg create mode 100644 images/amiibo/0004_B.jpg create mode 100644 images/amiibo/0005_A.jpg create mode 100644 images/amiibo/0005_B.jpg create mode 100644 images/amiibo/0006_A.jpg create mode 100644 images/amiibo/0006_B.jpg create mode 100644 images/amiibo/0007_A.jpg create mode 100644 images/amiibo/0007_B.jpg create mode 100644 images/amiibo/0008_A.jpg create mode 100644 images/amiibo/0008_B.jpg create mode 100644 images/amiibo/0009_A.jpg create mode 100644 images/amiibo/0009_B.jpg create mode 100644 images/amiibo/0010_A.jpg create mode 100644 images/amiibo/0010_B.jpg create mode 100644 images/amiibo/0011_A.jpg create mode 100644 images/amiibo/0011_B.jpg create mode 100644 images/amiibo/0012_A.jpg create mode 100644 images/amiibo/0012_B.jpg create mode 100644 images/amiibo/0013_A.jpg create mode 100644 images/amiibo/0013_B.jpg create mode 100644 images/amiibo/0014_A.jpg create mode 100644 images/amiibo/0014_B.jpg create mode 100644 images/amiibo/0015_A.jpg create mode 100644 images/amiibo/0015_B.jpg create mode 100644 images/amiibo/0016_A.jpg create mode 100644 images/amiibo/0016_B.jpg create mode 100644 images/amiibo/0017_A.jpg create mode 100644 images/amiibo/0017_B.jpg create mode 100644 images/amiibo/0018_A.jpg create mode 100644 images/amiibo/0018_B.jpg create mode 100644 images/amiibo/0019_A.jpg create mode 100644 images/amiibo/0019_B.jpg create mode 100644 images/amiibo/0020_A.jpg create mode 100644 images/amiibo/0020_B.jpg create mode 100644 images/amiibo/0021_A.jpg create mode 100644 images/amiibo/0021_B.jpg create mode 100644 images/amiibo/0022_A.jpg create mode 100644 images/amiibo/0022_B.jpg create mode 100644 images/amiibo/0023_A.jpg create mode 100644 images/amiibo/0023_B.jpg create mode 100644 images/amiibo/0024_A.jpg create mode 100644 images/amiibo/0024_B.jpg create mode 100644 images/amiibo/0025_A.jpg create mode 100644 images/amiibo/0025_B.jpg create mode 100644 images/amiibo/0026_A.jpg create mode 100644 images/amiibo/0026_B.jpg create mode 100644 images/amiibo/0027_A.jpg create mode 100644 images/amiibo/0027_B.jpg create mode 100644 images/amiibo/0028_A.jpg create mode 100644 images/amiibo/0028_B.jpg create mode 100644 images/amiibo/0029_A.jpg create mode 100644 images/amiibo/0029_B.jpg create mode 100644 images/amiibo/0030_A.jpg create mode 100644 images/amiibo/0030_B.jpg create mode 100644 images/amiibo/0031_A.jpg create mode 100644 images/amiibo/0031_B.jpg create mode 100644 images/amiibo/0032_A.jpg create mode 100644 images/amiibo/0032_B.jpg create mode 100644 images/amiibo/0033_A.jpg create mode 100644 images/amiibo/0033_B.jpg create mode 100644 images/amiibo/0034_A.jpg create mode 100644 images/amiibo/0034_B.jpg create mode 100644 images/amiibo/0035_A.jpg create mode 100644 images/amiibo/0035_B.jpg create mode 100644 images/amiibo/0036_A.jpg create mode 100644 images/amiibo/0036_B.jpg create mode 100644 images/amiibo/0037_A.jpg create mode 100644 images/amiibo/0037_B.jpg create mode 100644 images/amiibo/0038_A.jpg create mode 100644 images/amiibo/0038_B.jpg create mode 100644 images/amiibo/0039_A.jpg create mode 100644 images/amiibo/0039_B.jpg create mode 100644 images/amiibo/0040_A.jpg create mode 100644 images/amiibo/0040_B.jpg create mode 100644 images/amiibo/0041_A.jpg create mode 100644 images/amiibo/0041_B.jpg create mode 100644 images/amiibo/0042_A.jpg create mode 100644 images/amiibo/0042_B.jpg create mode 100644 images/amiibo/0043_A.jpg create mode 100644 images/amiibo/0043_B.jpg create mode 100644 images/amiibo/0044_A.jpg create mode 100644 images/amiibo/0044_B.jpg create mode 100644 images/amiibo/0045_A.jpg create mode 100644 images/amiibo/0045_B.jpg create mode 100644 images/amiibo/0046_A.jpg create mode 100644 images/amiibo/0046_B.jpg create mode 100644 images/amiibo/0047_A.jpg create mode 100644 images/amiibo/0047_B.jpg create mode 100644 images/amiibo/0048_A.jpg create mode 100644 images/amiibo/0048_B.jpg create mode 100644 images/amiibo/0049_A.jpg create mode 100644 images/amiibo/0049_B.jpg create mode 100644 images/amiibo/0050_A.jpg create mode 100644 images/amiibo/0050_B.jpg create mode 100644 images/amiibo/0051_A.jpg create mode 100644 images/amiibo/0051_B.jpg create mode 100644 images/amiibo/0052_A.jpg create mode 100644 images/amiibo/0052_B.jpg create mode 100644 images/amiibo/0053_A.jpg create mode 100644 images/amiibo/0053_B.jpg create mode 100644 images/amiibo/0054_A.jpg create mode 100644 images/amiibo/0054_B.jpg create mode 100644 images/amiibo/0055_A.jpg create mode 100644 images/amiibo/0055_B.jpg create mode 100644 images/amiibo/0056_A.jpg create mode 100644 images/amiibo/0056_B.jpg create mode 100644 images/amiibo/0057_A.jpg create mode 100644 images/amiibo/0057_B.jpg create mode 100644 images/amiibo/0058_A.jpg create mode 100644 images/amiibo/0058_B.jpg create mode 100644 images/amiibo/0059_A.jpg create mode 100644 images/amiibo/0059_B.jpg create mode 100644 images/amiibo/0060_A.jpg create mode 100644 images/amiibo/0060_B.jpg create mode 100644 images/amiibo/0061_A.jpg create mode 100644 images/amiibo/0061_B.jpg create mode 100644 images/amiibo/0062_A.jpg create mode 100644 images/amiibo/0062_B.jpg create mode 100644 images/amiibo/0063_A.jpg create mode 100644 images/amiibo/0063_B.jpg create mode 100644 images/amiibo/0064_A.jpg create mode 100644 images/amiibo/0064_B.jpg create mode 100644 images/amiibo/0065_A.jpg create mode 100644 images/amiibo/0065_B.jpg create mode 100644 images/amiibo/0066_A.jpg create mode 100644 images/amiibo/0066_B.jpg create mode 100644 images/amiibo/0067_A.jpg create mode 100644 images/amiibo/0067_B.jpg create mode 100644 images/amiibo/0068_A.jpg create mode 100644 images/amiibo/0068_B.jpg create mode 100644 images/amiibo/0069_A.jpg create mode 100644 images/amiibo/0069_B.jpg create mode 100644 images/amiibo/0070_A.jpg create mode 100644 images/amiibo/0070_B.jpg create mode 100644 images/amiibo/0071_A.jpg create mode 100644 images/amiibo/0071_B.jpg create mode 100644 images/amiibo/0072_A.jpg create mode 100644 images/amiibo/0072_B.jpg create mode 100644 images/amiibo/0073_A.jpg create mode 100644 images/amiibo/0073_B.jpg create mode 100644 images/amiibo/0074_A.jpg create mode 100644 images/amiibo/0074_B.jpg create mode 100644 images/amiibo/0075_A.jpg create mode 100644 images/amiibo/0075_B.jpg create mode 100644 images/amiibo/0076_A.jpg create mode 100644 images/amiibo/0076_B.jpg create mode 100644 images/amiibo/0077_A.jpg create mode 100644 images/amiibo/0077_B.jpg create mode 100644 images/amiibo/0078_A.jpg create mode 100644 images/amiibo/0078_B.jpg create mode 100644 images/amiibo/0079_A.jpg create mode 100644 images/amiibo/0079_B.jpg create mode 100644 images/amiibo/0080_A.jpg create mode 100644 images/amiibo/0080_B.jpg create mode 100644 images/amiibo/0081_A.jpg create mode 100644 images/amiibo/0081_B.jpg create mode 100644 images/amiibo/0082_A.jpg create mode 100644 images/amiibo/0082_B.jpg create mode 100644 images/amiibo/0083_A.jpg create mode 100644 images/amiibo/0083_B.jpg create mode 100644 images/amiibo/0084_A.jpg create mode 100644 images/amiibo/0084_B.jpg create mode 100644 images/amiibo/0085_A.jpg create mode 100644 images/amiibo/0085_B.jpg create mode 100644 images/amiibo/0086_A.jpg create mode 100644 images/amiibo/0086_B.jpg create mode 100644 images/amiibo/0087_A.jpg create mode 100644 images/amiibo/0087_B.jpg create mode 100644 images/amiibo/0088_A.jpg create mode 100644 images/amiibo/0088_B.jpg create mode 100644 images/amiibo/0089_A.jpg create mode 100644 images/amiibo/0089_B.jpg create mode 100644 images/amiibo/0090_A.jpg create mode 100644 images/amiibo/0090_B.jpg create mode 100644 images/amiibo/0091_A.jpg create mode 100644 images/amiibo/0091_B.jpg create mode 100644 images/amiibo/0092_A.jpg create mode 100644 images/amiibo/0092_B.jpg create mode 100644 images/amiibo/0093_A.jpg create mode 100644 images/amiibo/0093_B.jpg create mode 100644 images/amiibo/0094_A.jpg create mode 100644 images/amiibo/0094_B.jpg create mode 100644 images/amiibo/0095_A.jpg create mode 100644 images/amiibo/0095_B.jpg create mode 100644 images/amiibo/0096_A.jpg create mode 100644 images/amiibo/0096_B.jpg create mode 100644 images/amiibo/0097_A.jpg create mode 100644 images/amiibo/0097_b.jpg create mode 100644 images/amiibo/0098_A.jpg create mode 100644 images/amiibo/0098_B.jpg create mode 100644 images/amiibo/0099_A.jpg create mode 100644 images/amiibo/0099_B.jpg create mode 100644 images/amiibo/0100_A.jpg create mode 100644 images/amiibo/0100_B.jpg create mode 100644 images/amiibo/0101_A.jpg create mode 100644 images/amiibo/0101_B.jpg create mode 100644 images/amiibo/0102_A.jpg create mode 100644 images/amiibo/0102_B.jpg create mode 100644 images/amiibo/0103_A.jpg create mode 100644 images/amiibo/0103_B.jpg create mode 100644 images/amiibo/0104_A.jpg create mode 100644 images/amiibo/0104_B.jpg create mode 100644 images/amiibo/0105_A.jpg create mode 100644 images/amiibo/0105_B.jpg create mode 100644 images/amiibo/0106_A.jpg create mode 100644 images/amiibo/0106_B.jpg create mode 100644 images/amiibo/0107_A.jpg create mode 100644 images/amiibo/0107_B.jpg create mode 100644 images/amiibo/0108_A.jpg create mode 100644 images/amiibo/0108_B.jpg create mode 100644 images/amiibo/0109_A.jpg create mode 100644 images/amiibo/0109_B.jpg create mode 100644 images/amiibo/0110_A.jpg create mode 100644 images/amiibo/0110_B.jpg create mode 100644 images/amiibo/0111_A.jpg create mode 100644 images/amiibo/0111_B.jpg create mode 100644 images/amiibo/0112_A.jpg create mode 100644 images/amiibo/0112_B.jpg create mode 100644 images/amiibo/0113_A.jpg create mode 100644 images/amiibo/0113_B.jpg create mode 100644 images/amiibo/0114_A.jpg create mode 100644 images/amiibo/0114_B.jpg create mode 100644 images/amiibo/0115_A.jpg create mode 100644 images/amiibo/0115_B.jpg create mode 100644 images/amiibo/0116_A.jpg create mode 100644 images/amiibo/0116_B.jpg create mode 100644 images/amiibo/0117_A.jpg create mode 100644 images/amiibo/0117_B.jpg create mode 100644 images/amiibo/0118_A.jpg create mode 100644 images/amiibo/0118_B.jpg create mode 100644 images/amiibo/0119_A.jpg create mode 100644 images/amiibo/0119_B.jpg create mode 100644 images/amiibo/0120_A.jpg create mode 100644 images/amiibo/0120_B.jpg create mode 100644 images/amiibo/0121_A.jpg create mode 100644 images/amiibo/0121_B.jpg create mode 100644 images/amiibo/0122_A.jpg create mode 100644 images/amiibo/0122_B.jpg create mode 100644 images/amiibo/0123_A.jpg create mode 100644 images/amiibo/0123_B.jpg create mode 100644 images/amiibo/0124_A.jpg create mode 100644 images/amiibo/0124_B.jpg create mode 100644 images/amiibo/0125_A.jpg create mode 100644 images/amiibo/0125_B.jpg create mode 100644 images/amiibo/0126_A.jpg create mode 100644 images/amiibo/0126_B.jpg create mode 100644 images/amiibo/0127_A.jpg create mode 100644 images/amiibo/0127_B.jpg create mode 100644 images/amiibo/0128_A.jpg create mode 100644 images/amiibo/0128_B.jpg create mode 100644 images/amiibo/0129_A.jpg create mode 100644 images/amiibo/0129_B.jpg create mode 100644 images/amiibo/0130_A.jpg create mode 100644 images/amiibo/0130_B.jpg create mode 100644 images/amiibo/0131_A.jpg create mode 100644 images/amiibo/0131_B.jpg create mode 100644 images/amiibo/0132_A.jpg create mode 100644 images/amiibo/0132_B.jpg create mode 100644 images/amiibo/0133_A.jpg create mode 100644 images/amiibo/0133_B.jpg create mode 100644 images/amiibo/0134_A.jpg create mode 100644 images/amiibo/0134_B.jpg create mode 100644 images/amiibo/0135_A.jpg create mode 100644 images/amiibo/0135_B.jpg create mode 100644 images/amiibo/0136_A.jpg create mode 100644 images/amiibo/0136_B.jpg create mode 100644 images/amiibo/0137_A.jpg create mode 100644 images/amiibo/0137_B.jpg create mode 100644 images/amiibo/0138_A.jpg create mode 100644 images/amiibo/0138_B.jpg create mode 100644 images/amiibo/0139_A.jpg create mode 100644 images/amiibo/0139_B.jpg create mode 100644 images/amiibo/0140_A.jpg create mode 100644 images/amiibo/0140_B.jpg create mode 100644 images/amiibo/0141_A.jpg create mode 100644 images/amiibo/0141_B.jpg create mode 100644 images/amiibo/0142_A.jpg create mode 100644 images/amiibo/0142_B.jpg create mode 100644 images/amiibo/0143_A.jpg create mode 100644 images/amiibo/0143_B.jpg create mode 100644 images/amiibo/0144_A.jpg create mode 100644 images/amiibo/0144_B.jpg create mode 100644 images/amiibo/0145_A.jpg create mode 100644 images/amiibo/0145_B.jpg create mode 100644 images/amiibo/0146_A.jpg create mode 100644 images/amiibo/0146_B.jpg create mode 100644 images/amiibo/0147_A.jpg create mode 100644 images/amiibo/0147_B.jpg create mode 100644 images/amiibo/0148_A.jpg create mode 100644 images/amiibo/0148_B.jpg create mode 100644 images/amiibo/0149_A.jpg create mode 100644 images/amiibo/0149_B.jpg create mode 100644 images/amiibo/0150_A.jpg create mode 100644 images/amiibo/0150_B.jpg create mode 100644 images/amiibo/0151_A.jpg create mode 100644 images/amiibo/0151_B.jpg create mode 100644 images/amiibo/0152_A.jpg create mode 100644 images/amiibo/0152_B.jpg create mode 100644 images/amiibo/0153_A.jpg create mode 100644 images/amiibo/0153_B.jpg create mode 100644 images/amiibo/0154_A.jpg create mode 100644 images/amiibo/0154_B.jpg create mode 100644 images/amiibo/0155_A.jpg create mode 100644 images/amiibo/0156_A.jpg create mode 100644 images/amiibo/0157_A.jpg create mode 100644 images/amiibo/0157_B.jpg create mode 100644 images/amiibo/0158_A.jpg create mode 100644 images/amiibo/0158_B.jpg create mode 100644 images/amiibo/0159_A.jpg create mode 100644 images/amiibo/0159_B.jpg create mode 100644 images/amiibo/0160_A.jpg create mode 100644 images/amiibo/0160_B.jpg create mode 100644 images/amiibo/0161_A.jpg create mode 100644 images/amiibo/0161_B.jpg create mode 100644 images/amiibo/0162_A.jpg create mode 100644 images/amiibo/0162_B.jpg create mode 100644 images/amiibo/0163_A.jpg create mode 100644 images/amiibo/0163_B.jpg create mode 100644 images/amiibo/0164_A.jpg create mode 100644 images/amiibo/0164_B.jpg create mode 100644 images/amiibo/0165_A.jpg create mode 100644 images/amiibo/0165_B.jpg create mode 100644 images/amiibo/0166_A.jpg create mode 100644 images/amiibo/0166_B.jpg create mode 100644 images/amiibo/0167_A.jpg create mode 100644 images/amiibo/0167_B.jpg create mode 100644 images/amiibo/0168_A.jpg create mode 100644 images/amiibo/0168_B.jpg create mode 100644 images/amiibo/0169_A.jpg create mode 100644 images/amiibo/0169_B.jpg create mode 100644 images/amiibo/0170_A.jpg create mode 100644 images/amiibo/0170_B.jpg create mode 100644 images/amiibo/0171_A.jpg create mode 100644 images/amiibo/0171_B.jpg create mode 100644 images/amiibo/0172_A.jpg create mode 100644 images/amiibo/0172_B.jpg create mode 100644 images/amiibo/0173_A.jpg create mode 100644 images/amiibo/0173_B.jpg create mode 100644 images/amiibo/0174_A.jpg create mode 100644 images/amiibo/0174_B.jpg create mode 100644 images/amiibo/0175_A.jpg create mode 100644 images/amiibo/0175_B.jpg create mode 100644 images/amiibo/0176_A.jpg create mode 100644 images/amiibo/0176_B.jpg create mode 100644 images/amiibo/0177_A.jpg create mode 100644 images/amiibo/0177_B.jpg create mode 100644 images/amiibo/0178_A.jpg create mode 100644 images/amiibo/0178_B.jpg create mode 100644 images/amiibo/0179_A.jpg create mode 100644 images/amiibo/0179_B.jpg create mode 100644 images/amiibo/0180_A.jpg create mode 100644 images/amiibo/0180_B.jpg create mode 100644 images/amiibo/0181_A.jpg create mode 100644 images/amiibo/0181_B.jpg create mode 100644 images/amiibo/0182_A.jpg create mode 100644 images/amiibo/0182_B.jpg create mode 100644 images/amiibo/0183_A.jpg create mode 100644 images/amiibo/0183_B.jpg create mode 100644 images/amiibo/0184_A.jpg create mode 100644 images/amiibo/0184_B.jpg create mode 100644 images/amiibo/0185_A.jpg create mode 100644 images/amiibo/0185_B.jpg create mode 100644 images/amiibo/0186_A.jpg create mode 100644 images/amiibo/0186_B.jpg create mode 100644 images/amiibo/0187_A.jpg create mode 100644 images/amiibo/0187_B.jpg create mode 100644 images/amiibo/0188_A.jpg create mode 100644 images/amiibo/0188_B.jpg create mode 100644 images/amiibo/0189_A.jpg create mode 100644 images/amiibo/0189_B.jpg create mode 100644 images/amiibo/0190_A.jpg create mode 100644 images/amiibo/0190_B.jpg create mode 100644 images/amiibo/0191_A.jpg create mode 100644 images/amiibo/0191_B.jpg create mode 100644 images/amiibo/0192_A.jpg create mode 100644 images/amiibo/0192_B.jpg create mode 100644 images/amiibo/0193_A.jpg create mode 100644 images/amiibo/0193_B.jpg create mode 100644 images/amiibo/0194_A.jpg create mode 100644 images/amiibo/0194_B.jpg create mode 100644 images/amiibo/0195_A.jpg create mode 100644 images/amiibo/0195_B.jpg create mode 100644 images/amiibo/0196_A.jpg create mode 100644 images/amiibo/0196_B.jpg create mode 100644 images/amiibo/0197_A.jpg create mode 100644 images/amiibo/0197_B.jpg create mode 100644 images/amiibo/0198_A.jpg create mode 100644 images/amiibo/0198_B.jpg create mode 100644 images/amiibo/0199_A.jpg create mode 100644 images/amiibo/0199_B.jpg create mode 100644 images/amiibo/0200_A.jpg create mode 100644 images/amiibo/0200_B.jpg create mode 100644 images/amiibo/0201_A.jpg create mode 100644 images/amiibo/0201_B.jpg create mode 100644 images/amiibo/0202_A.jpg create mode 100644 images/amiibo/0202_B.jpg create mode 100644 images/amiibo/0203_A.jpg create mode 100644 images/amiibo/0203_B.jpg create mode 100644 images/amiibo/0204_A.jpg create mode 100644 images/amiibo/0204_B.jpg create mode 100644 images/amiibo/0205_A.jpg create mode 100644 images/amiibo/0205_B.jpg create mode 100644 images/amiibo/0206_A.jpg create mode 100644 images/amiibo/0206_B.jpg create mode 100644 images/amiibo/0207_A.jpg create mode 100644 images/amiibo/0207_B.jpg create mode 100644 images/amiibo/0208_A.jpg create mode 100644 images/amiibo/0208_B.jpg create mode 100644 images/amiibo/0209_A.jpg create mode 100644 images/amiibo/0210_A.jpg create mode 100644 images/amiibo/0211_A.jpg create mode 100644 images/amiibo/0212_A.jpg create mode 100644 images/amiibo/0213_A.jpg create mode 100644 images/amiibo/0214_A.jpg create mode 100644 images/amiibo/0214_B.jpg create mode 100644 images/amiibo/0215_A.jpg create mode 100644 images/amiibo/0215_B.jpg create mode 100644 images/amiibo/0216_A.jpg create mode 100644 images/amiibo/0216_B.jpg create mode 100644 images/amiibo/0217_A.jpg create mode 100644 images/amiibo/0217_B.jpg create mode 100644 images/amiibo/0218_A.jpg create mode 100644 images/amiibo/0218_B.jpg create mode 100644 images/amiibo/0219_A.jpg create mode 100644 images/amiibo/0219_B.jpg create mode 100644 images/amiibo/0220_A.jpg create mode 100644 images/amiibo/0220_B.jpg create mode 100644 images/amiibo/0221_A.jpg create mode 100644 images/amiibo/0221_B.jpg create mode 100644 images/amiibo/0222_A.jpg create mode 100644 images/amiibo/0222_B.jpg create mode 100644 images/amiibo_thumb.png create mode 100644 images/nsw_thumb.png create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 script/amiibo.js create mode 100644 style/input.css create mode 100644 style/tailwind.css diff --git a/.ai-rules.md b/.ai-rules.md new file mode 100644 index 0000000..6361797 --- /dev/null +++ b/.ai-rules.md @@ -0,0 +1,39 @@ +# 프로젝트 AI 가이드라인 및 문서화 규칙 + +## 🌐 기본 응답 원칙 +- 모든 대화와 문서는 **한국어**로 작성한다. +- 코드 내 주석은 반드시 **JSDoc 형식**을 사용한다. + +## 🧾 Git 및 버전 관리 규칙 +- Git 작성자 정보는 프로젝트 기준 계정으로 통일한다. +- Git 커밋 메시지는 반드시 **한국어**로 작성한다. +- Git 커밋 제목은 반드시 `vYYYY.MM.DD-번호 내용` 형식을 사용한다. (예: `v2026.03.30-03 레포지토리 재연결`) +- 버전이 올라가는 작업은 `docs/update.md`에 먼저 반영하고, 같은 버전명을 Git 태그에도 맞춘다. +- 원격 저장소에 푸시하기 전, 민감 정보(실명, 개인 이메일, 비밀키, 로컬 경로)가 포함되지 않았는지 확인한다. + +## 📂 문서 자동 관리 규칙 +모든 작업 수행 후, AI는 관련 내용을 아래 지정된 파일에 즉시 반영해야 한다. + +1. **작업 이력 (docs/update.md)** + - 수행한 작업 항목만 간략한 목록형으로 기록한다. (서술형 문장, `~했다` 표현 금지) + - 당일 업데이트라도 수정 시마다 버전을 갱신하여 하나의 파일에 누적 관리한다. (별도 파일 생성 금지) + +2. **할 일 및 이슈 (docs/todo.md)** + - 현재 직면한 문제점과 다음에 이어서 진행할 작업 목록을 정리한다. + +3. **기술 명세 (docs/spec.md)** + - API 명세, 기획 내용, 데이터베이스 스키마 구조를 최신 상태로 유지한다. + +4. **코딩 컨벤션 (docs/convention.md)** + - 프로젝트 전용 코딩 스타일 및 네이밍 규칙(Variable, Function, Class 등)을 정의하고 준수한다. + +5. **의사결정 이력 (docs/history.md)** + - 주요 설계 결정 사항 및 시스템 아키텍처 변경 이력을 기록한다. + - 결정 배경(왜 그렇게 판단했는지)과 처리 결과를 `~했다` 형태의 문장으로 명확히 작성한다. + +6. **파일-화면 매핑 가이드 (docs/map.md)** + - 연결성 기록: 특정 파일(Ex: Login.jsx)이 브라우저 화면의 어느 경로(/login)와 어느 기능(로그인 버튼 등)을 담당하는지 초보자 관점에서 기록한다. + +## ⚠️ 실행 지침 +- 새로운 코드를 작성하거나 수정하기 전, 반드시 `docs/` 내 관련 문서들을 먼저 참조한다. +- 작업 완료 후 위 문서들의 업데이트가 누락되지 않도록 확인한다. diff --git a/.cursorrules b/.cursorrules new file mode 100644 index 0000000..bfd082f --- /dev/null +++ b/.cursorrules @@ -0,0 +1 @@ +모든 작업 시 프로젝트 루트의 .ai-rules.md 지침을 엄격히 준수하고, 작업 종료 시마다 docs/ 폴더 내 문서를 업데이트할 것. \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..e0b05ea --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,14 @@ +{ + "arrowParens": "avoid", + "bracketSameLine": true, + "bracketSpacing": true, + "endOfLine": "auto", + "htmlWhitespaceSensitivity": "ignore", + "printWidth": 100, + "semi": true, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "all", + "useTabs": false, + "vueIndentScriptAndStyle": false +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..163bd39 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "favorites.resources": [ + { + "filePath": "index.html", + "group": "Default" + } + ] +} \ No newline at end of file diff --git a/db/amiibo.db.js b/db/amiibo.db.js new file mode 100644 index 0000000..6f65d31 --- /dev/null +++ b/db/amiibo.db.js @@ -0,0 +1,3555 @@ +export default [ + { + no: 1, + title: 'Wii Fit トレーナー', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0001_A.jpg', + packageImage: '/images/amiibo/0001_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 2, + title: 'カービィ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0002_A.jpg', + packageImage: '/images/amiibo/0002_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 3, + title: 'キャプテン・ファルコン', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0003_A.jpg', + packageImage: '/images/amiibo/0003_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 4, + title: 'サムス', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0004_A.jpg', + packageImage: '/images/amiibo/0004_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 5, + title: 'ゼルダ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0005_A.jpg', + packageImage: '/images/amiibo/0005_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 6, + title: 'ディディーコング', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0006_A.jpg', + packageImage: '/images/amiibo/0006_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 7, + title: 'ドンキーコング', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0007_A.jpg', + packageImage: '/images/amiibo/0007_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 8, + title: 'ピカチュウ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0008_A.jpg', + packageImage: '/images/amiibo/0008_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 9, + title: 'ピット', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0009_A.jpg', + packageImage: '/images/amiibo/0009_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 10, + title: 'ピーチ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0010_A.jpg', + packageImage: '/images/amiibo/0010_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 11, + title: 'フォックス', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0011_A.jpg', + packageImage: '/images/amiibo/0011_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 12, + title: 'マリオ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0012_A.jpg', + packageImage: '/images/amiibo/0012_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 2, + }, + + { + no: 13, + title: 'マルス', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0013_A.jpg', + packageImage: '/images/amiibo/0013_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 14, + title: 'むらびと', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0014_A.jpg', + packageImage: '/images/amiibo/0014_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 15, + title: 'ヨッシー', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0015_A.jpg', + packageImage: '/images/amiibo/0015_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 16, + title: 'リトル・マック', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0016_A.jpg', + packageImage: '/images/amiibo/0016_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 17, + title: 'リンク', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0017_A.jpg', + packageImage: '/images/amiibo/0017_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 18, + title: 'ルイージ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2014.12.6(土)', + image: '/images/amiibo/0018_A.jpg', + packageImage: '/images/amiibo/0018_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 19, + title: 'アイク', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.1.22(木)', + image: '/images/amiibo/0019_A.jpg', + packageImage: '/images/amiibo/0019_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 20, + title: 'クッパ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.1.22(木)', + image: '/images/amiibo/0020_A.jpg', + packageImage: '/images/amiibo/0020_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 21, + title: 'シーク', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.1.22(木)', + image: '/images/amiibo/0021_A.jpg', + packageImage: '/images/amiibo/0021_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 22, + title: 'デデデ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.1.22(木)', + image: '/images/amiibo/0022_A.jpg', + packageImage: '/images/amiibo/0022_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 23, + title: 'トゥーンリンク', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.1.22(木)', + image: '/images/amiibo/0023_A.jpg', + packageImage: '/images/amiibo/0023_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 24, + title: 'メタナイト', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.1.22(木)', + image: '/images/amiibo/0024_A.jpg', + packageImage: '/images/amiibo/0024_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 25, + title: 'ルカリオ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.1.22(木)', + image: '/images/amiibo/0025_A.jpg', + packageImage: '/images/amiibo/0025_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 26, + title: 'ロゼッタ&チコ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.1.22(木)', + image: '/images/amiibo/0026_A.jpg', + packageImage: '/images/amiibo/0026_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 27, + title: 'シュルク', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.2.19(木)', + image: '/images/amiibo/0027_A.jpg', + packageImage: '/images/amiibo/0027_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 28, + title: 'ソニック', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.2.19(木)', + image: '/images/amiibo/0028_A.jpg', + packageImage: '/images/amiibo/0028_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 29, + title: 'ロックマン', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.2.19(木)', + image: '/images/amiibo/0029_A.jpg', + packageImage: '/images/amiibo/0029_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 30, + title: 'キノピオ', + series: 'スーパーマリオシリーズ', + release: '2015.3.12(木)', + image: '/images/amiibo/0030_A.jpg', + packageImage: '/images/amiibo/0030_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '키노피오', + usTitle: null, + count: 1, + }, + { + no: 31, + title: 'クッパ', + series: 'スーパーマリオシリーズ', + release: '2015.3.12(木)', + image: '/images/amiibo/0031_A.jpg', + packageImage: '/images/amiibo/0031_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 32, + title: 'ピーチ', + series: 'スーパーマリオシリーズ', + release: '2015.3.12(木)', + image: '/images/amiibo/0032_A.jpg', + packageImage: '/images/amiibo/0032_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 33, + title: 'マリオ', + series: 'スーパーマリオシリーズ', + release: '2015.3.12(木)', + image: '/images/amiibo/0033_A.jpg', + packageImage: '/images/amiibo/0033_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 34, + title: 'ヨッシー', + series: 'スーパーマリオシリーズ', + release: '2015.3.12(木)', + image: '/images/amiibo/0034_A.jpg', + packageImage: '/images/amiibo/0034_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 35, + title: 'ルイージ', + series: 'スーパーマリオシリーズ', + release: '2015.3.12(木)', + image: '/images/amiibo/0035_A.jpg', + packageImage: '/images/amiibo/0035_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 36, + title: 'ネス', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.4.29(水)', + image: '/images/amiibo/0036_A.jpg', + packageImage: '/images/amiibo/0036_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '네스', + usTitle: null, + count: 1, + }, + { + no: 37, + title: 'パックマン', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.4.29(水)', + image: '/images/amiibo/0037_A.jpg', + packageImage: '/images/amiibo/0037_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '팩맨', + usTitle: null, + count: 1, + }, + { + no: 38, + title: 'リザードン', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.4.29(水)', + image: '/images/amiibo/0038_A.jpg', + packageImage: '/images/amiibo/0038_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 39, + title: 'ルキナ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.4.29(水)', + image: '/images/amiibo/0039_A.jpg', + packageImage: '/images/amiibo/0039_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 40, + title: 'ルフレ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.4.29(水)', + image: '/images/amiibo/0040_A.jpg', + packageImage: '/images/amiibo/0040_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 41, + title: 'ワリオ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.4.29(水)', + image: '/images/amiibo/0041_A.jpg', + packageImage: '/images/amiibo/0041_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 42, + title: 'イカ', + series: 'スプラトゥーンシリーズ', + release: '2015.5.28(木)', + image: '/images/amiibo/0042_A.jpg', + packageImage: '/images/amiibo/0042_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 43, + title: 'ガール', + series: 'スプラトゥーンシリーズ', + release: '2015.5.28(木)', + image: '/images/amiibo/0043_A.jpg', + packageImage: '/images/amiibo/0043_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 44, + title: 'ゲッコウガ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.5.28(木)', + image: '/images/amiibo/0044_A.jpg', + packageImage: '/images/amiibo/0044_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 45, + title: 'プリン', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.5.28(木)', + image: '/images/amiibo/0045_A.jpg', + packageImage: '/images/amiibo/0045_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 46, + title: 'ボーイ', + series: 'スプラトゥーンシリーズ', + release: '2015.5.28(木)', + image: '/images/amiibo/0046_A.jpg', + packageImage: '/images/amiibo/0046_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 47, + title: 'ガノンドロフ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.6.11(木)', + image: '/images/amiibo/0047_A.jpg', + packageImage: '/images/amiibo/0047_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 48, + title: 'ゼロスーツサムス', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.6.11(木)', + image: '/images/amiibo/0048_A.jpg', + packageImage: '/images/amiibo/0048_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 49, + title: 'パルテナ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.6.11(木)', + image: '/images/amiibo/0049_A.jpg', + packageImage: '/images/amiibo/0049_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 50, + title: 'ブラックピット', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.6.11(木)', + image: '/images/amiibo/0050_A.jpg', + packageImage: '/images/amiibo/0050_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 51, + title: 'あみぐるみヨッシー ピンク', + series: 'ヨッシー ウールワールドシリーズ', + release: '2015.7.16(木)', + image: '/images/amiibo/0051_A.jpg', + packageImage: '/images/amiibo/0051_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 52, + title: 'あみぐるみヨッシー みずいろ', + series: 'ヨッシー ウールワールドシリーズ', + release: '2015.7.16(木)', + image: '/images/amiibo/0052_A.jpg', + packageImage: '/images/amiibo/0052_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: true, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 53, + title: 'あみぐるみヨッシー みどり', + series: 'ヨッシー ウールワールドシリーズ', + release: '2015.7.16(木)', + image: '/images/amiibo/0053_A.jpg', + packageImage: '/images/amiibo/0053_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + isHave: true, + isOpen: true, + count: 1, + }, + { + no: 54, + title: 'クッパJr.', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.7.30(木)', + image: '/images/amiibo/0054_A.jpg', + packageImage: '/images/amiibo/0054_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 55, + title: 'ドクターマリオ.', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.7.30(木)', + image: '/images/amiibo/0055_A.jpg', + packageImage: '/images/amiibo/0055_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 56, + title: 'ピクミン&オリマー.', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.7.30(木)', + image: '/images/amiibo/0056_A.jpg', + packageImage: '/images/amiibo/0056_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 57, + title: 'マリオ 【クラシックカラー】', + series: 'SUPER MARIO BROS. 30thシリーズ', + release: '2015.9.10(木)', + image: '/images/amiibo/0057_A.jpg', + packageImage: '/images/amiibo/0057_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 58, + title: 'マリオ 【モダンカラー】', + series: 'SUPER MARIO BROS. 30thシリーズ', + release: '2015.9.10(木)', + image: '/images/amiibo/0058_A.jpg', + packageImage: '/images/amiibo/0058_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 59, + title: 'Mii 格闘タイプ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.9.10(木)', + image: '/images/amiibo/0059_A.jpg', + packageImage: '/images/amiibo/0059_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 60, + title: 'Mii 剣術タイプ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.9.10(木)', + image: '/images/amiibo/0060_A.jpg', + packageImage: '/images/amiibo/0060_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 61, + title: 'Mii 射撃タイプ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.9.10(木)', + image: '/images/amiibo/0061_A.jpg', + packageImage: '/images/amiibo/0061_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 62, + title: 'ちびロボ', + series: 'ちびロボ!シリーズ', + release: '2015.10.8(木)', + image: '/images/amiibo/0062_A.jpg', + packageImage: '/images/amiibo/0062_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 63, + title: 'ダックハント', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.10.29(木)', + image: '/images/amiibo/0063_A.jpg', + packageImage: '/images/amiibo/0063_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 64, + title: 'Mr.ゲーム&ウォッチ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.10.29(木)', + image: '/images/amiibo/0064_A.jpg', + packageImage: '/images/amiibo/0064_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 65, + title: 'ミュウツー', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.10.29(木)', + image: '/images/amiibo/0065_A.jpg', + packageImage: '/images/amiibo/0065_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 66, + title: 'ロボット', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.10.29(木)', + image: '/images/amiibo/0066_A.jpg', + packageImage: '/images/amiibo/0066_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 67, + title: 'ファルコ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.11.5(木)', + image: '/images/amiibo/0067_A.jpg', + packageImage: '/images/amiibo/0067_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 68, + title: 'カイゾー', + series: 'どうぶつの森シリーズ', + release: '2015.11.21(土)', + image: '/images/amiibo/0068_A.jpg', + packageImage: '/images/amiibo/0068_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 69, + title: 'きぬよ', + series: 'どうぶつの森シリーズ', + release: '2015.11.21(土)', + image: '/images/amiibo/0069_A.jpg', + packageImage: '/images/amiibo/0069_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 70, + title: 'ケント', + series: 'どうぶつの森シリーズ', + release: '2015.11.21(土)', + image: '/images/amiibo/0070_A.jpg', + packageImage: '/images/amiibo/0070_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 71, + title: 'しずえ【冬服】', + series: 'どうぶつの森シリーズ', + release: '2015.11.21(土)', + image: '/images/amiibo/0071_A.jpg', + packageImage: '/images/amiibo/0071_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 72, + title: 'タクミ', + series: 'どうぶつの森シリーズ', + release: '2015.11.21(土)', + image: '/images/amiibo/0072_A.jpg', + packageImage: '/images/amiibo/0072_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 73, + title: 'たぬきち', + series: 'どうぶつの森シリーズ', + release: '2015.11.21(土)', + image: '/images/amiibo/0073_A.jpg', + packageImage: '/images/amiibo/0073_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 74, + title: 'とたけけ', + series: 'どうぶつの森シリーズ', + release: '2015.11.21(土)', + image: '/images/amiibo/0074_A.jpg', + packageImage: '/images/amiibo/0074_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 75, + title: 'リサ', + series: 'どうぶつの森シリーズ', + release: '2015.11.21(土)', + image: '/images/amiibo/0075_A.jpg', + packageImage: '/images/amiibo/0075_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 76, + title: 'あみぐるみヨッシー ビッグ', + series: 'ヨッシー ウールワールドシリーズ', + release: '2015.12.10(木)', + image: '/images/amiibo/0076_A.jpg', + packageImage: '/images/amiibo/0076_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 77, + title: 'シャンク', + series: 'どうぶつの森シリーズ', + release: '2015.12.17(木)', + image: '/images/amiibo/0077_A.jpg', + packageImage: '/images/amiibo/0077_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 78, + title: 'フーコ', + series: 'どうぶつの森シリーズ', + release: '2015.12.17(木)', + image: '/images/amiibo/0078_A.jpg', + packageImage: '/images/amiibo/0078_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 79, + title: 'フータ', + series: 'どうぶつの森シリーズ', + release: '2015.12.17(木)', + image: '/images/amiibo/0079_A.jpg', + packageImage: '/images/amiibo/0079_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 80, + title: 'マリオ【ゴールドVer.】', + series: 'スーパーマリオシリーズ', + release: '2015.12.17(木)', + image: '/images/amiibo/0080_A.jpg', + packageImage: '/images/amiibo/0080_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 81, + title: 'リセットさん', + series: 'どうぶつの森シリーズ', + release: '2015.12.17(木)', + image: '/images/amiibo/0081_A.jpg', + packageImage: '/images/amiibo/0081_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 82, + title: 'リュカ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2015.12.17(木)', + image: '/images/amiibo/0082_A.jpg', + packageImage: '/images/amiibo/0082_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 83, + title: 'ウルフリンク 【トワイライトプリンセス】', + series: 'ゼルダの伝説シリーズ', + release: '2016.3.10(木)', + image: '/images/amiibo/0083_A.jpg', + packageImage: '/images/amiibo/0083_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 84, + title: 'かっぺい', + series: 'どうぶつの森シリーズ', + release: '2016.3.24(木)', + image: '/images/amiibo/0084_A.jpg', + packageImage: '/images/amiibo/0084_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 85, + title: 'しずえ【夏服】', + series: 'どうぶつの森シリーズ', + release: '2016.3.24(木)', + image: '/images/amiibo/0085_A.jpg', + packageImage: '/images/amiibo/0085_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 86, + title: 'まめきち&つぶきち', + series: 'どうぶつの森シリーズ', + release: '2016.3.24(木)', + image: '/images/amiibo/0086_A.jpg', + packageImage: '/images/amiibo/0086_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 87, + title: 'みしらぬネコ', + series: 'どうぶつの森シリーズ', + release: '2016.3.24(木)', + image: '/images/amiibo/0087_A.jpg', + packageImage: '/images/amiibo/0087_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 88, + title: 'カービィ', + series: '星のカービィシリーズ', + release: '2016.4.28(木)', + image: '/images/amiibo/0088_A.jpg', + packageImage: '/images/amiibo/0088_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 89, + title: 'デデデ大王', + series: '星のカービィシリーズ', + release: '2016.4.28(木)', + image: '/images/amiibo/0089_A.jpg', + packageImage: '/images/amiibo/0089_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 90, + title: 'メタナイト', + series: '星のカービィシリーズ', + release: '2016.4.28(木)', + image: '/images/amiibo/0090_A.jpg', + packageImage: '/images/amiibo/0090_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 91, + title: 'リュウ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2016.4.28(木)', + image: '/images/amiibo/0091_A.jpg', + packageImage: '/images/amiibo/0091_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 92, + title: 'ロイ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2016.4.28(木)', + image: '/images/amiibo/0092_A.jpg', + packageImage: '/images/amiibo/0092_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 93, + title: 'ワドルディ', + series: '星のカービィシリーズ', + release: '2016.4.28(木)', + image: '/images/amiibo/0093_A.jpg', + packageImage: '/images/amiibo/0093_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 94, + title: 'ショベルナイト', + series: 'ショベルナイトシリーズ', + release: '2016.6.30(木)', + image: '/images/amiibo/0094_A.jpg', + packageImage: '/images/amiibo/0094_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 95, + title: 'アオリ', + series: 'スプラトゥーンシリーズ', + release: '2016.7.7(木)', + image: '/images/amiibo/0095_A.jpg', + packageImage: '/images/amiibo/0095_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 96, + title: 'イカ【オレンジ】', + series: 'スプラトゥーンシリーズ', + release: '2016.7.7(木)', + image: '/images/amiibo/0096_A.jpg', + packageImage: '/images/amiibo/0096_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 97, + title: 'ガール【ライムグリーン】', + series: 'スプラトゥーンシリーズ', + release: '2016.7.7(木)', + image: '/images/amiibo/0097_A.jpg', + packageImage: '/images/amiibo/0097_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 98, + title: 'ホタル', + series: 'スプラトゥーンシリーズ', + release: '2016.7.7(木)', + image: '/images/amiibo/0098_A.jpg', + packageImage: '/images/amiibo/0098_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 99, + title: 'ボーイ【パープル】', + series: 'スプラトゥーンシリーズ', + release: '2016.7.7(木)', + image: '/images/amiibo/0099_A.jpg', + packageImage: '/images/amiibo/0099_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 100, + title: '隻眼のリオレウス&ライダー(男の子)', + series: 'モンスターハンター ストーリーズシリーズ', + release: '2016.10.8(土)', + image: '/images/amiibo/0100_A.jpg', + packageImage: '/images/amiibo/0100_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 101, + title: '隻眼のリオレウス&ライダー(女の子)', + series: 'モンスターハンター ストーリーズシリーズ', + release: '2016.10.8(土)', + image: '/images/amiibo/0101_A.jpg', + packageImage: '/images/amiibo/0101_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 102, + title: 'ナビルー', + series: 'モンスターハンター ストーリーズシリーズ', + release: '2016.10.8(土)', + image: '/images/amiibo/0102_A.jpg', + packageImage: '/images/amiibo/0102_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 103, + title: 'テレサ', + series: 'スーパーマリオシリーズ', + release: '2016.10.20(木)', + image: '/images/amiibo/0103_A.jpg', + packageImage: '/images/amiibo/0103_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 3, + }, + { + no: 104, + title: 'ディディーコング', + series: 'スーパーマリオシリーズ', + release: '2016.10.20(木)', + image: '/images/amiibo/0104_A.jpg', + packageImage: '/images/amiibo/0104_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 105, + title: 'デイジー', + series: 'スーパーマリオシリーズ', + release: '2016.10.20(木)', + image: '/images/amiibo/0105_A.jpg', + packageImage: '/images/amiibo/0105_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 106, + title: 'ドンキーコング', + series: 'スーパーマリオシリーズ', + release: '2016.10.20(木)', + image: '/images/amiibo/0106_A.jpg', + packageImage: '/images/amiibo/0106_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 107, + title: 'ロゼッタ', + series: 'スーパーマリオシリーズ', + release: '2016.10.20(木)', + image: '/images/amiibo/0107_A.jpg', + packageImage: '/images/amiibo/0107_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 108, + title: 'ワリオ', + series: 'スーパーマリオシリーズ', + release: '2016.10.20(木)', + image: '/images/amiibo/0108_A.jpg', + packageImage: '/images/amiibo/0108_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 109, + title: 'ワルイージ', + series: 'スーパーマリオシリーズ', + release: '2016.10.20(木)', + image: '/images/amiibo/0109_A.jpg', + packageImage: '/images/amiibo/0109_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '와루이지', + usTitle: null, + count: 1, + }, + { + no: 110, + title: 'ゼルダ【風のタクト】', + series: 'ゼルダの伝説シリーズ', + release: '2016.12.1(木)', + image: '/images/amiibo/0110_A.jpg', + packageImage: '/images/amiibo/0110_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 111, + title: 'トゥーンリンク【風のタクト】', + series: 'ゼルダの伝説シリーズ', + release: '2016.12.1(木)', + image: '/images/amiibo/0111_A.jpg', + packageImage: '/images/amiibo/0111_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 112, + title: 'リンク【時のオカリナ】', + series: 'ゼルダの伝説シリーズ', + release: '2016.12.1(木)', + image: '/images/amiibo/0112_A.jpg', + packageImage: '/images/amiibo/0112_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 113, + title: 'リンク【ゼルダの伝説】', + series: 'ゼルダの伝説シリーズ', + release: '2016.12.1(木)', + image: '/images/amiibo/0113_A.jpg', + packageImage: '/images/amiibo/0113_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 114, + title: 'クルペッコ&ダン先輩', + series: 'モンスターハンター ストーリーズシリーズ', + release: '2016.12.8(木)', + image: '/images/amiibo/0114_A.jpg', + packageImage: '/images/amiibo/0114_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 115, + title: 'ベリオロス(ヒョウガ)&アユリア', + series: 'モンスターハンター ストーリーズシリーズ', + release: '2016.12.8(木)', + image: '/images/amiibo/0115_A.jpg', + packageImage: '/images/amiibo/0115_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 116, + title: 'リオレイア&シュヴァル', + series: 'モンスターハンター ストーリーズシリーズ', + release: '2016.12.8(木)', + image: '/images/amiibo/0116_A.jpg', + packageImage: '/images/amiibo/0116_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 117, + title: 'あみぐるみポチ', + series: 'ヨッシー ウールワールドシリーズ', + release: '2017.1.19(木)', + image: '/images/amiibo/0117_A.jpg', + packageImage: '/images/amiibo/0117_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 118, + title: 'キュービィ', + series: 'ハコボーイ!シリーズ', + release: '2017.2.2(木)', + image: '/images/amiibo/0118_A.jpg', + packageImage: '/images/amiibo/0118_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 119, + title: 'ガーディアン【ブレス オブ ザ ワイルド】', + series: 'ゼルダの伝説シリーズ', + release: '2017.3.3(金)', + image: '/images/amiibo/0119_A.jpg', + packageImage: '/images/amiibo/0119_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 120, + title: 'ゼルダ【ブレス オブ ザ ワイルド】', + series: 'ゼルダの伝説シリーズ', + release: '2017.3.3(金)', + image: '/images/amiibo/0120_A.jpg', + packageImage: '/images/amiibo/0120_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 121, + title: 'ボコブリン【ブレス オブ ザ ワイルド】', + series: 'ゼルダの伝説シリーズ', + release: '2017.3.3(金)', + image: '/images/amiibo/0121_A.jpg', + packageImage: '/images/amiibo/0121_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 122, + title: 'リンク(騎乗)【ブレス オブ ザ ワイルド】', + series: 'ゼルダの伝説シリーズ', + release: '2017.3.3(金)', + image: '/images/amiibo/0122_A.jpg', + packageImage: '/images/amiibo/0122_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 123, + title: 'リンク(弓)【ブレス オブ ザ ワイルド】', + series: 'ゼルダの伝説シリーズ', + release: '2017.3.3(金)', + image: '/images/amiibo/0123_A.jpg', + packageImage: '/images/amiibo/0123_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 124, + title: 'アルム', + series: 'ファイアーエムブレムシリーズ', + release: '22017.4.20(木)', + image: '/images/amiibo/0124_A.jpg', + packageImage: '/images/amiibo/0124_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 125, + title: 'セリカ', + series: 'ファイアーエムブレムシリーズ', + release: '22017.4.20(木)', + image: '/images/amiibo/0125_A.jpg', + packageImage: '/images/amiibo/0125_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 126, + title: 'リンク【スカイウォードソード】', + series: 'ゼルダの伝説シリーズ', + release: '2017.6.22(木)', + image: '/images/amiibo/0126_A.jpg', + packageImage: '/images/amiibo/0126_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 127, + title: 'リンク【トワイライトプリンセス】', + series: 'ゼルダの伝説シリーズ', + release: '2017.6.22(木)', + image: '/images/amiibo/0127_A.jpg', + packageImage: '/images/amiibo/0127_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 128, + title: 'リンク【ムジュラの仮面】', + series: 'ゼルダの伝説シリーズ', + release: '2017.6.22(木)', + image: '/images/amiibo/0128_A.jpg', + packageImage: '/images/amiibo/0128_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 129, + title: 'ピクミン', + series: 'ピクミンシリーズ', + release: '2017.7.13(木)', + image: '/images/amiibo/0129_A.jpg', + packageImage: '/images/amiibo/0129_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 130, + title: 'イカ【ネオンパープル】', + series: 'スプラトゥーンシリーズ', + release: '2017.7.21(金)', + image: '/images/amiibo/0130_A.jpg', + packageImage: '/images/amiibo/0130_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 131, + title: 'カムイ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2017.7.21(金)', + image: '/images/amiibo/0131_A.jpg', + packageImage: '/images/amiibo/0131_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 132, + title: 'カムイ【2Pファイター】', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2017.7.21(金)', + image: '/images/amiibo/0132_A.jpg', + packageImage: '/images/amiibo/0132_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 133, + title: 'ガール【ネオンピンク】', + series: 'スプラトゥーンシリーズ', + release: '2017.7.21(金)', + image: '/images/amiibo/0133_A.jpg', + packageImage: '/images/amiibo/0133_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 134, + title: 'クラウド', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2017.7.21(金)', + image: '/images/amiibo/0134_A.jpg', + packageImage: '/images/amiibo/0134_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '클라우드', + usTitle: null, + count: 1, + }, + { + no: 135, + title: 'クラウド【2Pファイター】', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2017.7.21(金)', + image: '/images/amiibo/0135_A.jpg', + packageImage: '/images/amiibo/0135_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '클라우드 [2P 파이터]', + usTitle: null, + count: 1, + }, + { + no: 136, + title: 'ベヨネッタ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2017.7.21(金)', + image: '/images/amiibo/0136_A.jpg', + packageImage: '/images/amiibo/0136_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '베요네타', + usTitle: null, + count: 1, + }, + { + no: 137, + title: 'ベヨネッタ【2Pファイター】', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2017.7.21(金)', + image: '/images/amiibo/0137_A.jpg', + packageImage: '/images/amiibo/0137_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '베요네타 [2P 파이터]', + usTitle: null, + count: 1, + }, + { + no: 138, + title: 'ボーイ【ネオングリーン】', + series: 'スプラトゥーンシリーズ', + release: '2017.7.21(金)', + image: '/images/amiibo/0138_A.jpg', + packageImage: '/images/amiibo/0138_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 139, + title: 'サムス・アラン', + series: 'メトロイドシリーズ', + release: '2017.9.15(金)', + image: '/images/amiibo/0139_A.jpg', + packageImage: '/images/amiibo/0139_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 140, + title: 'メトロイド', + series: 'メトロイドシリーズ', + release: '2017.9.15(金)', + image: '/images/amiibo/0140_A.jpg', + packageImage: '/images/amiibo/0140_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 141, + title: 'クロム', + series: 'ファイアーエムブレムシリーズ', + release: '2017.9.28(木)', + image: '/images/amiibo/0141_A.jpg', + packageImage: '/images/amiibo/0141_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '크롬', + usTitle: null, + count: 1, + }, + { + no: 142, + title: 'チキ', + series: 'ファイアーエムブレムシリーズ', + release: '2017.9.28(木)', + image: '/images/amiibo/0142_A.jpg', + packageImage: '/images/amiibo/0142_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '치키', + usTitle: null, + count: 1, + }, + { + no: 143, + title: 'クリボー', + series: 'スーパーマリオシリーズ', + release: '2017.10.5(木)', + image: '/images/amiibo/0143_A.jpg', + packageImage: '/images/amiibo/0143_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: '굼바', + usTitle: null, + count: 1, + }, + { + no: 144, + title: 'ノコノコ', + series: 'スーパーマリオシリーズ', + release: '2017.10.5(木)', + image: '/images/amiibo/0144_A.jpg', + packageImage: '/images/amiibo/0144_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: '엉금엉금', + usTitle: null, + count: 1, + }, + { + no: 145, + title: 'クッパ【ウェディングスタイル】', + series: 'スーパーマリオシリーズ', + release: '2017.10.27(金)', + image: '/images/amiibo/0145_A.jpg', + packageImage: '/images/amiibo/0145_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '쿠파 [웨딩 스타일]', + usTitle: null, + count: 1, + }, + { + no: 146, + title: 'ピーチ【ウェディングスタイル】', + series: 'スーパーマリオシリーズ', + release: '2017.10.27(金)', + image: '/images/amiibo/0146_A.jpg', + packageImage: '/images/amiibo/0146_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '피치공주 [웨딩 스타일]', + usTitle: null, + count: 1, + }, + { + no: 147, + title: 'マリオ【ウェディングスタイル】', + series: 'スーパーマリオシリーズ', + release: '2017.10.27(金)', + image: '/images/amiibo/0147_A.jpg', + packageImage: '/images/amiibo/0147_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '마리오 [웨딩 스타일]', + usTitle: null, + count: 1, + }, + { + no: 148, + title: 'ウルボザ【ブレス オブ ザ ワイルド】', + series: 'ゼルダの伝説シリーズ', + release: '2017.11.10(金)', + image: '/images/amiibo/0148_A.jpg', + packageImage: '/images/amiibo/0148_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '우르보사', + usTitle: null, + count: 1, + }, + { + no: 149, + title: 'ダルケル【ブレス オブ ザ ワイルド】', + series: 'ゼルダの伝説シリーズ', + release: '2017.11.10(金)', + image: '/images/amiibo/0149_A.jpg', + packageImage: '/images/amiibo/0149_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '다르케르', + usTitle: null, + count: 1, + }, + { + no: 150, + title: 'ミファー【ブレス オブ ザ ワイルド】', + series: 'ゼルダの伝説シリーズ', + release: '2017.11.10(金)', + image: '/images/amiibo/0150_A.jpg', + packageImage: '/images/amiibo/0150_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '미파', + usTitle: null, + count: 1, + }, + { + no: 151, + title: 'リーバル【ブレス オブ ザ ワイルド】', + series: 'ゼルダの伝説シリーズ', + release: '2017.11.10(金)', + image: '/images/amiibo/0151_A.jpg', + packageImage: '/images/amiibo/0151_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '리발', + usTitle: null, + count: 1, + }, + { + no: 152, + title: '名探偵ピカチュウ', + series: 'ポケモンシリーズ', + release: '2018.3.23(金)', + image: '/images/amiibo/0152_A.jpg', + packageImage: '/images/amiibo/0152_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 153, + title: 'イイダ', + series: 'スプラトゥーンシリーズ', + release: '2018.7.13(金)', + image: '/images/amiibo/0153_A.jpg', + packageImage: '/images/amiibo/0153_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 154, + title: 'ヒメ', + series: 'スプラトゥーンシリーズ', + release: '2018.7.13(金)', + image: '/images/amiibo/0154_A.jpg', + packageImage: '/images/amiibo/0154_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 155, + title: 'ロックマン', + series: 'ロックマンシリーズ', + release: '2018.10.4(木)', + image: '/images/amiibo/0155_A.jpg', + packageImage: '/images/amiibo/0155_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 156, + title: '太陽の戦士 ソラール', + series: 'DARK SOULSシリーズ', + release: '2018.10.18(木)', + image: '/images/amiibo/0156_A.jpg', + packageImage: '/images/amiibo/0156_B.jpg', + status: { + isHave: false, + isOpen: false, + isDamaged: false, + }, + koTitle: '아스토라의 솔라', + usTitle: null, + count: 1, + }, + { + no: 157, + title: 'タコ', + series: 'スプラトゥーンシリーズ', + release: '2018.11.9(金)', + image: '/images/amiibo/0157_A.jpg', + packageImage: '/images/amiibo/0157_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: 'Octoling Octopus', + usTitle: null, + count: 1, + }, + { + no: 158, + title: 'タコガール', + series: 'スプラトゥーンシリーズ', + release: '2018.11.9(金)', + image: '/images/amiibo/0158_A.jpg', + packageImage: '/images/amiibo/0158_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: 'Octoling Girl', + usTitle: null, + count: 1, + }, + { + no: 159, + title: 'タコボーイ', + series: 'スプラトゥーンシリーズ', + release: '2018.11.9(金)', + image: '/images/amiibo/0159_A.jpg', + packageImage: '/images/amiibo/0159_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: 'Octoling Boy', + usTitle: null, + count: 1, + }, + { + no: 160, + title: 'インクリング', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2018.12.7(金)', + image: '/images/amiibo/0160_A.jpg', + packageImage: '/images/amiibo/0160_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '걸', + usTitle: null, + count: 1, + }, + { + no: 161, + title: 'ウルフ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2018.12.7(金)', + image: '/images/amiibo/0161_A.jpg', + packageImage: '/images/amiibo/0161_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '울프', + usTitle: null, + count: 1, + }, + { + no: 162, + title: 'リドリー', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2018.12.7(金)', + image: '/images/amiibo/0162_A.jpg', + packageImage: '/images/amiibo/0162_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '리들리', + usTitle: null, + count: 1, + }, + { + no: 163, + title: 'アイスクライマー', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.2.15(金)', + image: '/images/amiibo/0163_A.jpg', + packageImage: '/images/amiibo/0163_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '얼음 타기', + usTitle: null, + count: 1, + }, + { + no: 164, + title: 'キングクルール', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.2.15(金)', + image: '/images/amiibo/0164_A.jpg', + packageImage: '/images/amiibo/0164_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '킹크루루', + usTitle: null, + count: 1, + }, + { + no: 165, + title: 'パックンフラワー', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.2.15(金)', + image: '/images/amiibo/0165_A.jpg', + packageImage: '/images/amiibo/0165_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '뻐끔플라워', + usTitle: null, + count: 1, + }, + { + no: 166, + title: 'ケン', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.2.15(金)', + image: '/images/amiibo/0166_A.jpg', + packageImage: '/images/amiibo/0166_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: 'Ken', + usTitle: null, + count: 1, + }, + { + no: 167, + title: 'こどもリンク', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.4.12(金)', + image: '/images/amiibo/0167_A.jpg', + packageImage: '/images/amiibo/0167_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '소년 링크', + usTitle: null, + count: 1, + }, + { + no: 168, + title: 'デイジー', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.4.12(金)', + image: '/images/amiibo/0168_A.jpg', + packageImage: '/images/amiibo/0168_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '데이지', + usTitle: null, + count: 1, + }, + { + no: 169, + title: 'しずえ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.7.19(金)', + image: '/images/amiibo/0169_A.jpg', + packageImage: '/images/amiibo/0169_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '여울', + usTitle: null, + count: 1, + }, + { + no: 170, + title: 'ピチュー', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.7.19(金)', + image: '/images/amiibo/0170_A.jpg', + packageImage: '/images/amiibo/0170_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '피츄', + usTitle: null, + count: 2, + }, + { + no: 171, + title: 'ポケモントレーナー', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.7.19(金)', + image: '/images/amiibo/0171_A.jpg', + packageImage: '/images/amiibo/0171_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '포켓몬 트레이너', + usTitle: null, + count: 1, + }, + { + no: 172, + title: 'スネーク', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.9.20(金)', + image: '/images/amiibo/0172_A.jpg', + packageImage: '/images/amiibo/0172_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '스네이크', + usTitle: null, + count: 1, + }, + { + no: 173, + title: 'ゼニガメ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.9.20(金)', + image: '/images/amiibo/0173_A.jpg', + packageImage: '/images/amiibo/0173_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '꼬부기', + usTitle: null, + count: 1, + }, + { + no: 174, + title: 'フシギソウ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.9.20(金)', + image: '/images/amiibo/0174_A.jpg', + packageImage: '/images/amiibo/0174_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '이상해풀', + usTitle: null, + count: 1, + }, + { + no: 175, + title: 'リンク【夢をみる島】', + series: 'ゼルダの伝説シリーズ', + release: '2019.9.20(金)', + image: '/images/amiibo/0175_A.jpg', + packageImage: '/images/amiibo/0175_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '링크 [꿈꾸는 섬]', + usTitle: null, + count: 1, + }, + { + no: 176, + title: 'ガオガエン', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.11.8(金)', + image: '/images/amiibo/0176_A.jpg', + packageImage: '/images/amiibo/0176_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '어흥염', + usTitle: null, + count: 1, + }, + { + no: 177, + title: 'クロム', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.11.8(金)', + image: '/images/amiibo/0177_A.jpg', + packageImage: '/images/amiibo/0177_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '크롬', + usTitle: null, + count: 1, + }, + { + no: 178, + title: 'シモン', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.11.8(金)', + image: '/images/amiibo/0178_A.jpg', + packageImage: '/images/amiibo/0178_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '사이먼', + usTitle: null, + count: 1, + }, + { + no: 179, + title: 'ダークサムス', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2020.1.17(金)', + image: '/images/amiibo/0179_A.jpg', + packageImage: '/images/amiibo/0179_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '다크 사무스', + usTitle: null, + count: 1, + }, + { + no: 180, + title: 'リヒター', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2020.1.17(金)', + image: '/images/amiibo/0180_A.jpg', + packageImage: '/images/amiibo/0180_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '릭터', + usTitle: null, + count: 1, + }, + { + no: 181, + title: 'ジョーカー', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2020.9.25(金)', + image: '/images/amiibo/0181_A.jpg', + packageImage: '/images/amiibo/0181_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '조커', + usTitle: null, + count: 2, + }, + { + no: 182, + title: '勇者', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2020.9.25(金)', + image: '/images/amiibo/0182_A.jpg', + packageImage: '/images/amiibo/0182_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '용사', + usTitle: null, + count: 2, + }, + { + no: 183, + title: 'ネコピーチ', + series: 'スーパーマリオシリーズ', + release: '2021.2.12(金)', + image: '/images/amiibo/0183_A.jpg', + packageImage: '/images/amiibo/0183_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '고양이피치', + usTitle: null, + count: 1, + }, + { + no: 184, + title: 'ネコマリオ', + series: 'スーパーマリオシリーズ', + release: '2021.2.12(金)', + image: '/images/amiibo/0184_A.jpg', + packageImage: '/images/amiibo/0184_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '고양이마리오', + usTitle: null, + count: 1, + }, + { + no: 185, + title: 'オトモアイルー', + series: 'モンスターハンターシリーズ', + release: '2021.3.26(金)', + image: '/images/amiibo/0185_A.jpg', + packageImage: '/images/amiibo/0185_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '동반자 아이루', + usTitle: null, + count: 2, + }, + { + no: 186, + title: 'オトモガルク', + series: 'モンスターハンターシリーズ', + release: '2021.3.26(金)', + image: '/images/amiibo/0186_A.jpg', + packageImage: '/images/amiibo/0186_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '동반자 가루크', + usTitle: null, + count: 2, + }, + { + no: 187, + title: 'テリー', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2021.3.26(金)', + image: '/images/amiibo/0187_A.jpg', + packageImage: '/images/amiibo/0187_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '테리', + usTitle: null, + count: 1, + }, + { + no: 188, + title: 'バンジョー&カズーイ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2021.3.26(金)', + image: '/images/amiibo/0188_A.jpg', + packageImage: '/images/amiibo/0188_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '반조 & 카주이', + usTitle: null, + count: 1, + }, + { + no: 189, + title: 'ベレト', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2021.3.26(金)', + image: '/images/amiibo/0189_A.jpg', + packageImage: '/images/amiibo/0189_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '벨레트', + usTitle: null, + count: 1, + }, + { + no: 190, + title: 'マガイマガド', + series: 'モンスターハンターシリーズ', + release: '2021.3.26(金)', + image: '/images/amiibo/0190_A.jpg', + packageImage: '/images/amiibo/0190_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '마가이마가도', + usTitle: null, + count: 2, + }, + { + no: 191, + title: 'エナ', + series: 'モンスターハンター ストーリーズシリーズ', + release: '2021.7.9(金)', + image: '/images/amiibo/0191_A.jpg', + packageImage: '/images/amiibo/0191_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '에나', + usTitle: null, + count: 1, + }, + { + no: 192, + title: 'ツキノ', + series: 'モンスターハンター ストーリーズシリーズ', + release: '2021.7.9(金)', + image: '/images/amiibo/0192_A.jpg', + packageImage: '/images/amiibo/0192_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '츠키노', + usTitle: null, + count: 1, + }, + { + no: 193, + title: '破滅レウス', + series: 'モンスターハンター ストーリーズシリーズ', + release: '2021.7.9(金)', + image: '/images/amiibo/0193_A.jpg', + packageImage: '/images/amiibo/0193_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '파멸의레우스', + usTitle: null, + count: 1, + }, + { + no: 194, + title: 'ゼルダ&ロフトバード【スカイウォードソード】', + series: 'ゼルダの伝説シリーズ', + release: '2021.7.16(金)', + image: '/images/amiibo/0194_A.jpg', + packageImage: '/images/amiibo/0194_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '젤다&로프트버드 [젤다의 전설 스카이워드 소드 HD]', + usTitle: null, + count: 1, + }, + { + no: 195, + title: 'E.M.M.I.【メトロイド ドレッド】', + series: 'メトロイドシリーズ', + release: '2021.10.8(金)', + image: '/images/amiibo/0195_A.jpg', + packageImage: '/images/amiibo/0195_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: 'E.M.M.I', + usTitle: null, + count: 1, + }, + { + no: 196, + title: 'サムス【メトロイド ドレッド】', + series: 'メトロイドシリーズ', + release: '2021.10.8(金)', + image: '/images/amiibo/0196_A.jpg', + packageImage: '/images/amiibo/0196_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '사무스', + usTitle: null, + count: 1, + }, + { + no: 197, + title: 'ミェンミェン', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2022.4.29(金)', + image: '/images/amiibo/0197_A.jpg', + packageImage: '/images/amiibo/0197_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '미엔미엔', + usTitle: null, + count: 1, + }, + { + no: 198, + title: 'オトモアイルー【メルゼネコ】', + series: 'モンスターハンターシリーズ', + release: '2022.6.30(木)', + image: '/images/amiibo/0198_A.jpg', + packageImage: '/images/amiibo/0198_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 199, + title: 'オトモガルク【メルゼガル】', + series: 'モンスターハンターシリーズ', + release: '2022.6.30(木)', + image: '/images/amiibo/0199_A.jpg', + packageImage: '/images/amiibo/0199_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 200, + title: 'メル・ゼナ', + series: 'モンスターハンターシリーズ', + release: '2022.6.30(木)', + image: '/images/amiibo/0200_A.jpg', + packageImage: '/images/amiibo/0200_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 201, + title: 'アレックス', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2022.9.9(金)', + image: '/images/amiibo/0201_A.jpg', + packageImage: '/images/amiibo/0201_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '알렉스', + usTitle: null, + count: 1, + }, + { + no: 202, + title: 'スティーブ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2022.9.9(金)', + image: '/images/amiibo/0202_A.jpg', + packageImage: '/images/amiibo/0202_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '스티브', + usTitle: null, + count: 1, + }, + { + no: 203, + title: 'インクリング【イエロー】', + series: 'スプラトゥーンシリーズ', + release: '2022.11.11(金)', + image: '/images/amiibo/0203_A.jpg', + packageImage: '/images/amiibo/0203_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '잉클링[옐로]', + usTitle: null, + count: 1, + }, + { + no: 204, + title: 'オクトリング【ブルー】', + series: 'スプラトゥーンシリーズ', + release: '2022.11.11(金)', + image: '/images/amiibo/0204_A.jpg', + packageImage: '/images/amiibo/0204_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '옥토링[블루]', + usTitle: null, + count: 1, + }, + { + no: 205, + title: 'コジャケ', + series: 'スプラトゥーンシリーズ', + release: '2022.11.11(金)', + image: '/images/amiibo/0205_A.jpg', + packageImage: '/images/amiibo/0205_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '꼬마연어', + usTitle: null, + count: 1, + }, + { + no: 206, + title: 'カズヤ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2023.1.13(金)', + image: '/images/amiibo/0206_A.jpg', + packageImage: '/images/amiibo/0206_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '카즈야', + usTitle: null, + count: 1, + }, + { + no: 207, + title: 'セフィロス', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2023.1.13(金)', + image: '/images/amiibo/0207_A.jpg', + packageImage: '/images/amiibo/0207_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: '세피로스', + usTitle: null, + count: 2, + }, + { + no: 208, + title: 'リンク【ティアーズ オブ ザ キングダム】', + series: 'ゼルダの伝説シリーズ', + release: '2023.5.12(金)', + image: '/images/amiibo/0208_A.jpg', + packageImage: '/images/amiibo/0208_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 209, + title: 'Loot Goblin', + series: 'others', + release: '2018.11.30(金)', + image: '/images/amiibo/0209_A.jpg', + packageImage: null, + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 210, + title: 'Shovel Knight Gold Edition', + series: 'others', + release: '2019.12.10(木)', + image: '/images/amiibo/0210_A.jpg', + packageImage: null, + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 211, + title: 'King Knight', + series: 'others', + release: '2019.12.31(火)', + image: '/images/amiibo/0211_A.jpg', + packageImage: null, + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 212, + title: 'Specter Knight', + series: 'others', + release: '2019.12.31(火)', + image: '/images/amiibo/0212_A.jpg', + packageImage: null, + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 213, + title: 'Specter Knight', + series: 'others', + release: '2019.12.31(火)', + image: '/images/amiibo/0213_A.jpg', + packageImage: null, + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 214, + title: 'ホムラ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2019.12.31(火)', + image: '/images/amiibo/0214_A.jpg', + packageImage: '/images/amiibo/0214_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: "호무라", + usTitle: null, + count: 6, + }, + { + no: 215, + title: 'ヒカリ', + series: '大乱闘スマッシュブラザーズシリーズ', + release: '2024.1.19(金)', + image: '/images/amiibo/0215_A.jpg', + packageImage: '/images/amiibo/0215_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: "히카리", + usTitle: null, + count: 6, + }, + { + no: 216, + title: 'ゼルダ【ティアーズ オブ ザ キングダム】', + series: 'ゼルダの伝説シリーズ', + release: '2023.11.3(金)', + image: '/images/amiibo/0216_A.jpg', + packageImage: '/images/amiibo/0216_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 217, + title: 'ガノンドロフ【ティアーズ オブ ザ キングダム】', + series: 'ゼルダの伝説シリーズ', + release: '2023.11.3(金)', + image: '/images/amiibo/0217_A.jpg', + packageImage: '/images/amiibo/0217_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 218, + title: 'マンタロー', + series: 'スプラトゥーンシリーズ', + release: '2023.11.17(金)', + image: '/images/amiibo/0218_A.jpg', + packageImage: '/images/amiibo/0218_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 219, + title: 'フウカ', + series: 'スプラトゥーンシリーズ', + release: '2023.11.17(金)', + image: '/images/amiibo/0219_A.jpg', + packageImage: '/images/amiibo/0219_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 220, + title: 'ウツホ', + series: 'スプラトゥーンシリーズ', + release: '2023.11.17(金)', + image: '/images/amiibo/0220_A.jpg', + packageImage: '/images/amiibo/0220_B.jpg', + status: { + isHave: true, + isOpen: false, + isDamaged: false, + }, + koTitle: null, + usTitle: null, + count: 1, + }, + { + no: 221, + title: 'ミオ', + series: 'ゼノブレイドシリーズ', + release: '2024.1.19(金)', + image: '/images/amiibo/0221_A.jpg', + packageImage: '/images/amiibo/0221_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '미오', + usTitle: null, + count: 1, + }, + { + no: 222, + title: 'ノア', + series: 'ゼノブレイドシリーズ', + release: '2024.1.19(金)', + image: '/images/amiibo/0222_A.jpg', + packageImage: '/images/amiibo/0222_B.jpg', + status: { + isHave: true, + isOpen: true, + isDamaged: false, + }, + koTitle: '노아', + usTitle: null, + count: 1, + }, +]; diff --git a/docs/convention.md b/docs/convention.md new file mode 100644 index 0000000..9e8f252 --- /dev/null +++ b/docs/convention.md @@ -0,0 +1,22 @@ +# 코딩 컨벤션 + +## 언어 + +- 사용자 대면 문서·UI 텍스트: 프로젝트 기본은 **한국어**(필요 시 일본어 병기) +- Git 커밋 메시지·`docs/update.md` 작업 이력: `.ai-rules.md`에 따름(커밋 제목 `vYYYY.MM.DD-번호` 형식 등) + +## 코드 주석 + +- JavaScript: **JSDoc** 형식 사용(프로젝트 `.ai-rules.md` 규칙) + +## 네이밍 가이드 + +| 구분 | 권장 | +|------|------| +| DOM 조작용 변수 | `camelCase` (`amiiboList`, `selectedFilters`) | +| 상수 맵 | `seriesNameMap` 등 의미 있는 이름 | +| HTML `id` | 역할이 드러나게 (`amiibo-list`, `resetFilter`) | + +## 데이터 + +- 아미보 마스터 데이터는 `db/amiibo.db.js` 단일 소스로 유지하고, 필드 추가 시 본 문서의 `spec.md` 스키마 표를 갱신할 것 diff --git a/docs/history.md b/docs/history.md new file mode 100644 index 0000000..4cc2658 --- /dev/null +++ b/docs/history.md @@ -0,0 +1,11 @@ +# 의사결정 이력 + +## 정적 단일 페이지 + 모듈 데이터 + +- **배경**: 개인 보유 목록을 빠르게 열람·필터링할 목적으로 서버 비용·배포 단순성을 우선함 +- **처리 결과**: `index.html`이 `db/amiibo.db.js`를 ES 모듈로 import하여 렌더링하는 구조로 정리됨. 별도 API 없이 동작한다 + +## 시리즈명 일본어 키 + 한국어 매핑 + +- **배경**: 원본 시리즈명이 일본어로 DB에 저장되어 있어, 한국어 UI에서 읽기 쉽게 하기 위해 `seriesNameMap`으로 표시만 변환함 +- **처리 결과**: 필터 값은 일본어 `series` 문자열을 그대로 사용하고, 라벨만 한국어로 바꿔 표시한다 diff --git a/docs/map.md b/docs/map.md new file mode 100644 index 0000000..76c88d4 --- /dev/null +++ b/docs/map.md @@ -0,0 +1,33 @@ +# 파일–화면 매핑 가이드 + +## URL·페이지 + +| 브라우저 경로 | 파일 | 설명 | +|---------------|------|------| +| `/index.html` 또는 `/` (서버 루트 기준) | `index.html` | 유일한 메인 화면 — 좌측 필터, 우측 아미보 카드 그리드 | + +## `index.html` 구성 요소 + +| 영역 | DOM / 역할 | +|------|------------| +| 제목 링크 | `h1 > a` → `./index.html` 새로고침·홈 | +| 언어 | `#btn-ko`, `#btn-ja` — 한국어/日本語 전환 | +| 시리즈 필터 | `#series-options` 안에 동적 체크박스 | +| 상태 필터 | `#status-options` 안에 동적 체크박스 | +| 필터 초기화 | `#resetFilter` | +| 무작위 표시 | `#shuffle` — DB 전체 셔플(필터와 별개 동작) | +| 건수 | `#amiibo-count` — 필터 결과 개수 | +| 목록 | `#amiibo-list` — 카드(`li`) 단위로 이미지·제목·시리즈·상태 표시 | + +## 스크립트·데이터 연결 + +| 파일 | 역할 | +|------|------| +| `index.html` 하단 ` + + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..b1c4dd9 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1330 @@ +{ + "name": "mygoods", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "@tailwindcss/cli": "^4.1.4", + "tailwindcss": "^4.1.4" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "hasInstallScript": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@tailwindcss/cli": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/cli/-/cli-4.1.4.tgz", + "integrity": "sha512-gP05Qihh+cZ2FqD5fa0WJXx3KEk2YWUYv/RBKAyiOg0V4vYVDr/xlLc0sacpnVEXM45BVUR9U2hsESufYs6YTA==", + "dependencies": { + "@parcel/watcher": "^2.5.1", + "@tailwindcss/node": "4.1.4", + "@tailwindcss/oxide": "4.1.4", + "enhanced-resolve": "^5.18.1", + "mri": "^1.2.0", + "picocolors": "^1.1.1", + "tailwindcss": "4.1.4" + }, + "bin": { + "tailwindcss": "dist/index.mjs" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.4.tgz", + "integrity": "sha512-MT5118zaiO6x6hNA04OWInuAiP1YISXql8Z+/Y8iisV5nuhM8VXlyhRuqc2PEviPszcXI66W44bCIk500Oolhw==", + "dependencies": { + "enhanced-resolve": "^5.18.1", + "jiti": "^2.4.2", + "lightningcss": "1.29.2", + "tailwindcss": "4.1.4" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.4.tgz", + "integrity": "sha512-p5wOpXyOJx7mKh5MXh5oKk+kqcz8T+bA3z/5VWWeQwFrmuBItGwz8Y2CHk/sJ+dNb9B0nYFfn0rj/cKHZyjahQ==", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.4", + "@tailwindcss/oxide-darwin-arm64": "4.1.4", + "@tailwindcss/oxide-darwin-x64": "4.1.4", + "@tailwindcss/oxide-freebsd-x64": "4.1.4", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.4", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.4", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.4", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.4", + "@tailwindcss/oxide-linux-x64-musl": "4.1.4", + "@tailwindcss/oxide-wasm32-wasi": "4.1.4", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.4", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.4" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.4.tgz", + "integrity": "sha512-xMMAe/SaCN/vHfQYui3fqaBDEXMu22BVwQ33veLc8ep+DNy7CWN52L+TTG9y1K397w9nkzv+Mw+mZWISiqhmlA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.4.tgz", + "integrity": "sha512-JGRj0SYFuDuAGilWFBlshcexev2hOKfNkoX+0QTksKYq2zgF9VY/vVMq9m8IObYnLna0Xlg+ytCi2FN2rOL0Sg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.4.tgz", + "integrity": "sha512-sdDeLNvs3cYeWsEJ4H1DvjOzaGios4QbBTNLVLVs0XQ0V95bffT3+scptzYGPMjm7xv4+qMhCDrkHwhnUySEzA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.4.tgz", + "integrity": "sha512-VHxAqxqdghM83HslPhRsNhHo91McsxRJaEnShJOMu8mHmEj9Ig7ToHJtDukkuLWLzLboh2XSjq/0zO6wgvykNA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.4.tgz", + "integrity": "sha512-OTU/m/eV4gQKxy9r5acuesqaymyeSCnsx1cFto/I1WhPmi5HDxX1nkzb8KYBiwkHIGg7CTfo/AcGzoXAJBxLfg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.4.tgz", + "integrity": "sha512-hKlLNvbmUC6z5g/J4H+Zx7f7w15whSVImokLPmP6ff1QqTVE+TxUM9PGuNsjHvkvlHUtGTdDnOvGNSEUiXI1Ww==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.4.tgz", + "integrity": "sha512-X3As2xhtgPTY/m5edUtddmZ8rCruvBvtxYLMw9OsZdH01L2gS2icsHRwxdU0dMItNfVmrBezueXZCHxVeeb7Aw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.4.tgz", + "integrity": "sha512-2VG4DqhGaDSmYIu6C4ua2vSLXnJsb/C9liej7TuSO04NK+JJJgJucDUgmX6sn7Gw3Cs5ZJ9ZLrnI0QRDOjLfNQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.4.tgz", + "integrity": "sha512-v+mxVgH2kmur/X5Mdrz9m7TsoVjbdYQT0b4Z+dr+I4RvreCNXyCFELZL/DO0M1RsidZTrm6O1eMnV6zlgEzTMQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.4.tgz", + "integrity": "sha512-2TLe9ir+9esCf6Wm+lLWTMbgklIjiF0pbmDnwmhR9MksVOq+e8aP3TSsXySnBDDvTTVd/vKu1aNttEGj3P6l8Q==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.0", + "@emnapi/runtime": "^1.4.0", + "@emnapi/wasi-threads": "^1.0.1", + "@napi-rs/wasm-runtime": "^0.2.8", + "@tybys/wasm-util": "^0.9.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.4.tgz", + "integrity": "sha512-VlnhfilPlO0ltxW9/BgfLI5547PYzqBMPIzRrk4W7uupgCt8z6Trw/tAj6QUtF2om+1MH281Pg+HHUJoLesmng==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.4.tgz", + "integrity": "sha512-+7S63t5zhYjslUGb8NcgLpFXD+Kq1F/zt5Xv5qTv7HaFTG/DHyHD9GA6ieNAxhgyA4IcKa/zy7Xx4Oad2/wuhw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/lightningcss": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz", + "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.29.2", + "lightningcss-darwin-x64": "1.29.2", + "lightningcss-freebsd-x64": "1.29.2", + "lightningcss-linux-arm-gnueabihf": "1.29.2", + "lightningcss-linux-arm64-gnu": "1.29.2", + "lightningcss-linux-arm64-musl": "1.29.2", + "lightningcss-linux-x64-gnu": "1.29.2", + "lightningcss-linux-x64-musl": "1.29.2", + "lightningcss-win32-arm64-msvc": "1.29.2", + "lightningcss-win32-x64-msvc": "1.29.2" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz", + "integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz", + "integrity": "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz", + "integrity": "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz", + "integrity": "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz", + "integrity": "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz", + "integrity": "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz", + "integrity": "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz", + "integrity": "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz", + "integrity": "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz", + "integrity": "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss/node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tailwindcss": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.4.tgz", + "integrity": "sha512-1ZIUqtPITFbv/DxRmDr5/agPqJwF69d24m9qmM1939TJehgY539CtzeZRjbLt5G6fSy/7YqqYsfvoTEw9xUI2A==" + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + } + }, + "dependencies": { + "@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "requires": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1", + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + } + }, + "@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "optional": true + }, + "@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "optional": true + }, + "@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "optional": true + }, + "@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "optional": true + }, + "@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "optional": true + }, + "@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "optional": true + }, + "@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "optional": true + }, + "@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "optional": true + }, + "@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "optional": true + }, + "@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "optional": true + }, + "@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "optional": true + }, + "@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "optional": true + }, + "@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "optional": true + }, + "@tailwindcss/cli": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/cli/-/cli-4.1.4.tgz", + "integrity": "sha512-gP05Qihh+cZ2FqD5fa0WJXx3KEk2YWUYv/RBKAyiOg0V4vYVDr/xlLc0sacpnVEXM45BVUR9U2hsESufYs6YTA==", + "requires": { + "@parcel/watcher": "^2.5.1", + "@tailwindcss/node": "4.1.4", + "@tailwindcss/oxide": "4.1.4", + "enhanced-resolve": "^5.18.1", + "mri": "^1.2.0", + "picocolors": "^1.1.1", + "tailwindcss": "4.1.4" + } + }, + "@tailwindcss/node": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.4.tgz", + "integrity": "sha512-MT5118zaiO6x6hNA04OWInuAiP1YISXql8Z+/Y8iisV5nuhM8VXlyhRuqc2PEviPszcXI66W44bCIk500Oolhw==", + "requires": { + "enhanced-resolve": "^5.18.1", + "jiti": "^2.4.2", + "lightningcss": "1.29.2", + "tailwindcss": "4.1.4" + } + }, + "@tailwindcss/oxide": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.4.tgz", + "integrity": "sha512-p5wOpXyOJx7mKh5MXh5oKk+kqcz8T+bA3z/5VWWeQwFrmuBItGwz8Y2CHk/sJ+dNb9B0nYFfn0rj/cKHZyjahQ==", + "requires": { + "@tailwindcss/oxide-android-arm64": "4.1.4", + "@tailwindcss/oxide-darwin-arm64": "4.1.4", + "@tailwindcss/oxide-darwin-x64": "4.1.4", + "@tailwindcss/oxide-freebsd-x64": "4.1.4", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.4", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.4", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.4", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.4", + "@tailwindcss/oxide-linux-x64-musl": "4.1.4", + "@tailwindcss/oxide-wasm32-wasi": "4.1.4", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.4", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.4" + } + }, + "@tailwindcss/oxide-android-arm64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.4.tgz", + "integrity": "sha512-xMMAe/SaCN/vHfQYui3fqaBDEXMu22BVwQ33veLc8ep+DNy7CWN52L+TTG9y1K397w9nkzv+Mw+mZWISiqhmlA==", + "optional": true + }, + "@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.4.tgz", + "integrity": "sha512-JGRj0SYFuDuAGilWFBlshcexev2hOKfNkoX+0QTksKYq2zgF9VY/vVMq9m8IObYnLna0Xlg+ytCi2FN2rOL0Sg==", + "optional": true + }, + "@tailwindcss/oxide-darwin-x64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.4.tgz", + "integrity": "sha512-sdDeLNvs3cYeWsEJ4H1DvjOzaGios4QbBTNLVLVs0XQ0V95bffT3+scptzYGPMjm7xv4+qMhCDrkHwhnUySEzA==", + "optional": true + }, + "@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.4.tgz", + "integrity": "sha512-VHxAqxqdghM83HslPhRsNhHo91McsxRJaEnShJOMu8mHmEj9Ig7ToHJtDukkuLWLzLboh2XSjq/0zO6wgvykNA==", + "optional": true + }, + "@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.4.tgz", + "integrity": "sha512-OTU/m/eV4gQKxy9r5acuesqaymyeSCnsx1cFto/I1WhPmi5HDxX1nkzb8KYBiwkHIGg7CTfo/AcGzoXAJBxLfg==", + "optional": true + }, + "@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.4.tgz", + "integrity": "sha512-hKlLNvbmUC6z5g/J4H+Zx7f7w15whSVImokLPmP6ff1QqTVE+TxUM9PGuNsjHvkvlHUtGTdDnOvGNSEUiXI1Ww==", + "optional": true + }, + "@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.4.tgz", + "integrity": "sha512-X3As2xhtgPTY/m5edUtddmZ8rCruvBvtxYLMw9OsZdH01L2gS2icsHRwxdU0dMItNfVmrBezueXZCHxVeeb7Aw==", + "optional": true + }, + "@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.4.tgz", + "integrity": "sha512-2VG4DqhGaDSmYIu6C4ua2vSLXnJsb/C9liej7TuSO04NK+JJJgJucDUgmX6sn7Gw3Cs5ZJ9ZLrnI0QRDOjLfNQ==", + "optional": true + }, + "@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.4.tgz", + "integrity": "sha512-v+mxVgH2kmur/X5Mdrz9m7TsoVjbdYQT0b4Z+dr+I4RvreCNXyCFELZL/DO0M1RsidZTrm6O1eMnV6zlgEzTMQ==", + "optional": true + }, + "@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.4.tgz", + "integrity": "sha512-2TLe9ir+9esCf6Wm+lLWTMbgklIjiF0pbmDnwmhR9MksVOq+e8aP3TSsXySnBDDvTTVd/vKu1aNttEGj3P6l8Q==", + "optional": true, + "requires": { + "@emnapi/core": "^1.4.0", + "@emnapi/runtime": "^1.4.0", + "@emnapi/wasi-threads": "^1.0.1", + "@napi-rs/wasm-runtime": "^0.2.8", + "@tybys/wasm-util": "^0.9.0", + "tslib": "^2.8.0" + } + }, + "@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.4.tgz", + "integrity": "sha512-VlnhfilPlO0ltxW9/BgfLI5547PYzqBMPIzRrk4W7uupgCt8z6Trw/tAj6QUtF2om+1MH281Pg+HHUJoLesmng==", + "optional": true + }, + "@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.4.tgz", + "integrity": "sha512-+7S63t5zhYjslUGb8NcgLpFXD+Kq1F/zt5Xv5qTv7HaFTG/DHyHD9GA6ieNAxhgyA4IcKa/zy7Xx4Oad2/wuhw==", + "optional": true + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "requires": { + "fill-range": "^7.1.1" + } + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==" + }, + "enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "jiti": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==" + }, + "lightningcss": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz", + "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==", + "requires": { + "detect-libc": "^2.0.3", + "lightningcss-darwin-arm64": "1.29.2", + "lightningcss-darwin-x64": "1.29.2", + "lightningcss-freebsd-x64": "1.29.2", + "lightningcss-linux-arm-gnueabihf": "1.29.2", + "lightningcss-linux-arm64-gnu": "1.29.2", + "lightningcss-linux-arm64-musl": "1.29.2", + "lightningcss-linux-x64-gnu": "1.29.2", + "lightningcss-linux-x64-musl": "1.29.2", + "lightningcss-win32-arm64-msvc": "1.29.2", + "lightningcss-win32-x64-msvc": "1.29.2" + }, + "dependencies": { + "detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==" + } + } + }, + "lightningcss-darwin-arm64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz", + "integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==", + "optional": true + }, + "lightningcss-darwin-x64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz", + "integrity": "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==", + "optional": true + }, + "lightningcss-freebsd-x64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz", + "integrity": "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==", + "optional": true + }, + "lightningcss-linux-arm-gnueabihf": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz", + "integrity": "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==", + "optional": true + }, + "lightningcss-linux-arm64-gnu": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz", + "integrity": "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==", + "optional": true + }, + "lightningcss-linux-arm64-musl": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz", + "integrity": "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==", + "optional": true + }, + "lightningcss-linux-x64-gnu": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz", + "integrity": "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==", + "optional": true + }, + "lightningcss-linux-x64-musl": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz", + "integrity": "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==", + "optional": true + }, + "lightningcss-win32-arm64-msvc": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz", + "integrity": "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==", + "optional": true + }, + "lightningcss-win32-x64-msvc": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz", + "integrity": "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==", + "optional": true + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==" + }, + "node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==" + }, + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "tailwindcss": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.4.tgz", + "integrity": "sha512-1ZIUqtPITFbv/DxRmDr5/agPqJwF69d24m9qmM1939TJehgY539CtzeZRjbLt5G6fSy/7YqqYsfvoTEw9xUI2A==" + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..23dd124 --- /dev/null +++ b/package.json @@ -0,0 +1,6 @@ +{ + "dependencies": { + "@tailwindcss/cli": "^4.1.4", + "tailwindcss": "^4.1.4" + } +} diff --git a/script/amiibo.js b/script/amiibo.js new file mode 100644 index 0000000..79bc604 --- /dev/null +++ b/script/amiibo.js @@ -0,0 +1,533 @@ +import AMIIBO_DB from '../db/amiibo.db.js'; + +document.addEventListener('DOMContentLoaded', () => { + const gameList = document.getElementById('gameList'); + const gameCount = document.getElementById('gameCount'); + const loading = document.getElementById('loading'); + const languageRadios = document.querySelectorAll('input[name="language"]'); + + // 언어별 UI 텍스트 + const uiTexts = { + ko: { + title: 'Amiibo DB', + languageSelect: '언어 선택', + languageDescription: '선택한 언어로 표시됩니다', + korean: '한국어', + japanese: '일본어', + count: '개수', + loading: '로딩중...', + tableHeaders: { + title: '제목', + info: '정보', + status: '상태', + role: '역할', + }, + sortOptions: { + sortByNoDesc: '순번 최신순', + sortByNo: '순번 과거순', + sortByDateDesc: '발매일 최신순', + sortByDate: '발매일 과거순', + sortByPurchaseDateDesc: '구매일 최신순', + sortByPurchaseDate: '구매일 과거순', + sortByRandom: '무작위', + }, + filter: { + reset: '필터 초기화', + koreanSupport: '한국어 지원', + koreanNotSupport: '한국어 미지원', + }, + }, + ja: { + title: 'Amiibo', + languageSelect: '言語選択', + languageDescription: '選択した言語で表示されます', + korean: '韓国語', + japanese: '日本語', + count: '件数', + loading: '読み込み中...', + tableHeaders: { + title: 'タイトル', + info: '情報', + status: '状態', + role: '役割', + }, + sortOptions: { + sortByNoDesc: '番号降順', + sortByNo: '番号昇順', + sortByDateDesc: '発売日降順', + sortByDate: '発売日昇順', + sortByPurchaseDateDesc: '購入日降順', + sortByPurchaseDate: '購入日昇順', + sortByRandom: 'ランダム', + }, + filter: { + reset: 'フィルターリセット', + koreanSupport: '韓国語対応', + koreanNotSupport: '韓国語非対応', + }, + }, + }; + + // 필터 상태 관리 객체 + const filterState = { + language: 'ko', + filters: { + language: [], + status: [], + country: [], + cero: [], + }, + sortBy: 'sortByNoDesc', // 기본 정렬 옵션 + }; + + // 정렬 옵션 정의 + const sortOptions = [ + { name: '순번 최신순', value: 'sortByNoDesc' }, + { name: '순번 과거순', value: 'sortByNo' }, + { name: '발매일 최신순', value: 'sortByDateDesc' }, + { name: '발매일 과거순', value: 'sortByDate' }, + { name: '구매일 최신순', value: 'sortByPurchaseDateDesc' }, + { name: '구매일 과거순', value: 'sortByPurchaseDate' }, + { name: '무작위', value: 'sortByRandom' }, + ]; + + // UI 텍스트 업데이트 함수 + function updateUITexts() { + const texts = uiTexts[filterState.language]; + + // 제목 업데이트 + document.querySelector('h1').textContent = texts.title; + + // 언어 선택 섹션 업데이트 + document.querySelector('label.text-base').textContent = texts.languageSelect; + document.querySelector('p.text-sm').textContent = texts.languageDescription; + document.querySelector('label[for="ko"]').textContent = texts.korean; + document.querySelector('label[for="ja"]').textContent = texts.japanese; + + // 테이블 헤더 업데이트 + const headers = document.querySelectorAll('th'); + headers[0].textContent = texts.tableHeaders.title; + headers[1].textContent = texts.tableHeaders.info; + headers[2].textContent = texts.tableHeaders.status; + headers[3].textContent = texts.tableHeaders.role; + + // 로딩 텍스트 업데이트 + loading.textContent = texts.loading; + + // 필터 텍스트 업데이트 + document.getElementById('resetFilters').textContent = texts.filter.reset; + document.querySelector('label[for="korean-support"]').textContent = texts.filter.koreanSupport; + document.querySelector('label[for="korean-not-support"]').textContent = + texts.filter.koreanNotSupport; + } + + // 언어 변경 이벤트 리스너 + languageRadios.forEach(radio => { + radio.addEventListener('change', e => { + filterState.language = e.target.value; + updateUITexts(); + renderGames(); + }); + }); + + // 출시일 변환 함수 + function convertReleaseDate(releaseDate) { + if (!releaseDate) return ''; + if (filterState.language !== 'ko') return releaseDate; + + const date = new Date(releaseDate.replace(/年|月/g, '/').replace('日', '')); + const year = date.getFullYear(); + const month = date.getMonth() + 1; + const day = date.getDate(); + + return `${year}년 ${month}월 ${day}일`; + } + + // 국가 변환 함수 + function convertCountry(country) { + if (!country) return ''; + + switch (country) { + case 'JPN': + return filterState.language === 'ko' ? '일본판' : '日本版'; + case 'KOR': + return filterState.language === 'ko' ? '한국판' : '韓国版'; + default: + return country; + } + } + + function formatGameData(game) { + return { + ...game, + formattedTitle: filterState.language === 'ko' ? game.koTitle || game.title : game.title, + formattedSeries: game.series, + formattedReleaseDate: game.release, + formattedStatus: game.status, + formattedCount: game.count, + }; + } + + function getStatusClass(status) { + switch (status) { + case 'package': + return 'bg-green-100 text-green-800'; + case 'download': + return 'bg-yellow-100 text-yellow-800'; + case 'expansion': + return 'bg-blue-100 text-blue-800'; + default: + return ''; + } + } + + function getCountryClass(country) { + return country === 'JPN' + ? 'text-red-600 hover:text-red-900' + : 'text-indigo-600 hover:text-indigo-900'; + } + + function createGameRow(amiibo, index) { + const tr = document.createElement('tr'); + tr.className = `cursor-pointer hover:bg-indigo-50 ${index % 2 === 0 ? '' : 'bg-gray-50'}`; + + // 클릭 시 nsw-detail.html로 이동 (no 쿼리 포함) + tr.addEventListener('click', () => { + openImageModal(amiibo.image, amiibo.formattedTitle); + }); + + tr.innerHTML = ` + +
+
+ +
+
+
+ ${amiibo.no}. ${amiibo.formattedTitle} +
+
${amiibo.formattedSeries}
+
+
+ + +
${amiibo.formattedStatus.isHave ? "보유" : "미보유" }
+ + +
+ ${amiibo.formattedStatus.isHave ? ` +
${amiibo.formattedStatus.isOpen ? "개봉" : "미개봉" }
+
${amiibo.formattedStatus.isDamaged ? "박스손상" : "" }
+ ` : ''} +
+ + + +
+ ${amiibo.formattedCount} +
+ + `; + + return tr; + } + + // 필터 초기화 함수 + function resetFilters() { + // 모든 체크박스 해제 + document.querySelectorAll('input[type="checkbox"]').forEach(checkbox => { + checkbox.checked = false; + }); + + // 필터 상태 초기화 + filterState.filters = { + language: [], + status: [], + country: [], + cero: [], + }; + + // 게임 목록 다시 렌더링 + renderGames(); + } + + // 필터 초기화 버튼 이벤트 리스너 설정 + document.getElementById('resetFilters').addEventListener('click', resetFilters); + + // 필터 체크박스 이벤트 리스너 설정 + function setupFilterListeners() { + // 언어 필터 + document.querySelectorAll('input[name="language-filter"]').forEach(checkbox => { + checkbox.addEventListener('change', () => { + updateFilters('language'); + renderGames(); + }); + }); + + // 상태 필터 + document.querySelectorAll('input[name="status-filter"]').forEach(checkbox => { + checkbox.addEventListener('change', () => { + updateFilters('status'); + renderGames(); + }); + }); + + // 국가 필터 + document.querySelectorAll('input[name="country-filter"]').forEach(checkbox => { + checkbox.addEventListener('change', () => { + updateFilters('country'); + renderGames(); + }); + }); + + // CERO 필터 + document.querySelectorAll('input[name="cero-filter"]').forEach(checkbox => { + checkbox.addEventListener('change', () => { + updateFilters('cero'); + renderGames(); + }); + }); + } + + // 필터 상태 업데이트 + function updateFilters(type) { + const checkboxes = document.querySelectorAll(`input[name="${type}-filter"]:checked`); + filterState.filters[type] = Array.from(checkboxes).map(checkbox => checkbox.value); + } + + // 필터링 함수 + function filterGames(games) { + return games.filter(game => { + // 언어 필터 + if (filterState.filters.language.length > 0) { + const hasKorean = game.language.includes('韓国語'); + const hasKoreanFilter = filterState.filters.language.includes('koreanSupport'); + const hasNotSupportedFilter = filterState.filters.language.includes('koreanNotSupport'); + + // 한국어 지원과 미지원이 모두 체크된 경우 모든 게임 표시 + if (hasKoreanFilter && hasNotSupportedFilter) { + return true; + } + + // 한국어 지원만 체크된 경우 한국어 지원 게임만 표시 + if (hasKoreanFilter && !hasNotSupportedFilter) { + return hasKorean; + } + + // 한국어 미지원만 체크된 경우 한국어 미지원 게임만 표시 + if (!hasKoreanFilter && hasNotSupportedFilter) { + return !hasKorean; + } + + // 아무것도 체크되지 않은 경우 필터링하지 않음 + return true; + } + + // 상태 필터 + if (filterState.filters.status.length > 0) { + const hasExtensionFilter = filterState.filters.status.includes('extension'); + const hasOtherStatusFilters = + filterState.filters.status.filter(status => status !== 'extension').length > 0; + + // extension 필터가 체크된 경우 + if (hasExtensionFilter) { + // extension 값이 null이 아닌 게임만 표시 + if (game.extension === null) return false; + } + + // 다른 상태 필터가 체크된 경우 + if (hasOtherStatusFilters) { + const otherStatuses = filterState.filters.status.filter(status => status !== 'extension'); + if (!otherStatuses.includes(game.status)) return false; + } + } + + // 국가 필터 + if ( + filterState.filters.country.length > 0 && + !filterState.filters.country.includes(game.country) + ) { + return false; + } + + // CERO 필터 + if (filterState.filters.cero.length > 0 && !filterState.filters.cero.includes(game.cero)) { + return false; + } + + return true; + }); + } + + // 정렬 함수 + function sortGames(games) { + switch (filterState.sortBy) { + case 'sortByNoDesc': + return [...games].sort((a, b) => b.no - a.no); + case 'sortByNo': + return [...games].sort((a, b) => a.no - b.no); + case 'sortByDateDesc': + return [...games].sort((a, b) => { + const aDate = new Date(a.release.replace(/年|月/g, '/').replace(/日/g, '')).toUTCString(); + const bDate = new Date(b.release.replace(/年|月/g, '/').replace(/日/g, '')).toUTCString(); + const dateDiff = new Date(bDate) - new Date(aDate); + return dateDiff === 0 ? b.no - a.no : dateDiff; + }); + case 'sortByDate': + return [...games].sort((a, b) => { + const aDate = new Date(a.release.replace(/年|月/g, '/').replace(/日/g, '')).toUTCString(); + const bDate = new Date(b.release.replace(/年|月/g, '/').replace(/日/g, '')).toUTCString(); + const dateDiff = new Date(aDate) - new Date(bDate); + return dateDiff === 0 ? b.no - a.no : dateDiff; + }); + case 'sortByPurchaseDateDesc': + return [...games].sort((a, b) => { + if (!a.purchaseInformation?.date || !b.purchaseInformation?.date) { + return !a.purchaseInformation?.date ? 1 : -1; + } + const aDate = new Date(a.purchaseInformation.date.replace(/\./g, '/')).toUTCString(); + const bDate = new Date(b.purchaseInformation.date.replace(/\./g, '/')).toUTCString(); + const dateDiff = new Date(bDate) - new Date(aDate); + return dateDiff === 0 ? b.no - a.no : dateDiff; + }); + case 'sortByPurchaseDate': + return [...games].sort((a, b) => { + if (!a.purchaseInformation?.date || !b.purchaseInformation?.date) { + return !a.purchaseInformation?.date ? 1 : -1; + } + const aDate = new Date(a.purchaseInformation.date.replace(/\./g, '/')).toUTCString(); + const bDate = new Date(b.purchaseInformation.date.replace(/\./g, '/')).toUTCString(); + const dateDiff = new Date(aDate) - new Date(bDate); + return dateDiff === 0 ? b.no - a.no : dateDiff; + }); + case 'sortByRandom': + return [...games].sort(() => Math.random() - 0.5); + default: + return games; + } + } + + // 정렬 UI 초기화 + function setupSortUI() { + const sortButton = document.getElementById('sort-button'); + const sortOptions = document.getElementById('sort-options'); + const sortLabel = document.getElementById('sort-label'); + + // 정렬 버튼 클릭 이벤트 + sortButton.addEventListener('click', () => { + sortOptions.classList.toggle('hidden'); + const isExpanded = sortOptions.classList.contains('hidden') ? 'false' : 'true'; + sortButton.setAttribute('aria-expanded', isExpanded); + }); + + // 정렬 옵션 클릭 이벤트 + sortOptions.querySelectorAll('li').forEach(option => { + option.addEventListener('click', () => { + const value = option.getAttribute('data-value'); + const name = uiTexts[filterState.language].sortOptions[value]; + + // 선택된 옵션 업데이트 + sortOptions.querySelectorAll('li').forEach(li => { + li.querySelector('span').classList.remove('font-semibold'); + li.querySelector('svg')?.parentElement?.classList.add('hidden'); + }); + + option.querySelector('span').classList.add('font-semibold'); + const checkIcon = option.querySelector('svg')?.parentElement; + if (checkIcon) checkIcon.classList.remove('hidden'); + + // 정렬 상태 업데이트 + filterState.sortBy = value; + sortButton.querySelector('span').textContent = name; + sortOptions.classList.add('hidden'); + sortButton.setAttribute('aria-expanded', 'false'); + + // 게임 목록 다시 렌더링 + renderGames(); + }); + }); + + // 외부 클릭 시 드롭다운 닫기 + document.addEventListener('click', e => { + if (!sortButton.contains(e.target) && !sortOptions.contains(e.target)) { + sortOptions.classList.add('hidden'); + sortButton.setAttribute('aria-expanded', 'false'); + } + }); + + // 정렬 옵션 텍스트 업데이트 + function updateSortOptionsText() { + const texts = uiTexts[filterState.language].sortOptions; + sortLabel.textContent = filterState.language === 'ko' ? '정렬' : '並び替え'; + sortButton.querySelector('span').textContent = texts[filterState.sortBy]; + + sortOptions.querySelectorAll('li').forEach(option => { + const value = option.getAttribute('data-value'); + option.querySelector('span').textContent = texts[value]; + }); + } + + // 언어 변경 시 정렬 옵션 텍스트 업데이트 + languageRadios.forEach(radio => { + radio.addEventListener('change', e => { + filterState.language = e.target.value; + updateSortOptionsText(); + }); + }); + + // 초기 정렬 옵션 텍스트 설정 + updateSortOptionsText(); + } + + // 게임 렌더링 함수 수정 + function renderGames() { + loading.classList.remove('hidden'); + + // 데이터 포맷팅 + const formattedGames = AMIIBO_DB.map(formatGameData); + + // 필터링 적용 + const filteredGames = filterGames(formattedGames); + + // 정렬 적용 + const sortedGames = sortGames(filteredGames); + + // 게임 개수 업데이트 + gameCount.textContent = `${sortedGames.length} ${uiTexts[filterState.language].count}`; + + // 테이블 내용 업데이트 + gameList.innerHTML = ''; + sortedGames.forEach((game, index) => { + gameList.appendChild(createGameRow(game, index)); + }); + + loading.classList.add('hidden'); + } + + // 초기화 + setupFilterListeners(); + setupSortUI(); + updateUITexts(); + renderGames(); +}); + +function openImageModal(imageUrl, title) { + const modal = document.getElementById('imageModal'); + const modalImage = document.getElementById('modalImage'); + const modalTitle = document.getElementById('modalTitle'); + + modalImage.src = imageUrl; + modalTitle.textContent = title; + + modal.classList.remove('hidden'); +} + +document.getElementById('imageModal').addEventListener('click', () => { + document.getElementById('imageModal').classList.add('hidden'); +}); \ No newline at end of file diff --git a/style/input.css b/style/input.css new file mode 100644 index 0000000..a461c50 --- /dev/null +++ b/style/input.css @@ -0,0 +1 @@ +@import "tailwindcss"; \ No newline at end of file diff --git a/style/tailwind.css b/style/tailwind.css new file mode 100644 index 0000000..83123ea --- /dev/null +++ b/style/tailwind.css @@ -0,0 +1,1426 @@ +/*! tailwindcss v4.1.4 | MIT License | https://tailwindcss.com */ +@layer properties; +@layer theme, base, components, utilities; +@layer theme { + :root, :host { + --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", + "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", + "Courier New", monospace; + --color-red-100: oklch(93.6% 0.032 17.717); + --color-red-600: oklch(57.7% 0.245 27.325); + --color-red-800: oklch(44.4% 0.177 26.899); + --color-red-900: oklch(39.6% 0.141 25.723); + --color-yellow-100: oklch(97.3% 0.071 103.193); + --color-yellow-800: oklch(47.6% 0.114 61.907); + --color-green-100: oklch(96.2% 0.044 156.743); + --color-green-800: oklch(44.8% 0.119 151.328); + --color-teal-100: oklch(95.3% 0.051 180.801); + --color-teal-800: oklch(43.7% 0.078 188.216); + --color-blue-100: oklch(93.2% 0.032 255.585); + --color-blue-800: oklch(42.4% 0.199 265.638); + --color-indigo-50: oklch(96.2% 0.018 272.314); + --color-indigo-400: oklch(67.3% 0.182 276.935); + --color-indigo-500: oklch(58.5% 0.233 277.117); + --color-indigo-600: oklch(51.1% 0.262 276.966); + --color-indigo-900: oklch(35.9% 0.144 278.697); + --color-purple-100: oklch(94.6% 0.033 307.174); + --color-purple-800: oklch(43.8% 0.218 303.724); + --color-slate-50: oklch(98.4% 0.003 247.858); + --color-gray-50: oklch(98.5% 0.002 247.839); + --color-gray-100: oklch(96.7% 0.003 264.542); + --color-gray-200: oklch(92.8% 0.006 264.531); + --color-gray-300: oklch(87.2% 0.01 258.338); + --color-gray-400: oklch(70.7% 0.022 261.325); + --color-gray-500: oklch(55.1% 0.027 264.364); + --color-gray-600: oklch(44.6% 0.03 256.802); + --color-gray-700: oklch(37.3% 0.034 259.733); + --color-gray-800: oklch(27.8% 0.033 256.848); + --color-gray-900: oklch(21% 0.034 264.665); + --color-black: #000; + --color-white: #fff; + --spacing: 0.25rem; + --container-xs: 20rem; + --container-2xl: 42rem; + --container-4xl: 56rem; + --container-7xl: 80rem; + --text-xs: 0.75rem; + --text-xs--line-height: calc(1 / 0.75); + --text-sm: 0.875rem; + --text-sm--line-height: calc(1.25 / 0.875); + --text-base: 1rem; + --text-base--line-height: calc(1.5 / 1); + --text-3xl: 1.875rem; + --text-3xl--line-height: calc(2.25 / 1.875); + --text-4xl: 2.25rem; + --text-4xl--line-height: calc(2.5 / 2.25); + --font-weight-medium: 500; + --font-weight-semibold: 600; + --font-weight-bold: 700; + --tracking-tight: -0.025em; + --radius-md: 0.375rem; + --radius-lg: 0.5rem; + --radius-xl: 0.75rem; + --ease-in: cubic-bezier(0.4, 0, 1, 1); + --ease-out: cubic-bezier(0, 0, 0.2, 1); + --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); + --default-transition-duration: 150ms; + --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + --default-font-family: var(--font-sans); + --default-mono-font-family: var(--font-mono); + } +} +@layer base { + *, ::after, ::before, ::backdrop, ::file-selector-button { + box-sizing: border-box; + margin: 0; + padding: 0; + border: 0 solid; + } + html, :host { + line-height: 1.5; + -webkit-text-size-adjust: 100%; + tab-size: 4; + font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"); + font-feature-settings: var(--default-font-feature-settings, normal); + font-variation-settings: var(--default-font-variation-settings, normal); + -webkit-tap-highlight-color: transparent; + } + hr { + height: 0; + color: inherit; + border-top-width: 1px; + } + abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + } + h1, h2, h3, h4, h5, h6 { + font-size: inherit; + font-weight: inherit; + } + a { + color: inherit; + -webkit-text-decoration: inherit; + text-decoration: inherit; + } + b, strong { + font-weight: bolder; + } + code, kbd, samp, pre { + font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace); + font-feature-settings: var(--default-mono-font-feature-settings, normal); + font-variation-settings: var(--default-mono-font-variation-settings, normal); + font-size: 1em; + } + small { + font-size: 80%; + } + sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + } + sub { + bottom: -0.25em; + } + sup { + top: -0.5em; + } + table { + text-indent: 0; + border-color: inherit; + border-collapse: collapse; + } + :-moz-focusring { + outline: auto; + } + progress { + vertical-align: baseline; + } + summary { + display: list-item; + } + ol, ul, menu { + list-style: none; + } + img, svg, video, canvas, audio, iframe, embed, object { + display: block; + vertical-align: middle; + } + img, video { + max-width: 100%; + height: auto; + } + button, input, select, optgroup, textarea, ::file-selector-button { + font: inherit; + font-feature-settings: inherit; + font-variation-settings: inherit; + letter-spacing: inherit; + color: inherit; + border-radius: 0; + background-color: transparent; + opacity: 1; + } + :where(select:is([multiple], [size])) optgroup { + font-weight: bolder; + } + :where(select:is([multiple], [size])) optgroup option { + padding-inline-start: 20px; + } + ::file-selector-button { + margin-inline-end: 4px; + } + ::placeholder { + opacity: 1; + } + @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) { + ::placeholder { + color: currentcolor; + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, currentcolor 50%, transparent); + } + } + } + textarea { + resize: vertical; + } + ::-webkit-search-decoration { + -webkit-appearance: none; + } + ::-webkit-date-and-time-value { + min-height: 1lh; + text-align: inherit; + } + ::-webkit-datetime-edit { + display: inline-flex; + } + ::-webkit-datetime-edit-fields-wrapper { + padding: 0; + } + ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field { + padding-block: 0; + } + :-moz-ui-invalid { + box-shadow: none; + } + button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button { + appearance: button; + } + ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { + height: auto; + } + [hidden]:where(:not([hidden="until-found"])) { + display: none !important; + } +} +@layer utilities { + .absolute { + position: absolute; + } + .relative { + position: relative; + } + .inset-0 { + inset: calc(var(--spacing) * 0); + } + .inset-y-0 { + inset-block: calc(var(--spacing) * 0); + } + .right-0 { + right: calc(var(--spacing) * 0); + } + .z-10 { + z-index: 10; + } + .col-start-1 { + grid-column-start: 1; + } + .row-start-1 { + grid-row-start: 1; + } + .container { + width: 100%; + @media (width >= 40rem) { + max-width: 40rem; + } + @media (width >= 48rem) { + max-width: 48rem; + } + @media (width >= 64rem) { + max-width: 64rem; + } + @media (width >= 80rem) { + max-width: 80rem; + } + @media (width >= 96rem) { + max-width: 96rem; + } + } + .-mx-4 { + margin-inline: calc(var(--spacing) * -4); + } + .mx-auto { + margin-inline: auto; + } + .-my-2 { + margin-block: calc(var(--spacing) * -2); + } + .-mt-12 { + margin-top: calc(var(--spacing) * -12); + } + .mt-1 { + margin-top: calc(var(--spacing) * 1); + } + .mt-2 { + margin-top: calc(var(--spacing) * 2); + } + .mt-4 { + margin-top: calc(var(--spacing) * 4); + } + .mt-6 { + margin-top: calc(var(--spacing) * 6); + } + .mt-8 { + margin-top: calc(var(--spacing) * 8); + } + .mt-16 { + margin-top: calc(var(--spacing) * 16); + } + .mr-1 { + margin-right: calc(var(--spacing) * 1); + } + .mb-4 { + margin-bottom: calc(var(--spacing) * 4); + } + .ml-2 { + margin-left: calc(var(--spacing) * 2); + } + .ml-3 { + margin-left: calc(var(--spacing) * 3); + } + .ml-4 { + margin-left: calc(var(--spacing) * 4); + } + .block { + display: block; + } + .flex { + display: flex; + } + .flow-root { + display: flow-root; + } + .grid { + display: grid; + } + .hidden { + display: none; + } + .inline-block { + display: inline-block; + } + .inline-flex { + display: inline-flex; + } + .size-5 { + width: calc(var(--spacing) * 5); + height: calc(var(--spacing) * 5); + } + .h-4 { + height: calc(var(--spacing) * 4); + } + .h-5 { + height: calc(var(--spacing) * 5); + } + .h-10 { + height: calc(var(--spacing) * 10); + } + .h-96 { + height: calc(var(--spacing) * 96); + } + .h-full { + height: 100%; + } + .max-h-60 { + max-height: calc(var(--spacing) * 60); + } + .max-h-96 { + max-height: calc(var(--spacing) * 96); + } + .w-3\/12 { + width: calc(3/12 * 100%); + } + .w-4 { + width: calc(var(--spacing) * 4); + } + .w-5 { + width: calc(var(--spacing) * 5); + } + .w-10 { + width: calc(var(--spacing) * 10); + } + .w-24 { + width: calc(var(--spacing) * 24); + } + .w-40 { + width: calc(var(--spacing) * 40); + } + .w-\[calc\(100\%-3rem\)\] { + width: calc(100% - 3rem); + } + .w-full { + width: 100%; + } + .max-w-2xl { + max-width: var(--container-2xl); + } + .max-w-7xl { + max-width: var(--container-7xl); + } + .min-w-0 { + min-width: calc(var(--spacing) * 0); + } + .min-w-full { + min-width: 100%; + } + .flex-1 { + flex: 1; + } + .flex-shrink-0 { + flex-shrink: 0; + } + .flex-grow { + flex-grow: 1; + } + .rotate-180 { + rotate: 180deg; + } + .transform { + transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); + } + .cursor-pointer { + cursor: pointer; + } + .resize { + resize: both; + } + .grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); + } + .flex-col { + flex-direction: column; + } + .flex-wrap { + flex-wrap: wrap; + } + .items-baseline { + align-items: baseline; + } + .items-center { + align-items: center; + } + .justify-between { + justify-content: space-between; + } + .justify-center { + justify-content: center; + } + .gap-2 { + gap: calc(var(--spacing) * 2); + } + .space-y-2 { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse)); + margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse))); + } + } + .space-y-6 { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse)); + margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse))); + } + } + .gap-x-4 { + column-gap: calc(var(--spacing) * 4); + } + .gap-x-6 { + column-gap: calc(var(--spacing) * 6); + } + .gap-x-8 { + column-gap: calc(var(--spacing) * 8); + } + .space-x-4 { + :where(& > :not(:last-child)) { + --tw-space-x-reverse: 0; + margin-inline-start: calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse)); + margin-inline-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse))); + } + } + .gap-y-2 { + row-gap: calc(var(--spacing) * 2); + } + .gap-y-8 { + row-gap: calc(var(--spacing) * 8); + } + .gap-y-10 { + row-gap: calc(var(--spacing) * 10); + } + .divide-y { + :where(& > :not(:last-child)) { + --tw-divide-y-reverse: 0; + border-bottom-style: var(--tw-border-style); + border-top-style: var(--tw-border-style); + border-top-width: calc(1px * var(--tw-divide-y-reverse)); + border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); + } + } + .divide-gray-200 { + :where(& > :not(:last-child)) { + border-color: var(--color-gray-200); + } + } + .divide-gray-300 { + :where(& > :not(:last-child)) { + border-color: var(--color-gray-300); + } + } + .truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .overflow-auto { + overflow: auto; + } + .overflow-hidden { + overflow: hidden; + } + .overflow-x-auto { + overflow-x: auto; + } + .rounded { + border-radius: 0.25rem; + } + .rounded-full { + border-radius: calc(infinity * 1px); + } + .rounded-md { + border-radius: var(--radius-md); + } + .rounded-none { + border-radius: 0; + } + .rounded-xl { + border-radius: var(--radius-xl); + } + .rounded-l-md { + border-top-left-radius: var(--radius-md); + border-bottom-left-radius: var(--radius-md); + } + .rounded-r-md { + border-top-right-radius: var(--radius-md); + border-bottom-right-radius: var(--radius-md); + } + .border { + border-style: var(--tw-border-style); + border-width: 1px; + } + .border-t { + border-top-style: var(--tw-border-style); + border-top-width: 1px; + } + .border-r-0 { + border-right-style: var(--tw-border-style); + border-right-width: 0px; + } + .border-b { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 1px; + } + .border-gray-200 { + border-color: var(--color-gray-200); + } + .border-gray-300 { + border-color: var(--color-gray-300); + } + .bg-blue-100 { + background-color: var(--color-blue-100); + } + .bg-gray-50 { + background-color: var(--color-gray-50); + } + .bg-gray-100 { + background-color: var(--color-gray-100); + } + .bg-green-100 { + background-color: var(--color-green-100); + } + .bg-indigo-600 { + background-color: var(--color-indigo-600); + } + .bg-purple-100 { + background-color: var(--color-purple-100); + } + .bg-red-100 { + background-color: var(--color-red-100); + } + .bg-slate-50 { + background-color: var(--color-slate-50); + } + .bg-teal-100 { + background-color: var(--color-teal-100); + } + .bg-white { + background-color: var(--color-white); + } + .bg-yellow-100 { + background-color: var(--color-yellow-100); + } + .bg-gradient-to-t { + --tw-gradient-position: to top in oklab; + background-image: linear-gradient(var(--tw-gradient-stops)); + } + .from-white { + --tw-gradient-from: var(--color-white); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .object-cover { + object-fit: cover; + } + .object-center { + object-position: center; + } + .p-4 { + padding: calc(var(--spacing) * 4); + } + .px-2 { + padding-inline: calc(var(--spacing) * 2); + } + .px-3 { + padding-inline: calc(var(--spacing) * 3); + } + .px-4 { + padding-inline: calc(var(--spacing) * 4); + } + .py-0\.5 { + padding-block: calc(var(--spacing) * 0.5); + } + .py-1 { + padding-block: calc(var(--spacing) * 1); + } + .py-1\.5 { + padding-block: calc(var(--spacing) * 1.5); + } + .py-2 { + padding-block: calc(var(--spacing) * 2); + } + .py-3\.5 { + padding-block: calc(var(--spacing) * 3.5); + } + .py-4 { + padding-block: calc(var(--spacing) * 4); + } + .py-5 { + padding-block: calc(var(--spacing) * 5); + } + .pt-4 { + padding-top: calc(var(--spacing) * 4); + } + .pt-6 { + padding-top: calc(var(--spacing) * 6); + } + .pt-8 { + padding-top: calc(var(--spacing) * 8); + } + .pr-2 { + padding-right: calc(var(--spacing) * 2); + } + .pr-3 { + padding-right: calc(var(--spacing) * 3); + } + .pr-4 { + padding-right: calc(var(--spacing) * 4); + } + .pr-6 { + padding-right: calc(var(--spacing) * 6); + } + .pr-9 { + padding-right: calc(var(--spacing) * 9); + } + .pb-6 { + padding-bottom: calc(var(--spacing) * 6); + } + .pb-12 { + padding-bottom: calc(var(--spacing) * 12); + } + .pb-16 { + padding-bottom: calc(var(--spacing) * 16); + } + .pl-3 { + padding-left: calc(var(--spacing) * 3); + } + .pl-4 { + padding-left: calc(var(--spacing) * 4); + } + .text-center { + text-align: center; + } + .text-left { + text-align: left; + } + .text-right { + text-align: right; + } + .align-middle { + vertical-align: middle; + } + .text-3xl { + font-size: var(--text-3xl); + line-height: var(--tw-leading, var(--text-3xl--line-height)); + } + .text-4xl { + font-size: var(--text-4xl); + line-height: var(--tw-leading, var(--text-4xl--line-height)); + } + .text-base { + font-size: var(--text-base); + line-height: var(--tw-leading, var(--text-base--line-height)); + } + .text-sm { + font-size: var(--text-sm); + line-height: var(--tw-leading, var(--text-sm--line-height)); + } + .text-sm\/6 { + font-size: var(--text-sm); + line-height: calc(var(--spacing) * 6); + } + .text-xs { + font-size: var(--text-xs); + line-height: var(--tw-leading, var(--text-xs--line-height)); + } + .leading-5 { + --tw-leading: calc(var(--spacing) * 5); + line-height: calc(var(--spacing) * 5); + } + .leading-6 { + --tw-leading: calc(var(--spacing) * 6); + line-height: calc(var(--spacing) * 6); + } + .font-bold { + --tw-font-weight: var(--font-weight-bold); + font-weight: var(--font-weight-bold); + } + .font-medium { + --tw-font-weight: var(--font-weight-medium); + font-weight: var(--font-weight-medium); + } + .font-semibold { + --tw-font-weight: var(--font-weight-semibold); + font-weight: var(--font-weight-semibold); + } + .tracking-tight { + --tw-tracking: var(--tracking-tight); + letter-spacing: var(--tracking-tight); + } + .text-blue-800 { + color: var(--color-blue-800); + } + .text-gray-300 { + color: var(--color-gray-300); + } + .text-gray-400 { + color: var(--color-gray-400); + } + .text-gray-500 { + color: var(--color-gray-500); + } + .text-gray-700 { + color: var(--color-gray-700); + } + .text-gray-900 { + color: var(--color-gray-900); + } + .text-green-800 { + color: var(--color-green-800); + } + .text-indigo-600 { + color: var(--color-indigo-600); + } + .text-purple-800 { + color: var(--color-purple-800); + } + .text-red-600 { + color: var(--color-red-600); + } + .text-red-800 { + color: var(--color-red-800); + } + .text-teal-800 { + color: var(--color-teal-800); + } + .text-white { + color: var(--color-white); + } + .text-yellow-800 { + color: var(--color-yellow-800); + } + .line-through { + text-decoration-line: line-through; + } + .shadow { + --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-lg { + --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-sm { + --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .ring-1 { + --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .ring-black { + --tw-ring-color: var(--color-black); + } + .ring-black\/5 { + --tw-ring-color: color-mix(in srgb, #000 5%, transparent); + @supports (color: color-mix(in lab, red, red)) { + --tw-ring-color: color-mix(in oklab, var(--color-black) 5%, transparent); + } + } + .ring-gray-300 { + --tw-ring-color: var(--color-gray-300); + } + .outline { + outline-style: var(--tw-outline-style); + outline-width: 1px; + } + .outline-1 { + outline-style: var(--tw-outline-style); + outline-width: 1px; + } + .-outline-offset-1 { + outline-offset: calc(1px * -1); + } + .outline-gray-300 { + outline-color: var(--color-gray-300); + } + .filter { + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + .transition { + transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-transform { + transition-property: transform, translate, scale, rotate; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .duration-200 { + --tw-duration: 200ms; + transition-duration: 200ms; + } + .select-none { + -webkit-user-select: none; + user-select: none; + } + .ring-inset { + --tw-ring-inset: inset; + } + .placeholder\:text-gray-400 { + &::placeholder { + color: var(--color-gray-400); + } + } + .hover\:bg-gray-50 { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-50); + } + } + } + .hover\:bg-gray-100 { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-100); + } + } + } + .hover\:bg-indigo-50 { + &:hover { + @media (hover: hover) { + background-color: var(--color-indigo-50); + } + } + } + .hover\:bg-indigo-500 { + &:hover { + @media (hover: hover) { + background-color: var(--color-indigo-500); + } + } + } + .hover\:text-indigo-900 { + &:hover { + @media (hover: hover) { + color: var(--color-indigo-900); + } + } + } + .hover\:text-red-900 { + &:hover { + @media (hover: hover) { + color: var(--color-red-900); + } + } + } + .focus\:ring-2 { + &:focus { + --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + } + .focus\:ring-indigo-600 { + &:focus { + --tw-ring-color: var(--color-indigo-600); + } + } + .focus\:outline { + &:focus { + outline-style: var(--tw-outline-style); + outline-width: 1px; + } + } + .focus\:outline-2 { + &:focus { + outline-style: var(--tw-outline-style); + outline-width: 2px; + } + } + .focus\:-outline-offset-2 { + &:focus { + outline-offset: calc(2px * -1); + } + } + .focus\:outline-indigo-600 { + &:focus { + outline-color: var(--color-indigo-600); + } + } + .focus\:outline-none { + &:focus { + --tw-outline-style: none; + outline-style: none; + } + } + .focus\:ring-inset { + &:focus { + --tw-ring-inset: inset; + } + } + .focus-visible\:outline { + &:focus-visible { + outline-style: var(--tw-outline-style); + outline-width: 1px; + } + } + .focus-visible\:outline-2 { + &:focus-visible { + outline-style: var(--tw-outline-style); + outline-width: 2px; + } + } + .focus-visible\:outline-offset-2 { + &:focus-visible { + outline-offset: 2px; + } + } + .focus-visible\:outline-indigo-600 { + &:focus-visible { + outline-color: var(--color-indigo-600); + } + } + .sm\:col-span-1 { + @media (width >= 40rem) { + grid-column: span 1 / span 1; + } + } + .sm\:col-span-2 { + @media (width >= 40rem) { + grid-column: span 2 / span 2; + } + } + .sm\:-mx-6 { + @media (width >= 40rem) { + margin-inline: calc(var(--spacing) * -6); + } + } + .sm\:mt-0 { + @media (width >= 40rem) { + margin-top: calc(var(--spacing) * 0); + } + } + .sm\:table-cell { + @media (width >= 40rem) { + display: table-cell; + } + } + .sm\:flex-auto { + @media (width >= 40rem) { + flex: auto; + } + } + .sm\:grid-cols-2 { + @media (width >= 40rem) { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + } + .sm\:gap-y-16 { + @media (width >= 40rem) { + row-gap: calc(var(--spacing) * 16); + } + } + .sm\:rounded-lg { + @media (width >= 40rem) { + border-radius: var(--radius-lg); + } + } + .sm\:px-2 { + @media (width >= 40rem) { + padding-inline: calc(var(--spacing) * 2); + } + } + .sm\:px-6 { + @media (width >= 40rem) { + padding-inline: calc(var(--spacing) * 6); + } + } + .sm\:pb-24 { + @media (width >= 40rem) { + padding-bottom: calc(var(--spacing) * 24); + } + } + .sm\:text-4xl { + @media (width >= 40rem) { + font-size: var(--text-4xl); + line-height: var(--tw-leading, var(--text-4xl--line-height)); + } + } + .sm\:text-sm { + @media (width >= 40rem) { + font-size: var(--text-sm); + line-height: var(--tw-leading, var(--text-sm--line-height)); + } + } + .sm\:text-sm\/6 { + @media (width >= 40rem) { + font-size: var(--text-sm); + line-height: calc(var(--spacing) * 6); + } + } + .sm\:leading-6 { + @media (width >= 40rem) { + --tw-leading: calc(var(--spacing) * 6); + line-height: calc(var(--spacing) * 6); + } + } + .lg\:relative { + @media (width >= 64rem) { + position: relative; + } + } + .lg\:col-span-3 { + @media (width >= 64rem) { + grid-column: span 3 / span 3; + } + } + .lg\:-mx-4 { + @media (width >= 64rem) { + margin-inline: calc(var(--spacing) * -4); + } + } + .lg\:-mx-8 { + @media (width >= 64rem) { + margin-inline: calc(var(--spacing) * -8); + } + } + .lg\:mt-0 { + @media (width >= 64rem) { + margin-top: calc(var(--spacing) * 0); + } + } + .lg\:block { + @media (width >= 64rem) { + display: block; + } + } + .lg\:hidden { + @media (width >= 64rem) { + display: none; + } + } + .lg\:table-cell { + @media (width >= 64rem) { + display: table-cell; + } + } + .lg\:max-h-none { + @media (width >= 64rem) { + max-height: none; + } + } + .lg\:w-full { + @media (width >= 64rem) { + width: 100%; + } + } + .lg\:max-w-4xl { + @media (width >= 64rem) { + max-width: var(--container-4xl); + } + } + .lg\:max-w-none { + @media (width >= 64rem) { + max-width: none; + } + } + .lg\:grid-cols-3 { + @media (width >= 64rem) { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + } + .lg\:grid-cols-4 { + @media (width >= 64rem) { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + } + .lg\:flex-col { + @media (width >= 64rem) { + flex-direction: column; + } + } + .lg\:items-start { + @media (width >= 64rem) { + align-items: flex-start; + } + } + .lg\:gap-x-8 { + @media (width >= 64rem) { + column-gap: calc(var(--spacing) * 8); + } + } + .lg\:overflow-visible { + @media (width >= 64rem) { + overflow: visible; + } + } + .lg\:px-4 { + @media (width >= 64rem) { + padding-inline: calc(var(--spacing) * 4); + } + } + .lg\:px-8 { + @media (width >= 64rem) { + padding-inline: calc(var(--spacing) * 8); + } + } + .lg\:shadow-none { + @media (width >= 64rem) { + --tw-shadow: 0 0 #0000; + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + } + .lg\:ring-0 { + @media (width >= 64rem) { + --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + } +} +@property --tw-rotate-x { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-y { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-z { + syntax: "*"; + inherits: false; +} +@property --tw-skew-x { + syntax: "*"; + inherits: false; +} +@property --tw-skew-y { + syntax: "*"; + inherits: false; +} +@property --tw-space-y-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-space-x-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-divide-y-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-border-style { + syntax: "*"; + inherits: false; + initial-value: solid; +} +@property --tw-gradient-position { + syntax: "*"; + inherits: false; +} +@property --tw-gradient-from { + syntax: ""; + inherits: false; + initial-value: #0000; +} +@property --tw-gradient-via { + syntax: ""; + inherits: false; + initial-value: #0000; +} +@property --tw-gradient-to { + syntax: ""; + inherits: false; + initial-value: #0000; +} +@property --tw-gradient-stops { + syntax: "*"; + inherits: false; +} +@property --tw-gradient-via-stops { + syntax: "*"; + inherits: false; +} +@property --tw-gradient-from-position { + syntax: ""; + inherits: false; + initial-value: 0%; +} +@property --tw-gradient-via-position { + syntax: ""; + inherits: false; + initial-value: 50%; +} +@property --tw-gradient-to-position { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-leading { + syntax: "*"; + inherits: false; +} +@property --tw-font-weight { + syntax: "*"; + inherits: false; +} +@property --tw-tracking { + syntax: "*"; + inherits: false; +} +@property --tw-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-inset-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-inset-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-inset-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-ring-color { + syntax: "*"; + inherits: false; +} +@property --tw-ring-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-inset-ring-color { + syntax: "*"; + inherits: false; +} +@property --tw-inset-ring-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-ring-inset { + syntax: "*"; + inherits: false; +} +@property --tw-ring-offset-width { + syntax: ""; + inherits: false; + initial-value: 0px; +} +@property --tw-ring-offset-color { + syntax: "*"; + inherits: false; + initial-value: #fff; +} +@property --tw-ring-offset-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-outline-style { + syntax: "*"; + inherits: false; + initial-value: solid; +} +@property --tw-blur { + syntax: "*"; + inherits: false; +} +@property --tw-brightness { + syntax: "*"; + inherits: false; +} +@property --tw-contrast { + syntax: "*"; + inherits: false; +} +@property --tw-grayscale { + syntax: "*"; + inherits: false; +} +@property --tw-hue-rotate { + syntax: "*"; + inherits: false; +} +@property --tw-invert { + syntax: "*"; + inherits: false; +} +@property --tw-opacity { + syntax: "*"; + inherits: false; +} +@property --tw-saturate { + syntax: "*"; + inherits: false; +} +@property --tw-sepia { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-drop-shadow-size { + syntax: "*"; + inherits: false; +} +@property --tw-duration { + syntax: "*"; + inherits: false; +} +@layer properties { + @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { + *, ::before, ::after, ::backdrop { + --tw-rotate-x: initial; + --tw-rotate-y: initial; + --tw-rotate-z: initial; + --tw-skew-x: initial; + --tw-skew-y: initial; + --tw-space-y-reverse: 0; + --tw-space-x-reverse: 0; + --tw-divide-y-reverse: 0; + --tw-border-style: solid; + --tw-gradient-position: initial; + --tw-gradient-from: #0000; + --tw-gradient-via: #0000; + --tw-gradient-to: #0000; + --tw-gradient-stops: initial; + --tw-gradient-via-stops: initial; + --tw-gradient-from-position: 0%; + --tw-gradient-via-position: 50%; + --tw-gradient-to-position: 100%; + --tw-leading: initial; + --tw-font-weight: initial; + --tw-tracking: initial; + --tw-shadow: 0 0 #0000; + --tw-shadow-color: initial; + --tw-shadow-alpha: 100%; + --tw-inset-shadow: 0 0 #0000; + --tw-inset-shadow-color: initial; + --tw-inset-shadow-alpha: 100%; + --tw-ring-color: initial; + --tw-ring-shadow: 0 0 #0000; + --tw-inset-ring-color: initial; + --tw-inset-ring-shadow: 0 0 #0000; + --tw-ring-inset: initial; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-offset-shadow: 0 0 #0000; + --tw-outline-style: solid; + --tw-blur: initial; + --tw-brightness: initial; + --tw-contrast: initial; + --tw-grayscale: initial; + --tw-hue-rotate: initial; + --tw-invert: initial; + --tw-opacity: initial; + --tw-saturate: initial; + --tw-sepia: initial; + --tw-drop-shadow: initial; + --tw-drop-shadow-color: initial; + --tw-drop-shadow-alpha: 100%; + --tw-drop-shadow-size: initial; + --tw-duration: initial; + } + } +}