jky-component-lib 0.0.75 → 0.0.80

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.
Files changed (69) hide show
  1. package/dist/es/add-input/index.d.ts +1 -0
  2. package/dist/es/code-mirror-editor/index.d.ts +1 -0
  3. package/dist/es/components.d.ts +1 -0
  4. package/dist/es/components.js +4 -1
  5. package/dist/es/form/index.d.ts +1 -0
  6. package/dist/es/index.js +6 -0
  7. package/dist/es/menu/Menu.vue.js +2 -2
  8. package/dist/es/menu/MenuItem.vue.js +2 -2
  9. package/dist/es/menu/index.d.ts +1 -0
  10. package/dist/es/package.json.js +1 -1
  11. package/dist/es/page-header/index.d.ts +1 -0
  12. package/dist/es/page-layout/PageLayout.vue.d.ts +3 -2
  13. package/dist/es/page-layout/PageLayout.vue.js +45 -8
  14. package/dist/es/page-layout/index.d.ts +1 -0
  15. package/dist/es/page-table/PageTable.vue.d.ts +9 -9
  16. package/dist/es/page-table/index.d.ts +1 -0
  17. package/dist/es/rich-editor/index.d.ts +1 -0
  18. package/dist/es/style.css +57 -120
  19. package/dist/es/styles.css +1 -1
  20. package/dist/es/tabs/ContextMenu.vue.d.ts +30 -0
  21. package/dist/es/tabs/ContextMenu.vue.js +118 -0
  22. package/dist/es/tabs/ContextMenu.vue3.js +5 -0
  23. package/dist/es/tabs/Tabs.vue.d.ts +13 -0
  24. package/dist/es/tabs/Tabs.vue.js +132 -0
  25. package/dist/es/tabs/Tabs.vue3.js +5 -0
  26. package/dist/es/tabs/config.d.ts +2 -0
  27. package/dist/es/tabs/config.js +8 -0
  28. package/dist/es/tabs/createTabsGuard.d.ts +5 -0
  29. package/dist/es/tabs/createTabsGuard.js +18 -0
  30. package/dist/es/tabs/index.d.ts +7 -0
  31. package/dist/es/tabs/index.js +8 -0
  32. package/dist/es/tabs/style.css +44 -0
  33. package/dist/es/tabs/useTabsStore.d.ts +6 -0
  34. package/dist/es/tabs/useTabsStore.js +156 -0
  35. package/dist/lib/add-input/index.d.ts +1 -0
  36. package/dist/lib/code-mirror-editor/index.d.ts +1 -0
  37. package/dist/lib/components.d.ts +1 -0
  38. package/dist/lib/components.js +4 -1
  39. package/dist/lib/form/index.d.ts +1 -0
  40. package/dist/lib/index.js +6 -0
  41. package/dist/lib/menu/Menu.vue.js +2 -2
  42. package/dist/lib/menu/MenuItem.vue.js +2 -2
  43. package/dist/lib/menu/index.d.ts +1 -0
  44. package/dist/lib/package.json.js +1 -1
  45. package/dist/lib/page-header/index.d.ts +1 -0
  46. package/dist/lib/page-layout/PageLayout.vue.d.ts +3 -2
  47. package/dist/lib/page-layout/PageLayout.vue.js +44 -7
  48. package/dist/lib/page-layout/index.d.ts +1 -0
  49. package/dist/lib/page-table/PageTable.vue.d.ts +9 -9
  50. package/dist/lib/page-table/index.d.ts +1 -0
  51. package/dist/lib/rich-editor/index.d.ts +1 -0
  52. package/dist/lib/style.css +57 -120
  53. package/dist/lib/styles.css +1 -1
  54. package/dist/lib/tabs/ContextMenu.vue.d.ts +30 -0
  55. package/dist/lib/tabs/ContextMenu.vue.js +118 -0
  56. package/dist/lib/tabs/ContextMenu.vue3.js +5 -0
  57. package/dist/lib/tabs/Tabs.vue.d.ts +13 -0
  58. package/dist/lib/tabs/Tabs.vue.js +132 -0
  59. package/dist/lib/tabs/Tabs.vue3.js +5 -0
  60. package/dist/lib/tabs/config.d.ts +2 -0
  61. package/dist/lib/tabs/config.js +8 -0
  62. package/dist/lib/tabs/createTabsGuard.d.ts +5 -0
  63. package/dist/lib/tabs/createTabsGuard.js +18 -0
  64. package/dist/lib/tabs/index.d.ts +7 -0
  65. package/dist/lib/tabs/index.js +8 -0
  66. package/dist/lib/tabs/style.css +44 -0
  67. package/dist/lib/tabs/useTabsStore.d.ts +6 -0
  68. package/dist/lib/tabs/useTabsStore.js +156 -0
  69. package/package.json +1 -1
@@ -588,6 +588,10 @@
588
588
  margin-top: auto;
589
589
  }
590
590
 
591
+ .mr-1 {
592
+ margin-right: calc(var(--spacing) * 1);
593
+ }
594
+
591
595
  .mr-2 {
592
596
  margin-right: calc(var(--spacing) * 2);
593
597
  }
@@ -664,6 +668,22 @@
664
668
  mask-repeat: no-repeat;
665
669
  }
666
670
 
671
+ .icon-\[carbon--apple\] {
672
+ width: 1em;
673
+ height: 1em;
674
+ -webkit-mask-image: var(--svg);
675
+ -webkit-mask-image: var(--svg);
676
+ -webkit-mask-image: var(--svg);
677
+ mask-image: var(--svg);
678
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' width='32' height='32'%3E%3Cpath fill='black' d='M21.779 8a11.5 11.5 0 0 0-3.055.534a15 15 0 0 1-1.822.413A6.005 6.005 0 0 0 11 4v2a3.99 3.99 0 0 1 3.827 2.9a20 20 0 0 1-1.617-.365A13 13 0 0 0 10.032 8C6.31 8 4 11.065 4 16c0 7.51 4.068 11.999 8 12h.002a7.2 7.2 0 0 0 2.49-.59A5 5 0 0 1 16 27a5 5 0 0 1 1.511.41A7.2 7.2 0 0 0 20 28c3.93-.001 8-4.49 8-12c0-3.69-1.63-8-6.221-8M20 26a5.5 5.5 0 0 1-1.79-.464A6.4 6.4 0 0 0 16 25a6.4 6.4 0 0 0-2.206.536A5.5 5.5 0 0 1 12 26h.002C9.052 25.999 6 22.259 6 16c0-1.804.393-6 4.032-6a11.2 11.2 0 0 1 2.68.473a13 13 0 0 0 3.05.527h.491a11.8 11.8 0 0 0 2.996-.536a10 10 0 0 1 2.53-.464C25.796 10 26 14.998 26 16c0 6.259-3.052 9.999-6 10'/%3E%3Cpath fill='black' d='M18 7h-1V6a2 2 0 0 1 2-2h1v1a2 2 0 0 1-2 2'/%3E%3C/svg%3E");
679
+ background-color: currentColor;
680
+ display: inline-block;
681
+ -webkit-mask-size: 100% 100%;
682
+ mask-size: 100% 100%;
683
+ -webkit-mask-repeat: no-repeat;
684
+ mask-repeat: no-repeat;
685
+ }
686
+
667
687
  .icon-\[carbon--apps\] {
668
688
  width: 1em;
669
689
  height: 1em;
@@ -1240,94 +1260,14 @@
1240
1260
  mask-repeat: no-repeat;
1241
1261
  }
1242
1262
 
