@squadbase/vantage-template 0.1.1-dev1.425690d → 0.1.1-dev1.4742520

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1114,6 +1114,947 @@ function listTemplates(options = {}) {
1114
1114
  }
1115
1115
  }
1116
1116
 
1117
+ // src/commands/theme.ts
1118
+ import { existsSync as existsSync8, readFileSync as readFileSync6, writeFileSync as writeFileSync4 } from "fs";
1119
+ import { relative as relative3 } from "path";
1120
+
1121
+ // ../squadkit/theme-presets/build-css.ts
1122
+ var LIGHT_ONLY = /* @__PURE__ */ new Set(["radius", "font-sans"]);
1123
+ var KEY_RE = /^[a-z0-9-]+$/i;
1124
+ var UNSAFE_VALUE_RE = /[;{}<>]/;
1125
+ var declarations = (vars, mode) => Object.entries(vars ?? {}).flatMap(([rawKey, rawValue]) => {
1126
+ const key = rawKey.replace(/^--/, "");
1127
+ const value = typeof rawValue === "string" ? rawValue.trim() : "";
1128
+ if (!KEY_RE.test(key) || !value || UNSAFE_VALUE_RE.test(value) || mode === "dark" && LIGHT_ONLY.has(key)) {
1129
+ return [];
1130
+ }
1131
+ return [[key, value]];
1132
+ });
1133
+ var resolveVars = (mode, vars) => Object.fromEntries(declarations(vars[mode], mode));
1134
+ var prettyBlock = (selector, vars) => {
1135
+ const entries = Object.entries(vars);
1136
+ return entries.length ? `${selector} {
1137
+ ${entries.map(([key, value]) => ` --${key}: ${value};`).join("\n")}
1138
+ }` : "";
1139
+ };
1140
+ var buildThemeCss = (cssVars) => [
1141
+ prettyBlock(":root", resolveVars("light", cssVars)),
1142
+ prettyBlock('.dark,\n[data-theme="dark"]', resolveVars("dark", cssVars))
1143
+ ].filter(Boolean).join("\n\n");
1144
+
1145
+ // ../squadkit/theme-presets/data.generated.ts
1146
+ var THEME_PRESETS_DATA = [
1147
+ {
1148
+ "id": "neutral",
1149
+ "title": "\u30CB\u30E5\u30FC\u30C8\u30E9\u30EB",
1150
+ "description": "\u65E2\u5B9A\u306E\u30CB\u30E5\u30FC\u30C8\u30E9\u30EB\u306B\u623B\u3059\u30D7\u30EA\u30BB\u30C3\u30C8\u3002\u57FA\u5E95\u306E theme \u3068\u540C\u3058\u5024\u3067\u3001\u30D7\u30EA\u30BB\u30C3\u30C8\u3092\u5207\u308A\u66FF\u3048\u308B\u3068\u304D\u306E\u8D77\u70B9\u306B\u3059\u308B\u3002",
1151
+ "cssVars": {
1152
+ "light": {
1153
+ "radius": "0.5rem",
1154
+ "font-sans": '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, ui-sans-serif, system-ui, sans-serif',
1155
+ "background": "oklch(0.975 0.004 255)",
1156
+ "card": "oklch(1 0 0)",
1157
+ "popover": "oklch(1 0 0)",
1158
+ "secondary": "oklch(0.965 0.005 255)",
1159
+ "muted": "oklch(0.965 0.005 255)",
1160
+ "accent": "oklch(0.955 0.01 255)",
1161
+ "sidebar": "oklch(0.985 0.003 255)",
1162
+ "sidebar-accent": "oklch(0.955 0.01 255)",
1163
+ "border": "oklch(0.93 0.006 255)",
1164
+ "input": "oklch(0.9 0.01 255)",
1165
+ "sidebar-border": "oklch(0.915 0.008 255)",
1166
+ "foreground": "oklch(0.21 0.02 260)",
1167
+ "card-foreground": "oklch(0.21 0.02 260)",
1168
+ "popover-foreground": "oklch(0.21 0.02 260)",
1169
+ "secondary-foreground": "oklch(0.25 0.02 260)",
1170
+ "muted-foreground": "oklch(0.5 0.02 258)",
1171
+ "accent-foreground": "oklch(0.25 0.02 260)",
1172
+ "sidebar-foreground": "oklch(0.21 0.02 260)",
1173
+ "sidebar-accent-foreground": "oklch(0.25 0.02 260)",
1174
+ "primary": "oklch(0.55 0.2 262)",
1175
+ "primary-foreground": "oklch(0.985 0 0)",
1176
+ "ring": "oklch(0.7 0.12 262)",
1177
+ "sidebar-primary": "oklch(0.55 0.2 262)",
1178
+ "sidebar-primary-foreground": "oklch(0.985 0 0)",
1179
+ "sidebar-ring": "oklch(0.7 0.12 262)",
1180
+ "chart-1": "oklch(0.55 0.2 262)",
1181
+ "chart-2": "oklch(0.62 0.17 118)",
1182
+ "chart-3": "oklch(0.5 0.19 352)",
1183
+ "chart-4": "oklch(0.62 0.1 195)",
1184
+ "chart-5": "oklch(0.44 0.18 300)",
1185
+ "positive": "oklch(0.52 0.14 150)",
1186
+ "positive-subtle": "oklch(0.96 0.04 150)",
1187
+ "positive-fill": "oklch(0.62 0.15 150)",
1188
+ "negative": "oklch(0.53 0.19 25)",
1189
+ "negative-subtle": "oklch(0.96 0.03 25)",
1190
+ "negative-fill": "oklch(0.62 0.17 25)",
1191
+ "warning": "oklch(0.53 0.12 70)",
1192
+ "warning-subtle": "oklch(0.96 0.05 85)",
1193
+ "warning-fill": "oklch(0.79 0.16 82)",
1194
+ "info": "oklch(0.52 0.16 255)",
1195
+ "info-subtle": "oklch(0.96 0.03 250)",
1196
+ "info-fill": "oklch(0.62 0.15 250)",
1197
+ "neutral": "oklch(0.52 0 0)",
1198
+ "neutral-subtle": "oklch(0.96 0 0)",
1199
+ "neutral-fill": "oklch(0.62 0 0)",
1200
+ "destructive": "oklch(0.53 0.21 27.325)",
1201
+ "destructive-foreground": "oklch(0.985 0 0)"
1202
+ },
1203
+ "dark": {
1204
+ "background": "oklch(0.16 0.012 262)",
1205
+ "card": "oklch(0.215 0.015 262)",
1206
+ "popover": "oklch(0.235 0.016 262)",
1207
+ "secondary": "oklch(0.27 0.016 262)",
1208
+ "muted": "oklch(0.27 0.016 262)",
1209
+ "accent": "oklch(0.3 0.02 262)",
1210
+ "sidebar": "oklch(0.2 0.014 262)",
1211
+ "sidebar-accent": "oklch(0.3 0.02 262)",
1212
+ "border": "oklch(1 0 0 / 10%)",
1213
+ "input": "oklch(1 0 0 / 15%)",
1214
+ "sidebar-border": "oklch(1 0 0 / 10%)",
1215
+ "foreground": "oklch(0.96 0.005 255)",
1216
+ "card-foreground": "oklch(0.96 0.005 255)",
1217
+ "popover-foreground": "oklch(0.96 0.005 255)",
1218
+ "secondary-foreground": "oklch(0.96 0.005 255)",
1219
+ "muted-foreground": "oklch(0.72 0.02 258)",
1220
+ "accent-foreground": "oklch(0.96 0.005 255)",
1221
+ "sidebar-foreground": "oklch(0.96 0.005 255)",
1222
+ "sidebar-accent-foreground": "oklch(0.96 0.005 255)",
1223
+ "primary": "oklch(0.68 0.19 262)",
1224
+ "primary-foreground": "oklch(0.145 0.02 262)",
1225
+ "ring": "oklch(0.6 0.15 262)",
1226
+ "sidebar-primary": "oklch(0.68 0.19 262)",
1227
+ "sidebar-primary-foreground": "oklch(0.145 0.02 262)",
1228
+ "sidebar-ring": "oklch(0.6 0.15 262)",
1229
+ "chart-1": "oklch(0.56 0.19 262)",
1230
+ "chart-2": "oklch(0.75 0.17 118)",
1231
+ "chart-3": "oklch(0.64 0.19 352)",
1232
+ "chart-4": "oklch(0.78 0.105 195)",
1233
+ "chart-5": "oklch(0.71 0.17 300)",
1234
+ "positive": "oklch(0.76 0.15 150)",
1235
+ "positive-subtle": "oklch(0.27 0.05 150)",
1236
+ "positive-fill": "oklch(0.56 0.13 150)",
1237
+ "negative": "oklch(0.74 0.15 22)",
1238
+ "negative-subtle": "oklch(0.27 0.06 25)",
1239
+ "negative-fill": "oklch(0.56 0.15 22)",
1240
+ "warning": "oklch(0.8 0.14 80)",
1241
+ "warning-subtle": "oklch(0.27 0.05 75)",
1242
+ "warning-fill": "oklch(0.73 0.145 78)",
1243
+ "info": "oklch(0.75 0.12 250)",
1244
+ "info-subtle": "oklch(0.27 0.06 255)",
1245
+ "info-fill": "oklch(0.56 0.13 250)",
1246
+ "neutral": "oklch(0.85 0 0)",
1247
+ "neutral-subtle": "oklch(0.27 0 0)",
1248
+ "neutral-fill": "oklch(0.56 0 0)",
1249
+ "destructive": "oklch(0.704 0.191 22.216)",
1250
+ "destructive-foreground": "oklch(0.145 0.02 262)"
1251
+ }
1252
+ }
1253
+ },
1254
+ {
1255
+ "id": "ocean",
1256
+ "title": "\u30AA\u30FC\u30B7\u30E3\u30F3",
1257
+ "description": "\u9752\u3092\u57FA\u8ABF\u306B\u3057\u305F\u30D7\u30EA\u30BB\u30C3\u30C8\u3002\u843D\u3061\u7740\u3044\u305F\u4FE1\u983C\u611F\u306E\u3042\u308B\u914D\u8272\u3067\u3001\u89D2\u4E38\u306F\u6A19\u6E96\u3088\u308A\u5C0F\u3055\u3081\u306E\u3084\u3084\u89D2\u3070\u3063\u305F\u5370\u8C61\u3002",
1258
+ "cssVars": {
1259
+ "light": {
1260
+ "radius": "0.375rem",
1261
+ "font-sans": '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, ui-sans-serif, system-ui, sans-serif',
1262
+ "background": "oklch(0.975 0.004 245)",
1263
+ "card": "oklch(1 0 245)",
1264
+ "popover": "oklch(1 0 245)",
1265
+ "secondary": "oklch(0.965 0.005 245)",
1266
+ "muted": "oklch(0.965 0.005 245)",
1267
+ "accent": "oklch(0.955 0.01 245)",
1268
+ "sidebar": "oklch(0.985 0.003 245)",
1269
+ "sidebar-accent": "oklch(0.955 0.01 245)",
1270
+ "border": "oklch(0.93 0.006 245)",
1271
+ "input": "oklch(0.9 0.01 245)",
1272
+ "sidebar-border": "oklch(0.915 0.008 245)",
1273
+ "foreground": "oklch(0.21 0.02 245)",
1274
+ "card-foreground": "oklch(0.21 0.02 245)",
1275
+ "popover-foreground": "oklch(0.21 0.02 245)",
1276
+ "secondary-foreground": "oklch(0.25 0.02 245)",
1277
+ "muted-foreground": "oklch(0.5 0.02 245)",
1278
+ "accent-foreground": "oklch(0.25 0.02 245)",
1279
+ "sidebar-foreground": "oklch(0.21 0.02 245)",
1280
+ "sidebar-accent-foreground": "oklch(0.25 0.02 245)",
1281
+ "primary": "oklch(0.52 0.2 258)",
1282
+ "primary-foreground": "oklch(0.985 0 0)",
1283
+ "ring": "oklch(0.7 0.12 255)",
1284
+ "sidebar-primary": "oklch(0.52 0.2 258)",
1285
+ "sidebar-primary-foreground": "oklch(0.985 0 0)",
1286
+ "sidebar-ring": "oklch(0.7 0.12 255)",
1287
+ "chart-1": "oklch(0.52 0.2 258)",
1288
+ "chart-2": "oklch(0.7 0.12 200)",
1289
+ "chart-3": "oklch(0.6 0.23 300)",
1290
+ "chart-4": "oklch(0.63 0.24 335)",
1291
+ "chart-5": "oklch(0.76 0.2 135)",
1292
+ "positive": "oklch(0.52 0.14 155)",
1293
+ "positive-subtle": "oklch(0.96 0.04 155)",
1294
+ "positive-fill": "oklch(0.62 0.15 155)",
1295
+ "negative": "oklch(0.53 0.19 22)",
1296
+ "negative-subtle": "oklch(0.96 0.03 22)",
1297
+ "negative-fill": "oklch(0.62 0.17 22)",
1298
+ "warning": "oklch(0.53 0.12 75)",
1299
+ "warning-subtle": "oklch(0.96 0.05 90)",
1300
+ "warning-fill": "oklch(0.79 0.16 87)",
1301
+ "info": "oklch(0.52 0.16 245)",
1302
+ "info-subtle": "oklch(0.96 0.03 240)",
1303
+ "info-fill": "oklch(0.62 0.15 240)",
1304
+ "neutral": "oklch(0.52 0 0)",
1305
+ "neutral-subtle": "oklch(0.96 0 0)",
1306
+ "neutral-fill": "oklch(0.62 0 0)",
1307
+ "destructive": "oklch(0.53 0.19 22)",
1308
+ "destructive-foreground": "oklch(0.985 0 0)"
1309
+ },
1310
+ "dark": {
1311
+ "background": "oklch(0.16 0.012 245)",
1312
+ "card": "oklch(0.215 0.015 245)",
1313
+ "popover": "oklch(0.235 0.016 245)",
1314
+ "secondary": "oklch(0.27 0.016 245)",
1315
+ "muted": "oklch(0.27 0.016 245)",
1316
+ "accent": "oklch(0.3 0.02 245)",
1317
+ "sidebar": "oklch(0.2 0.014 245)",
1318
+ "sidebar-accent": "oklch(0.3 0.02 245)",
1319
+ "border": "oklch(1 0 0 / 10%)",
1320
+ "input": "oklch(1 0 0 / 15%)",
1321
+ "sidebar-border": "oklch(1 0 0 / 10%)",
1322
+ "foreground": "oklch(0.96 0.005 245)",
1323
+ "card-foreground": "oklch(0.96 0.005 245)",
1324
+ "popover-foreground": "oklch(0.96 0.005 245)",
1325
+ "secondary-foreground": "oklch(0.96 0.005 245)",
1326
+ "muted-foreground": "oklch(0.72 0.02 245)",
1327
+ "accent-foreground": "oklch(0.96 0.005 245)",
1328
+ "sidebar-foreground": "oklch(0.96 0.005 245)",
1329
+ "sidebar-accent-foreground": "oklch(0.96 0.005 245)",
1330
+ "primary": "oklch(0.72 0.14 250)",
1331
+ "primary-foreground": "oklch(0.145 0.03 255)",
1332
+ "ring": "oklch(0.55 0.14 255)",
1333
+ "sidebar-primary": "oklch(0.72 0.14 250)",
1334
+ "sidebar-primary-foreground": "oklch(0.145 0.03 255)",
1335
+ "sidebar-ring": "oklch(0.55 0.14 255)",
1336
+ "chart-1": "oklch(0.55 0.2 258)",
1337
+ "chart-2": "oklch(0.78 0.12 200)",
1338
+ "chart-3": "oklch(0.68 0.2 300)",
1339
+ "chart-4": "oklch(0.7 0.22 335)",
1340
+ "chart-5": "oklch(0.82 0.19 135)",
1341
+ "positive": "oklch(0.76 0.15 155)",
1342
+ "positive-subtle": "oklch(0.27 0.05 155)",
1343
+ "positive-fill": "oklch(0.56 0.13 155)",
1344
+ "negative": "oklch(0.74 0.15 19)",
1345
+ "negative-subtle": "oklch(0.27 0.06 22)",
1346
+ "negative-fill": "oklch(0.56 0.15 19)",
1347
+ "warning": "oklch(0.8 0.14 85)",
1348
+ "warning-subtle": "oklch(0.27 0.05 80)",
1349
+ "warning-fill": "oklch(0.73 0.145 83)",
1350
+ "info": "oklch(0.75 0.12 240)",
1351
+ "info-subtle": "oklch(0.27 0.06 245)",
1352
+ "info-fill": "oklch(0.56 0.13 240)",
1353
+ "neutral": "oklch(0.85 0 0)",
1354
+ "neutral-subtle": "oklch(0.27 0 0)",
1355
+ "neutral-fill": "oklch(0.56 0 0)",
1356
+ "destructive": "oklch(0.74 0.15 19)",
1357
+ "destructive-foreground": "oklch(0.145 0.03 255)"
1358
+ }
1359
+ }
1360
+ },
1361
+ {
1362
+ "id": "forest",
1363
+ "title": "\u30D5\u30A9\u30EC\u30B9\u30C8",
1364
+ "description": "\u7DD1\u3092\u57FA\u8ABF\u306B\u3057\u305F\u30D7\u30EA\u30BB\u30C3\u30C8\u3002\u89D2\u4E38\u306F\u3084\u3084\u5C0F\u3055\u3081\u3002\u66F8\u4F53\u306F\u4E38\u30B4\u30B7\u30C3\u30AF\u7CFB\uFF08Safari \u306E ui-rounded\u3001macOS / iOS \u306E\u30D2\u30E9\u30AE\u30CE\u4E38\u30B4\u3002\u307B\u304B\u306E\u74B0\u5883\u306F\u6A19\u6E96\u306E\u66F8\u4F53\uFF09\u3002",
1365
+ "cssVars": {
1366
+ "light": {
1367
+ "radius": "0.5rem",
1368
+ "font-sans": 'ui-rounded, "Hiragino Maru Gothic ProN", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, ui-sans-serif, system-ui, sans-serif',
1369
+ "background": "oklch(0.975 0.004 175)",
1370
+ "card": "oklch(1 0 175)",
1371
+ "popover": "oklch(1 0 175)",
1372
+ "secondary": "oklch(0.965 0.005 175)",
1373
+ "muted": "oklch(0.965 0.005 175)",
1374
+ "accent": "oklch(0.955 0.01 175)",
1375
+ "sidebar": "oklch(0.985 0.003 175)",
1376
+ "sidebar-accent": "oklch(0.955 0.01 175)",
1377
+ "border": "oklch(0.93 0.006 175)",
1378
+ "input": "oklch(0.9 0.01 175)",
1379
+ "sidebar-border": "oklch(0.915 0.008 175)",
1380
+ "foreground": "oklch(0.21 0.02 175)",
1381
+ "card-foreground": "oklch(0.21 0.02 175)",
1382
+ "popover-foreground": "oklch(0.21 0.02 175)",
1383
+ "secondary-foreground": "oklch(0.25 0.02 175)",
1384
+ "muted-foreground": "oklch(0.5 0.02 175)",
1385
+ "accent-foreground": "oklch(0.25 0.02 175)",
1386
+ "sidebar-foreground": "oklch(0.21 0.02 175)",
1387
+ "sidebar-accent-foreground": "oklch(0.25 0.02 175)",
1388
+ "primary": "oklch(0.5 0.12 183)",
1389
+ "primary-foreground": "oklch(0.985 0 0)",
1390
+ "ring": "oklch(0.7 0.1 183)",
1391
+ "sidebar-primary": "oklch(0.5 0.12 183)",
1392
+ "sidebar-primary-foreground": "oklch(0.985 0 0)",
1393
+ "sidebar-ring": "oklch(0.7 0.1 183)",
1394
+ "chart-1": "oklch(0.5 0.12 183)",
1395
+ "chart-2": "oklch(0.6 0.19 255)",
1396
+ "chart-3": "oklch(0.72 0.2 125)",
1397
+ "chart-4": "oklch(0.58 0.22 310)",
1398
+ "chart-5": "oklch(0.64 0.22 345)",
1399
+ "positive": "oklch(0.52 0.126 142)",
1400
+ "positive-subtle": "oklch(0.96 0.04 142)",
1401
+ "positive-fill": "oklch(0.62 0.12 142)",
1402
+ "negative": "oklch(0.53 0.171 28)",
1403
+ "negative-subtle": "oklch(0.96 0.03 28)",
1404
+ "negative-fill": "oklch(0.62 0.136 28)",
1405
+ "warning": "oklch(0.53 0.108 78)",
1406
+ "warning-subtle": "oklch(0.96 0.05 93)",
1407
+ "warning-fill": "oklch(0.79 0.128 90)",
1408
+ "info": "oklch(0.52 0.144 250)",
1409
+ "info-subtle": "oklch(0.96 0.03 245)",
1410
+ "info-fill": "oklch(0.62 0.12 245)",
1411
+ "neutral": "oklch(0.52 0 0)",
1412
+ "neutral-subtle": "oklch(0.96 0 0)",
1413
+ "neutral-fill": "oklch(0.62 0 0)",
1414
+ "destructive": "oklch(0.53 0.171 28)",
1415
+ "destructive-foreground": "oklch(0.985 0 0)"
1416
+ },
1417
+ "dark": {
1418
+ "background": "oklch(0.16 0.012 175)",
1419
+ "card": "oklch(0.215 0.015 175)",
1420
+ "popover": "oklch(0.235 0.016 175)",
1421
+ "secondary": "oklch(0.27 0.016 175)",
1422
+ "muted": "oklch(0.27 0.016 175)",
1423
+ "accent": "oklch(0.3 0.02 175)",
1424
+ "sidebar": "oklch(0.2 0.014 175)",
1425
+ "sidebar-accent": "oklch(0.3 0.02 175)",
1426
+ "border": "oklch(1 0 0 / 10%)",
1427
+ "input": "oklch(1 0 0 / 15%)",
1428
+ "sidebar-border": "oklch(1 0 0 / 10%)",
1429
+ "foreground": "oklch(0.96 0.005 175)",
1430
+ "card-foreground": "oklch(0.96 0.005 175)",
1431
+ "popover-foreground": "oklch(0.96 0.005 175)",
1432
+ "secondary-foreground": "oklch(0.96 0.005 175)",
1433
+ "muted-foreground": "oklch(0.72 0.02 175)",
1434
+ "accent-foreground": "oklch(0.96 0.005 175)",
1435
+ "sidebar-foreground": "oklch(0.96 0.005 175)",
1436
+ "sidebar-accent-foreground": "oklch(0.96 0.005 175)",
1437
+ "primary": "oklch(0.75 0.13 183)",
1438
+ "primary-foreground": "oklch(0.145 0.03 183)",
1439
+ "ring": "oklch(0.53 0.12 183)",
1440
+ "sidebar-primary": "oklch(0.75 0.13 183)",
1441
+ "sidebar-primary-foreground": "oklch(0.145 0.03 183)",
1442
+ "sidebar-ring": "oklch(0.53 0.12 183)",
1443
+ "chart-1": "oklch(0.53 0.12 183)",
1444
+ "chart-2": "oklch(0.7 0.18 255)",
1445
+ "chart-3": "oklch(0.8 0.2 125)",
1446
+ "chart-4": "oklch(0.7 0.2 310)",
1447
+ "chart-5": "oklch(0.72 0.2 345)",
1448
+ "positive": "oklch(0.76 0.135 142)",
1449
+ "positive-subtle": "oklch(0.27 0.05 142)",
1450
+ "positive-fill": "oklch(0.56 0.104 142)",
1451
+ "negative": "oklch(0.74 0.135 25)",
1452
+ "negative-subtle": "oklch(0.27 0.06 28)",
1453
+ "negative-fill": "oklch(0.56 0.12 25)",
1454
+ "warning": "oklch(0.8 0.126 88)",
1455
+ "warning-subtle": "oklch(0.27 0.05 83)",
1456
+ "warning-fill": "oklch(0.73 0.116 86)",
1457
+ "info": "oklch(0.75 0.108 245)",
1458
+ "info-subtle": "oklch(0.27 0.06 250)",
1459
+ "info-fill": "oklch(0.56 0.104 245)",
1460
+ "neutral": "oklch(0.85 0 0)",
1461
+ "neutral-subtle": "oklch(0.27 0 0)",
1462
+ "neutral-fill": "oklch(0.56 0 0)",
1463
+ "destructive": "oklch(0.74 0.135 25)",
1464
+ "destructive-foreground": "oklch(0.145 0.03 183)"
1465
+ }
1466
+ }
1467
+ },
1468
+ {
1469
+ "id": "sunset",
1470
+ "title": "\u30B5\u30F3\u30BB\u30C3\u30C8",
1471
+ "description": "\u6A59\u3092\u57FA\u8ABF\u306B\u3057\u305F\u30D7\u30EA\u30BB\u30C3\u30C8\u3002\u6E29\u304B\u307F\u306E\u3042\u308B\u914D\u8272\u3067\u3001\u89D2\u4E38\u306F\u3084\u3084\u5927\u304D\u3081\u3002",
1472
+ "cssVars": {
1473
+ "light": {
1474
+ "radius": "0.75rem",
1475
+ "font-sans": '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, ui-sans-serif, system-ui, sans-serif',
1476
+ "background": "oklch(0.975 0.004 60)",
1477
+ "card": "oklch(1 0 60)",
1478
+ "popover": "oklch(1 0 60)",
1479
+ "secondary": "oklch(0.965 0.005 60)",
1480
+ "muted": "oklch(0.965 0.005 60)",
1481
+ "accent": "oklch(0.955 0.01 60)",
1482
+ "sidebar": "oklch(0.985 0.003 60)",
1483
+ "sidebar-accent": "oklch(0.955 0.01 60)",
1484
+ "border": "oklch(0.93 0.006 60)",
1485
+ "input": "oklch(0.9 0.01 60)",
1486
+ "sidebar-border": "oklch(0.915 0.008 60)",
1487
+ "foreground": "oklch(0.21 0.02 60)",
1488
+ "card-foreground": "oklch(0.21 0.02 60)",
1489
+ "popover-foreground": "oklch(0.21 0.02 60)",
1490
+ "secondary-foreground": "oklch(0.25 0.02 60)",
1491
+ "muted-foreground": "oklch(0.5 0.02 60)",
1492
+ "accent-foreground": "oklch(0.25 0.02 60)",
1493
+ "sidebar-foreground": "oklch(0.21 0.02 60)",
1494
+ "sidebar-accent-foreground": "oklch(0.25 0.02 60)",
1495
+ "primary": "oklch(0.56 0.15 47)",
1496
+ "primary-foreground": "oklch(0.985 0 0)",
1497
+ "ring": "oklch(0.72 0.12 47)",
1498
+ "sidebar-primary": "oklch(0.56 0.15 47)",
1499
+ "sidebar-primary-foreground": "oklch(0.985 0 0)",
1500
+ "sidebar-ring": "oklch(0.72 0.12 47)",
1501
+ "chart-1": "oklch(0.56 0.15 47)",
1502
+ "chart-2": "oklch(0.58 0.2 255)",
1503
+ "chart-3": "oklch(0.63 0.24 335)",
1504
+ "chart-4": "oklch(0.7 0.12 195)",
1505
+ "chart-5": "oklch(0.58 0.23 300)",
1506
+ "positive": "oklch(0.52 0.14 148)",
1507
+ "positive-subtle": "oklch(0.96 0.04 148)",
1508
+ "positive-fill": "oklch(0.62 0.15 148)",
1509
+ "negative": "oklch(0.53 0.19 17)",
1510
+ "negative-subtle": "oklch(0.96 0.03 17)",
1511
+ "negative-fill": "oklch(0.62 0.17 17)",
1512
+ "warning": "oklch(0.5 0.12 82)",
1513
+ "warning-subtle": "oklch(0.96 0.05 97)",
1514
+ "warning-fill": "oklch(0.77 0.16 94)",
1515
+ "info": "oklch(0.52 0.16 250)",
1516
+ "info-subtle": "oklch(0.96 0.03 245)",
1517
+ "info-fill": "oklch(0.62 0.15 245)",
1518
+ "neutral": "oklch(0.52 0 0)",
1519
+ "neutral-subtle": "oklch(0.96 0 0)",
1520
+ "neutral-fill": "oklch(0.62 0 0)",
1521
+ "destructive": "oklch(0.53 0.19 17)",
1522
+ "destructive-foreground": "oklch(0.985 0 0)"
1523
+ },
1524
+ "dark": {
1525
+ "background": "oklch(0.16 0.012 60)",
1526
+ "card": "oklch(0.215 0.015 60)",
1527
+ "popover": "oklch(0.235 0.016 60)",
1528
+ "secondary": "oklch(0.27 0.016 60)",
1529
+ "muted": "oklch(0.27 0.016 60)",
1530
+ "accent": "oklch(0.3 0.02 60)",
1531
+ "sidebar": "oklch(0.2 0.014 60)",
1532
+ "sidebar-accent": "oklch(0.3 0.02 60)",
1533
+ "border": "oklch(1 0 0 / 10%)",
1534
+ "input": "oklch(1 0 0 / 15%)",
1535
+ "sidebar-border": "oklch(1 0 0 / 10%)",
1536
+ "foreground": "oklch(0.96 0.005 60)",
1537
+ "card-foreground": "oklch(0.96 0.005 60)",
1538
+ "popover-foreground": "oklch(0.96 0.005 60)",
1539
+ "secondary-foreground": "oklch(0.96 0.005 60)",
1540
+ "muted-foreground": "oklch(0.72 0.02 60)",
1541
+ "accent-foreground": "oklch(0.96 0.005 60)",
1542
+ "sidebar-foreground": "oklch(0.96 0.005 60)",
1543
+ "sidebar-accent-foreground": "oklch(0.96 0.005 60)",
1544
+ "primary": "oklch(0.76 0.16 52)",
1545
+ "primary-foreground": "oklch(0.145 0.03 50)",
1546
+ "ring": "oklch(0.58 0.13 47)",
1547
+ "sidebar-primary": "oklch(0.76 0.16 52)",
1548
+ "sidebar-primary-foreground": "oklch(0.145 0.03 50)",
1549
+ "sidebar-ring": "oklch(0.58 0.13 47)",
1550
+ "chart-1": "oklch(0.57 0.15 47)",
1551
+ "chart-2": "oklch(0.68 0.18 255)",
1552
+ "chart-3": "oklch(0.7 0.22 335)",
1553
+ "chart-4": "oklch(0.78 0.12 195)",
1554
+ "chart-5": "oklch(0.68 0.2 300)",
1555
+ "positive": "oklch(0.76 0.15 148)",
1556
+ "positive-subtle": "oklch(0.27 0.05 148)",
1557
+ "positive-fill": "oklch(0.56 0.13 148)",
1558
+ "negative": "oklch(0.74 0.15 15)",
1559
+ "negative-subtle": "oklch(0.27 0.06 18)",
1560
+ "negative-fill": "oklch(0.56 0.15 15)",
1561
+ "warning": "oklch(0.8 0.14 92)",
1562
+ "warning-subtle": "oklch(0.27 0.05 87)",
1563
+ "warning-fill": "oklch(0.73 0.145 90)",
1564
+ "info": "oklch(0.75 0.12 245)",
1565
+ "info-subtle": "oklch(0.27 0.06 250)",
1566
+ "info-fill": "oklch(0.56 0.13 245)",
1567
+ "neutral": "oklch(0.85 0 0)",
1568
+ "neutral-subtle": "oklch(0.27 0 0)",
1569
+ "neutral-fill": "oklch(0.56 0 0)",
1570
+ "destructive": "oklch(0.74 0.15 15)",
1571
+ "destructive-foreground": "oklch(0.145 0.03 50)"
1572
+ }
1573
+ }
1574
+ },
1575
+ {
1576
+ "id": "violet",
1577
+ "title": "\u30D0\u30A4\u30AA\u30EC\u30C3\u30C8",
1578
+ "description": "\u7D2B\u3092\u57FA\u8ABF\u306B\u3057\u305F\u30D7\u30EA\u30BB\u30C3\u30C8\u3002\u89D2\u4E38\u306F\u5927\u304D\u3081\u3067\u3084\u308F\u3089\u304B\u3044\u5370\u8C61\u3002",
1579
+ "cssVars": {
1580
+ "light": {
1581
+ "radius": "0.875rem",
1582
+ "font-sans": '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, ui-sans-serif, system-ui, sans-serif',
1583
+ "background": "oklch(0.975 0.004 290)",
1584
+ "card": "oklch(1 0 290)",
1585
+ "popover": "oklch(1 0 290)",
1586
+ "secondary": "oklch(0.965 0.005 290)",
1587
+ "muted": "oklch(0.965 0.005 290)",
1588
+ "accent": "oklch(0.955 0.01 290)",
1589
+ "sidebar": "oklch(0.985 0.003 290)",
1590
+ "sidebar-accent": "oklch(0.955 0.01 290)",
1591
+ "border": "oklch(0.93 0.006 290)",
1592
+ "input": "oklch(0.9 0.01 290)",
1593
+ "sidebar-border": "oklch(0.915 0.008 290)",
1594
+ "foreground": "oklch(0.21 0.02 290)",
1595
+ "card-foreground": "oklch(0.21 0.02 290)",
1596
+ "popover-foreground": "oklch(0.21 0.02 290)",
1597
+ "secondary-foreground": "oklch(0.25 0.02 290)",
1598
+ "muted-foreground": "oklch(0.5 0.02 290)",
1599
+ "accent-foreground": "oklch(0.25 0.02 290)",
1600
+ "sidebar-foreground": "oklch(0.21 0.02 290)",
1601
+ "sidebar-accent-foreground": "oklch(0.25 0.02 290)",
1602
+ "primary": "oklch(0.5 0.22 292)",
1603
+ "primary-foreground": "oklch(0.985 0 0)",
1604
+ "ring": "oklch(0.7 0.14 292)",
1605
+ "sidebar-primary": "oklch(0.5 0.22 292)",
1606
+ "sidebar-primary-foreground": "oklch(0.985 0 0)",
1607
+ "sidebar-ring": "oklch(0.7 0.14 292)",
1608
+ "chart-1": "oklch(0.5 0.22 292)",
1609
+ "chart-2": "oklch(0.7 0.13 215)",
1610
+ "chart-3": "oklch(0.63 0.24 335)",
1611
+ "chart-4": "oklch(0.76 0.2 125)",
1612
+ "chart-5": "oklch(0.58 0.2 255)",
1613
+ "positive": "oklch(0.52 0.14 152)",
1614
+ "positive-subtle": "oklch(0.96 0.04 152)",
1615
+ "positive-fill": "oklch(0.62 0.15 152)",
1616
+ "negative": "oklch(0.53 0.19 20)",
1617
+ "negative-subtle": "oklch(0.96 0.03 20)",
1618
+ "negative-fill": "oklch(0.62 0.17 20)",
1619
+ "warning": "oklch(0.53 0.12 75)",
1620
+ "warning-subtle": "oklch(0.96 0.05 90)",
1621
+ "warning-fill": "oklch(0.79 0.16 87)",
1622
+ "info": "oklch(0.52 0.16 245)",
1623
+ "info-subtle": "oklch(0.96 0.03 240)",
1624
+ "info-fill": "oklch(0.62 0.15 240)",
1625
+ "neutral": "oklch(0.52 0 0)",
1626
+ "neutral-subtle": "oklch(0.96 0 0)",
1627
+ "neutral-fill": "oklch(0.62 0 0)",
1628
+ "destructive": "oklch(0.53 0.19 20)",
1629
+ "destructive-foreground": "oklch(0.985 0 0)"
1630
+ },
1631
+ "dark": {
1632
+ "background": "oklch(0.16 0.012 290)",
1633
+ "card": "oklch(0.215 0.015 290)",
1634
+ "popover": "oklch(0.235 0.016 290)",
1635
+ "secondary": "oklch(0.27 0.016 290)",
1636
+ "muted": "oklch(0.27 0.016 290)",
1637
+ "accent": "oklch(0.3 0.02 290)",
1638
+ "sidebar": "oklch(0.2 0.014 290)",
1639
+ "sidebar-accent": "oklch(0.3 0.02 290)",
1640
+ "border": "oklch(1 0 0 / 10%)",
1641
+ "input": "oklch(1 0 0 / 15%)",
1642
+ "sidebar-border": "oklch(1 0 0 / 10%)",
1643
+ "foreground": "oklch(0.96 0.005 290)",
1644
+ "card-foreground": "oklch(0.96 0.005 290)",
1645
+ "popover-foreground": "oklch(0.96 0.005 290)",
1646
+ "secondary-foreground": "oklch(0.96 0.005 290)",
1647
+ "muted-foreground": "oklch(0.72 0.02 290)",
1648
+ "accent-foreground": "oklch(0.96 0.005 290)",
1649
+ "sidebar-foreground": "oklch(0.96 0.005 290)",
1650
+ "sidebar-accent-foreground": "oklch(0.96 0.005 290)",
1651
+ "primary": "oklch(0.72 0.15 293)",
1652
+ "primary-foreground": "oklch(0.145 0.03 293)",
1653
+ "ring": "oklch(0.55 0.16 293)",
1654
+ "sidebar-primary": "oklch(0.72 0.15 293)",
1655
+ "sidebar-primary-foreground": "oklch(0.145 0.03 293)",
1656
+ "sidebar-ring": "oklch(0.55 0.16 293)",
1657
+ "chart-1": "oklch(0.55 0.22 292)",
1658
+ "chart-2": "oklch(0.78 0.13 215)",
1659
+ "chart-3": "oklch(0.7 0.22 335)",
1660
+ "chart-4": "oklch(0.82 0.19 125)",
1661
+ "chart-5": "oklch(0.68 0.18 255)",
1662
+ "positive": "oklch(0.76 0.15 152)",
1663
+ "positive-subtle": "oklch(0.27 0.05 152)",
1664
+ "positive-fill": "oklch(0.56 0.13 152)",
1665
+ "negative": "oklch(0.74 0.15 17)",
1666
+ "negative-subtle": "oklch(0.27 0.06 20)",
1667
+ "negative-fill": "oklch(0.56 0.15 17)",
1668
+ "warning": "oklch(0.8 0.14 85)",
1669
+ "warning-subtle": "oklch(0.27 0.05 80)",
1670
+ "warning-fill": "oklch(0.73 0.145 83)",
1671
+ "info": "oklch(0.75 0.12 240)",
1672
+ "info-subtle": "oklch(0.27 0.06 245)",
1673
+ "info-fill": "oklch(0.56 0.13 240)",
1674
+ "neutral": "oklch(0.85 0 0)",
1675
+ "neutral-subtle": "oklch(0.27 0 0)",
1676
+ "neutral-fill": "oklch(0.56 0 0)",
1677
+ "destructive": "oklch(0.74 0.15 17)",
1678
+ "destructive-foreground": "oklch(0.145 0.03 293)"
1679
+ }
1680
+ }
1681
+ },
1682
+ {
1683
+ "id": "rose",
1684
+ "title": "\u30ED\u30FC\u30BA",
1685
+ "description": "\u8D64\u7D2B\u304B\u3089\u30D4\u30F3\u30AF\u3092\u57FA\u8ABF\u306B\u3057\u305F\u30D7\u30EA\u30BB\u30C3\u30C8\u3002destructive \u306E\u8D64\u3068\u6DF7\u540C\u3057\u306A\u3044\u843D\u3061\u7740\u3044\u305F\u8272\u3067\u3001\u89D2\u4E38\u306F\u5927\u304D\u3081\u3002",
1686
+ "cssVars": {
1687
+ "light": {
1688
+ "radius": "1rem",
1689
+ "font-sans": '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, ui-sans-serif, system-ui, sans-serif',
1690
+ "background": "oklch(0.975 0.004 350)",
1691
+ "card": "oklch(1 0 350)",
1692
+ "popover": "oklch(1 0 350)",
1693
+ "secondary": "oklch(0.965 0.005 350)",
1694
+ "muted": "oklch(0.965 0.005 350)",
1695
+ "accent": "oklch(0.955 0.01 350)",
1696
+ "sidebar": "oklch(0.985 0.003 350)",
1697
+ "sidebar-accent": "oklch(0.955 0.01 350)",
1698
+ "border": "oklch(0.93 0.006 350)",
1699
+ "input": "oklch(0.9 0.01 350)",
1700
+ "sidebar-border": "oklch(0.915 0.008 350)",
1701
+ "foreground": "oklch(0.21 0.02 350)",
1702
+ "card-foreground": "oklch(0.21 0.02 350)",
1703
+ "popover-foreground": "oklch(0.21 0.02 350)",
1704
+ "secondary-foreground": "oklch(0.25 0.02 350)",
1705
+ "muted-foreground": "oklch(0.5 0.02 350)",
1706
+ "accent-foreground": "oklch(0.25 0.02 350)",
1707
+ "sidebar-foreground": "oklch(0.21 0.02 350)",
1708
+ "sidebar-accent-foreground": "oklch(0.25 0.02 350)",
1709
+ "primary": "oklch(0.54 0.19 350)",
1710
+ "primary-foreground": "oklch(0.985 0 0)",
1711
+ "ring": "oklch(0.72 0.1 350)",
1712
+ "sidebar-primary": "oklch(0.54 0.19 350)",
1713
+ "sidebar-primary-foreground": "oklch(0.985 0 0)",
1714
+ "sidebar-ring": "oklch(0.72 0.1 350)",
1715
+ "chart-1": "oklch(0.54 0.19 350)",
1716
+ "chart-2": "oklch(0.7 0.12 200)",
1717
+ "chart-3": "oklch(0.58 0.22 295)",
1718
+ "chart-4": "oklch(0.76 0.2 130)",
1719
+ "chart-5": "oklch(0.58 0.2 255)",
1720
+ "positive": "oklch(0.52 0.14 150)",
1721
+ "positive-subtle": "oklch(0.96 0.04 150)",
1722
+ "positive-fill": "oklch(0.62 0.15 150)",
1723
+ "negative": "oklch(0.53 0.19 30)",
1724
+ "negative-subtle": "oklch(0.96 0.03 30)",
1725
+ "negative-fill": "oklch(0.62 0.17 30)",
1726
+ "warning": "oklch(0.53 0.12 75)",
1727
+ "warning-subtle": "oklch(0.96 0.05 90)",
1728
+ "warning-fill": "oklch(0.79 0.16 87)",
1729
+ "info": "oklch(0.52 0.16 250)",
1730
+ "info-subtle": "oklch(0.96 0.03 245)",
1731
+ "info-fill": "oklch(0.62 0.15 245)",
1732
+ "neutral": "oklch(0.52 0 0)",
1733
+ "neutral-subtle": "oklch(0.96 0 0)",
1734
+ "neutral-fill": "oklch(0.62 0 0)",
1735
+ "destructive": "oklch(0.53 0.19 30)",
1736
+ "destructive-foreground": "oklch(0.985 0 0)"
1737
+ },
1738
+ "dark": {
1739
+ "background": "oklch(0.16 0.012 350)",
1740
+ "card": "oklch(0.215 0.015 350)",
1741
+ "popover": "oklch(0.235 0.016 350)",
1742
+ "secondary": "oklch(0.27 0.016 350)",
1743
+ "muted": "oklch(0.27 0.016 350)",
1744
+ "accent": "oklch(0.3 0.02 350)",
1745
+ "sidebar": "oklch(0.2 0.014 350)",
1746
+ "sidebar-accent": "oklch(0.3 0.02 350)",
1747
+ "border": "oklch(1 0 0 / 10%)",
1748
+ "input": "oklch(1 0 0 / 15%)",
1749
+ "sidebar-border": "oklch(1 0 0 / 10%)",
1750
+ "foreground": "oklch(0.96 0.005 350)",
1751
+ "card-foreground": "oklch(0.96 0.005 350)",
1752
+ "popover-foreground": "oklch(0.96 0.005 350)",
1753
+ "secondary-foreground": "oklch(0.96 0.005 350)",
1754
+ "muted-foreground": "oklch(0.72 0.02 350)",
1755
+ "accent-foreground": "oklch(0.96 0.005 350)",
1756
+ "sidebar-foreground": "oklch(0.96 0.005 350)",
1757
+ "sidebar-accent-foreground": "oklch(0.96 0.005 350)",
1758
+ "primary": "oklch(0.76 0.14 350)",
1759
+ "primary-foreground": "oklch(0.145 0.03 350)",
1760
+ "ring": "oklch(0.58 0.12 350)",
1761
+ "sidebar-primary": "oklch(0.76 0.14 350)",
1762
+ "sidebar-primary-foreground": "oklch(0.145 0.03 350)",
1763
+ "sidebar-ring": "oklch(0.58 0.12 350)",
1764
+ "chart-1": "oklch(0.55 0.19 350)",
1765
+ "chart-2": "oklch(0.78 0.12 200)",
1766
+ "chart-3": "oklch(0.68 0.2 295)",
1767
+ "chart-4": "oklch(0.82 0.19 130)",
1768
+ "chart-5": "oklch(0.68 0.18 255)",
1769
+ "positive": "oklch(0.76 0.15 150)",
1770
+ "positive-subtle": "oklch(0.27 0.05 150)",
1771
+ "positive-fill": "oklch(0.56 0.13 150)",
1772
+ "negative": "oklch(0.74 0.15 27)",
1773
+ "negative-subtle": "oklch(0.27 0.06 30)",
1774
+ "negative-fill": "oklch(0.56 0.15 27)",
1775
+ "warning": "oklch(0.8 0.14 85)",
1776
+ "warning-subtle": "oklch(0.27 0.05 80)",
1777
+ "warning-fill": "oklch(0.73 0.145 83)",
1778
+ "info": "oklch(0.75 0.12 245)",
1779
+ "info-subtle": "oklch(0.27 0.06 250)",
1780
+ "info-fill": "oklch(0.56 0.13 245)",
1781
+ "neutral": "oklch(0.85 0 0)",
1782
+ "neutral-subtle": "oklch(0.27 0 0)",
1783
+ "neutral-fill": "oklch(0.56 0 0)",
1784
+ "destructive": "oklch(0.74 0.15 27)",
1785
+ "destructive-foreground": "oklch(0.145 0.03 350)"
1786
+ }
1787
+ }
1788
+ },
1789
+ {
1790
+ "id": "mono",
1791
+ "title": "\u30E2\u30CE",
1792
+ "description": "\u7121\u5F69\u8272\u5BC4\u308A\u306E\u30D7\u30EA\u30BB\u30C3\u30C8\u3002\u30C1\u30E3\u30FC\u30C8\u3082\u5F69\u5EA6\u3092\u6291\u3048\u3001\u89D2\u4E38\u306F\u6700\u5C0F\u3002\u66F8\u4F53\u306F\u7B49\u5E45\uFF08\u30B7\u30B9\u30C6\u30E0\u306E\u7B49\u5E45\u30D5\u30A9\u30F3\u30C8\uFF09\u3002",
1793
+ "cssVars": {
1794
+ "light": {
1795
+ "radius": "0.25rem",
1796
+ "font-sans": 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, monospace',
1797
+ "background": "oklch(0.975 0 0)",
1798
+ "card": "oklch(1 0 0)",
1799
+ "popover": "oklch(1 0 0)",
1800
+ "secondary": "oklch(0.965 0 0)",
1801
+ "muted": "oklch(0.965 0 0)",
1802
+ "accent": "oklch(0.955 0 0)",
1803
+ "sidebar": "oklch(0.985 0 0)",
1804
+ "sidebar-accent": "oklch(0.955 0 0)",
1805
+ "border": "oklch(0.93 0 0)",
1806
+ "input": "oklch(0.9 0 0)",
1807
+ "sidebar-border": "oklch(0.915 0 0)",
1808
+ "foreground": "oklch(0.21 0 0)",
1809
+ "card-foreground": "oklch(0.21 0 0)",
1810
+ "popover-foreground": "oklch(0.21 0 0)",
1811
+ "secondary-foreground": "oklch(0.25 0 0)",
1812
+ "muted-foreground": "oklch(0.5 0 0)",
1813
+ "accent-foreground": "oklch(0.25 0 0)",
1814
+ "sidebar-foreground": "oklch(0.21 0 0)",
1815
+ "sidebar-accent-foreground": "oklch(0.25 0 0)",
1816
+ "primary": "oklch(0.3 0.01 250)",
1817
+ "primary-foreground": "oklch(0.985 0 0)",
1818
+ "ring": "oklch(0.708 0.01 250)",
1819
+ "sidebar-primary": "oklch(0.3 0.01 250)",
1820
+ "sidebar-primary-foreground": "oklch(0.985 0 0)",
1821
+ "sidebar-ring": "oklch(0.708 0.01 250)",
1822
+ "chart-1": "hsl(220 12% 28%)",
1823
+ "chart-2": "hsl(190 28% 45%)",
1824
+ "chart-3": "hsl(325 20% 56%)",
1825
+ "chart-4": "hsl(150 20% 40%)",
1826
+ "chart-5": "hsl(270 18% 58%)",
1827
+ "positive": "oklch(0.52 0.14 150)",
1828
+ "positive-subtle": "oklch(0.96 0.04 150)",
1829
+ "positive-fill": "oklch(0.62 0.15 150)",
1830
+ "negative": "oklch(0.53 0.19 25)",
1831
+ "negative-subtle": "oklch(0.96 0.03 25)",
1832
+ "negative-fill": "oklch(0.62 0.17 25)",
1833
+ "warning": "oklch(0.53 0.12 75)",
1834
+ "warning-subtle": "oklch(0.96 0.05 90)",
1835
+ "warning-fill": "oklch(0.79 0.16 87)",
1836
+ "info": "oklch(0.52 0.16 255)",
1837
+ "info-subtle": "oklch(0.96 0.03 250)",
1838
+ "info-fill": "oklch(0.62 0.15 250)",
1839
+ "neutral": "oklch(0.52 0 0)",
1840
+ "neutral-subtle": "oklch(0.96 0 0)",
1841
+ "neutral-fill": "oklch(0.62 0 0)",
1842
+ "destructive": "oklch(0.53 0.19 25)",
1843
+ "destructive-foreground": "oklch(0.985 0 0)"
1844
+ },
1845
+ "dark": {
1846
+ "background": "oklch(0.16 0 0)",
1847
+ "card": "oklch(0.215 0 0)",
1848
+ "popover": "oklch(0.235 0 0)",
1849
+ "secondary": "oklch(0.27 0 0)",
1850
+ "muted": "oklch(0.27 0 0)",
1851
+ "accent": "oklch(0.3 0 0)",
1852
+ "sidebar": "oklch(0.2 0 0)",
1853
+ "sidebar-accent": "oklch(0.3 0 0)",
1854
+ "border": "oklch(1 0 0 / 10%)",
1855
+ "input": "oklch(1 0 0 / 15%)",
1856
+ "sidebar-border": "oklch(1 0 0 / 10%)",
1857
+ "foreground": "oklch(0.96 0 0)",
1858
+ "card-foreground": "oklch(0.96 0 0)",
1859
+ "popover-foreground": "oklch(0.96 0 0)",
1860
+ "secondary-foreground": "oklch(0.96 0 0)",
1861
+ "muted-foreground": "oklch(0.72 0 0)",
1862
+ "accent-foreground": "oklch(0.96 0 0)",
1863
+ "sidebar-foreground": "oklch(0.96 0 0)",
1864
+ "sidebar-accent-foreground": "oklch(0.96 0 0)",
1865
+ "primary": "oklch(0.88 0.005 250)",
1866
+ "primary-foreground": "oklch(0.2 0.01 250)",
1867
+ "ring": "oklch(0.556 0.01 250)",
1868
+ "sidebar-primary": "oklch(0.88 0.005 250)",
1869
+ "sidebar-primary-foreground": "oklch(0.2 0.01 250)",
1870
+ "sidebar-ring": "oklch(0.556 0.01 250)",
1871
+ "chart-1": "hsl(220 12% 46%)",
1872
+ "chart-2": "hsl(190 28% 55%)",
1873
+ "chart-3": "hsl(325 20% 66%)",
1874
+ "chart-4": "hsl(150 20% 50%)",
1875
+ "chart-5": "hsl(270 18% 68%)",
1876
+ "positive": "oklch(0.76 0.15 150)",
1877
+ "positive-subtle": "oklch(0.27 0.05 150)",
1878
+ "positive-fill": "oklch(0.56 0.13 150)",
1879
+ "negative": "oklch(0.74 0.15 22)",
1880
+ "negative-subtle": "oklch(0.27 0.06 25)",
1881
+ "negative-fill": "oklch(0.56 0.15 22)",
1882
+ "warning": "oklch(0.8 0.14 85)",
1883
+ "warning-subtle": "oklch(0.27 0.05 80)",
1884
+ "warning-fill": "oklch(0.73 0.145 83)",
1885
+ "info": "oklch(0.75 0.12 250)",
1886
+ "info-subtle": "oklch(0.27 0.06 255)",
1887
+ "info-fill": "oklch(0.56 0.13 250)",
1888
+ "neutral": "oklch(0.85 0 0)",
1889
+ "neutral-subtle": "oklch(0.27 0 0)",
1890
+ "neutral-fill": "oklch(0.56 0 0)",
1891
+ "destructive": "oklch(0.74 0.15 22)",
1892
+ "destructive-foreground": "oklch(0.2 0.01 250)"
1893
+ }
1894
+ }
1895
+ }
1896
+ ];
1897
+
1898
+ // ../squadkit/theme-presets/types.ts
1899
+ var THEME_PRESET_IDS = ["neutral", "ocean", "forest", "sunset", "violet", "rose", "mono"];
1900
+
1901
+ // ../squadkit/theme-presets/index.ts
1902
+ var THEME_PRESETS = THEME_PRESETS_DATA;
1903
+ var THEME_START_MARKER = "/* squadkit-theme \u2014 regenerated by `theme`; edits here are lost */";
1904
+ var THEME_END_MARKER = "/* squadkit-theme:end */";
1905
+ var CHART_START_MARKER = "/* vantage-template:chart-preset \u2014 regenerated by `chart`; edits here are lost */";
1906
+ var CHART_END_MARKER = "/* vantage-template:chart-preset:end */";
1907
+ var LEGACY_IDS = {
1908
+ default: "neutral",
1909
+ calm: "ocean",
1910
+ vivid: "sunset",
1911
+ mono: "mono"
1912
+ };
1913
+ function isThemePresetId(v) {
1914
+ return THEME_PRESET_IDS.includes(v);
1915
+ }
1916
+ function resolveThemePresetId(v) {
1917
+ if (isThemePresetId(v)) return v;
1918
+ return Object.prototype.hasOwnProperty.call(LEGACY_IDS, v) ? LEGACY_IDS[v] : null;
1919
+ }
1920
+ function getPreset(id) {
1921
+ const preset = THEME_PRESETS.find((p) => p.id === id);
1922
+ if (!preset) throw new Error(`unknown theme preset: ${id}`);
1923
+ return preset;
1924
+ }
1925
+ function themePresetCss(id) {
1926
+ return buildThemeCss(getPreset(id).cssVars);
1927
+ }
1928
+ function themeBlock(id) {
1929
+ return `${THEME_START_MARKER}
1930
+ /* theme: ${id} */
1931
+ ${themePresetCss(id)}
1932
+ ${THEME_END_MARKER}`;
1933
+ }
1934
+ var ThemeStylesheetError = class extends Error {
1935
+ code;
1936
+ constructor(code, reason) {
1937
+ super(`malformed theme range in styles.css: ${reason}`);
1938
+ this.name = "ThemeStylesheetError";
1939
+ this.code = code;
1940
+ }
1941
+ };
1942
+ function countOf(css, needle) {
1943
+ let n = 0;
1944
+ for (let at = css.indexOf(needle); at !== -1; at = css.indexOf(needle, at + needle.length)) n += 1;
1945
+ return n;
1946
+ }
1947
+ function findRange(css, startMarker, endMarker) {
1948
+ const starts = countOf(css, startMarker);
1949
+ const ends = countOf(css, endMarker);
1950
+ if (starts === 0 && ends === 0) return null;
1951
+ if (starts === 0) throw new ThemeStylesheetError("malformed-theme-block", "end marker without a start marker");
1952
+ if (ends === 0) throw new ThemeStylesheetError("malformed-theme-block", "start marker without an end marker");
1953
+ if (starts > 1) throw new ThemeStylesheetError("malformed-theme-block", "duplicate start markers");
1954
+ if (ends > 1) throw new ThemeStylesheetError("malformed-theme-block", "duplicate end markers");
1955
+ const start = css.indexOf(startMarker);
1956
+ const endAt = css.indexOf(endMarker);
1957
+ if (endAt < start) throw new ThemeStylesheetError("malformed-theme-block", "end marker before the start marker");
1958
+ return { start, end: endAt + endMarker.length };
1959
+ }
1960
+ function removeRange(css, range) {
1961
+ let end = range.end;
1962
+ if (css[end] === "\n") end += 1;
1963
+ if (css[end] === "\n") end += 1;
1964
+ return css.slice(0, range.start) + css.slice(end);
1965
+ }
1966
+ function applyThemeToStylesheet(css, id, opts = {}) {
1967
+ const block = themeBlock(id);
1968
+ let next = css;
1969
+ let repaired = false;
1970
+ const existing = findRange(next, THEME_START_MARKER, THEME_END_MARKER);
1971
+ if (opts.chart === "reset") {
1972
+ const chart = findChartRange(next);
1973
+ if (chart) next = removeRange(next, chart);
1974
+ }
1975
+ if (existing) {
1976
+ const range = findRange(next, THEME_START_MARKER, THEME_END_MARKER);
1977
+ next = next.slice(0, range.start) + block + next.slice(range.end);
1978
+ } else {
1979
+ repaired = true;
1980
+ const chartStart = next.indexOf(CHART_START_MARKER);
1981
+ if (chartStart !== -1) {
1982
+ next = `${next.slice(0, chartStart)}${block}
1983
+
1984
+ ${next.slice(chartStart)}`;
1985
+ } else {
1986
+ next = `${next.trimEnd()}
1987
+
1988
+ ${block}
1989
+ `;
1990
+ }
1991
+ }
1992
+ return { css: next, changed: next !== css, repaired };
1993
+ }
1994
+ function findChartRange(css) {
1995
+ const start = css.indexOf(CHART_START_MARKER);
1996
+ if (start === -1) return null;
1997
+ const endAt = css.indexOf(CHART_END_MARKER, start);
1998
+ return endAt === -1 ? null : { start, end: endAt + CHART_END_MARKER.length };
1999
+ }
2000
+
2001
+ // src/commands/theme.ts
2002
+ function setTheme(themeId, options) {
2003
+ const projectRoot = process.cwd();
2004
+ const stylesPath = resolveStylesPath(projectRoot);
2005
+ const stylesLabel = relative3(projectRoot, stylesPath);
2006
+ if (!existsSync8(stylesPath)) {
2007
+ log("red", `${stylesLabel} not found. Are you in a Squadbase Vantage project?`);
2008
+ process.exit(1);
2009
+ }
2010
+ const id = resolveThemePresetId(themeId);
2011
+ if (!id) {
2012
+ log("red", `Theme "${themeId}" not found.`);
2013
+ log("yellow", `Available themes: ${THEME_PRESET_IDS.join(", ")}`);
2014
+ process.exit(1);
2015
+ }
2016
+ log("green", `Applying theme: ${id}`);
2017
+ if (id !== themeId) {
2018
+ log("dim", ` (legacy id "${themeId}" \u2192 "${id}")`);
2019
+ }
2020
+ const description = THEME_PRESETS.find((p) => p.id === id)?.description;
2021
+ if (description) {
2022
+ log("dim", ` ${description}`);
2023
+ }
2024
+ const current = readFileSync6(stylesPath, "utf-8");
2025
+ let result;
2026
+ try {
2027
+ result = applyThemeToStylesheet(current, id, {
2028
+ chart: options.resetChart ? "reset" : "keep"
2029
+ });
2030
+ } catch (err) {
2031
+ if (err instanceof ThemeStylesheetError) {
2032
+ log("red", `The theme range in ${stylesLabel} is broken (${err.message}).`);
2033
+ log(
2034
+ "yellow",
2035
+ `Fix the lines from "/* squadkit-theme ... */" to "/* squadkit-theme:end */" by hand, or delete them, then run this again.`
2036
+ );
2037
+ process.exit(1);
2038
+ }
2039
+ throw err;
2040
+ }
2041
+ if (options.dryRun) {
2042
+ log("yellow", "(dry run \u2014 no files will be changed)");
2043
+ log("dim", `
2044
+ --- ${stylesLabel} (preview) ---`);
2045
+ console.log(result.css);
2046
+ return;
2047
+ }
2048
+ if (!result.changed) {
2049
+ log("dim", ` unchanged: ${stylesLabel}`);
2050
+ log("green", "\nTheme already applied.");
2051
+ return;
2052
+ }
2053
+ writeFileSync4(stylesPath, result.css, "utf-8");
2054
+ log("cyan", ` updated: ${stylesLabel}${result.repaired ? " (theme range added)" : ""}`);
2055
+ log("green", "\nTheme applied successfully!");
2056
+ }
2057
+
1117
2058
  // src/index.ts
