jky-component-lib 0.0.65 → 0.0.67

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 (47) hide show
  1. package/dist/es/components.d.ts +1 -0
  2. package/dist/es/components.js +4 -1
  3. package/dist/es/index.js +15 -0
  4. package/dist/es/package.json.js +1 -1
  5. package/dist/es/page-header/PageHeader.vue.js +2 -2
  6. package/dist/es/page-header/PopoverMenu.vue.js +2 -2
  7. package/dist/es/style.css +146 -0
  8. package/dist/es/styles.css +1 -1
  9. package/dist/es/tabs/TabContent.vue.d.ts +16 -0
  10. package/dist/es/tabs/TabContent.vue.js +65 -0
  11. package/dist/es/tabs/TabContent.vue3.js +5 -0
  12. package/dist/es/tabs/Tabs.vue.d.ts +46 -0
  13. package/dist/es/tabs/Tabs.vue.js +275 -0
  14. package/dist/es/tabs/Tabs.vue3.js +5 -0
  15. package/dist/es/tabs/index.d.ts +9 -0
  16. package/dist/es/tabs/index.js +8 -0
  17. package/dist/es/tabs/routeListener.d.ts +19 -0
  18. package/dist/es/tabs/routeListener.js +26 -0
  19. package/dist/es/tabs/style.css +29 -0
  20. package/dist/es/tabs/useTabs.d.ts +27 -0
  21. package/dist/es/tabs/useTabs.js +59 -0
  22. package/dist/es/tabs/useTabsStore.d.ts +53 -0
  23. package/dist/es/tabs/useTabsStore.js +208 -0
  24. package/dist/lib/components.d.ts +1 -0
  25. package/dist/lib/components.js +4 -1
  26. package/dist/lib/index.js +15 -0
  27. package/dist/lib/package.json.js +1 -1
  28. package/dist/lib/page-header/PageHeader.vue.js +3 -3
  29. package/dist/lib/page-header/PopoverMenu.vue.js +2 -2
  30. package/dist/lib/style.css +146 -0
  31. package/dist/lib/styles.css +1 -1
  32. package/dist/lib/tabs/TabContent.vue.d.ts +16 -0
  33. package/dist/lib/tabs/TabContent.vue.js +65 -0
  34. package/dist/lib/tabs/TabContent.vue3.js +5 -0
  35. package/dist/lib/tabs/Tabs.vue.d.ts +46 -0
  36. package/dist/lib/tabs/Tabs.vue.js +275 -0
  37. package/dist/lib/tabs/Tabs.vue3.js +5 -0
  38. package/dist/lib/tabs/index.d.ts +9 -0
  39. package/dist/lib/tabs/index.js +8 -0
  40. package/dist/lib/tabs/routeListener.d.ts +19 -0
  41. package/dist/lib/tabs/routeListener.js +26 -0
  42. package/dist/lib/tabs/style.css +29 -0
  43. package/dist/lib/tabs/useTabs.d.ts +27 -0
  44. package/dist/lib/tabs/useTabs.js +59 -0
  45. package/dist/lib/tabs/useTabsStore.d.ts +53 -0
  46. package/dist/lib/tabs/useTabsStore.js +208 -0
  47. package/package.json +10 -2
@@ -10,5 +10,6 @@ export * from './page-layout';
10
10
  export * from './page-table';
11
11
  export * from './rich-editor';
12
12
  export * from './say-hello';
13
+ export * from './tabs';
13
14
  export declare const components: Plugin[];
14
15
  export default components;
@@ -9,6 +9,7 @@ import { JkyPageLayout } from "./page-layout/index.js";
9
9
  import { JkyPageTable } from "./page-table/index.js";
10
10
  import { JkyRichEditor } from "./rich-editor/index.js";
11
11
  import { JkySayHello } from "./say-hello/index.js";
