@likec4/core 1.46.4 → 1.48.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 (181) hide show
  1. package/LICENSE +1 -1
  2. package/dist/_chunks/Builder.view-element.mjs +3284 -0
  3. package/dist/_chunks/LikeC4Model.d.mts +1287 -0
  4. package/dist/_chunks/LikeC4Styles.mjs +691 -0
  5. package/dist/_chunks/RichText.d.mts +84 -0
  6. package/dist/_chunks/RichText.mjs +148 -0
  7. package/dist/_chunks/_aux.d.mts +289 -0
  8. package/dist/_chunks/_aux.mjs +18 -0
  9. package/dist/_chunks/_types.d.mts +781 -0
  10. package/dist/_chunks/_types2.d.mts +38 -0
  11. package/dist/_chunks/assignTagColors.mjs +24 -0
  12. package/dist/_chunks/calcDriftsFromSnapshot.mjs +379 -0
  13. package/dist/_chunks/connection.mjs +0 -0
  14. package/dist/_chunks/const.d.mts +43 -0
  15. package/dist/_chunks/const.mjs +33 -0
  16. package/dist/_chunks/expression-model.d.mts +192 -0
  17. package/dist/_chunks/expression-model.mjs +103 -0
  18. package/dist/_chunks/expression.d.mts +347 -0
  19. package/dist/_chunks/expression.mjs +107 -0
  20. package/dist/_chunks/find.d.mts +82 -0
  21. package/dist/_chunks/find.mjs +646 -0
  22. package/dist/_chunks/find2.d.mts +78 -0
  23. package/dist/_chunks/find2.mjs +287 -0
  24. package/dist/_chunks/fqnRef.d.mts +58 -0
  25. package/dist/_chunks/fqnRef.mjs +41 -0
  26. package/dist/_chunks/geometry.mjs +335 -0
  27. package/dist/_chunks/index.d.mts +169 -0
  28. package/dist/_chunks/index2.d.mts +937 -0
  29. package/dist/_chunks/index3.d.mts +146 -0
  30. package/dist/_chunks/index4.d.mts +62 -0
  31. package/dist/_chunks/index5.d.mts +42 -0
  32. package/dist/_chunks/index6.d.mts +43 -0
  33. package/dist/{shared/core.OtRNdMxy.d.mts → _chunks/index7.d.mts} +113 -197
  34. package/dist/_chunks/index8.d.mts +144 -0
  35. package/dist/_chunks/invariant.mjs +18 -0
  36. package/dist/_chunks/iterable.mjs +146 -0
  37. package/dist/_chunks/libs/@mantine/colors-generator.mjs +3416 -0
  38. package/dist/_chunks/libs/@ungap/structured-clone.mjs +213 -0
  39. package/dist/_chunks/libs/bail.mjs +14 -0
  40. package/dist/_chunks/libs/ccount.mjs +25 -0
  41. package/dist/_chunks/libs/character-entities-html4.mjs +263 -0
  42. package/dist/_chunks/libs/character-entities-legacy.mjs +117 -0
  43. package/dist/_chunks/libs/character-entities.mjs +2136 -0
  44. package/dist/_chunks/libs/comma-separated-tokens.mjs +18 -0
  45. package/dist/_chunks/libs/decode-named-character-reference.mjs +21 -0
  46. package/dist/_chunks/libs/defu.mjs +42 -0
  47. package/dist/_chunks/libs/devlop.mjs +5 -0
  48. package/dist/_chunks/libs/escape-string-regexp.mjs +8 -0
  49. package/dist/_chunks/libs/extend.mjs +77 -0
  50. package/dist/_chunks/libs/graphology-dag.mjs +703 -0
  51. package/dist/_chunks/libs/graphology-types.d.mts +601 -0
  52. package/dist/_chunks/libs/graphology.d.mts +6 -0
  53. package/dist/_chunks/libs/graphology.mjs +4565 -0
  54. package/dist/_chunks/libs/hast-util-sanitize.mjs +863 -0
  55. package/dist/_chunks/libs/hast-util-to-html.mjs +2696 -0
  56. package/dist/_chunks/libs/is-plain-obj.mjs +9 -0
  57. package/dist/_chunks/libs/longest-streak.mjs +30 -0
  58. package/dist/_chunks/libs/markdown-table.mjs +290 -0
  59. package/dist/_chunks/libs/mdast-util-find-and-replace.mjs +653 -0
  60. package/dist/_chunks/libs/mdast-util-from-markdown.mjs +8522 -0
  61. package/dist/_chunks/libs/mdast-util-gfm.mjs +2393 -0
  62. package/dist/_chunks/libs/mdast-util-to-hast.mjs +1803 -0
  63. package/dist/_chunks/libs/micromark-extension-gfm.mjs +2243 -0
  64. package/dist/_chunks/libs/mnemonist.d.mts +254 -0
  65. package/dist/_chunks/libs/mnemonist.mjs +1978 -0
  66. package/dist/_chunks/libs/natural-compare-lite.mjs +42 -0
  67. package/dist/_chunks/libs/rehype-sanitize.mjs +29 -0
  68. package/dist/_chunks/libs/rehype-stringify.mjs +34 -0
  69. package/dist/_chunks/libs/remark-gfm.mjs +36 -0
  70. package/dist/_chunks/libs/remark-github-blockquote-alert.mjs +100 -0
  71. package/dist/_chunks/libs/remark-parse.mjs +39 -0
  72. package/dist/_chunks/libs/remark-rehype.mjs +171 -0
  73. package/dist/_chunks/libs/remeda.mjs +702 -0
  74. package/dist/_chunks/libs/trough.mjs +158 -0
  75. package/dist/_chunks/libs/unified.mjs +2212 -0
  76. package/dist/_chunks/mnemonist.d.mts +1 -0
  77. package/dist/_chunks/mnemonist.mjs +0 -0
  78. package/dist/_chunks/model.mjs +1898 -0
  79. package/dist/_chunks/model2.mjs +0 -0
  80. package/dist/_chunks/relationships-view.mjs +132 -0
  81. package/dist/_chunks/rolldown-runtime.mjs +42 -0
  82. package/dist/{shared/core.C_3y3eqV.d.mts → _chunks/scalar.d.mts} +13 -43
  83. package/dist/_chunks/scalar.mjs +84 -0
  84. package/dist/_chunks/utils.mjs +483 -0
  85. package/dist/builder/index.d.mts +11 -773
  86. package/dist/builder/index.mjs +631 -978
  87. package/dist/compute-view/index.d.mts +90 -27
  88. package/dist/compute-view/index.mjs +253 -83
  89. package/dist/compute-view/relationships-view/index.d.mts +16 -51
  90. package/dist/compute-view/relationships-view/index.mjs +6 -184
  91. package/dist/geometry/index.d.mts +2 -109
  92. package/dist/geometry/index.mjs +2 -327
  93. package/dist/index.d.mts +18 -20
  94. package/dist/index.mjs +27 -18
  95. package/dist/model/connection/deployment/index.d.mts +12 -15
  96. package/dist/model/connection/deployment/index.mjs +9 -2
  97. package/dist/model/connection/index.d.mts +14 -75
  98. package/dist/model/connection/index.mjs +10 -3
  99. package/dist/model/connection/model/index.d.mts +12 -15
  100. package/dist/model/connection/model/index.mjs +8 -2
  101. package/dist/model/index.d.mts +15 -57
  102. package/dist/model/index.mjs +11 -4
  103. package/dist/styles/index.d.mts +9 -117
  104. package/dist/styles/index.mjs +26 -59
  105. package/dist/types/RichText.d.mts +3 -0
  106. package/dist/types/RichText.mjs +7 -0
  107. package/dist/types/_aux.d.mts +3 -4
  108. package/dist/types/_aux.mjs +2 -7
  109. package/dist/types/expression-model.d.mts +6 -190
  110. package/dist/types/expression-model.mjs +6 -108
  111. package/dist/types/expression.d.mts +5 -6
  112. package/dist/types/expression.mjs +6 -112
  113. package/dist/types/fqnRef.d.mts +4 -60
  114. package/dist/types/fqnRef.mjs +6 -44
  115. package/dist/types/index.d.mts +9 -47
  116. package/dist/types/index.mjs +14 -16
  117. package/dist/types/scalar.d.mts +2 -2
  118. package/dist/types/scalar.mjs +7 -4
  119. package/dist/utils/graphology/index.d.mts +2 -1864
  120. package/dist/utils/graphology/index.mjs +3 -1
  121. package/dist/utils/index.d.mts +11 -124
  122. package/dist/utils/index.mjs +16 -43
  123. package/dist/utils/iterable/index.d.mts +9 -132
  124. package/dist/utils/iterable/index.mjs +2 -61
  125. package/dist/utils/mnemonist.d.mts +2 -0
  126. package/dist/utils/mnemonist.mjs +12 -0
  127. package/package.json +18 -22
  128. package/compute-view/relationships/package.json +0 -4
  129. package/dist/shared/core.3ZhnKAlZ.mjs +0 -106
  130. package/dist/shared/core.78IWAHAE.mjs +0 -332
  131. package/dist/shared/core.B85MJLTf.mjs +0 -5
  132. package/dist/shared/core.BFd1lU9R.mjs +0 -29
  133. package/dist/shared/core.BKlholso.mjs +0 -3
  134. package/dist/shared/core.BPGOjone.d.mts +0 -46
  135. package/dist/shared/core.BYdtmqY5.mjs +0 -1255
  136. package/dist/shared/core.BZCgljZd.d.mts +0 -83
  137. package/dist/shared/core.BbE4y-yl.mjs +0 -177
  138. package/dist/shared/core.BhNcrwzK.mjs +0 -7
  139. package/dist/shared/core.BkVA6gjl.mjs +0 -5
  140. package/dist/shared/core.BoYfZOBm.mjs +0 -3
  141. package/dist/shared/core.BsSXS-_R.mjs +0 -7
  142. package/dist/shared/core.BspBF3SJ.mjs +0 -3944
  143. package/dist/shared/core.BvPm_-u3.d.mts +0 -334
  144. package/dist/shared/core.C-Jdx7xo.d.mts +0 -1263
  145. package/dist/shared/core.C3JowhaZ.mjs +0 -32
  146. package/dist/shared/core.C4x8aaWa.mjs +0 -27
  147. package/dist/shared/core.CBLX4mT8.mjs +0 -28411
  148. package/dist/shared/core.CLSZtnFh.mjs +0 -69
  149. package/dist/shared/core.CRhT4Iio.mjs +0 -785
  150. package/dist/shared/core.CbT8JVYL.mjs +0 -5
  151. package/dist/shared/core.CdNCAwq7.mjs +0 -176
  152. package/dist/shared/core.ClTP6-TN.d.mts +0 -87
  153. package/dist/shared/core.CmGY9blO.mjs +0 -6717
  154. package/dist/shared/core.CmPXpJ8l.mjs +0 -21
  155. package/dist/shared/core.Coi_LOUZ.mjs +0 -7
  156. package/dist/shared/core.CqAJJpK_.mjs +0 -3
  157. package/dist/shared/core.Ctj2S3bD.d.mts +0 -466
  158. package/dist/shared/core.CywrQs86.d.mts +0 -31
  159. package/dist/shared/core.D00YbOhQ.d.mts +0 -300
  160. package/dist/shared/core.D0WZutNd.mjs +0 -94
  161. package/dist/shared/core.D4npX2q8.mjs +0 -18
  162. package/dist/shared/core.DB0Ue5Wx.d.mts +0 -70
  163. package/dist/shared/core.DEK-BO3_.mjs +0 -1206
  164. package/dist/shared/core.DH7TXqXf.mjs +0 -136
  165. package/dist/shared/core.DRJma0Ol.mjs +0 -22
  166. package/dist/shared/core.DSalPD6v.mjs +0 -1352
  167. package/dist/shared/core.DVfPJPJj.mjs +0 -2200
  168. package/dist/shared/core.DXhDWKFZ.d.mts +0 -3
  169. package/dist/shared/core.DbfO90vF.mjs +0 -434
  170. package/dist/shared/core.DcS-0zys.mjs +0 -10
  171. package/dist/shared/core.DeDCYTDR.d.mts +0 -98
  172. package/dist/shared/core.DpKY_3NF.d.mts +0 -504
  173. package/dist/shared/core.Dt0v3djy.d.mts +0 -41
  174. package/dist/shared/core.FZ305VYd.mjs +0 -21
  175. package/dist/shared/core.RfnaEmgA.mjs +0 -7
  176. package/dist/shared/core.oSV6SRfk.mjs +0 -13
  177. package/dist/shared/core.om36dXXW.mjs +0 -41
  178. package/dist/shared/core.q10OP9oJ.mjs +0 -5
  179. package/dist/shared/core.uFk_o9X6.mjs +0 -13
  180. package/dist/shared/core.xeuDd__E.mjs +0 -300
  181. package/dist/shared/core.xgoPk2RG.mjs +0 -4989