1243
- .icon-\[icon-park-outline--avatar\] {
1244
- width: 1em;
1245
- height: 1em;
1246
- -webkit-mask-image: var(--svg);
1247
- -webkit-mask-image: var(--svg);
1248
- -webkit-mask-image: var(--svg);
1249
- mask-image: var(--svg);
1250
- --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' width='48' height='48'%3E%3Cpath fill='none' stroke='black' stroke-linejoin='round' stroke-width='4' d='M5.004 42.231a.78.78 0 0 0 .791.769h36.407a.78.78 0 0 0 .792-.769v-.918c.018-.277.055-1.657-.855-3.184c-.574-.963-1.407-1.794-2.476-2.472c-1.293-.82-2.938-1.413-4.928-1.77a29 29 0 0 1-3.002-.584c-2.632-.672-2.862-1.267-2.864-1.273a.8.8 0 0 0-.066-.169c-.022-.11-.075-.528.027-1.647c.258-2.843 1.783-4.523 3.008-5.873c.386-.425.751-.828 1.032-1.222c1.213-1.7 1.325-3.635 1.33-3.755a2 2 0 0 0-.087-.628c-.12-.37-.343-.6-.507-.77a3 3 0 0 1-.113-.12c-.012-.014-.044-.052-.015-.243a19 19 0 0 0 .203-1.857c.056-1.002.099-2.5-.16-3.959a6 6 0 0 0-.172-.825q-.408-1.507-1.32-2.57c-.105-.115-2.653-2.8-10.05-3.35c-1.023-.076-2.034-.035-3.03.016a4.4 4.4 0 0 0-.875.108c-.764.197-.968.681-1.021.952c-.089.45.067.798.17 1.03c.015.033.034.074.001.182c-.171.266-.442.506-.717.733c-.08.067-1.934 1.667-2.036 3.756c-.275 1.589-.255 4.064.07 5.775c.02.095.047.235.002.33c-.35.313-.746.668-.745 1.478c.004.082.117 2.016 1.33 3.717c.28.394.645.796 1.03 1.221l.002.001c1.225 1.35 2.75 3.03 3.008 5.872c.101 1.12.048 1.537.027 1.648a.8.8 0 0 0-.067.169c-.001.006-.23.599-2.85 1.27c-1.512.387-3 .585-3.045.59c-1.934.327-3.569.906-4.86 1.721c-1.065.673-1.9 1.507-2.48 2.477c-.928 1.55-.903 2.962-.89 3.22z'/%3E%3C/svg%3E");
1251
- background-color: currentColor;
1252
- display: inline-block;
1253
- -webkit-mask-size: 100% 100%;
1254
- mask-size: 100% 100%;
1255
- -webkit-mask-repeat: no-repeat;
1256
- mask-repeat: no-repeat;
1257
- }
1258
-
1259
- .icon-\[icon-park-outline--briefcase\] {
1260
- width: 1em;
1261
- height: 1em;
1262
- -webkit-mask-image: var(--svg);
1263
- -webkit-mask-image: var(--svg);
1264
- -webkit-mask-image: var(--svg);
1265
- mask-image: var(--svg);
1266
- --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' width='48' height='48'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='4'%3E%3Cpath d='M32 16c0-6.075-3.582-12-8-12s-8 5.925-8 12m-7 0h30l1 12H27v-3h-6v3H8zM8 28L6 42h36l-2-14'/%3E%3Cpath d='M21 25h6v6h-6z'/%3E%3C/g%3E%3C/svg%3E");
1267
- background-color: currentColor;
1268
- display: inline-block;
1269
- -webkit-mask-size: 100% 100%;
1270
- mask-size: 100% 100%;
1271
- -webkit-mask-repeat: no-repeat;
1272
- mask-repeat: no-repeat;
1273
- }
1274
-
1275
- .icon-\[icon-park-outline--experiment\] {
1276
- width: 1em;
1277
- height: 1em;
1278
- -webkit-mask-image: var(--svg);
1279
- -webkit-mask-image: var(--svg);
1280
- -webkit-mask-image: var(--svg);
1281
- mask-image: var(--svg);
1282
- --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' width='48' height='48'%3E%3Cg fill='none' stroke='black' stroke-width='4'%3E%3Cpath stroke-linecap='round' d='M12 4h24'/%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m10.777 30l7.242-14.961V4h12.01v11.039L37.245 30'/%3E%3Cpath stroke-linejoin='round' d='M7.794 43.673a3.273 3.273 0 0 1-1.52-4.372L10.777 30S18 35 24 30s13.246 0 13.246 0l4.49 9.305A3.273 3.273 0 0 1 38.787 44H9.22c-.494 0-.981-.112-1.426-.327Z'/%3E%3C/g%3E%3C/svg%3E");
1283
- background-color: currentColor;
1284
- display: inline-block;
1285
- -webkit-mask-size: 100% 100%;
1286
- mask-size: 100% 100%;
1287
- -webkit-mask-repeat: no-repeat;
1288
- mask-repeat: no-repeat;
1289
- }
1290
-
1291
- .icon-\[icon-park-outline--folder\] {
1292
- width: 1em;
1293
- height: 1em;
1294
- -webkit-mask-image: var(--svg);
1295
- -webkit-mask-image: var(--svg);
1296
- -webkit-mask-image: var(--svg);
1297
- mask-image: var(--svg);
1298
- --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' width='48' height='48'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='4'%3E%3Cpath d='M7 6a2 2 0 0 1 2-2h30a2 2 0 0 1 2 2v36a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2zm9 23h4m-4 6h10'/%3E%3Cpath d='M8 5s3.765 13 16 13S40 5 40 5'/%3E%3Ccircle cx='24' cy='18' r='4'/%3E%3Cpath d='M15 4H9a2 2 0 0 0-2 2v6m26-8h6a2 2 0 0 1 2 2v6'/%3E%3C/g%3E%3C/svg%3E");
1299
- background-color: currentColor;
1300
- display: inline-block;
1301
- -webkit-mask-size: 100% 100%;
1302
- mask-size: 100% 100%;
1303
- -webkit-mask-repeat: no-repeat;
1304
- mask-repeat: no-repeat;
1305
- }
1306
-
1307
- .icon-\[icon-park-outline--key\] {
1308
- width: 1em;
1309
- height: 1em;
1310
- -webkit-mask-image: var(--svg);
1311
- -webkit-mask-image: var(--svg);
1312
- -webkit-mask-image: var(--svg);
1313
- mask-image: var(--svg);
1314
- --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' width='48' height='48'%3E%3Cg fill='none' stroke='black' stroke-linejoin='round' stroke-width='4'%3E%3Cpath d='M22.868 24.298a9.87 9.87 0 0 1 2.63 9.588a9.93 9.93 0 0 1-7.065 7.028a9.99 9.99 0 0 1-9.64-2.615a9.863 9.863 0 0 1 .122-13.878c3.839-3.82 10.046-3.873 13.951-.121z'/%3E%3Cpath stroke-linecap='round' d='M23 24L40 7'/%3E%3Cpath d='m30.305 16.9l5.429 5.4l6.333-6.3l-5.428-5.4z'/%3E%3C/g%3E%3C/svg%3E");
1315
- background-color: currentColor;
1316
- display: inline-block;
1317
- -webkit-mask-size: 100% 100%;
1318
- mask-size: 100% 100%;
1319
- -webkit-mask-repeat: no-repeat;
1320
- mask-repeat: no-repeat;
1321
- }
1322
-
1323
- .icon-\[icon-park-outline--lock\] {
1263
+ .icon-\[icon-park-outline--data-user\] {
1324
1264
  width: 1em;
1325
1265
  height: 1em;
1326
1266
  -webkit-mask-image: var(--svg);
1327
1267
  -webkit-mask-image: var(--svg);
1328
1268
  -webkit-mask-image: var(--svg);
1329
1269
  mask-image: var(--svg);
1330
- --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' width='48' height='48'%3E%3Cg fill='none' stroke='black' stroke-linejoin='round' stroke-width='4'%3E%3Crect width='36' height='22' x='6' y='22' rx='2'/%3E%3Cpath stroke-linecap='round' d='M14 22v-8c0-5.523 4.477-10 10-10s10 4.477 10 10v8m-10 8v6'/%3E%3C/g%3E%3C/svg%3E");
1270
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' width='48' height='48'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='4'%3E%3Cpath d='M22 8v12c0 2.21-4.03 4-9 4s-9-1.79-9-4V8'/%3E%3Cpath d='M22 14c0 2.21-4.03 4-9 4s-9-1.79-9-4m18-6c0 2.21-4.03 4-9 4s-9-1.79-9-4s4.03-4 9-4s9 1.79 9 4m10-2h6a4 4 0 0 1 4 4v6M16 42h-6a4 4 0 0 1-4-4v-6'/%3E%3Ccircle cx='35' cy='29' r='5'/%3E%3Cpath d='M44 44H26a9 9 0 1 1 18 0'/%3E%3C/g%3E%3C/svg%3E");
1331
1271
  background-color: currentColor;
1332
1272
  display: inline-block;
1333
1273
  -webkit-mask-size: 100% 100%;
@@ -1336,14 +1276,14 @@
1336
1276
  mask-repeat: no-repeat;
1337
1277
  }
1338
1278
 
1339
- .icon-\[icon-park-outline--monitor\] {
1279
+ .icon-\[icon-park-outline--shopping\] {
1340
1280
  width: 1em;
1341
1281
  height: 1em;
1342
1282
  -webkit-mask-image: var(--svg);
1343
1283
  -webkit-mask-image: var(--svg);
1344
1284
  -webkit-mask-image: var(--svg);
1345
1285
  mask-image: var(--svg);
1346
- --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' width='48' height='48'%3E%3Cg fill='none' stroke='black' stroke-linejoin='round' stroke-width='4'%3E%3Cpath d='M4 10h32v28H4z'/%3E%3Cpath stroke-linecap='round' d='m44 14l-8 6.75v6.5L44 34z' clip-rule='evenodd'/%3E%3Cpath stroke-linecap='round' d='m17 19l6 5l-6 5'/%3E%3C/g%3E%3C/svg%3E");
1286
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' width='48' height='48'%3E%3Cg fill='none'%3E%3Cpath d='M39 32H13L8 12h36z'/%3E%3Cpath stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='4' d='M3 6h3.5L8 12m0 0l5 20h26l5-20z'/%3E%3Ccircle cx='13' cy='39' r='3' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='4'/%3E%3Ccircle cx='39' cy='39' r='3' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='4'/%3E%3C/g%3E%3C/svg%3E");
1347
1287
  background-color: currentColor;
1348
1288
  display: inline-block;
1349
1289
  -webkit-mask-size: 100% 100%;
@@ -1352,46 +1292,14 @@
1352
1292
  mask-repeat: no-repeat;
1353
1293
  }
1354
1294
 
1355
- .icon-\[icon-park-outline--notebook\] {
1356
- width: 1em;
1357
- height: 1em;
1358
- -webkit-mask-image: var(--svg);
1359
- -webkit-mask-image: var(--svg);
1360
- -webkit-mask-image: var(--svg);
1361
- mask-image: var(--svg);
1362
- --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' width='48' height='48'%3E%3Cg fill='none' stroke='black' stroke-linejoin='round' stroke-width='4'%3E%3Cpath d='M10 6a2 2 0 0 1 2-2h28a2 2 0 0 1 2 2v36a2 2 0 0 1-2 2H12a2 2 0 0 1-2-2z'/%3E%3Cpath stroke-linecap='round' d='M34 6v36M6 14h8M6 24h8M6 34h8M27 4h12M27 44h12'/%3E%3C/g%3E%3C/svg%3E");
1363
- background-color: currentColor;
1364
- display: inline-block;
1365
- -webkit-mask-size: 100% 100%;
1366
- mask-size: 100% 100%;
1367
- -webkit-mask-repeat: no-repeat;
1368
- mask-repeat: no-repeat;
1369
- }
1370
-
1371
- .icon-\[icon-park-outline--setting\] {
1372
- width: 1em;
1373
- height: 1em;
1374
- -webkit-mask-image: var(--svg);
1375
- -webkit-mask-image: var(--svg);
1376
- -webkit-mask-image: var(--svg);
1377
- mask-image: var(--svg);
1378
- --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' width='48' height='48'%3E%3Cg fill='none' stroke='black' stroke-linejoin='round' stroke-width='4'%3E%3Cpath d='M36.686 15.171a15.4 15.4 0 0 1 2.529 6.102H44v5.454h-4.785a15.4 15.4 0 0 1-2.529 6.102l3.385 3.385l-3.857 3.857l-3.385-3.385a15.4 15.4 0 0 1-6.102 2.529V44h-5.454v-4.785a15.4 15.4 0 0 1-6.102-2.529l-3.385 3.385l-3.857-3.857l3.385-3.385a15.4 15.4 0 0 1-2.529-6.102H4v-5.454h4.785a15.4 15.4 0 0 1 2.529-6.102l-3.385-3.385l3.857-3.857l3.385 3.385a15.4 15.4 0 0 1 6.102-2.529V4h5.454v4.785a15.4 15.4 0 0 1 6.102 2.529l3.385-3.385l3.857 3.857z'/%3E%3Cpath d='M24 29a5 5 0 1 0 0-10a5 5 0 0 0 0 10Z'/%3E%3C/g%3E%3C/svg%3E");
1379
- background-color: currentColor;
1380
- display: inline-block;
1381
- -webkit-mask-size: 100% 100%;
1382
- mask-size: 100% 100%;
1383
- -webkit-mask-repeat: no-repeat;
1384
- mask-repeat: no-repeat;
1385
- }
1386
-
1387
- .icon-\[icon-park-outline--shopping-cart\] {
1295
+ .icon-\[icon-park-outline--user\] {
1388
1296
  width: 1em;
1389
1297
  height: 1em;
1390
1298
  -webkit-mask-image: var(--svg);
1391
1299
  -webkit-mask-image: var(--svg);
1392
1300
  -webkit-mask-image: var(--svg);
1393
1301
  mask-image: var(--svg);
1394
- --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' width='48' height='48'%3E%3Cg fill='none'%3E%3Cpath d='M39 32H13L8 12h36z'/%3E%3Cpath stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='4' d='M3 6h3.5L8 12m0 0l5 20h26l5-20z'/%3E%3Ccircle cx='13' cy='39' r='3' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='4'/%3E%3Ccircle cx='39' cy='39' r='3' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='4'/%3E%3Cpath stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='4' d='M22 22h8m-4 4v-8'/%3E%3C/g%3E%3C/svg%3E");
1302
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' width='48' height='48'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='4'%3E%3Ccircle cx='24' cy='12' r='8'/%3E%3Cpath d='M42 44c0-9.941-8.059-18-18-18S6 34.059 6 44'/%3E%3C/g%3E%3C/svg%3E");
1395
1303
  background-color: currentColor;
1396
1304
  display: inline-block;
1397
1305
  -webkit-mask-size: 100% 100%;
@@ -1400,14 +1308,14 @@
1400
1308
  mask-repeat: no-repeat;
1401
1309
  }
1402
1310
 
1403
- .icon-\[icon-park-outline--user\] {
1311
+ .icon-\[icon-park-outline--wallet\] {
1404
1312
  width: 1em;
1405
1313
  height: 1em;
1406
1314
  -webkit-mask-image: var(--svg);
1407
1315
  -webkit-mask-image: var(--svg);
1408
1316
  -webkit-mask-image: var(--svg);
1409
1317
  mask-image: var(--svg);
1410
- --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' width='48' height='48'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='4'%3E%3Ccircle cx='24' cy='12' r='8'/%3E%3Cpath d='M42 44c0-9.941-8.059-18-18-18S6 34.059 6 44'/%3E%3C/g%3E%3C/svg%3E");
1318
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' width='48' height='48'%3E%3Cg fill='none' stroke='black' stroke-width='4'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M17.982 11.969L31.785 4l4.612 7.989z' clip-rule='evenodd'/%3E%3Cpath stroke-linejoin='round' d='M4 14a2 2 0 0 1 2-2h36a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z'/%3E%3Cpath stroke-linejoin='round' d='M35.25 33H44V23h-8.75c-2.9 0-5.25 2.239-5.25 5s2.35 5 5.25 5Z'/%3E%3Cpath stroke-linecap='round' d='M44 16.5v24'/%3E%3C/g%3E%3C/svg%3E");
1411
1319
  background-color: currentColor;
1412
1320
  display: inline-block;
1413
1321
  -webkit-mask-size: 100% 100%;
@@ -1817,6 +1725,10 @@
1817
1725
  overflow: hidden;
1818
1726
  }
1819
1727
 
1728
+ .overflow-x-auto {
1729
+ overflow-x: auto;
1730
+ }
1731
+
1820
1732
  .rounded {
1821
1733
  border-radius: .25rem;
1822
1734
  }
@@ -1996,6 +1908,10 @@
1996
1908
  background-color: var(--color-green-200);
1997
1909
  }
1998
1910
 
1911
+ .bg-green-500 {
1912
+ background-color: var(--color-green-500);
1913
+ }
1914
+
1999
1915
  .bg-green-500\! {
2000
1916
  background-color: var(--color-green-500) !important;
2001
1917
  }
@@ -2004,6 +1920,10 @@
2004
1920
  background-color: var(--color-indigo-50);
2005
1921
  }
2006
1922
 
1923
+ .bg-orange-500 {
1924
+ background-color: var(--color-orange-500);
1925
+ }
1926
+
2007
1927
  .bg-purple-50 {
2008
1928
  background-color: var(--color-purple-50);
2009
1929
  }
@@ -2012,6 +1932,10 @@
2012
1932
  background-color: var(--color-purple-100);
2013
1933
  }
2014
1934
 
1935
+ .bg-purple-500 {
1936
+ background-color: var(--color-purple-500);
1937
+ }
1938
+
2015
1939
  .bg-purple-500\! {
2016
1940
  background-color: var(--color-purple-500) !important;
2017
1941
  }
@@ -2473,6 +2397,10 @@
2473
2397
  color: var(--color-green-100);
2474
2398
  }