12
+ import { JkyTabs } from "./tabs/index.js";
12
13
  const components = [
13
14
  JkySayHello,
14
15
  JkyButton,
@@ -20,7 +21,8 @@ const components = [
20
21
  JkyAddInput,
21
22
  JkyRichEditor,
22
23
  JkyPageTable,
23
- JkyPageLayout
24
+ JkyPageLayout,
25
+ JkyTabs
24
26
  ];
25
27
  export {
26
28
  JkyAddInput,
@@ -34,5 +36,6 @@ export {
34
36
  JkyPageTable,
35
37
  JkyRichEditor,
36
38
  JkySayHello,
39
+ JkyTabs,
37
40
  components
38
41
  };
package/dist/es/index.js CHANGED
@@ -2,6 +2,8 @@ import { components } from "./components.js";
2
2
  import { createInstaller } from "./utils/installer.js";
3
3
  /* empty css */
4
4
  import { JkyComponentLibResolver } from "./resolver.js";
5
+ import { default as default2 } from "./tabs/TabContent.vue.js";
6
+ /* empty css */
5
7
  import { JkyAddInput } from "./add-input/index.js";
6
8
  import { JkyButton } from "./button/index.js";
7
9
  import { JkyButtonNav } from "./button-nav/index.js";
@@ -13,6 +15,10 @@ import { JkyPageLayout } from "./page-layout/index.js";
13
15
  import { JkyPageTable } from "./page-table/index.js";
14
16
  import { JkyRichEditor } from "./rich-editor/index.js";
15
17
  import { JkySayHello } from "./say-hello/index.js";
18
+ import { JkyTabs } from "./tabs/index.js";
19
+ import { clearRouteListeners, emitRouteChange, onRouteChange } from "./tabs/routeListener.js";
20
+ import { createTabsStore, resetTabsStore, useTabsStore } from "./tabs/useTabsStore.js";
21
+ import { useTabs } from "./tabs/useTabs.js";
16
22
  const installer = createInstaller(components);
17
23
  const install = installer.install;
18
24
  const version = installer.version;
@@ -29,8 +35,17 @@ export {
29
35
  JkyPageTable,
30
36
  JkyRichEditor,
31
37
  JkySayHello,
38
+ default2 as JkyTabContent,
39
+ JkyTabs,
40
+ clearRouteListeners,
32
41
  components,
42
+ createTabsStore,
33
43
  installer as default,
44
+ emitRouteChange,
34
45
  install,
46
+ onRouteChange,
47
+ resetTabsStore,
48
+ useTabs,
49
+ useTabsStore,
35
50
  version
36
51
  };
@@ -1,4 +1,4 @@
1
- const version = "0.0.65";
1
+ const version = "0.0.67";
2
2
  export {
3
3
  version
4
4
  };
@@ -17,7 +17,7 @@ var __spreadValues = (a, b) => {
17
17
  return a;
18
18
  };
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- import { defineComponent, openBlock, createElementBlock, normalizeStyle, unref, createElementVNode, createBlock, normalizeProps, mergeProps, createCommentVNode, toDisplayString, renderSlot, Fragment, renderList, normalizeClass, withCtx, resolveDynamicComponent, createVNode, createTextVNode } from "vue";
20
+ import { defineComponent, computed, openBlock, createElementBlock, normalizeStyle, createElementVNode, createBlock, normalizeProps, mergeProps, createCommentVNode, toDisplayString, renderSlot, Fragment, renderList, normalizeClass, unref, withCtx, resolveDynamicComponent, createVNode, createTextVNode } from "vue";
21
21
  import { ElIcon, ElDropdown, ElDropdownMenu, ElDropdownItem } from "element-plus";
22
22
  import _sfc_main$1 from "./PopoverMenu.vue.js";
23
23
  const _hoisted_1 = { class: "jky-page-header__container" };
@@ -96,7 +96,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
96
96
  var _a, _b, _c, _d;
97
97
  return openBlock(), createElementBlock("header", {
98
98
  class: "jky-page-header",
99
- style: normalizeStyle([unref(backgroundStyle), { height: unref(heightValue) }])
99
+ style: normalizeStyle([backgroundStyle.value, { height: heightValue.value }])
100
100
  }, [
101
101
  createElementVNode("div", _hoisted_1, [
102
102
  __props.showPopover && ((_b = (_a = __props.popover) == null ? void 0 : _a.menus) == null ? void 0 : _b.length) ? (openBlock(), createBlock(_sfc_main$1, normalizeProps(mergeProps({ key: 0 }, __props.popover)), null, 16)) : createCommentVNode("", true),
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createElementBlock, createVNode, unref, withCtx, createElementVNode, Fragment, renderList, createBlock, normalizeClass, createCommentVNode, toDisplayString } from "vue";
1
+ import { defineComponent, ref, openBlock, createElementBlock, createVNode, unref, withCtx, createElementVNode, Fragment, renderList, createBlock, normalizeClass, createCommentVNode, toDisplayString } from "vue";
2
2
  import { ElPopover, ElButton } from "element-plus";
3
3
  const _hoisted_1 = {
4
4
  key: 0,
@@ -59,7 +59,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
59
59
  key: item.value,
60
60
  disabled: item.disabled,
61
61
  class: normalizeClass(["w-fit! h-fit! ml-0!", [__props.elButtonClass, item.elButtonClass]]),
62
- type: unref(popoverIndex) === item.value ? "primary" : __props.elButtonType || "default",
62
+ type: popoverIndex.value === item.value ? "primary" : __props.elButtonType || "default",
63
63
  onClick: ($event) => onPopoverButtonClick(item)
64
64
  }, {
65
65
  default: withCtx(() => [
package/dist/es/style.css CHANGED
@@ -61,13 +61,21 @@
61
61
  "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
62
62
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
63
63
  "Courier New", monospace;
64
+ --color-red-100: oklch(93.6% .032 17.717);
64
65
  --color-red-500: oklch(63.7% .237 25.331);
66
+ --color-red-700: oklch(50.5% .213 27.518);
67
+ --color-red-800: oklch(44.4% .177 26.899);
68
+ --color-orange-100: oklch(95.4% .038 75.164);
65
69
  --color-orange-600: oklch(64.6% .222 41.116);
70
+ --color-orange-800: oklch(47% .157 37.304);
66
71
  --color-amber-100: oklch(96.2% .059 95.617);
67
72
  --color-yellow-50: oklch(98.7% .026 102.212);
73
+ --color-yellow-100: oklch(97.3% .071 103.193);
74
+ --color-yellow-500: oklch(79.5% .184 86.047);
68
75
  --color-yellow-600: oklch(68.1% .162 75.834);
69
76
  --color-yellow-800: oklch(47.6% .114 61.907);
70
77
  --color-green-50: oklch(98.2% .018 155.826);
78
+ --color-green-100: oklch(96.2% .044 156.743);
71
79
  --color-green-500: oklch(72.3% .219 149.579);
72
80
  --color-green-600: oklch(62.7% .194 149.214);
73
81
  --color-green-800: oklch(44.8% .119 151.328);
@@ -83,12 +91,14 @@
83
91
  --color-purple-500: oklch(62.7% .265 303.9);
84
92
  --color-purple-600: oklch(55.8% .288 302.321);
85
93
  --color-purple-800: oklch(43.8% .218 303.724);
94
+ --color-gray-50: oklch(98.5% .002 247.839);
86
95
  --color-gray-100: oklch(96.7% .003 264.542);
87
96
  --color-gray-300: oklch(87.2% .01 258.338);
88
97
  --color-gray-400: oklch(70.7% .022 261.325);
89
98
  --color-gray-500: oklch(55.1% .027 264.364);
90
99
  --color-gray-600: oklch(44.6% .03 256.802);
91
100
  --color-gray-700: oklch(37.3% .034 259.733);
101
+ --color-gray-800: oklch(27.8% .033 256.848);
92
102
  --color-white: #fff;
93
103
  --spacing: .25rem;
94
104
  --text-xs: .75rem;
@@ -499,6 +509,10 @@
499
509
  margin-top: calc(var(--spacing) * 4);
500
510
  }
501
511
 
512
+ .mt-6 {
513
+ margin-top: calc(var(--spacing) * 6);
514
+ }
515
+
502
516
  .mt-8 {
503
517
  margin-top: calc(var(--spacing) * 8);
504
518
  }
@@ -507,6 +521,14 @@
507
521
  margin-right: calc(var(--spacing) * 2);
508
522
  }
509
523
 
524
+ .mb-0 {
525
+ margin-bottom: calc(var(--spacing) * 0);
526
+ }
527
+
528
+ .mb-1 {
529
+ margin-bottom: calc(var(--spacing) * 1);
530
+ }
531
+
510
532
  .mb-2 {
511
533
  margin-bottom: calc(var(--spacing) * 2);
512
534
  }
@@ -519,6 +541,10 @@
519
541
  margin-bottom: calc(var(--spacing) * 4);
520
542
  }
521
543
 
544
+ .mb-6 {
545
+ margin-bottom: calc(var(--spacing) * 6);
546
+ }
547
+
522
548
  .mb-8 {
523
549
  margin-bottom: calc(var(--spacing) * 8);
524
550
  }
@@ -1067,6 +1093,10 @@
1067
1093
  mask-repeat: no-repeat;
1068
1094
  }
1069
1095
 
1096
+ .block {
1097
+ display: block;
1098
+ }
1099
+
1070
1100
  .contents {
1071
1101
  display: contents;
1072
1102
  }
@@ -1208,6 +1238,10 @@
1208
1238
  list-style-type: disc;
1209
1239
  }
1210
1240
 
1241
+ .grid-cols-1 {
1242
+ grid-template-columns: repeat(1, minmax(0, 1fr));
1243
+ }
1244
+
1211
1245
  .grid-cols-3 {
1212
1246
  grid-template-columns: repeat(3, minmax(0, 1fr));
1213
1247
  }
@@ -1244,6 +1278,10 @@
1244
1278
  justify-content: flex-end;
1245
1279
  }
1246
1280
 
1281
+ .gap-1 {
1282
+ gap: calc(var(--spacing) * 1);
1283
+ }
1284
+
1247
1285
  .gap-2 {
1248
1286
  gap: calc(var(--spacing) * 2);
1249
1287
  }
@@ -1252,6 +1290,24 @@
1252
1290
  gap: calc(var(--spacing) * 4);
1253
1291
  }
1254
1292
 
1293
+ :where(.space-y-1 > :not(:last-child)) {
1294
+ --tw-space-y-reverse: 0;
1295
+ margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));
1296
+ margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
1297
+ }
1298
+
1299
+ :where(.space-y-2 > :not(:last-child)) {
1300
+ --tw-space-y-reverse: 0;
1301
+ margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
1302
+ margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
1303
+ }
1304
+
1305
+ :where(.space-y-3 > :not(:last-child)) {
1306
+ --tw-space-y-reverse: 0;
1307
+ margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
1308
+ margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
1309
+ }
1310
+
1255
1311
  :where(.space-y-4 > :not(:last-child)) {
1256
1312
  --tw-space-y-reverse: 0;
1257
1313
  margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
@@ -1327,6 +1383,14 @@
1327
1383
  border-color: var(--color-gray-300);
1328
1384
  }
