@ankhorage/zora 25.11.0 → 26.0.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 (106) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -4
  3. package/dist/capabilities/index.js +65 -41
  4. package/dist/capabilities/index.js.map +3 -3
  5. package/dist/features/chess/adapters/inbound/ChessBoard.d.ts +1 -1
  6. package/dist/features/chess/adapters/inbound/ChessBoard.d.ts.map +1 -1
  7. package/dist/features/chess/adapters/inbound/ChessBoard.js +130 -83
  8. package/dist/features/chess/adapters/inbound/ChessBoard.js.map +1 -1
  9. package/dist/features/chess/meta.d.ts +97 -72
  10. package/dist/features/chess/meta.d.ts.map +1 -1
  11. package/dist/features/chess/meta.js +64 -40
  12. package/dist/features/chess/meta.js.map +1 -1
  13. package/dist/features/chess/public.d.ts +1 -7
  14. package/dist/features/chess/public.d.ts.map +1 -1
  15. package/dist/features/chess/public.js +0 -6
  16. package/dist/features/chess/public.js.map +1 -1
  17. package/dist/features/chess/utils/createChessBoardCellPressHandler.d.ts +6 -0
  18. package/dist/features/chess/utils/createChessBoardCellPressHandler.d.ts.map +1 -0
  19. package/dist/features/chess/utils/createChessBoardCellPressHandler.js +17 -0
  20. package/dist/features/chess/utils/createChessBoardCellPressHandler.js.map +1 -0
  21. package/dist/features/chess/utils/createChessBoardCells.d.ts +12 -0
  22. package/dist/features/chess/utils/createChessBoardCells.d.ts.map +1 -0
  23. package/dist/features/chess/utils/createChessBoardCells.js +28 -0
  24. package/dist/features/chess/utils/createChessBoardCells.js.map +1 -0
  25. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphController.d.ts +2 -0
  26. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphController.d.ts.map +1 -1
  27. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphController.js +68 -4
  28. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphController.js.map +1 -1
  29. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphResizeObserver.d.ts +3 -1
  30. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphResizeObserver.d.ts.map +1 -1
  31. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphResizeObserver.js +41 -8
  32. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphResizeObserver.js.map +1 -1
  33. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphRuntime.d.ts.map +1 -1
  34. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphRuntime.js +6 -2
  35. package/dist/features/graph-view/adapters/inbound/web-artifact/createGraphRuntime.js.map +1 -1
  36. package/dist/features/graph-view/adapters/inbound/web-artifact/shouldFitGraphAfterLayout.d.ts +2 -2
  37. package/dist/features/graph-view/adapters/inbound/web-artifact/shouldFitGraphAfterLayout.d.ts.map +1 -1
  38. package/dist/features/graph-view/adapters/inbound/web-artifact/shouldFitGraphAfterLayout.js +3 -3
  39. package/dist/features/graph-view/adapters/inbound/web-artifact/shouldFitGraphAfterLayout.js.map +1 -1
  40. package/dist/readerFree.d.ts +2 -2
  41. package/dist/readerFree.d.ts.map +1 -1
  42. package/dist/readerFree.js +1 -1
  43. package/dist/readerFree.js.map +1 -1
  44. package/dist/types/authoring.d.ts +2 -1
  45. package/dist/types/authoring.d.ts.map +1 -1
  46. package/dist/types/authoring.js.map +1 -1
  47. package/dist/types/chess.d.ts +27 -20
  48. package/dist/types/chess.d.ts.map +1 -1
  49. package/dist/types/chess.js.map +1 -1
  50. package/package.json +31 -92
  51. package/src/features/chess/adapters/inbound/ChessBoard.tsx +263 -112
  52. package/src/features/chess/meta.ts +64 -40
  53. package/src/features/chess/public.test.tsx +77 -228
  54. package/src/features/chess/public.ts +2 -9
  55. package/src/features/chess/utils/createChessBoardCellPressHandler.ts +30 -0
  56. package/src/features/chess/utils/createChessBoardCells.ts +54 -0
  57. package/src/features/chessTabletopOwnership.test.ts +3 -7
  58. package/src/features/graph-view/adapters/inbound/web-artifact/createGraphController.test.ts +145 -1
  59. package/src/features/graph-view/adapters/inbound/web-artifact/createGraphController.ts +86 -5
  60. package/src/features/graph-view/adapters/inbound/web-artifact/createGraphResizeObserver.test.ts +163 -6
  61. package/src/features/graph-view/adapters/inbound/web-artifact/createGraphResizeObserver.ts +57 -8
  62. package/src/features/graph-view/adapters/inbound/web-artifact/createGraphRuntime.test.ts +42 -0
  63. package/src/features/graph-view/adapters/inbound/web-artifact/createGraphRuntime.ts +7 -1
  64. package/src/features/graph-view/adapters/inbound/web-artifact/shouldFitGraphAfterLayout.test.ts +7 -3
  65. package/src/features/graph-view/adapters/inbound/web-artifact/shouldFitGraphAfterLayout.ts +7 -3
  66. package/src/features/registry/componentMeta.test.ts +12 -1
  67. package/src/readerFree.ts +3 -15
  68. package/src/types/authoring.ts +2 -1
  69. package/src/types/chess.ts +28 -21
  70. package/web-dist/chunks/Accordion-91sjb3zh.js +453 -0
  71. package/web-dist/components/chess-board/ChessBoard.js +2 -1
  72. package/web-dist/components/graph-view/GraphView.js +107 -17
  73. package/web-dist/components/opening-book/OpeningBook.js +2 -1
  74. package/web-dist/manifest.json +8 -4
  75. package/dist/features/chess/utils/chessEngine.d.ts +0 -8
  76. package/dist/features/chess/utils/chessEngine.d.ts.map +0 -1
  77. package/dist/features/chess/utils/chessEngine.js +0 -71
  78. package/dist/features/chess/utils/chessEngine.js.map +0 -1
  79. package/dist/features/chess/utils/chessSquares.d.ts +0 -4
  80. package/dist/features/chess/utils/chessSquares.d.ts.map +0 -1
  81. package/dist/features/chess/utils/chessSquares.js +0 -3
  82. package/dist/features/chess/utils/chessSquares.js.map +0 -1
  83. package/dist/features/chess/utils/createBoardSquares.d.ts +0 -4
  84. package/dist/features/chess/utils/createBoardSquares.d.ts.map +0 -1
  85. package/dist/features/chess/utils/createBoardSquares.js +0 -9
  86. package/dist/features/chess/utils/createBoardSquares.js.map +0 -1
  87. package/dist/features/chess/utils/getSquareFile.d.ts +0 -4
  88. package/dist/features/chess/utils/getSquareFile.d.ts.map +0 -1
  89. package/dist/features/chess/utils/getSquareFile.js +0 -5
  90. package/dist/features/chess/utils/getSquareFile.js.map +0 -1
  91. package/dist/features/chess/utils/getSquareRank.d.ts +0 -4
  92. package/dist/features/chess/utils/getSquareRank.d.ts.map +0 -1
  93. package/dist/features/chess/utils/getSquareRank.js +0 -5
  94. package/dist/features/chess/utils/getSquareRank.js.map +0 -1
  95. package/dist/features/chess/utils/isLightSquare.d.ts +0 -4
  96. package/dist/features/chess/utils/isLightSquare.d.ts.map +0 -1
  97. package/dist/features/chess/utils/isLightSquare.js +0 -6
  98. package/dist/features/chess/utils/isLightSquare.js.map +0 -1
  99. package/src/features/chess/utils/chessEngine.test.ts +0 -35
  100. package/src/features/chess/utils/chessEngine.ts +0 -83
  101. package/src/features/chess/utils/chessSquares.ts +0 -6
  102. package/src/features/chess/utils/createBoardSquares.ts +0 -13
  103. package/src/features/chess/utils/getSquareFile.ts +0 -6
  104. package/src/features/chess/utils/getSquareRank.ts +0 -6
  105. package/src/features/chess/utils/isLightSquare.ts +0 -8
  106. package/web-dist/chunks/Accordion-xcm1qc39.js +0 -3813
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 26.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - c8fa749: Refactor ChessBoard into a configurable GridView-backed presentation component with caller-owned cells, dimensions, and move intents. Remove FEN parsing, move validation, and chess.js from ZORA.
8
+
9
+ ## 25.11.1
10
+
11
+ ### Patch Changes
12
+
13
+ - 8653d18: Stabilize GraphView automatic fitting after layout changes and preserve manual viewport intent across resize updates.
14
+
3
15
  ## 25.11.0
