@likec4/diagram 1.56.0 → 1.58.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 (208) hide show
  1. package/dist/LikeC4Diagram.js +3 -1
  2. package/dist/LikeC4View.js +47 -55
  3. package/dist/adhoc-editor/EditorPanel.d.ts +1 -1
  4. package/dist/adhoc-editor/ElementsTree.d.ts +1 -1
  5. package/dist/adhoc-editor/ElementsTree.js +2 -6
  6. package/dist/adhoc-editor/LikeC4AdHocViewEditor.d.ts +1 -1
  7. package/dist/adhoc-editor/components/Tree.d.ts +5 -5
  8. package/dist/adhoc-editor/state/ActorProvider.d.ts +1 -1
  9. package/dist/adhoc-editor/state/panel.d.ts +1 -1
  10. package/dist/adhoc-editor/viewrules/ViewRulesPanel.d.ts +1 -1
  11. package/dist/base/BaseXYFlow.d.ts +1 -1
  12. package/dist/base-primitives/Markdown.d.ts +1 -1
  13. package/dist/base-primitives/NodeHandles.d.ts +1 -1
  14. package/dist/base-primitives/compound/CompoundActionButton.d.ts +1 -1
  15. package/dist/base-primitives/compound/CompoundDetailsButton.d.ts +1 -1
  16. package/dist/base-primitives/compound/CompoundNodeContainer.d.ts +1 -1
  17. package/dist/base-primitives/compound/CompoundTitle.d.ts +1 -1
  18. package/dist/base-primitives/compound/actionbtns.css.d.ts +1 -1
  19. package/dist/base-primitives/edge/EdgeActionButton.d.ts +1 -1
  20. package/dist/base-primitives/edge/EdgeContainer.d.ts +1 -1
  21. package/dist/base-primitives/edge/EdgeLabelContainer.d.ts +1 -1
  22. package/dist/base-primitives/edge/EdgeMarkers.d.ts +8 -8
  23. package/dist/base-primitives/element/ElementActionButtons.d.ts +1 -1
  24. package/dist/base-primitives/element/ElementData.d.ts +2 -2
  25. package/dist/base-primitives/element/ElementDetailsButton.d.ts +1 -1
  26. package/dist/base-primitives/element/ElementShape.d.ts +1 -1
  27. package/dist/base-primitives/element/ElementTags.d.ts +1 -1
  28. package/dist/base-primitives/element/ElementTags.js +1 -3
  29. package/dist/components/ErrorFallback.d.ts +2 -2
  30. package/dist/components/NavigationPanel.d.ts +2 -2
  31. package/dist/components/PortalToContainer.d.ts +1 -1
  32. package/dist/components/RootContainer.d.ts +1 -1
  33. package/dist/components/RootContainer.js +19 -18
  34. package/dist/components/SearchControl.d.ts +2 -2
  35. package/dist/components/ViewNotFound.d.ts +2 -2
  36. package/dist/context/CurrentViewModelProvider.d.ts +1 -1
  37. package/dist/context/DefaultMantineProvider.d.ts +1 -1
  38. package/dist/context/DiagramEventHandlers.d.ts +1 -1
  39. package/dist/context/DiagramFeatures.d.ts +1 -1
  40. package/dist/context/DiagramFeatures.js +5 -0
  41. package/dist/context/EnsureMantine.d.ts +1 -1
  42. package/dist/context/FramerMotionConfig.d.ts +3 -3
  43. package/dist/context/FramerMotionConfig.js +2 -2
  44. package/dist/context/IconRenderer.d.ts +2 -2
  45. package/dist/context/IconRenderer.js +32 -12
  46. package/dist/context/LikeC4ModelContext.d.ts +1 -1
  47. package/dist/context/RootContainerContext.d.ts +10 -17
  48. package/dist/context/RootContainerContext.js +1 -13
  49. package/dist/context/ShadowRootContext.d.ts +3 -0
  50. package/dist/context/ShadowRootContext.js +5 -0
  51. package/dist/context/TagStylesContext.d.ts +2 -1
  52. package/dist/context/TagStylesContext.js +5 -7
  53. package/dist/custom/index.d.ts +1 -1
  54. package/dist/custom/index.js +1 -2
  55. package/dist/editor/LikeC4EditorCallbacks.d.ts +5 -0
  56. package/dist/editor/LikeC4EditorProvider.d.ts +2 -2
  57. package/dist/editor/actor/actions.d.ts +174 -0
  58. package/dist/editor/actor/actions.js +188 -0
  59. package/dist/editor/{hotkeyActor.d.ts → actor/hotkey.d.ts} +2 -2
  60. package/dist/editor/{hotkeyActor.js → actor/hotkey.js} +11 -4
  61. package/dist/editor/{editorActor.states.d.ts → actor/machine.d.ts} +5 -3
  62. package/dist/editor/actor/machine.js +23 -0
  63. package/dist/editor/actor/setup.d.ts +55 -0
  64. package/dist/editor/{editorActor.setup.js → actor/setup.js} +14 -10
  65. package/dist/editor/actor/state.editor.d.ts +147 -0
  66. package/dist/editor/actor/state.editor.js +56 -0
  67. package/dist/editor/actor/state.sync-queue.d.ts +612 -0
  68. package/dist/editor/actor/state.sync-queue.js +272 -0
  69. package/dist/editor/actor/types.d.ts +64 -0
  70. package/dist/editor/actor/types.js +5 -0
  71. package/dist/editor/applyChangesToManualLayout.js +1 -1
  72. package/dist/editor/index.d.ts +2 -1
  73. package/dist/editor/useEditorActorLogic.d.ts +8 -2
  74. package/dist/editor/useEditorActorLogic.js +39 -7
  75. package/dist/hooks/useDiagram.js +6 -1
  76. package/dist/hooks/useDiagramCompareLayout.js +1 -1
  77. package/dist/hooks/useEditorActor.d.ts +9 -0
  78. package/dist/hooks/useEditorActor.js +27 -0
  79. package/dist/hooks/useLikeC4ElementsTree.d.ts +3 -2
  80. package/dist/hooks/useLikeC4ElementsTree.js +3 -1
  81. package/dist/index.d.ts +2 -0
  82. package/dist/index.js +3 -1
  83. package/dist/likec4diagram/DiagramUI.d.ts +1 -1
  84. package/dist/likec4diagram/DiagramUI.js +8 -4
  85. package/dist/likec4diagram/DiagramXYFlow.js +26 -14
  86. package/dist/likec4diagram/custom/edges/EdgeDrifts.d.ts +1 -1
  87. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +127 -14
  88. package/dist/likec4diagram/custom/edges/SequenceStepEdge.d.ts +1 -1
  89. package/dist/likec4diagram/custom/edges/edges.css.d.ts +1 -0
  90. package/dist/likec4diagram/custom/edges/edges.css.js +5 -1
  91. package/dist/likec4diagram/custom/nodes/CompoundActions.d.ts +1 -1
  92. package/dist/likec4diagram/custom/nodes/ElementActions.d.ts +2 -2
  93. package/dist/likec4diagram/custom/nodes/NodeDrifts.d.ts +1 -1
  94. package/dist/likec4diagram/custom/nodes/NodeNotes.d.ts +1 -1
  95. package/dist/likec4diagram/custom/nodes/SequenceActorNode.d.ts +2 -2
  96. package/dist/likec4diagram/custom/nodes/nodes.d.ts +7 -7
  97. package/dist/likec4diagram/custom/nodes/toolbar/ColorButton.d.ts +3 -3
  98. package/dist/likec4diagram/custom/nodes/toolbar/CompoundToolbar.d.ts +2 -2
  99. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.d.ts +2 -2
  100. package/dist/likec4diagram/custom/nodes/toolbar/Toolbar.d.ts +1 -1
  101. package/dist/likec4diagram/custom/nodes/toolbar/_shared.d.ts +3 -3
  102. package/dist/likec4diagram/relationship-popover/RelationshipPopover.d.ts +1 -1
  103. package/dist/likec4diagram/relationship-popover/components.d.ts +2 -2
  104. package/dist/likec4diagram/state/DiagramActorProvider.d.ts +1 -1
  105. package/dist/likec4diagram/state/aligners.js +3 -0
  106. package/dist/likec4diagram/state/assign.js +1 -1
  107. package/dist/likec4diagram/state/createViewChange.js +1 -0
  108. package/dist/likec4diagram/state/diagram-api.d.ts +16 -0
  109. package/dist/likec4diagram/state/diagram-api.js +13 -7
  110. package/dist/likec4diagram/state/machine.actions.js +10 -10
  111. package/dist/likec4diagram/state/machine.d.ts +1 -1
  112. package/dist/likec4diagram/state/machine.setup.js +1 -1
  113. package/dist/likec4diagram/state/types.d.ts +1 -1
  114. package/dist/likec4diagram/state/utils.d.ts +1 -1
  115. package/dist/likec4diagram/types.d.ts +2 -0
  116. package/dist/likec4diagram/ui/LayoutDriftFrame.d.ts +1 -1
  117. package/dist/likec4diagram/ui/notation/NotationPanel.d.ts +1 -1
  118. package/dist/likec4diagram/useLayoutConstraints.js +2 -0
  119. package/dist/likec4diagram/xyflow-diagram/diagram-view.js +4 -2
  120. package/dist/likec4diagram/xyflow-sequence/sequence-layout.js +1 -0
  121. package/dist/navigationpanel/NavigationPanel.d.ts +1 -1
  122. package/dist/navigationpanel/NavigationPanelControls.d.ts +1 -1
  123. package/dist/navigationpanel/NavigationPanelDropdown.d.ts +1 -1
  124. package/dist/navigationpanel/NavigationPanelDropdown.js +2 -2
  125. package/dist/navigationpanel/_common.d.ts +2 -2
  126. package/dist/navigationpanel/comparepanel/CompareActionsMenu.d.ts +1 -1
  127. package/dist/navigationpanel/comparepanel/ComparePanel.d.ts +1 -1
  128. package/dist/navigationpanel/comparepanel/ComparePanelControls.d.ts +1 -1
  129. package/dist/navigationpanel/comparepanel/DriftsSummary.d.ts +1 -1
  130. package/dist/navigationpanel/comparepanel/LayoutTypeSwitcher.d.ts +1 -1
  131. package/dist/navigationpanel/controls/DetailsControls.d.ts +1 -1
  132. package/dist/navigationpanel/controls/LayoutWarning.d.ts +1 -1
  133. package/dist/navigationpanel/controls/LogoButton.d.ts +1 -1
  134. package/dist/navigationpanel/controls/NavigationButtons.d.ts +1 -1
  135. package/dist/navigationpanel/controls/OpenSource.d.ts +1 -1
  136. package/dist/navigationpanel/controls/SearchControl.d.ts +1 -1
  137. package/dist/navigationpanel/controls/ToggleReadonly.d.ts +1 -1
  138. package/dist/navigationpanel/controls/ToggleReadonly.js +4 -2
  139. package/dist/navigationpanel/editorpanel/ApplySemanticLayout.d.ts +4 -0
  140. package/dist/navigationpanel/editorpanel/ApplySemanticLayout.js +36 -0
  141. package/dist/navigationpanel/editorpanel/CenterCamera.d.ts +1 -1
  142. package/dist/navigationpanel/editorpanel/ChangeAutoLayoutButton.d.ts +1 -1
  143. package/dist/navigationpanel/editorpanel/EditorPanel.d.ts +1 -1
  144. package/dist/navigationpanel/editorpanel/EditorPanel.js +45 -33
  145. package/dist/navigationpanel/editorpanel/ManualLayoutToolsButton.d.ts +1 -1
  146. package/dist/navigationpanel/editorpanel/ToggleReadonly.d.ts +1 -1
  147. package/dist/navigationpanel/styles.css.d.ts +1 -1
  148. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.d.ts +1 -1
  149. package/dist/navigationpanel/walkthrough/DynamicViewControls.d.ts +62 -62
  150. package/dist/navigationpanel/walkthrough/WalkthroughPanel.d.ts +1 -1
  151. package/dist/overlays/Overlays.d.ts +1 -1
  152. package/dist/overlays/element-details/ElementDetails.d.ts +1 -1
  153. package/dist/overlays/element-details/ElementDetailsCard.d.ts +1 -1
  154. package/dist/overlays/element-details/MetadataValue.d.ts +2 -2
  155. package/dist/overlays/element-details/TabPanelRelationships.d.ts +1 -1
  156. package/dist/overlays/element-details/TabPanelStructure.d.ts +2 -2
  157. package/dist/overlays/overlay/Overlay.d.ts +16 -0
  158. package/dist/overlays/overlay/Overlay.js +50 -52
  159. package/dist/overlays/overlaysActor.js +28 -27
  160. package/dist/overlays/relationship-details/RelationshipDetails.d.ts +1 -1
  161. package/dist/overlays/relationship-details/SelectEdge.d.ts +1 -1
  162. package/dist/overlays/relationship-details/custom/ElementActions.d.ts +1 -1
  163. package/dist/overlays/relationship-details/custom/nodeTypes.d.ts +4 -5
  164. package/dist/overlays/relationship-details/custom/nodeTypes.js +25 -24
  165. package/dist/overlays/relationships-browser/RelationshipsBrowser.d.ts +1 -1
  166. package/dist/overlays/relationships-browser/SelectElement.d.ts +1 -1
  167. package/dist/overlays/relationships-browser/SelectElement.js +2 -2
  168. package/dist/overlays/relationships-browser/custom/ElementActions.d.ts +1 -1
  169. package/dist/overlays/relationships-browser/custom/EmptyNode.d.ts +1 -1
  170. package/dist/overlays/relationships-browser/custom/nodeTypes.d.ts +4 -4
  171. package/dist/projects-overview/ProjectsOverview.d.ts +1 -1
  172. package/dist/projects-overview/custom/nodeTypes.d.ts +1 -1
  173. package/dist/projects-overview/panel/ProjectsOverviewPanel.d.ts +1 -1
  174. package/dist/search/Search.d.ts +6 -3
  175. package/dist/search/Search.js +60 -71
  176. package/dist/search/XStateSearchAdapter.d.ts +1 -1
  177. package/dist/search/components/ElementsColumn.d.ts +1 -1
  178. package/dist/search/components/ElementsColumn.js +12 -8
  179. package/dist/search/components/PickView.d.ts +1 -1
  180. package/dist/search/components/SearchByTags.d.ts +1 -1
  181. package/dist/search/components/SearchInput.d.ts +1 -1
  182. package/dist/search/components/ViewsColum.d.ts +3 -3
  183. package/dist/search/components/_shared.css.d.ts +1 -1
  184. package/dist/search/searchActor.js +30 -26
  185. package/dist/shadowroot/ShadowRoot.d.ts +6 -6
  186. package/dist/shadowroot/ShadowRoot.js +68 -23
  187. package/dist/shadowroot/index.d.ts +1 -0
  188. package/dist/shadowroot/styles.d.ts +13 -0
  189. package/dist/shadowroot/styles.js +60 -0
  190. package/dist/styles2.js +1 -1
  191. package/package.json +33 -40
  192. package/panda.buildinfo.json +19 -22
  193. package/src/styles-font.css +114 -0
  194. package/src/styles-min.css +2 -0
  195. package/src/styles-xyflow.css +1 -0
  196. package/src/styles.css +3 -0
  197. package/styles-min.css +1 -1
  198. package/styles-xyflow.css +1 -1
  199. package/styles.css +1 -1
  200. package/dist/bundle/index.d.ts +0 -1
  201. package/dist/editor/editorActor.actions.d.ts +0 -153
  202. package/dist/editor/editorActor.actions.js +0 -133
  203. package/dist/editor/editorActor.setup.d.ts +0 -84
  204. package/dist/editor/editorActor.states.js +0 -219
  205. package/dist/hooks/useOverlaysActor.js +0 -11
  206. package/dist/hooks/useSearchActor.js +0 -11
  207. package/dist/shadowroot/styles.css.d.ts +0 -4
  208. package/dist/shadowroot/styles.css.js +0 -62