1329
1385
 
1386
+ .border-green-500 {
1387
+ border-color: var(--color-green-500);
1388
+ }
1389
+
1390
+ .border-yellow-500 {
1391
+ border-color: var(--color-yellow-500);
1392
+ }
1393
+
1330
1394
  .border-l-\(--el-color-primary\) {
1331
1395
  border-left-color: var(--el-color-primary);
1332
1396
  }
@@ -1397,6 +1461,10 @@
1397
1461
  background-color: var(--color-blue-500);
1398
1462
  }
1399
1463
 
1464
+ .bg-gray-50 {
1465
+ background-color: var(--color-gray-50);
1466
+ }
1467
+
1400
1468
  .bg-gray-100 {
1401
1469
  background-color: var(--color-gray-100);
1402
1470
  }
@@ -1413,6 +1481,14 @@
1413
1481
  background-color: var(--color-green-50);
1414
1482
  }
1415
1483
 
1484
+ .bg-green-100 {
1485
+ background-color: var(--color-green-100);
1486
+ }
1487
+
1488
+ .bg-green-500 {
1489
+ background-color: var(--color-green-500);
1490
+ }
1491
+
1416
1492
  .bg-green-500\! {
1417
1493
  background-color: var(--color-green-500) !important;
1418
1494
  }
