@likec4/diagram 1.45.0 → 1.46.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 (202) hide show
  1. package/bundle/index.js +2134 -1652
  2. package/dist/LikeC4Diagram.d.ts +1 -1
  3. package/dist/LikeC4Diagram.js +8 -7
  4. package/dist/LikeC4Diagram.props.d.ts +4 -12
  5. package/dist/LikeC4ProjectsProvider.js +8 -4
  6. package/dist/LikeC4View.js +1 -5
  7. package/dist/ReactLikeC4.d.ts +1 -4
  8. package/dist/StaticLikeC4Diagram.js +0 -2
  9. package/dist/base-primitives/NodeHandles.d.ts +2 -1
  10. package/dist/base-primitives/NodeHandles.js +22 -18
  11. package/dist/base-primitives/compound/CompoundActionButton.js +1 -1
  12. package/dist/base-primitives/compound/CompoundDetailsButton.js +1 -1
  13. package/dist/base-primitives/edge/EdgeActionButton.js +1 -1
  14. package/dist/base-primitives/edge/EdgeContainer.d.ts +1 -1
  15. package/dist/base-primitives/edge/EdgeContainer.js +2 -3
  16. package/dist/base-primitives/edge/EdgeLabel.js +16 -16
  17. package/dist/base-primitives/edge/EdgeLabelContainer.d.ts +1 -1
  18. package/dist/base-primitives/edge/EdgeLabelContainer.js +5 -4
  19. package/dist/base-primitives/edge/EdgePath.js +13 -18
  20. package/dist/base-primitives/element/ElementActionButtons.js +1 -1
  21. package/dist/base-primitives/element/ElementDetailsButton.js +1 -1
  22. package/dist/components/ErrorFallback.js +1 -1
  23. package/dist/components/Link.js +2 -2
  24. package/dist/context/DiagramEventHandlers.js +0 -1
  25. package/dist/context/DiagramFeatures.d.ts +1 -1
  26. package/dist/context/DiagramFeatures.js +1 -0
  27. package/dist/context/EnsureMantine.js +2 -1
  28. package/dist/context/IconRenderer.js +6 -6
  29. package/dist/editor/LikeC4EditorProvider.d.ts +22 -0
  30. package/dist/editor/LikeC4EditorProvider.js +12 -0
  31. package/dist/editor/__tests__/fixture.d.ts +205 -0
  32. package/dist/editor/applyChangesToManualLayout.d.ts +8 -0
  33. package/dist/editor/applyChangesToManualLayout.js +182 -0
  34. package/dist/editor/editorActor.actions.d.ts +201 -0
  35. package/dist/editor/editorActor.actions.js +149 -0
  36. package/dist/editor/editorActor.d.ts +653 -0
  37. package/dist/editor/editorActor.js +324 -0
  38. package/dist/editor/hotkeyActor.d.ts +7 -0
  39. package/dist/editor/hotkeyActor.js +19 -0
  40. package/dist/editor/index.d.ts +3 -2
  41. package/dist/editor/useEditorActorLogic.d.ts +565 -0
  42. package/dist/editor/useEditorActorLogic.js +54 -0
  43. package/dist/hooks/safeContext.d.ts +3 -2
  44. package/dist/hooks/safeContext.js +7 -4
  45. package/dist/hooks/useDiagram.d.ts +4 -2
  46. package/dist/hooks/useDiagram.js +19 -8
  47. package/dist/hooks/useDiagramCompareLayout.d.ts +8 -0
  48. package/dist/hooks/useDiagramCompareLayout.js +22 -2
  49. package/dist/index.d.ts +1 -0
  50. package/dist/index.js +1 -0
  51. package/dist/likec4diagram/DiagramXYFlow.js +1 -2
  52. package/dist/likec4diagram/custom/edges/EdgeDrifts.js +1 -5
  53. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +74 -48
  54. package/dist/likec4diagram/custom/edges/edges.css.d.ts +0 -1
  55. package/dist/likec4diagram/custom/edges/edges.css.js +30 -24
  56. package/dist/likec4diagram/custom/edges/useControlPoints.js +2 -2
  57. package/dist/likec4diagram/custom/nodes/ElementActions.js +2 -2
  58. package/dist/likec4diagram/custom/nodes/NodeDrifts.js +4 -9
  59. package/dist/likec4diagram/custom/nodes/nodes.js +3 -6
  60. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.js +2 -2
  61. package/dist/likec4diagram/custom/nodes/toolbar/_shared.js +2 -2
  62. package/dist/likec4diagram/relationship-popover/RelationshipPopover.js +127 -14
  63. package/dist/likec4diagram/state/DiagramActorProvider.js +63 -71
  64. package/dist/likec4diagram/state/assign.d.ts +4 -1
  65. package/dist/likec4diagram/state/assign.js +11 -8
  66. package/dist/likec4diagram/state/createViewChange.js +13 -9
  67. package/dist/likec4diagram/state/diagram-api.d.ts +20 -2
  68. package/dist/likec4diagram/state/diagram-api.js +58 -44
  69. package/dist/likec4diagram/state/hotkeyActor.d.ts +1 -1
  70. package/dist/likec4diagram/state/hotkeyActor.js +12 -0
  71. package/dist/likec4diagram/state/machine.actions.d.ts +774 -195
  72. package/dist/likec4diagram/state/machine.actions.js +185 -74
  73. package/dist/likec4diagram/state/machine.actions.layout.d.ts +93 -31
  74. package/dist/likec4diagram/state/machine.actions.layout.js +16 -4
  75. package/dist/likec4diagram/state/machine.d.ts +5 -4
  76. package/dist/likec4diagram/state/machine.js +11 -6
  77. package/dist/likec4diagram/state/machine.setup.d.ts +20 -9
  78. package/dist/likec4diagram/state/machine.setup.js +18 -3
  79. package/dist/likec4diagram/state/machine.state.initializing.d.ts +34 -18
  80. package/dist/likec4diagram/state/machine.state.initializing.js +10 -10
  81. package/dist/likec4diagram/state/machine.state.navigating.js +28 -9
  82. package/dist/likec4diagram/state/machine.state.ready.d.ts +1368 -434
  83. package/dist/likec4diagram/state/machine.state.ready.focused.d.ts +363 -39
  84. package/dist/likec4diagram/state/machine.state.ready.focused.js +17 -4
  85. package/dist/likec4diagram/state/machine.state.ready.idle.d.ts +104 -38
  86. package/dist/likec4diagram/state/machine.state.ready.idle.js +14 -5
  87. package/dist/likec4diagram/state/machine.state.ready.js +13 -90
  88. package/dist/likec4diagram/state/machine.state.ready.printing.d.ts +18 -6
  89. package/dist/likec4diagram/state/machine.state.ready.walkthrough.d.ts +204 -31
  90. package/dist/likec4diagram/state/machine.state.ready.walkthrough.js +14 -1
  91. package/dist/likec4diagram/state/types.d.ts +6 -2
  92. package/dist/likec4diagram/state/utils.d.ts +33 -7
  93. package/dist/likec4diagram/state/utils.js +23 -7
  94. package/dist/likec4diagram/ui/notation/NotationPanel.js +3 -3
  95. package/dist/likec4diagram/useLayoutConstraints.js +5 -9
  96. package/dist/navigationpanel/NavigationPanel.js +6 -9
  97. package/dist/navigationpanel/NavigationPanelDropdown.js +7 -7
  98. package/dist/navigationpanel/_common.js +1 -1
  99. package/dist/navigationpanel/comparepanel/CompareActionsMenu.d.ts +3 -1
  100. package/dist/navigationpanel/comparepanel/CompareActionsMenu.js +40 -14
  101. package/dist/navigationpanel/comparepanel/ComparePanelControls.js +6 -4
  102. package/dist/navigationpanel/comparepanel/LayoutTypeSwitcher.js +2 -2
  103. package/dist/navigationpanel/controls/DetailsControls.js +2 -2
  104. package/dist/navigationpanel/controls/LayoutWarning.js +2 -1
  105. package/dist/navigationpanel/controls/NavigationButtons.js +2 -2
  106. package/dist/navigationpanel/controls/OpenSource.js +1 -1
  107. package/dist/navigationpanel/controls/SearchControl.js +2 -2
  108. package/dist/navigationpanel/controls/ToggleReadonly.js +25 -17
  109. package/dist/navigationpanel/dropdown/ProjectsMenu.js +1 -1
  110. package/dist/navigationpanel/editorpanel/CenterCamera.js +1 -1
  111. package/dist/navigationpanel/editorpanel/ChangeAutoLayoutButton.js +1 -1
  112. package/dist/navigationpanel/editorpanel/ManualLayoutToolsButton.js +9 -9
  113. package/dist/navigationpanel/editorpanel/ToggleReadonly.js +1 -1
  114. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.js +3 -3
  115. package/dist/navigationpanel/walkthrough/DynamicViewControls.d.ts +66 -66
  116. package/dist/navigationpanel/walkthrough/DynamicViewControls.js +1 -1
  117. package/dist/overlays/Overlays.js +24 -12
  118. package/dist/overlays/element-details/ElementDetailsCard.js +4 -4
  119. package/dist/overlays/element-details/MetadataValue.js +4 -6
  120. package/dist/overlays/element-details/TabPanelDeployments.js +3 -3
  121. package/dist/overlays/element-details/TabPanelRelationships.js +12 -7
  122. package/dist/overlays/element-details/TabPanelStructure.js +1 -1
  123. package/dist/overlays/overlaysActor.js +6 -3
  124. package/dist/overlays/relationship-details/RelationshipDetails.js +3 -3
  125. package/dist/overlays/relationship-details/SelectEdge.js +2 -2
  126. package/dist/overlays/relationship-details/custom/ElementActions.js +3 -3
  127. package/dist/overlays/relationships-browser/RelationshipsBrowser.js +3 -3
  128. package/dist/overlays/relationships-browser/SelectElement.js +2 -2
  129. package/dist/overlays/relationships-browser/custom/ElementActions.js +3 -3
  130. package/dist/search/components/ElementsColumn.js +7 -3
  131. package/dist/search/components/PickView.js +3 -1
  132. package/dist/search/components/SearchByTags.js +1 -1
  133. package/dist/search/components/SearchInput.js +1 -1
  134. package/dist/search/components/ViewsColum.d.ts +3 -1
  135. package/dist/search/components/ViewsColum.js +13 -7
  136. package/dist/shadowroot/styles.css.js +6 -1
  137. package/dist/styles.css2.js +1 -1
  138. package/dist/utils/index.d.ts +2 -2
  139. package/dist/utils/xyflow.d.ts +2 -3
  140. package/dist/utils/xyflow.js +9 -8
  141. package/package.json +17 -17
  142. package/panda.buildinfo.json +59 -77
  143. package/styles-min.css +1 -1
  144. package/styles.css +1 -1
  145. package/dist/base-primitives/edge/edge.css.d.ts +0 -4
  146. package/dist/base-primitives/edge/edge.css.js +0 -71
  147. package/dist/editor/LikeC4EditorContext.d.ts +0 -21
  148. package/dist/likec4diagram/state/syncManualLayoutActor.d.ts +0 -46
  149. package/dist/likec4diagram/state/syncManualLayoutActor.js +0 -309
  150. package/dist/utils/vector.d.ts +0 -86
  151. package/dist/utils/vector.js +0 -127
  152. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/createReactComponent.js +0 -0
  153. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.js +0 -0
  154. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertTriangle.js +0 -0
  155. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowDownRight.js +0 -0
  156. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowLeft.js +0 -0
  157. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.js +0 -0
  158. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconBolt.js +0 -0
  159. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconBrowser.js +0 -0
  160. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.js +0 -0
  161. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.js +0 -0
  162. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.js +0 -0
  163. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.js +0 -0
  164. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.js +0 -0
  165. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconCylinder.js +0 -0
  166. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceMobile.js +0 -0
  167. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconDirectionSignFilled.js +0 -0
  168. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconExternalLink.js +0 -0
  169. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconFileSymlink.js +0 -0
  170. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconFocusCentered.js +0 -0
  171. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconFolderFilled.js +0 -0
  172. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconHelpCircle.js +0 -0
  173. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconId.js +0 -0
  174. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.js +0 -0
  175. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignBottom.js +0 -0
  176. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignCenter.js +0 -0
  177. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignLeft.js +0 -0
  178. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignMiddle.js +0 -0
  179. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignRight.js +0 -0
  180. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignTop.js +0 -0
  181. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutBoardSplit.js +0 -0
  182. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutCollage.js +0 -0
  183. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutDashboard.js +0 -0
  184. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLink.js +0 -0
  185. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLock.js +0 -0
  186. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconLockOpen2.js +0 -0
  187. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPlayFilled.js +0 -0
  188. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipBackFilled.js +0 -0
  189. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipForwardFilled.js +0 -0
  190. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerStopFilled.js +0 -0
  191. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconRectangularPrism.js +0 -0
  192. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconReorder.js +0 -0
  193. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconRouteOff.js +0 -0
  194. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.js +0 -0
  195. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconSelector.js +0 -0
  196. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconStack2.js +0 -0
  197. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconStarFilled.js +0 -0
  198. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconTarget.js +0 -0
  199. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconTransform.js +0 -0
  200. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconUser.js +0 -0
  201. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconX.js +0 -0
  202. /package/dist/node_modules/.pnpm/{@tabler_icons-react@3.35.0_react@19.2.0 → @tabler_icons-react@3.35.0_react@19.2.1}/node_modules/@tabler/icons-react/dist/esm/icons/IconZoomScan.js +0 -0