@@ -5,8 +5,8 @@ export declare const TriggerWalkthroughButton: ForwardRefExoticComponent<Omit<Bu
5
5
  color?: string | undefined;
6
6
  content?: string | undefined;
7
7
  translate?: "yes" | "no" | undefined;
8
+ type?: "button" | "submit" | "reset" | undefined;
8
9
  id?: string | undefined;
9
- type?: "button" | "reset" | "submit" | undefined;
10
10
  form?: string | undefined;
11
11
  hidden?: boolean | undefined;
12
12
  draggable?: (boolean | "true" | "false") | undefined;
@@ -17,68 +17,10 @@ export declare const TriggerWalkthroughButton: ForwardRefExoticComponent<Omit<Bu
17
17
  property?: string | undefined;
18
18
  role?: AriaRole | undefined;
19
19
  "aria-label"?: string | undefined;
20
+ defaultValue?: string | number | readonly string[] | undefined;
20
21
  dangerouslySetInnerHTML?: {
21
22
  __html: string | TrustedHTML;
22
23
  } | undefined;
23
- suppressHydrationWarning?: boolean | undefined;
24
- lang?: string | undefined;
25
- name?: string | undefined;
26
- nonce?: string | undefined;
27
- part?: string | undefined;
28
- slot?: string | undefined;
29
- tabIndex?: number | undefined;
30
- "aria-activedescendant"?: string | undefined;
31
- "aria-atomic"?: (boolean | "true" | "false") | undefined;
32
- "aria-autocomplete"?: "list" | "none" | "both" | "inline" | undefined;
33
- "aria-braillelabel"?: string | undefined;
34
- "aria-brailleroledescription"?: string | undefined;
35
- "aria-busy"?: (boolean | "true" | "false") | undefined;
36
- "aria-checked"?: boolean | "true" | "false" | "mixed" | undefined;
37
- "aria-colcount"?: number | undefined;
38
- "aria-colindex"?: number | undefined;
39
- "aria-colindextext"?: string | undefined;
40
- "aria-colspan"?: number | undefined;
41
- "aria-controls"?: string | undefined;
42
- "aria-current"?: boolean | "page" | "step" | "location" | "date" | "time" | "true" | "false" | undefined;
43
- "aria-describedby"?: string | undefined;
44
- "aria-description"?: string | undefined;
45
- "aria-details"?: string | undefined;
46
- "aria-disabled"?: (boolean | "true" | "false") | undefined;
47
- "aria-dropeffect"?: "link" | "none" | "copy" | "move" | "execute" | "popup" | undefined;
48
- "aria-errormessage"?: string | undefined;
49
- "aria-expanded"?: (boolean | "true" | "false") | undefined;
50
- "aria-flowto"?: string | undefined;
51
- "aria-grabbed"?: (boolean | "true" | "false") | undefined;
52
- "aria-haspopup"?: boolean | "grid" | "true" | "dialog" | "listbox" | "menu" | "tree" | "false" | undefined;
53
- "aria-hidden"?: (boolean | "true" | "false") | undefined;
54
- "aria-invalid"?: boolean | "true" | "false" | "grammar" | "spelling" | undefined;
55
- "aria-keyshortcuts"?: string | undefined;
56
- "aria-labelledby"?: string | undefined;
57
- "aria-level"?: number | undefined;
58
- "aria-live"?: "off" | "assertive" | "polite" | undefined;
59
- "aria-modal"?: (boolean | "true" | "false") | undefined;
60
- "aria-multiline"?: (boolean | "true" | "false") | undefined;
61
- "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
62
- "aria-orientation"?: "horizontal" | "vertical" | undefined;
63
- "aria-owns"?: string | undefined;
64
- "aria-placeholder"?: string | undefined;
65
- "aria-posinset"?: number | undefined;
66
- "aria-pressed"?: boolean | "true" | "false" | "mixed" | undefined;
67
- "aria-readonly"?: (boolean | "true" | "false") | undefined;
68
- "aria-relevant"?: "all" | "text" | "additions" | "additions removals" | "additions text" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
69
- "aria-required"?: (boolean | "true" | "false") | undefined;
70
- "aria-roledescription"?: string | undefined;
71
- "aria-rowcount"?: number | undefined;
72
- "aria-rowindex"?: number | undefined;
73
- "aria-rowindextext"?: string | undefined;
74
- "aria-rowspan"?: number | undefined;
75
- "aria-selected"?: (boolean | "true" | "false") | undefined;
76
- "aria-setsize"?: number | undefined;
77
- "aria-sort"?: "ascending" | "descending" | "none" | "other" | undefined;
78
- "aria-valuemax"?: number | undefined;
79
- "aria-valuemin"?: number | undefined;
80
- "aria-valuenow"?: number | undefined;
81
- "aria-valuetext"?: string | undefined;
82
24
  onCopy?: ClipboardEventHandler<HTMLButtonElement> | undefined;