@@ -1421,14 +1497,26 @@
1421
1497
  background-color: var(--color-indigo-50);
1422
1498
  }
1423
1499
 
1500
+ .bg-orange-100 {
1501
+ background-color: var(--color-orange-100);
1502
+ }
1503
+
1424
1504
  .bg-purple-50 {
1425
1505
  background-color: var(--color-purple-50);
1426
1506
  }
1427
1507
 
1508
+ .bg-purple-500 {
1509
+ background-color: var(--color-purple-500);
1510
+ }
1511
+
1428
1512
  .bg-purple-500\! {
1429
1513
  background-color: var(--color-purple-500) !important;
1430
1514
  }
1431
1515
 
1516
+ .bg-red-100 {
1517
+ background-color: var(--color-red-100);
1518
+ }
1519
+
1432
1520
  .bg-red-500\! {
1433
1521
  background-color: var(--color-red-500) !important;
1434
1522
  }
@@ -1445,6 +1533,10 @@
1445
1533
  background-color: var(--color-yellow-50);
1446
1534
  }
1447
1535
 
1536
+ .bg-yellow-100 {
1537
+ background-color: var(--color-yellow-100);
1538
+ }
1539
+
1448
1540
  .bg-linear-to-r {
1449
1541
  --tw-gradient-position: to right;
1450
1542
  }