4
16
 
5
17
  ### Minor Changes
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  # @ankhorage/zora
5
5
 
6
- ![license: MIT](././paradox/badges/license.svg) ![npm: v25.11.0](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![paradox: warnings](././paradox/badges/docs.svg)
6
+ ![license: MIT](././paradox/badges/license.svg) ![npm: v26.0.0](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![paradox: warnings](././paradox/badges/docs.svg)
7
7
 
8
8
  Opinionated React Native and React Native Web UI kit built on @ankhorage/surface.
9
9
 
@@ -64,10 +64,8 @@ This package contains 6 additional examples. See the generated documentation for
64
64
  - [Export graph](././paradox/diagrams/export-graph.mmd)
65
65
  - [createPokerTrainingTableState sequence](././paradox/diagrams/sequences/create-poker-training-table-state.mmd)
66
66
  - [createZoraThemeConfig sequence](././paradox/diagrams/sequences/create-zora-theme-config.mmd)
67
- - [getLegalTargets sequence](././paradox/diagrams/sequences/get-legal-targets.mmd)
68
67
  - [GridInteractions sequence](././paradox/diagrams/sequences/grid-interactions.mmd)
69
68
  - [GridView sequence](././paradox/diagrams/sequences/grid-view.mmd)
70
- - [readChessPieces sequence](././paradox/diagrams/sequences/read-chess-pieces.mmd)
71
69
  - [resolveAvatarInitials sequence](././paradox/diagrams/sequences/resolve-avatar-initials.mmd)
72
70
  - [resolveExplorerSelection sequence](././paradox/diagrams/sequences/resolve-explorer-selection.mmd)
73
71
  - [resolveGridRulerMarks sequence](././paradox/diagrams/sequences/resolve-grid-ruler-marks.mmd)
@@ -75,7 +73,6 @@ This package contains 6 additional examples. See the generated documentation for
75
73
  - [resolveOAuthProviderLabel sequence](././paradox/diagrams/sequences/resolve-oauth-provider-label.mmd)
76
74
  - [resolveTimeGridVisibleIntervals sequence](././paradox/diagrams/sequences/resolve-time-grid-visible-intervals.mmd)
77
75
  - [SelectionProvider sequence](././paradox/diagrams/sequences/selection-provider.mmd)
78
- - [tryMove sequence](././paradox/diagrams/sequences/try-move.mmd)
79
76
  - [useZoraTheme sequence](././paradox/diagrams/sequences/use-zora-theme.mmd)
80
77
  - [validateField sequence](././paradox/diagrams/sequences/validate-field.mmd)
81
78
  - [validateFields sequence](././paradox/diagrams/sequences/validate-fields.mmd)
@@ -1557,42 +1557,31 @@ var chessBoardMeta = {
1557
1557
  allowedChildren: [],
1558
1558
  blueprint: {
1559
1559
  label: "Chess board",
1560
- defaultProps: { pieces: [], orientation: "white", showCoordinates: true, validateMoves: true }
1560
+ defaultProps: {
1561
+ columns: 8,
1562
+ pieces: [],
1563
+ orientation: "white",
1564
+ rows: 8,
1565
+ showCoordinates: true
1566
+ }
1561
1567
  },
1562
1568
  events: {
1563
- squarePress: {
1564
- label: "Square press",
1565
- eventType: "chess.squarePress",
1566
- payloadFields: [{ path: "square", type: "string", label: "Square" }]
1569
+ cellPress: {
1570
+ label: "Cell press",
1571
+ eventType: "chess.cellPress",
1572
+ payloadFields: [
1573
+ { path: "column", type: "number", label: "Column" },
1574
+ { path: "row", type: "number", label: "Row" }
1575
+ ]
1567
1576
  },
1568
1577
  moveAttempt: {
1569
1578
  label: "Move attempt",
1570
1579
  eventType: "chess.moveAttempt",
1571
1580
  payloadFields: [
1572
- { path: "from", type: "string", label: "From" },
1573
- { path: "to", type: "string", label: "To" },
1574
- { path: "promotion", type: "string", label: "Promotion" }
1575
- ]
1576
- },
1577
- legalMove: {
1578
- label: "Legal move",
1579
- eventType: "chess.legalMove",
1580
- payloadFields: [
1581
- { path: "from", type: "string", label: "From" },
1582
- { path: "to", type: "string", label: "To" },
1583
- { path: "fen", type: "string", label: "Position" },
1584
- { path: "san", type: "string", label: "SAN" },
1585
- { path: "lan", type: "string", label: "LAN" },
1586
- { path: "promotion", type: "string", label: "Promotion" }
1587
- ]
1588
- },
1589
- invalidMove: {
1590
- label: "Invalid move",
1591
- eventType: "chess.invalidMove",
1592
- payloadFields: [
1593
- { path: "from", type: "string", label: "From" },
1594
- { path: "to", type: "string", label: "To" },
1595
- { path: "promotion", type: "string", label: "Promotion" }
1581
+ { path: "from.column", type: "number", label: "From column" },
1582
+ { path: "from.row", type: "number", label: "From row" },
1583
+ { path: "to.column", type: "number", label: "To column" },
1584
+ { path: "to.row", type: "number", label: "To row" }
1596
1585
  ]
1597
1586
  }
1598
1587
  },
@@ -1604,19 +1593,46 @@ var chessBoardMeta = {
1604
1593
  acceptsFallback: true,
1605
1594
  acceptsTransforms: true
1606
1595
  },
1596
+ selectedCell: {
1597
+ label: "Selected cell",
1598
+ value: {
1599
+ type: "object",
1600
+ fields: [
1601
+ { path: "column", type: "number", label: "Column" },
1602
+ { path: "row", type: "number", label: "Row" }
1603
+ ]
1604
+ },
1605
+ acceptsFallback: true,
1606
+ acceptsTransforms: true
1607
+ },
1607
1608
  legalTargets: {
1608
1609
  label: "Legal targets",
1609
- value: { type: "array", itemType: "string" },
1610
+ value: {
1611
+ type: "array",
1612
+ itemType: "object",
1613
+ fields: [
1614
+ { path: "[].column", type: "number", label: "Column" },
1615
+ { path: "[].row", type: "number", label: "Row" }
1616
+ ]
1617
+ },
1610
1618
  acceptsFallback: true,
1611
1619
  acceptsTransforms: true
1612
1620
  }
1613
1621
  }
1614
1622
  },
1615
1623
  props: {
1616
- fen: {
1617
- type: "string",
1618
- category: "Position",
1619
- label: "FEN",
1624
+ columns: {
1625
+ type: "number",
1626
+ category: "Board",
1627
+ label: "Columns",
1628
+ default: 8,
1629
+ authoring: { authority: "instance" }
1630
+ },
1631
+ rows: {
1632
+ type: "number",
1633
+ category: "Board",
1634
+ label: "Rows",
1635
+ default: 8,
1620
1636
  authoring: { authority: "instance" }
1621
1637
  },
1622
1638
  pieces: {
@@ -1634,10 +1650,14 @@ var chessBoardMeta = {
1634
1650
  default: "white",
1635
1651
  authoring: { authority: "instance" }
1636
1652
  },
1637
- selectedSquare: {
1638
- type: "string",
1653
+ selectedCell: {
1654
+ type: "object",
1639
1655
  category: "Board",
1640
- label: "Selected square",
1656
+ label: "Selected cell",
1657
+ itemSchema: [
1658
+ { key: "column", schema: { type: "number", category: "Cell" } },
1659
+ { key: "row", schema: { type: "number", category: "Cell" } }
1660
+ ],
1641
1661
  authoring: { authority: "instance" }
1642
1662
  },
1643
1663
  legalTargets: {
@@ -1645,6 +1665,10 @@ var chessBoardMeta = {
1645
1665
  category: "Board",
1646
1666
  label: "Legal targets",
1647
1667
  default: [],
1668
+ itemSchema: [
1669
+ { key: "column", schema: { type: "number", category: "Cell" } },
1670
+ { key: "row", schema: { type: "number", category: "Cell" } }
1671
+ ],
1648
1672
  authoring: { authority: "instance" }
1649
1673
  },
1650
1674
  showCoordinates: {
@@ -1654,11 +1678,11 @@ var chessBoardMeta = {
1654
1678
  default: false,
1655
1679
  authoring: { authority: "instance" }
1656
1680
  },
1657
- validateMoves: {
1681
+ resizable: {
1658
1682
  type: "boolean",
1659
1683
  category: "Behavior",
1660
- label: "Validate moves",
1661
- default: true,
1684
+ label: "Resizable",
1685
+ default: false,
1662
1686
  authoring: { authority: "instance" }
1663
1687
  },
1664
1688
  disabled: {
@@ -6163,4 +6187,4 @@ export {
6163
6187
  CAPABILITIES
6164
6188
  };
6165
6189
 
6166
- //# debugId=F77F051A44832D0464756E2164756E21
6190
+ //# debugId=45D3B5BB1C0C641664756E2164756E21