83
25
  onCopyCapture?: ClipboardEventHandler<HTMLButtonElement> | undefined;
84
26
  onCut?: ClipboardEventHandler<HTMLButtonElement> | undefined;
@@ -243,16 +185,20 @@ export declare const TriggerWalkthroughButton: ForwardRefExoticComponent<Omit<Bu
243
185
  onTransitionRunCapture?: TransitionEventHandler<HTMLButtonElement> | undefined;
244
186
  onTransitionStart?: TransitionEventHandler<HTMLButtonElement> | undefined;
245
187
  onTransitionStartCapture?: TransitionEventHandler<HTMLButtonElement> | undefined;
246
- defaultValue?: string | number | readonly string[] | undefined;
247
188
  defaultChecked?: boolean | undefined;
248
189
  suppressContentEditableWarning?: boolean | undefined;
190
+ suppressHydrationWarning?: boolean | undefined;
249
191
  accessKey?: string | undefined;
250
192
  autoCapitalize?: (string & {}) | "none" | "on" | "off" | "sentences" | "words" | "characters" | undefined;
251
193
  autoFocus?: boolean | undefined;
252
194
  contentEditable?: "inherit" | (boolean | "true" | "false") | "plaintext-only" | undefined;
253
195
  contextMenu?: string | undefined;