@@ -1,334 +0,0 @@
1
- import { TupleToUnion, Tagged } from 'type-fest';
2
- import { A as Any, T as Tag, q as AllKinds, r as Tags, S as StrictViewId, E as ElementKind } from './core.D00YbOhQ.mjs';
3
- import { N as NonEmptyArray, E as ExclusiveUnion } from './core.DB0Ue5Wx.mjs';
4
- import { FqnRef } from '../types/fqnRef.mjs';
5
- import { M as MarkdownOrString, I as Icon } from './core.C_3y3eqV.mjs';
6
-
7
- /**
8
- * For padding, margin, etc.
9
- */
10
- declare const Sizes: readonly ["xs", "sm", "md", "lg", "xl"];
11
- type Size = TupleToUnion<typeof Sizes>;
12
- type TextSize = Size;
13
- type ShapeSize = Size;
14
- type SpacingSize = Size;
15
- declare const BorderStyles: readonly ["solid", "dashed", "dotted", "none"];
16
- type BorderStyle = TupleToUnion<typeof BorderStyles>;
17
- declare const ElementShapes: readonly ["rectangle", "person", "browser", "mobile", "cylinder", "storage", "queue"];
18
- type ElementShape = TupleToUnion<typeof ElementShapes>;
19
- type HexColor = `#${string}`;
20
- type ColorLiteral = HexColor | `rgb(${number},${number},${number})` | `rgba(${number},${number},${number},${number})`;
21
- type RelationshipLineType = 'dashed' | 'solid' | 'dotted';
22
- declare const RelationshipArrowTypes: readonly ["none", "normal", "onormal", "dot", "odot", "diamond", "odiamond", "crow", "open", "vee"];
23
- type RelationshipArrowType = TupleToUnion<typeof RelationshipArrowTypes>;
24
- declare const ThemeColors: readonly ["amber", "blue", "gray", "slate", "green", "indigo", "muted", "primary", "red", "secondary", "sky"];
25
- type ThemeColor = typeof ThemeColors[number];
26
- declare function isThemeColor(color: string): color is ThemeColor;
27
- type CustomColorDefinitions = {
28
- [key: string]: ThemeColorValues;
29
- };
30
- type CustomColor = Tagged<string, 'CustomColor'>;
31
- declare function isCustomColor(color: string): color is CustomColor;
32
- type Color = ThemeColor | CustomColor;
33
- interface ElementColorValues {
34
- readonly fill: ColorLiteral;
35
- readonly stroke: ColorLiteral;
36
- readonly hiContrast: ColorLiteral;
37
- readonly loContrast: ColorLiteral;
38
- }
39
- interface RelationshipColorValues {
40
- readonly line: ColorLiteral;
41
- readonly labelBg: ColorLiteral;
42
- readonly label: ColorLiteral;
43
- }
44
- interface ThemeColorValues {
45
- readonly elements: ElementColorValues;
46
- readonly relationships: RelationshipColorValues;
47
- }
48
- /**
49
- * Default style values for elements, groups and relationships
50
- */
51
- interface LikeC4StyleDefaults {
52
- readonly color: ThemeColor;
53
- readonly size: ShapeSize;
54
- readonly shape: ElementShape;
55
- readonly opacity?: number;
56
- readonly border?: BorderStyle;
57
- readonly padding?: SpacingSize;
58
- readonly text?: TextSize;
59
- /**
60
- * Default style values for groups
61
- * If not specified, the default values for elements are used
62
- */
63
- readonly group?: {
64
- readonly color?: ThemeColor;
65
- readonly opacity?: number;
66
- readonly border?: BorderStyle;
67
- };
68
- readonly relationship: {
69
- readonly color: ThemeColor;
70
- readonly line: RelationshipLineType;
71
- readonly arrow: RelationshipArrowType;
72
- };
73
- }
74
- interface LikeC4Theme {
75
- readonly colors: Readonly<Record<ThemeColor, ThemeColorValues>>;
76
- readonly sizes: Readonly<Record<ShapeSize, {
77
- readonly width: number;
78
- readonly height: number;
79
- }>>;
80
- readonly spacing: Readonly<Record<SpacingSize, number>>;
81
- readonly textSizes: Readonly<Record<TextSize, number>>;
82
- }
83
- interface LikeC4StylesConfig {
84
- readonly theme: LikeC4Theme;
85
- readonly defaults: LikeC4StyleDefaults;
86
- }
87
-
88
- type EqualOperator<V> = {
89
- eq: V;
90
- neq?: never;
91
- } | {
92
- eq?: never;
93
- neq: V;
94
- };
95
- type AllNever = {
96
- not?: never;
97
- and?: never;
98
- or?: never;
99
- tag?: never;
100
- kind?: never;
101
- participant?: never;
102
- operator?: never;
103
- };
104
- type TagEqual<A extends Any> = Omit<AllNever, 'tag'> & {
105
- tag: EqualOperator<Tag<A>> | Tag<A>;
106
- };
107
- declare function isTagEqual<A extends Any>(operator: WhereOperator<A>): operator is TagEqual<A>;
108
- type KindEqual<A extends Any> = Omit<AllNever, 'kind'> & {
109
- kind: EqualOperator<AllKinds<A>> | AllKinds<A>;
110
- };
111
- declare function isKindEqual<A extends Any>(operator: WhereOperator<A>): operator is KindEqual<A>;
112
- type Participant = 'source' | 'target';
113
- type ParticipantOperator<A extends Any> = Omit<AllNever, 'participant' | 'operator'> & {
114
- participant: Participant;
115
- operator: KindEqual<A> | TagEqual<A>;
116
- };
117
- declare function isParticipantOperator<A extends Any>(operator: WhereOperator<A>): operator is ParticipantOperator<A>;
118
- type NotOperator<A extends Any> = Omit<AllNever, 'not'> & {
119
- not: WhereOperator<A>;
120
- };
121
- declare function isNotOperator<A extends Any>(operator: WhereOperator<A>): operator is NotOperator<A>;
122
- type AndOperator<A extends Any> = Omit<AllNever, 'and'> & {
123
- and: NonEmptyArray<WhereOperator<A>>;
124
- };
125
- declare function isAndOperator<A extends Any>(operator: WhereOperator<A>): operator is AndOperator<A>;
126
- type OrOperator<A extends Any> = Omit<AllNever, 'or'> & {
127
- or: NonEmptyArray<WhereOperator<A>>;
128
- };
129
- declare function isOrOperator<A extends Any>(operator: WhereOperator<A>): operator is OrOperator<A>;
130
- type WhereOperator<A extends Any = Any> = TagEqual<A> | KindEqual<A> | ParticipantOperator<A> | NotOperator<A> | AndOperator<A> | OrOperator<A>;
131
- type Filterable<A extends Any> = {
132
- tags?: Tags<A> | null | undefined;
133
- kind?: AllKinds<A> | null | undefined;
134
- source?: Filterable<A>;
135
- target?: Filterable<A>;
136
- };
137
- type OperatorPredicate<A extends Any> = (value: Filterable<A>) => boolean;
138
- declare function whereOperatorAsPredicate<A extends Any>(operator: WhereOperator<A>): OperatorPredicate<A>;
139
-
140
- type AnyAux = Any;
141
- type PredicateSelector = 'children' | 'expanded' | 'descendants';
142
- declare namespace FqnExpr {
143
- type Wildcard = {
144
- wildcard: true;
145
- };
146
- function isWildcard<A extends AnyAux>(expr: Expression<A>): expr is FqnExpr.Wildcard;
147
- interface ModelRef<M extends AnyAux = AnyAux> {
148
- ref: FqnRef.ModelRef<M>;
149
- selector?: PredicateSelector;
150
- }
151
- function isModelRef<A extends AnyAux>(ref: Expression<A>): ref is FqnExpr.ModelRef<A>;
152
- interface DeploymentRef<A extends AnyAux = AnyAux> {
153
- ref: FqnRef.DeploymentRef<A>;
154
- selector?: PredicateSelector;
155
- }
156
- function isDeploymentRef<A extends AnyAux>(expr: Expression<A>): expr is FqnExpr.DeploymentRef<A>;
157
- interface ElementKindExpr<A extends AnyAux = AnyAux> {
158
- elementKind: ElementKind<A>;
159
- isEqual: boolean;
160
- }
161
- function isElementKindExpr<A extends AnyAux>(expr: Expression<A>): expr is ElementKindExpr<A>;
162
- interface ElementTagExpr<A extends AnyAux = AnyAux> {
163
- elementTag: Tag<A>;
164
- isEqual: boolean;
165
- }
166
- function isElementTagExpr<A extends AnyAux>(expr: Expression<A>): expr is ElementTagExpr<A>;
167
- type NonWildcard<A extends AnyAux = AnyAux> = ExclusiveUnion<{
168
- ModelRef: ModelRef<A>;
169
- DeploymentRef: DeploymentRef<A>;
170
- ElementKind: ElementKindExpr<A>;
171
- ElementTag: ElementTagExpr<A>;
172
- }>;
173
- interface Where<A extends AnyAux = AnyAux> {
174
- where: {
175
- expr: ExclusiveUnion<{
176
- Wildcard: Wildcard;
177
- ModelRef: ModelRef<A>;
178
- DeploymentRef: DeploymentRef<A>;
179
- ElementKind: ElementKindExpr<A>;
180
- ElementTag: ElementTagExpr<A>;
181
- }>;
182
- condition: WhereOperator<A>;
183
- };
184
- }
185
- function isWhere<A extends AnyAux>(expr: Expression<A>): expr is FqnExpr.Where<A>;
186
- interface Custom<A extends AnyAux = AnyAux> {
187
- custom: {
188
- expr: OrWhere<A>;
189
- title?: string;
190
- description?: MarkdownOrString;
191
- technology?: string;
192
- notation?: string;
193
- shape?: ElementShape;
194
- color?: Color;
195
- icon?: Icon;
196
- border?: BorderStyle;
197
- opacity?: number;
198
- navigateTo?: StrictViewId<A>;
199
- multiple?: boolean;
200
- size?: ShapeSize;
201
- padding?: ShapeSize;
202
- textSize?: ShapeSize;
203
- };
204
- }
205
- function isCustom<A extends AnyAux>(expr: Expression<A>): expr is Custom<A>;
206
- function is<A extends AnyAux>(expr: Expression<A>): expr is FqnExpr<A>;
207
- type OrWhere<A extends AnyAux = AnyAux> = ExclusiveUnion<{
208
- Wildcard: FqnExpr.Wildcard;
209
- ModelRef: FqnExpr.ModelRef<A>;
210
- DeploymentRef: FqnExpr.DeploymentRef<A>;
211
- ElementKind: ElementKindExpr<A>;
212
- ElementTag: ElementTagExpr<A>;
213
- Where: FqnExpr.Where<A>;
214
- }>;
215
- type Any<A extends AnyAux = AnyAux> = ExclusiveUnion<{
216
- Wildcard: Wildcard;
217
- ModelRef: ModelRef<A>;
218
- DeploymentRef: DeploymentRef<A>;
219
- ElementKind: ElementKindExpr<A>;
220
- ElementTag: ElementTagExpr<A>;
221
- Where: Where<A>;
222
- Custom: Custom<A>;
223
- }>;
224
- function unwrap<A extends AnyAux>(expr: FqnExpr.Any<A>): Wildcard | ModelRef<A> | DeploymentRef<A> | ElementKindExpr<A> | ElementTagExpr<A>;
225
- }
226
- type FqnExpr<A extends AnyAux = AnyAux> = ExclusiveUnion<{
227
- Wildcard: FqnExpr.Wildcard;
228
- ModelRef: FqnExpr.ModelRef<A>;
229
- DeploymentRef: FqnExpr.DeploymentRef<A>;
230
- ElementKind: FqnExpr.ElementKindExpr<A>;
231
- ElementTag: FqnExpr.ElementTagExpr<A>;
232
- }>;
233
- declare namespace RelationExpr {
234
- type Endpoint<A extends AnyAux = AnyAux> = FqnExpr.Where<A>['where']['expr'];
235
- interface Direct<A extends AnyAux = AnyAux> {
236
- source: Endpoint<A>;
237
- target: Endpoint<A>;
238
- isBidirectional?: boolean;
239
- }
240
- function isDirect<A extends AnyAux>(expr: Expression<A>): expr is RelationExpr.Direct<A>;
241
- interface Incoming<A extends AnyAux = AnyAux> {
242
- incoming: Endpoint<A>;
243
- }
244
- function isIncoming<A extends AnyAux>(expr: Expression<A>): expr is RelationExpr.Incoming<A>;
245
- interface Outgoing<A extends AnyAux = AnyAux> {
246
- outgoing: Endpoint<A>;
247
- }
248
- function isOutgoing<A extends AnyAux>(expr: Expression<A>): expr is RelationExpr.Outgoing<A>;
249
- interface InOut<A extends AnyAux = AnyAux> {
250
- inout: Endpoint<A>;
251
- }
252
- function isInOut<A extends AnyAux>(expr: Expression<A>): expr is RelationExpr.InOut<A>;
253
- interface Where<A extends AnyAux = AnyAux> {
254
- where: {
255
- expr: ExclusiveUnion<{
256
- Direct: RelationExpr.Direct<A>;
257
- Incoming: RelationExpr.Incoming<A>;
258
- Outgoing: RelationExpr.Outgoing<A>;
259
- InOut: RelationExpr.InOut<A>;
260
- }>;
261
- condition: WhereOperator<A>;
262
- };
263
- }
264
- function isWhere<A extends AnyAux>(expr: Expression<A>): expr is RelationExpr.Where<A>;
265
- interface Custom<A extends AnyAux = AnyAux> {
266
- customRelation: {
267
- expr: OrWhere<A>;
268
- title?: string;
269
- description?: string;
270
- technology?: string;
271
- notation?: string;
272
- navigateTo?: StrictViewId<A>;
273
- notes?: string;
274
- color?: Color;
275
- line?: RelationshipLineType;
276
- head?: RelationshipArrowType;
277
- tail?: RelationshipArrowType;
278
- };
279
- }
280
- function isCustom<A extends AnyAux>(expr: Expression<A>): expr is Custom<A>;
281
- function is<A extends AnyAux>(expr: Expression<A>): expr is RelationExpr<A>;
282
- type OrWhere<A extends AnyAux = AnyAux> = ExclusiveUnion<{
283
- Direct: Direct<A>;
284
- Incoming: Incoming<A>;
285
- Outgoing: Outgoing<A>;
286
- InOut: InOut<A>;
287
- Where: Where<A>;
288
- }>;
289
- type Any<A extends AnyAux = AnyAux> = ExclusiveUnion<{
290
- Direct: Direct<A>;
291
- Incoming: Incoming<A>;
292
- Outgoing: Outgoing<A>;
293
- InOut: InOut<A>;
294
- Where: Where<A>;
295
- Custom: Custom<A>;
296
- }>;
297
- function unwrap<A extends AnyAux>(expr: RelationExpr.Any<A>): Direct<A> | Incoming<A> | Outgoing<A> | InOut<A>;
298
- }
299
- type RelationExpr<A extends AnyAux = AnyAux> = ExclusiveUnion<{
300
- Direct: RelationExpr.Direct<A>;
301
- Incoming: RelationExpr.Incoming<A>;
302
- Outgoing: RelationExpr.Outgoing<A>;
303
- InOut: RelationExpr.InOut<A>;
304
- }>;
305
- /**
306
- * Represents a version 2 expression which can be one of several types.
307
- *
308
- * @template D - The type for the deployment FQN, defaults to `Fqn`.
309
- * @template M - The type for the model FQN, defaults to `Fqn`.
310
- */
311
- type Expression<A extends AnyAux = AnyAux> = ExclusiveUnion<{
312
- Wildcard: FqnExpr.Wildcard;
313
- ModelRef: FqnExpr.ModelRef<A>;
314
- DeploymentRef: FqnExpr.DeploymentRef<A>;
315
- ElementKind: FqnExpr.ElementKindExpr<A>;
316
- ElementTag: FqnExpr.ElementTagExpr<A>;
317
- Custom: FqnExpr.Custom<A>;
318
- Direct: RelationExpr.Direct<A>;
319
- Incoming: RelationExpr.Incoming<A>;
320
- Outgoing: RelationExpr.Outgoing<A>;
321
- InOut: RelationExpr.InOut<A>;
322
- Where: Expression.Where<A>;
323
- CustomRelation: RelationExpr.Custom<A>;
324
- }>;
325
- declare namespace Expression {
326
- type Where<A extends AnyAux = AnyAux> = FqnExpr.Where<A> | RelationExpr.Where<A>;
327
- function isWhere<A extends AnyAux>(expr: Expression<A>): expr is Expression.Where<A>;
328
- function isRelationWhere<A extends AnyAux>(expr: Expression<A>): expr is RelationExpr.Where<A>;
329
- function isFqnExprWhere<A extends AnyAux>(expr: Expression<A>): expr is FqnExpr.Where<A>;
330
- function isFqnExpr<A extends AnyAux>(expr: Expression<A>): expr is FqnExpr.Any<A>;
331
- function isRelation<A extends AnyAux>(expr: Expression<A>): expr is RelationExpr.Any<A>;
332
- }
333
-
334
- export { type AndOperator as A, type BorderStyle as B, type Color as C, ElementShapes as D, type ElementColorValues as E, FqnExpr as F, type ColorLiteral as G, type HexColor as H, RelationshipArrowTypes as I, ThemeColors as J, type KindEqual as K, type LikeC4StylesConfig as L, isThemeColor as M, type NotOperator as N, type OrOperator as O, type PredicateSelector as P, type CustomColorDefinitions as Q, type RelationshipColorValues as R, type SpacingSize as S, type ThemeColor as T, type CustomColor as U, isCustomColor as V, type WhereOperator as W, type LikeC4Theme as a, type LikeC4StyleDefaults as b, type ThemeColorValues as c, type TextSize as d, type ShapeSize as e, type RelationshipLineType as f, type RelationshipArrowType as g, type ElementShape as h, RelationExpr as i, Expression as j, type EqualOperator as k, type TagEqual as l, isTagEqual as m, isKindEqual as n, type Participant as o, type ParticipantOperator as p, isParticipantOperator as q, isNotOperator as r, isAndOperator as s, isOrOperator as t, type Filterable as u, type OperatorPredicate as v, whereOperatorAsPredicate as w, Sizes as x, type Size as y, BorderStyles as z };