@issuegraph/editor 0.24.0 → 0.26.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.
Files changed (49) hide show
  1. package/README.md +6 -2
  2. package/dist/index.d.ts +2 -2
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/overlay/render.d.ts.map +1 -1
  7. package/dist/overlay/render.js +18 -2
  8. package/dist/overlay/render.js.map +1 -1
  9. package/dist/reevaluate/styles.d.ts +7 -1
  10. package/dist/reevaluate/styles.d.ts.map +1 -1
  11. package/dist/reevaluate/styles.js +32 -11
  12. package/dist/reevaluate/styles.js.map +1 -1
  13. package/dist/scale/render.d.ts +5 -1
  14. package/dist/scale/render.d.ts.map +1 -1
  15. package/dist/scale/render.js +19 -2
  16. package/dist/scale/render.js.map +1 -1
  17. package/dist/workspace/host.d.ts +33 -2
  18. package/dist/workspace/host.d.ts.map +1 -1
  19. package/dist/workspace/host.js +64 -14
  20. package/dist/workspace/host.js.map +1 -1
  21. package/dist/workspace/inspector.d.ts +9 -0
  22. package/dist/workspace/inspector.d.ts.map +1 -1
  23. package/dist/workspace/inspector.js +16 -0
  24. package/dist/workspace/inspector.js.map +1 -1
  25. package/dist/workspace/mount.d.ts +17 -3
  26. package/dist/workspace/mount.d.ts.map +1 -1
  27. package/dist/workspace/mount.js +150 -30
  28. package/dist/workspace/mount.js.map +1 -1
  29. package/dist/workspace/narrow.d.ts +38 -0
  30. package/dist/workspace/narrow.d.ts.map +1 -0
  31. package/dist/workspace/narrow.js +48 -0
  32. package/dist/workspace/narrow.js.map +1 -0
  33. package/dist/workspace/related.d.ts +65 -0
  34. package/dist/workspace/related.d.ts.map +1 -0
  35. package/dist/workspace/related.js +105 -0
  36. package/dist/workspace/related.js.map +1 -0
  37. package/dist/workspace/render.d.ts +102 -19
  38. package/dist/workspace/render.d.ts.map +1 -1
  39. package/dist/workspace/render.js +211 -29
  40. package/dist/workspace/render.js.map +1 -1
  41. package/dist/workspace/selection.d.ts +44 -3
  42. package/dist/workspace/selection.d.ts.map +1 -1
  43. package/dist/workspace/selection.js +58 -0
  44. package/dist/workspace/selection.js.map +1 -1
  45. package/dist/workspace/styles.d.ts +1 -1
  46. package/dist/workspace/styles.d.ts.map +1 -1
  47. package/dist/workspace/styles.js +265 -8
  48. package/dist/workspace/styles.js.map +1 -1
  49. package/package.json +3 -3
@@ -35,6 +35,7 @@
35
35
  * the next edit targets the wrong thing — and this is the file where both
36
36
  * could creep back in without touching a line of TypeScript.
37
37
  */
38
+ import { heldRailDeclarations } from "../reevaluate/styles.js";
38
39
  export const workspaceStylesheet = `
39
40
  .ig-workspace {
40
41
  display: grid;
@@ -665,12 +666,32 @@ export const workspaceStylesheet = `
665
666
  gap: var(--ig-space-tight);
666
667
  }
667
668
 