254
196
  enterKeyHint?: "search" | "next" | "previous" | "done" | "send" | "enter" | "go" | undefined;
197
+ lang?: string | undefined;
198
+ nonce?: string | undefined;
199
+ slot?: string | undefined;
255
200
  spellCheck?: (boolean | "true" | "false") | undefined;
201
+ tabIndex?: number | undefined;
256
202
  radioGroup?: string | undefined;
257
203
  about?: string | undefined;
258
204
  datatype?: string | undefined;
@@ -280,6 +226,60 @@ export declare const TriggerWalkthroughButton: ForwardRefExoticComponent<Omit<Bu
280
226
  inputMode?: "search" | "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | undefined;
281
227
  is?: string | undefined;
282
228
  exportparts?: string | undefined;
229
+ part?: string | undefined;
230
+ "aria-activedescendant"?: string | undefined;
231
+ "aria-atomic"?: (boolean | "true" | "false") | undefined;
232
+ "aria-autocomplete"?: "list" | "none" | "both" | "inline" | undefined;
233
+ "aria-braillelabel"?: string | undefined;
234
+ "aria-brailleroledescription"?: string | undefined;
235
+ "aria-busy"?: (boolean | "true" | "false") | undefined;
236
+ "aria-checked"?: boolean | "true" | "false" | "mixed" | undefined;
237
+ "aria-colcount"?: number | undefined;
238
+ "aria-colindex"?: number | undefined;
239
+ "aria-colindextext"?: string | undefined;
240
+ "aria-colspan"?: number | undefined;
241
+ "aria-controls"?: string | undefined;
242
+ "aria-current"?: boolean | "page" | "step" | "location" | "date" | "time" | "true" | "false" | undefined;
243
+ "aria-describedby"?: string | undefined;
244
+ "aria-description"?: string | undefined;
245
+ "aria-details"?: string | undefined;
246
+ "aria-disabled"?: (boolean | "true" | "false") | undefined;
247
+ "aria-dropeffect"?: "link" | "none" | "move" | "copy" | "execute" | "popup" | undefined;
248
+ "aria-errormessage"?: string | undefined;
249
+ "aria-expanded"?: (boolean | "true" | "false") | undefined;
250
+ "aria-flowto"?: string | undefined;
251
+ "aria-grabbed"?: (boolean | "true" | "false") | undefined;
252
+ "aria-haspopup"?: boolean | "grid" | "true" | "dialog" | "listbox" | "menu" | "tree" | "false" | undefined;
253
+ "aria-hidden"?: (boolean | "true" | "false") | undefined;
254
+ "aria-invalid"?: boolean | "true" | "false" | "grammar" | "spelling" | undefined;
255
+ "aria-keyshortcuts"?: string | undefined;
256
+ "aria-labelledby"?: string | undefined;
257
+ "aria-level"?: number | undefined;
258
+ "aria-live"?: "off" | "assertive" | "polite" | undefined;
259
+ "aria-modal"?: (boolean | "true" | "false") | undefined;
260
+ "aria-multiline"?: (boolean | "true" | "false") | undefined;
261
+ "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
262
+ "aria-orientation"?: "horizontal" | "vertical" | undefined;
263
+ "aria-owns"?: string | undefined;
264
+ "aria-placeholder"?: string | undefined;
265
+ "aria-posinset"?: number | undefined;
266
+ "aria-pressed"?: boolean | "true" | "false" | "mixed" | undefined;
267
+ "aria-readonly"?: (boolean | "true" | "false") | undefined;
268
+ "aria-relevant"?: "all" | "text" | "additions" | "additions removals" | "additions text" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
269
+ "aria-required"?: (boolean | "true" | "false") | undefined;
270
+ "aria-roledescription"?: string | undefined;
271
+ "aria-rowcount"?: number | undefined;
272
+ "aria-rowindex"?: number | undefined;
273
+ "aria-rowindextext"?: string | undefined;
274
+ "aria-rowspan"?: number | undefined;
275
+ "aria-selected"?: (boolean | "true" | "false") | undefined;
276
+ "aria-setsize"?: number | undefined;
277
+ "aria-sort"?: "ascending" | "descending" | "none" | "other" | undefined;
278
+ "aria-valuemax"?: number | undefined;
279
+ "aria-valuemin"?: number | undefined;
280
+ "aria-valuenow"?: number | undefined;
281
+ "aria-valuetext"?: string | undefined;
282
+ name?: string | undefined;
283
283
  value?: string | number | readonly string[] | undefined;
