weifuwu 0.67.2 → 0.68.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/client/index.js +4 -4
- package/dist/client/types.d.ts +27 -0
- package/dist/components/AlertGroup/AlertGroup.d.ts +23 -0
- package/dist/components/AutoComplete/AutoComplete.d.ts +37 -0
- package/dist/components/FloatButton/FloatButton.d.ts +34 -0
- package/dist/components/Grid/Grid.d.ts +34 -0
- package/dist/components/Layout/Layout.d.ts +58 -0
- package/dist/components/Link/Link.d.ts +22 -0
- package/dist/components/NavMenu/NavMenu.d.ts +27 -0
- package/dist/components/Popconfirm/Popconfirm.d.ts +34 -0
- package/dist/components/Scrollbar/Scrollbar.d.ts +21 -0
- package/dist/components/Space/Space.d.ts +16 -0
- package/dist/components/StatCard/StatCard.d.ts +4 -0
- package/dist/components/index.d.ts +20 -0
- package/dist/components/index.js +15 -15
- package/dist/components/style.css +655 -13
- package/dist/index.js +54 -4
- package/dist/layout/weifuwu-layout.css +15 -2
- package/docs/compat-three-library.md +290 -0
- package/docs/components-map.md +22 -0
- package/package.json +1 -1
|
@@ -94,8 +94,14 @@
|
|
|
94
94
|
--wf-z-tour: 2000;
|
|
95
95
|
--wf-tour-min-width: 240px;
|
|
96
96
|
--wf-kanban-col-min-width: 200px;
|
|
97
|
+
/* Layout 布局外壳(batch-8) */
|
|
98
|
+
--wf-layout-sider-width: 240px;
|
|
99
|
+
--wf-layout-sider-collapsed-width: 64px;
|
|
100
|
+
--wf-layout-header-height: 56px;
|
|
97
101
|
--wf-kanban-col-max-width: 300px;
|
|
98
102
|
--wf-treeselect-min-width: 200px;
|
|
103
|
+
--wf-navmenu-min-width: 160px;
|
|
104
|
+
--wf-select-menu-min-width: 200px;
|
|
99
105
|
--wf-treeselect-max-width: 320px;
|
|
100
106
|
--wf-treeselect-dropdown-max-height: 260px;
|
|
101
107
|
--wf-z-popover: 120; /* dropdown/select/datepicker 面板与 popover 同层 */
|
|
@@ -168,8 +174,9 @@
|
|
|
168
174
|
/* ── 边框宽度 ── */
|
|
169
175
|
--wf-border-width: 1px;
|
|
170
176
|
|
|
171
|
-
/* ──
|
|
172
|
-
|
|
177
|
+
/* ── 聚焦环(双层:淡环 bg + 1px primary 线——C5:系统暗色偏好下 primary-bg
|
|
178
|
+
变暗不可见,primary 是亮蓝——明暗主题聚焦均可见) ── */
|
|
179
|
+
--wf-focus-ring: 0 0 0 2px var(--wf-color-primary-bg), 0 0 0 1px var(--wf-color-primary);
|
|
173
180
|
|
|
174
181
|
/* ── 动效 ── */
|
|
175
182
|
--wf-transition-duration: 150ms;
|
|
@@ -537,6 +544,12 @@ code {
|
|
|
537
544
|
scroll-behavior: auto !important;
|
|
538
545
|
}
|
|
539
546
|
}
|
|
547
|
+
|
|
548
|
+
/* 拖拽中禁用文本选中(useDragDrop 拖拽生命周期标记——Kanban 教训) */
|
|
549
|
+
body.wf-dragging {
|
|
550
|
+
user-select: none;
|
|
551
|
+
-webkit-user-select: none;
|
|
552
|
+
}
|
|
540
553
|
}
|
|
541
554
|
|
|
542
555
|
@layer layout {
|
|
@@ -1633,9 +1646,82 @@ code {
|
|
|
1633
1646
|
opacity: 1;
|
|
1634
1647
|
}
|
|
1635
1648
|
|
|
1649
|
+
/* weifuwu/components — AlertGroup 通知合并组 */
|
|
1650
|
+
|
|
1651
|
+
.wf-alertgroup {
|
|
1652
|
+
display: flex;
|
|
1653
|
+
flex-direction: column;
|
|
1654
|
+
gap: 6px;
|
|
1655
|
+
font-family: var(--wf-font-sans);
|
|
1656
|
+
font-size: var(--wf-font-size-sm, 13px);
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1659
|
+
.wf-alertgroup-summary {
|
|
1660
|
+
display: flex;
|
|
1661
|
+
align-items: center;
|
|
1662
|
+
justify-content: center;
|
|
1663
|
+
padding: 10px 16px;
|
|
1664
|
+
border: var(--wf-border-width, 1px) solid var(--wf-color-border);
|
|
1665
|
+
border-radius: var(--wf-surface-radius, 8px);
|
|
1666
|
+
background: var(--wf-color-bg-secondary, #fff);
|
|
1667
|
+
color: var(--wf-color-primary-600, #1668dc);
|
|
1668
|
+
cursor: pointer;
|
|
1669
|
+
font-family: var(--wf-font-sans);
|
|
1670
|
+
transition: background var(--wf-dur-fast, 0.15s) var(--wf-ease-standard, ease);
|
|
1671
|
+
}
|
|
1672
|
+
|
|
1673
|
+
.wf-alertgroup-summary:hover {
|
|
1674
|
+
background: var(--wf-color-bg-hover, rgba(0, 0, 0, 0.04));
|
|
1675
|
+
}
|
|
1676
|
+
|
|
1677
|
+
.wf-alertgroup-item {
|
|
1678
|
+
display: flex;
|
|
1679
|
+
align-items: center;
|
|
1680
|
+
gap: 10px;
|
|
1681
|
+
padding: 10px 16px;
|
|
1682
|
+
border-radius: var(--wf-surface-radius, 8px);
|
|
1683
|
+
background: var(--wf-color-bg-secondary, #fff);
|
|
1684
|
+
border-left: 3px solid var(--wf-color-info);
|
|
1685
|
+
}
|
|
1686
|
+
|
|
1687
|
+
.wf-alertgroup-item--success { border-left-color: var(--wf-color-success); }
|
|
1688
|
+
.wf-alertgroup-item--warning { border-left-color: var(--wf-color-warning); }
|
|
1689
|
+
.wf-alertgroup-item--error { border-left-color: var(--wf-color-danger); }
|
|
1690
|
+
|
|
1691
|
+
.wf-alertgroup-message {
|
|
1692
|
+
flex: 1;
|
|
1693
|
+
color: var(--wf-color-text-primary);
|
|
1694
|
+
}
|
|
1695
|
+
|
|
1696
|
+
.wf-alertgroup-time {
|
|
1697
|
+
color: var(--wf-color-text-muted, #999);
|
|
1698
|
+
font-size: 12px;
|
|
1699
|
+
}
|
|
1700
|
+
|
|
1701
|
+
.wf-alertgroup-close {
|
|
1702
|
+
display: flex;
|
|
1703
|
+
align-items: center;
|
|
1704
|
+
justify-content: center;
|
|
1705
|
+
width: 24px;
|
|
1706
|
+
height: 24px;
|
|
1707
|
+
min-width: 24px;
|
|
1708
|
+
min-height: 24px;
|
|
1709
|
+
padding: 0;
|
|
1710
|
+
border: none;
|
|
1711
|
+
background: transparent;
|
|
1712
|
+
color: var(--wf-color-text-muted, #999);
|
|
1713
|
+
cursor: pointer;
|
|
1714
|
+
border-radius: 4px;
|
|
1715
|
+
}
|
|
1716
|
+
|
|
1717
|
+
.wf-alertgroup-close:hover {
|
|
1718
|
+
background: var(--wf-color-bg-hover, rgba(0, 0, 0, 0.04));
|
|
1719
|
+
color: var(--wf-color-text-primary);
|
|
1720
|
+
}
|
|
1721
|
+
|
|
1636
1722
|
/* weifuwu/components — Anchor(锚点导航) */
|
|
1637
1723
|
|
|
1638
|
-
.wf-anchor {
|
|
1724
|
+
.wf-anchor-nav-nav {
|
|
1639
1725
|
display: flex;
|
|
1640
1726
|
flex-direction: column;
|
|
1641
1727
|
gap: 2px;
|
|
@@ -1643,7 +1729,7 @@ code {
|
|
|
1643
1729
|
font-size: var(--wf-font-size-sm);
|
|
1644
1730
|
}
|
|
1645
1731
|
|
|
1646
|
-
.wf-anchor-link {
|
|
1732
|
+
.wf-anchor-nav-nav-link {
|
|
1647
1733
|
display: block;
|
|
1648
1734
|
padding: var(--wf-space-xs) var(--wf-space-sm);
|
|
1649
1735
|
border-left: 2px solid transparent;
|
|
@@ -1656,19 +1742,19 @@ code {
|
|
|
1656
1742
|
border-color var(--wf-dur-fast) var(--wf-ease-out);
|
|
1657
1743
|
}
|
|
1658
1744
|
|
|
1659
|
-
.wf-anchor-link:hover {
|
|
1745
|
+
.wf-anchor-nav-nav-link:hover {
|
|
1660
1746
|
background: var(--wf-color-bg-secondary);
|
|
1661
1747
|
color: var(--wf-color-text);
|
|
1662
1748
|
}
|
|
1663
1749
|
|
|
1664
|
-
.wf-anchor-link--active {
|
|
1750
|
+
.wf-anchor-nav-nav-link--active {
|
|
1665
1751
|
color: var(--wf-color-primary-text);
|
|
1666
1752
|
border-left-color: var(--wf-color-primary);
|
|
1667
1753
|
font-weight: var(--wf-font-weight-semibold);
|
|
1668
1754
|
background: var(--wf-color-primary-bg);
|
|
1669
1755
|
}
|
|
1670
1756
|
|
|
1671
|
-
.wf-anchor-link:focus-visible {
|
|
1757
|
+
.wf-anchor-nav-nav-link:focus-visible {
|
|
1672
1758
|
outline: none;
|
|
1673
1759
|
box-shadow: var(--wf-focus-ring);
|
|
1674
1760
|
}
|
|
@@ -1766,6 +1852,50 @@ code {
|
|
|
1766
1852
|
height: 100%;
|
|
1767
1853
|
}
|
|
1768
1854
|
|
|
1855
|
+
/* weifuwu/components — AutoComplete 输入联想 */
|
|
1856
|
+
|
|
1857
|
+
.wf-autocomplete-wrap {
|
|
1858
|
+
position: relative;
|
|
1859
|
+
display: inline-block;
|
|
1860
|
+
width: 100%;
|
|
1861
|
+
}
|
|
1862
|
+
|
|
1863
|
+
.wf-autocomplete-input {
|
|
1864
|
+
width: 100%;
|
|
1865
|
+
}
|
|
1866
|
+
|
|
1867
|
+
.wf-autocomplete-dropdown {
|
|
1868
|
+
position: fixed;
|
|
1869
|
+
z-index: var(--wf-z-popover, 120);
|
|
1870
|
+
max-height: 280px;
|
|
1871
|
+
overflow-y: auto;
|
|
1872
|
+
border-radius: var(--wf-surface-radius, 8px);
|
|
1873
|
+
background: var(--wf-surface-bg, #fff);
|
|
1874
|
+
box-shadow: var(--wf-surface-shadow, 0 4px 16px rgba(0, 0, 0, 0.12));
|
|
1875
|
+
border: var(--wf-border-width, 1px) solid var(--wf-color-border-light);
|
|
1876
|
+
font-family: var(--wf-font-sans);
|
|
1877
|
+
font-size: var(--wf-font-size-sm, 13px);
|
|
1878
|
+
}
|
|
1879
|
+
|
|
1880
|
+
.wf-autocomplete-option {
|
|
1881
|
+
padding: 8px 12px;
|
|
1882
|
+
cursor: pointer;
|
|
1883
|
+
color: var(--wf-color-text-primary);
|
|
1884
|
+
white-space: nowrap;
|
|
1885
|
+
overflow: hidden;
|
|
1886
|
+
text-overflow: ellipsis;
|
|
1887
|
+
transition: background var(--wf-dur-fast, 0.15s) var(--wf-ease-standard, ease);
|
|
1888
|
+
}
|
|
1889
|
+
|
|
1890
|
+
.wf-autocomplete-option:hover,
|
|
1891
|
+
.wf-autocomplete-option--active {
|
|
1892
|
+
background: var(--wf-color-bg-hover, rgba(0, 0, 0, 0.04));
|
|
1893
|
+
}
|
|
1894
|
+
|
|
1895
|
+
.wf-autocomplete-option--active {
|
|
1896
|
+
color: var(--wf-color-primary-600, #1668dc);
|
|
1897
|
+
}
|
|
1898
|
+
|
|
1769
1899
|
/* weifuwu/components — Avatar */
|
|
1770
1900
|
|
|
1771
1901
|
.wf-avatar {
|
|
@@ -4324,6 +4454,126 @@ code {
|
|
|
4324
4454
|
transition: width var(--wf-dur-fast) var(--wf-ease-out);
|
|
4325
4455
|
}
|
|
4326
4456
|
|
|
4457
|
+
/* weifuwu/components — FloatButton 悬浮操作按钮 */
|
|
4458
|
+
|
|
4459
|
+
.wf-float-btn {
|
|
4460
|
+
display: flex;
|
|
4461
|
+
align-items: center;
|
|
4462
|
+
justify-content: center;
|
|
4463
|
+
gap: 6px;
|
|
4464
|
+
width: 44px;
|
|
4465
|
+
height: 44px;
|
|
4466
|
+
min-width: 44px;
|
|
4467
|
+
min-height: 44px;
|
|
4468
|
+
padding: 0;
|
|
4469
|
+
border: none;
|
|
4470
|
+
border-radius: 50%;
|
|
4471
|
+
background: var(--wf-color-primary);
|
|
4472
|
+
color: var(--wf-color-on-brand, #fff);
|
|
4473
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
|
|
4474
|
+
cursor: pointer;
|
|
4475
|
+
z-index: var(--wf-z-sticky, 40);
|
|
4476
|
+
font-family: var(--wf-font-sans);
|
|
4477
|
+
font-size: 16px;
|
|
4478
|
+
transition: transform var(--wf-dur-fast, 0.15s) var(--wf-ease-standard, ease),
|
|
4479
|
+
background var(--wf-dur-fast, 0.15s) var(--wf-ease-standard, ease);
|
|
4480
|
+
}
|
|
4481
|
+
|
|
4482
|
+
.wf-float-btn:hover {
|
|
4483
|
+
transform: scale(1.05);
|
|
4484
|
+
background: var(--wf-color-primary-600, #1668dc);
|
|
4485
|
+
}
|
|
4486
|
+
|
|
4487
|
+
.wf-float-btn--disabled {
|
|
4488
|
+
background: var(--wf-color-text-disabled, #bfbfbf);
|
|
4489
|
+
cursor: not-allowed;
|
|
4490
|
+
opacity: 0.7;
|
|
4491
|
+
}
|
|
4492
|
+
|
|
4493
|
+
.wf-float-btn--top-left { top: 24px; left: 24px; }
|
|
4494
|
+
.wf-float-btn--top-right { top: 24px; right: 24px; }
|
|
4495
|
+
.wf-float-btn--bottom-left { bottom: 24px; left: 24px; }
|
|
4496
|
+
.wf-float-btn--bottom-right { bottom: 24px; right: 24px; }
|
|
4497
|
+
|
|
4498
|
+
.wf-float-btn-badge {
|
|
4499
|
+
position: absolute;
|
|
4500
|
+
top: -4px;
|
|
4501
|
+
right: -4px;
|
|
4502
|
+
min-width: 18px;
|
|
4503
|
+
height: 18px;
|
|
4504
|
+
padding: 0 5px;
|
|
4505
|
+
border-radius: 50%;
|
|
4506
|
+
background: var(--wf-color-danger);
|
|
4507
|
+
color: var(--wf-color-on-brand, #fff);
|
|
4508
|
+
font-size: 11px;
|
|
4509
|
+
line-height: 18px;
|
|
4510
|
+
text-align: center;
|
|
4511
|
+
}
|
|
4512
|
+
|
|
4513
|
+
/* ── 组模式 ── */
|
|
4514
|
+
.wf-float-group {
|
|
4515
|
+
position: fixed;
|
|
4516
|
+
z-index: var(--wf-z-sticky, 40);
|
|
4517
|
+
display: flex;
|
|
4518
|
+
flex-direction: column;
|
|
4519
|
+
align-items: center;
|
|
4520
|
+
gap: 12px;
|
|
4521
|
+
}
|
|
4522
|
+
|
|
4523
|
+
.wf-float-group--bottom-right { bottom: 24px; right: 24px; }
|
|
4524
|
+
.wf-float-group--bottom-left { bottom: 24px; left: 24px; }
|
|
4525
|
+
.wf-float-group--top-right { top: 24px; right: 24px; }
|
|
4526
|
+
.wf-float-group--top-left { top: 24px; left: 24px; }
|
|
4527
|
+
|
|
4528
|
+
.wf-float-group-items {
|
|
4529
|
+
display: flex;
|
|
4530
|
+
flex-direction: column;
|
|
4531
|
+
gap: 10px;
|
|
4532
|
+
}
|
|
4533
|
+
|
|
4534
|
+
.wf-float-group-item {
|
|
4535
|
+
animation: wf-float-item-in var(--wf-dur-md, 0.2s) var(--wf-ease-standard, ease);
|
|
4536
|
+
}
|
|
4537
|
+
|
|
4538
|
+
@keyframes wf-float-item-in {
|
|
4539
|
+
from { opacity: 0; transform: translateY(8px); }
|
|
4540
|
+
to { opacity: 1; transform: translateY(0); }
|
|
4541
|
+
}
|
|
4542
|
+
|
|
4543
|
+
.wf-float-group-main {
|
|
4544
|
+
display: flex;
|
|
4545
|
+
align-items: center;
|
|
4546
|
+
justify-content: center;
|
|
4547
|
+
width: 44px;
|
|
4548
|
+
height: 44px;
|
|
4549
|
+
min-width: 44px;
|
|
4550
|
+
min-height: 44px;
|
|
4551
|
+
padding: 0;
|
|
4552
|
+
border: none;
|
|
4553
|
+
border-radius: 50%;
|
|
4554
|
+
background: var(--wf-color-primary);
|
|
4555
|
+
color: var(--wf-color-on-brand, #fff);
|
|
4556
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
|
|
4557
|
+
cursor: pointer;
|
|
4558
|
+
font-size: var(--wf-font-size-xl, 20px);
|
|
4559
|
+
font-family: var(--wf-font-sans);
|
|
4560
|
+
}
|
|
4561
|
+
|
|
4562
|
+
.wf-float-group-icon {
|
|
4563
|
+
display: inline-block;
|
|
4564
|
+
transition: transform var(--wf-dur-md, 0.2s) var(--wf-ease-standard, ease);
|
|
4565
|
+
}
|
|
4566
|
+
|
|
4567
|
+
.wf-float-group-icon.is-open {
|
|
4568
|
+
transform: rotate(45deg);
|
|
4569
|
+
}
|
|
4570
|
+
|
|
4571
|
+
/* 组内子项:不 fixed(由 group 容器排列) */
|
|
4572
|
+
.wf-float-btn--static {
|
|
4573
|
+
position: static;
|
|
4574
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
4575
|
+
}
|
|
4576
|
+
|
|
4327
4577
|
/* weifuwu/components — Form */
|
|
4328
4578
|
|
|
4329
4579
|
.wf-form {
|
|
@@ -4332,6 +4582,29 @@ code {
|
|
|
4332
4582
|
gap: var(--wf-gap-md);
|
|
4333
4583
|
}
|
|
4334
4584
|
|
|
4585
|
+
/* weifuwu/components — Grid 栅格 + Flex 容器 */
|
|
4586
|
+
|
|
4587
|
+
.wf-grid-comp {
|
|
4588
|
+
display: flex;
|
|
4589
|
+
flex-wrap: wrap;
|
|
4590
|
+
width: 100%;
|
|
4591
|
+
box-sizing: border-box;
|
|
4592
|
+
}
|
|
4593
|
+
|
|
4594
|
+
.wf-grid-comp--column {
|
|
4595
|
+
flex-direction: column;
|
|
4596
|
+
}
|
|
4597
|
+
|
|
4598
|
+
.wf-grid-comp--flex {
|
|
4599
|
+
display: flex;
|
|
4600
|
+
flex-wrap: wrap;
|
|
4601
|
+
}
|
|
4602
|
+
|
|
4603
|
+
.wf-col {
|
|
4604
|
+
box-sizing: border-box;
|
|
4605
|
+
min-width: 0;
|
|
4606
|
+
}
|
|
4607
|
+
|
|
4335
4608
|
/* weifuwu/components — Highlight */
|
|
4336
4609
|
|
|
4337
4610
|
.wf-highlight-mark {
|
|
@@ -4951,6 +5224,162 @@ code {
|
|
|
4951
5224
|
color: var(--wf-color-error-text);
|
|
4952
5225
|
}
|
|
4953
5226
|
|
|
5227
|
+
/* weifuwu/components — Layout 布局外壳
|
|
5228
|
+
* 三库等价:antd Layout / EP Container / shadcn Sidebar
|
|
5229
|
+
*/
|
|
5230
|
+
|
|
5231
|
+
.wf-layout {
|
|
5232
|
+
display: flex;
|
|
5233
|
+
width: 100%;
|
|
5234
|
+
min-height: 100%;
|
|
5235
|
+
background: var(--wf-color-bg-base, #f5f5f5);
|
|
5236
|
+
color: var(--wf-color-text-primary);
|
|
5237
|
+
font-family: var(--wf-font-sans);
|
|
5238
|
+
}
|
|
5239
|
+
|
|
5240
|
+
.wf-layout--column {
|
|
5241
|
+
flex-direction: column;
|
|
5242
|
+
}
|
|
5243
|
+
|
|
5244
|
+
.wf-layout--row {
|
|
5245
|
+
flex-direction: row;
|
|
5246
|
+
}
|
|
5247
|
+
|
|
5248
|
+
/* ── 侧边栏 ── */
|
|
5249
|
+
.wf-layout-sider {
|
|
5250
|
+
display: flex;
|
|
5251
|
+
flex-direction: column;
|
|
5252
|
+
flex-shrink: 0;
|
|
5253
|
+
height: 100vh;
|
|
5254
|
+
overflow: hidden;
|
|
5255
|
+
background: var(--wf-color-bg-secondary, #fff);
|
|
5256
|
+
border-right: var(--wf-border-width, 1px) solid var(--wf-color-border);
|
|
5257
|
+
transition: width var(--wf-dur-fast, 0.15s) var(--wf-ease-standard, ease);
|
|
5258
|
+
}
|
|
5259
|
+
|
|
5260
|
+
.wf-layout-sider--collapsed {
|
|
5261
|
+
border-right: var(--wf-border-width, 1px) solid var(--wf-color-border-light);
|
|
5262
|
+
}
|
|
5263
|
+
|
|
5264
|
+
.wf-layout-sider-body {
|
|
5265
|
+
flex: 1;
|
|
5266
|
+
overflow-y: auto;
|
|
5267
|
+
min-height: 0;
|
|
5268
|
+
}
|
|
5269
|
+
|
|
5270
|
+
/* 折叠触发器(底部) */
|
|
5271
|
+
.wf-layout-sider-trigger {
|
|
5272
|
+
display: flex;
|
|
5273
|
+
align-items: center;
|
|
5274
|
+
justify-content: center;
|
|
5275
|
+
width: 100%;
|
|
5276
|
+
height: 40px;
|
|
5277
|
+
flex-shrink: 0;
|
|
5278
|
+
border: none;
|
|
5279
|
+
border-top: var(--wf-border-width, 1px) solid var(--wf-color-border-light);
|
|
5280
|
+
background: transparent;
|
|
5281
|
+
color: var(--wf-color-text-secondary);
|
|
5282
|
+
cursor: pointer;
|
|
5283
|
+
font-size: 12px;
|
|
5284
|
+
transition: background var(--wf-dur-fast, 0.15s) var(--wf-ease-standard, ease);
|
|
5285
|
+
}
|
|
5286
|
+
|
|
5287
|
+
.wf-layout-sider-trigger:hover {
|
|
5288
|
+
background: var(--wf-color-bg-hover, rgba(0, 0, 0, 0.04));
|
|
5289
|
+
}
|
|
5290
|
+
|
|
5291
|
+
.wf-layout-sider-trigger-icon {
|
|
5292
|
+
display: inline-block;
|
|
5293
|
+
transition: transform var(--wf-dur-fast, 0.15s) var(--wf-ease-standard, ease);
|
|
5294
|
+
}
|
|
5295
|
+
|
|
5296
|
+
.wf-layout-sider-trigger-icon.is-collapsed {
|
|
5297
|
+
transform: rotate(180deg);
|
|
5298
|
+
}
|
|
5299
|
+
|
|
5300
|
+
/* ── 顶部栏 ── */
|
|
5301
|
+
.wf-layout-header {
|
|
5302
|
+
display: flex;
|
|
5303
|
+
align-items: center;
|
|
5304
|
+
gap: var(--wf-gap-md, 16px);
|
|
5305
|
+
height: var(--wf-layout-header-height, 56px);
|
|
5306
|
+
padding: 0 var(--wf-space-md, 16px);
|
|
5307
|
+
flex-shrink: 0;
|
|
5308
|
+
background: var(--wf-color-bg-secondary, #fff);
|
|
5309
|
+
border-bottom: var(--wf-border-width, 1px) solid var(--wf-color-border-light);
|
|
5310
|
+
}
|
|
5311
|
+
|
|
5312
|
+
/* ── 主内容区 ── */
|
|
5313
|
+
.wf-layout-content {
|
|
5314
|
+
flex: 1;
|
|
5315
|
+
min-height: 0;
|
|
5316
|
+
overflow: auto;
|
|
5317
|
+
padding: var(--wf-space-md, 16px);
|
|
5318
|
+
}
|
|
5319
|
+
|
|
5320
|
+
/* ── 底部栏 ── */
|
|
5321
|
+
.wf-layout-footer {
|
|
5322
|
+
padding: var(--wf-space-md, 16px);
|
|
5323
|
+
flex-shrink: 0;
|
|
5324
|
+
text-align: center;
|
|
5325
|
+
color: var(--wf-color-text-secondary);
|
|
5326
|
+
font-size: var(--wf-font-size-sm, 13px);
|
|
5327
|
+
background: var(--wf-color-bg-secondary, #fff);
|
|
5328
|
+
border-top: var(--wf-border-width, 1px) solid var(--wf-color-border-light);
|
|
5329
|
+
}
|
|
5330
|
+
|
|
5331
|
+
/* weifuwu/components — Link 文字链接 */
|
|
5332
|
+
|
|
5333
|
+
.wf-link {
|
|
5334
|
+
display: inline-flex;
|
|
5335
|
+
align-items: center;
|
|
5336
|
+
gap: 4px;
|
|
5337
|
+
text-decoration: underline;
|
|
5338
|
+
text-underline-offset: 3px;
|
|
5339
|
+
color: var(--wf-color-primary-600, #1668dc);
|
|
5340
|
+
cursor: pointer;
|
|
5341
|
+
font-family: var(--wf-font-sans);
|
|
5342
|
+
font-size: var(--wf-font-size-sm, 13px);
|
|
5343
|
+
transition: color var(--wf-dur-fast, 0.15s) var(--wf-ease-standard, ease);
|
|
5344
|
+
}
|
|
5345
|
+
|
|
5346
|
+
.wf-link:hover {
|
|
5347
|
+
color: var(--wf-color-primary-600, #1668dc);
|
|
5348
|
+
}
|
|
5349
|
+
|
|
5350
|
+
.wf-link--default {
|
|
5351
|
+
color: var(--wf-color-text-secondary);
|
|
5352
|
+
}
|
|
5353
|
+
.wf-link--default:hover {
|
|
5354
|
+
color: var(--wf-color-text-primary);
|
|
5355
|
+
}
|
|
5356
|
+
|
|
5357
|
+
.wf-link--danger {
|
|
5358
|
+
color: var(--wf-color-danger-text, #cf1322);
|
|
5359
|
+
}
|
|
5360
|
+
.wf-link--danger:hover {
|
|
5361
|
+
color: var(--wf-color-danger-600, #a8071a);
|
|
5362
|
+
}
|
|
5363
|
+
|
|
5364
|
+
.wf-link--muted {
|
|
5365
|
+
color: var(--wf-color-text-muted, #999);
|
|
5366
|
+
text-decoration: none;
|
|
5367
|
+
}
|
|
5368
|
+
.wf-link--muted:hover {
|
|
5369
|
+
color: var(--wf-color-text-secondary);
|
|
5370
|
+
}
|
|
5371
|
+
|
|
5372
|
+
.wf-link--no-underline {
|
|
5373
|
+
text-decoration: none;
|
|
5374
|
+
}
|
|
5375
|
+
|
|
5376
|
+
.wf-link--disabled {
|
|
5377
|
+
color: var(--wf-color-text-disabled, #bfbfbf);
|
|
5378
|
+
cursor: not-allowed;
|
|
5379
|
+
text-decoration: none;
|
|
5380
|
+
pointer-events: none;
|
|
5381
|
+
}
|
|
5382
|
+
|
|
4954
5383
|
/* weifuwu/components — List */
|
|
4955
5384
|
|
|
4956
5385
|
.wf-list {
|
|
@@ -5647,6 +6076,112 @@ code {
|
|
|
5647
6076
|
}
|
|
5648
6077
|
}
|
|
5649
6078
|
|
|
6079
|
+
/* weifuwu/components — NavMenu 顶部导航(shadcn NavigationMenu 对齐) */
|
|
6080
|
+
|
|
6081
|
+
.wf-navmenu {
|
|
6082
|
+
display: flex;
|
|
6083
|
+
align-items: center;
|
|
6084
|
+
gap: 2px;
|
|
6085
|
+
padding: 0 var(--wf-space-md, 16px);
|
|
6086
|
+
background: var(--wf-color-bg-secondary, #fff);
|
|
6087
|
+
border-bottom: var(--wf-border-width, 1px) solid var(--wf-color-border-light);
|
|
6088
|
+
font-family: var(--wf-font-sans);
|
|
6089
|
+
font-size: var(--wf-font-size-sm, 13px);
|
|
6090
|
+
min-height: 48px;
|
|
6091
|
+
}
|
|
6092
|
+
|
|
6093
|
+
.wf-navmenu-item {
|
|
6094
|
+
position: relative;
|
|
6095
|
+
display: inline-flex;
|
|
6096
|
+
align-items: center;
|
|
6097
|
+
gap: 6px;
|
|
6098
|
+
padding: 8px 14px;
|
|
6099
|
+
border-radius: var(--wf-surface-radius, 8px);
|
|
6100
|
+
color: var(--wf-color-text-secondary);
|
|
6101
|
+
cursor: pointer;
|
|
6102
|
+
transition: background var(--wf-dur-fast, 0.15s) var(--wf-ease-standard, ease),
|
|
6103
|
+
color var(--wf-dur-fast, 0.15s) var(--wf-ease-standard, ease);
|
|
6104
|
+
}
|
|
6105
|
+
|
|
6106
|
+
.wf-navmenu-item:hover {
|
|
6107
|
+
background: var(--wf-color-bg-hover, rgba(0, 0, 0, 0.04));
|
|
6108
|
+
color: var(--wf-color-text-primary);
|
|
6109
|
+
}
|
|
6110
|
+
|
|
6111
|
+
.wf-navmenu-item--active {
|
|
6112
|
+
color: var(--wf-color-primary-600, #1668dc);
|
|
6113
|
+
font-weight: 600;
|
|
6114
|
+
}
|
|
6115
|
+
|
|
6116
|
+
.wf-navmenu-item--disabled {
|
|
6117
|
+
color: var(--wf-color-text-disabled, #bfbfbf);
|
|
6118
|
+
cursor: not-allowed;
|
|
6119
|
+
}
|
|
6120
|
+
|
|
6121
|
+
.wf-navmenu-arrow {
|
|
6122
|
+
font-size: 10px;
|
|
6123
|
+
opacity: 0.6;
|
|
6124
|
+
}
|
|
6125
|
+
|
|
6126
|
+
/* ── 子菜单弹出 ── */
|
|
6127
|
+
.wf-navmenu-sub {
|
|
6128
|
+
position: absolute;
|
|
6129
|
+
top: calc(100% + 6px);
|
|
6130
|
+
left: 0;
|
|
6131
|
+
min-width: var(--wf-navmenu-min-width, 160px);
|
|
6132
|
+
padding: 6px;
|
|
6133
|
+
border-radius: var(--wf-surface-radius, 8px);
|
|
6134
|
+
background: var(--wf-surface-bg, #fff);
|
|
6135
|
+
box-shadow: var(--wf-surface-shadow, 0 4px 16px rgba(0, 0, 0, 0.12));
|
|
6136
|
+
border: var(--wf-border-width, 1px) solid var(--wf-color-border-light);
|
|
6137
|
+
z-index: var(--wf-z-dropdown, 120);
|
|
6138
|
+
animation: wf-navmenu-in var(--wf-dur-fast, 0.15s) var(--wf-ease-standard, ease);
|
|
6139
|
+
}
|
|
6140
|
+
|
|
6141
|
+
@keyframes wf-navmenu-in {
|
|
6142
|
+
from { opacity: 0; transform: translateY(-4px); }
|
|
6143
|
+
to { opacity: 1; transform: translateY(0); }
|
|
6144
|
+
}
|
|
6145
|
+
|
|
6146
|
+
.wf-navmenu-sub-item {
|
|
6147
|
+
position: relative;
|
|
6148
|
+
display: flex;
|
|
6149
|
+
align-items: center;
|
|
6150
|
+
justify-content: space-between;
|
|
6151
|
+
gap: 12px;
|
|
6152
|
+
padding: 8px 12px;
|
|
6153
|
+
border-radius: var(--wf-radius, 6px);
|
|
6154
|
+
color: var(--wf-color-text-primary);
|
|
6155
|
+
cursor: pointer;
|
|
6156
|
+
white-space: nowrap;
|
|
6157
|
+
transition: background var(--wf-dur-fast, 0.15s) var(--wf-ease-standard, ease);
|
|
6158
|
+
}
|
|
6159
|
+
|
|
6160
|
+
.wf-navmenu-sub-item:hover {
|
|
6161
|
+
background: var(--wf-color-bg-hover, rgba(0, 0, 0, 0.04));
|
|
6162
|
+
}
|
|
6163
|
+
|
|
6164
|
+
.wf-navmenu-sub-item--disabled {
|
|
6165
|
+
color: var(--wf-color-text-disabled, #bfbfbf);
|
|
6166
|
+
cursor: not-allowed;
|
|
6167
|
+
}
|
|
6168
|
+
|
|
6169
|
+
.wf-navmenu-sub-arrow {
|
|
6170
|
+
color: var(--wf-color-text-muted, #999);
|
|
6171
|
+
}
|
|
6172
|
+
|
|
6173
|
+
.wf-navmenu-sub-nested {
|
|
6174
|
+
position: absolute;
|
|
6175
|
+
top: -6px;
|
|
6176
|
+
left: calc(100% + 4px);
|
|
6177
|
+
min-width: var(--wf-navmenu-min-width, 160px);
|
|
6178
|
+
padding: 6px;
|
|
6179
|
+
border-radius: var(--wf-surface-radius, 8px);
|
|
6180
|
+
background: var(--wf-surface-bg, #fff);
|
|
6181
|
+
box-shadow: var(--wf-surface-shadow, 0 4px 16px rgba(0, 0, 0, 0.12));
|
|
6182
|
+
border: var(--wf-border-width, 1px) solid var(--wf-color-border-light);
|
|
6183
|
+
}
|
|
6184
|
+
|
|
5650
6185
|
/* weifuwu/components — Notification */
|
|
5651
6186
|
|
|
5652
6187
|
.wf-notification-container {
|
|
@@ -5994,6 +6529,68 @@ code {
|
|
|
5994
6529
|
color: var(--wf-color-warning-text);
|
|
5995
6530
|
}
|
|
5996
6531
|
|
|
6532
|
+
/* weifuwu/components — Popconfirm 气泡确认
|
|
6533
|
+
* 复用 usePopup 基座:定位/portal/Escape 继承 Popover 同款
|
|
6534
|
+
*/
|
|
6535
|
+
|
|
6536
|
+
.wf-popconfirm-wrap {
|
|
6537
|
+
display: inline-block;
|
|
6538
|
+
}
|
|
6539
|
+
|
|
6540
|
+
.wf-popconfirm {
|
|
6541
|
+
position: fixed;
|
|
6542
|
+
z-index: var(--wf-z-popover, 120);
|
|
6543
|
+
min-width: var(--wf-popconfirm-min-width, 180px);
|
|
6544
|
+
padding: var(--wf-space-sm, 12px);
|
|
6545
|
+
border-radius: var(--wf-surface-radius, 8px);
|
|
6546
|
+
background: var(--wf-surface-bg, #fff);
|
|
6547
|
+
box-shadow: var(--wf-surface-shadow, 0 4px 16px rgba(0, 0, 0, 0.12));
|
|
6548
|
+
border: var(--wf-border-width, 1px) solid var(--wf-color-border-light);
|
|
6549
|
+
font-family: var(--wf-font-sans);
|
|
6550
|
+
font-size: var(--wf-font-size-sm, 13px);
|
|
6551
|
+
}
|
|
6552
|
+
|
|
6553
|
+
.wf-popconfirm--enter {
|
|
6554
|
+
animation: wf-popconfirm-in var(--wf-dur-md, 0.2s) var(--wf-ease-standard, ease);
|
|
6555
|
+
}
|
|
6556
|
+
|
|
6557
|
+
.wf-popconfirm--exit {
|
|
6558
|
+
animation: wf-popconfirm-out var(--wf-dur-md, 0.2s) var(--wf-ease-standard, ease) forwards;
|
|
6559
|
+
}
|
|
6560
|
+
|
|
6561
|
+
@keyframes wf-popconfirm-in {
|
|
6562
|
+
from { opacity: 0; transform: translateY(-4px) scale(0.98); }
|
|
6563
|
+
to { opacity: 1; transform: translateY(0) scale(1); }
|
|
6564
|
+
}
|
|
6565
|
+
|
|
6566
|
+
@keyframes wf-popconfirm-out {
|
|
6567
|
+
from { opacity: 1; }
|
|
6568
|
+
to { opacity: 0; transform: scale(0.98); }
|
|
6569
|
+
}
|
|
6570
|
+
|
|
6571
|
+
.wf-popconfirm-title {
|
|
6572
|
+
display: flex;
|
|
6573
|
+
align-items: flex-start;
|
|
6574
|
+
gap: var(--wf-gap-xs, 8px);
|
|
6575
|
+
margin-bottom: var(--wf-space-xs, 8px);
|
|
6576
|
+
color: var(--wf-color-text-primary);
|
|
6577
|
+
line-height: 1.5;
|
|
6578
|
+
}
|
|
6579
|
+
|
|
6580
|
+
.wf-popconfirm-icon {
|
|
6581
|
+
display: inline-flex;
|
|
6582
|
+
flex-shrink: 0;
|
|
6583
|
+
margin-top: 2px;
|
|
6584
|
+
color: var(--wf-color-warning-text, #ad6800);
|
|
6585
|
+
}
|
|
6586
|
+
|
|
6587
|
+
.wf-popconfirm-actions {
|
|
6588
|
+
display: flex;
|
|
6589
|
+
justify-content: flex-end;
|
|
6590
|
+
gap: var(--wf-gap-xs, 8px);
|
|
6591
|
+
margin-top: var(--wf-space-xs, 8px);
|
|
6592
|
+
}
|
|
6593
|
+
|
|
5997
6594
|
/* weifuwu/components — Popover */
|
|
5998
6595
|
|
|
5999
6596
|
.wf-popover-wrap {
|
|
@@ -6323,6 +6920,32 @@ code {
|
|
|
6323
6920
|
justify-content: center;
|
|
6324
6921
|
}
|
|
6325
6922
|
|
|
6923
|
+
/* weifuwu/components — Scrollbar 自定义滚动容器 */
|
|
6924
|
+
|
|
6925
|
+
.wf-scrollbar {
|
|
6926
|
+
overflow: auto;
|
|
6927
|
+
scrollbar-width: thin;
|
|
6928
|
+
scrollbar-color: var(--wf-color-border) transparent;
|
|
6929
|
+
}
|
|
6930
|
+
|
|
6931
|
+
.wf-scrollbar::-webkit-scrollbar {
|
|
6932
|
+
width: 8px;
|
|
6933
|
+
height: 8px;
|
|
6934
|
+
}
|
|
6935
|
+
|
|
6936
|
+
.wf-scrollbar::-webkit-scrollbar-track {
|
|
6937
|
+
background: transparent;
|
|
6938
|
+
}
|
|
6939
|
+
|
|
6940
|
+
.wf-scrollbar::-webkit-scrollbar-thumb {
|
|
6941
|
+
background: var(--wf-color-border);
|
|
6942
|
+
border-radius: 4px;
|
|
6943
|
+
}
|
|
6944
|
+
|
|
6945
|
+
.wf-scrollbar::-webkit-scrollbar-thumb:hover {
|
|
6946
|
+
background: var(--wf-color-text-muted, #999);
|
|
6947
|
+
}
|
|
6948
|
+
|
|
6326
6949
|
/* weifuwu/components — SearchInput */
|
|
6327
6950
|
|
|
6328
6951
|
.wf-search {
|
|
@@ -6526,7 +7149,13 @@ code {
|
|
|
6526
7149
|
}
|
|
6527
7150
|
.wf-select-search-trigger:focus-within {
|
|
6528
7151
|
border-color: var(--wf-color-primary);
|
|
6529
|
-
|
|
7152
|
+
}
|
|
7153
|
+
|
|
7154
|
+
.wf-select-search-input:focus {
|
|
7155
|
+
/* 蓝框在 input 自身(不依赖 trigger box-shadow——trigger 底边蓝框会被
|
|
7156
|
+
menu 面板紧贴遮挡,用户反馈'被挡住了')。明暗主题均可见(不用
|
|
7157
|
+
focus-ring:系统暗色偏好下 primary-bg 变暗不可见)。 */
|
|
7158
|
+
box-shadow: 0 0 0 1px var(--wf-color-primary);
|
|
6530
7159
|
}
|
|
6531
7160
|
.wf-select-search--disabled {
|
|
6532
7161
|
opacity: var(--wf-opacity-disabled);
|
|
@@ -6554,11 +7183,8 @@ code {
|
|
|
6554
7183
|
}
|
|
6555
7184
|
|
|
6556
7185
|
.wf-select-search-menu {
|
|
6557
|
-
|
|
6558
|
-
|
|
6559
|
-
left: 0;
|
|
6560
|
-
right: 0;
|
|
6561
|
-
margin-top: 2px;
|
|
7186
|
+
/* portal 定位(usePopup 接管)——absolute 会被父容器 overflow 裁剪 */
|
|
7187
|
+
min-width: var(--wf-select-menu-min-width, 200px);
|
|
6562
7188
|
background: var(--wf-color-bg);
|
|
6563
7189
|
border: var(--wf-border-width) solid var(--wf-color-border);
|
|
6564
7190
|
border-radius: var(--wf-field-radius, var(--wf-radius));
|
|
@@ -6795,6 +7421,22 @@ code {
|
|
|
6795
7421
|
text-align: center;
|
|
6796
7422
|
}
|
|
6797
7423
|
|
|
7424
|
+
/* weifuwu/components — Space 间距容器 */
|
|
7425
|
+
|
|
7426
|
+
.wf-space {
|
|
7427
|
+
display: flex;
|
|
7428
|
+
align-items: center;
|
|
7429
|
+
}
|
|
7430
|
+
|
|
7431
|
+
.wf-space--vertical {
|
|
7432
|
+
flex-direction: column;
|
|
7433
|
+
align-items: stretch;
|
|
7434
|
+
}
|
|
7435
|
+
|
|
7436
|
+
.wf-space-split {
|
|
7437
|
+
color: var(--wf-color-text-muted, #999);
|
|
7438
|
+
}
|
|
7439
|
+
|
|
6798
7440
|
.wf-sparkline {
|
|
6799
7441
|
display: inline-block;
|
|
6800
7442
|
vertical-align: middle;
|