@designfever/web-review-kit 0.5.0 → 0.6.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 +2 -1
- package/dist/{chunk-TWCSIBMY.js → chunk-IN36JHEU.js} +233 -59
- package/dist/chunk-IN36JHEU.js.map +1 -0
- package/dist/index.cjs +232 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/react-shell.cjs +1490 -533
- package/dist/react-shell.cjs.map +1 -1
- package/dist/react-shell.d.cts +1 -1
- package/dist/react-shell.d.ts +1 -1
- package/dist/react-shell.js +1216 -433
- package/dist/react-shell.js.map +1 -1
- package/dist/{types-RvVa5ns-.d.cts → types-DFHHVRBc.d.cts} +1 -0
- package/dist/{types-RvVa5ns-.d.ts → types-DFHHVRBc.d.ts} +1 -0
- package/docs/README.md +2 -0
- package/docs/architecture.md +4 -0
- package/docs/installation.md +5 -1
- package/docs/release-notes-0.6.0.md +108 -0
- package/package.json +1 -1
- package/dist/chunk-TWCSIBMY.js.map +0 -1
package/dist/react-shell.js
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
getNumberedReviewItems,
|
|
6
6
|
normalizeReviewItemStatus,
|
|
7
7
|
runWithAutoScrollBehavior
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-IN36JHEU.js";
|
|
9
9
|
|
|
10
10
|
// src/react-shell.tsx
|
|
11
11
|
import React2 from "react";
|
|
@@ -263,6 +263,7 @@ function ensureReviewShellStyle() {
|
|
|
263
263
|
|
|
264
264
|
.df-review-shell {
|
|
265
265
|
--df-review-frame-gutter-x: var(--df-review-space-4);
|
|
266
|
+
position: relative;
|
|
266
267
|
display: grid;
|
|
267
268
|
grid-template-columns: minmax(0, 1fr) 0 48px;
|
|
268
269
|
grid-template-rows: auto auto minmax(0, 1fr);
|
|
@@ -294,7 +295,7 @@ function ensureReviewShellStyle() {
|
|
|
294
295
|
|
|
295
296
|
.df-review-address {
|
|
296
297
|
display: grid;
|
|
297
|
-
grid-template-columns: auto minmax(160px, 1fr) auto
|
|
298
|
+
grid-template-columns: auto minmax(160px, 1fr) auto;
|
|
298
299
|
align-items: stretch;
|
|
299
300
|
gap: var(--df-review-space-2);
|
|
300
301
|
width: 100%;
|
|
@@ -302,6 +303,13 @@ function ensureReviewShellStyle() {
|
|
|
302
303
|
margin: 0 auto;
|
|
303
304
|
}
|
|
304
305
|
|
|
306
|
+
.df-review-address-actions {
|
|
307
|
+
display: flex;
|
|
308
|
+
align-items: stretch;
|
|
309
|
+
gap: 4px;
|
|
310
|
+
min-width: 0;
|
|
311
|
+
}
|
|
312
|
+
|
|
305
313
|
.df-review-address input {
|
|
306
314
|
width: 100%;
|
|
307
315
|
height: var(--df-review-control-height-md);
|
|
@@ -380,6 +388,24 @@ function ensureReviewShellStyle() {
|
|
|
380
388
|
color: var(--df-review-accent);
|
|
381
389
|
}
|
|
382
390
|
|
|
391
|
+
.df-review-address-refresh {
|
|
392
|
+
display: inline-grid;
|
|
393
|
+
place-items: center;
|
|
394
|
+
width: var(--df-review-control-height-md);
|
|
395
|
+
min-width: var(--df-review-control-height-md);
|
|
396
|
+
padding: 0;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.df-review-address-refresh svg {
|
|
400
|
+
width: 16px;
|
|
401
|
+
height: 16px;
|
|
402
|
+
fill: none;
|
|
403
|
+
stroke: currentColor;
|
|
404
|
+
stroke-linecap: round;
|
|
405
|
+
stroke-linejoin: round;
|
|
406
|
+
stroke-width: 1.9;
|
|
407
|
+
}
|
|
408
|
+
|
|
383
409
|
.df-review-sitemap-button svg,
|
|
384
410
|
.df-review-sitemap-header button svg {
|
|
385
411
|
width: 18px;
|
|
@@ -1331,8 +1357,7 @@ function ensureReviewShellStyle() {
|
|
|
1331
1357
|
}
|
|
1332
1358
|
|
|
1333
1359
|
.df-review-presets,
|
|
1334
|
-
.df-review-mode
|
|
1335
|
-
.df-review-overlays {
|
|
1360
|
+
.df-review-mode {
|
|
1336
1361
|
display: flex;
|
|
1337
1362
|
align-items: center;
|
|
1338
1363
|
gap: var(--df-review-space-1-5);
|
|
@@ -1344,6 +1369,24 @@ function ensureReviewShellStyle() {
|
|
|
1344
1369
|
background: var(--df-review-card);
|
|
1345
1370
|
}
|
|
1346
1371
|
|
|
1372
|
+
.df-review-overlays {
|
|
1373
|
+
display: flex;
|
|
1374
|
+
align-items: center;
|
|
1375
|
+
gap: 4px;
|
|
1376
|
+
height: var(--df-review-control-height-md);
|
|
1377
|
+
min-height: var(--df-review-control-height-md);
|
|
1378
|
+
padding: 0;
|
|
1379
|
+
border: 0;
|
|
1380
|
+
border-radius: 0;
|
|
1381
|
+
background: transparent;
|
|
1382
|
+
box-shadow: none;
|
|
1383
|
+
}
|
|
1384
|
+
|
|
1385
|
+
.df-review-mode {
|
|
1386
|
+
gap: 3px;
|
|
1387
|
+
padding: 3px;
|
|
1388
|
+
}
|
|
1389
|
+
|
|
1347
1390
|
.df-review-tool-divider,
|
|
1348
1391
|
.df-review-mode-divider {
|
|
1349
1392
|
display: inline-flex;
|
|
@@ -1463,6 +1506,35 @@ function ensureReviewShellStyle() {
|
|
|
1463
1506
|
color: var(--df-review-muted);
|
|
1464
1507
|
}
|
|
1465
1508
|
|
|
1509
|
+
.df-review-overlay-button {
|
|
1510
|
+
border: 1px solid var(--df-review-line-soft);
|
|
1511
|
+
border-radius: var(--df-review-radius-sm);
|
|
1512
|
+
background: var(--df-review-control);
|
|
1513
|
+
box-shadow: var(--df-review-shadow-control);
|
|
1514
|
+
}
|
|
1515
|
+
|
|
1516
|
+
.df-review-overlay-button:hover,
|
|
1517
|
+
.df-review-overlay-button:focus-visible {
|
|
1518
|
+
border-color: var(--df-review-accent);
|
|
1519
|
+
background: var(--df-review-control-hover);
|
|
1520
|
+
color: var(--df-review-text);
|
|
1521
|
+
outline: 0;
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
.df-review-overlay-button.is-active {
|
|
1525
|
+
border-color: var(--df-review-accent);
|
|
1526
|
+
background: var(--df-review-accent-soft);
|
|
1527
|
+
box-shadow: inset 0 0 0 1px var(--df-review-accent-hover);
|
|
1528
|
+
color: var(--df-review-accent);
|
|
1529
|
+
}
|
|
1530
|
+
|
|
1531
|
+
.df-review-mode-button {
|
|
1532
|
+
width: calc(var(--df-review-control-height-md) - 6px);
|
|
1533
|
+
min-width: calc(var(--df-review-control-height-md) - 6px);
|
|
1534
|
+
height: calc(var(--df-review-control-height-md) - 6px);
|
|
1535
|
+
min-height: calc(var(--df-review-control-height-md) - 6px);
|
|
1536
|
+
}
|
|
1537
|
+
|
|
1466
1538
|
.df-review-overlays-menu {
|
|
1467
1539
|
position: relative;
|
|
1468
1540
|
display: none;
|
|
@@ -1582,20 +1654,19 @@ function ensureReviewShellStyle() {
|
|
|
1582
1654
|
|
|
1583
1655
|
.df-review-preset-select {
|
|
1584
1656
|
display: block;
|
|
1585
|
-
flex: 0 1
|
|
1586
|
-
width:
|
|
1657
|
+
flex: 0 1 150px;
|
|
1658
|
+
min-width: 128px;
|
|
1659
|
+
width: clamp(128px, 20vw, 150px);
|
|
1587
1660
|
}
|
|
1588
1661
|
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
.df-review-overlays-menu {
|
|
1594
|
-
display: block;
|
|
1662
|
+
.df-review-tool-divider,
|
|
1663
|
+
.df-review-active-size {
|
|
1664
|
+
display: none;
|
|
1595
1665
|
}
|
|
1596
|
-
}
|
|
1597
1666
|
|
|
1598
|
-
|
|
1667
|
+
}
|
|
1668
|
+
|
|
1669
|
+
.df-review-side-rail {
|
|
1599
1670
|
grid-column: 3;
|
|
1600
1671
|
grid-row: 1 / span 3;
|
|
1601
1672
|
position: relative;
|
|
@@ -1612,11 +1683,11 @@ function ensureReviewShellStyle() {
|
|
|
1612
1683
|
|
|
1613
1684
|
.df-review-side-toggle {
|
|
1614
1685
|
position: relative;
|
|
1615
|
-
flex: 0 0
|
|
1686
|
+
flex: 0 0 48px;
|
|
1616
1687
|
display: grid;
|
|
1617
1688
|
place-items: center;
|
|
1618
1689
|
width: 100%;
|
|
1619
|
-
min-height:
|
|
1690
|
+
min-height: 48px;
|
|
1620
1691
|
border: 0;
|
|
1621
1692
|
border-radius: 0;
|
|
1622
1693
|
padding: 0;
|
|
@@ -1635,9 +1706,9 @@ function ensureReviewShellStyle() {
|
|
|
1635
1706
|
|
|
1636
1707
|
.df-review-side-toggle.is-active::after {
|
|
1637
1708
|
position: absolute;
|
|
1638
|
-
top:
|
|
1709
|
+
top: 9px;
|
|
1639
1710
|
right: 0;
|
|
1640
|
-
bottom:
|
|
1711
|
+
bottom: 9px;
|
|
1641
1712
|
width: 3px;
|
|
1642
1713
|
border-radius: 3px 0 0 3px;
|
|
1643
1714
|
background: var(--df-review-accent);
|
|
@@ -1672,17 +1743,29 @@ function ensureReviewShellStyle() {
|
|
|
1672
1743
|
stroke-width: 1.55;
|
|
1673
1744
|
}
|
|
1674
1745
|
|
|
1746
|
+
.df-review-side-actions {
|
|
1747
|
+
display: flex;
|
|
1748
|
+
flex-direction: column;
|
|
1749
|
+
align-items: stretch;
|
|
1750
|
+
width: 100%;
|
|
1751
|
+
margin-top: auto;
|
|
1752
|
+
}
|
|
1753
|
+
|
|
1675
1754
|
.df-review-presence-overlay {
|
|
1676
1755
|
position: relative;
|
|
1677
1756
|
margin-top: auto;
|
|
1678
1757
|
}
|
|
1679
1758
|
|
|
1759
|
+
.df-review-side-actions .df-review-presence-overlay {
|
|
1760
|
+
margin-top: 0;
|
|
1761
|
+
}
|
|
1762
|
+
|
|
1680
1763
|
.df-review-presence-button {
|
|
1681
1764
|
position: relative;
|
|
1682
1765
|
display: grid;
|
|
1683
1766
|
place-items: center;
|
|
1684
1767
|
width: 100%;
|
|
1685
|
-
min-height:
|
|
1768
|
+
min-height: 48px;
|
|
1686
1769
|
border: 0;
|
|
1687
1770
|
border-radius: 0;
|
|
1688
1771
|
padding: 0;
|
|
@@ -1717,8 +1800,8 @@ function ensureReviewShellStyle() {
|
|
|
1717
1800
|
|
|
1718
1801
|
.df-review-presence-badge {
|
|
1719
1802
|
position: absolute;
|
|
1720
|
-
top:
|
|
1721
|
-
right:
|
|
1803
|
+
top: 6px;
|
|
1804
|
+
right: 6px;
|
|
1722
1805
|
display: grid;
|
|
1723
1806
|
place-items: center;
|
|
1724
1807
|
min-width: 17px;
|
|
@@ -1738,38 +1821,46 @@ function ensureReviewShellStyle() {
|
|
|
1738
1821
|
position: absolute;
|
|
1739
1822
|
right: calc(100% + 8px);
|
|
1740
1823
|
bottom: 8px;
|
|
1741
|
-
display:
|
|
1824
|
+
display: flex;
|
|
1825
|
+
flex-direction: column;
|
|
1826
|
+
align-items: flex-end;
|
|
1742
1827
|
gap: 5px;
|
|
1743
|
-
|
|
1828
|
+
width: max-content;
|
|
1829
|
+
min-width: 0;
|
|
1744
1830
|
max-width: 220px;
|
|
1745
|
-
border: 1px solid var(--df-review-line);
|
|
1746
|
-
border-radius: var(--df-review-radius-md);
|
|
1747
|
-
padding: 8px;
|
|
1748
|
-
background: var(--df-review-panel);
|
|
1749
|
-
box-shadow: var(--df-review-shadow-modal);
|
|
1750
1831
|
}
|
|
1751
1832
|
|
|
1752
1833
|
.df-review-presence-chip {
|
|
1753
1834
|
--df-review-presence-color: var(--df-review-accent);
|
|
1754
|
-
display: flex;
|
|
1835
|
+
display: inline-flex;
|
|
1755
1836
|
align-items: center;
|
|
1837
|
+
width: fit-content;
|
|
1838
|
+
max-width: 180px;
|
|
1756
1839
|
min-width: 0;
|
|
1757
|
-
min-height:
|
|
1758
|
-
|
|
1759
|
-
border
|
|
1760
|
-
|
|
1840
|
+
min-height: 22px;
|
|
1841
|
+
justify-content: flex-end;
|
|
1842
|
+
border: 1px solid var(--df-review-line-soft);
|
|
1843
|
+
border-radius: var(--df-review-radius-pill);
|
|
1844
|
+
padding: 0 9px;
|
|
1761
1845
|
color: var(--df-review-text);
|
|
1762
1846
|
background: var(--df-review-control);
|
|
1763
1847
|
font-size: var(--df-review-font-size-xs);
|
|
1764
1848
|
font-weight: 500;
|
|
1765
1849
|
line-height: 1.1;
|
|
1850
|
+
white-space: nowrap;
|
|
1851
|
+
}
|
|
1852
|
+
|
|
1853
|
+
.df-review-presence-chip span {
|
|
1854
|
+
min-width: 0;
|
|
1766
1855
|
overflow: hidden;
|
|
1767
1856
|
text-overflow: ellipsis;
|
|
1857
|
+
text-align: right;
|
|
1768
1858
|
white-space: nowrap;
|
|
1769
1859
|
}
|
|
1770
1860
|
|
|
1771
1861
|
.df-review-presence-chip.is-self {
|
|
1772
1862
|
color: var(--df-review-accent);
|
|
1863
|
+
border-color: var(--df-review-accent-soft);
|
|
1773
1864
|
background: var(--df-review-accent-soft);
|
|
1774
1865
|
}
|
|
1775
1866
|
|
|
@@ -1779,7 +1870,7 @@ function ensureReviewShellStyle() {
|
|
|
1779
1870
|
position: relative;
|
|
1780
1871
|
z-index: 600;
|
|
1781
1872
|
display: grid;
|
|
1782
|
-
grid-template-rows: minmax(0, 1fr);
|
|
1873
|
+
grid-template-rows: minmax(0, 1fr) auto;
|
|
1783
1874
|
min-width: 0;
|
|
1784
1875
|
min-height: 0;
|
|
1785
1876
|
overflow: hidden;
|
|
@@ -1788,6 +1879,25 @@ function ensureReviewShellStyle() {
|
|
|
1788
1879
|
linear-gradient(180deg, var(--df-review-panel), var(--df-review-bg));
|
|
1789
1880
|
}
|
|
1790
1881
|
|
|
1882
|
+
.df-review-qa-draft-host {
|
|
1883
|
+
position: relative;
|
|
1884
|
+
z-index: 2;
|
|
1885
|
+
display: none;
|
|
1886
|
+
justify-self: end;
|
|
1887
|
+
width: calc(100% - var(--df-review-space-4));
|
|
1888
|
+
margin: 0 var(--df-review-space-2) var(--df-review-space-2) auto;
|
|
1889
|
+
min-width: 0;
|
|
1890
|
+
}
|
|
1891
|
+
|
|
1892
|
+
.df-review-qa-draft-host[data-has-draft-composer="true"] {
|
|
1893
|
+
display: block;
|
|
1894
|
+
}
|
|
1895
|
+
|
|
1896
|
+
.df-review-qa-panel[data-has-draft-composer="true"] .df-review-panel-body {
|
|
1897
|
+
opacity: 0.36;
|
|
1898
|
+
pointer-events: none;
|
|
1899
|
+
}
|
|
1900
|
+
|
|
1791
1901
|
.df-review-shell:not(.is-list-visible) .df-review-qa-panel,
|
|
1792
1902
|
.df-review-qa-panel[aria-hidden="true"] {
|
|
1793
1903
|
visibility: hidden;
|
|
@@ -1872,13 +1982,14 @@ function ensureReviewShellStyle() {
|
|
|
1872
1982
|
.df-review-list-meta span {
|
|
1873
1983
|
min-width: 0;
|
|
1874
1984
|
overflow: hidden;
|
|
1985
|
+
color: #fff;
|
|
1875
1986
|
text-overflow: ellipsis;
|
|
1876
1987
|
white-space: nowrap;
|
|
1877
1988
|
}
|
|
1878
1989
|
|
|
1879
1990
|
.df-review-list-meta strong {
|
|
1880
1991
|
flex: 0 0 auto;
|
|
1881
|
-
color:
|
|
1992
|
+
color: #fff;
|
|
1882
1993
|
font-size: var(--df-review-font-size-xs);
|
|
1883
1994
|
font-variant-numeric: tabular-nums;
|
|
1884
1995
|
font-weight: 500;
|
|
@@ -1936,27 +2047,28 @@ function ensureReviewShellStyle() {
|
|
|
1936
2047
|
display: flex;
|
|
1937
2048
|
align-items: center;
|
|
1938
2049
|
justify-self: end;
|
|
1939
|
-
gap:
|
|
1940
|
-
height:
|
|
1941
|
-
min-height:
|
|
2050
|
+
gap: 2px;
|
|
2051
|
+
height: 26px;
|
|
2052
|
+
min-height: 26px;
|
|
1942
2053
|
padding: 0;
|
|
1943
|
-
border:
|
|
1944
|
-
border-radius:
|
|
1945
|
-
background:
|
|
1946
|
-
box-shadow:
|
|
2054
|
+
border: 0;
|
|
2055
|
+
border-radius: 0;
|
|
2056
|
+
background: transparent;
|
|
2057
|
+
box-shadow: none;
|
|
1947
2058
|
}
|
|
1948
2059
|
|
|
1949
2060
|
.df-review-filter-tab {
|
|
1950
2061
|
position: relative;
|
|
1951
2062
|
display: grid;
|
|
1952
2063
|
place-items: center;
|
|
1953
|
-
width:
|
|
1954
|
-
min-width:
|
|
1955
|
-
height:
|
|
2064
|
+
width: 26px;
|
|
2065
|
+
min-width: 26px;
|
|
2066
|
+
height: 26px;
|
|
1956
2067
|
border: 0;
|
|
1957
|
-
border-radius:
|
|
2068
|
+
border-radius: 0;
|
|
1958
2069
|
background: transparent;
|
|
1959
2070
|
color: var(--df-review-subtle);
|
|
2071
|
+
opacity: 0.3;
|
|
1960
2072
|
}
|
|
1961
2073
|
|
|
1962
2074
|
.df-review-filter-icon {
|
|
@@ -1977,18 +2089,18 @@ function ensureReviewShellStyle() {
|
|
|
1977
2089
|
|
|
1978
2090
|
.df-review-filter-tab:hover,
|
|
1979
2091
|
.df-review-filter-tab.is-active {
|
|
1980
|
-
background: var(--df-review-accent-soft);
|
|
1981
2092
|
color: var(--df-review-text);
|
|
2093
|
+
opacity: 1;
|
|
1982
2094
|
}
|
|
1983
2095
|
|
|
1984
2096
|
.df-review-filter-tab.is-active {
|
|
1985
|
-
box-shadow:
|
|
2097
|
+
box-shadow: none;
|
|
1986
2098
|
color: var(--df-review-accent);
|
|
1987
2099
|
}
|
|
1988
2100
|
|
|
1989
2101
|
.df-review-filter-icon svg {
|
|
1990
|
-
width:
|
|
1991
|
-
height:
|
|
2102
|
+
width: 14px;
|
|
2103
|
+
height: 14px;
|
|
1992
2104
|
fill: none;
|
|
1993
2105
|
stroke: currentColor;
|
|
1994
2106
|
stroke-linecap: round;
|
|
@@ -2134,9 +2246,21 @@ function ensureReviewShellStyle() {
|
|
|
2134
2246
|
}
|
|
2135
2247
|
|
|
2136
2248
|
.df-review-item-id {
|
|
2249
|
+
appearance: none;
|
|
2137
2250
|
border-color: var(--df-review-line);
|
|
2138
2251
|
background: rgba(255, 255, 255, 0.03);
|
|
2139
2252
|
color: var(--df-review-text);
|
|
2253
|
+
cursor: copy;
|
|
2254
|
+
font-family: inherit;
|
|
2255
|
+
}
|
|
2256
|
+
|
|
2257
|
+
.df-review-item-id:hover,
|
|
2258
|
+
.df-review-item-id:focus-visible,
|
|
2259
|
+
.df-review-item-id.is-copied {
|
|
2260
|
+
border-color: var(--df-review-accent);
|
|
2261
|
+
background: var(--df-review-accent-soft);
|
|
2262
|
+
color: var(--df-review-accent);
|
|
2263
|
+
outline: none;
|
|
2140
2264
|
}
|
|
2141
2265
|
|
|
2142
2266
|
.df-review-item-scope {
|
|
@@ -2756,30 +2880,44 @@ function ensureReviewShellStyle() {
|
|
|
2756
2880
|
var(--df-review-control-height-md)
|
|
2757
2881
|
var(--df-review-control-height-md);
|
|
2758
2882
|
align-items: center;
|
|
2759
|
-
gap:
|
|
2883
|
+
gap: var(--df-review-space-2);
|
|
2760
2884
|
min-width: 0;
|
|
2761
2885
|
padding: var(--df-review-space-3) var(--df-review-frame-gutter-x);
|
|
2762
2886
|
border-bottom: 1px solid var(--df-review-line-soft);
|
|
2763
2887
|
background: var(--df-review-card);
|
|
2764
2888
|
color: var(--df-review-muted);
|
|
2889
|
+
font-size: var(--df-review-font-size-sm);
|
|
2890
|
+
font-weight: 500;
|
|
2765
2891
|
}
|
|
2766
2892
|
|
|
2767
|
-
.df-review-section-outline-
|
|
2893
|
+
.df-review-section-outline-summary {
|
|
2768
2894
|
display: grid;
|
|
2769
|
-
|
|
2895
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
2896
|
+
align-items: center;
|
|
2897
|
+
gap: 8px;
|
|
2898
|
+
min-height: var(--df-review-control-height-md);
|
|
2899
|
+
min-width: 0;
|
|
2900
|
+
}
|
|
2901
|
+
|
|
2902
|
+
.df-review-section-outline-summary span {
|
|
2903
|
+
display: inline-flex;
|
|
2904
|
+
align-items: baseline;
|
|
2905
|
+
gap: 6px;
|
|
2770
2906
|
min-width: 0;
|
|
2771
2907
|
}
|
|
2772
2908
|
|
|
2773
2909
|
.df-review-section-outline-head strong {
|
|
2774
2910
|
overflow: hidden;
|
|
2775
2911
|
color: var(--df-review-text);
|
|
2776
|
-
font-size:
|
|
2912
|
+
font-size: inherit;
|
|
2777
2913
|
font-weight: 600;
|
|
2914
|
+
line-height: 1;
|
|
2778
2915
|
text-overflow: ellipsis;
|
|
2779
2916
|
white-space: nowrap;
|
|
2780
2917
|
}
|
|
2781
2918
|
|
|
2782
2919
|
.df-review-section-outline-head small {
|
|
2920
|
+
flex: 0 0 auto;
|
|
2783
2921
|
overflow: hidden;
|
|
2784
2922
|
color: var(--df-review-muted);
|
|
2785
2923
|
font-size: var(--df-review-font-size-xs);
|
|
@@ -2788,6 +2926,60 @@ function ensureReviewShellStyle() {
|
|
|
2788
2926
|
white-space: nowrap;
|
|
2789
2927
|
}
|
|
2790
2928
|
|
|
2929
|
+
.df-review-section-outline-meta-controls {
|
|
2930
|
+
display: inline-flex;
|
|
2931
|
+
align-items: center;
|
|
2932
|
+
justify-content: flex-end;
|
|
2933
|
+
gap: 2px;
|
|
2934
|
+
height: 26px;
|
|
2935
|
+
min-height: 26px;
|
|
2936
|
+
min-width: 0;
|
|
2937
|
+
border: 0;
|
|
2938
|
+
border-radius: 0;
|
|
2939
|
+
padding: 0;
|
|
2940
|
+
background: transparent;
|
|
2941
|
+
box-shadow: none;
|
|
2942
|
+
}
|
|
2943
|
+
|
|
2944
|
+
.df-review-section-outline-meta-toggle {
|
|
2945
|
+
display: inline-grid;
|
|
2946
|
+
place-items: center;
|
|
2947
|
+
width: 26px;
|
|
2948
|
+
min-width: 26px;
|
|
2949
|
+
height: 26px;
|
|
2950
|
+
border: 0;
|
|
2951
|
+
border-radius: 0;
|
|
2952
|
+
padding: 0;
|
|
2953
|
+
color: var(--df-review-subtle);
|
|
2954
|
+
background: transparent;
|
|
2955
|
+
box-shadow: none;
|
|
2956
|
+
cursor: pointer;
|
|
2957
|
+
opacity: 0.3;
|
|
2958
|
+
}
|
|
2959
|
+
|
|
2960
|
+
.df-review-section-outline-meta-toggle:hover,
|
|
2961
|
+
.df-review-section-outline-meta-toggle:focus-visible,
|
|
2962
|
+
.df-review-section-outline-meta-toggle.is-active {
|
|
2963
|
+
color: var(--df-review-text);
|
|
2964
|
+
opacity: 1;
|
|
2965
|
+
outline: 0;
|
|
2966
|
+
}
|
|
2967
|
+
|
|
2968
|
+
.df-review-section-outline-meta-toggle.is-active {
|
|
2969
|
+
box-shadow: none;
|
|
2970
|
+
color: var(--df-review-accent);
|
|
2971
|
+
}
|
|
2972
|
+
|
|
2973
|
+
.df-review-section-outline-meta-toggle svg {
|
|
2974
|
+
width: 14px;
|
|
2975
|
+
height: 14px;
|
|
2976
|
+
fill: none;
|
|
2977
|
+
stroke: currentColor;
|
|
2978
|
+
stroke-linecap: round;
|
|
2979
|
+
stroke-linejoin: round;
|
|
2980
|
+
stroke-width: 2;
|
|
2981
|
+
}
|
|
2982
|
+
|
|
2791
2983
|
.df-review-section-outline-filter {
|
|
2792
2984
|
display: grid;
|
|
2793
2985
|
grid-template-columns: 18px minmax(0, 1fr) auto;
|
|
@@ -2798,7 +2990,7 @@ function ensureReviewShellStyle() {
|
|
|
2798
2990
|
height: var(--df-review-control-height-md);
|
|
2799
2991
|
min-height: var(--df-review-control-height-md);
|
|
2800
2992
|
border: 1px solid var(--df-review-line-soft);
|
|
2801
|
-
border-radius: var(--df-review-radius-
|
|
2993
|
+
border-radius: var(--df-review-radius-sm);
|
|
2802
2994
|
padding: 0 7px 0 11px;
|
|
2803
2995
|
color: var(--df-review-muted);
|
|
2804
2996
|
background: var(--df-review-control);
|
|
@@ -2880,6 +3072,15 @@ function ensureReviewShellStyle() {
|
|
|
2880
3072
|
display: grid;
|
|
2881
3073
|
}
|
|
2882
3074
|
|
|
3075
|
+
.df-review-section-outline-entry-body {
|
|
3076
|
+
display: grid;
|
|
3077
|
+
border-radius: var(--df-review-radius-sm);
|
|
3078
|
+
}
|
|
3079
|
+
|
|
3080
|
+
.df-review-section-outline-entry-body:hover {
|
|
3081
|
+
background: var(--df-review-accent-soft);
|
|
3082
|
+
}
|
|
3083
|
+
|
|
2883
3084
|
.df-review-section-outline-item.is-depth-1:not(:last-child) {
|
|
2884
3085
|
margin-bottom: 7px;
|
|
2885
3086
|
padding-bottom: 7px;
|
|
@@ -2895,10 +3096,6 @@ function ensureReviewShellStyle() {
|
|
|
2895
3096
|
padding: 7px 6px;
|
|
2896
3097
|
}
|
|
2897
3098
|
|
|
2898
|
-
.df-review-section-outline-row:hover {
|
|
2899
|
-
background: var(--df-review-accent-soft);
|
|
2900
|
-
}
|
|
2901
|
-
|
|
2902
3099
|
.df-review-section-outline-toggle {
|
|
2903
3100
|
display: grid;
|
|
2904
3101
|
place-items: center;
|
|
@@ -2970,6 +3167,86 @@ function ensureReviewShellStyle() {
|
|
|
2970
3167
|
color: var(--df-review-accent);
|
|
2971
3168
|
}
|
|
2972
3169
|
|
|
3170
|
+
.df-review-section-outline-meta {
|
|
3171
|
+
display: grid;
|
|
3172
|
+
gap: 3px;
|
|
3173
|
+
min-width: 0;
|
|
3174
|
+
padding: 0 6px 7px;
|
|
3175
|
+
}
|
|
3176
|
+
|
|
3177
|
+
.df-review-section-outline-meta-row {
|
|
3178
|
+
display: grid;
|
|
3179
|
+
grid-template-columns: 52px minmax(0, 1fr);
|
|
3180
|
+
align-items: start;
|
|
3181
|
+
gap: 6px;
|
|
3182
|
+
min-width: 0;
|
|
3183
|
+
color: var(--df-review-muted);
|
|
3184
|
+
font-family: var(--df-review-font-mono);
|
|
3185
|
+
font-size: var(--df-review-font-size-2xs);
|
|
3186
|
+
line-height: 1.35;
|
|
3187
|
+
}
|
|
3188
|
+
|
|
3189
|
+
.df-review-section-outline-meta-row b {
|
|
3190
|
+
color: var(--df-review-subtle);
|
|
3191
|
+
font-weight: 600;
|
|
3192
|
+
}
|
|
3193
|
+
|
|
3194
|
+
.df-review-section-outline-meta-row code {
|
|
3195
|
+
min-width: 0;
|
|
3196
|
+
overflow-wrap: anywhere;
|
|
3197
|
+
color: var(--df-review-muted);
|
|
3198
|
+
font-family: inherit;
|
|
3199
|
+
}
|
|
3200
|
+
|
|
3201
|
+
.df-review-section-outline-meta-row.is-text code {
|
|
3202
|
+
color: var(--df-review-text);
|
|
3203
|
+
}
|
|
3204
|
+
|
|
3205
|
+
.df-review-section-outline-meta-row.is-media code {
|
|
3206
|
+
color: var(--df-review-accent);
|
|
3207
|
+
}
|
|
3208
|
+
|
|
3209
|
+
.df-review-section-outline-media-link {
|
|
3210
|
+
display: block;
|
|
3211
|
+
min-width: 0;
|
|
3212
|
+
color: var(--df-review-accent);
|
|
3213
|
+
text-decoration: none;
|
|
3214
|
+
}
|
|
3215
|
+
|
|
3216
|
+
.df-review-section-outline-media-link:hover,
|
|
3217
|
+
.df-review-section-outline-media-link:focus-visible {
|
|
3218
|
+
color: var(--df-review-text);
|
|
3219
|
+
outline: 0;
|
|
3220
|
+
}
|
|
3221
|
+
|
|
3222
|
+
.df-review-section-outline-meta-row.is-class code {
|
|
3223
|
+
color: var(--df-review-source-popover-data-subtle);
|
|
3224
|
+
}
|
|
3225
|
+
|
|
3226
|
+
.df-review-section-outline-meta-row.is-class {
|
|
3227
|
+
align-items: center;
|
|
3228
|
+
}
|
|
3229
|
+
|
|
3230
|
+
.df-review-section-outline-class-tags {
|
|
3231
|
+
display: flex;
|
|
3232
|
+
align-items: center;
|
|
3233
|
+
flex-wrap: wrap;
|
|
3234
|
+
gap: 3px;
|
|
3235
|
+
min-width: 0;
|
|
3236
|
+
}
|
|
3237
|
+
|
|
3238
|
+
.df-review-section-outline-class-tags code {
|
|
3239
|
+
display: inline-flex;
|
|
3240
|
+
align-items: center;
|
|
3241
|
+
max-width: 100%;
|
|
3242
|
+
min-height: 20px;
|
|
3243
|
+
border: 1px solid var(--df-review-line-soft);
|
|
3244
|
+
border-radius: var(--df-review-radius-pill);
|
|
3245
|
+
padding: 0 6px;
|
|
3246
|
+
background: var(--df-review-control);
|
|
3247
|
+
line-height: 1;
|
|
3248
|
+
}
|
|
3249
|
+
|
|
2973
3250
|
.df-review-section-outline-links {
|
|
2974
3251
|
display: inline-flex;
|
|
2975
3252
|
align-items: center;
|
|
@@ -3473,24 +3750,16 @@ var __iconNode6 = [
|
|
|
3473
3750
|
];
|
|
3474
3751
|
var Database = createLucideIcon("database", __iconNode6);
|
|
3475
3752
|
|
|
3476
|
-
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/ellipsis.mjs
|
|
3477
|
-
var __iconNode7 = [
|
|
3478
|
-
["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
|
|
3479
|
-
["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
|
|
3480
|
-
["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
|
|
3481
|
-
];
|
|
3482
|
-
var Ellipsis = createLucideIcon("ellipsis", __iconNode7);
|
|
3483
|
-
|
|
3484
3753
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/external-link.mjs
|
|
3485
|
-
var
|
|
3754
|
+
var __iconNode7 = [
|
|
3486
3755
|
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
3487
3756
|
["path", { d: "M10 14 21 3", key: "gplh6r" }],
|
|
3488
3757
|
["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
|
|
3489
3758
|
];
|
|
3490
|
-
var ExternalLink = createLucideIcon("external-link",
|
|
3759
|
+
var ExternalLink = createLucideIcon("external-link", __iconNode7);
|
|
3491
3760
|
|
|
3492
3761
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/eye-off.mjs
|
|
3493
|
-
var
|
|
3762
|
+
var __iconNode8 = [
|
|
3494
3763
|
[
|
|
3495
3764
|
"path",
|
|
3496
3765
|
{
|
|
@@ -3508,10 +3777,10 @@ var __iconNode9 = [
|
|
|
3508
3777
|
],
|
|
3509
3778
|
["path", { d: "m2 2 20 20", key: "1ooewy" }]
|
|
3510
3779
|
];
|
|
3511
|
-
var EyeOff = createLucideIcon("eye-off",
|
|
3780
|
+
var EyeOff = createLucideIcon("eye-off", __iconNode8);
|
|
3512
3781
|
|
|
3513
3782
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/eye.mjs
|
|
3514
|
-
var
|
|
3783
|
+
var __iconNode9 = [
|
|
3515
3784
|
[
|
|
3516
3785
|
"path",
|
|
3517
3786
|
{
|
|
@@ -3521,10 +3790,10 @@ var __iconNode10 = [
|
|
|
3521
3790
|
],
|
|
3522
3791
|
["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
|
|
3523
3792
|
];
|
|
3524
|
-
var Eye = createLucideIcon("eye",
|
|
3793
|
+
var Eye = createLucideIcon("eye", __iconNode9);
|
|
3525
3794
|
|
|
3526
3795
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/file-text.mjs
|
|
3527
|
-
var
|
|
3796
|
+
var __iconNode10 = [
|
|
3528
3797
|
[
|
|
3529
3798
|
"path",
|
|
3530
3799
|
{
|
|
@@ -3537,43 +3806,43 @@ var __iconNode11 = [
|
|
|
3537
3806
|
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
3538
3807
|
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
3539
3808
|
];
|
|
3540
|
-
var FileText = createLucideIcon("file-text",
|
|
3809
|
+
var FileText = createLucideIcon("file-text", __iconNode10);
|
|
3541
3810
|
|
|
3542
3811
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/image.mjs
|
|
3543
|
-
var
|
|
3812
|
+
var __iconNode11 = [
|
|
3544
3813
|
["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
|
|
3545
3814
|
["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
|
|
3546
3815
|
["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
|
|
3547
3816
|
];
|
|
3548
|
-
var Image = createLucideIcon("image",
|
|
3817
|
+
var Image = createLucideIcon("image", __iconNode11);
|
|
3549
3818
|
|
|
3550
3819
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/layout-grid.mjs
|
|
3551
|
-
var
|
|
3820
|
+
var __iconNode12 = [
|
|
3552
3821
|
["rect", { width: "7", height: "7", x: "3", y: "3", rx: "1", key: "1g98yp" }],
|
|
3553
3822
|
["rect", { width: "7", height: "7", x: "14", y: "3", rx: "1", key: "6d4xhi" }],
|
|
3554
3823
|
["rect", { width: "7", height: "7", x: "14", y: "14", rx: "1", key: "nxv5o0" }],
|
|
3555
3824
|
["rect", { width: "7", height: "7", x: "3", y: "14", rx: "1", key: "1bb6yr" }]
|
|
3556
3825
|
];
|
|
3557
|
-
var LayoutGrid = createLucideIcon("layout-grid",
|
|
3826
|
+
var LayoutGrid = createLucideIcon("layout-grid", __iconNode12);
|
|
3558
3827
|
|
|
3559
3828
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/link-2.mjs
|
|
3560
|
-
var
|
|
3829
|
+
var __iconNode13 = [
|
|
3561
3830
|
["path", { d: "M9 17H7A5 5 0 0 1 7 7h2", key: "8i5ue5" }],
|
|
3562
3831
|
["path", { d: "M15 7h2a5 5 0 1 1 0 10h-2", key: "1b9ql8" }],
|
|
3563
3832
|
["line", { x1: "8", x2: "16", y1: "12", y2: "12", key: "1jonct" }]
|
|
3564
3833
|
];
|
|
3565
|
-
var Link2 = createLucideIcon("link-2",
|
|
3834
|
+
var Link2 = createLucideIcon("link-2", __iconNode13);
|
|
3566
3835
|
|
|
3567
3836
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/list-filter.mjs
|
|
3568
|
-
var
|
|
3837
|
+
var __iconNode14 = [
|
|
3569
3838
|
["path", { d: "M2 5h20", key: "1fs1ex" }],
|
|
3570
3839
|
["path", { d: "M6 12h12", key: "8npq4p" }],
|
|
3571
3840
|
["path", { d: "M9 19h6", key: "456am0" }]
|
|
3572
3841
|
];
|
|
3573
|
-
var ListFilter = createLucideIcon("list-filter",
|
|
3842
|
+
var ListFilter = createLucideIcon("list-filter", __iconNode14);
|
|
3574
3843
|
|
|
3575
3844
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/map.mjs
|
|
3576
|
-
var
|
|
3845
|
+
var __iconNode15 = [
|
|
3577
3846
|
[
|
|
3578
3847
|
"path",
|
|
3579
3848
|
{
|
|
@@ -3584,27 +3853,27 @@ var __iconNode16 = [
|
|
|
3584
3853
|
["path", { d: "M15 5.764v15", key: "1pn4in" }],
|
|
3585
3854
|
["path", { d: "M9 3.236v15", key: "1uimfh" }]
|
|
3586
3855
|
];
|
|
3587
|
-
var Map2 = createLucideIcon("map",
|
|
3856
|
+
var Map2 = createLucideIcon("map", __iconNode15);
|
|
3588
3857
|
|
|
3589
3858
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/maximize-2.mjs
|
|
3590
|
-
var
|
|
3859
|
+
var __iconNode16 = [
|
|
3591
3860
|
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
3592
3861
|
["path", { d: "m21 3-7 7", key: "1l2asr" }],
|
|
3593
3862
|
["path", { d: "m3 21 7-7", key: "tjx5ai" }],
|
|
3594
3863
|
["path", { d: "M9 21H3v-6", key: "wtvkvv" }]
|
|
3595
3864
|
];
|
|
3596
|
-
var Maximize2 = createLucideIcon("maximize-2",
|
|
3865
|
+
var Maximize2 = createLucideIcon("maximize-2", __iconNode16);
|
|
3597
3866
|
|
|
3598
3867
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/monitor.mjs
|
|
3599
|
-
var
|
|
3868
|
+
var __iconNode17 = [
|
|
3600
3869
|
["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
|
|
3601
3870
|
["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
|
|
3602
3871
|
["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
|
|
3603
3872
|
];
|
|
3604
|
-
var Monitor = createLucideIcon("monitor",
|
|
3873
|
+
var Monitor = createLucideIcon("monitor", __iconNode17);
|
|
3605
3874
|
|
|
3606
3875
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/moon.mjs
|
|
3607
|
-
var
|
|
3876
|
+
var __iconNode18 = [
|
|
3608
3877
|
[
|
|
3609
3878
|
"path",
|
|
3610
3879
|
{
|
|
@@ -3613,10 +3882,10 @@ var __iconNode19 = [
|
|
|
3613
3882
|
}
|
|
3614
3883
|
]
|
|
3615
3884
|
];
|
|
3616
|
-
var Moon = createLucideIcon("moon",
|
|
3885
|
+
var Moon = createLucideIcon("moon", __iconNode18);
|
|
3617
3886
|
|
|
3618
3887
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/pencil.mjs
|
|
3619
|
-
var
|
|
3888
|
+
var __iconNode19 = [
|
|
3620
3889
|
[
|
|
3621
3890
|
"path",
|
|
3622
3891
|
{
|
|
@@ -3626,25 +3895,25 @@ var __iconNode20 = [
|
|
|
3626
3895
|
],
|
|
3627
3896
|
["path", { d: "m15 5 4 4", key: "1mk7zo" }]
|
|
3628
3897
|
];
|
|
3629
|
-
var Pencil = createLucideIcon("pencil",
|
|
3898
|
+
var Pencil = createLucideIcon("pencil", __iconNode19);
|
|
3630
3899
|
|
|
3631
3900
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/rectangle-horizontal.mjs
|
|
3632
|
-
var
|
|
3901
|
+
var __iconNode20 = [
|
|
3633
3902
|
["rect", { width: "20", height: "12", x: "2", y: "6", rx: "2", key: "9lu3g6" }]
|
|
3634
3903
|
];
|
|
3635
|
-
var RectangleHorizontal = createLucideIcon("rectangle-horizontal",
|
|
3904
|
+
var RectangleHorizontal = createLucideIcon("rectangle-horizontal", __iconNode20);
|
|
3636
3905
|
|
|
3637
3906
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/refresh-cw.mjs
|
|
3638
|
-
var
|
|
3907
|
+
var __iconNode21 = [
|
|
3639
3908
|
["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
|
|
3640
3909
|
["path", { d: "M21 3v5h-5", key: "1q7to0" }],
|
|
3641
3910
|
["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
|
|
3642
3911
|
["path", { d: "M8 16H3v5", key: "1cv678" }]
|
|
3643
3912
|
];
|
|
3644
|
-
var RefreshCw = createLucideIcon("refresh-cw",
|
|
3913
|
+
var RefreshCw = createLucideIcon("refresh-cw", __iconNode21);
|
|
3645
3914
|
|
|
3646
3915
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/ruler.mjs
|
|
3647
|
-
var
|
|
3916
|
+
var __iconNode22 = [
|
|
3648
3917
|
[
|
|
3649
3918
|
"path",
|
|
3650
3919
|
{
|
|
@@ -3657,26 +3926,26 @@ var __iconNode23 = [
|
|
|
3657
3926
|
["path", { d: "m8.5 6.5 2-2", key: "vc6u1g" }],
|
|
3658
3927
|
["path", { d: "m17.5 15.5 2-2", key: "wo5hmg" }]
|
|
3659
3928
|
];
|
|
3660
|
-
var Ruler = createLucideIcon("ruler",
|
|
3929
|
+
var Ruler = createLucideIcon("ruler", __iconNode22);
|
|
3661
3930
|
|
|
3662
3931
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/scan.mjs
|
|
3663
|
-
var
|
|
3932
|
+
var __iconNode23 = [
|
|
3664
3933
|
["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
|
|
3665
3934
|
["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
|
|
3666
3935
|
["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
|
|
3667
3936
|
["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }]
|
|
3668
3937
|
];
|
|
3669
|
-
var Scan = createLucideIcon("scan",
|
|
3938
|
+
var Scan = createLucideIcon("scan", __iconNode23);
|
|
3670
3939
|
|
|
3671
3940
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/search.mjs
|
|
3672
|
-
var
|
|
3941
|
+
var __iconNode24 = [
|
|
3673
3942
|
["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
|
|
3674
3943
|
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
|
|
3675
3944
|
];
|
|
3676
|
-
var Search = createLucideIcon("search",
|
|
3945
|
+
var Search = createLucideIcon("search", __iconNode24);
|
|
3677
3946
|
|
|
3678
3947
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/settings.mjs
|
|
3679
|
-
var
|
|
3948
|
+
var __iconNode25 = [
|
|
3680
3949
|
[
|
|
3681
3950
|
"path",
|
|
3682
3951
|
{
|
|
@@ -3686,14 +3955,31 @@ var __iconNode26 = [
|
|
|
3686
3955
|
],
|
|
3687
3956
|
["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
|
|
3688
3957
|
];
|
|
3689
|
-
var Settings = createLucideIcon("settings",
|
|
3958
|
+
var Settings = createLucideIcon("settings", __iconNode25);
|
|
3690
3959
|
|
|
3691
3960
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/smartphone.mjs
|
|
3692
|
-
var
|
|
3961
|
+
var __iconNode26 = [
|
|
3693
3962
|
["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
|
|
3694
3963
|
["path", { d: "M12 18h.01", key: "mhygvu" }]
|
|
3695
3964
|
];
|
|
3696
|
-
var Smartphone = createLucideIcon("smartphone",
|
|
3965
|
+
var Smartphone = createLucideIcon("smartphone", __iconNode26);
|
|
3966
|
+
|
|
3967
|
+
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/square-dashed.mjs
|
|
3968
|
+
var __iconNode27 = [
|
|
3969
|
+
["path", { d: "M5 3a2 2 0 0 0-2 2", key: "y57alp" }],
|
|
3970
|
+
["path", { d: "M19 3a2 2 0 0 1 2 2", key: "18rm91" }],
|
|
3971
|
+
["path", { d: "M21 19a2 2 0 0 1-2 2", key: "1j7049" }],
|
|
3972
|
+
["path", { d: "M5 21a2 2 0 0 1-2-2", key: "sbafld" }],
|
|
3973
|
+
["path", { d: "M9 3h1", key: "1yesri" }],
|
|
3974
|
+
["path", { d: "M9 21h1", key: "15o7lz" }],
|
|
3975
|
+
["path", { d: "M14 3h1", key: "1ec4yj" }],
|
|
3976
|
+
["path", { d: "M14 21h1", key: "v9vybs" }],
|
|
3977
|
+
["path", { d: "M3 9v1", key: "1r0deq" }],
|
|
3978
|
+
["path", { d: "M21 9v1", key: "mxsmne" }],
|
|
3979
|
+
["path", { d: "M3 14v1", key: "vnatye" }],
|
|
3980
|
+
["path", { d: "M21 14v1", key: "169vum" }]
|
|
3981
|
+
];
|
|
3982
|
+
var SquareDashed = createLucideIcon("square-dashed", __iconNode27);
|
|
3697
3983
|
|
|
3698
3984
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/square-mouse-pointer.mjs
|
|
3699
3985
|
var __iconNode28 = [
|
|
@@ -3735,27 +4021,36 @@ var __iconNode30 = [
|
|
|
3735
4021
|
];
|
|
3736
4022
|
var Sun = createLucideIcon("sun", __iconNode30);
|
|
3737
4023
|
|
|
3738
|
-
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/
|
|
4024
|
+
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/type.mjs
|
|
3739
4025
|
var __iconNode31 = [
|
|
4026
|
+
["path", { d: "M12 4v16", key: "1654pz" }],
|
|
4027
|
+
["path", { d: "M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2", key: "e0r10z" }],
|
|
4028
|
+
["path", { d: "M9 20h6", key: "s66wpe" }]
|
|
4029
|
+
];
|
|
4030
|
+
var Type = createLucideIcon("type", __iconNode31);
|
|
4031
|
+
|
|
4032
|
+
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/upload.mjs
|
|
4033
|
+
var __iconNode32 = [
|
|
3740
4034
|
["path", { d: "M12 3v12", key: "1x0j5s" }],
|
|
3741
4035
|
["path", { d: "m17 8-5-5-5 5", key: "7q97r8" }],
|
|
3742
4036
|
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }]
|
|
3743
4037
|
];
|
|
3744
|
-
var Upload = createLucideIcon("upload",
|
|
4038
|
+
var Upload = createLucideIcon("upload", __iconNode32);
|
|
3745
4039
|
|
|
3746
|
-
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/
|
|
3747
|
-
var
|
|
3748
|
-
["
|
|
3749
|
-
["path", { d: "
|
|
4040
|
+
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/workflow.mjs
|
|
4041
|
+
var __iconNode33 = [
|
|
4042
|
+
["rect", { width: "8", height: "8", x: "3", y: "3", rx: "2", key: "by2w9f" }],
|
|
4043
|
+
["path", { d: "M7 11v4a2 2 0 0 0 2 2h4", key: "xkn7yn" }],
|
|
4044
|
+
["rect", { width: "8", height: "8", x: "13", y: "13", rx: "2", key: "1cgmvn" }]
|
|
3750
4045
|
];
|
|
3751
|
-
var
|
|
4046
|
+
var Workflow = createLucideIcon("workflow", __iconNode33);
|
|
3752
4047
|
|
|
3753
4048
|
// node_modules/.pnpm/lucide-react@1.20.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/x.mjs
|
|
3754
|
-
var
|
|
4049
|
+
var __iconNode34 = [
|
|
3755
4050
|
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
|
|
3756
4051
|
["path", { d: "m6 6 12 12", key: "d8bk6v" }]
|
|
3757
4052
|
];
|
|
3758
|
-
var X = createLucideIcon("x",
|
|
4053
|
+
var X = createLucideIcon("x", __iconNode34);
|
|
3759
4054
|
|
|
3760
4055
|
// src/react-shell/constants.ts
|
|
3761
4056
|
var REVIEW_QA_FILTERS = [
|
|
@@ -3769,6 +4064,11 @@ var FIGMA_OVERLAY_UNAVAILABLE_MESSAGE = "\uD53C\uADF8\uB9C8 \uC624\uBC84\uB808\u
|
|
|
3769
4064
|
var FIGMA_TOKEN_STORAGE_KEY = "figma-token";
|
|
3770
4065
|
var REVIEW_USER_ID_STORAGE_KEY = "user-id";
|
|
3771
4066
|
var REVIEW_THEME_STORAGE_KEY = "df-review-theme";
|
|
4067
|
+
var REVIEW_SIDE_PANEL_STORAGE_KEY = "df-review-side-panel";
|
|
4068
|
+
var REVIEW_SIDE_PANEL_VISIBLE_STORAGE_KEY = "df-review-side-panel-visible";
|
|
4069
|
+
var REVIEW_SOURCE_TREE_FILTER_STORAGE_KEY = "df-review-source-tree-filter";
|
|
4070
|
+
var REVIEW_SOURCE_TREE_META_STORAGE_KEY = "df-review-source-tree-meta-visibility";
|
|
4071
|
+
var REVIEW_QA_STATUS_FILTER_STORAGE_KEY = "df-review-qa-status-filter";
|
|
3772
4072
|
var DEFAULT_REVIEW_THEME = "dark";
|
|
3773
4073
|
var FIGMA_TOKEN_GUIDE_ID = "df-review-figma-token-guide";
|
|
3774
4074
|
var DEFAULT_INITIAL_REVIEW_PROMPT = "You are fixing QA issues collected with df-web-review-kit. Use the copied QA prompt as the source of truth for page, viewport, selector, DOM metadata, coordinates, and user comment. Make the smallest code or CSS change that fixes the issue, preserve unrelated behavior, then verify the target viewport again.";
|
|
@@ -4194,7 +4494,35 @@ var PromptModal = ({
|
|
|
4194
4494
|
};
|
|
4195
4495
|
|
|
4196
4496
|
// src/react-shell/settings.ts
|
|
4497
|
+
var DEFAULT_SOURCE_TREE_META_VISIBILITY = {
|
|
4498
|
+
box: true,
|
|
4499
|
+
font: true,
|
|
4500
|
+
media: true,
|
|
4501
|
+
className: false
|
|
4502
|
+
};
|
|
4503
|
+
var REVIEW_QA_STATUS_FILTER_VALUES = /* @__PURE__ */ new Set([
|
|
4504
|
+
"all",
|
|
4505
|
+
"todo",
|
|
4506
|
+
"doing",
|
|
4507
|
+
"review",
|
|
4508
|
+
"hold",
|
|
4509
|
+
"done"
|
|
4510
|
+
]);
|
|
4197
4511
|
var normalizeReviewTheme = (value) => value === "light" || value === "system" || value === "dark" ? value : DEFAULT_REVIEW_THEME;
|
|
4512
|
+
var normalizeStoredReviewSidePanel = (value) => value === "source" ? "source" : "qa";
|
|
4513
|
+
var normalizeStoredReviewQaStatusFilter = (value) => value && REVIEW_QA_STATUS_FILTER_VALUES.has(value) ? value : "all";
|
|
4514
|
+
var normalizeStoredSourceTreeMetaVisibility = (value) => {
|
|
4515
|
+
if (!value || typeof value !== "object") {
|
|
4516
|
+
return DEFAULT_SOURCE_TREE_META_VISIBILITY;
|
|
4517
|
+
}
|
|
4518
|
+
const metaVisibility = value;
|
|
4519
|
+
return {
|
|
4520
|
+
box: typeof metaVisibility.box === "boolean" ? metaVisibility.box : DEFAULT_SOURCE_TREE_META_VISIBILITY.box,
|
|
4521
|
+
font: typeof metaVisibility.font === "boolean" ? metaVisibility.font : DEFAULT_SOURCE_TREE_META_VISIBILITY.font,
|
|
4522
|
+
media: typeof metaVisibility.media === "boolean" ? metaVisibility.media : DEFAULT_SOURCE_TREE_META_VISIBILITY.media,
|
|
4523
|
+
className: typeof metaVisibility.className === "boolean" ? metaVisibility.className : DEFAULT_SOURCE_TREE_META_VISIBILITY.className
|
|
4524
|
+
};
|
|
4525
|
+
};
|
|
4198
4526
|
var getStoredFigmaToken = () => {
|
|
4199
4527
|
if (typeof window === "undefined") return "";
|
|
4200
4528
|
try {
|
|
@@ -4257,6 +4585,118 @@ var writeStoredReviewTheme = (theme) => {
|
|
|
4257
4585
|
return;
|
|
4258
4586
|
}
|
|
4259
4587
|
};
|
|
4588
|
+
var getStoredReviewSidePanel = () => {
|
|
4589
|
+
if (typeof window === "undefined") return "qa";
|
|
4590
|
+
try {
|
|
4591
|
+
return normalizeStoredReviewSidePanel(
|
|
4592
|
+
window.localStorage.getItem(REVIEW_SIDE_PANEL_STORAGE_KEY)
|
|
4593
|
+
);
|
|
4594
|
+
} catch {
|
|
4595
|
+
return "qa";
|
|
4596
|
+
}
|
|
4597
|
+
};
|
|
4598
|
+
var writeStoredReviewSidePanel = (sidePanel) => {
|
|
4599
|
+
if (typeof window === "undefined") return;
|
|
4600
|
+
try {
|
|
4601
|
+
window.localStorage.setItem(
|
|
4602
|
+
REVIEW_SIDE_PANEL_STORAGE_KEY,
|
|
4603
|
+
normalizeStoredReviewSidePanel(sidePanel)
|
|
4604
|
+
);
|
|
4605
|
+
} catch {
|
|
4606
|
+
return;
|
|
4607
|
+
}
|
|
4608
|
+
};
|
|
4609
|
+
var getStoredReviewSidePanelVisible = () => {
|
|
4610
|
+
if (typeof window === "undefined") return true;
|
|
4611
|
+
try {
|
|
4612
|
+
const value = window.localStorage.getItem(
|
|
4613
|
+
REVIEW_SIDE_PANEL_VISIBLE_STORAGE_KEY
|
|
4614
|
+
);
|
|
4615
|
+
return value === null ? true : value === "true";
|
|
4616
|
+
} catch {
|
|
4617
|
+
return true;
|
|
4618
|
+
}
|
|
4619
|
+
};
|
|
4620
|
+
var writeStoredReviewSidePanelVisible = (isVisible) => {
|
|
4621
|
+
if (typeof window === "undefined") return;
|
|
4622
|
+
try {
|
|
4623
|
+
window.localStorage.setItem(
|
|
4624
|
+
REVIEW_SIDE_PANEL_VISIBLE_STORAGE_KEY,
|
|
4625
|
+
isVisible ? "true" : "false"
|
|
4626
|
+
);
|
|
4627
|
+
} catch {
|
|
4628
|
+
return;
|
|
4629
|
+
}
|
|
4630
|
+
};
|
|
4631
|
+
var getStoredReviewQaStatusFilter = () => {
|
|
4632
|
+
if (typeof window === "undefined") return "all";
|
|
4633
|
+
try {
|
|
4634
|
+
return normalizeStoredReviewQaStatusFilter(
|
|
4635
|
+
window.localStorage.getItem(REVIEW_QA_STATUS_FILTER_STORAGE_KEY)
|
|
4636
|
+
);
|
|
4637
|
+
} catch {
|
|
4638
|
+
return "all";
|
|
4639
|
+
}
|
|
4640
|
+
};
|
|
4641
|
+
var writeStoredReviewQaStatusFilter = (filter) => {
|
|
4642
|
+
if (typeof window === "undefined") return;
|
|
4643
|
+
try {
|
|
4644
|
+
const normalizedFilter = normalizeStoredReviewQaStatusFilter(filter);
|
|
4645
|
+
if (normalizedFilter === "all") {
|
|
4646
|
+
window.localStorage.removeItem(REVIEW_QA_STATUS_FILTER_STORAGE_KEY);
|
|
4647
|
+
} else {
|
|
4648
|
+
window.localStorage.setItem(
|
|
4649
|
+
REVIEW_QA_STATUS_FILTER_STORAGE_KEY,
|
|
4650
|
+
normalizedFilter
|
|
4651
|
+
);
|
|
4652
|
+
}
|
|
4653
|
+
} catch {
|
|
4654
|
+
return;
|
|
4655
|
+
}
|
|
4656
|
+
};
|
|
4657
|
+
var getStoredSourceTreeFilter = () => {
|
|
4658
|
+
if (typeof window === "undefined") return "";
|
|
4659
|
+
try {
|
|
4660
|
+
return window.localStorage.getItem(REVIEW_SOURCE_TREE_FILTER_STORAGE_KEY) ?? "";
|
|
4661
|
+
} catch {
|
|
4662
|
+
return "";
|
|
4663
|
+
}
|
|
4664
|
+
};
|
|
4665
|
+
var writeStoredSourceTreeFilter = (filter) => {
|
|
4666
|
+
if (typeof window === "undefined") return;
|
|
4667
|
+
try {
|
|
4668
|
+
if (filter) {
|
|
4669
|
+
window.localStorage.setItem(REVIEW_SOURCE_TREE_FILTER_STORAGE_KEY, filter);
|
|
4670
|
+
} else {
|
|
4671
|
+
window.localStorage.removeItem(REVIEW_SOURCE_TREE_FILTER_STORAGE_KEY);
|
|
4672
|
+
}
|
|
4673
|
+
} catch {
|
|
4674
|
+
return;
|
|
4675
|
+
}
|
|
4676
|
+
};
|
|
4677
|
+
var getStoredSourceTreeMetaVisibility = () => {
|
|
4678
|
+
if (typeof window === "undefined") return DEFAULT_SOURCE_TREE_META_VISIBILITY;
|
|
4679
|
+
try {
|
|
4680
|
+
const value = window.localStorage.getItem(
|
|
4681
|
+
REVIEW_SOURCE_TREE_META_STORAGE_KEY
|
|
4682
|
+
);
|
|
4683
|
+
if (!value) return DEFAULT_SOURCE_TREE_META_VISIBILITY;
|
|
4684
|
+
return normalizeStoredSourceTreeMetaVisibility(JSON.parse(value));
|
|
4685
|
+
} catch {
|
|
4686
|
+
return DEFAULT_SOURCE_TREE_META_VISIBILITY;
|
|
4687
|
+
}
|
|
4688
|
+
};
|
|
4689
|
+
var writeStoredSourceTreeMetaVisibility = (metaVisibility) => {
|
|
4690
|
+
if (typeof window === "undefined") return;
|
|
4691
|
+
try {
|
|
4692
|
+
window.localStorage.setItem(
|
|
4693
|
+
REVIEW_SOURCE_TREE_META_STORAGE_KEY,
|
|
4694
|
+
JSON.stringify(normalizeStoredSourceTreeMetaVisibility(metaVisibility))
|
|
4695
|
+
);
|
|
4696
|
+
} catch {
|
|
4697
|
+
return;
|
|
4698
|
+
}
|
|
4699
|
+
};
|
|
4260
4700
|
var getSystemReviewTheme = () => {
|
|
4261
4701
|
if (typeof window === "undefined" || !window.matchMedia) return "dark";
|
|
4262
4702
|
return window.matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";
|
|
@@ -5324,6 +5764,7 @@ var QaItemCard = ({
|
|
|
5324
5764
|
onChangeItemStatus,
|
|
5325
5765
|
onClearSelectedItem,
|
|
5326
5766
|
onRemoveItem,
|
|
5767
|
+
onCopyItemLabel,
|
|
5327
5768
|
onCopyItemLink,
|
|
5328
5769
|
onCopyItemPrompt,
|
|
5329
5770
|
onEditItem,
|
|
@@ -5339,8 +5780,10 @@ var QaItemCard = ({
|
|
|
5339
5780
|
const itemComment = item.comment.trim() || getItemTitle(item);
|
|
5340
5781
|
const itemAuthor = item.createdBy?.trim();
|
|
5341
5782
|
const promptCopyKey = `qa:${item.id}`;
|
|
5783
|
+
const labelCopyKey = `label:${item.id}`;
|
|
5342
5784
|
const linkCopyKey = `link:${item.id}`;
|
|
5343
5785
|
const isPromptCopied = copiedPromptKey === promptCopyKey;
|
|
5786
|
+
const isLabelCopied = copiedPromptKey === labelCopyKey;
|
|
5344
5787
|
const isLinkCopied = copiedPromptKey === linkCopyKey;
|
|
5345
5788
|
const statusOptions = activeAdapterEntry.statusOptions;
|
|
5346
5789
|
const isActive = item.id === selectedItemId;
|
|
@@ -5362,7 +5805,20 @@ var QaItemCard = ({
|
|
|
5362
5805
|
/* @__PURE__ */ jsxs6("div", { className: "df-review-item-header", children: [
|
|
5363
5806
|
/* @__PURE__ */ jsxs6("div", { className: "df-review-item-main", children: [
|
|
5364
5807
|
/* @__PURE__ */ jsxs6("span", { className: "df-review-item-badges", children: [
|
|
5365
|
-
/* @__PURE__ */ jsx8(
|
|
5808
|
+
/* @__PURE__ */ jsx8(
|
|
5809
|
+
"button",
|
|
5810
|
+
{
|
|
5811
|
+
"aria-label": isLabelCopied ? "Copied QA number" : "Copy QA number",
|
|
5812
|
+
className: `df-review-item-id${isLabelCopied ? " is-copied" : ""}`,
|
|
5813
|
+
title: isLabelCopied ? "Copied QA number" : "Copy QA number",
|
|
5814
|
+
type: "button",
|
|
5815
|
+
onClick: (event) => {
|
|
5816
|
+
event.stopPropagation();
|
|
5817
|
+
onCopyItemLabel(numberedItem);
|
|
5818
|
+
},
|
|
5819
|
+
children: numberedItem.displayLabel
|
|
5820
|
+
}
|
|
5821
|
+
),
|
|
5366
5822
|
/* @__PURE__ */ jsxs6(
|
|
5367
5823
|
"span",
|
|
5368
5824
|
{
|
|
@@ -5503,7 +5959,36 @@ var QaPanelHeader = ({
|
|
|
5503
5959
|
}) => {
|
|
5504
5960
|
const statusFilterOptions = getStatusFilterOptions(statusOptions);
|
|
5505
5961
|
const hasActiveFilter = qaFilter !== "all" || qaStatusFilter !== "all";
|
|
5962
|
+
const displayLabel = getQaSourceDisplayLabel(label);
|
|
5506
5963
|
return /* @__PURE__ */ jsxs7("div", { className: "df-review-list-header", children: [
|
|
5964
|
+
/* @__PURE__ */ jsxs7("div", { className: "df-review-list-title", children: [
|
|
5965
|
+
/* @__PURE__ */ jsxs7("span", { className: "df-review-list-meta", children: [
|
|
5966
|
+
/* @__PURE__ */ jsx9("span", { children: isAllQaVisible ? `${displayLabel} QA \xB7 All pages` : `${displayLabel} QA` }),
|
|
5967
|
+
/* @__PURE__ */ jsx9(
|
|
5968
|
+
"strong",
|
|
5969
|
+
{
|
|
5970
|
+
title: `${activeRemainingItemCount} remaining of ${activeItemCount}`,
|
|
5971
|
+
children: !hasActiveFilter ? `${activeRemainingItemCount}/${activeItemCount}` : `${filteredItemCount}/${activeItemCount}`
|
|
5972
|
+
}
|
|
5973
|
+
)
|
|
5974
|
+
] }),
|
|
5975
|
+
/* @__PURE__ */ jsx9("div", { className: "df-review-filter-tabs", "aria-label": "QA filters", children: REVIEW_QA_FILTERS.map((filter) => {
|
|
5976
|
+
const count = qaFilterCounts.get(filter.key) ?? 0;
|
|
5977
|
+
const isActive = qaFilter === filter.key;
|
|
5978
|
+
return /* @__PURE__ */ jsx9(
|
|
5979
|
+
"button",
|
|
5980
|
+
{
|
|
5981
|
+
"aria-label": `${filter.label} QA (${count})`,
|
|
5982
|
+
"aria-pressed": isActive,
|
|
5983
|
+
className: `df-review-filter-tab${isActive ? " is-active" : ""}`,
|
|
5984
|
+
type: "button",
|
|
5985
|
+
onClick: () => onQaFilterChange(filter.key),
|
|
5986
|
+
children: /* @__PURE__ */ jsx9("span", { className: "df-review-filter-icon", children: filter.scope ? /* @__PURE__ */ jsx9(ReviewScopeIcon, { scope: filter.scope }) : /* @__PURE__ */ jsx9(ListFilter, { "aria-hidden": "true" }) })
|
|
5987
|
+
},
|
|
5988
|
+
filter.key
|
|
5989
|
+
);
|
|
5990
|
+
}) })
|
|
5991
|
+
] }),
|
|
5507
5992
|
/* @__PURE__ */ jsxs7("div", { className: "df-review-list-toolbar", children: [
|
|
5508
5993
|
/* @__PURE__ */ jsxs7("div", { className: "df-review-list-controls", children: [
|
|
5509
5994
|
showSourceSelect && /* @__PURE__ */ jsx9(
|
|
@@ -5542,37 +6027,12 @@ var QaPanelHeader = ({
|
|
|
5542
6027
|
]
|
|
5543
6028
|
}
|
|
5544
6029
|
)
|
|
5545
|
-
] }),
|
|
5546
|
-
/* @__PURE__ */ jsxs7("div", { className: "df-review-list-title", children: [
|
|
5547
|
-
/* @__PURE__ */ jsxs7("span", { className: "df-review-list-meta", children: [
|
|
5548
|
-
/* @__PURE__ */ jsx9("span", { children: isAllQaVisible ? `${label} QA \xB7 All pages` : `${label} QA` }),
|
|
5549
|
-
/* @__PURE__ */ jsx9(
|
|
5550
|
-
"strong",
|
|
5551
|
-
{
|
|
5552
|
-
title: `${activeRemainingItemCount} remaining of ${activeItemCount}`,
|
|
5553
|
-
children: !hasActiveFilter ? `${activeRemainingItemCount}/${activeItemCount}` : `${filteredItemCount}/${activeItemCount}`
|
|
5554
|
-
}
|
|
5555
|
-
)
|
|
5556
|
-
] }),
|
|
5557
|
-
/* @__PURE__ */ jsx9("div", { className: "df-review-filter-tabs", "aria-label": "QA filters", children: REVIEW_QA_FILTERS.map((filter) => {
|
|
5558
|
-
const count = qaFilterCounts.get(filter.key) ?? 0;
|
|
5559
|
-
const isActive = qaFilter === filter.key;
|
|
5560
|
-
return /* @__PURE__ */ jsx9(
|
|
5561
|
-
"button",
|
|
5562
|
-
{
|
|
5563
|
-
"aria-label": `${filter.label} QA (${count})`,
|
|
5564
|
-
"aria-pressed": isActive,
|
|
5565
|
-
className: `df-review-filter-tab${isActive ? " is-active" : ""}`,
|
|
5566
|
-
type: "button",
|
|
5567
|
-
onClick: () => onQaFilterChange(filter.key),
|
|
5568
|
-
children: /* @__PURE__ */ jsx9("span", { className: "df-review-filter-icon", children: filter.scope ? /* @__PURE__ */ jsx9(ReviewScopeIcon, { scope: filter.scope }) : /* @__PURE__ */ jsx9(ListFilter, { "aria-hidden": "true" }) })
|
|
5569
|
-
},
|
|
5570
|
-
filter.key
|
|
5571
|
-
);
|
|
5572
|
-
}) })
|
|
5573
6030
|
] })
|
|
5574
6031
|
] });
|
|
5575
6032
|
};
|
|
6033
|
+
function getQaSourceDisplayLabel(label) {
|
|
6034
|
+
return label === "local" ? "Local" : label;
|
|
6035
|
+
}
|
|
5576
6036
|
function getStatusFilterOptions(statusOptions) {
|
|
5577
6037
|
const seen = /* @__PURE__ */ new Set();
|
|
5578
6038
|
return statusOptions.flatMap((statusOption) => {
|
|
@@ -5612,6 +6072,7 @@ var ReviewQaPanel = ({
|
|
|
5612
6072
|
onChangeItemStatus,
|
|
5613
6073
|
onClearSelectedItem,
|
|
5614
6074
|
onChangeReviewSource,
|
|
6075
|
+
onCopyItemLabel,
|
|
5615
6076
|
onCopyItemLink,
|
|
5616
6077
|
onCopyItemPrompt,
|
|
5617
6078
|
onEditItem,
|
|
@@ -5624,78 +6085,104 @@ var ReviewQaPanel = ({
|
|
|
5624
6085
|
onToggleItemOverlayVisibility
|
|
5625
6086
|
}) => {
|
|
5626
6087
|
const emptyMessage = isAllQaVisible ? `No ${activeAdapterEntry.label} QA.` : isRemoteSource ? `No ${activeAdapterEntry.label} QA on this page.` : "No QA on this page.";
|
|
5627
|
-
return /* @__PURE__ */
|
|
5628
|
-
/* @__PURE__ */ jsx10(
|
|
5629
|
-
|
|
5630
|
-
|
|
5631
|
-
|
|
5632
|
-
|
|
5633
|
-
|
|
5634
|
-
|
|
5635
|
-
|
|
5636
|
-
|
|
5637
|
-
|
|
5638
|
-
|
|
5639
|
-
|
|
5640
|
-
|
|
5641
|
-
|
|
5642
|
-
|
|
5643
|
-
|
|
5644
|
-
|
|
5645
|
-
|
|
5646
|
-
|
|
5647
|
-
|
|
5648
|
-
|
|
5649
|
-
|
|
5650
|
-
|
|
5651
|
-
|
|
5652
|
-
|
|
5653
|
-
|
|
5654
|
-
|
|
5655
|
-
|
|
5656
|
-
|
|
5657
|
-
|
|
5658
|
-
|
|
5659
|
-
|
|
5660
|
-
|
|
5661
|
-
|
|
5662
|
-
|
|
5663
|
-
|
|
5664
|
-
|
|
5665
|
-
|
|
5666
|
-
|
|
5667
|
-
|
|
5668
|
-
|
|
5669
|
-
|
|
5670
|
-
|
|
5671
|
-
|
|
5672
|
-
|
|
5673
|
-
|
|
5674
|
-
|
|
5675
|
-
|
|
5676
|
-
|
|
5677
|
-
|
|
5678
|
-
|
|
5679
|
-
|
|
5680
|
-
|
|
5681
|
-
|
|
5682
|
-
|
|
5683
|
-
|
|
5684
|
-
|
|
5685
|
-
|
|
5686
|
-
|
|
5687
|
-
|
|
5688
|
-
|
|
5689
|
-
|
|
5690
|
-
|
|
5691
|
-
|
|
5692
|
-
|
|
6088
|
+
return /* @__PURE__ */ jsxs8("aside", { className: "df-review-qa-panel", "aria-hidden": !isListVisible, children: [
|
|
6089
|
+
/* @__PURE__ */ jsx10("div", { className: "df-review-panel-body", children: /* @__PURE__ */ jsxs8("section", { className: "df-review-item-list", children: [
|
|
6090
|
+
/* @__PURE__ */ jsx10(
|
|
6091
|
+
QaPanelHeader,
|
|
6092
|
+
{
|
|
6093
|
+
activeItemCount: activeItems.length,
|
|
6094
|
+
activeRemainingItemCount,
|
|
6095
|
+
filteredItemCount: filteredNumberedActiveItems.length,
|
|
6096
|
+
isAllQaVisible,
|
|
6097
|
+
label: activeAdapterEntry.label,
|
|
6098
|
+
qaFilter,
|
|
6099
|
+
qaFilterCounts,
|
|
6100
|
+
qaStatusFilter,
|
|
6101
|
+
qaStatusFilterCounts,
|
|
6102
|
+
showSourceSelect,
|
|
6103
|
+
source,
|
|
6104
|
+
sourceEntries,
|
|
6105
|
+
statusOptions: activeAdapterEntry.statusOptions,
|
|
6106
|
+
onChangeReviewSource,
|
|
6107
|
+
onQaFilterChange,
|
|
6108
|
+
onQaStatusFilterChange,
|
|
6109
|
+
onRefreshReviewData
|
|
6110
|
+
}
|
|
6111
|
+
),
|
|
6112
|
+
/* @__PURE__ */ jsxs8(
|
|
6113
|
+
"div",
|
|
6114
|
+
{
|
|
6115
|
+
className: "df-review-list-scroll",
|
|
6116
|
+
onClick: (event) => {
|
|
6117
|
+
if (event.target === event.currentTarget) {
|
|
6118
|
+
onClearSelectedItem();
|
|
6119
|
+
}
|
|
6120
|
+
},
|
|
6121
|
+
children: [
|
|
6122
|
+
activeItems.length === 0 && /* @__PURE__ */ jsx10("p", { className: "df-review-empty", children: emptyMessage }),
|
|
6123
|
+
activeItems.length > 0 && filteredNumberedActiveItems.length === 0 && /* @__PURE__ */ jsx10("p", { className: "df-review-empty", children: "No QA in this filter." }),
|
|
6124
|
+
filteredNumberedActiveItems.map((numberedItem) => {
|
|
6125
|
+
const { item } = numberedItem;
|
|
6126
|
+
return /* @__PURE__ */ jsx10(
|
|
6127
|
+
QaItemCard,
|
|
6128
|
+
{
|
|
6129
|
+
activeAdapterEntry,
|
|
6130
|
+
currentPresetScope,
|
|
6131
|
+
getItemPresetScope,
|
|
6132
|
+
isOverlayVisible: !hiddenOverlayItemIds.has(item.id),
|
|
6133
|
+
isRemoteSource,
|
|
6134
|
+
numberedItem,
|
|
6135
|
+
remoteAdapterEntry,
|
|
6136
|
+
copiedPromptKey,
|
|
6137
|
+
selectedItemId,
|
|
6138
|
+
onChangeItemStatus,
|
|
6139
|
+
onClearSelectedItem,
|
|
6140
|
+
onCopyItemLabel,
|
|
6141
|
+
onCopyItemLink,
|
|
6142
|
+
onCopyItemPrompt,
|
|
6143
|
+
onEditItem,
|
|
6144
|
+
onRemoveItem,
|
|
6145
|
+
onRestoreReviewItem,
|
|
6146
|
+
onSubmitItem,
|
|
6147
|
+
onToggleItemOverlayVisibility
|
|
6148
|
+
},
|
|
6149
|
+
item.id
|
|
6150
|
+
);
|
|
6151
|
+
})
|
|
6152
|
+
]
|
|
6153
|
+
}
|
|
6154
|
+
)
|
|
6155
|
+
] }) }),
|
|
6156
|
+
/* @__PURE__ */ jsx10("div", { className: "df-review-qa-draft-host" })
|
|
6157
|
+
] });
|
|
5693
6158
|
};
|
|
5694
6159
|
|
|
5695
6160
|
// src/react-shell/presence/overlay.tsx
|
|
5696
6161
|
import { useState as useState3 } from "react";
|
|
5697
6162
|
import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
5698
6163
|
var getPresenceName = (user) => user.displayName || user.userId;
|
|
6164
|
+
var PresenceUserIcon = () => /* @__PURE__ */ jsxs9("svg", { "aria-hidden": "true", viewBox: "0 0 30 30", children: [
|
|
6165
|
+
/* @__PURE__ */ jsx11(
|
|
6166
|
+
"circle",
|
|
6167
|
+
{
|
|
6168
|
+
cx: "15",
|
|
6169
|
+
cy: "15",
|
|
6170
|
+
r: "12.5",
|
|
6171
|
+
fill: "none",
|
|
6172
|
+
stroke: "currentColor",
|
|
6173
|
+
strokeWidth: "2.6"
|
|
6174
|
+
}
|
|
6175
|
+
),
|
|
6176
|
+
/* @__PURE__ */ jsx11("circle", { cx: "15", cy: "10.5", r: "3.4", fill: "currentColor", stroke: "none" }),
|
|
6177
|
+
/* @__PURE__ */ jsx11(
|
|
6178
|
+
"path",
|
|
6179
|
+
{
|
|
6180
|
+
d: "M7.8 22.1c.9-4.1 3.4-6.1 7.2-6.1s6.3 2 7.2 6.1c-1.7 1.5-4.1 2.4-7.2 2.4s-5.5-.9-7.2-2.4z",
|
|
6181
|
+
fill: "currentColor",
|
|
6182
|
+
stroke: "none"
|
|
6183
|
+
}
|
|
6184
|
+
)
|
|
6185
|
+
] });
|
|
5699
6186
|
var PresenceOverlay = ({
|
|
5700
6187
|
presenceSessionId,
|
|
5701
6188
|
users
|
|
@@ -5717,7 +6204,7 @@ var PresenceOverlay = ({
|
|
|
5717
6204
|
type: "button",
|
|
5718
6205
|
onClick: () => setIsExpanded((current) => !current),
|
|
5719
6206
|
children: [
|
|
5720
|
-
/* @__PURE__ */ jsx11(
|
|
6207
|
+
/* @__PURE__ */ jsx11(PresenceUserIcon, {}),
|
|
5721
6208
|
/* @__PURE__ */ jsx11("span", { className: "df-review-presence-badge", children: users.length })
|
|
5722
6209
|
]
|
|
5723
6210
|
}
|
|
@@ -5731,7 +6218,7 @@ var PresenceOverlay = ({
|
|
|
5731
6218
|
"--df-review-presence-color": user.color
|
|
5732
6219
|
},
|
|
5733
6220
|
title: getPresenceName(user),
|
|
5734
|
-
children: getPresenceName(user)
|
|
6221
|
+
children: /* @__PURE__ */ jsx11("span", { children: getPresenceName(user) })
|
|
5735
6222
|
},
|
|
5736
6223
|
user.sessionId
|
|
5737
6224
|
)) })
|
|
@@ -5799,7 +6286,7 @@ var getSectionOutline = (root, options) => {
|
|
|
5799
6286
|
if (source?.file) {
|
|
5800
6287
|
addSourceFileCompareKey(seen, getOutlineSourceKey(source));
|
|
5801
6288
|
}
|
|
5802
|
-
return {
|
|
6289
|
+
return createSectionOutlineEntry({
|
|
5803
6290
|
id: `${label}-${index}`,
|
|
5804
6291
|
label,
|
|
5805
6292
|
depth: 1,
|
|
@@ -5814,7 +6301,7 @@ var getSectionOutline = (root, options) => {
|
|
|
5814
6301
|
seen,
|
|
5815
6302
|
options
|
|
5816
6303
|
)
|
|
5817
|
-
};
|
|
6304
|
+
});
|
|
5818
6305
|
});
|
|
5819
6306
|
};
|
|
5820
6307
|
function getSectionOutlineRoots(root, options) {
|
|
@@ -5844,7 +6331,7 @@ function getSectionOutlineChildren(parent, depth, maxDepth, seen, options) {
|
|
|
5844
6331
|
if (source?.file && isNewSource) {
|
|
5845
6332
|
const childSeen = new Set(seen);
|
|
5846
6333
|
addSourceFileCompareKey(childSeen, sourceKey);
|
|
5847
|
-
entries.push({
|
|
6334
|
+
entries.push(createSectionOutlineEntry({
|
|
5848
6335
|
id: `${sourceKey}-${getElementOutlinePath(child)}-${entries.length}`,
|
|
5849
6336
|
label,
|
|
5850
6337
|
depth,
|
|
@@ -5859,7 +6346,7 @@ function getSectionOutlineChildren(parent, depth, maxDepth, seen, options) {
|
|
|
5859
6346
|
childSeen,
|
|
5860
6347
|
options
|
|
5861
6348
|
)
|
|
5862
|
-
});
|
|
6349
|
+
}));
|
|
5863
6350
|
continue;
|
|
5864
6351
|
}
|
|
5865
6352
|
entries.push(
|
|
@@ -5877,6 +6364,114 @@ function getElementOutlinePath(element) {
|
|
|
5877
6364
|
}
|
|
5878
6365
|
return indices.join("-");
|
|
5879
6366
|
}
|
|
6367
|
+
function createSectionOutlineEntry(entry) {
|
|
6368
|
+
return {
|
|
6369
|
+
...entry,
|
|
6370
|
+
metadata: getSectionOutlineMetadata(entry.element, entry.label, entry.source)
|
|
6371
|
+
};
|
|
6372
|
+
}
|
|
6373
|
+
var truncateOutlineValue = (value, maxLength) => value.length > maxLength ? `${value.slice(0, maxLength - 1)}\u2026` : value;
|
|
6374
|
+
var normalizeOutlineValue = (value) => value?.replace(/\s+/g, " ").trim() ?? "";
|
|
6375
|
+
function getSectionOutlineMetadata(element, label, source) {
|
|
6376
|
+
const textElement = getPlacerTextElement(element, label, source?.file);
|
|
6377
|
+
return {
|
|
6378
|
+
rect: getSectionOutlineRect(element),
|
|
6379
|
+
textValue: textElement ? truncateOutlineValue(
|
|
6380
|
+
normalizeOutlineValue(textElement.textContent),
|
|
6381
|
+
180
|
|
6382
|
+
) : void 0,
|
|
6383
|
+
fontLabel: textElement ? getFontLabel(textElement) : void 0,
|
|
6384
|
+
mediaItems: getPlacerMediaItems(element, label, source?.file),
|
|
6385
|
+
classNames: getElementClassNames(element)
|
|
6386
|
+
};
|
|
6387
|
+
}
|
|
6388
|
+
function getSectionOutlineRect(element) {
|
|
6389
|
+
const rect = element.getBoundingClientRect();
|
|
6390
|
+
return {
|
|
6391
|
+
top: Math.round(rect.top),
|
|
6392
|
+
left: Math.round(rect.left),
|
|
6393
|
+
width: Math.round(rect.width),
|
|
6394
|
+
height: Math.round(rect.height)
|
|
6395
|
+
};
|
|
6396
|
+
}
|
|
6397
|
+
function getElementClassNames(element) {
|
|
6398
|
+
const classNames = Array.from(element.classList).filter(Boolean);
|
|
6399
|
+
return classNames.length > 0 ? classNames : void 0;
|
|
6400
|
+
}
|
|
6401
|
+
function getPlacerTextElement(element, label, file) {
|
|
6402
|
+
if (!isPlacerTextOutlineNode(label, file) && !element.hasAttribute("data-font")) {
|
|
6403
|
+
return null;
|
|
6404
|
+
}
|
|
6405
|
+
return element.hasAttribute("data-font") ? element : element.querySelector("[data-font]");
|
|
6406
|
+
}
|
|
6407
|
+
function isPlacerTextOutlineNode(label, file) {
|
|
6408
|
+
return `${label} ${file ?? ""}`.toLowerCase().includes("placertext");
|
|
6409
|
+
}
|
|
6410
|
+
function getFontLabel(element) {
|
|
6411
|
+
const dataFont = element.getAttribute("data-font");
|
|
6412
|
+
if (dataFont) {
|
|
6413
|
+
return dataFont.replace(/\bs\b/g, "sb").replace(/\bsemibold\b/g, "sb").replace(/\bregular\b/g, "r");
|
|
6414
|
+
}
|
|
6415
|
+
const style = window.getComputedStyle(element);
|
|
6416
|
+
return `${Math.round(parseFloat(style.fontSize))}px ${style.fontWeight}`;
|
|
6417
|
+
}
|
|
6418
|
+
function getPlacerMediaItems(element, label, file) {
|
|
6419
|
+
if (!isPlacerMediaOutlineNode(label, file)) return void 0;
|
|
6420
|
+
const mediaItems = [];
|
|
6421
|
+
const seen = /* @__PURE__ */ new Set();
|
|
6422
|
+
const addMediaItem = (target, type, url) => {
|
|
6423
|
+
const normalizedUrl = normalizeOutlineValue(url);
|
|
6424
|
+
if (!normalizedUrl) return;
|
|
6425
|
+
const variant = getPlacerMediaVariant(target, element);
|
|
6426
|
+
const key = `${variant}:${type}:${normalizedUrl}`;
|
|
6427
|
+
if (seen.has(key)) return;
|
|
6428
|
+
seen.add(key);
|
|
6429
|
+
mediaItems.push({ type, url: normalizedUrl, variant });
|
|
6430
|
+
};
|
|
6431
|
+
if (element instanceof HTMLVideoElement) {
|
|
6432
|
+
addMediaItem(element, "video", getVideoElementUrl(element));
|
|
6433
|
+
addMediaItem(element, "image", element.getAttribute("poster"));
|
|
6434
|
+
}
|
|
6435
|
+
if (element instanceof HTMLImageElement) {
|
|
6436
|
+
addMediaItem(element, "image", getMediaElementUrl(element));
|
|
6437
|
+
}
|
|
6438
|
+
if (element instanceof HTMLSourceElement) {
|
|
6439
|
+
addMediaItem(element, "video", getSourceElementUrl(element));
|
|
6440
|
+
}
|
|
6441
|
+
Array.from(element.querySelectorAll("video")).forEach((video) => {
|
|
6442
|
+
addMediaItem(video, "video", getVideoElementUrl(video));
|
|
6443
|
+
addMediaItem(video, "image", video.getAttribute("poster"));
|
|
6444
|
+
});
|
|
6445
|
+
Array.from(element.querySelectorAll("source")).forEach((source) => {
|
|
6446
|
+
addMediaItem(source, "video", getSourceElementUrl(source));
|
|
6447
|
+
});
|
|
6448
|
+
Array.from(element.querySelectorAll("img")).forEach((img) => {
|
|
6449
|
+
addMediaItem(img, "image", getMediaElementUrl(img));
|
|
6450
|
+
});
|
|
6451
|
+
return mediaItems.length > 0 ? mediaItems : void 0;
|
|
6452
|
+
}
|
|
6453
|
+
function isPlacerMediaOutlineNode(label, file) {
|
|
6454
|
+
return `${label} ${file ?? ""}`.toLowerCase().includes("placermedia");
|
|
6455
|
+
}
|
|
6456
|
+
function getPlacerMediaVariant(target, root) {
|
|
6457
|
+
let current = target;
|
|
6458
|
+
while (current) {
|
|
6459
|
+
if (current.classList.contains("d-block-pc")) return "desktop";
|
|
6460
|
+
if (current.classList.contains("d-block-m")) return "mobile";
|
|
6461
|
+
if (current === root) break;
|
|
6462
|
+
current = current.parentElement;
|
|
6463
|
+
}
|
|
6464
|
+
return "media";
|
|
6465
|
+
}
|
|
6466
|
+
function getVideoElementUrl(video) {
|
|
6467
|
+
return video.currentSrc || video.getAttribute("src") || video.querySelector("source")?.getAttribute("src") || video.getAttribute("poster") || video.src;
|
|
6468
|
+
}
|
|
6469
|
+
function getSourceElementUrl(source) {
|
|
6470
|
+
return source.getAttribute("src") || source.src;
|
|
6471
|
+
}
|
|
6472
|
+
function getMediaElementUrl(img) {
|
|
6473
|
+
return img.currentSrc || img.getAttribute("src") || img.src;
|
|
6474
|
+
}
|
|
5880
6475
|
function getOutlineSourceKey(source) {
|
|
5881
6476
|
return getSourceFileCompareKey(source.file);
|
|
5882
6477
|
}
|
|
@@ -6494,7 +7089,7 @@ var getStoredOverlayState = (targetDocument, overlay) => {
|
|
|
6494
7089
|
};
|
|
6495
7090
|
var getTargetOverlayState = (targetDocument) => ({
|
|
6496
7091
|
grid: Boolean(
|
|
6497
|
-
targetDocument?.body
|
|
7092
|
+
targetDocument?.body?.classList.contains("is-help") || targetDocument?.querySelector(".helper.onShow") || getStoredOverlayState(targetDocument, "grid")
|
|
6498
7093
|
),
|
|
6499
7094
|
figma: Boolean(
|
|
6500
7095
|
targetDocument?.querySelector(
|
|
@@ -6534,9 +7129,7 @@ var ReviewTopbar = ({
|
|
|
6534
7129
|
onCopyCurrentUrl,
|
|
6535
7130
|
onSizeChange,
|
|
6536
7131
|
onToggleRuler,
|
|
6537
|
-
onToggleTargetOverlay
|
|
6538
|
-
onOpenInitialPrompt,
|
|
6539
|
-
onOpenSettings
|
|
7132
|
+
onToggleTargetOverlay
|
|
6540
7133
|
}) => {
|
|
6541
7134
|
const selectedPresetValue = getPresetSelectValue(size);
|
|
6542
7135
|
const handlePresetSelectChange = (event) => {
|
|
@@ -6573,8 +7166,19 @@ var ReviewTopbar = ({
|
|
|
6573
7166
|
onChange: (event) => onDraftTargetChange(event.target.value)
|
|
6574
7167
|
}
|
|
6575
7168
|
),
|
|
6576
|
-
/* @__PURE__ */
|
|
6577
|
-
|
|
7169
|
+
/* @__PURE__ */ jsxs14("div", { className: "df-review-address-actions", children: [
|
|
7170
|
+
/* @__PURE__ */ jsx16(
|
|
7171
|
+
"button",
|
|
7172
|
+
{
|
|
7173
|
+
"aria-label": "Refresh target",
|
|
7174
|
+
className: "df-review-address-refresh",
|
|
7175
|
+
title: "Refresh target",
|
|
7176
|
+
type: "submit",
|
|
7177
|
+
children: /* @__PURE__ */ jsx16(RefreshCw, { "aria-hidden": "true" })
|
|
7178
|
+
}
|
|
7179
|
+
),
|
|
7180
|
+
/* @__PURE__ */ jsx16("button", { type: "button", onClick: onCopyCurrentUrl, children: copyLabel })
|
|
7181
|
+
] })
|
|
6578
7182
|
]
|
|
6579
7183
|
}
|
|
6580
7184
|
),
|
|
@@ -6654,86 +7258,7 @@ var ReviewTopbar = ({
|
|
|
6654
7258
|
onClick: () => onToggleTargetOverlay("figma"),
|
|
6655
7259
|
children: /* @__PURE__ */ jsx16(Image, { "aria-hidden": "true" })
|
|
6656
7260
|
}
|
|
6657
|
-
),
|
|
6658
|
-
/* @__PURE__ */ jsx16("span", { className: "df-review-tool-divider", "aria-hidden": "true", children: "|" }),
|
|
6659
|
-
/* @__PURE__ */ jsx16(
|
|
6660
|
-
"button",
|
|
6661
|
-
{
|
|
6662
|
-
"aria-label": "Open initial prompt",
|
|
6663
|
-
className: "df-review-overlay-button is-prompt",
|
|
6664
|
-
type: "button",
|
|
6665
|
-
onClick: onOpenInitialPrompt,
|
|
6666
|
-
children: /* @__PURE__ */ jsx16(CircleQuestionMark, { "aria-hidden": "true" })
|
|
6667
|
-
}
|
|
6668
|
-
),
|
|
6669
|
-
/* @__PURE__ */ jsx16(
|
|
6670
|
-
"button",
|
|
6671
|
-
{
|
|
6672
|
-
"aria-label": "Open settings",
|
|
6673
|
-
className: "df-review-overlay-button is-settings",
|
|
6674
|
-
type: "button",
|
|
6675
|
-
onClick: onOpenSettings,
|
|
6676
|
-
children: /* @__PURE__ */ jsx16(Settings, { "aria-hidden": "true" })
|
|
6677
|
-
}
|
|
6678
7261
|
)
|
|
6679
|
-
] }),
|
|
6680
|
-
/* @__PURE__ */ jsxs14("details", { className: "df-review-overlays-menu", children: [
|
|
6681
|
-
/* @__PURE__ */ jsx16("summary", { "aria-label": "Open target tools", title: "Tools", children: /* @__PURE__ */ jsx16(Ellipsis, { "aria-hidden": "true" }) }),
|
|
6682
|
-
/* @__PURE__ */ jsxs14("div", { className: "df-review-overlays-popover", "aria-label": "Target tools", children: [
|
|
6683
|
-
isRulerAvailable && /* @__PURE__ */ jsx16(
|
|
6684
|
-
"button",
|
|
6685
|
-
{
|
|
6686
|
-
"aria-label": "Toggle ruler",
|
|
6687
|
-
className: `df-review-overlay-button is-ruler${isRulerVisible ? " is-active" : ""}`,
|
|
6688
|
-
type: "button",
|
|
6689
|
-
onClick: onToggleRuler,
|
|
6690
|
-
children: /* @__PURE__ */ jsx16(Ruler, { "aria-hidden": "true" })
|
|
6691
|
-
}
|
|
6692
|
-
),
|
|
6693
|
-
/* @__PURE__ */ jsx16(
|
|
6694
|
-
"button",
|
|
6695
|
-
{
|
|
6696
|
-
"aria-label": "Toggle grid overlay",
|
|
6697
|
-
className: `df-review-overlay-button is-grid${targetOverlayState.grid ? " is-active" : ""}`,
|
|
6698
|
-
type: "button",
|
|
6699
|
-
onClick: () => onToggleTargetOverlay("grid"),
|
|
6700
|
-
children: /* @__PURE__ */ jsx16(LayoutGrid, { "aria-hidden": "true" })
|
|
6701
|
-
}
|
|
6702
|
-
),
|
|
6703
|
-
/* @__PURE__ */ jsx16(
|
|
6704
|
-
"button",
|
|
6705
|
-
{
|
|
6706
|
-
"aria-disabled": !isFigmaOverlayAvailable,
|
|
6707
|
-
"aria-label": isFigmaOverlayAvailable ? "Toggle Figma overlay" : FIGMA_OVERLAY_UNAVAILABLE_MESSAGE,
|
|
6708
|
-
className: `df-review-overlay-button is-figma${targetOverlayState.figma ? " is-active" : ""}${isFigmaOverlayAvailable ? "" : " is-disabled"}`,
|
|
6709
|
-
disabled: !isFigmaOverlayAvailable,
|
|
6710
|
-
type: "button",
|
|
6711
|
-
onClick: () => onToggleTargetOverlay("figma"),
|
|
6712
|
-
children: /* @__PURE__ */ jsx16(Image, { "aria-hidden": "true" })
|
|
6713
|
-
}
|
|
6714
|
-
),
|
|
6715
|
-
/* @__PURE__ */ jsx16("span", { className: "df-review-tool-divider", "aria-hidden": "true", children: "|" }),
|
|
6716
|
-
/* @__PURE__ */ jsx16(
|
|
6717
|
-
"button",
|
|
6718
|
-
{
|
|
6719
|
-
"aria-label": "Open initial prompt",
|
|
6720
|
-
className: "df-review-overlay-button is-prompt",
|
|
6721
|
-
type: "button",
|
|
6722
|
-
onClick: onOpenInitialPrompt,
|
|
6723
|
-
children: /* @__PURE__ */ jsx16(CircleQuestionMark, { "aria-hidden": "true" })
|
|
6724
|
-
}
|
|
6725
|
-
),
|
|
6726
|
-
/* @__PURE__ */ jsx16(
|
|
6727
|
-
"button",
|
|
6728
|
-
{
|
|
6729
|
-
"aria-label": "Open settings",
|
|
6730
|
-
className: "df-review-overlay-button is-settings",
|
|
6731
|
-
type: "button",
|
|
6732
|
-
onClick: onOpenSettings,
|
|
6733
|
-
children: /* @__PURE__ */ jsx16(Settings, { "aria-hidden": "true" })
|
|
6734
|
-
}
|
|
6735
|
-
)
|
|
6736
|
-
] })
|
|
6737
7262
|
] })
|
|
6738
7263
|
] })
|
|
6739
7264
|
] });
|
|
@@ -7037,7 +7562,8 @@ var getReviewKitTarget = ({
|
|
|
7037
7562
|
width: Math.max(0, right - left),
|
|
7038
7563
|
height: Math.max(0, bottom - top)
|
|
7039
7564
|
};
|
|
7040
|
-
}
|
|
7565
|
+
},
|
|
7566
|
+
getComposerHost: () => document.querySelector(".df-review-qa-draft-host")
|
|
7041
7567
|
};
|
|
7042
7568
|
};
|
|
7043
7569
|
|
|
@@ -8194,7 +8720,7 @@ var useReviewSettings = ({
|
|
|
8194
8720
|
const nextToken = token.trim();
|
|
8195
8721
|
const nextUserId = userId.trim();
|
|
8196
8722
|
const nextTheme = normalizeReviewTheme(theme);
|
|
8197
|
-
const shouldReload = nextToken !== getStoredFigmaToken()
|
|
8723
|
+
const shouldReload = nextToken !== getStoredFigmaToken();
|
|
8198
8724
|
writeStoredFigmaToken(nextToken);
|
|
8199
8725
|
writeStoredReviewUserId(nextUserId);
|
|
8200
8726
|
writeStoredReviewTheme(nextTheme);
|
|
@@ -8285,7 +8811,7 @@ var useReviewShellData = ({
|
|
|
8285
8811
|
() => /* @__PURE__ */ new Set()
|
|
8286
8812
|
);
|
|
8287
8813
|
const [qaFilter, setQaFilter] = useState8("all");
|
|
8288
|
-
const [qaStatusFilter,
|
|
8814
|
+
const [qaStatusFilter, setQaStatusFilterState] = useState8(getStoredReviewQaStatusFilter);
|
|
8289
8815
|
const [sitemapItems, setSitemapItems] = useState8(() => ({
|
|
8290
8816
|
local: [],
|
|
8291
8817
|
remote: []
|
|
@@ -8404,6 +8930,10 @@ var useReviewShellData = ({
|
|
|
8404
8930
|
return counts;
|
|
8405
8931
|
}, [activeItems, getItemPresetScope]);
|
|
8406
8932
|
const currentPresetScope = getViewportPresetKind(size);
|
|
8933
|
+
const setQaStatusFilter = useCallback10((filter) => {
|
|
8934
|
+
setQaStatusFilterState(filter);
|
|
8935
|
+
writeStoredReviewQaStatusFilter(filter);
|
|
8936
|
+
}, []);
|
|
8407
8937
|
const pageQaCounts = useMemo5(() => {
|
|
8408
8938
|
const counts = /* @__PURE__ */ new Map();
|
|
8409
8939
|
const addItems = (sourceKey, sourceItems) => {
|
|
@@ -8778,7 +9308,9 @@ var useReviewShellState = ({
|
|
|
8778
9308
|
figma: false
|
|
8779
9309
|
});
|
|
8780
9310
|
const [selectedItemId, setSelectedItemId] = useState9(getInitialItemId());
|
|
8781
|
-
const [isListVisible, setIsListVisible] = useState9(
|
|
9311
|
+
const [isListVisible, setIsListVisible] = useState9(
|
|
9312
|
+
getStoredReviewSidePanelVisible
|
|
9313
|
+
);
|
|
8782
9314
|
const [isSitemapOpen, setIsSitemapOpen] = useState9(false);
|
|
8783
9315
|
const [isInitialPromptOpen, setIsInitialPromptOpen] = useState9(false);
|
|
8784
9316
|
const [copyLabel, setCopyLabel] = useState9("Copy URL");
|
|
@@ -8842,34 +9374,40 @@ var useReviewShellState = ({
|
|
|
8842
9374
|
};
|
|
8843
9375
|
|
|
8844
9376
|
// src/react-shell/review/shell.actions.ts
|
|
9377
|
+
var writeClipboardTextFallback = (value) => {
|
|
9378
|
+
const selection = document.getSelection();
|
|
9379
|
+
const activeElement = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
9380
|
+
const ranges = selection ? Array.from(
|
|
9381
|
+
{ length: selection.rangeCount },
|
|
9382
|
+
(_, index) => selection.getRangeAt(index)
|
|
9383
|
+
) : [];
|
|
9384
|
+
const textarea = document.createElement("textarea");
|
|
9385
|
+
textarea.value = value;
|
|
9386
|
+
textarea.setAttribute("readonly", "");
|
|
9387
|
+
textarea.style.position = "fixed";
|
|
9388
|
+
textarea.style.left = "-9999px";
|
|
9389
|
+
textarea.style.top = "0";
|
|
9390
|
+
document.body.appendChild(textarea);
|
|
9391
|
+
textarea.focus();
|
|
9392
|
+
textarea.select();
|
|
9393
|
+
const isCopied = document.execCommand("copy");
|
|
9394
|
+
textarea.remove();
|
|
9395
|
+
selection?.removeAllRanges();
|
|
9396
|
+
ranges.forEach((range) => selection?.addRange(range));
|
|
9397
|
+
activeElement?.focus();
|
|
9398
|
+
if (!isCopied) {
|
|
9399
|
+
throw new Error("Failed to copy to clipboard");
|
|
9400
|
+
}
|
|
9401
|
+
};
|
|
8845
9402
|
var writeClipboardText = async (value) => {
|
|
8846
9403
|
try {
|
|
8847
|
-
|
|
9404
|
+
writeClipboardTextFallback(value);
|
|
8848
9405
|
return;
|
|
8849
|
-
} catch {
|
|
8850
|
-
|
|
8851
|
-
|
|
8852
|
-
const ranges = selection ? Array.from(
|
|
8853
|
-
{ length: selection.rangeCount },
|
|
8854
|
-
(_, index) => selection.getRangeAt(index)
|
|
8855
|
-
) : [];
|
|
8856
|
-
const textarea = document.createElement("textarea");
|
|
8857
|
-
textarea.value = value;
|
|
8858
|
-
textarea.setAttribute("readonly", "");
|
|
8859
|
-
textarea.style.position = "fixed";
|
|
8860
|
-
textarea.style.left = "-9999px";
|
|
8861
|
-
textarea.style.top = "0";
|
|
8862
|
-
document.body.appendChild(textarea);
|
|
8863
|
-
textarea.focus();
|
|
8864
|
-
textarea.select();
|
|
8865
|
-
const isCopied = document.execCommand("copy");
|
|
8866
|
-
textarea.remove();
|
|
8867
|
-
selection?.removeAllRanges();
|
|
8868
|
-
ranges.forEach((range) => selection?.addRange(range));
|
|
8869
|
-
activeElement?.focus();
|
|
8870
|
-
if (!isCopied) {
|
|
8871
|
-
throw new Error("Failed to copy to clipboard");
|
|
9406
|
+
} catch (error) {
|
|
9407
|
+
if (!navigator.clipboard?.writeText) {
|
|
9408
|
+
throw error;
|
|
8872
9409
|
}
|
|
9410
|
+
await navigator.clipboard.writeText(value);
|
|
8873
9411
|
}
|
|
8874
9412
|
};
|
|
8875
9413
|
var listReviewItems = async ({
|
|
@@ -9157,12 +9695,10 @@ var getSectionOutlineEntryCount = (entries) => entries.reduce(
|
|
|
9157
9695
|
(count, entry) => count + 1 + getSectionOutlineEntryCount(entry.children),
|
|
9158
9696
|
0
|
|
9159
9697
|
);
|
|
9160
|
-
var DEFAULT_COLLAPSED_ROOT_LABELS = /* @__PURE__ */ new Set(["FrameHeader", "FrameFooter"]);
|
|
9161
9698
|
var getDefaultCollapsedSectionOutlineIds = (entries) => {
|
|
9162
9699
|
const collapsedIds = /* @__PURE__ */ new Set();
|
|
9163
9700
|
const visit = (entry) => {
|
|
9164
|
-
|
|
9165
|
-
if ((entry.depth >= 2 || shouldCollapseRoot) && entry.children.length > 0) {
|
|
9701
|
+
if (entry.children.length > 0) {
|
|
9166
9702
|
collapsedIds.add(entry.id);
|
|
9167
9703
|
}
|
|
9168
9704
|
entry.children.forEach(visit);
|
|
@@ -9170,13 +9706,27 @@ var getDefaultCollapsedSectionOutlineIds = (entries) => {
|
|
|
9170
9706
|
entries.forEach(visit);
|
|
9171
9707
|
return collapsedIds;
|
|
9172
9708
|
};
|
|
9709
|
+
var getLiveSectionOutlineRect = (entry) => {
|
|
9710
|
+
if (!entry.element.isConnected) return entry.metadata.rect;
|
|
9711
|
+
const rect = entry.element.getBoundingClientRect();
|
|
9712
|
+
return {
|
|
9713
|
+
top: Math.round(rect.top),
|
|
9714
|
+
left: Math.round(rect.left),
|
|
9715
|
+
width: Math.round(rect.width),
|
|
9716
|
+
height: Math.round(rect.height)
|
|
9717
|
+
};
|
|
9718
|
+
};
|
|
9173
9719
|
var matchesSectionOutlineFilter = (entry, terms) => {
|
|
9174
9720
|
if (terms.length === 0) return true;
|
|
9175
9721
|
const text = [
|
|
9176
9722
|
entry.label,
|
|
9177
9723
|
entry.filePath,
|
|
9178
9724
|
entry.source?.file,
|
|
9179
|
-
entry.data?.file
|
|
9725
|
+
entry.data?.file,
|
|
9726
|
+
entry.metadata.textValue,
|
|
9727
|
+
entry.metadata.fontLabel,
|
|
9728
|
+
entry.metadata.mediaItems?.map((mediaItem) => `${mediaItem.variant} ${mediaItem.type} ${mediaItem.url}`).join(" "),
|
|
9729
|
+
entry.metadata.classNames?.join(" ")
|
|
9180
9730
|
].filter(Boolean).join(" ").toLowerCase();
|
|
9181
9731
|
return terms.every((term) => text.includes(term));
|
|
9182
9732
|
};
|
|
@@ -9261,10 +9811,16 @@ var ReviewShell = ({
|
|
|
9261
9811
|
});
|
|
9262
9812
|
const sourceShortcutCleanupRef = useRef5(null);
|
|
9263
9813
|
const sourceInspectorInteractionRef = useRef5(false);
|
|
9264
|
-
const [sidePanel, setSidePanel] = useState10("qa");
|
|
9265
9814
|
const [sourceInspectorState, setSourceInspectorState] = useState10(null);
|
|
9266
9815
|
const [sectionOutline, setSectionOutline] = useState10(null);
|
|
9267
|
-
const [sectionOutlineFilter, setSectionOutlineFilter] = useState10(
|
|
9816
|
+
const [sectionOutlineFilter, setSectionOutlineFilter] = useState10(
|
|
9817
|
+
() => getStoredSourceTreeFilter()
|
|
9818
|
+
);
|
|
9819
|
+
const [sectionOutlineMetaVisibility, setSectionOutlineMetaVisibility] = useState10(() => getStoredSourceTreeMetaVisibility());
|
|
9820
|
+
const isSectionOutlineBoxMetaVisible = sectionOutlineMetaVisibility.box;
|
|
9821
|
+
const isSectionOutlineFontMetaVisible = sectionOutlineMetaVisibility.font;
|
|
9822
|
+
const isSectionOutlineMediaMetaVisible = sectionOutlineMetaVisibility.media;
|
|
9823
|
+
const isSectionOutlineClassMetaVisible = sectionOutlineMetaVisibility.className;
|
|
9268
9824
|
const [collapsedSectionOutlineIds, setCollapsedSectionOutlineIds] = useState10(() => /* @__PURE__ */ new Set());
|
|
9269
9825
|
const [isAllQaVisible, setIsAllQaVisible] = useState10(false);
|
|
9270
9826
|
const sourceOpenOptions = useMemo7(
|
|
@@ -9290,9 +9846,36 @@ var ReviewShell = ({
|
|
|
9290
9846
|
[sourceInspector]
|
|
9291
9847
|
);
|
|
9292
9848
|
const isSourceInspectorEnabled = sourceInspector?.enabled !== false;
|
|
9849
|
+
const [sidePanel, setSidePanel] = useState10(
|
|
9850
|
+
() => isSourceInspectorEnabled ? getStoredReviewSidePanel() : "qa"
|
|
9851
|
+
);
|
|
9293
9852
|
const isSourceTreeHoverOutlineEnabled = sourceInspector?.hoverOutline !== false;
|
|
9294
9853
|
const isQaPanelVisible = isListVisible && sidePanel === "qa";
|
|
9295
9854
|
const isSourceTreePanelVisible = isSourceInspectorEnabled && isListVisible && sidePanel === "source";
|
|
9855
|
+
useEffect10(() => {
|
|
9856
|
+
if (isSourceInspectorEnabled || sidePanel !== "source") return;
|
|
9857
|
+
setSidePanel("qa");
|
|
9858
|
+
}, [isSourceInspectorEnabled, sidePanel]);
|
|
9859
|
+
useEffect10(() => {
|
|
9860
|
+
writeStoredReviewSidePanel(sidePanel);
|
|
9861
|
+
}, [sidePanel]);
|
|
9862
|
+
useEffect10(() => {
|
|
9863
|
+
writeStoredReviewSidePanelVisible(isListVisible);
|
|
9864
|
+
}, [isListVisible]);
|
|
9865
|
+
const updateSectionOutlineFilter = useCallback11((nextFilter) => {
|
|
9866
|
+
setSectionOutlineFilter(nextFilter);
|
|
9867
|
+
writeStoredSourceTreeFilter(nextFilter);
|
|
9868
|
+
}, []);
|
|
9869
|
+
const updateSectionOutlineMetaVisibility = useCallback11(
|
|
9870
|
+
(key) => {
|
|
9871
|
+
setSectionOutlineMetaVisibility((current) => {
|
|
9872
|
+
const next = { ...current, [key]: !current[key] };
|
|
9873
|
+
writeStoredSourceTreeMetaVisibility(next);
|
|
9874
|
+
return next;
|
|
9875
|
+
});
|
|
9876
|
+
},
|
|
9877
|
+
[]
|
|
9878
|
+
);
|
|
9296
9879
|
const sectionOutlineFilterTerms = useMemo7(
|
|
9297
9880
|
() => getSectionOutlineFilterTerms(sectionOutlineFilter),
|
|
9298
9881
|
[sectionOutlineFilter]
|
|
@@ -9560,6 +10143,7 @@ var ReviewShell = ({
|
|
|
9560
10143
|
parsedInput.height
|
|
9561
10144
|
) : sizeRef.current;
|
|
9562
10145
|
const nextAdapter = sourceEntries.find((entry) => entry.label === nextSource) ?? activeAdapterEntry;
|
|
10146
|
+
const isCurrentTarget = targetRef.current === normalizedTarget && source === nextSource && sizeRef.current.width === nextSize.width && sizeRef.current.height === nextSize.height;
|
|
9563
10147
|
if (parsedInput.itemId) {
|
|
9564
10148
|
const item = await nextAdapter.adapter.get(parsedInput.itemId);
|
|
9565
10149
|
if (item) {
|
|
@@ -9578,6 +10162,7 @@ var ReviewShell = ({
|
|
|
9578
10162
|
setSize(nextSize);
|
|
9579
10163
|
setTarget(normalizedTarget);
|
|
9580
10164
|
updateShellUrl(normalizedTarget, nextSize, nextSource);
|
|
10165
|
+
if (isCurrentTarget) reloadTargetFrame();
|
|
9581
10166
|
};
|
|
9582
10167
|
const selectPage = (href) => {
|
|
9583
10168
|
const normalizedTarget = normalizeTarget(href, reviewPathPrefix);
|
|
@@ -9598,6 +10183,10 @@ var ReviewShell = ({
|
|
|
9598
10183
|
const writeMode = getReviewModeWriteMode(nextMode);
|
|
9599
10184
|
if (writeMode && !activeAdapterEntry.writeModes.includes(writeMode)) return;
|
|
9600
10185
|
closeRuler();
|
|
10186
|
+
if (writeMode && mode !== nextMode) {
|
|
10187
|
+
setSidePanel("qa");
|
|
10188
|
+
setIsListVisible(true);
|
|
10189
|
+
}
|
|
9601
10190
|
setControllerReviewMode(nextMode);
|
|
9602
10191
|
};
|
|
9603
10192
|
useReviewShellHotkeys({
|
|
@@ -9647,7 +10236,6 @@ var ReviewShell = ({
|
|
|
9647
10236
|
}, []);
|
|
9648
10237
|
useEffect10(() => {
|
|
9649
10238
|
clearSourceInspector();
|
|
9650
|
-
setSectionOutlineFilter("");
|
|
9651
10239
|
setCollapsedSectionOutlineIds(/* @__PURE__ */ new Set());
|
|
9652
10240
|
setSectionOutline(null);
|
|
9653
10241
|
}, [clearSourceInspector, targetSrc]);
|
|
@@ -9808,7 +10396,10 @@ var ReviewShell = ({
|
|
|
9808
10396
|
} catch {
|
|
9809
10397
|
frameDocument = null;
|
|
9810
10398
|
}
|
|
9811
|
-
|
|
10399
|
+
if (!frameDocument || frameDocument.readyState !== "complete") {
|
|
10400
|
+
return null;
|
|
10401
|
+
}
|
|
10402
|
+
return getSectionOutline(frameDocument, sectionOutlineOptions);
|
|
9812
10403
|
},
|
|
9813
10404
|
[iframeRef, sectionOutlineOptions]
|
|
9814
10405
|
);
|
|
@@ -9824,7 +10415,9 @@ var ReviewShell = ({
|
|
|
9824
10415
|
useEffect10(() => {
|
|
9825
10416
|
if (sidePanel !== "source" || !isListVisible) return void 0;
|
|
9826
10417
|
const refreshSectionOutline = () => {
|
|
9827
|
-
|
|
10418
|
+
const nextSectionOutline = getCurrentSectionOutline();
|
|
10419
|
+
if (!nextSectionOutline) return;
|
|
10420
|
+
setSectionOutlineWithDefaultCollapse(nextSectionOutline);
|
|
9828
10421
|
};
|
|
9829
10422
|
const animationFrame = window.requestAnimationFrame(refreshSectionOutline);
|
|
9830
10423
|
const firstTimeout = window.setTimeout(refreshSectionOutline, 120);
|
|
@@ -9852,7 +10445,10 @@ var ReviewShell = ({
|
|
|
9852
10445
|
return;
|
|
9853
10446
|
}
|
|
9854
10447
|
setSidePanel("source");
|
|
9855
|
-
|
|
10448
|
+
const nextSectionOutline = getCurrentSectionOutline();
|
|
10449
|
+
if (nextSectionOutline) {
|
|
10450
|
+
setSectionOutlineWithDefaultCollapse(nextSectionOutline);
|
|
10451
|
+
}
|
|
9856
10452
|
setIsListVisible(true);
|
|
9857
10453
|
}, [
|
|
9858
10454
|
getCurrentSectionOutline,
|
|
@@ -9905,7 +10501,8 @@ var ReviewShell = ({
|
|
|
9905
10501
|
return;
|
|
9906
10502
|
}
|
|
9907
10503
|
clearSourceInspector();
|
|
9908
|
-
|
|
10504
|
+
setSidePanel("qa");
|
|
10505
|
+
setIsListVisible(true);
|
|
9909
10506
|
let targetWindow = null;
|
|
9910
10507
|
try {
|
|
9911
10508
|
targetWindow = entry.element.ownerDocument.defaultView ?? iframeRef.current?.contentWindow ?? null;
|
|
@@ -10215,7 +10812,10 @@ var ReviewShell = ({
|
|
|
10215
10812
|
);
|
|
10216
10813
|
bindSourceOpenShortcut();
|
|
10217
10814
|
if (sidePanel === "source" && isListVisible) {
|
|
10218
|
-
|
|
10815
|
+
const nextSectionOutline = getCurrentSectionOutline();
|
|
10816
|
+
if (nextSectionOutline) {
|
|
10817
|
+
setSectionOutlineWithDefaultCollapse(nextSectionOutline);
|
|
10818
|
+
}
|
|
10219
10819
|
}
|
|
10220
10820
|
}, [
|
|
10221
10821
|
bindSourceOpenShortcut,
|
|
@@ -10282,6 +10882,11 @@ var ReviewShell = ({
|
|
|
10282
10882
|
`qa:${numberedItem.item.id}`,
|
|
10283
10883
|
"QA prompt copied"
|
|
10284
10884
|
);
|
|
10885
|
+
const copyItemLabel = (numberedItem) => copyPrompt(
|
|
10886
|
+
numberedItem.displayLabel,
|
|
10887
|
+
`label:${numberedItem.item.id}`,
|
|
10888
|
+
"QA number copied"
|
|
10889
|
+
);
|
|
10285
10890
|
const copyItemLink = (numberedItem) => {
|
|
10286
10891
|
const { item } = numberedItem;
|
|
10287
10892
|
return copyPrompt(
|
|
@@ -10307,6 +10912,99 @@ var ReviewShell = ({
|
|
|
10307
10912
|
onRefreshReviewData: refreshReviewData2,
|
|
10308
10913
|
onToast: showToast
|
|
10309
10914
|
});
|
|
10915
|
+
const renderSectionOutlineMeta = (entry) => {
|
|
10916
|
+
const { metadata } = entry;
|
|
10917
|
+
const rows = [];
|
|
10918
|
+
const metaPaddingLeft = Math.max(0, entry.depth - 1) * 12 + 29;
|
|
10919
|
+
const rect = getLiveSectionOutlineRect(entry);
|
|
10920
|
+
if (isSectionOutlineBoxMetaVisible) {
|
|
10921
|
+
rows.push(
|
|
10922
|
+
/* @__PURE__ */ jsxs15("span", { className: "df-review-section-outline-meta-row", children: [
|
|
10923
|
+
/* @__PURE__ */ jsx17("b", { children: "box" }),
|
|
10924
|
+
/* @__PURE__ */ jsxs15("code", { children: [
|
|
10925
|
+
"top ",
|
|
10926
|
+
rect.top,
|
|
10927
|
+
" / left ",
|
|
10928
|
+
rect.left,
|
|
10929
|
+
" / width ",
|
|
10930
|
+
rect.width,
|
|
10931
|
+
" / height",
|
|
10932
|
+
" ",
|
|
10933
|
+
rect.height
|
|
10934
|
+
] })
|
|
10935
|
+
] }, "box")
|
|
10936
|
+
);
|
|
10937
|
+
}
|
|
10938
|
+
if (metadata.textValue) {
|
|
10939
|
+
rows.push(
|
|
10940
|
+
/* @__PURE__ */ jsxs15(
|
|
10941
|
+
"span",
|
|
10942
|
+
{
|
|
10943
|
+
className: "df-review-section-outline-meta-row is-text",
|
|
10944
|
+
children: [
|
|
10945
|
+
/* @__PURE__ */ jsx17("b", { children: "text" }),
|
|
10946
|
+
/* @__PURE__ */ jsx17("code", { children: metadata.textValue })
|
|
10947
|
+
]
|
|
10948
|
+
},
|
|
10949
|
+
"text"
|
|
10950
|
+
)
|
|
10951
|
+
);
|
|
10952
|
+
}
|
|
10953
|
+
if (isSectionOutlineFontMetaVisible && metadata.fontLabel) {
|
|
10954
|
+
rows.push(
|
|
10955
|
+
/* @__PURE__ */ jsxs15("span", { className: "df-review-section-outline-meta-row", children: [
|
|
10956
|
+
/* @__PURE__ */ jsx17("b", { children: "font" }),
|
|
10957
|
+
/* @__PURE__ */ jsx17("code", { children: metadata.fontLabel })
|
|
10958
|
+
] }, "font")
|
|
10959
|
+
);
|
|
10960
|
+
}
|
|
10961
|
+
if (isSectionOutlineMediaMetaVisible && metadata.mediaItems?.length) {
|
|
10962
|
+
metadata.mediaItems.forEach((mediaItem) => {
|
|
10963
|
+
const mediaKey = `${mediaItem.variant}:${mediaItem.type}:${mediaItem.url}`;
|
|
10964
|
+
const mediaLabel = mediaItem.variant === "media" ? mediaItem.type : mediaItem.variant;
|
|
10965
|
+
rows.push(
|
|
10966
|
+
/* @__PURE__ */ jsxs15(
|
|
10967
|
+
"span",
|
|
10968
|
+
{
|
|
10969
|
+
className: "df-review-section-outline-meta-row is-media",
|
|
10970
|
+
children: [
|
|
10971
|
+
/* @__PURE__ */ jsx17("b", { children: mediaLabel }),
|
|
10972
|
+
/* @__PURE__ */ jsx17(
|
|
10973
|
+
"a",
|
|
10974
|
+
{
|
|
10975
|
+
className: "df-review-section-outline-media-link",
|
|
10976
|
+
href: mediaItem.url,
|
|
10977
|
+
rel: "noopener noreferrer",
|
|
10978
|
+
target: "_blank",
|
|
10979
|
+
title: `${mediaLabel} ${mediaItem.type}`,
|
|
10980
|
+
children: /* @__PURE__ */ jsx17("code", { children: mediaItem.url })
|
|
10981
|
+
}
|
|
10982
|
+
)
|
|
10983
|
+
]
|
|
10984
|
+
},
|
|
10985
|
+
mediaKey
|
|
10986
|
+
)
|
|
10987
|
+
);
|
|
10988
|
+
});
|
|
10989
|
+
}
|
|
10990
|
+
if (isSectionOutlineClassMetaVisible && metadata.classNames?.length) {
|
|
10991
|
+
rows.push(
|
|
10992
|
+
/* @__PURE__ */ jsxs15("span", { className: "df-review-section-outline-meta-row is-class", children: [
|
|
10993
|
+
/* @__PURE__ */ jsx17("b", { children: "class" }),
|
|
10994
|
+
/* @__PURE__ */ jsx17("span", { className: "df-review-section-outline-class-tags", children: metadata.classNames.map((className) => /* @__PURE__ */ jsx17("code", { children: className }, className)) })
|
|
10995
|
+
] }, "class")
|
|
10996
|
+
);
|
|
10997
|
+
}
|
|
10998
|
+
if (rows.length === 0) return null;
|
|
10999
|
+
return /* @__PURE__ */ jsx17(
|
|
11000
|
+
"div",
|
|
11001
|
+
{
|
|
11002
|
+
className: "df-review-section-outline-meta",
|
|
11003
|
+
style: { paddingLeft: `${metaPaddingLeft}px` },
|
|
11004
|
+
children: rows
|
|
11005
|
+
}
|
|
11006
|
+
);
|
|
11007
|
+
};
|
|
10310
11008
|
const renderSectionOutlineEntry = (entry) => {
|
|
10311
11009
|
const hasChildren = entry.children.length > 0;
|
|
10312
11010
|
const isCollapsed = !isSectionOutlineFiltering && collapsedSectionOutlineIds.has(entry.id);
|
|
@@ -10318,8 +11016,7 @@ var ReviewShell = ({
|
|
|
10318
11016
|
/* @__PURE__ */ jsxs15(
|
|
10319
11017
|
"div",
|
|
10320
11018
|
{
|
|
10321
|
-
className: "df-review-section-outline-
|
|
10322
|
-
style: { paddingLeft: `${Math.max(0, entry.depth - 1) * 12 + 6}px` },
|
|
11019
|
+
className: "df-review-section-outline-entry-body",
|
|
10323
11020
|
onMouseEnter: () => showSourceOutlineForElement(entry.element),
|
|
10324
11021
|
onMouseLeave: clearSourceOutlineHover,
|
|
10325
11022
|
onMouseOver: () => showSourceOutlineForElement(entry.element),
|
|
@@ -10332,78 +11029,88 @@ var ReviewShell = ({
|
|
|
10332
11029
|
onPointerEnter: () => showSourceOutlineForElement(entry.element),
|
|
10333
11030
|
onPointerLeave: clearSourceOutlineHover,
|
|
10334
11031
|
children: [
|
|
10335
|
-
|
|
10336
|
-
"
|
|
10337
|
-
{
|
|
10338
|
-
"aria-label": isCollapsed ? `Expand ${entry.label}` : `Collapse ${entry.label}`,
|
|
10339
|
-
"aria-expanded": !isCollapsed,
|
|
10340
|
-
className: `df-review-section-outline-toggle${isCollapsed ? " is-collapsed" : ""}`,
|
|
10341
|
-
type: "button",
|
|
10342
|
-
onClick: () => toggleSectionOutlineEntry(entry.id),
|
|
10343
|
-
children: /* @__PURE__ */ jsx17(ChevronDown, { "aria-hidden": "true" })
|
|
10344
|
-
}
|
|
10345
|
-
) : /* @__PURE__ */ jsx17(
|
|
10346
|
-
"span",
|
|
10347
|
-
{
|
|
10348
|
-
"aria-hidden": "true",
|
|
10349
|
-
className: "df-review-section-outline-toggle is-placeholder"
|
|
10350
|
-
}
|
|
10351
|
-
),
|
|
10352
|
-
/* @__PURE__ */ jsx17(
|
|
10353
|
-
"button",
|
|
11032
|
+
/* @__PURE__ */ jsxs15(
|
|
11033
|
+
"div",
|
|
10354
11034
|
{
|
|
10355
|
-
className: "df-review-section-outline-
|
|
10356
|
-
|
|
10357
|
-
|
|
10358
|
-
|
|
11035
|
+
className: "df-review-section-outline-row",
|
|
11036
|
+
style: { paddingLeft: `${Math.max(0, entry.depth - 1) * 12 + 6}px` },
|
|
11037
|
+
children: [
|
|
11038
|
+
hasChildren ? /* @__PURE__ */ jsx17(
|
|
11039
|
+
"button",
|
|
11040
|
+
{
|
|
11041
|
+
"aria-label": isCollapsed ? `Expand ${entry.label}` : `Collapse ${entry.label}`,
|
|
11042
|
+
"aria-expanded": !isCollapsed,
|
|
11043
|
+
className: `df-review-section-outline-toggle${isCollapsed ? " is-collapsed" : ""}`,
|
|
11044
|
+
type: "button",
|
|
11045
|
+
onClick: () => toggleSectionOutlineEntry(entry.id),
|
|
11046
|
+
children: /* @__PURE__ */ jsx17(ChevronDown, { "aria-hidden": "true" })
|
|
11047
|
+
}
|
|
11048
|
+
) : /* @__PURE__ */ jsx17(
|
|
11049
|
+
"span",
|
|
11050
|
+
{
|
|
11051
|
+
"aria-hidden": "true",
|
|
11052
|
+
className: "df-review-section-outline-toggle is-placeholder"
|
|
11053
|
+
}
|
|
11054
|
+
),
|
|
11055
|
+
/* @__PURE__ */ jsx17(
|
|
11056
|
+
"button",
|
|
11057
|
+
{
|
|
11058
|
+
className: "df-review-section-outline-name",
|
|
11059
|
+
type: "button",
|
|
11060
|
+
onClick: () => scrollToSection(entry),
|
|
11061
|
+
children: /* @__PURE__ */ jsx17("span", { children: entry.label })
|
|
11062
|
+
}
|
|
11063
|
+
),
|
|
11064
|
+
/* @__PURE__ */ jsxs15("span", { className: "df-review-section-outline-links", children: [
|
|
11065
|
+
/* @__PURE__ */ jsx17(
|
|
11066
|
+
"button",
|
|
11067
|
+
{
|
|
11068
|
+
"aria-label": `Open ${entry.label} data`,
|
|
11069
|
+
className: "df-review-section-outline-link",
|
|
11070
|
+
title: "Open data",
|
|
11071
|
+
type: "button",
|
|
11072
|
+
disabled: !entry.data?.file,
|
|
11073
|
+
onClick: () => openSectionData(entry),
|
|
11074
|
+
children: /* @__PURE__ */ jsx17(Database, { "aria-hidden": "true" })
|
|
11075
|
+
}
|
|
11076
|
+
),
|
|
11077
|
+
/* @__PURE__ */ jsx17(
|
|
11078
|
+
"button",
|
|
11079
|
+
{
|
|
11080
|
+
"aria-label": `Open ${entry.label} source`,
|
|
11081
|
+
className: "df-review-section-outline-link",
|
|
11082
|
+
title: "Open source",
|
|
11083
|
+
type: "button",
|
|
11084
|
+
disabled: !entry.source?.file,
|
|
11085
|
+
onClick: () => openSectionSource(entry),
|
|
11086
|
+
children: /* @__PURE__ */ jsx17(CodeXml, { "aria-hidden": "true" })
|
|
11087
|
+
}
|
|
11088
|
+
),
|
|
11089
|
+
/* @__PURE__ */ jsx17(
|
|
11090
|
+
"span",
|
|
11091
|
+
{
|
|
11092
|
+
"aria-hidden": "true",
|
|
11093
|
+
className: "df-review-section-outline-divider",
|
|
11094
|
+
children: "|"
|
|
11095
|
+
}
|
|
11096
|
+
),
|
|
11097
|
+
/* @__PURE__ */ jsx17(
|
|
11098
|
+
"button",
|
|
11099
|
+
{
|
|
11100
|
+
"aria-label": `Start DOM QA for ${entry.label}`,
|
|
11101
|
+
className: "df-review-section-outline-link is-dom-select",
|
|
11102
|
+
title: "DOM select",
|
|
11103
|
+
type: "button",
|
|
11104
|
+
disabled: !canWriteDom,
|
|
11105
|
+
onClick: () => startSectionDomReview(entry),
|
|
11106
|
+
children: /* @__PURE__ */ jsx17(SquareMousePointer, { "aria-hidden": "true" })
|
|
11107
|
+
}
|
|
11108
|
+
)
|
|
11109
|
+
] })
|
|
11110
|
+
]
|
|
10359
11111
|
}
|
|
10360
11112
|
),
|
|
10361
|
-
|
|
10362
|
-
/* @__PURE__ */ jsx17(
|
|
10363
|
-
"button",
|
|
10364
|
-
{
|
|
10365
|
-
"aria-label": `Open ${entry.label} data`,
|
|
10366
|
-
className: "df-review-section-outline-link",
|
|
10367
|
-
title: "Open data",
|
|
10368
|
-
type: "button",
|
|
10369
|
-
disabled: !entry.data?.file,
|
|
10370
|
-
onClick: () => openSectionData(entry),
|
|
10371
|
-
children: /* @__PURE__ */ jsx17(Database, { "aria-hidden": "true" })
|
|
10372
|
-
}
|
|
10373
|
-
),
|
|
10374
|
-
/* @__PURE__ */ jsx17(
|
|
10375
|
-
"button",
|
|
10376
|
-
{
|
|
10377
|
-
"aria-label": `Open ${entry.label} source`,
|
|
10378
|
-
className: "df-review-section-outline-link",
|
|
10379
|
-
title: "Open source",
|
|
10380
|
-
type: "button",
|
|
10381
|
-
disabled: !entry.source?.file,
|
|
10382
|
-
onClick: () => openSectionSource(entry),
|
|
10383
|
-
children: /* @__PURE__ */ jsx17(CodeXml, { "aria-hidden": "true" })
|
|
10384
|
-
}
|
|
10385
|
-
),
|
|
10386
|
-
/* @__PURE__ */ jsx17(
|
|
10387
|
-
"span",
|
|
10388
|
-
{
|
|
10389
|
-
"aria-hidden": "true",
|
|
10390
|
-
className: "df-review-section-outline-divider",
|
|
10391
|
-
children: "|"
|
|
10392
|
-
}
|
|
10393
|
-
),
|
|
10394
|
-
/* @__PURE__ */ jsx17(
|
|
10395
|
-
"button",
|
|
10396
|
-
{
|
|
10397
|
-
"aria-label": `Start DOM QA for ${entry.label}`,
|
|
10398
|
-
className: "df-review-section-outline-link is-dom-select",
|
|
10399
|
-
title: "DOM select",
|
|
10400
|
-
type: "button",
|
|
10401
|
-
disabled: !canWriteDom,
|
|
10402
|
-
onClick: () => startSectionDomReview(entry),
|
|
10403
|
-
children: /* @__PURE__ */ jsx17(SquareMousePointer, { "aria-hidden": "true" })
|
|
10404
|
-
}
|
|
10405
|
-
)
|
|
10406
|
-
] })
|
|
11113
|
+
renderSectionOutlineMeta(entry)
|
|
10407
11114
|
]
|
|
10408
11115
|
}
|
|
10409
11116
|
),
|
|
@@ -10436,11 +11143,7 @@ var ReviewShell = ({
|
|
|
10436
11143
|
onCopyCurrentUrl: () => void copyCurrentUrl(),
|
|
10437
11144
|
onSizeChange: setSize,
|
|
10438
11145
|
onToggleRuler: toggleRuler,
|
|
10439
|
-
onToggleTargetOverlay: toggleTargetOverlay
|
|
10440
|
-
onOpenInitialPrompt: () => {
|
|
10441
|
-
setIsInitialPromptOpen(true);
|
|
10442
|
-
},
|
|
10443
|
-
onOpenSettings: openFigmaSettings
|
|
11146
|
+
onToggleTargetOverlay: toggleTargetOverlay
|
|
10444
11147
|
}
|
|
10445
11148
|
),
|
|
10446
11149
|
isSitemapOpen && /* @__PURE__ */ jsx17(
|
|
@@ -10518,16 +11221,42 @@ var ReviewShell = ({
|
|
|
10518
11221
|
type: "button",
|
|
10519
11222
|
onClick: toggleSourceTreePanel,
|
|
10520
11223
|
title: "Source Tree",
|
|
10521
|
-
children: /* @__PURE__ */ jsx17("span", { "aria-hidden": "true", children: /* @__PURE__ */ jsx17(
|
|
11224
|
+
children: /* @__PURE__ */ jsx17("span", { "aria-hidden": "true", children: /* @__PURE__ */ jsx17(Workflow, {}) })
|
|
10522
11225
|
}
|
|
10523
11226
|
),
|
|
10524
|
-
|
|
10525
|
-
|
|
10526
|
-
|
|
10527
|
-
|
|
10528
|
-
|
|
10529
|
-
|
|
10530
|
-
|
|
11227
|
+
/* @__PURE__ */ jsxs15("div", { className: "df-review-side-actions", children: [
|
|
11228
|
+
/* @__PURE__ */ jsx17(
|
|
11229
|
+
"button",
|
|
11230
|
+
{
|
|
11231
|
+
"aria-label": "Open initial prompt",
|
|
11232
|
+
className: "df-review-side-toggle",
|
|
11233
|
+
type: "button",
|
|
11234
|
+
onClick: () => {
|
|
11235
|
+
setIsInitialPromptOpen(true);
|
|
11236
|
+
},
|
|
11237
|
+
title: "Help",
|
|
11238
|
+
children: /* @__PURE__ */ jsx17("span", { "aria-hidden": "true", children: /* @__PURE__ */ jsx17(CircleQuestionMark, {}) })
|
|
11239
|
+
}
|
|
11240
|
+
),
|
|
11241
|
+
/* @__PURE__ */ jsx17(
|
|
11242
|
+
"button",
|
|
11243
|
+
{
|
|
11244
|
+
"aria-label": "Open settings",
|
|
11245
|
+
className: "df-review-side-toggle",
|
|
11246
|
+
type: "button",
|
|
11247
|
+
onClick: openFigmaSettings,
|
|
11248
|
+
title: "Settings",
|
|
11249
|
+
children: /* @__PURE__ */ jsx17("span", { "aria-hidden": "true", children: /* @__PURE__ */ jsx17(Settings, {}) })
|
|
11250
|
+
}
|
|
11251
|
+
),
|
|
11252
|
+
currentPagePresenceUsers.length > 0 && /* @__PURE__ */ jsx17(
|
|
11253
|
+
PresenceOverlay,
|
|
11254
|
+
{
|
|
11255
|
+
presenceSessionId,
|
|
11256
|
+
users: currentPagePresenceUsers
|
|
11257
|
+
}
|
|
11258
|
+
)
|
|
11259
|
+
] })
|
|
10531
11260
|
] }),
|
|
10532
11261
|
/* @__PURE__ */ jsx17(
|
|
10533
11262
|
ReviewQaPanel,
|
|
@@ -10555,6 +11284,7 @@ var ReviewShell = ({
|
|
|
10555
11284
|
onChangeItemStatus: changeItemStatus,
|
|
10556
11285
|
onClearSelectedItem: clearSelectedReviewItem,
|
|
10557
11286
|
onChangeReviewSource: changeReviewSource,
|
|
11287
|
+
onCopyItemLabel: (numberedItem) => void copyItemLabel(numberedItem),
|
|
10558
11288
|
onCopyItemLink: (numberedItem) => void copyItemLink(numberedItem),
|
|
10559
11289
|
onCopyItemPrompt: (numberedItem) => void copyItemPrompt(numberedItem),
|
|
10560
11290
|
onEditItem: setEditingItem,
|
|
@@ -10574,9 +11304,61 @@ var ReviewShell = ({
|
|
|
10574
11304
|
"aria-hidden": !isSourceTreePanelVisible,
|
|
10575
11305
|
children: /* @__PURE__ */ jsxs15("div", { id: "df-review-section-outline", className: "df-review-section-outline", children: [
|
|
10576
11306
|
/* @__PURE__ */ jsxs15("div", { className: "df-review-section-outline-head", children: [
|
|
10577
|
-
/* @__PURE__ */ jsxs15("
|
|
10578
|
-
/* @__PURE__ */
|
|
10579
|
-
|
|
11307
|
+
/* @__PURE__ */ jsxs15("div", { className: "df-review-section-outline-summary", children: [
|
|
11308
|
+
/* @__PURE__ */ jsxs15("span", { children: [
|
|
11309
|
+
/* @__PURE__ */ jsx17("strong", { children: "Component" }),
|
|
11310
|
+
/* @__PURE__ */ jsx17("small", { children: isSectionOutlineFiltering ? `${filteredSectionOutlineCount} / ${sectionOutlineTotalCount} results` : `${sectionOutline?.length ?? 0} ${sectionOutline?.length === 1 ? "root" : "roots"}` })
|
|
11311
|
+
] }),
|
|
11312
|
+
/* @__PURE__ */ jsxs15("div", { className: "df-review-section-outline-meta-controls", children: [
|
|
11313
|
+
/* @__PURE__ */ jsx17(
|
|
11314
|
+
"button",
|
|
11315
|
+
{
|
|
11316
|
+
"aria-label": "Toggle source tree box metadata",
|
|
11317
|
+
"aria-pressed": isSectionOutlineBoxMetaVisible,
|
|
11318
|
+
className: `df-review-section-outline-meta-toggle${isSectionOutlineBoxMetaVisible ? " is-active" : ""}`,
|
|
11319
|
+
title: "top / left / width / height",
|
|
11320
|
+
type: "button",
|
|
11321
|
+
onClick: () => updateSectionOutlineMetaVisibility("box"),
|
|
11322
|
+
children: /* @__PURE__ */ jsx17(SquareDashed, { "aria-hidden": "true" })
|
|
11323
|
+
}
|
|
11324
|
+
),
|
|
11325
|
+
/* @__PURE__ */ jsx17(
|
|
11326
|
+
"button",
|
|
11327
|
+
{
|
|
11328
|
+
"aria-label": "Toggle source tree font metadata",
|
|
11329
|
+
"aria-pressed": isSectionOutlineFontMetaVisible,
|
|
11330
|
+
className: `df-review-section-outline-meta-toggle${isSectionOutlineFontMetaVisible ? " is-active" : ""}`,
|
|
11331
|
+
title: "font size / weight",
|
|
11332
|
+
type: "button",
|
|
11333
|
+
onClick: () => updateSectionOutlineMetaVisibility("font"),
|
|
11334
|
+
children: /* @__PURE__ */ jsx17(Type, { "aria-hidden": "true" })
|
|
11335
|
+
}
|
|
11336
|
+
),
|
|
11337
|
+
/* @__PURE__ */ jsx17(
|
|
11338
|
+
"button",
|
|
11339
|
+
{
|
|
11340
|
+
"aria-label": "Toggle source tree media metadata",
|
|
11341
|
+
"aria-pressed": isSectionOutlineMediaMetaVisible,
|
|
11342
|
+
className: `df-review-section-outline-meta-toggle${isSectionOutlineMediaMetaVisible ? " is-active" : ""}`,
|
|
11343
|
+
title: "media urls",
|
|
11344
|
+
type: "button",
|
|
11345
|
+
onClick: () => updateSectionOutlineMetaVisibility("media"),
|
|
11346
|
+
children: /* @__PURE__ */ jsx17(Image, { "aria-hidden": "true" })
|
|
11347
|
+
}
|
|
11348
|
+
),
|
|
11349
|
+
/* @__PURE__ */ jsx17(
|
|
11350
|
+
"button",
|
|
11351
|
+
{
|
|
11352
|
+
"aria-label": "Toggle source tree class metadata",
|
|
11353
|
+
"aria-pressed": isSectionOutlineClassMetaVisible,
|
|
11354
|
+
className: `df-review-section-outline-meta-toggle${isSectionOutlineClassMetaVisible ? " is-active" : ""}`,
|
|
11355
|
+
title: "class names",
|
|
11356
|
+
type: "button",
|
|
11357
|
+
onClick: () => updateSectionOutlineMetaVisibility("className"),
|
|
11358
|
+
children: /* @__PURE__ */ jsx17(CodeXml, { "aria-hidden": "true" })
|
|
11359
|
+
}
|
|
11360
|
+
)
|
|
11361
|
+
] })
|
|
10580
11362
|
] }),
|
|
10581
11363
|
/* @__PURE__ */ jsxs15("div", { className: "df-review-section-outline-filter", children: [
|
|
10582
11364
|
/* @__PURE__ */ jsx17(Search, { "aria-hidden": "true" }),
|
|
@@ -10590,7 +11372,7 @@ var ReviewShell = ({
|
|
|
10590
11372
|
autoComplete: "off",
|
|
10591
11373
|
enterKeyHint: "search",
|
|
10592
11374
|
spellCheck: false,
|
|
10593
|
-
onChange: (event) =>
|
|
11375
|
+
onChange: (event) => updateSectionOutlineFilter(event.currentTarget.value)
|
|
10594
11376
|
}
|
|
10595
11377
|
),
|
|
10596
11378
|
sectionOutlineFilter && /* @__PURE__ */ jsx17(
|
|
@@ -10600,7 +11382,7 @@ var ReviewShell = ({
|
|
|
10600
11382
|
className: "df-review-section-outline-filter-clear",
|
|
10601
11383
|
type: "button",
|
|
10602
11384
|
onMouseDown: (event) => event.preventDefault(),
|
|
10603
|
-
onClick: () =>
|
|
11385
|
+
onClick: () => updateSectionOutlineFilter(""),
|
|
10604
11386
|
children: /* @__PURE__ */ jsx17(X, { "aria-hidden": "true" })
|
|
10605
11387
|
}
|
|
10606
11388
|
)
|
|
@@ -10919,7 +11701,6 @@ lucide-react/dist/esm/icons/circle-question-mark.mjs:
|
|
|
10919
11701
|
lucide-react/dist/esm/icons/code-xml.mjs:
|
|
10920
11702
|
lucide-react/dist/esm/icons/copy.mjs:
|
|
10921
11703
|
lucide-react/dist/esm/icons/database.mjs:
|
|
10922
|
-
lucide-react/dist/esm/icons/ellipsis.mjs:
|
|
10923
11704
|
lucide-react/dist/esm/icons/external-link.mjs:
|
|
10924
11705
|
lucide-react/dist/esm/icons/eye-off.mjs:
|
|
10925
11706
|
lucide-react/dist/esm/icons/eye.mjs:
|
|
@@ -10940,11 +11721,13 @@ lucide-react/dist/esm/icons/scan.mjs:
|
|
|
10940
11721
|
lucide-react/dist/esm/icons/search.mjs:
|
|
10941
11722
|
lucide-react/dist/esm/icons/settings.mjs:
|
|
10942
11723
|
lucide-react/dist/esm/icons/smartphone.mjs:
|
|
11724
|
+
lucide-react/dist/esm/icons/square-dashed.mjs:
|
|
10943
11725
|
lucide-react/dist/esm/icons/square-mouse-pointer.mjs:
|
|
10944
11726
|
lucide-react/dist/esm/icons/sticky-note.mjs:
|
|
10945
11727
|
lucide-react/dist/esm/icons/sun.mjs:
|
|
11728
|
+
lucide-react/dist/esm/icons/type.mjs:
|
|
10946
11729
|
lucide-react/dist/esm/icons/upload.mjs:
|
|
10947
|
-
lucide-react/dist/esm/icons/
|
|
11730
|
+
lucide-react/dist/esm/icons/workflow.mjs:
|
|
10948
11731
|
lucide-react/dist/esm/icons/x.mjs:
|
|
10949
11732
|
lucide-react/dist/esm/lucide-react.mjs:
|
|
10950
11733
|
(**
|