284
284
  ref?: Ref<HTMLButtonElement> | undefined;
285
285
  disabled?: boolean | undefined;
@@ -289,4 +289,4 @@ export declare const TriggerWalkthroughButton: ForwardRefExoticComponent<Omit<Bu
289
289
  formNoValidate?: boolean | undefined;
290
290
  formTarget?: string | undefined;
291
291
  } & MotionProps, "ref"> & RefAttributes<HTMLButtonElement>>;
292
- export declare function DynamicViewControls(): import("react/jsx-runtime").JSX.Element;
292
+ export declare function DynamicViewControls(): import("react").JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { MemoExoticComponent } from 'react';
2
- export declare const WalkthroughPanel: MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
2
+ export declare const WalkthroughPanel: MemoExoticComponent<() => import("react").JSX.Element>;
@@ -1,4 +1,4 @@
1
1
  import { OverlaysActorRef } from './overlaysActor';
2
2
  export declare function Overlays({ overlaysActorRef }: {
3
3
  overlaysActorRef: OverlaysActorRef;
4
- }): import("react/jsx-runtime").JSX.Element;
4
+ }): import("react").JSX.Element;
@@ -3,4 +3,4 @@ export type ElementDetailsProps = {
3
3
  actorRef: ElementDetailsActorRef;
4
4
  onClose: () => void;
5
5
  };
6
- export declare function ElementDetails({ actorRef, onClose, }: ElementDetailsProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function ElementDetails({ actorRef, onClose, }: ElementDetailsProps): import("react").JSX.Element;
@@ -7,5 +7,5 @@ type ElementDetailsCardProps = {
7
7
  onClose: () => void;
8
8
  fqn: Fqn;
9
9
  };
10
- export declare function ElementDetailsCard({ viewId, fromNode, rectFromNode, fqn, onClose, }: ElementDetailsCardProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function ElementDetailsCard({ viewId, fromNode, rectFromNode, fqn, onClose, }: ElementDetailsCardProps): import("react").JSX.Element;
11
11
  export {};
@@ -1,10 +1,10 @@
1
1
  import { ReactNode } from 'react';
2
2
  export declare function MetadataProvider({ children }: {
3
3
  children: ReactNode;
4
- }): import("react/jsx-runtime").JSX.Element;
4
+ }): import("react").JSX.Element;
5
5
  interface MetadataValueProps {
6
6
  label: string;
7
7
  value: string | string[];
8
8
  }