668
- .ig-inspector-issue {
669
+ .ig-inspector-issue,
670
+ .ig-inspector-issues {
669
671
  display: flex;
670
672
  flex-direction: column;
671
673
  gap: var(--ig-space-tight);
672
674
  }
673
675
 
676
+ /* A SELECTED SET, LISTED AS TEXT: one issue a line, title then key, the key in
677
+ the muted role the rail's own id chips use. Nothing here is a control. */
678
+ .ig-inspector-set {
679
+ list-style: none;
680
+ margin: 0;
681
+ padding: 0;
682
+ display: flex;
683
+ flex-direction: column;
684
+ gap: var(--ig-space-tight);
685
+ }
686
+
687
+ .ig-inspector-set-item {
688
+ color: var(--ig-text-body);
689
+ }
690
+
691
+ .ig-inspector-set-item .ig-id {
692
+ color: var(--ig-text-muted);
693
+ }
694
+
674
695
  .ig-inspector-title {
675
696
  margin: 0;
676
697
  font-size: var(--ig-font-size);
@@ -1420,6 +1441,21 @@ export const workspaceStylesheet = `
1420
1441
  background-color: color-mix(in srgb, var(--ig-text-muted) var(--ig-tint-unit), transparent);
1421
1442
  }
1422
1443
 
1444
+ /* A RECEDED ROW DRAWS LAYER 1'S RECEDED GROUND, TINTED OR NOT.
1445
+
1446
+ The tints above tie layer 1's recede ground on specificity and this sheet
1447
+ loads after it, so without this rule a receded row that the edit also
1448
+ changed kept its tint and read as one the selection touches. Placed after
1449
+ every tint so it wins by order at the same specificity. The delta chip and
1450
+ the row's accessible name still report the change. Background-color, never
1451
+ the shorthand, for the held hatch's sake, as above. The footer selector
1452
+ names .ig-linear, as layer 1's does: the canvas graph draws footer rows
1453
+ too, and a receded graph row takes no ground. */
1454
+ .ig-workspace .ig-slot[data-recede='true'],
1455
+ .ig-workspace .ig-linear .ig-footer-row[data-recede='true'] {
1456
+ background-color: var(--ig-surface-2);
1457
+ }
1458
+
1423
1459
  /* THE THIRD COLUMN IS WHAT PUTS THE CHIP AT THE ROW'S TRAILING EDGE.
1424
1460
 
1425
1461
  The frame draws the row as rank, body, chip — three columns, the last
@@ -1452,11 +1488,12 @@ export const workspaceStylesheet = `
1452
1488
  /* §17c's "write landed · order computing": the PREVIOUS order, held still and
1453
1489
  greyed one step, with the label saying why.
1454
1490
 
1455
- THE SAME FILTER, for the reason reevaluate/styles.ts gives where it greys
1456
- .ig-reevaluate[data-order='held'] .ig-viewer: layer 1 sets color directly on
1457
- its own descendants, so an inherited colour greys almost nothing, and a list
1458
- of descendants to override goes stale the first time layer 1 colours
1459
- something new.
1491
+ THE SAME HUE-TOKEN BLOCK, for the reason reevaluate/styles.ts gives where it
1492
+ greys .ig-reevaluate[data-order='held'] .ig-viewer: layer 1 sets color
1493
+ directly on its own descendants, so an inherited colour greys almost
1494
+ nothing, and a list of descendants to override goes stale the first time
1495
+ layer 1 colours something new. Redefined hue tokens inherit, and greying by
1496
+ colour keeps the rail's text at its theme's contrast.
1460
1497
 
1461
1498
  SCOPED TO THE RAIL ZONE, WHICH THE STANDALONE SURFACE DID NOT HAVE TO BE.
1462
1499
  There, .ig-viewer is the rail and nothing else. The workspace draws a SECOND
@@ -1468,7 +1505,7 @@ export const workspaceStylesheet = `
1468
1505
  in flight. The rail is the only surface whose ranks the store cannot vouch
1469
1506
  for, so it is the only one greyed. */
1470
1507
  .ig-workspace[data-order='held'] .ig-zone[data-zone='rail'] .ig-viewer {
1471
- filter: grayscale(1);
1508
+ ${heldRailDeclarations}
1472
1509
  }
1473
1510
 
1474
1511
  /* ── 17k's OTHER TWO LAYOUTS ───────────────────────────────────────────────
@@ -1484,7 +1521,9 @@ export const workspaceStylesheet = `
1484
1521
  below 1120 rail unchanged; the canvas collapses to a strip that
1485
1522
  opens full-width on demand; the inspector returns inline
1486
1523
 
1487
- Below roughly 860 is section 9 territory and out of scope for the package.
1524
+ below 640 one view at a time, picked from three tabs: the
1525
+ order, the selection's Related groups, or the
1526
+ Sub-issues tree; the inspector is not drawn
1488
1527
 
1489
1528
  THE RAIL IS THE SAME 50 CHARACTERS IN ALL THREE. That is the whole rule, and
1490
1529
  it is the one thing to check when touching this block: measured on the demo
@@ -1545,6 +1584,112 @@ export const workspaceStylesheet = `
1545
1584
  outline-offset: var(--ig-space-tight);
1546
1585
  }
1547
1586
 
1587
+ /* THE TABS AND THE RELATED GROUPS LIST, DRAWN ONLY UNDER 640, on the strip's
1588
+ reasoning above: render.ts cannot know its width, so the tabs are always in
1589
+ the markup and the list is in it whenever its tab is selected, and this is
1590
+ what keeps both off the three wider layouts. The block at the foot of the
1591
+ sheet draws them. */
1592
+ /* THE DESIGN'S TABS PART: FILLED, NOT BORDERED. An idle tab is muted text on
1593
+ no fill; hover takes the secondary fill (--ig-surface-2) with full text; the selected tab
1594
+ takes the strong fill (--ig-surface) with full text. 32 tall, 12 inline
1595
+ padding, the control radius, 4 apart. The package has no 32 or 4 token, so
1596
+ both are written from the spacing scale: 2 x --ig-space-loose and
1597
+ 2 x --ig-space-micro. */
1598
+ .ig-workspace .ig-narrow-tabs {
1599
+ display: none;
1600
+ gap: calc(var(--ig-space-micro) * 2);
1601
+ padding: var(--ig-space-tight) var(--ig-space);
1602
+ border-bottom: var(--ig-stroke) solid var(--ig-line);
1603
+ }
1604
+
1605
+ .ig-workspace .ig-narrow-tab {
1606
+ flex: 1;
1607
+ min-block-size: calc(var(--ig-space-loose) * 2);
1608
+ border: 0;
1609
+ border-radius: var(--ig-radius);
1610
+ background: none;
1611
+ color: var(--ig-text-muted);
1612
+ font-family: var(--ig-font-ui);
1613
+ font-size: var(--ig-font-size-small);
1614
+ padding: 0 var(--ig-space);
1615
+ cursor: pointer;
1616
+ }
1617
+
1618
+ .ig-workspace .ig-narrow-tab:hover {
1619
+ background: var(--ig-surface-2);
1620
+ color: var(--ig-text);
1621
+ }
1622
+
1623
+ .ig-workspace .ig-narrow-tab[aria-selected='true'] {
1624
+ background: var(--ig-surface);
1625
+ color: var(--ig-text);
1626
+ }
1627
+
1628
+ .ig-workspace .ig-narrow-tab:focus-visible,
1629
+ .ig-workspace .ig-related-group:focus-visible {
1630
+ outline: var(--ig-focus-ring) solid var(--ig-focus);
1631
+ outline-offset: var(--ig-space-tight);
1632
+ }
1633
+
1634
+ .ig-workspace .ig-related {
1635
+ display: none;
1636
+ padding: var(--ig-space);
1637
+ }
1638
+
1639
+ /* The rows take the Inspector's own row box, '.ig-relationship', so they read
1640
+ the same; only the lists around them are this list's. */
1641
+ .ig-related-rows,
1642
+ .ig-related-groups {
1643
+ list-style: none;
1644
+ margin: 0;
1645
+ padding: 0;
1646
+ display: flex;
1647
+ flex-direction: column;
1648
+ gap: var(--ig-space-tight);
1649
+ }
1650
+
1651
+ .ig-related-groups > li {
1652
+ display: flex;
1653
+ flex-direction: column;
1654
+ gap: var(--ig-space-tight);
1655
+ }
1656
+
1657
+ .ig-related-group {
1658
+ display: flex;
1659
+ gap: var(--ig-space-tight);
1660
+ align-items: baseline;
1661
+ border: var(--ig-stroke) solid var(--ig-line);
1662
+ border-radius: var(--ig-radius);
1663
+ background: var(--ig-surface);
1664
+ color: var(--ig-text-body);
1665
+ font-family: inherit;
1666
+ font-size: inherit;
1667
+ padding: var(--ig-space-tight);
1668
+ text-align: left;
1669
+ cursor: pointer;
1670
+ }
1671
+
1672
+ .ig-related-search {
1673
+ display: flex;
1674
+ flex-direction: column;
1675
+ gap: var(--ig-space-tight);
1676
+ margin-bottom: var(--ig-space-tight);
1677
+ color: var(--ig-text-muted);
1678
+ font-size: var(--ig-font-size-small);
1679
+ }
1680
+
1681
+ /* The list's own sentences: the empty states, and the search's status line
1682
+ (nothing matched, or how many the 60-row cut left out). All muted, at the
1683
+ size of the group counts. An empty status line takes no room with no
1684
+ margin, and it is never display: none, which would take the region out of
1685
+ the accessibility tree and lose the first announcement. */
1686
+ .ig-related-empty,
1687
+ .ig-related-status {
1688
+ margin: 0;
1689
+ color: var(--ig-text-muted);
1690
+ font-size: var(--ig-font-size-small);
1691
+ }
1692
+
1548
1693
  /* ONE KEY PER SURFACE, AND THE CANVAS KEEPS IT.
1549
1694
 
1550
1695
  Both zones hold a viewer, so both draw the grammar legend, and this surface
@@ -1754,5 +1899,117 @@ export const workspaceStylesheet = `
1754
1899
  justify-self: start;
1755
1900
  }
1756
1901
  }
1902
+
1903
+ /* THE PHONE LAYOUT: one view at a time, under the tabs.
1904
+
1905
+ THE TAB IS THE ROOT'S data-tab, which render.ts derives from the host's
1906
+ narrowView and canvas mode. The rail and the canvas zone share one grid
1907
+ area, and the tab decides which of them is drawn in it. The inspector is not
1908
+ drawn at this width.
1909
+
1910
+ THE TWO BLOCKS ABOVE ALSO MATCH HERE, because every condition in this sheet
1911
+ is single-sided, so each of their rules this layout disagrees with is
1912
+ answered below on a selector at least as specific, and source order settles
1913
+ it. That includes the collapsed and opened canvas: neither means anything
1914
+ when the canvas is a whole tab. */
1915
+ @container ig-workspace (width < 640px) {
1916
+ .ig-workspace {
1917
+ grid-template-areas:
1918
+ 'header'
1919
+ 'view';
1920
+ grid-template-columns: 1fr;
1921
+ }
1922
+
1923
+ .ig-workspace[data-canvas='open'] {
1924
+ grid-template-areas:
1925
+ 'header'
1926
+ 'view';
1927
+ grid-template-columns: 1fr;
1928
+ }
1929
+
1930
+ .ig-workspace .ig-zone[data-zone='rail'],
1931
+ .ig-workspace .ig-zone[data-zone='canvas'] {
1932
+ grid-area: view;
1933
+ }
1934
+
1935
+ .ig-workspace .ig-zone[data-zone='rail'] {
1936
+ border-right: 0;
1937
+ }
1938
+
1939
+ .ig-workspace .ig-narrow-tabs {
1940
+ display: flex;
1941
+ }
1942
+
1943
+ /* Every value of data-inspector, so the narrow block's 'dismissed' restore
1944
+ and the middle block's lifted panel are both answered. */
1945
+ .ig-workspace[data-inspector] .ig-zone[data-zone='inspector'] {
1946
+ display: none;
1947
+ }
1948
+
1949
+ .ig-workspace[data-tab='related'] .ig-zone[data-zone='rail'],
1950
+ .ig-workspace[data-tab='sub-issues'] .ig-zone[data-zone='rail'] {
1951
+ display: none;
1952
+ }
1953
+
1954
+ /* THE ORDER TAB HIDES THE CANVAS ZONE BUT NOT THE AUDIT OVERLAY IN IT. The
1955
+ header's problem count opens findings in that zone, and display:none would
1956
+ take them down with it on the one tab a reader starts on. visibility is the
1957
+ property a child can turn back on, and a hidden box is also out of hit
1958
+ testing, the tab order and the accessibility tree, so the rail beneath it
1959
+ stays the view. */
1960
+ .ig-workspace[data-tab='order'] .ig-zone[data-zone='canvas'] {
1961
+ visibility: hidden;
1962
+ }
1963
+
1964
+ .ig-workspace[data-tab='order'] .ig-zone[data-zone='canvas'] .ig-audit-overlay {
1965
+ visibility: visible;
1966
+ }
1967
+
1968
+ /* NO STRIP: the tabs are the way to the canvas here. */
1969
+ .ig-workspace[data-canvas] .ig-canvas-strip {
1970
+ display: none;
1971
+ }
1972
+
1973
+ /* THE COLLAPSED CANVAS IS UNDONE, rule by rule. The narrow block hides every
1974
+ child of the zone but the strip and the audit overlay, lets the zone spill
1975
+ and re-anchors the overlay to its leading edge. On the Sub-issues tab the
1976
+ zone's children are drawn again — the tree, the isolated list and the
1977
+ toolbar, which is a flex row; the ':not' on the toolbar's rule only lifts
1978
+ it to the specificity of the rule before it. */
1979
+ .ig-workspace[data-tab='sub-issues'][data-canvas='strip']
1980
+ .ig-zone[data-zone='canvas']
1981
+ > :not(.ig-canvas-strip):not(.ig-audit-overlay) {
1982
+ display: block;
1983
+ }
1984
+
1985
+ .ig-workspace[data-tab='sub-issues'][data-canvas='strip']
1986
+ .ig-zone[data-zone='canvas']
1987
+ > .ig-canvas-toolbar:not(.ig-audit-overlay) {
1988
+ display: flex;
1989
+ }
1990
+
1991
+ .ig-workspace[data-canvas='strip'] .ig-zone[data-zone='canvas'] {
1992
+ overflow: auto;
1993
+ }
1994
+
1995
+ .ig-workspace[data-canvas='strip'] .ig-zone[data-zone='canvas'] .ig-audit-overlay {
1996
+ left: auto;
1997
+ right: var(--ig-space-tight);
1998
+ width: min(calc(var(--ig-char-width) * 66.67), calc(100% - var(--ig-space-tight) * 2));
1999
+ max-height: calc(100% - var(--ig-space-tight) * 2);
2000
+ box-shadow: var(--ig-elevation-overlay);
2001
+ }
2002
+
2003
+ /* RELATED GROUPS SHOWS ONLY ITS LIST. The graph beneath it is the wide
2004
+ layouts' view of the same relationships, and a line needs two columns. The
2005
+ audit overlay is the exception, as it is in the collapsed canvas. */
2006
+ .ig-workspace[data-tab='related'] .ig-zone[data-zone='canvas'] > :not(.ig-related):not(.ig-audit-overlay) {
2007
+ display: none;
2008
+ }
2009
+
2010
+ .ig-workspace[data-tab='related'][data-canvas] .ig-zone[data-zone='canvas'] > .ig-related {
2011
+ display: block;
2012
+ }
2013
+ }
1757
2014
  `;
1758
2015
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/workspace/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAurDlC,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/workspace/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA67CjC,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0frB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@issuegraph/editor",
3
- "version": "0.24.0",
3
+ "version": "0.26.0",
4
4
  "description": "Everything that mutates an Issuegraph document: edit affordances drawn as overlays on a viewer, dispatching through a store. Composes the viewer and the store through their public surfaces and performs no write itself.",
5
5
  "keywords": [
6
6
  "issuegraph",
@@ -41,9 +41,9 @@
41
41
  "node": ">=18"
42
42
  },
43
43
  "dependencies": {
44
- "@issuegraph/core": "^0.1.3",
45
44
  "@issuegraph/store": "^0.2.0",
46
- "@issuegraph/viewer": "^0.11.0"
45
+ "@issuegraph/core": "^0.1.3",
46
+ "@issuegraph/viewer": "^0.13.0"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@types/jsdom": "^30.0.0",