@@ -1,5 +1,5 @@
1
- export { Vector, vector } from './vector';
2
- export type { VectorValue } from './vector';
1
+ export { Vector, vector } from '@likec4/core/geometry';
2
+ export type { VectorValue } from '@likec4/core/geometry';
3
3
  export { bezierControlPoints, bezierPath, distance, distanceBetweenPoints, extractMinimalInternalNode, getNodeCenter, getNodeIntersection, getNodeIntersectionFromCenterToPoint, isEqualMinimalInternalNodes, isInside, isSamePoint, type MinimalInternalNode, nodeToRect, stopPropagation, } from './xyflow';
4
4
  export { roundDpr } from './roundDpr';
5
5
  export { pickViewBounds } from './view-bounds';
@@ -1,8 +1,7 @@
1
- import { NonEmptyArray, Point, BBox } from '@likec4/core';
1
+ import { NonEmptyArray, Point, BBox, Vector } from '@likec4/core';
2
2
  import { InternalNode, Rect, XYPosition, Position } from '@xyflow/react';
3
3
  import { NodeHandle } from '@xyflow/system';
4
4
  import { MouseEvent as ReactMouseEvent } from 'react';
5
- import { Vector } from './vector';
6
5
  export declare function distance(a: XYPosition, b: XYPosition): number;