9
- export declare function MetadataValue({ label, value }: MetadataValueProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function MetadataValue({ label, value }: MetadataValueProps): import("react").JSX.Element;
10
10
  export {};
@@ -3,5 +3,5 @@ type RelationshipsTabPanelProps = {
3
3
  node: LikeC4Model.Node | null;
4
4
  element: LikeC4Model.Element;
5
5
  };
6
- export declare function TabPanelRelationships({ node, element, }: RelationshipsTabPanelProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function TabPanelRelationships({ node, element, }: RelationshipsTabPanelProps): import("react").JSX.Element;
7
7
  export {};
@@ -20,6 +20,6 @@ type TabPanelStructureProps = {
20
20
  export declare const ElementLabel: ({ element, }: {
21
21
  element: LikeC4Model.Element;
22
22
  type: "ancestor" | "current" | "descedant";
23
- }) => import("react/jsx-runtime").JSX.Element;
24
- export declare function TabPanelStructure({ element, }: TabPanelStructureProps): import("react/jsx-runtime").JSX.Element;
23
+ }) => import("react").JSX.Element;
24
+ export declare function TabPanelStructure({ element, }: TabPanelStructureProps): import("react").JSX.Element;
25
25
  export {};
@@ -11,7 +11,15 @@ export type OverlayProps = PropsWithChildren<{
11
11
  backdrop?: {
12
12
  opacity?: number;
13
13
  };
14
+ /**
15
+ * Delay before showing the overlay content (in milliseconds) - helps to avoid flickering
16
+ * Default: `130ms`
17
+ * If set to `0`, the content will be shown immediately
18
+ */
14
19
  openDelay?: number;
20
+ /**
21
+ * Called when the overlay is closed by outside click or escape key
22
+ */
15
23
  onClose: () => void;
16
24
  onClick?: never;
17
25
  }>;
@@ -27,7 +35,15 @@ export declare const Overlay: ForwardRefExoticComponent<{
27
35
  backdrop?: {
28
36
  opacity?: number;
29
37
  };
38
+ /**
39
+ * Delay before showing the overlay content (in milliseconds) - helps to avoid flickering
40
+ * Default: `130ms`
41
+ * If set to `0`, the content will be shown immediately
42
+ */
30
43
  openDelay?: number;
44
+ /**
45
+ * Called when the overlay is closed by outside click or escape key
46
+ */
31
47
  onClose: () => void;
32
48
  onClick?: never;
33
49
  } & {
@@ -1,11 +1,11 @@
1
1
  import "../../_virtual/_rolldown/runtime.js";
2
2
  import { stopPropagation } from "../../utils/xyflow.js";
3
3
  import { cx } from "@likec4/styles/css";
4
- import { forwardRef, useLayoutEffect, useRef, useState } from "react";
4
+ import { forwardRef, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
5
5
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
6
- import { useDebouncedCallback, useTimeoutEffect } from "@react-hookz/web";
6
+ import { useTimeoutEffect } from "@react-hookz/web";
7
7
  import { RemoveScroll } from "@mantine/core";
8
- import { m, useReducedMotionConfig } from "motion/react";
8
+ import { m, useIsPresent, useReducedMotionConfig } from "motion/react";
9
9
  import { useFocusTrap, useMergedRef } from "@mantine/hooks";
10
10
  import { overlay } from "@likec4/styles/recipes";
11
11
  //#region src/overlays/overlay/Overlay.tsx
@@ -13,27 +13,30 @@ var backdropBlur = "--_blur";
13
13
  var backdropOpacity = "--_opacity";
14
14
  var cssVarLevel = "--_level";
15
15
  var Overlay = forwardRef(({ onClose, className, classes, overlayLevel = 0, children, fullscreen = false, withBackdrop = true, backdrop, openDelay = 130, ...rest }, ref) => {
16
- const [opened, setOpened] = useState(openDelay === 0);
16
+ const [opened, setOpened] = useState(false);
17
17
  const focusTrapRef = useFocusTrap(opened);
18
18
  const dialogRef = useRef(null);
19
- const isClosingRef = useRef(false);
19
+ const onCloseRef = useRef(null);
20
20
  const motionNotReduced = useReducedMotionConfig() !== true;
21
- const onCloseRef = useRef(onClose);
22
- onCloseRef.current = onClose;
23
- const close = useDebouncedCallback(() => {
24
- if (isClosingRef.current) return;
25
- isClosingRef.current = true;
26
- onCloseRef.current();
27
- }, [], 50);
21
+ /**
22
+ * Close the overlay and call the onClose callback
23
+ */
24
+ const cancelMe = () => {
25
+ onCloseRef.current = onClose;
26
+ dialogRef.current?.close();
27
+ };
28
+ const isPresent = useIsPresent();
29
+ useEffect(() => {
30
+ if (isPresent) return;
31
+ if (dialogRef.current?.open) {
32
+ onCloseRef.current = null;
33
+ dialogRef.current.close();
34
+ }
35
+ }, [isPresent]);
28
36
  useLayoutEffect(() => {
29
- if (!dialogRef.current?.open) dialogRef.current?.showModal();
30
37
  const dialog = dialogRef.current;
31
- return () => {
32
- if (dialog?.open) {
33
- isClosingRef.current = true;
34
- dialog.close();
35
- }
36
- };
38
+ if (dialog && !dialog.open) dialog.showModal();
39
+ if (openDelay === 0) setOpened(true);
37
40
  }, []);
38
41
  useTimeoutEffect(() => {
39
42
  setOpened(true);
@@ -44,55 +47,50 @@ var Overlay = forwardRef(({ onClose, className, classes, overlayLevel = 0, child
44
47
  });
45
48
  let targetBackdropOpacity = overlayLevel > 0 ? "50%" : "60%";
46
49
  if (backdrop?.opacity !== void 0) targetBackdropOpacity = `${backdrop.opacity * 100}%`;
50
+ const motionProps = useMemo(() => ({
51
+ initial: {
52
+ [backdropBlur]: "1px",
53
+ [backdropOpacity]: "10%",
54
+ scale: .95,
55
+ opacity: 0
56
+ },
57
+ animate: {
58
+ [backdropBlur]: overlayLevel > 0 ? "4px" : "8px",
59
+ [backdropOpacity]: targetBackdropOpacity,
60
+ scale: 1,
61
+ opacity: 1
62
+ },
63
+ exit: {
64
+ opacity: 0,
65
+ scale: .97,
66
+ [backdropBlur]: "0px",
67
+ [backdropOpacity]: "0%"
68
+ }
69
+ }), [overlayLevel, targetBackdropOpacity]);
47
70
  return /* @__PURE__ */ jsx(m.dialog, {
48
71
  ref: useMergedRef(dialogRef, focusTrapRef, ref),
49
72
  className: cx(classes?.dialog, className, overlayRecipe, fullscreen && RemoveScroll.classNames.fullWidth),
50
73
  layout: true,
51
74
  style: { [cssVarLevel]: overlayLevel },
52
- ...motionNotReduced ? {
53
- initial: {
54
- [backdropBlur]: "0px",
55
- [backdropOpacity]: "0%",
56
- scale: .85,
57
- opacity: 0
58
- },
59
- animate: {
60
- [backdropBlur]: overlayLevel > 0 ? "4px" : "8px",
61
- [backdropOpacity]: targetBackdropOpacity,
62
- scale: 1,
63
- opacity: 1,
64
- translateY: 0
65
- },
66
- exit: {
67
- opacity: 0,
68
- scale: .98,
69
- translateY: -20,
70
- [backdropBlur]: "0px",
71
- [backdropOpacity]: "0%"
72
- }
73
- } : { initial: {
75
+ ...motionNotReduced ? motionProps : { initial: {
74
76
  [backdropBlur]: "8px",
75
77
  [backdropOpacity]: targetBackdropOpacity
76
78
  } },
79
+ onDoubleClick: stopPropagation,
80
+ onPointerDown: stopPropagation,
81
+ ...rest,
77
82
  onClick: (e) => {
78
83
  e.stopPropagation();
79
- if (e.target?.nodeName?.toUpperCase() === "DIALOG") {
80
- dialogRef.current?.close();
81
- return;
82
- }
84
+ if (e.target === e.currentTarget) cancelMe();
83
85
  },
84
86
  onCancel: (e) => {
85
87
  e.preventDefault();
86
88
  e.stopPropagation();
87
- close();
89
+ cancelMe();
88
90
  },
89
- onDoubleClick: stopPropagation,
90
- onPointerDown: stopPropagation,
91
- onClose: (e) => {
92
- e.stopPropagation();
93
- close();
91
+ onClose: () => {
92
+ onCloseRef.current?.();
94
93
  },
95
- ...rest,
96
94
  children: /* @__PURE__ */ jsx(RemoveScroll, {
97
95
  forwardProps: true,
98
96
  children: /* @__PURE__ */ jsx("div", {
@@ -5,7 +5,7 @@ import { relationshipDetailsLogic } from "./relationship-details/actor.js";
5
5
  import { isString, last, reverse } from "remeda";
6
6
  import { getHotkeyHandler } from "@mantine/hooks";
7
7
  import { assertEvent, fromCallback, setup } from "xstate";
8
- import { not } from "xstate/guards";
8
+ import "xstate/guards";
9
9
  //#region src/overlays/overlaysActor.ts
10
10
  var machine = setup({
11
11
  types: {
@@ -35,9 +35,8 @@ var machine = setup({
35
35
  },
36
36
  guards: {
37
37
  "has overlays?": ({ context }) => context.overlays.length > 0,
38
- "close specific overlay?": ({ context, event }) => {
39
- assertEvent(event, "close");
40
- return isString(event.actorId) && context.overlays.some((o) => o.id === event.actorId);
38
+ "close specific overlay?": ({ event }) => {
39
+ return event.type === "close" && isString(event.actorId);
41
40
  },
42
41
  "last: is relationshipDetails?": ({ context }) => {
43
42
  return last(context.overlays)?.type === "relationshipDetails";
@@ -176,9 +175,6 @@ var openOverlay = () => machine.enqueueActions(({ enqueue, event }) => {
176
175
  });
177
176
  var listenToEsc = () => machine.spawnChild("hotkey", { id: "hotkey" });
178
177
  var stopListeningToEsc = () => machine.stopChild("hotkey");
179
- var checkState = () => machine.enqueueActions(({ enqueue, context }) => {
180
- if (context.overlays.length === 0) enqueue.raise({ type: "close" });
181
- });
182
178
  var overlaysActorLogic = machine.createMachine({
183
179
  id: "overlays",
184
180
  context: () => ({
@@ -186,34 +182,39 @@ var overlaysActorLogic = machine.createMachine({
186
182
  overlays: []
187
183
  }),
188
184
  initial: "idle",
185
+ on: { "close.all": {
186
+ actions: closeAllOverlays(),
187
+ target: "#idle"
188
+ } },
189
189
  states: {
190
190
  idle: {
191
+ id: "idle",
191
192
  entry: [emitIdle()],
192
193
  on: { "open.*": {
193
194
  actions: openOverlay(),
194
- target: "active"
195
+ target: "opened"
195
196
  } }
196
197
  },
197
- active: {
198
- entry: [listenToEsc()],
199
- exit: [stopListeningToEsc()],
200
- on: {
201
- "open.*": { actions: openOverlay() },
202
- "close": [
203
- {
204
- guard: not("has overlays?"),
205
- target: "idle"
206
- },
207
- {
198
+ opened: {
199
+ entry: listenToEsc(),
200
+ exit: stopListeningToEsc(),
201
+ initial: "hasOverlays",
202
+ states: {
203
+ hasOverlays: { on: {
204
+ "open.*": { actions: openOverlay() },
205
+ "close": [{
208
206
  guard: "close specific overlay?",
209
- actions: [closeSpecificOverlay(), checkState()]
210
- },
211
- { actions: [closeLastOverlay(), checkState()] }
212
- ],
213
- "close.all": {
214
- actions: [closeAllOverlays()],
215
- target: "idle"
216
- }
207
+ actions: closeSpecificOverlay(),
208
+ target: "decide"
209
+ }, {
210
+ actions: closeLastOverlay(),
211
+ target: "decide"
212
+ }]
213
+ } },
214
+ decide: { always: [{
215
+ guard: "has overlays?",
216
+ target: "hasOverlays"
217
+ }, { target: "#idle" }] }
217
218
  }
218
219
  },
219
220
  final: {
@@ -2,4 +2,4 @@ import { RelationshipDetailsActorRef } from './actor';
2
2
  export type RelationshipDetailsProps = {
3
3
  actorRef: RelationshipDetailsActorRef;
4
4
  };
5
- export declare function RelationshipDetails({ actorRef }: RelationshipDetailsProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function RelationshipDetails({ actorRef }: RelationshipDetailsProps): import("react").JSX.Element;
@@ -2,4 +2,4 @@ import { DiagramEdge, DiagramView } from '@likec4/core';
2
2
  export declare const SelectEdge: ({ edge, view, }: {
3
3
  edge: DiagramEdge;
4
4
  view: DiagramView;
5
- }) => import("react/jsx-runtime").JSX.Element | null;
5
+ }) => import("react").JSX.Element | null;
@@ -1,2 +1,2 @@
1
1
  import { RelationshipDetailsTypes as Types } from '../_types';
2
- export declare const ElementActions: (props: Types.NodeProps<"element">) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const ElementActions: (props: Types.NodeProps<"element">) => import("react").JSX.Element;
@@ -1,10 +1,9 @@
1
1
  import { BaseNodePropsWithData } from '../../../base';
2
2
  import { RelationshipDetailsTypes } from '../_types';
3
- import { FunctionComponent } from 'react';
4
- export declare const ElementNode: FunctionComponent<RelationshipDetailsTypes.NodeProps<"element">>;
5
- export declare const CompoundNode: FunctionComponent<RelationshipDetailsTypes.NodeProps<"compound">>;
3
+ export declare function ElementNode(props: RelationshipDetailsTypes.NodeProps<'element'>): import("react").JSX.Element;
4
+ export declare function CompoundNode(props: RelationshipDetailsTypes.NodeProps<'compound'>): import("react").JSX.Element;
6
5
  type ElementPortsProps = BaseNodePropsWithData<Pick<RelationshipDetailsTypes.ElementNodeData, 'ports' | 'height'>>;
7
- export declare const ElementPorts: ({ data: { ports, height: h } }: ElementPortsProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare function ElementPorts({ data: { ports, height: h } }: ElementPortsProps): import("react").JSX.Element;
8
7
  type CompoundPortsProps = BaseNodePropsWithData<Pick<RelationshipDetailsTypes.CompoundNodeData, 'ports'>>;
9
- export declare const CompoundPorts: ({ data }: CompoundPortsProps) => import("react/jsx-runtime").JSX.Element;
8
+ export declare function CompoundPorts({ data }: CompoundPortsProps): import("react").JSX.Element;
10
9
  export {};
@@ -9,7 +9,6 @@ import { ElementDetailsButton } from "../../../base-primitives/element/ElementDe
9
9
  import { ElementNodeContainer } from "../../../base-primitives/element/ElementNodeContainer.js";
10
10
  import { ElementShape } from "../../../base-primitives/element/ElementShape.js";
11
11
  import { ElementTags as ElementTags$1 } from "../../../base-primitives/element/ElementTags.js";
12
- import { memoNode } from "../../../base-primitives/memoNode.js";
13
12
  import { ElementActions } from "./ElementActions.js";
14
13
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
15
14
  import { Handle } from "@xyflow/react";
@@ -34,7 +33,7 @@ var ElementDetailsButtonWithHandler = (props) => {
34
33
  }
35
34
  });
36
35
  };
37
- var ElementNode = memoNode((props) => {
36
+ function ElementNode(props) {
38
37
  const { enableElementTags } = useEnabledFeatures();
39
38
  return /* @__PURE__ */ jsxs(ElementNodeContainer, {
40
39
  nodeProps: props,
@@ -47,8 +46,8 @@ var ElementNode = memoNode((props) => {
47
46
  /* @__PURE__ */ jsx(ElementPorts, { ...props })
48
47
  ]
49
48
  });
50
- });
51
- var CompoundNode = memoNode((props) => {
49
+ }
50
+ function CompoundNode(props) {
52
51
  return /* @__PURE__ */ jsxs(CompoundNodeContainer, {
53
52
  nodeProps: props,
54
53
  children: [
@@ -57,8 +56,8 @@ var CompoundNode = memoNode((props) => {
57
56
  /* @__PURE__ */ jsx(CompoundPorts, { ...props })
58
57
  ]
59
58
  });
60
- });
61
- var ElementPorts = ({ data: { ports, height: h } }) => {
59
+ }
60
+ function ElementPorts({ data: { ports, height: h } }) {
62
61
  return /* @__PURE__ */ jsxs(Fragment, { children: [ports.in.map((id, i) => /* @__PURE__ */ jsx(Handle, {
63
62
  id,
64
63
  type: "target",
@@ -76,23 +75,25 @@ var ElementPorts = ({ data: { ports, height: h } }) => {
76
75
  top: `${15 + (i + 1) * ((h - 30) / (ports.out.length + 1))}px`
77
76
  }
78
77
  }, id))] });
79
- };
80
- var CompoundPorts = ({ data }) => /* @__PURE__ */ jsxs(Fragment, { children: [data.ports.in.map((id, i) => /* @__PURE__ */ jsx(Handle, {
81
- id,
82
- type: "target",
83
- position: Position$1.Left,
84
- style: {
85
- visibility: "hidden",
86
- top: `${20 * (i + 1)}px`
87
- }
88
- }, id)), data.ports.out.map((id, i) => /* @__PURE__ */ jsx(Handle, {
89
- id,
90
- type: "source",
91
- position: Position$1.Right,
92
- style: {
93
- visibility: "hidden",
94
- top: `${20 * (i + 1)}px`
95
- }
96
- }, id))] });
78
+ }
79
+ function CompoundPorts({ data }) {
80
+ return /* @__PURE__ */ jsxs(Fragment, { children: [data.ports.in.map((id, i) => /* @__PURE__ */ jsx(Handle, {
81
+ id,
82
+ type: "target",
83
+ position: Position$1.Left,
84
+ style: {
85
+ visibility: "hidden",
86
+ top: `${20 * (i + 1)}px`
87
+ }
88
+ }, id)), data.ports.out.map((id, i) => /* @__PURE__ */ jsx(Handle, {
89
+ id,
90
+ type: "source",
91
+ position: Position$1.Right,
92
+ style: {
93
+ visibility: "hidden",
94
+ top: `${20 * (i + 1)}px`
95
+ }
96
+ }, id))] });
97
+ }
97
98
  //#endregion
98
99
  export { CompoundNode, ElementNode };
@@ -2,4 +2,4 @@ import { RelationshipsBrowserActorRef } from './actor';
2
2
  export type RelationshipsBrowserProps = {
3
3
  actorRef: RelationshipsBrowserActorRef;
4
4
  };
5
- export declare function RelationshipsBrowser({ actorRef }: RelationshipsBrowserProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function RelationshipsBrowser({ actorRef }: RelationshipsBrowserProps): import("react").JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { MemoExoticComponent } from 'react';
2
- export declare const SelectElement: MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
2
+ export declare const SelectElement: MemoExoticComponent<() => import("react").JSX.Element>;
@@ -108,7 +108,7 @@ var SelectElement = memo(() => {
108
108
  paddingBottom: 6
109
109
  }
110
110
  },
111
- renderNode: ({ node, selected, expanded, elementProps, hasChildren }) => /* @__PURE__ */ jsxs(Group, {
111
+ renderNode: ({ node, selected, expanded, elementProps }) => /* @__PURE__ */ jsxs(Group, {
112
112
  gap: 2,
113
113
  wrap: "nowrap",
114
114
  ...elementProps,
@@ -117,7 +117,7 @@ var SelectElement = memo(() => {
117
117
  variant: "subtle",
118
118
  size: 18,
119
119
  c: "dimmed",
120
- style: { visibility: hasChildren ? "visible" : "hidden" },
120
+ style: { visibility: node.hasChildren ? "visible" : "hidden" },
121
121
  children: /* @__PURE__ */ jsx(IconChevronRight, {
122
122
  stroke: 3.5,
123
123
  style: {