@likec4/core 1.37.0 → 1.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # `@likec4/core`
2
2
 
3
3
  <a href="https://www.npmjs.com/package/%40likec4%2Fcore" target="_blank">![NPM Version](https://img.shields.io/npm/v/%40likec4%2Fcore)</a>
4
- <a href="https://www.npmjs.com/package/%40likec4%2Fcore" target="_blank">![NPM Downloads](https://img.shields.io/npm/dw/%40likec4%2Fcore)</a>
4
+ <a href="https://www.npmjs.com/package/%40likec4%2Fcore" target="_blank">![NPM Downloads](https://img.shields.io/npm/dm/%40likec4%2Fcore)</a>
5
5
 
6
6
  A core package for LikeC4, containing types, api, utilities and guards.
7
7
 
@@ -157,8 +157,8 @@ Generic guards are also available in `@likec4/core/model`:
157
157
 
158
158
  ```ts
159
159
  import {
160
- isElementModel,
161
160
  isDeployedInstanceModel,
161
+ isElementModel,
162
162
  isLikeC4ViewModel,
163
163
  // ... other guards
164
164
  } from '@likec4/core/model'
@@ -1,5 +1,5 @@
1
1
  import { LastArrayElement, Split, Simplify, IsLiteral, Writable, IfNever, IsNever, TupleToUnion, Tagged } from 'type-fest';
2
- import { g as LikeC4Model } from '../shared/core.rk17MdPp.mjs';
2
+ import { g as LikeC4Model } from '../shared/core.BvlHvikl.mjs';
3
3
  import { D as DeploymentFqn, F as Fqn } from '../shared/core.DX-WYEPA.mjs';
4
4
  import { r as DeploymentElement, v as DeploymentRelationship, T as Element, _ as ModelRelation, a9 as Participant, M as ModelFqnExpr, d as ModelRelationExpr, aH as AnyViewRuleStyle, aM as AutoLayoutDirection, E as Expression, an as ParsedView, bb as ParsedDeploymentView, br as ParsedElementView, n as ParsedLikeC4ModelData, $ as ElementSpecification$1, a2 as RelationshipSpecification, a0 as TagSpecification } from '../shared/core.CE_hG7EJ.mjs';
5
5
  import { N as NonEmptyArray, K as KeysOf } from '../shared/core.DuSLYTG6.mjs';
@@ -1,17 +1,17 @@
1
- import { i, l, d, c as computeLikeC4Model } from '../shared/core.mpx5crlJ.mjs';
1
+ import { i, l, d, c as computeLikeC4Model } from '../shared/core.YyjkRVss.mjs';
2
2
  import { m } from '../shared/core.ByrmCl9I.mjs';
3
3
  import { a as _type, n as n$1, _ as _stage, c as isDeployedInstance, F as FqnRef } from '../shared/core.DK6I-Nr7.mjs';
4
4
  import { t as t$2 } from '../shared/core.BH9nN-_I.mjs';
5
5
  import { l as l$1 } from '../shared/core.8KM0D6va.mjs';
6
6
  import { u } from '../shared/core.DbRvwARP.mjs';
7
- import { t as t$1 } from '../shared/core.n8wh5WZA.mjs';
7
+ import { t as t$1 } from '../shared/core.DsznOb9G.mjs';
8
8
  import { i as i$1 } from '../shared/core.CpwrZi3D.mjs';
9
9
  import { n as nameFromFqn, k as isSameHierarchy, p as parentFqn } from '../shared/core.DQj9iv_y.mjs';
10
10
  import { t } from '../shared/core.zLlww-07.mjs';
11
11
  import { s as o, M as ModelFqnExpr, f as isElementView } from '../shared/core.BW8K1y6R.mjs';
12
12
  import { i as invariant } from '../shared/core.D4npX2q8.mjs';
13
13
  import { a as DefaultElementShape, D as DefaultThemeColor } from '../shared/core.H8NbNp2X.mjs';
14
- import '../shared/core.DX4dbV2w.mjs';
14
+ import '../shared/core.DyzAZvbX.mjs';
15
15
  import '../shared/core.C1GV0WWV.mjs';
16
16
  import '../shared/core.CnIyafWn.mjs';
17
17
  import '../shared/core.B0oEIXqd.mjs';
@@ -1,5 +1,5 @@
1
1
  import { A as Any } from '../shared/core.O6FG0HF9.mjs';
2
- import { g as LikeC4Model } from '../shared/core.rk17MdPp.mjs';
2
+ import { g as LikeC4Model } from '../shared/core.BvlHvikl.mjs';
3
3
  import { n as ParsedLikeC4ModelData, C as ComputedLikeC4ModelData, an as ParsedView, aq as ComputedView } from '../shared/core.CE_hG7EJ.mjs';
4
4
  import 'type-fest';
5
5
  import '../shared/core.DuSLYTG6.mjs';
@@ -1,7 +1,7 @@
1
- import { G as Graph, w as willCreateCycle, t as topologicalSortExports, i as i$2, l } from '../shared/core.mpx5crlJ.mjs';
2
- export { c as computeLikeC4Model, a as computeParsedModelData, b as computeView, u as unsafeComputeView } from '../shared/core.mpx5crlJ.mjs';
3
- import { i as i$1 } from '../shared/core.DX4dbV2w.mjs';
4
- import { r } from '../shared/core.n8wh5WZA.mjs';
1
+ import { G as Graph, w as willCreateCycle, t as topologicalSortExports, i as i$2, l } from '../shared/core.YyjkRVss.mjs';
2
+ export { c as computeLikeC4Model, a as computeParsedModelData, b as computeView, u as unsafeComputeView } from '../shared/core.YyjkRVss.mjs';
3
+ import { i as i$1 } from '../shared/core.DyzAZvbX.mjs';
4
+ import { r } from '../shared/core.DsznOb9G.mjs';
5
5
  import { h as isExtendsElementView, f as isElementView } from '../shared/core.BW8K1y6R.mjs';
6
6
  import { o as isNonEmptyArray } from '../shared/core.DQj9iv_y.mjs';
7
7
  import { i } from '../shared/core.CpwrZi3D.mjs';
@@ -1,5 +1,5 @@
1
1
  import { A as Any, U as Unknown, g as ElementId, V as ViewId } from '../../shared/core.O6FG0HF9.mjs';
2
- import { E as ElementModel, R as RelationshipModel, g as LikeC4Model } from '../../shared/core.rk17MdPp.mjs';
2
+ import { E as ElementModel, R as RelationshipModel, g as LikeC4Model } from '../../shared/core.BvlHvikl.mjs';
3
3
  import 'type-fest';
4
4
  import '../../shared/core.DuSLYTG6.mjs';
5
5
  import '../../shared/core.DX-WYEPA.mjs';
@@ -1,6 +1,6 @@
1
- export { C as Connection } from '../../../shared/core.DYufusLE.mjs';
2
- export { D as DeploymentConnectionModel, a as findConnection, b as findConnectionsBetween, c as findConnectionsWithin } from '../../../shared/core.BTw4y86Y.mjs';
3
- import '../../../shared/core.rk17MdPp.mjs';
1
+ export { C as Connection } from '../../../shared/core.Bf5zKDK1.mjs';
2
+ export { D as DeploymentConnectionModel, a as findConnection, b as findConnectionsBetween, c as findConnectionsWithin } from '../../../shared/core.DhDo8LAz.mjs';
3
+ import '../../../shared/core.BvlHvikl.mjs';
4
4
  import '../../../shared/core.O6FG0HF9.mjs';
5
5
  import 'type-fest';
6
6
  import '../../../shared/core.DuSLYTG6.mjs';
@@ -1,5 +1,5 @@
1
1
  export { C as Connection } from '../../../shared/core.C1GV0WWV.mjs';
2
- export { D as DeploymentConnectionModel, f as findConnection, a as findConnectionsBetween, b as findConnectionsWithin } from '../../../shared/core.DX4dbV2w.mjs';
2
+ export { D as DeploymentConnectionModel, f as findConnection, a as findConnectionsBetween, b as findConnectionsWithin } from '../../../shared/core.DyzAZvbX.mjs';
3
3
  import '../../../shared/core.DQj9iv_y.mjs';
4
4
  import '../../../shared/core.zLlww-07.mjs';
5
5
  import '../../../shared/core.CpwrZi3D.mjs';
@@ -1,8 +1,8 @@
1
- import { C as Connection } from '../../shared/core.DYufusLE.mjs';
2
- export { D as DeploymentConnectionModel, f as deployment } from '../../shared/core.BTw4y86Y.mjs';
3
- export { C as ConnectionModel, f as model } from '../../shared/core.CLQVFRsf.mjs';
1
+ import { C as Connection } from '../../shared/core.Bf5zKDK1.mjs';
2
+ export { D as DeploymentConnectionModel, f as deployment } from '../../shared/core.DhDo8LAz.mjs';
3
+ export { C as ConnectionModel, f as model } from '../../shared/core.Dtw1SBlz.mjs';
4
4
  import { I as IterableContainer, R as ReorderedArray } from '../../shared/core.wwaSalox.mjs';
5
- import '../../shared/core.rk17MdPp.mjs';
5
+ import '../../shared/core.BvlHvikl.mjs';
6
6
  import '../../shared/core.O6FG0HF9.mjs';
7
7
  import 'type-fest';
8
8
  import '../../shared/core.DuSLYTG6.mjs';
@@ -1,5 +1,5 @@
1
1
  export { C as Connection } from '../../shared/core.C1GV0WWV.mjs';
2
- export { D as DeploymentConnectionModel, d as deployment } from '../../shared/core.DX4dbV2w.mjs';
2
+ export { D as DeploymentConnectionModel, d as deployment } from '../../shared/core.DyzAZvbX.mjs';
3
3
  export { C as ConnectionModel, d as differenceConnections, f as findAscendingConnections, a as findDeepestNestedConnection, b as findDescendantConnections, h as hasSameSource, c as hasSameSourceTarget, e as hasSameTarget, i as isAnyInOut, g as isIncoming, j as isNestedConnection, k as isOutgoing, m as mergeConnections, n as model, s as sortConnectionsByBoundaryHierarchy, l as sortDeepestFirst } from '../../shared/core.Y3j3s-oq.mjs';
4
4
  import '../../shared/core.DQj9iv_y.mjs';
5
5
  import '../../shared/core.zLlww-07.mjs';
@@ -1,6 +1,6 @@
1
- export { C as Connection } from '../../../shared/core.DYufusLE.mjs';
2
- export { C as ConnectionModel, a as findConnection, b as findConnectionsBetween, c as findConnectionsWithin } from '../../../shared/core.CLQVFRsf.mjs';
3
- import '../../../shared/core.rk17MdPp.mjs';
1
+ export { C as Connection } from '../../../shared/core.Bf5zKDK1.mjs';
2
+ export { C as ConnectionModel, a as findConnection, b as findConnectionsBetween, c as findConnectionsWithin } from '../../../shared/core.Dtw1SBlz.mjs';
3
+ import '../../../shared/core.BvlHvikl.mjs';
4
4
  import '../../../shared/core.O6FG0HF9.mjs';
5
5
  import 'type-fest';
6
6
  import '../../../shared/core.DuSLYTG6.mjs';
@@ -1,10 +1,10 @@
1
- import { D as DeploymentNodeModel, a as DeployedInstanceModel, b as DeploymentRelationModel, A as AnyRelationshipModel, N as NestedElementOfDeployedInstanceModel, E as ElementModel, R as RelationshipModel, L as LikeC4ViewModel, c as NodeModel, d as EdgeModel, e as DeploymentElementModel } from '../shared/core.rk17MdPp.mjs';
2
- export { f as AnyLikeC4Model, l as DeploymentOrFqn, h as DeploymentRelationEndpoint, m as EdgeOrId, n as ElementOrFqn, I as IncomingFilter, j as LikeC4DeploymentModel, g as LikeC4Model, k as LikeC4ViewsFolder, o as NodeOrId, O as OutgoingFilter, i as RelationshipsAccum, W as WithMetadata, p as WithTags } from '../shared/core.rk17MdPp.mjs';
1
+ import { D as DeploymentNodeModel, a as DeployedInstanceModel, b as DeploymentRelationModel, A as AnyRelationshipModel, N as NestedElementOfDeployedInstanceModel, E as ElementModel, R as RelationshipModel, L as LikeC4ViewModel, c as NodeModel, d as EdgeModel, e as DeploymentElementModel } from '../shared/core.BvlHvikl.mjs';
2
+ export { f as AnyLikeC4Model, l as DeploymentOrFqn, h as DeploymentRelationEndpoint, m as EdgeOrId, n as ElementOrFqn, I as IncomingFilter, j as LikeC4DeploymentModel, g as LikeC4Model, k as LikeC4ViewsFolder, o as NodeOrId, O as OutgoingFilter, i as RelationshipsAccum, W as WithMetadata, p as WithTags } from '../shared/core.BvlHvikl.mjs';
3
3
  import { A as Any } from '../shared/core.O6FG0HF9.mjs';
4
4
  export { a as Aux, S as SpecAux, _ as aux } from '../shared/core.O6FG0HF9.mjs';
5
- export { C as Connection } from '../shared/core.DYufusLE.mjs';
6
- export { C as ConnectionModel, f as modelConnection } from '../shared/core.CLQVFRsf.mjs';
7
- export { D as DeploymentConnectionModel, f as deploymentConnection } from '../shared/core.BTw4y86Y.mjs';
5
+ export { C as Connection } from '../shared/core.Bf5zKDK1.mjs';
6
+ export { C as ConnectionModel, f as modelConnection } from '../shared/core.Dtw1SBlz.mjs';
7
+ export { D as DeploymentConnectionModel, f as deploymentConnection } from '../shared/core.DhDo8LAz.mjs';
8
8
  export { differenceConnections, findAscendingConnections, findDeepestNestedConnection, findDescendantConnections, hasSameSource, hasSameSourceTarget, hasSameTarget, isAnyInOut, isIncoming, isNestedConnection, isOutgoing, mergeConnections, sortConnectionsByBoundaryHierarchy, sortDeepestFirst } from './connection/index.mjs';
9
9
  export { H as AuxFromDump, A as AuxFromLikeC4ModelData, R as RichText, a as RichTextEmpty, b as RichTextOrEmpty } from '../shared/core.CE_hG7EJ.mjs';
10
10
  import '../shared/core.DX-WYEPA.mjs';
@@ -1,5 +1,5 @@
1
- export { b as EdgeModel, E as ElementModel, a as LikeC4DeploymentModel, L as LikeC4Model, c as LikeC4ViewModel, d as LikeC4ViewsFolder, N as NodeModel, R as RelationshipModel, V as VIEW_FOLDERS_SEPARATOR, e as extractViewTitleFromPath, g as getViewFolderPath, f as isDeployedInstanceModel, h as isDeploymentElementModel, i as isDeploymentNodeModel, k as isDeploymentRelationModel, q as isEdgeModel, m as isElementModel, o as isLikeC4ViewModel, l as isModelRelation, j as isNestedElementOfDeployedInstanceModel, p as isNodeModel, l as isRelationModel, l as isRelationshipModel, n as normalizeViewPath } from '../shared/core.n8wh5WZA.mjs';
2
- export { c as DeployedInstanceModel, D as DeploymentConnectionModel, e as DeploymentNodeModel, g as DeploymentRelationModel, R as RelationshipsAccum, d as deploymentConnection } from '../shared/core.DX4dbV2w.mjs';
1
+ export { b as EdgeModel, E as ElementModel, a as LikeC4DeploymentModel, L as LikeC4Model, c as LikeC4ViewModel, d as LikeC4ViewsFolder, N as NodeModel, R as RelationshipModel, V as VIEW_FOLDERS_SEPARATOR, e as extractViewTitleFromPath, g as getViewFolderPath, f as isDeployedInstanceModel, h as isDeploymentElementModel, i as isDeploymentNodeModel, k as isDeploymentRelationModel, q as isEdgeModel, m as isElementModel, o as isLikeC4ViewModel, l as isModelRelation, j as isNestedElementOfDeployedInstanceModel, p as isNodeModel, l as isRelationModel, l as isRelationshipModel, n as normalizeViewPath } from '../shared/core.DsznOb9G.mjs';
2
+ export { c as DeployedInstanceModel, D as DeploymentConnectionModel, e as DeploymentNodeModel, g as DeploymentRelationModel, R as RelationshipsAccum, d as deploymentConnection } from '../shared/core.DyzAZvbX.mjs';
3
3
  export { C as Connection } from '../shared/core.C1GV0WWV.mjs';
4
4
  export { C as ConnectionModel, d as differenceConnections, f as findAscendingConnections, a as findDeepestNestedConnection, b as findDescendantConnections, h as hasSameSource, c as hasSameSourceTarget, e as hasSameTarget, i as isAnyInOut, g as isIncoming, j as isNestedConnection, k as isOutgoing, m as mergeConnections, n as modelConnection, s as sortConnectionsByBoundaryHierarchy, l as sortDeepestFirst } from '../shared/core.Y3j3s-oq.mjs';
5
5
  export { R as RichText } from '../shared/core.H8NbNp2X.mjs';
@@ -1,4 +1,4 @@
1
- import { E as ElementModel, e as DeploymentElementModel } from './core.rk17MdPp.mjs';
1
+ import { E as ElementModel, e as DeploymentElementModel } from './core.BvlHvikl.mjs';
2
2
  import { A as Any } from './core.O6FG0HF9.mjs';
3
3
  import { F as Fqn } from './core.DX-WYEPA.mjs';
4
4
 
@@ -368,7 +368,7 @@ declare class LikeC4ViewModel<A extends Any = Any, V extends $View<A> = $View<A>
368
368
  get _type(): V[_type];
369
369
  get id(): StrictViewId<A>;
370
370
  /**
371
- * Returns title if defined, otherwise returns its {@link id}
371
+ * Returns title if defined, otherwise returns title of the element it is based on, otherwise returns its {@link id}
372
372
  */
373
373
  get titleOrId(): string;
374
374
  /**
@@ -610,6 +610,7 @@ declare abstract class AbstractDeploymentElementModel<A extends Any> implements
610
610
  abstract readonly $node: DeploymentElement<A>;
611
611
  abstract readonly tags: Tags<A>;
612
612
  get style(): SetRequired<DeploymentElementStyle, 'shape' | 'color' | 'size'>;
613
+ get name(): string;
613
614
  get shape(): ElementShape;
614
615
  get color(): Color;
615
616
  get description(): RichTextOrEmpty;
@@ -1,5 +1,5 @@
1
- import { C as Connection, c as customInspectSymbol } from './core.DYufusLE.mjs';
2
- import { e as DeploymentElementModel, i as RelationshipsAccum, D as DeploymentNodeModel, R as RelationshipModel, b as DeploymentRelationModel } from './core.rk17MdPp.mjs';
1
+ import { C as Connection, c as customInspectSymbol } from './core.Bf5zKDK1.mjs';
2
+ import { e as DeploymentElementModel, i as RelationshipsAccum, D as DeploymentNodeModel, R as RelationshipModel, b as DeploymentRelationModel } from './core.BvlHvikl.mjs';
3
3
  import { A as Any, C as EdgeId } from './core.O6FG0HF9.mjs';
4
4
  import { I as IteratorLike } from './core.DuSLYTG6.mjs';
5
5
 
@@ -4,7 +4,7 @@ import { m as m$2 } from './core.ByrmCl9I.mjs';
4
4
  import { i as i$2 } from './core.CpwrZi3D.mjs';
5
5
  import { g as hierarchyLevel, n as nameFromFqn, i as isAncestor, d as commonAncestor, l as sortNaturalByFqn, m as sortParentsFirst, p as parentFqn, b as ancestorsFqn, C, a as compareNaturalHierarchically, c as compareNatural } from './core.DQj9iv_y.mjs';
6
6
  import { g as getOrCreate } from './core.DcS-0zys.mjs';
7
- import { i as i$1, n as n$3, e as DeploymentNodeModel, c as DeployedInstanceModel, N as NestedElementOfDeployedInstanceModel, g as DeploymentRelationModel } from './core.DX4dbV2w.mjs';
7
+ import { i as i$1, n as n$3, e as DeploymentNodeModel, c as DeployedInstanceModel, N as NestedElementOfDeployedInstanceModel, g as DeploymentRelationModel } from './core.DyzAZvbX.mjs';
8
8
  import { D as DefaultMap } from './core.yaRvRnMW.mjs';
9
9
  import { i as invariant, a as nonNullable } from './core.D4npX2q8.mjs';
10
10
  import { F as FqnRef, b as isDeploymentNode, a as _type, _ as _stage, i as isOnStage, w as whereOperatorAsPredicate } from './core.DK6I-Nr7.mjs';
@@ -984,10 +984,10 @@ class LikeC4ViewModel {
984
984
  return this.$view.id;
985
985
  }
986
986
  /**
987
- * Returns title if defined, otherwise returns its {@link id}
987
+ * Returns title if defined, otherwise returns title of the element it is based on, otherwise returns its {@link id}
988
988
  */
989
989
  get titleOrId() {
990
- return this.title ?? this.id;
990
+ return this.title ?? this.viewOf?.title ?? this.id;
991
991
  }
992
992
  /**
993
993
  * Returns title if defined, otherwise returns `Untitled`.
@@ -1,5 +1,5 @@
1
- import { C as Connection, c as customInspectSymbol } from './core.DYufusLE.mjs';
2
- import { E as ElementModel, R as RelationshipModel } from './core.rk17MdPp.mjs';
1
+ import { C as Connection, c as customInspectSymbol } from './core.Bf5zKDK1.mjs';
2
+ import { E as ElementModel, R as RelationshipModel } from './core.BvlHvikl.mjs';
3
3
  import { A as Any, U as Unknown, C as EdgeId } from './core.O6FG0HF9.mjs';
4
4
 
5
5
  /**
@@ -1,6 +1,6 @@
1
1
  import { c as customInspectSymbol } from './core.C1GV0WWV.mjs';
2
2
  import { a as intersection, d as difference, u as union, b as stringHash, e as equals } from './core.CpwrZi3D.mjs';
3
- import { C, t as s, g as hierarchyLevel, d as commonAncestor, k as isSameHierarchy } from './core.DQj9iv_y.mjs';
3
+ import { C, t as s, g as hierarchyLevel, d as commonAncestor, n as nameFromFqn, k as isSameHierarchy } from './core.DQj9iv_y.mjs';
4
4
  import { u } from './core.DbRvwARP.mjs';
5
5
  import { n as n$1 } from './core.CnIyafWn.mjs';
6
6
  import { a as nonNullable, i as invariant } from './core.D4npX2q8.mjs';
@@ -24,6 +24,9 @@ class AbstractDeploymentElementModel {
24
24
  ...this.$node.style
25
25
  };
26
26
  }
27
+ get name() {
28
+ return nameFromFqn(this.id);
29
+ }
27
30
  get shape() {
28
31
  return this.$node.style?.shape ?? DefaultElementShape;
29
32
  }
@@ -1,7 +1,7 @@
1
- import { s as a$2, t as t$3, u as a$3, r as r$3, m as isElementModel, j as isNestedElementOfDeployedInstanceModel, f as isDeployedInstanceModel, i as isDeploymentNodeModel, h as isDeploymentElementModel, L as LikeC4Model } from './core.n8wh5WZA.mjs';
1
+ import { s as a$2, t as t$3, u as a$3, r as r$3, m as isElementModel, j as isNestedElementOfDeployedInstanceModel, f as isDeployedInstanceModel, i as isDeploymentNodeModel, h as isDeploymentElementModel, L as LikeC4Model } from './core.DsznOb9G.mjs';
2
2
  import { u as u$5 } from './core.DbRvwARP.mjs';
3
3
  import { m as m$2 } from './core.ByrmCl9I.mjs';
4
- import { i as i$a, t as t$4, n as n$2, d as deploymentConnection, R as RelationshipsAccum, D as DeploymentConnectionModel } from './core.DX4dbV2w.mjs';
4
+ import { i as i$a, t as t$4, n as n$2, d as deploymentConnection, R as RelationshipsAccum, D as DeploymentConnectionModel } from './core.DyzAZvbX.mjs';
5
5
  import { p as p$1, f as findAscendingConnections, m as mergeConnections, d as differenceConnections, j as isNestedConnection, s as sortConnectionsByBoundaryHierarchy, o as findConnectionsBetween$3, n as modelConnection, b as findDescendantConnections, a as findDeepestNestedConnection, i as isAnyInOut, k as isOutgoing, g as isIncoming, C as ConnectionModel } from './core.Y3j3s-oq.mjs';
6
6
  import { u as a$1, C, t as s, r as getDefaultExportFromCjs, j as isDescendantOf, m as sortParentsFirst, i as isAncestor, p as parentFqn, e as compareByFqnHierarchically, o as isNonEmptyArray, n as nameFromFqn, s as sortByFqnHierarchically, d as commonAncestor, b as ancestorsFqn, k as isSameHierarchy } from './core.DQj9iv_y.mjs';
7
7
  import { c as commonHead, r as requireForeach, a as requireIterator, u as u$6, o as objectHash, d as d$5, S as Stack } from './core.HUONfQfd.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@likec4/core",
3
- "version": "1.37.0",
3
+ "version": "1.38.0",
4
4
  "license": "MIT",
5
5
  "homepage": "https://likec4.dev",
6
6
  "author": "Denis Davydkov <denis@davydkov.com>",
@@ -99,7 +99,7 @@
99
99
  "type-fest": "^4.41.0",
100
100
  "unified": "11.0.5",
101
101
  "chroma-js": "^3.1.2",
102
- "@mantine/colors-generator": "8.2.2"
102
+ "@mantine/colors-generator": "8.2.4"
103
103
  },
104
104
  "devDependencies": {
105
105
  "@types/chroma-js": "^3.1.1",
@@ -125,7 +125,7 @@
125
125
  "typescript": "5.9.2",
126
126
  "unbuild": "3.5.0",
127
127
  "vitest": "3.2.4",
128
- "@likec4/tsconfig": "1.37.0"
128
+ "@likec4/tsconfig": "1.38.0"
129
129
  },
130
130
  "scripts": {
131
131
  "typecheck": "tsc -b --verbose",
@@ -21,7 +21,7 @@ import {
21
21
  RichText,
22
22
  } from '../types'
23
23
  import * as aux from '../types/_aux'
24
- import { commonAncestor, hierarchyLevel, memoizeProp, nonNullable } from '../utils'
24
+ import { commonAncestor, hierarchyLevel, memoizeProp, nameFromFqn, nonNullable } from '../utils'
25
25
  import { difference, intersection, union } from '../utils/set'
26
26
  import type { LikeC4DeploymentModel } from './DeploymentModel'
27
27
  import type { ElementModel } from './ElementModel'
@@ -55,6 +55,10 @@ abstract class AbstractDeploymentElementModel<A extends Any> implements WithTags
55
55
  }
56
56
  }
57
57
 
58
+ get name(): string {
59
+ return nameFromFqn(this.id)
60
+ }
61
+
58
62
  get shape(): C4ElementShape {
59
63
  return this.$node.style?.shape ?? DefaultElementShape
60
64
  }
@@ -113,10 +113,10 @@ export class LikeC4ViewModel<A extends Any = Any, V extends $View<A> = $View<A>>
113
113
  }
114
114
 
115
115
  /**
116
- * Returns title if defined, otherwise returns its {@link id}
116
+ * Returns title if defined, otherwise returns title of the element it is based on, otherwise returns its {@link id}
117
117
  */
118
118
  get titleOrId(): string {
119
- return this.title ?? this.id
119
+ return this.title ?? this.viewOf?.title ?? this.id
120
120
  }
121
121
 
122
122
  /**