7
6
  /**
8
7
  * Minimal type to access only needed properties of InternalNode
@@ -59,7 +58,7 @@ export declare function getNodeIntersection(intersectionNode: MinimalInternalNod
59
58
  * @returns `true` if the `test` rectangle is completely inside the `target` rectangle, otherwise `false`.
60
59
  */
61
60
  export declare const isInside: (test: Rect, target: Rect) => boolean;
62
- export declare function bezierControlPoints(points: NonEmptyArray<Point>): XYPosition[];
61
+ export declare function bezierControlPoints(points: NonEmptyArray<Point>): NonEmptyArray<XYPosition>;
63
62
  export declare function isSamePoint(a: XYPosition | Point, b: XYPosition | Point): boolean;
64
63
  export declare function distanceBetweenPoints(a: XYPosition, b: XYPosition): number;
65
64
  export declare function stopPropagation(e: ReactMouseEvent): void;
@@ -1,10 +1,10 @@
1
1
  import { BBox } from '@likec4/core';
2
+ import { vector } from '@likec4/core/geometry';
2
3
  import { invariant } from '@likec4/core/utils';
3
4
  import '@xyflow/react';
4
5
  import { getNodeDimensions } from '@xyflow/system';
5
6
  import { Bezier } from 'bezier-js';