1118
2059
  var HELP = `
1119
2060
  Usage: npx @squadbase/vantage-template <command> [options]
@@ -1121,12 +2062,14 @@ Usage: npx @squadbase/vantage-template <command> [options]
1121
2062
  Commands:
1122
2063
  init Initialize a new Squadbase Vantage project
1123
2064
  add <template-name> Apply a UI template to the current project
2065
+ theme <theme-id> Apply a SquadKit theme (neutral, ocean, forest, sunset, violet, rose, mono)
1124
2066
  chart <preset-name> Switch the chart color preset
1125
2067
  list List available templates and chart presets
1126
2068
 
1127
2069
  Options:
1128
2070
  --force Overwrite existing files
1129
2071
  --dry-run Show what would be done without making changes
2072
+ --reset-chart Drop the chart preset range so the theme's chart colors apply (theme only)
1130
2073
  --skip-install Skip dependency installation after init
1131
2074
  --chart <preset> Apply a chart preset during init (e.g. --chart sunset)
1132
2075
  --json Output as JSON (for the list / add commands)
@@ -1144,6 +2087,7 @@ AI customization (add only):
1144
2087
  Examples:
1145
2088
  npx @squadbase/vantage-template init
1146
2089
  npx @squadbase/vantage-template list --lang ja
2090
+ npx @squadbase/vantage-template theme ocean
1147
2091
  npx @squadbase/vantage-template add kpi-chart-simple \\
1148
2092
  --prompt "SaaS MRR/ARR dashboard" --provider openai --apiKey $OPENAI_API_KEY
1149
2093
  npx @squadbase/vantage-template add funnel --prompt "..." \\
@@ -1154,6 +2098,7 @@ async function main() {
1154
2098
  options: {
1155
2099
  force: { type: "boolean", default: false },
1156
2100
  "dry-run": { type: "boolean", default: false },
2101
+ "reset-chart": { type: "boolean", default: false },
1157
2102
  "skip-install": { type: "boolean", default: false },
1158
2103
  chart: { type: "string" },
1159
2104
  json: { type: "boolean", default: false },
@@ -1242,6 +2187,17 @@ async function main() {
1242
2187
  setChartPreset(presetName, {
1243
2188
  dryRun: values["dry-run"] ?? false
1244
2189
  });
2190
+ } else if (command === "theme") {
2191
+ const themeId = positionals[1];
2192
+ if (!themeId) {
2193
+ log("red", "Missing theme id.");
2194
+ log("dim", "Usage: npx @squadbase/vantage-template theme <theme-id> [--reset-chart] [--dry-run]");
2195
+ process.exit(1);
2196
+ }
2197
+ setTheme(themeId, {
2198
+ dryRun: values["dry-run"] ?? false,
2199
+ resetChart: values["reset-chart"] ?? false
2200
+ });
1245
2201
  } else {
1246
2202
  log("red", `Unknown command: "${command}"`);
1247
2203
  console.log(HELP);