@@ -1477,6 +1569,10 @@
1477
1569
  padding: calc(var(--spacing) * 2);
1478
1570
  }
1479
1571
 
1572
+ .p-3 {
1573
+ padding: calc(var(--spacing) * 3);
1574
+ }
1575
+
1480
1576
  .p-4 {
1481
1577
  padding: calc(var(--spacing) * 4);
1482
1578
  }
@@ -1509,6 +1605,10 @@
1509
1605
  padding-block: calc(var(--spacing) * 2);
1510
1606
  }
1511
1607
 
1608
+ .py-8 {
1609
+ padding-block: calc(var(--spacing) * 8);
1610
+ }
1611
+
1512
1612
  .pr-0 {
1513
1613
  padding-right: calc(var(--spacing) * 0);
1514
1614
  }
@@ -1634,6 +1734,10 @@
1634
1734
  color: var(--color-gray-700);
1635
1735
  }
1636
1736
 
1737
+ .text-gray-800 {
1738
+ color: var(--color-gray-800);
1739
+ }
1740
+
1637
1741
  .text-green-600 {
1638
1742
  color: var(--color-green-600);
1639
1743
  }
@@ -1654,6 +1758,10 @@
1654
1758
  color: var(--color-orange-600);
1655
1759
  }
1656
1760
 
1761
+ .text-orange-800 {
1762
+ color: var(--color-orange-800);
1763
+ }
1764
+
1657
1765
  .text-purple-600 {
1658
1766
  color: var(--color-purple-600);
1659
1767
  }
@@ -1666,6 +1774,10 @@
1666
1774
  color: var(--color-red-500);