6
7
  import { isArray, hasAtLeast } from 'remeda';
7
- import { vector } from './vector.js';
8
8
 
9
9
  function isEqualRects(a, b) {
10
10
  return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
@@ -56,15 +56,16 @@ function bezierControlPoints(points) {
56
56
  start = end;
57
57
  }
58
58
  invariant(bezierPoints.length === 0, "all points should be consumed");
59
+ invariant(hasAtLeast(handles, 1), "at least one control point should be generated");
59
60
  return handles;
60
61
  }
61
- const isClose = (a, b) => {
62
- return Math.abs(a - b) < 3.1;
63
- };
64
62
  function isSamePoint(a, b) {
65
- const [ax, ay] = isArray(a) ? a : [a.x, a.y];
66
- const [bx, by] = isArray(b) ? b : [b.x, b.y];
67
- return isClose(ax, bx) && isClose(ay, by);
63
+ const pointA = isArray(a) ? { x: a[0], y: a[1] } : a;
64
+ const pointB = isArray(b) ? { x: b[0], y: b[1] } : b;
65
+ return distanceBetweenPoints(pointA, pointB) < 2.1;
66
+ }
67
+ function distanceBetweenPoints(a, b) {
68
+ return Math.hypot(b.x - a.x, b.y - a.y);
68
69
  }
69
70
  function stopPropagation(e) {
70
71
  return e.stopPropagation();
@@ -82,4 +83,4 @@ function bezierPath(bezierSpline) {
82
83
  return path;
83
84
  }
84
85
 
85
- export { bezierControlPoints, bezierPath, getNodeCenter, getNodeIntersectionFromCenterToPoint, isEqualRects, isSamePoint, nodeToRect, stopPropagation };
86
+ export { bezierControlPoints, bezierPath, distanceBetweenPoints, getNodeCenter, getNodeIntersectionFromCenterToPoint, isEqualRects, isSamePoint, nodeToRect, stopPropagation };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@likec4/diagram",
3
- "version": "1.45.0",
3
+ "version": "1.46.0",
4
4
  "license": "MIT",
5
5
  "bugs": "https://github.com/likec4/likec4/issues",
6
6
  "homepage": "https://likec4.dev",
@@ -62,7 +62,7 @@
62
62
  "./package.json": "./package.json"
63
63
  },
