0.60.0 (2024-03-10)
- Relations with container elements #530
Relations with container elements were always used to layout diagrams but were not shown as they sometimes looked quite weird. While solving #614 it was figured out:
Compare results by starting two CLIs (with and without
--use-dot-bin
)
- decrease the number of nodes to group 7 -> 5, closes #614
0.58.0 (2024-03-08)
0.57.1 (2024-02-23)
- cli: fix build (d750521)
0.57.0 (2024-02-23)
- cli: tsx default tsconfig (2f5b3f0)
- lsp: returns references to the same views if no changes are made (56333e1)
- vscode: use browser and node
startServer
from@likec4/language-server
(67e3bab)
0.56.0 (2024-02-17)
- core: improve error stack trace (06ebf81)
- deps: update dependency @hpcc-js/wasm to ^2.15.3 (#537) (b2fc368)
- deps: update dependency @radix-ui/themes to ^2.0.3 (#544) (c0929a1)
- deps: update dependency autoprefixer to ^10.4.17 (#561) (56f462f)
- deps: update dependency jotai to ^2.6.4 (#545) (1f97776)
- deps: update dependency konva to ^9.3.2 (#546) (469c3bc)
- deps: update dependency konva to ^9.3.3 (58db259)
- deps: update dependency react-accessible-treeview to ^2.8.3 (#556) (919aede)
- deps: update dependency remeda to ^1.40.0 (#555) (a5797f6)
- deps: update dependency remeda to ^1.40.1 (#559) (8815004)
- deps: update dependency ts-graphviz to ^1.8.2 (ea80d34)
- deps: update playwright to 1.41.2 (18416f1)
Skipped due manual (and erroneous) publishing to marketplace.
0.54.0 (2024-01-12)
- lsp: add tags to relationships (a7e6e06)
- vscode: document selector on windows (2540f88)
0.53.0 (2024-01-10)
- cli: add fs watcher inside plugin on server configuration (73f4263)
- cli: d2 view fails to load (5f7690f)
- diagrams: minor ui improvements (2f38eb4)
- layout: add
headArrowPoint
andtailArrowPoint
to edges (89a9171) - layouts: ts compile error and remove dead code (667bc00)
- layout: use
constraint=false
instead ofminlen=0
(1fdc6ba) - types:
NonEmptyArray
has defined either head or tail (dccc52a)
0.52.0 (2023-12-12)
- deps: bump
@hpcc-js/wasm
to 2.15.1 (8e51156) - graph: remove implicit edges if there is any nested already included (94f935f)
- graph: sort graph nodes (3c8adf7)
- layout: edges with reverse direction (09edfb8)
- layouts: don't use
weight
edges in graphviz layout (60917eb)
0.51.0 (2023-12-05)
- language-server: tolerant parser, exclude only erroneous elements (previously ignored whole document) (2c9c456)
- graph: improve compound layouts (feec3b3)
- graph: correct relationship predicate (eba2be6)
- generators: indent in mermaid (6d27249)
- deps: bump
vitest
to 1.0.1 (0666acd) - deps: update dependency jotai to ^2.6.0 (62e46f2)
0.50.0 (2023-12-01)
- diagrams: navigate button (44d2182)
- likec4: display other formats (c2f5823)
- likec4: copy-to-clipboard button (ee444ac)
- likec4: display diagram links (c4932e7)
- likec4: show overlay on validation error (6f1c36f)
- layouts: background color for compounds in dot (773c1ae)
- deps: update dependency type-fest to ^4.8.2 (75c54fa)
- docs: show correct dot in playground (9e20da9)
- graph: sort graph nodes considering implicit edges (a1e33a4)
- layouts: improve graph layout (e71abfe)
- graph: removeRedundantImplicitEdges (a6420dc)
0.49.0 (2023-11-23)
- cli: export to JSON (f7a5db7)
- codegen: incorrect dot is generated (fddade6)
- vscode: extension lifecycle (correct "dispose") (ecedcd6)
0.48.0 (2023-11-21)
- deps: update dependency playwright-core to ^1.40.0 (#466) (ac979d4)
- likec4: import statements and error handling in code (efb0797)
- lsp: semantic tokens overlap (f4b9c00)
- vscode: init workspace for web (88b043d)
0.47.0 (2023-11-18)
Custom navigation and links between views:
view view2 {
include *
include cloud.backend with {
// navigate to 'view3' on click
navigateTo view3
}
}
view view3 {
include *
include cloud.backend with {
// the same element, but navigate back to 'view2'
navigateTo view2
}
}
- cli: output version (4e06953)
- deps: update dependency @radix-ui/themes to ^2.0.1 (8c6802f)
- deps: update dependency jotai to ^2.5.1 (4bb2362)
- deps: update dependency nanostores to ^0.9.5 (748554c)
- deps: update dependency type-fest to ^4.7.1 (cadebe0)
- layouts: improve edge weights (21f55cb)
- layouts: set
minlen=0
instead ofconstraint=false
for better layout (ccad492) - lsp: allow reserved words as ID (12636d5)
- lsp: make extended element resolvable inside its body (6c3b009)
0.46.1 (2023-11-14)
- cli: return optimizeDeps in serve (d8e065f)
0.46.0 (2023-11-11)
With the Langium update to version 2.1.2, the code completions in VSCode have significantly improved.
- core: add depth field to compound nodes (fe3083a)
- diagrams: backgroung pattern (c2bc83b)
- graph: sorting of relationships (bd8d694)
- lsp: any order of top-level statements (#445) (154844c)
- vscode: display error message on failed parse (789958f)
- core: hierarchical sorting of relationships (6325e0e)
- deps: update dependency remeda to ^1.29.0 (1ec9348)
- deps: update langium to 2.1.2 (#423) (ba17f44)
- graph: do not add element if it exists implicitly (27b5d7d)
- graph: left-align for edge labels (7e7dea8)
- likec4: improve transparent background for emded (174f296)
- lsp: onBuildPhase should be in async context (2a7f0cb)
0.45.0 (2023-11-04)
- likec4: dedicated page for export with transparent background (e992144)
- likec4: don't emptyOutDir on second run (9d58f39)
- diagrams: absolute position for FullscreenDiagram (29741f1)
- diagrams: adjust label positions (afdad65)
- diagrams: correct node label positions (500f53d)
- diagrams: smooth animation (ad054ce)
- docs: css classes for embedded diagram (9a0418a)
- layouts: strict align for node and edge labels (813fd10)
- vscode: git changes were parsed too, that led to duplicate entries (04d1a7f)
0.44.1 (2023-11-02)
0.44.0 (2023-10-30)
0.43.1 (2023-10-29)
- diagrams: better timing for edge onhover (2dec801)
- vscode: do not fail if source file was removed (96e15ff)
0.43.0 (2023-10-29)
- diagrams: highlight elements of the hovered edge (7e65b0e)
- language: add validation for incoming and outgoing expressions (b31c1f1)
0.42.2 (2023-10-28)
- graph: handle
-> .. ->
expressions (c7fb33e) - layouts:
haveNoOtherEdges
condition should be only for root (095c4ac)
0.42.1 (2023-10-26)
- cli: wrong vite entrypoint when embeded (4f43536)
0.42.0 (2023-10-26)
- cli: export to PNG from preview (6996184)
0.41.0 (2023-10-25)
-
diagrams: relationship kinds by @MoBoo (#342)
DocsRelationship kinds allow you to express different types of relations in a model and customize styling.
Example:
specification { relationship async { color amber line dotted head diamond } } model { service1 -[async]-> service2 }
-
cli: new CLI and preview mode
Try this in folder with your
*.c4
filesnpx likec4 serve
Documentation is updating... 👷
-
cli: export to static website
npx likec4 build -o dist
-
cli: Scaffold projects with
npm create likec4
(ef7cf93) -
diagrams: dashed relationships by default (3593d71)
- diagrams: don't animate element if animation is disabled (b039602)
- likec4: responsive embeds (c8b187d)
- likec4: use deviceScaleFactor = 2 (ad8099a)
- likec4: use window size for export/embed (a0b3d6b)
- remove redundant implicit edges (4a8daaf)
- use [...] for merged edges (81282e6)
- vscode launch task loads source maps (c867401)
@MoBoo made their first contribution in #374
0.40.0 (2023-10-09)
0.37.1 (2023-09-16)
- vscode: "Open source" from element context menu in preview panel (8b19661)
- vscode: Back button in preview panel
- diagrams: improve contextmenu (487972a)
- diagrams: use value from hash as initialViewId, if available (2145de6)
- language: add index view if not present (836a05e)
0.37.0 (2023-09-14)
- language: extends from another view (e2a4d59)
Documentation - cli: export views to Mermaid (#314), thanks to @kcaswick
0.36.0 (2023-09-12)
- cli: option to use custom HTML template for exported png (4e7ef2c)
This allows use custom CSS styling and render additional elements, like View title, description or watermarks.
Documentation
- language-server: separate elements and tags in specification (#305) (796068f)
- vscode: improve logging and telemetry (#310) (cd175e2)
0.35.0 (2023-09-09)
- diagrams: add
resetHashOnUnmount
andonReturnToInitial
props touseViewId
hook (#301) (563b35b) - update typescript to ^5.2.2 (#298) (956c180)
- use Node 20 (faf7949)
- babel compatiblity with Node 20.6 (b35846c)
- deps: update vitest ^0.34.3 (#297) (c4a2dbf)
- language-server: memory leak on keeping reference to element (c7e37f4)
0.34.0 (2023-09-01)
- CLI fails to export image on Windows (#281) (cc7e054), closes #280
- improve errors handling (98735ac)
- workaround for a bug in the
[email protected]
(2e20b96)
0.33.1 (2023-08-12)
No changes, just trigger release.
0.33.0 (2023-08-12)
We do not change major version yet, as the project is in active development.
This release includes breaking changes in @likec4/diagrams
:
- diagrams: DiagramsBrowser
You've already seen this component working on the project website, but it was not back-ported to the npm-module - diagrams: LikeC4 factory
Creates components, "bound" to your model, with type checks. It ensures that only existing views can be rendered.
With codegen
command, CLI generates structured data, like:
export const LikeC4Views = {
indexLR: {
title: 'Landscape View'
nodes: [/* ... */],
edges: [/* ... */],
},
cloud: {
title: 'Overview of Cloud'
nodes: [/* ... */],
edges: [/* ... */],
},
}
This data is used to draw views with @likec4/diagrams
react component.
import { LikeC4 } from '@likec4/diagrams'
import { LikeC4Views } from './generated-code'
// Creates components, bound to the data (with type checks).
// It ensures that only existing views can be rendered.
const { Diagram, Responsive, Embedded, Browser } = LikeC4.create(LikeC4Views)
export const IndexView = () => <Embedded viewId={'indexLR'} />
Documentaion (in progress)
- core: add color to DiagramLabel (47b7579)
- core: add in/out edges to ComputedNode (0ddb07c)
- core: available in ESM/CJS
- diagrams: available in ESM/CJS
- generators: can't infer result type from export
./compute-view
(#267) (1945a97) - layouts: disable graphviz.unflatten, requires research (5379926)
- deps: pin esbuild to 0.17 (3d6125d)
- deps: update dependency @hpcc-js/wasm to ^2.13.1 (#254) (3069dab)
- deps: update dependency jotai to ^2.2.3 (#255) (3179777)
- deps: update linters to ^6.3.0 (717770f)
0.32.0 (2023-08-04)
- core: more accurate computeElementView (e57c7c4)
- deps: update dependency class-variance-authority to ^0.7.0 (dd2bf46)
- deps: update dependency lucide-react to ^0.263.1 (d232c26)
- deps: update dependency turbo to ^1.10.11 (#227) (599c230)
- deps: update linters (a347385)
0.31.0 (2023-07-25)
- core: Add tags, description, links properties to View (13edf4c), closes #240
- language-server: Export element and view properties #240
- Relative links are not resolved, follow-up #244
- deps: update commitlint monorepo to ^17.6.7 (dd29487)
- deps: update dependency body-scroll-lock-upgrade to ^1.0.4 (b2da23d)
- deps: update dependency eslint to ^8.45.0 (82efda1)
- deps: update dependency jotai to ^2.2.2 (437a50f)
- deps: update dependency lucide-react to ^0.262.0 (97541cb)
- deps: update dependency remeda to ^1.24.0 (f7ec074)
- deps: update dependency tailwind-merge to ^1.14.0 (4c71882)
- deps: update dependency word-wrap to ^1.2.5 (2c0569c)
- deps: update nextra monorepo to ^2.10.0 (010447c)
- deps: update typescript-eslint monorepo to ^6.1.0 (c0da381)
- diagrams: unique edge key, scoped to diagram, to avoid any issues with diagram transitions (bc270da)
0.30.0 (2023-07-21)
- deps: update dependency word-wrap from 1.2.3 to 1.2.4 (🔒fix: CVE 2023 26115) (2e5f99)
0.29.0 (2023-07-12)
- core: introduce
modern-errors
and replacetiny-invariant
(4caeb61)
- simple caching for model (f79b53c)
- cli: use node:path module #212 (5f6e1d1)
- deps: update dependency lucide-react to ^0.259.0 (9636a47)
- deps: update typescript-eslint monorepo to ^5.62.0 (#209) (2c62486)
- deps: update typescript-eslint monorepo to v6 (major) (#210) (aff4cac)
0.28.3 (2023-07-07)
trigger release
0.28.2 (2023-07-07)
trigger release