jky-component-lib 0.0.75 → 0.0.77

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 +43 -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 +43 -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
package/dist/es/style.css CHANGED
@@ -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-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
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { defineComponent, computed, openBlock, createBlock, unref, withCtx, renderSlot, createVNode, createElementBlock, Fragment, renderList, normalizeClass, resolveDynamicComponent, createCommentVNode, createTextVNode, toDisplayString } from "vue";
21
+ import { ElDropdown, ElDropdownMenu, ElDropdownItem, ElIcon } from "element-plus";
22
+ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({}, {
23
+ name: "JkyTabsContextMenu"
24
+ }), {
25
+ __name: "ContextMenu",
26
+ props: {
27
+ tab: {},
28
+ isActive: { type: Boolean },
29
+ isOnlyTab: { type: Boolean },
30
+ menuItems: { default: () => [] }
31
+ },
32
+ emits: ["command"],
33
+ setup(__props, { emit: __emit }) {
34
+ const props = __props;
35
+ const emit = __emit;
36
+ const defaultMenuItems = computed(() => {
37
+ return [
38
+ {
39
+ key: "refresh",
40
+ label: "刷新",
41
+ icon: "Refresh"
42
+ },
43
+ {
44
+ key: "closeCurrent",
45
+ label: "关闭当前",
46
+ icon: "Close",
47
+ disabled: props.isOnlyTab
48
+ },
49
+ {
50
+ key: "closeOthers",
51
+ label: "关闭其他",
52
+ icon: "FolderDelete",
53
+ disabled: props.isOnlyTab,
54
+ divided: true
55
+ }
56
+ ];
57
+ });
58
+ const menuItems = computed(() => {
59
+ return [...defaultMenuItems.value, ...props.menuItems];
60
+ });
61
+ function handleCommand(command) {
62
+ emit("command", {
63
+ key: command,
64
+ tab: props.tab
65
+ });
66
+ }
67
+ return (_ctx, _cache) => {
68
+ return openBlock(), createBlock(unref(ElDropdown), {
69
+ trigger: "contextmenu",
70
+ class: "jky-tabs-context-menu",
71
+ onCommand: handleCommand
72
+ }, {
73
+ dropdown: withCtx(() => [
74
+ createVNode(unref(ElDropdownMenu), null, {
75
+ default: withCtx(() => [
76
+ (openBlock(true), createElementBlock(Fragment, null, renderList(menuItems.value, (item) => {
77
+ return openBlock(), createBlock(unref(ElDropdownItem), {
78
+ key: item.key,
79
+ command: item.key,
80
+ divided: item.divided,
81
+ disabled: item.disabled
82
+ }, {
83
+ default: withCtx(() => {
84
+ var _a;
85
+ return [
86
+ ((_a = item.icon) == null ? void 0 : _a.startsWith("icon-")) ? (openBlock(), createElementBlock("span", {
87
+ key: 0,
88
+ class: normalizeClass(item.icon)
89
+ }, null, 2)) : item.icon ? (openBlock(), createBlock(unref(ElIcon), {
90
+ key: 1,
91
+ class: "mr-1"
92
+ }, {
93
+ default: withCtx(() => [
94
+ (openBlock(), createBlock(resolveDynamicComponent(item.icon)))
95
+ ]),
96
+ _: 2
97
+ }, 1024)) : createCommentVNode("", true),
98
+ createTextVNode(" " + toDisplayString(item.label), 1)
99
+ ];
100
+ }),
101
+ _: 2
102
+ }, 1032, ["command", "divided", "disabled"]);
103
+ }), 128))
104
+ ]),
105
+ _: 1
106
+ })
107
+ ]),
108
+ default: withCtx(() => [
109
+ renderSlot(_ctx.$slots, "default")
110
+ ]),
111
+ _: 3
112
+ });
113
+ };
114
+ }
115
+ }));
116
+ export {
117
+ _sfc_main as default
118
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./ContextMenu.vue.js";
2
+ /* empty css */
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -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
+ import { defineComponent, onMounted, computed, resolveComponent, openBlock, createBlock, normalizeClass, withCtx, createElementBlock, Fragment, renderList, createVNode, createElementVNode, createCommentVNode, toDisplayString } from "vue";
2
+ import { useRouter } from "vue-router";
3
+ import _sfc_main$1 from "./ContextMenu.vue.js";
4
+ /* empty css */
5
+ const _hoisted_1 = { class: "flex items-center jky-tabs-__item-label" };
6
+ const _sfc_main = /* @__PURE__ */ defineComponent({
7
+ __name: "Tabs",
8
+ props: {
9
+ mode: { default: "route" },
10
+ cachable: { type: Boolean, default: true },
11
+ closable: { type: Boolean, default: true },
12
+ round: { type: Boolean, default: false },
13
+ contextMenu: { type: Boolean, default: true },
14
+ store: {}
15
+ },
16
+ setup(__props) {
17
+ const props = __props;
18
+ const router = useRouter();
19
+ onMounted(() => {
20
+ props.store.loadFromCache();
21
+ router.afterEach((to) => {
22
+ props.store.addTab(to);
23
+ });
24
+ props.store.addTab(router.currentRoute.value);
25
+ });
26
+ const activeTabPath = computed({
27
+ get: () => {
28
+ var _a;
29
+ return ((_a = props.store) == null ? void 0 : _a.activeTabFullPath) || "";
30
+ },
31
+ set: (val) => {
32
+ if (val && props.store) {
33
+ props.store.setActiveTab(val);
34
+ router.push(val);
35
+ }
36
+ }
37
+ });
38
+ function handleTabClick(pane) {
39
+ const fullPath = pane.paneName;
40
+ if (fullPath && fullPath !== activeTabPath.value) {
41
+ router.push(fullPath);
42
+ }
43
+ }
44
+ function handleTabChange(fullPath) {
45
+ if (fullPath && fullPath !== activeTabPath.value) {
46
+ router.push(fullPath);
47
+ }
48
+ }
49
+ function handleTabRemove(fullPath) {
50
+ if (!props.store) {
51
+ return;
52
+ }
53
+ const currentActivePath = props.store.activeTabFullPath;
54
+ const nextActivePath = props.store.closeTab(fullPath, currentActivePath);
55
+ if (nextActivePath) {
56
+ router.push(nextActivePath);
57
+ }
58
+ }
59
+ function handleContextMenuCommand({ key, tab }) {
60
+ if (!props.store)
61
+ return;
62
+ switch (key) {
63
+ case "refresh":
64
+ router.push(tab.fullPath);
65
+ break;
66
+ case "closeCurrent":
67
+ handleTabRemove(tab.fullPath);
68
+ break;
69
+ case "closeOthers":
70
+ props.store.closeOthers(tab.fullPath);
71
+ router.push(tab.fullPath);
72
+ break;
73
+ }
74
+ }
75
+ return (_ctx, _cache) => {
76
+ var _a;
77
+ const _component_el_tab_pane = resolveComponent("el-tab-pane");
78
+ const _component_el_tabs = resolveComponent("el-tabs");
79
+ return openBlock(), createBlock(_component_el_tabs, {
80
+ "model-value": activeTabPath.value,
81
+ type: "card",
82
+ closable: __props.closable,
83
+ class: normalizeClass(["jky-tabs", { "jky-tabs-round": (_a = __props.round) != null ? _a : _ctx.$attrs.round }]),
84
+ onTabClick: handleTabClick,
85
+ onTabRemove: handleTabRemove,
86
+ "onUpdate:modelValue": handleTabChange
87
+ }, {
88
+ default: withCtx(() => {
89
+ var _a2;
90
+ return [
91
+ (openBlock(true), createElementBlock(Fragment, null, renderList((_a2 = props.store) == null ? void 0 : _a2.tabs, (tab) => {
92
+ return openBlock(), createBlock(_component_el_tab_pane, {
93
+ key: tab.fullPath,
94
+ label: tab.title,
95
+ name: tab.fullPath,
96
+ closable: __props.closable && props.store && props.store.tabs.length > 1
97
+ }, {
98
+ label: withCtx(() => {
99
+ var _a3;
100
+ return [
101
+ createVNode(_sfc_main$1, {
102
+ tab,
103
+ "is-active": tab.fullPath === activeTabPath.value,
104
+ "is-only-tab": ((_a3 = props.store) == null ? void 0 : _a3.tabs.length) === 1,
105
+ onCommand: handleContextMenuCommand
106
+ }, {
107
+ default: withCtx(() => [
108
+ createElementVNode("div", _hoisted_1, [
109
+ tab.icon ? (openBlock(), createElementBlock("span", {
110
+ key: 0,
111
+ class: normalizeClass(["mr-1 text-lg", tab.icon])
112
+ }, null, 2)) : createCommentVNode("", true),
113
+ createElementVNode("span", null, toDisplayString(tab.title), 1)
114
+ ])
115
+ ]),
116
+ _: 2
117
+ }, 1032, ["tab", "is-active", "is-only-tab"])
118
+ ];
119
+ }),
120
+ _: 2
121
+ }, 1032, ["label", "name", "closable"]);
122
+ }), 128))
123
+ ];
124
+ }),
125
+ _: 1
126
+ }, 8, ["model-value", "closable", "class"]);
127
+ };
128
+ }
129
+ });
130
+ export {
131
+ _sfc_main as default
132
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./Tabs.vue.js";
2
+ /* empty css */
3
+ export {
4
+ _sfc_main as default
5
+ };