2475
2399
 
2400
+ .text-green-500 {
2401
+ color: var(--color-green-500);
2402
+ }
2403
+
2476
2404
  .text-green-600 {
2477
2405
  color: var(--color-green-600);
2478
2406
  }
@@ -2707,6 +2635,11 @@
2707
2635
  opacity: .8;
2708
2636
  }
2709
2637
 
2638
+ .hover\:shadow-lg:hover {
2639
+ --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);
2640
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2641
+ }
2642
+
2710
2643
  .hover\:shadow-xl:hover {
2711
2644
  --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, #0000001a), 0 8px 10px -6px var(--tw-shadow-color, #0000001a);
2712
2645
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -2773,6 +2706,10 @@
2773
2706
  .lg\:grid-cols-3 {
2774
2707
  grid-template-columns: repeat(3, minmax(0, 1fr));
2775
2708
  }
2709
+
2710
+ .lg\:grid-cols-4 {
2711
+ grid-template-columns: repeat(4, minmax(0, 1fr));
2712
+ }
2776
2713
  }
2777
2714
  }
2778
2715
 
@@ -1 +1 @@
1
- :root{--jky-add-input-gap:12px;--jky-add-input-row-gap:8px;--jky-add-input-min-width:100px;--jky-add-input-action-width:80px}.jky-add-input{display:flex;flex-direction:column;gap:var(--jky-add-input-row-gap);min-width:var(--jky-add-input-min-width)}.jky-add-input__row{align-items:center;display:flex;gap:var(--jky-add-input-gap)}.jky-add-input__key,.jky-add-input__value{flex:1;min-width:0}.jky-add-input__actions{display:flex;flex-shrink:0;gap:var(--jky-add-input-gap);width:var(--jky-add-input-action-width)}:root{--jky-button-primary-bg:#007bff;--jky-button-primary-text:#fff;--jky-button-primary-hover-bg:#0056b3;--jky-button-success-bg:#28a745;--jky-button-success-text:#fff;--jky-button-success-hover-bg:#1e7e34;--jky-button-warning-bg:#ffc107;--jky-button-warning-text:#fff;--jky-button-warning-hover-bg:#e0a800;--jky-button-danger-bg:#dc3545;--jky-button-danger-text:#fff;--jky-button-danger-hover-bg:#c82333;--jky-button-info-bg:#6c757d;--jky-button-info-text:#fff;--jky-button-info-hover-bg:#5a6268;--jky-button-default-bg:#fff;--jky-button-default-text:#606266;--jky-button-default-border:#dcdfe6;--jky-button-default-hover-bg:#f5f7fa;--jky-button-font-size:14px;--jky-button-font-size-small:12px;--jky-button-font-size-large:16px;--jky-button-padding:0 16px;--jky-button-padding-small:0 12px;--jky-button-padding-large:0 20px;--jky-button-height:40px;--jky-button-height-small:32px;--jky-button-height-large:48px;--jky-button-border-radius:0.375rem;--jky-button-disabled-opacity:0.5;--jky-button-disabled-bg:#f5f7fa;--jky-button-disabled-text:#c0c4cc;--jky-button-loading-opacity:0.7;--jky-button-icon-size:1.25rem;--jky-button-icon-margin:0.5rem}.jky-button{align-items:center;background-color:var(--jky-button-default-bg);border:1px solid var(--jky-button-default-border);border-radius:var(--jky-button-border-radius);color:var(--jky-button-default-text);cursor:pointer;display:inline-flex;font-size:var(--jky-button-font-size);font-weight:500;height:var(--jky-button-height);justify-content:center;padding:var(--jky-button-padding);transition:color .2s,background-color .2s}.jky-button--primary{background-color:var(--jky-button-primary-bg);border:none;color:var(--jky-button-primary-text)}.jky-button--primary:hover{background-color:var(--jky-button-primary-hover-bg)}.jky-button--success{background-color:var(--jky-button-success-bg);border:none;color:var(--jky-button-success-text)}.jky-button--success:hover{background-color:var(--jky-button-success-hover-bg)}.jky-button--warning{background-color:var(--jky-button-warning-bg);border:none;color:var(--jky-button-warning-text)}.jky-button--warning:hover{background-color:var(--jky-button-warning-hover-bg)}.jky-button--danger{background-color:var(--jky-button-danger-bg);border:none;color:var(--jky-button-danger-text)}.jky-button--danger:hover{background-color:var(--jky-button-danger-hover-bg)}.jky-button--info{background-color:var(--jky-button-info-bg);border:none;color:var(--jky-button-info-text)}.jky-button--info:hover{background-color:var(--jky-button-info-hover-bg)}.jky-button--small{font-size:var(--jky-button-font-size-small);height:var(--jky-button-height-small);padding:var(--jky-button-padding-small)}.jky-button--large{font-size:var(--jky-button-font-size-large);height:var(--jky-button-height-large);padding:var(--jky-button-padding-large)}.jky-button.is-disabled{background-color:var(--jky-button-disabled-bg);color:var(--jky-button-disabled-text);cursor:not-allowed;opacity:var(--jky-button-disabled-opacity);pointer-events:none}.jky-button.is-loading{opacity:var(--jky-button-loading-opacity);pointer-events:none;position:relative}.jky-button__loading{display:flex;inset:0;position:absolute}.jky-button__icon,.jky-button__loading{align-items:center;justify-content:center}.jky-button__icon{display:inline-flex;font-size:1em;margin-right:var(--jky-button-icon-margin)}.jky-button__icon:only-child{margin-right:0}.jky-button--suffix .jky-button__icon{margin-left:var(--jky-button-icon-margin);margin-right:0}.jky-button:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #000;outline:2px solid transparent;outline-offset:2px}.loading-spinner{animation:spin 1s linear infinite;height:var(--jky-button-icon-size);width:var(--jky-button-icon-size)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--jky-button-nav-active-bg:var(--el-color-primary);--jky-button-nav-active-text:#fff;--jky-button-nav-inactive-bg:var(--el-fill-color-light);--jky-button-nav-inactive-text:var(--el-text-color-regular);--el-dropdown-menu-margin-left:12px}.jky-button-nav{align-items:center;display:flex;flex-wrap:wrap;.el-dropdown{margin-left:var(--el-dropdown-menu-margin-left)}}.jky-button-nav-item{background-color:var(--jky-button-nav-inactive-bg);color:var(--jky-button-nav-inactive-text);&.is-active,&[aria-pressed=true]{background-color:var(--jky-button-nav-active-bg);color:var(--jky-button-nav-active-text)}}:root{--j-code-mirror-border-color:#dcdfe6;--j-code-mirror-border-radius:4px;--j-code-mirror-height:400px}.j-code-mirror-editor{border-radius:var(--j-code-mirror-border-radius);height:var(--j-code-mirror-height);overflow:hidden;width:100%}.code-mirror-container{height:100%;overflow:auto;width:100%}.code-mirror-container .cm-editor{height:100%}.code-mirror-container .cm-scroller{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;overflow:auto}.code-mirror-container .cm-gutters{background-color:#2c2d2d;border-color:#4c4d4f;color:#909399}:root{--jky-form-item-border-width:4px;--jky-form-item-border-color:var(--el-color-primary);--jky-form-item-bg-color:rgba(var(--el-color-primary-rgb),0.5);--jky-form-grid-cols-xs:1;--jky-form-grid-cols-sm:2;--jky-form-grid-cols-md:2;--jky-form-grid-cols-lg:3;--jky-form-grid-cols-xl:3;--jky-form-grid-cols-2xl:4;--jky-form-grid-cols-3xl:4}.jky-form--grid{display:grid;gap:var(--el-form-item-gutter,16px);grid-template-columns:repeat(var(--jky-form-grid-cols-xs),minmax(0,1fr))}.el-form--inline.jky-form--grid .el-form-item{margin-right:0;.el-form-item__content{align-items:flex-start}}@media (min-width:640px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-sm,var(--jky-form-grid-cols-xs)),minmax(0,1fr))}}@media (min-width:768px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-md,var(--jky-form-grid-cols-sm)),minmax(0,1fr))}}@media (min-width:1024px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-lg,var(--jky-form-grid-cols-md)),minmax(0,1fr))}}@media (min-width:1280px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-xl,var(--jky-form-grid-cols-lg)),minmax(0,1fr))}}@media (min-width:1536px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-2xl,var(--jky-form-grid-cols-xl)),minmax(0,1fr))}}@media (min-width:1920px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-3xl,var(--jky-form-grid-cols-2xl)),minmax(0,1fr))}}:root{--jky-menu-bg-color:#fff;--jky-menu-text-color:#303133;--jky-menu-active-color:#409eff;--jky-menu-hover-bg-color:#f5f7fa;--jky-menu-hover-text-color:#606266;--jky-menu-item-height:56px;--jky-menu-item-padding:0 20px;--jky-menu-item-font-size:14px;--jky-menu-icon-size:18px;--jky-menu-icon-margin:8px;--jky-menu-border-color:#e4e7ed;--jky-menu-disabled-opacity:0.5;--jky-menu-disabled-text-color:#c0c4cc}.jky-menu{li+li{margin-top:0}}:root{--jky-page-header-bg-color:#1890ff;--jky-page-header-bg-size:cover;--jky-page-header-bg-position:center;--jky-page-header-box-shadow:0 2px 8px rgba(0,0,0,.15);--jky-page-header-padding-x:24px;--jky-page-header-padding-x-mobile:16px;--jky-page-header-gap:16px;--jky-page-header-gap-mobile:12px;--jky-page-header-gap-left:12px;--jky-page-header-gap-status:12px;--jky-page-header-gap-center:24px;--jky-page-header-gap-center-mobile:12px;--jky-page-header-title-color:#fff;--jky-page-header-title-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-text-size:16px;--jky-page-header-icon-color:#fff;--jky-page-header-icon-size:20px;--jky-page-header-icon-hover-opacity:0.8;--jky-page-header-logo-height:40px;--jky-page-header-avatar-size:32px}.jky-page-header{background-color:var(--jky-page-header-bg-color);background-position:var(--jky-page-header-bg-position);background-size:var(--jky-page-header-bg-size);box-shadow:var(--jky-page-header-box-shadow);width:100%}.jky-page-header__container{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:100%;padding:0 var(--jky-page-header-padding-x)}.jky-page-header__left{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap-left)}.jky-page-header__logo{height:var(--jky-page-header-logo-height);object-fit:contain;width:auto}.jky-page-header__title{color:var(--jky-page-header-title-color);font-size:var(--jky-page-header-title-size);font-weight:var(--jky-page-header-title-weight);white-space:nowrap}.jky-page-header__center{align-items:center;display:flex;flex:1;justify-content:center;margin:0 var(--jky-page-header-gap-center);min-width:0}.jky-page-header__right{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap)}.jky-page-header__status-icons{align-items:center;display:flex;gap:var(--jky-page-header-gap-status)}.jky-page-header__status-icon{color:var(--jky-page-header-icon-color);cursor:pointer;transition:opacity .2s;&:hover{opacity:var(--jky-page-header-icon-hover-opacity)}}.jky-page-header__time{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size);white-space:nowrap}.jky-page-header__user{align-items:center;color:var(--jky-page-header-text-color);cursor:pointer;display:flex;gap:8px}.jky-page-header__avatar{color:var(--jky-page-header-icon-color);img{height:100%;object-fit:cover;width:100%}}.jky-page-header__username{white-space:nowrap}.jky-page-header__logout,.jky-page-header__username{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size)}@media (max-width:768px){.jky-page-header__container{padding:0 var(--jky-page-header-padding-x-mobile)}.jky-page-header__title{font-size:var(--jky-page-header-title-size-mobile)}.jky-page-header__center{margin:0 var(--jky-page-header-gap-center-mobile)}.jky-page-header__right{gap:var(--jky-page-header-gap-mobile)}}:root{--jky-page-layout-gap:5}.jky-page-layout{column-gap:calc(var(--spacing)*var(--jky-page-layout-gap));.el-menu{border-right:none}}.jky-page-table{--jky-page-table_pagination-position:flex-end;.jky-page-table__pagination{.el-scrollbar__view{display:flex;justify-content:var(--jky-page-table_pagination-position)}}}:root{--jky-rich-editor-border:#d9d9d9;--jky-rich-editor-border-hover:#409eff;--jky-rich-editor-border-radius:4px;--jky-rich-editor-box-shadow:0 0 0 1px #409eff}.jky-rich-editor{width:100%}.jky-rich-editor .tox-tinymce{border:1px solid var(--jky-rich-editor-border);border-radius:var(--jky-rich-editor-border-radius);transition:border-color .2s}.jky-rich-editor .tox-tinymce:hover{border-color:var(--jky-rich-editor-border-hover)}.jky-rich-editor .tox-tinymce:focus-within{border-color:var(--jky-rich-editor-border-hover);box-shadow:var(--jky-rich-editor-box-shadow)}.jky-rich-editor.is-disabled .tox-tinymce{background-color:#f5f7fa;cursor:not-allowed}.jky-rich-editor.is-readonly .tox-tinymce{background-color:#fafafa}:root{--jky-say-hello-bg:#42b883;--jky-say-hello-text:#fff;--jky-say-hello-hover-bg:#3aa876;--jky-say-hello-font-size:16px;--jky-say-hello-padding:8px 20px;--jky-say-hello-margin:4px 2px;--jky-say-hello-border-radius:6px}.jky-say-hello{background-color:var(--jky-say-hello-bg);border-radius:var(--jky-say-hello-border-radius);color:var(--jky-say-hello-text);cursor:pointer;display:inline-block;font-size:var(--jky-say-hello-font-size);margin:var(--jky-say-hello-margin);padding:var(--jky-say-hello-padding);text-align:center;text-decoration:none;transition:background-color .2s ease}.jky-say-hello:hover{background-color:var(--jky-say-hello-hover-bg)}@import "tailwindcss";@plugin "@iconify/tailwind4";@source "../node_modules/jky-component-lib/dist/es/";@source "../docs/**/*.md";@source "./**/*.md";@source "./**/*.vue";@source "./**/*.css";@custom-variant dark (&:is(.dark *))
1
+ :root{--jky-add-input-gap:12px;--jky-add-input-row-gap:8px;--jky-add-input-min-width:100px;--jky-add-input-action-width:80px}.jky-add-input{display:flex;flex-direction:column;gap:var(--jky-add-input-row-gap);min-width:var(--jky-add-input-min-width)}.jky-add-input__row{align-items:center;display:flex;gap:var(--jky-add-input-gap)}.jky-add-input__key,.jky-add-input__value{flex:1;min-width:0}.jky-add-input__actions{display:flex;flex-shrink:0;gap:var(--jky-add-input-gap);width:var(--jky-add-input-action-width)}:root{--jky-button-primary-bg:#007bff;--jky-button-primary-text:#fff;--jky-button-primary-hover-bg:#0056b3;--jky-button-success-bg:#28a745;--jky-button-success-text:#fff;--jky-button-success-hover-bg:#1e7e34;--jky-button-warning-bg:#ffc107;--jky-button-warning-text:#fff;--jky-button-warning-hover-bg:#e0a800;--jky-button-danger-bg:#dc3545;--jky-button-danger-text:#fff;--jky-button-danger-hover-bg:#c82333;--jky-button-info-bg:#6c757d;--jky-button-info-text:#fff;--jky-button-info-hover-bg:#5a6268;--jky-button-default-bg:#fff;--jky-button-default-text:#606266;--jky-button-default-border:#dcdfe6;--jky-button-default-hover-bg:#f5f7fa;--jky-button-font-size:14px;--jky-button-font-size-small:12px;--jky-button-font-size-large:16px;--jky-button-padding:0 16px;--jky-button-padding-small:0 12px;--jky-button-padding-large:0 20px;--jky-button-height:40px;--jky-button-height-small:32px;--jky-button-height-large:48px;--jky-button-border-radius:0.375rem;--jky-button-disabled-opacity:0.5;--jky-button-disabled-bg:#f5f7fa;--jky-button-disabled-text:#c0c4cc;--jky-button-loading-opacity:0.7;--jky-button-icon-size:1.25rem;--jky-button-icon-margin:0.5rem}.jky-button{align-items:center;background-color:var(--jky-button-default-bg);border:1px solid var(--jky-button-default-border);border-radius:var(--jky-button-border-radius);color:var(--jky-button-default-text);cursor:pointer;display:inline-flex;font-size:var(--jky-button-font-size);font-weight:500;height:var(--jky-button-height);justify-content:center;padding:var(--jky-button-padding);transition:color .2s,background-color .2s}.jky-button--primary{background-color:var(--jky-button-primary-bg);border:none;color:var(--jky-button-primary-text)}.jky-button--primary:hover{background-color:var(--jky-button-primary-hover-bg)}.jky-button--success{background-color:var(--jky-button-success-bg);border:none;color:var(--jky-button-success-text)}.jky-button--success:hover{background-color:var(--jky-button-success-hover-bg)}.jky-button--warning{background-color:var(--jky-button-warning-bg);border:none;color:var(--jky-button-warning-text)}.jky-button--warning:hover{background-color:var(--jky-button-warning-hover-bg)}.jky-button--danger{background-color:var(--jky-button-danger-bg);border:none;color:var(--jky-button-danger-text)}.jky-button--danger:hover{background-color:var(--jky-button-danger-hover-bg)}.jky-button--info{background-color:var(--jky-button-info-bg);border:none;color:var(--jky-button-info-text)}.jky-button--info:hover{background-color:var(--jky-button-info-hover-bg)}.jky-button--small{font-size:var(--jky-button-font-size-small);height:var(--jky-button-height-small);padding:var(--jky-button-padding-small)}.jky-button--large{font-size:var(--jky-button-font-size-large);height:var(--jky-button-height-large);padding:var(--jky-button-padding-large)}.jky-button.is-disabled{background-color:var(--jky-button-disabled-bg);color:var(--jky-button-disabled-text);cursor:not-allowed;opacity:var(--jky-button-disabled-opacity);pointer-events:none}.jky-button.is-loading{opacity:var(--jky-button-loading-opacity);pointer-events:none;position:relative}.jky-button__loading{display:flex;inset:0;position:absolute}.jky-button__icon,.jky-button__loading{align-items:center;justify-content:center}.jky-button__icon{display:inline-flex;font-size:1em;margin-right:var(--jky-button-icon-margin)}.jky-button__icon:only-child{margin-right:0}.jky-button--suffix .jky-button__icon{margin-left:var(--jky-button-icon-margin);margin-right:0}.jky-button:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 4px #000;outline:2px solid transparent;outline-offset:2px}.loading-spinner{animation:spin 1s linear infinite;height:var(--jky-button-icon-size);width:var(--jky-button-icon-size)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--jky-button-nav-active-bg:var(--el-color-primary);--jky-button-nav-active-text:#fff;--jky-button-nav-inactive-bg:var(--el-fill-color-light);--jky-button-nav-inactive-text:var(--el-text-color-regular);--el-dropdown-menu-margin-left:12px}.jky-button-nav{align-items:center;display:flex;flex-wrap:wrap;.el-dropdown{margin-left:var(--el-dropdown-menu-margin-left)}}.jky-button-nav-item{background-color:var(--jky-button-nav-inactive-bg);color:var(--jky-button-nav-inactive-text);&.is-active,&[aria-pressed=true]{background-color:var(--jky-button-nav-active-bg);color:var(--jky-button-nav-active-text)}}:root{--j-code-mirror-border-color:#dcdfe6;--j-code-mirror-border-radius:4px;--j-code-mirror-height:400px}.j-code-mirror-editor{border-radius:var(--j-code-mirror-border-radius);height:var(--j-code-mirror-height);overflow:hidden;width:100%}.code-mirror-container{height:100%;overflow:auto;width:100%}.code-mirror-container .cm-editor{height:100%}.code-mirror-container .cm-scroller{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.5;overflow:auto}.code-mirror-container .cm-gutters{background-color:#2c2d2d;border-color:#4c4d4f;color:#909399}:root{--jky-form-item-border-width:4px;--jky-form-item-border-color:var(--el-color-primary);--jky-form-item-bg-color:rgba(var(--el-color-primary-rgb),0.5);--jky-form-grid-cols-xs:1;--jky-form-grid-cols-sm:2;--jky-form-grid-cols-md:2;--jky-form-grid-cols-lg:3;--jky-form-grid-cols-xl:3;--jky-form-grid-cols-2xl:4;--jky-form-grid-cols-3xl:4}.jky-form--grid{display:grid;gap:var(--el-form-item-gutter,16px);grid-template-columns:repeat(var(--jky-form-grid-cols-xs),minmax(0,1fr))}.el-form--inline.jky-form--grid .el-form-item{margin-right:0;.el-form-item__content{align-items:flex-start}}@media (min-width:640px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-sm,var(--jky-form-grid-cols-xs)),minmax(0,1fr))}}@media (min-width:768px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-md,var(--jky-form-grid-cols-sm)),minmax(0,1fr))}}@media (min-width:1024px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-lg,var(--jky-form-grid-cols-md)),minmax(0,1fr))}}@media (min-width:1280px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-xl,var(--jky-form-grid-cols-lg)),minmax(0,1fr))}}@media (min-width:1536px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-2xl,var(--jky-form-grid-cols-xl)),minmax(0,1fr))}}@media (min-width:1920px){.jky-form--grid{grid-template-columns:repeat(var(--jky-form-grid-cols-3xl,var(--jky-form-grid-cols-2xl)),minmax(0,1fr))}}:root{--jky-menu-bg-color:#fff;--jky-menu-text-color:#303133;--jky-menu-active-color:#409eff;--jky-menu-hover-bg-color:#f5f7fa;--jky-menu-hover-text-color:#606266;--jky-menu-item-height:56px;--jky-menu-item-padding:0 20px;--jky-menu-item-font-size:14px;--jky-menu-icon-size:18px;--jky-menu-icon-margin:8px;--jky-menu-border-color:#e4e7ed;--jky-menu-disabled-opacity:0.5;--jky-menu-disabled-text-color:#c0c4cc}.jky-menu{li+li{margin-top:0}}:root{--jky-page-header-bg-color:#1890ff;--jky-page-header-bg-size:cover;--jky-page-header-bg-position:center;--jky-page-header-box-shadow:0 2px 8px rgba(0,0,0,.15);--jky-page-header-padding-x:24px;--jky-page-header-padding-x-mobile:16px;--jky-page-header-gap:16px;--jky-page-header-gap-mobile:12px;--jky-page-header-gap-left:12px;--jky-page-header-gap-status:12px;--jky-page-header-gap-center:24px;--jky-page-header-gap-center-mobile:12px;--jky-page-header-title-color:#fff;--jky-page-header-title-size:20px;--jky-page-header-title-size-mobile:16px;--jky-page-header-title-weight:600;--jky-page-header-text-color:hsla(0,0%,100%,.85);--jky-page-header-text-size:16px;--jky-page-header-icon-color:#fff;--jky-page-header-icon-size:20px;--jky-page-header-icon-hover-opacity:0.8;--jky-page-header-logo-height:40px;--jky-page-header-avatar-size:32px}.jky-page-header{background-color:var(--jky-page-header-bg-color);background-position:var(--jky-page-header-bg-position);background-size:var(--jky-page-header-bg-size);box-shadow:var(--jky-page-header-box-shadow);width:100%}.jky-page-header__container{align-items:center;display:flex;height:100%;justify-content:space-between;margin:0 auto;max-width:100%;padding:0 var(--jky-page-header-padding-x)}.jky-page-header__left{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap-left)}.jky-page-header__logo{height:var(--jky-page-header-logo-height);object-fit:contain;width:auto}.jky-page-header__title{color:var(--jky-page-header-title-color);font-size:var(--jky-page-header-title-size);font-weight:var(--jky-page-header-title-weight);white-space:nowrap}.jky-page-header__center{align-items:center;display:flex;flex:1;justify-content:center;margin:0 var(--jky-page-header-gap-center);min-width:0}.jky-page-header__right{align-items:center;display:flex;flex-shrink:0;gap:var(--jky-page-header-gap)}.jky-page-header__status-icons{align-items:center;display:flex;gap:var(--jky-page-header-gap-status)}.jky-page-header__status-icon{color:var(--jky-page-header-icon-color);cursor:pointer;transition:opacity .2s;&:hover{opacity:var(--jky-page-header-icon-hover-opacity)}}.jky-page-header__time{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size);white-space:nowrap}.jky-page-header__user{align-items:center;color:var(--jky-page-header-text-color);cursor:pointer;display:flex;gap:8px}.jky-page-header__avatar{color:var(--jky-page-header-icon-color);img{height:100%;object-fit:cover;width:100%}}.jky-page-header__username{white-space:nowrap}.jky-page-header__logout,.jky-page-header__username{color:var(--jky-page-header-text-color);font-size:var(--jky-page-header-text-size)}@media (max-width:768px){.jky-page-header__container{padding:0 var(--jky-page-header-padding-x-mobile)}.jky-page-header__title{font-size:var(--jky-page-header-title-size-mobile)}.jky-page-header__center{margin:0 var(--jky-page-header-gap-center-mobile)}.jky-page-header__right{gap:var(--jky-page-header-gap-mobile)}}:root{--jky-page-layout-gap:5}.jky-page-layout{column-gap:calc(var(--spacing)*var(--jky-page-layout-gap));.el-menu{border-right:none}}.jky-page-table{--jky-page-table_pagination-position:flex-end;.jky-page-table__pagination{.el-scrollbar__view{display:flex;justify-content:var(--jky-page-table_pagination-position)}}}:root{--jky-rich-editor-border:#d9d9d9;--jky-rich-editor-border-hover:#409eff;--jky-rich-editor-border-radius:4px;--jky-rich-editor-box-shadow:0 0 0 1px #409eff}.jky-rich-editor{width:100%}.jky-rich-editor .tox-tinymce{border:1px solid var(--jky-rich-editor-border);border-radius:var(--jky-rich-editor-border-radius);transition:border-color .2s}.jky-rich-editor .tox-tinymce:hover{border-color:var(--jky-rich-editor-border-hover)}.jky-rich-editor .tox-tinymce:focus-within{border-color:var(--jky-rich-editor-border-hover);box-shadow:var(--jky-rich-editor-box-shadow)}.jky-rich-editor.is-disabled .tox-tinymce{background-color:#f5f7fa;cursor:not-allowed}.jky-rich-editor.is-readonly .tox-tinymce{background-color:#fafafa}:root{--jky-say-hello-bg:#42b883;--jky-say-hello-text:#fff;--jky-say-hello-hover-bg:#3aa876;--jky-say-hello-font-size:16px;--jky-say-hello-padding:8px 20px;--jky-say-hello-margin:4px 2px;--jky-say-hello-border-radius:6px}.jky-say-hello{background-color:var(--jky-say-hello-bg);border-radius:var(--jky-say-hello-border-radius);color:var(--jky-say-hello-text);cursor:pointer;display:inline-block;font-size:var(--jky-say-hello-font-size);margin:var(--jky-say-hello-margin);padding:var(--jky-say-hello-padding);text-align:center;text-decoration:none;transition:background-color .2s ease}.jky-say-hello:hover{background-color:var(--jky-say-hello-hover-bg)}@import "tailwindcss";@plugin "@iconify/tailwind4";@source "../node_modules/jky-component-lib/dist/es/";@source "../docs/**/*.md";@source "./**/*.md";@source "./**/*.vue";@source "./**/*.css";@custom-variant dark (&:is(.dark *));.jky-tabs{.el-tabs__content{display:none}.el-tabs__header{margin-bottom:0}}.jky-tabs-round{--el-tabs-header-height:32px;--el-tabs-item-background:#fff;--el-tabs-active-item-background:var(--el-color-primary);.el-tabs__header{--el-border-color-light:transparent}.el-tabs__item{background-color:var(--el-tabs-item-background);border-bottom:none!important;border-radius:999px;margin-left:1rem;&.is-active{background-color:var(--el-tabs-active-item-background);.el-icon,.jky-tabs-__item-label{color:var(--el-color-white)}}&.first-child{margin-left:0}}}.jky-tabs-context-menu{display:inline-block}
@@ -0,0 +1,30 @@
1
+ import { TabsContextMenuItem, TabsContextMenuProps } from './types';
2
+ declare function __VLS_template(): {
3
+ attrs: Partial<{}>;
4
+ slots: {
5
+ default?(_: {}): any;
6
+ };
7
+ refs: {};
8
+ rootEl: any;
9
+ };
10
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
11
+ declare const __VLS_component: import('vue').DefineComponent<TabsContextMenuProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
12
+ command: (command: {
13
+ key: string;
14
+ tab: TabsContextMenuProps["tab"];
15
+ }) => any;
16
+ }, string, import('vue').PublicProps, Readonly<TabsContextMenuProps> & Readonly<{
17
+ onCommand?: ((command: {
18
+ key: string;
19
+ tab: TabsContextMenuProps["tab"];
20
+ }) => any) | undefined;
21
+ }>, {
22
+ menuItems: TabsContextMenuItem[];
23
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
24
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
25
+ export default _default;
26
+ type __VLS_WithTemplateSlots<T, S> = T & {
27
+ new (): {
28
+ $slots: S;
29
+ };
30
+ };
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __spreadValues = (a, b) => {
10
+ for (var prop in b || (b = {}))
11
+ if (__hasOwnProp.call(b, prop))
12
+ __defNormalProp(a, prop, b[prop]);
13
+ if (__getOwnPropSymbols)
14
+ for (var prop of __getOwnPropSymbols(b)) {
15
+ if (__propIsEnum.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ }
18
+ return a;
19
+ };
20
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
22
+ const vue = require("vue");
23
+ const ElementPlus = require("element-plus");
24
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValues({}, {
25
+ name: "JkyTabsContextMenu"
26
+ }), {
27
+ __name: "ContextMenu",
28
+ props: {
29
+ tab: {},
30
+ isActive: { type: Boolean },
31
+ isOnlyTab: { type: Boolean },
32
+ menuItems: { default: () => [] }
33
+ },
34
+ emits: ["command"],
35
+ setup(__props, { emit: __emit }) {
36
+ const props = __props;
37
+ const emit = __emit;
38
+ const defaultMenuItems = vue.computed(() => {
39
+ return [
40
+ {
41
+ key: "refresh",
42
+ label: "刷新",
43
+ icon: "Refresh"
44
+ },
45
+ {
46
+ key: "closeCurrent",
47
+ label: "关闭当前",
48
+ icon: "Close",
49
+ disabled: props.isOnlyTab
50
+ },
51
+ {
52
+ key: "closeOthers",
53
+ label: "关闭其他",
54
+ icon: "FolderDelete",
55
+ disabled: props.isOnlyTab,
56
+ divided: true
57
+ }
58
+ ];
59
+ });
60
+ const menuItems = vue.computed(() => {
61
+ return [...defaultMenuItems.value, ...props.menuItems];
62
+ });
63
+ function handleCommand(command) {
64
+ emit("command", {
65
+ key: command,
66
+ tab: props.tab
67
+ });
68
+ }
69
+ return (_ctx, _cache) => {
70
+ return vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElDropdown), {
71
+ trigger: "contextmenu",
72
+ class: "jky-tabs-context-menu",
73
+ onCommand: handleCommand
74
+ }, {
75
+ dropdown: vue.withCtx(() => [
76
+ vue.createVNode(vue.unref(ElementPlus.ElDropdownMenu), null, {
77
+ default: vue.withCtx(() => [
78
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(menuItems.value, (item) => {
79
+ return vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElDropdownItem), {
80
+ key: item.key,
81
+ command: item.key,
82
+ divided: item.divided,
83
+ disabled: item.disabled
84
+ }, {
85
+ default: vue.withCtx(() => {
86
+ var _a;
87
+ return [
88
+ ((_a = item.icon) == null ? void 0 : _a.startsWith("icon-")) ? (vue.openBlock(), vue.createElementBlock("span", {
89
+ key: 0,
90
+ class: vue.normalizeClass(item.icon)
91
+ }, null, 2)) : item.icon ? (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElIcon), {
92
+ key: 1,
93
+ class: "mr-1"
94
+ }, {
95
+ default: vue.withCtx(() => [
96
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(item.icon)))
97
+ ]),
98
+ _: 2
99
+ }, 1024)) : vue.createCommentVNode("", true),
100
+ vue.createTextVNode(" " + vue.toDisplayString(item.label), 1)
101
+ ];
102
+ }),
103
+ _: 2
104
+ }, 1032, ["command", "divided", "disabled"]);
105
+ }), 128))
106
+ ]),
107
+ _: 1
108
+ })
109
+ ]),
110
+ default: vue.withCtx(() => [
111
+ vue.renderSlot(_ctx.$slots, "default")
112
+ ]),
113
+ _: 3
114
+ });
115
+ };
116
+ }
117
+ }));
118
+ exports.default = _sfc_main;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const ContextMenu_vue_vue_type_script_setup_true_lang = require("./ContextMenu.vue.js");
4
+ ;/* empty css */
5
+ exports.default = ContextMenu_vue_vue_type_script_setup_true_lang.default;
@@ -0,0 +1,13 @@
1
+ import { Store } from 'pinia';
2
+ import { TabsProps, TabsStoreActions, TabsStoreState } from './types';
3
+ type __VLS_Props = TabsProps & {
4
+ store: Store<'tabs', TabsStoreState, object, TabsStoreActions>;
5
+ };
6
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
7
+ round: boolean;
8
+ mode: "route" | "manual";
9
+ closable: boolean;
10
+ cachable: boolean;
11
+ contextMenu: boolean;
12
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
13
+ export default _default;
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const vue = require("vue");
4
+ const vueRouter = require("vue-router");
5
+ const ContextMenu_vue_vue_type_script_setup_true_lang = require("./ContextMenu.vue.js");
6
+ ;/* empty css */
7
+ const _hoisted_1 = { class: "flex items-center jky-tabs-__item-label" };
8
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
9
+ __name: "Tabs",
10
+ props: {
11
+ mode: { default: "route" },
12
+ cachable: { type: Boolean, default: true },
13
+ closable: { type: Boolean, default: true },
14
+ round: { type: Boolean, default: false },
15
+ contextMenu: { type: Boolean, default: true },
16
+ store: {}
17
+ },
18
+ setup(__props) {
19
+ const props = __props;
20
+ const router = vueRouter.useRouter();
21
+ vue.onMounted(() => {
22
+ props.store.loadFromCache();
23
+ router.afterEach((to) => {
24
+ props.store.addTab(to);
25
+ });
26
+ props.store.addTab(router.currentRoute.value);
27
+ });
28
+ const activeTabPath = vue.computed({
29
+ get: () => {
30
+ var _a;
31
+ return ((_a = props.store) == null ? void 0 : _a.activeTabFullPath) || "";
32
+ },
33
+ set: (val) => {
34
+ if (val && props.store) {
35
+ props.store.setActiveTab(val);
36
+ router.push(val);
37
+ }
38
+ }
39
+ });
40
+ function handleTabClick(pane) {
41
+ const fullPath = pane.paneName;
42
+ if (fullPath && fullPath !== activeTabPath.value) {
43
+ router.push(fullPath);
44
+ }
45
+ }
46
+ function handleTabChange(fullPath) {
47
+ if (fullPath && fullPath !== activeTabPath.value) {
48
+ router.push(fullPath);
49
+ }
50
+ }
51
+ function handleTabRemove(fullPath) {
52
+ if (!props.store) {
53
+ return;
54
+ }
55
+ const currentActivePath = props.store.activeTabFullPath;
56
+ const nextActivePath = props.store.closeTab(fullPath, currentActivePath);
57
+ if (nextActivePath) {
58
+ router.push(nextActivePath);
59
+ }
60
+ }
61
+ function handleContextMenuCommand({ key, tab }) {
62
+ if (!props.store)
63
+ return;
64
+ switch (key) {
65
+ case "refresh":
66
+ router.push(tab.fullPath);
67
+ break;
68
+ case "closeCurrent":
69
+ handleTabRemove(tab.fullPath);
70
+ break;
71
+ case "closeOthers":
72
+ props.store.closeOthers(tab.fullPath);
73
+ router.push(tab.fullPath);
74
+ break;
75
+ }
76
+ }
77
+ return (_ctx, _cache) => {
78
+ var _a;
79
+ const _component_el_tab_pane = vue.resolveComponent("el-tab-pane");
80
+ const _component_el_tabs = vue.resolveComponent("el-tabs");
81
+ return vue.openBlock(), vue.createBlock(_component_el_tabs, {
82
+ "model-value": activeTabPath.value,
83
+ type: "card",
84
+ closable: __props.closable,
85
+ class: vue.normalizeClass(["jky-tabs", { "jky-tabs-round": (_a = __props.round) != null ? _a : _ctx.$attrs.round }]),
86
+ onTabClick: handleTabClick,
87
+ onTabRemove: handleTabRemove,
88
+ "onUpdate:modelValue": handleTabChange
89
+ }, {
90
+ default: vue.withCtx(() => {
91
+ var _a2;
92
+ return [
93
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList((_a2 = props.store) == null ? void 0 : _a2.tabs, (tab) => {
94
+ return vue.openBlock(), vue.createBlock(_component_el_tab_pane, {
95
+ key: tab.fullPath,
96
+ label: tab.title,
97
+ name: tab.fullPath,
98
+ closable: __props.closable && props.store && props.store.tabs.length > 1
99
+ }, {
100
+ label: vue.withCtx(() => {
101
+ var _a3;
102
+ return [
103
+ vue.createVNode(ContextMenu_vue_vue_type_script_setup_true_lang.default, {
104
+ tab,
105
+ "is-active": tab.fullPath === activeTabPath.value,
106
+ "is-only-tab": ((_a3 = props.store) == null ? void 0 : _a3.tabs.length) === 1,
107
+ onCommand: handleContextMenuCommand
108
+ }, {
109
+ default: vue.withCtx(() => [
110
+ vue.createElementVNode("div", _hoisted_1, [
111
+ tab.icon ? (vue.openBlock(), vue.createElementBlock("span", {
112
+ key: 0,
113
+ class: vue.normalizeClass(["mr-1 text-lg", tab.icon])
114
+ }, null, 2)) : vue.createCommentVNode("", true),
115
+ vue.createElementVNode("span", null, vue.toDisplayString(tab.title), 1)
116
+ ])
117
+ ]),
118
+ _: 2
119
+ }, 1032, ["tab", "is-active", "is-only-tab"])
120
+ ];
121
+ }),
122
+ _: 2
123
+ }, 1032, ["label", "name", "closable"]);
124
+ }), 128))
125
+ ];
126
+ }),
127
+ _: 1
128
+ }, 8, ["model-value", "closable", "class"]);
129
+ };
130
+ }
131
+ });
132
+ exports.default = _sfc_main;