64
64
  "dependencies": {
65
- "@dagrejs/dagre": "1.1.5",
65
+ "@dagrejs/dagre": "1.1.8",
66
66
  "@floating-ui/dom": "^1.7.4",
67
67
  "@lume/kiwi": "^0.4.4",
68
68
  "@mantine/core": "8.3.9",
@@ -71,25 +71,25 @@
71
71
  "@nanostores/media-query": "0.1.2",
72
72
  "@react-hookz/web": "^25.2.0",
73
73
  "@xstate/react": "6.0.0",
74
- "@xyflow/react": "12.9.3",
75
- "@xyflow/system": "0.0.73",
74
+ "@xyflow/react": "12.10.0",
75
+ "@xyflow/system": "0.0.74",
76
76
  "immer": "^10.2.0",
77
77
  "bezier-js": "^6.1.4",
78
78
  "d3-shape": "^3.2.0",
79
79
  "fast-equals": "^5.3.3",
80
80
  "khroma": "2.1.0",
81
- "motion": "^12.23.24",
81
+ "motion": "^12.23.25",
82
82
  "nanostores": "1.1.0",
83
83
  "react-error-boundary": "^6.0.0",
84
84
  "react-shadow": "^20.6.0",
85
85
  "remeda": "^2.32.0",
86
86
  "type-fest": "^4.41.0",
87
87
  "xstate": "5.24.0",
88
- "@likec4/core": "1.45.0",
89
- "@likec4/styles": "1.45.0"
88
+ "@likec4/core": "1.46.0",
89
+ "@likec4/styles": "1.46.0"
90
90
  },
91
91
  "peerDependencies": {
92
- "@pandacss/dev": "^1.5.1",
92
+ "@pandacss/dev": "^1.6.1",
93
93
  "@types/react": "^18.x || ^19.x",
94
94
  "@types/react-dom": "^18.x || ^19.x",
95
95
  "react": "^18.x || ^19.x",
@@ -107,27 +107,27 @@
107
107
  }
108
108
  },
109
109
  "devDependencies": {
110
- "@pandacss/dev": "^1.5.1",
110
+ "@pandacss/dev": "^1.6.1",
111
111
  "@statelyai/inspect": "^0.4.0",
112
112
  "@tabler/icons-react": "3.35.0",
113
113
  "@types/bezier-js": "^4.1.3",
114
114
  "@types/d3-shape": "^3.1.7",
115
- "@types/node": "~20.19.22",
116
- "@types/react": "19.2.6",
115
+ "@types/node": "~22.19.1",
116
+ "@types/react": "19.2.7",
117
117
  "@types/react-dom": "19.2.3",
118
118
  "@vitejs/plugin-react": "^5.1.1",
119
- "oxlint": "1.29.0",
119
+ "oxlint": "1.31.0",
120
120
  "postcss": "8.5.6",
121
- "react": "19.2.0",
122
- "react-dom": "19.2.0",
121
+ "react": "19.2.1",
122
+ "react-dom": "19.2.1",
123
123
  "typescript": "5.9.3",
124
- "vite": "^7.2.4",
124
+ "vite": "^7.2.6",
125
125
  "vite-plugin-dts": "^4.5.4",
126
- "vitest": "4.0.13",
126
+ "vitest": "4.0.15",
127
127
  "wireit": "0.14.12",
128
128
  "zx": "8.8.5",
129
129
  "@likec4/devops": "1.42.0",
130
- "@likec4/tsconfig": "1.45.0"
130
+ "@likec4/tsconfig": "1.46.0"
131
131
  },