1667
1775
  }
1668
1776
 
1777
+ .text-red-800 {
1778
+ color: var(--color-red-800);
1779
+ }
1780
+
1669
1781
  .text-white {
1670
1782
  color: var(--color-white);
1671
1783
  }
@@ -1690,6 +1802,10 @@
1690
1802
  font-style: italic;
1691
1803
  }
1692
1804
 
1805
+ .line-through {
1806
+ text-decoration-line: line-through;
1807
+ }
1808
+
1693
1809
  .underline {
1694
1810
  text-decoration-line: underline;
1695
1811
  }
@@ -1719,7 +1835,33 @@
1719
1835
  transition-duration: var(--tw-duration, var(--default-transition-duration));
1720
1836
  }
1721
1837
 
1838
+ .transition-colors {
1839
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
1840
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1841
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1842
+ }
1843
+
1722
1844
  @media (hover: hover) {
1845
+ .hover\:bg-blue-600:hover {
1846
+ background-color: var(--color-blue-600);
1847
+ }
1848
+
1849
+ .hover\:bg-gray-50:hover {
1850
+ background-color: var(--color-gray-50);
1851
+ }
1852
+
1853
+ .hover\:bg-green-600:hover {
1854
+ background-color: var(--color-green-600);
1855
+ }
1856
+
1857
+ .hover\:bg-purple-600:hover {
1858
+ background-color: var(--color-purple-600);
1859
+ }
1860
+
1861
+ .hover\:text-red-700:hover {
1862
+ color: var(--color-red-700);
1863
+ }
1864
+
1723
1865
  .hover\:opacity-70:hover {
1724
1866
  opacity: .7;
1725
1867
  }
@@ -1762,6 +1904,10 @@
1762
1904
  .md\:hidden {
1763
1905
  display: none;
1764
1906
  }
1907
+
1908
+ .md\:grid-cols-2 {
1909
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1910
+ }
1765
1911
  }
1766
1912
 