132
132
  "scripts": {
133
133
  "typecheck": "tsc --build --verbose",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "1.5.1",
2
+ "schemaVersion": "1.6.1",
3
3
  "styles": {
4
4
  "atomic": [
5
5
  "background]___[value:dots",
@@ -217,35 +217,6 @@
217
217
  "transitionDelay]___[value:0s]___[cond:_hover",
218
218
  "lineClamp]___[value:5",
219
219
  "fill]___[value:none",
220
- "visibility]___[value:hidden",
221
- "offsetDistance]___[value:50%",
222
- "transition]___[value:none]___[cond:_reduceGraphics",
223
- "strokeWidth]___[value:calc(var(--xy-edge-stroke-width) + 2)",
224
- "strokeOpacity]___[value:0.08",
225
- "transitionProperty]___[value:stroke-width, stroke-opacity]___[cond:_noReduceGraphics",
226
- "transitionDuration]___[value:fast]___[cond:_noReduceGraphics",
227
- "transitionTimingFunction]___[value:inOut]___[cond:_noReduceGraphics",
228
- "transitionTimingFunction]___[value:out]___[cond:_whenHovered",
229
- "strokeWidth]___[value:calc(var(--xy-edge-stroke-width) + 4)]___[cond:_whenHovered",
230
- "strokeOpacity]___[value:0.2]___[cond:_whenHovered",
231
- "strokeWidth]___[value:calc(var(--xy-edge-stroke-width) + 6)]___[cond:_whenSelected",
232
- "strokeOpacity]___[value:0.25]___[cond:_whenSelected",
233
- "strokeOpacity]___[value:0.4]___[cond:_whenSelected<___>_whenHovered",
234
- "fill]___[value:[var(--xy-edge-stroke)]",
235
- "stroke]___[value:[var(--xy-edge-stroke)]",
236
- "strokeDashoffset]___[value:0",
237
- "animationStyle]___[value:xyedgeAnimated]___[cond:_noReduceGraphics",
238
- "animationPlayState]___[value:paused]___[cond:_noReduceGraphics",
239
- "transition]___[value:stroke 130ms ease-out,stroke-width 130ms ease-out]___[cond:_noReduceGraphics",
240
- "animationDirection]___[value:reverse]___[cond::where([data-edge-dir='back']) &",
241
- "animationPlayState]___[value:running]___[cond:_whenHovered<___>_noReduceGraphics",
242
- "animationDelay]___[value:450ms]___[cond:_whenHovered<___>_noReduceGraphics",
243
- "animationPlayState]___[value:running]___[cond::where(.react-flow__edge.selected, [data-edge-active='true'], [data-edge-animated='true']) &<___>_noReduceGraphics",
244
- "animationDelay]___[value:0ms]___[cond::where(.react-flow__edge.selected, [data-edge-active='true'], [data-edge-animated='true']) &<___>_noReduceGraphics",
245
- "animationPlayState]___[value:paused]___[cond:_whenDimmed",
246
- "animationName]___[value:none]___[cond:_smallZoom",
247
- "strokeDasharray]___[value:none !important]___[cond:_whenPanning",
248
- "animationPlayState]___[value:paused]___[cond:_whenPanning",
249
220
  "justifyContent]___[value:center",
250
221
  "zIndex]___[value:1",
251
222
  "display]___[value:none]___[cond:_smallZoom",
@@ -303,6 +274,7 @@
303
274
  "paddingTop]___[value:2",
304
275
  "marginTop]___[value:2",
305
276
  "marginTop]___[value:0",
277
+ "color]___[value:orange",
306
278
  "--bleed-x]___[value:token(spacing.2, 2)",
307
279
  "--bleed-y]___[value:token(spacing.2, 2)",
308
280
  "marginInline]___[value:calc(var(--bleed-x, 0) * -1)",
@@ -313,12 +285,18 @@
313
285
  "gap]___[value:2",
314
286
  "offset]___[value:2",
315
287
  "position]___[value:top-start",
288
+ "width]___[value:350",
289
+ "position]___[value:right",
290
+ "offset]___[value:10",
291
+ "background]___[value:white",
316
292
  "opacity]___[value:0.65",
293
+ "display]___[value:inline-flex",
317
294
  "paddingLeft]___[value:2.5",
318
295
  "paddingBlock]___[value:1.5",
319
296
  "borderLeft]___[value:2px dotted",
320
297
  "borderLeftColor]___[value:mantine.colors.gray[3]",
321
298
  "borderLeftColor]___[value:mantine.colors.dark[4]]___[cond:_dark",
299
+ "opacity]___[value:0.5",
322
300
  "display]___[value:block",
323
301
  "fontSize]___[value:xxs",
324
302
  "lineHeight]___[value:sm",
@@ -344,10 +322,12 @@
344
322
  "transform]___[value:translateY(-3px)]___[cond:_active",
345
323
  "boxShadow]___[value:lg",
346
324
  "textStyle]___[value:xs",
325
+ "layerStyle]___[value:likec4.panel.action",
326
+ "position]___[value:right-start",
327
+ "stroke]___[value:1.7",
347
328
  "paddingBlock]___[value:1",
348
329
  "paddingLeft]___[value:3",
349
330
  "color]___[value:likec4.panel.text",
350
- "color]___[value:orange",
351
331
  "color]___[value:green",
352
332
  "padding]___[value:0.5",
353
333
  "width]___[value:[20px]",
@@ -374,14 +354,15 @@
374
354
  "overflow]___[value:visible",
375
355
  "color]___[value:mantine.colors.gray[4]]___[cond:_dark",
376
356
  "color]___[value:mantine.colors.gray[8]]___[cond:_light",
377
- "opacity]___[value:0.5",
378
357
  "marginInlineEnd]___[value:0.5",
379
358
  "crossAxis]___[value:-22",
380
359
  "padding]___[value:1.5",
381
360
  "marginTop]___[value:4",
382
361
  "marginTop]___[value:xs",
383
- "layerStyle]___[value:likec4.panel.action",
362
+ "layerStyle]___[value:likec4.panel.action.filled",
384
363
  "paddingInline]___[value:xxs",
364
+ "backgroundColor]___[value:none",
365
+ "backgroundColor]___[value:likec4.panel.action.bg.hover]___[cond:_notDisabled<___>_hover",
385
366
  "fontWeight]___[value:400",
386
367
  "boxShadow]___[value:md",
387
368
  "mainAxis]___[value:2",
@@ -389,7 +370,6 @@
389
370
  "lineHeight]___[value:1.1",
390
371
  "color]___[value:mantine.colors.gray[9]]___[cond:_light",
391
372
  "marginInlineStart]___[value:1]___[cond:&:is([data-position=\"right\"])",
392
- "position]___[value:right-start",
393
373
  "mainAxis]___[value:10",
394
374
  "opacity]___[value:0.6",
395
375
  "padding]___[value:8",
@@ -403,7 +383,6 @@
403
383
  "position]___[value:top",
404
384
  "width]___[value:70%]___[cond:& > svg",
405
385
  "height]___[value:70%]___[cond:& > svg",
406
- "position]___[value:right",
407
386
  "mainAxis]___[value:12",
408
387
  "top]___[value:md",
409
388
  "left]___[value:md",
@@ -631,7 +610,6 @@
631
610
  "paddingInline]___[value:md",
632
611
  "paddingBlock]___[value:xs",
633
612
  "marginTop]___[value:sm",
634
- "display]___[value:inline-flex",
635
613
  "borderStyle]___[value:solid]___[cond:_hover",
636
614
  "transitionTimingFunction]___[value:out]___[cond:_hover<___>& > *",
637
615
  "transform]___[value:translateX(1px)]___[cond:_hover<___>& > *",
@@ -771,35 +749,38 @@
771
749
  "zIndex]___[value:903",
772
750
  "marginTop]___[value:[32px]]___[cond:& + &",
773
751
  "stroke]___[value:likec4.compare.manual.outline",
774
- "mixBlendMode]___[value:plus-lighter",
775
752
  "strokeWidth]___[value:8px",
776
753
  "strokeWidth]___[value:12px]___[cond:_whenHovered",
777
- "strokeOpacity]___[value:0.3",
778
- "strokeOpacity]___[value:0.5]___[cond:_whenHovered",
779
- "mixBlendMode]___[value:normal",
780
- "fill]___[value:var(--likec4-palette-relation-stroke)",
781
- "stroke]___[value:var(--likec4-palette-relation-stroke)",
782
- "fillOpacity]___[value:0.75",
783
- "strokeWidth]___[value:1",
754
+ "strokeOpacity]___[value:0.5",
755
+ "cursor]___[value:copy]___[cond:& .react-flow__edge-interaction",
756
+ "zIndex]___[value:9999",
757
+ "mixBlendMode]___[value:screen]___[cond:_dark",
758
+ "mixBlendMode]___[value:multiply]___[cond:_light",
759
+ "fill]___[value:[var(--xy-edge-stroke)]",
760
+ "stroke]___[value:transparent",
761
+ "fillOpacity]___[value:0.5",
762
+ "strokeWidth]___[value:10",
763
+ "r]___[value:4",
784
764
  "cursor]___[value:grab",
785
- "pointerEvents]___[value:auto",
786
- "fillOpacity]___[value:1]___[cond:_hover",
787
- "stroke]___[value:mantine.colors.primary.filledHover]___[cond:_hover",
788
- "strokeWidth]___[value:18]___[cond:_hover",
789
- "transition]___[value:stroke 100ms ease-out, stroke-width 100ms ease-out]___[cond:_hover",
765
+ "visibility]___[value:hidden",
766
+ "transitionDuration]___[value:120ms",
767
+ "transitionProperty]___[value:visibility, fill, fill-opacity, r",
768
+ "transitionTimingFunction]___[value:inOut",
769
+ "transitionDelay]___[value:20ms",
790
770
  "visibility]___[value:visible]___[cond::where([data-likec4-selected='true'], [data-likec4-hovered='true']) &",
791
- "transition]___[value:fill-opacity 150ms ease-out, stroke 150ms ease-out, stroke-width 150ms ease-out]___[cond::where([data-likec4-selected='true'], [data-likec4-hovered='true']) &",
792
- "transitionDelay]___[value:50ms]___[cond::where([data-likec4-selected='true'], [data-likec4-hovered='true']) &",
793
771
  "fillOpacity]___[value:1]___[cond::where([data-likec4-selected='true'], [data-likec4-hovered='true']) &",
794
- "strokeWidth]___[value:12]___[cond::where([data-likec4-selected='true'], [data-likec4-hovered='true']) &",
795
- "cursor]___[value:grabbing",
796
- "cursor]___[value:grabbing !important]___[cond:& *",
797
- "cursor]___[value:grabbing !important]___[cond:& .react-flow__edge-interaction",
772
+ "transitionTimingFunction]___[value:out]___[cond::where([data-likec4-selected='true'], [data-likec4-hovered='true']) &",
773
+ "transitionDelay]___[value:0ms]___[cond::where([data-likec4-selected='true'], [data-likec4-hovered='true']) &",
774
+ "r]___[value:6]___[cond::where([data-likec4-selected='true']) &",
775
+ "r]___[value:8]___[cond::is([data-likec4-hovered='true']) &",
776
+ "fill]___[value:mantine.colors.primary.filledHover]___[cond:_hover",
777
+ "r]___[value:10]___[cond:_hover",
778
+ "transitionDuration]___[value:100ms]___[cond:_hover",
779
+ "cursor]___[value:grabbing]___[cond:_groupActive",
798
780
  "outlineColor]___[value:likec4.compare.manual.outline]___[cond:& + .likec4-element-shape",
799
- "outlineWidth]___[value:2px]___[cond:& + .likec4-element-shape",
800
- "outlineWidth]___[value:4px]___[cond:& + .likec4-element-shape<___>_light",
801
- "outlineStyle]___[value:solid]___[cond:& + .likec4-element-shape",
802
- "outlineOffset]___[value:1]___[cond:& + .likec4-element-shape",
781
+ "outlineWidth]___[value:4px]___[cond:& + .likec4-element-shape",
782
+ "outlineStyle]___[value:dashed]___[cond:& + .likec4-element-shape",
783
+ "outlineOffset]___[value:1.5]___[cond:& + .likec4-element-shape",
803
784
  "borderWidth]___[value:1",
804
785
  "--_color]___[value:var(--likec4-palette-stroke)",
805
786
  "--_color]___[value:[color-mix(in oklab, var(--likec4-palette-hiContrast) 40%, var(--likec4-palette-fill))]]___[cond:_dark",
@@ -818,10 +799,9 @@
818
799
  "translateY]___[value:-1/2",
819
800
  "top]___[value:1",
820
801
  "outlineColor]___[value:likec4.compare.manual.outline",
821
- "outlineWidth]___[value:2px",
822
- "outlineWidth]___[value:4px]___[cond:_light",
823
- "outlineStyle]___[value:solid",
824
- "outlineOffset]___[value:1",
802
+ "outlineWidth]___[value:4px",
803
+ "outlineStyle]___[value:dashed",
804
+ "outlineOffset]___[value:1.5",
825
805
  "right]___[value:0",
826
806
  "padding]___[value:2",
827
807
  "width]___[value:min-content",
@@ -841,6 +821,7 @@
841
821
  "backgroundColor]___[value:mantine.colors.dark[3]/40]___[cond:_dark<___>_hover",
842
822
  "fill]___[value:var(--likec4-palette-fill)",
843
823
  "stroke]___[value:var(--likec4-palette-stroke)",
824
+ "strokeWidth]___[value:1",
844
825
  "filter]___[value: drop-shadow(0 2px 3px rgb(0 0 0 / 22%)) drop-shadow(0 1px 8px rgb(0 0 0 / 10%)) ",
845
826
  "letterSpacing]___[value:0.2px",
846
827
  "paddingTop]___[value:0",
@@ -876,6 +857,20 @@
876
857
  "maxWidth]___[value:220px"
877
858
  ],
878
859
  "recipes": {
860
+ "edgeLabel": [
861
+ "pointerEvents]___[value:all]___[recipe:edgeLabel",
862
+ "isStepEdge]___[value:false]___[recipe:edgeLabel",
863
+ "cursor]___[value:default]___[recipe:edgeLabel",
864
+ "cursor]___[value:pointer]___[recipe:edgeLabel",
865
+ "*]___[value:false]___[recipe:edgeLabel",
866
+ "isStepEdge]___[value:true]___[recipe:edgeLabel",
867
+ "*]___[value:true]___[recipe:edgeLabel",
868
+ "*]___[value:pointer]___[recipe:edgeLabel",
869
+ "*]___[value:default]___[recipe:edgeLabel",
870
+ "pointerEvents]___[value:none]___[recipe:edgeLabel",
871
+ "*]___[value:none]___[recipe:edgeLabel",
872
+ "*]___[value:all]___[recipe:edgeLabel"
873
+ ],
879
874
  "overlay": [
880
875
  "fullscreen]___[value:false]___[recipe:overlay",
881
876
  "withBackdrop]___[value:true]___[recipe:overlay",
@@ -930,20 +925,7 @@
930
925
  "borderStyle]___[value:dotted]___[recipe:compoundNode"
931
926
  ],
932
927
  "edgeActionBtn": [],
933
- "edgeLabel": [
934
- "pointerEvents]___[value:all]___[recipe:edgeLabel",
935
- "isStepEdge]___[value:false]___[recipe:edgeLabel",
936
- "cursor]___[value:pointer]___[recipe:edgeLabel",
937
- "cursor]___[value:default]___[recipe:edgeLabel",
938
- "pointerEvents]___[value:none]___[recipe:edgeLabel",
939
- "*]___[value:false]___[recipe:edgeLabel",
940
- "isStepEdge]___[value:true]___[recipe:edgeLabel",
941
- "*]___[value:true]___[recipe:edgeLabel",
942
- "*]___[value:pointer]___[recipe:edgeLabel",
943
- "*]___[value:default]___[recipe:edgeLabel",
944
- "*]___[value:none]___[recipe:edgeLabel",
945
- "*]___[value:all]___[recipe:edgeLabel"
946
- ],
928
+ "edgePath": [],
947
929
  "elementNodeData": [],
948
930
  "elementShapeRecipe": [
949
931
  "shapetype]___[value:html]___[recipe:elementShapeRecipe",