1767
1913
  @media (min-width: 64rem) {
@@ -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}}.jky-menu-item__icon{align-items:center;display:inline-flex;flex-shrink:0;font-size:var(--jky-menu-icon-size);height:var(--jky-menu-icon-size);justify-content:center;margin-right:var(--jky-menu-icon-margin);width:var(--jky-menu-icon-size)}: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}}.jky-menu-item__icon{align-items:center;display:inline-flex;flex-shrink:0;font-size:var(--jky-menu-icon-size);height:var(--jky-menu-icon-size);justify-content:center;margin-right:var(--jky-menu-icon-margin);width:var(--jky-menu-icon-size)}: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{--jky-tabs-color:var(--el-text-color-regular);--jky-tabs-active-color:var(--el-color-primary);--jky-tabs-height:40px;--jky-tabs-font-size:14px;.el-tabs__item{color:var(--jky-tabs-color);font-size:var(--jky-tabs-font-size);height:var(--jky-tabs-height);line-height:var(--jky-tabs-height);&.is-active{color:var(--jky-tabs-active-color)}}.el-tabs__active-bar{background-color:var(--jky-tabs-active-color)}}.jky-tabs--route{.el-tabs__item{&.is-closable:hover{.el-tabs__item__close{opacity:1}}}}
@@ -0,0 +1,16 @@
1
+ import { TabContentProps } from './types';
2
+ declare const _default: import('vue').DefineComponent<TabContentProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
3
+ contextMenu: (data: {
4
+ tab: import('./types').TabItem;
5
+ event: MouseEvent;
6
+ }) => any;
7
+ }, string, import('vue').PublicProps, Readonly<TabContentProps> & Readonly<{
8
+ onContextMenu?: ((data: {
9
+ tab: import('./types').TabItem;
10
+ event: MouseEvent;
11
+ }) => any) | undefined;
12
+ }>, {
13
+ showIcon: boolean;
14
+ showContextMenu: boolean;
15
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
16
+ export default _default;
@@ -0,0 +1,65 @@
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, createElementBlock, normalizeClass, createCommentVNode, createElementVNode, toDisplayString } from "vue";
21
+ const _hoisted_1 = { class: "jky-tab-content__title" };
22
+ const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({}, {
23
+ name: "JkyTabContent"
24
+ }), {
25
+ __name: "TabContent",
26
+ props: {
27
+ tab: {},
28
+ showIcon: { type: Boolean, default: true },
29
+ showContextMenu: { type: Boolean, default: false }
30
+ },
31
+ emits: ["contextMenu"],
32
+ setup(__props, { emit: __emit }) {
33
+ const props = __props;
34
+ const emit = __emit;
35
+ const title = computed(() => {
36
+ var _a, _b;
37
+ return props.tab.label || ((_b = (_a = props.tab.route) == null ? void 0 : _a.meta) == null ? void 0 : _b.title) || "";
38
+ });
39
+ const icon = computed(() => {
40
+ var _a, _b;
41
+ return props.tab.icon || ((_b = (_a = props.tab.route) == null ? void 0 : _a.meta) == null ? void 0 : _b.icon);
42
+ });
43
+ function handleContextMenu(e) {
44
+ if (props.showContextMenu) {
45
+ e.preventDefault();
46
+ emit("contextMenu", { tab: props.tab, event: e });
47
+ }
48
+ }
49
+ return (_ctx, _cache) => {
50
+ return openBlock(), createElementBlock("div", {
51
+ class: "jky-tab-content flex items-center gap-1",
52
+ onContextmenu: handleContextMenu
53
+ }, [
54
+ props.showIcon && icon.value ? (openBlock(), createElementBlock("span", {
55
+ key: 0,
56
+ class: normalizeClass(["jky-tab-content__icon text-sm", [icon.value]])
57
+ }, null, 2)) : createCommentVNode("", true),
58
+ createElementVNode("span", _hoisted_1, toDisplayString(title.value), 1)
59
+ ], 32);
60
+ };
61
+ }
62
+ }));
63
+ export {
64
+ _sfc_main as default
65
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./TabContent.vue.js";
2
+ /* empty css */
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -0,0 +1,46 @@
1
+ import { TabItem, TabsProps } 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<TabsProps, {
12
+ closeTab: (tabName: string) => void;
13
+ closeOthers: (tabName: string) => void;
14
+ closeAll: () => void;
15
+ refreshTab: (tabName: string) => void;
16
+ getCachedTabs: () => string[];
17
+ getTabList: () => TabItem[];
18
+ getActiveTab: () => string;
19
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
20
+ "update:modelValue": (value: string) => any;
21
+ routeChange: (route: any) => any;
22
+ tabClick: (tab: any) => any;
23
+ tabRemove: (tabName: string) => any;
24
+ edit: (tabName: string | undefined, action: "add" | "remove") => any;
25
+ tabClose: (tabName: string) => any;
26
+ }, string, import('vue').PublicProps, Readonly<TabsProps> & Readonly<{
27
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
28
+ onRouteChange?: ((route: any) => any) | undefined;
29
+ onTabClick?: ((tab: any) => any) | undefined;
30
+ onTabRemove?: ((tabName: string) => any) | undefined;
31
+ onEdit?: ((tabName: string | undefined, action: "add" | "remove") => any) | undefined;
32
+ onTabClose?: ((tabName: string) => any) | undefined;
33
+ }>, {
34
+ mode: import('./types').TabsMode;
35
+ cachable: boolean;
36
+ maxCacheSize: number;
37
+ tabStyle: import('./types').TabStyleOptions;
38
+ tabs: TabItem[];
39
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
40
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
41
+ export default _default;
42
+ type __VLS_WithTemplateSlots<T, S> = T & {
43
+ new (): {
44
+ $slots: S;
45
+ };
46
+ };