likec4 1.59.4 → 1.61.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 (186) hide show
  1. package/README.md +2 -0
  2. package/__app__/codegen/react.mjs +4 -10
  3. package/__app__/codegen/webcomponent.mjs +6 -131
  4. package/__app__/index.html +15 -15
  5. package/__app__/src/aichat/index.mjs +11 -7
  6. package/__app__/src/chunks/AIChat.mjs +1355 -739
  7. package/__app__/src/chunks/ErrorComponent.mjs +444 -0
  8. package/__app__/src/chunks/Header.mjs +269 -0
  9. package/__app__/src/chunks/ViewReact.mjs +438 -0
  10. package/__app__/src/chunks/find.mjs +38 -0
  11. package/__app__/src/chunks/hooks.mjs +158 -472
  12. package/__app__/src/chunks/libs/@tabler/icons-react.mjs +340 -0
  13. package/__app__/src/chunks/libs/@tanstack-ai.mjs +11841 -1417
  14. package/__app__/src/chunks/libs/@tanstack.mjs +5110 -2404
  15. package/__app__/src/chunks/libs/fast-equals.mjs +507 -214
  16. package/__app__/src/chunks/libs/html-to-image.mjs +613 -0
  17. package/__app__/src/chunks/libs/nanostores.mjs +170 -0
  18. package/__app__/src/chunks/libs/react-resizable-panels.mjs +2792 -0
  19. package/__app__/src/chunks/react.mjs +22 -0
  20. package/__app__/src/chunks/rolldown-runtime.mjs +16 -29
  21. package/__app__/src/chunks/router.mjs +106 -0
  22. package/__app__/src/chunks/scope.mjs +106 -0
  23. package/__app__/src/chunks/searchParams.mjs +29 -0
  24. package/__app__/src/chunks/single-index.mjs +465 -0
  25. package/__app__/src/chunks/styled-system.mjs +1826 -2528
  26. package/__app__/src/chunks/useAsync.mjs +69 -0
  27. package/__app__/src/chunks/useSyncedRef.mjs +16 -0
  28. package/__app__/src/components/ColorSchemeToggle.mjs +124 -0
  29. package/__app__/src/components/CopyToClipboard.mjs +53 -0
  30. package/__app__/src/components/ErrorComponent.mjs +1 -0
  31. package/__app__/src/components/NavigationPanel.mjs +63 -0
  32. package/__app__/src/components/NotFound.mjs +155 -0
  33. package/__app__/src/components/ViewOutlet.mjs +9 -0
  34. package/__app__/src/components/model-diff/CompareModelProvider.mjs +44 -0
  35. package/__app__/src/components/model-diff/ModelDiffPanel.mjs +179 -0
  36. package/__app__/src/components/model-diff/compare-model.mjs +76 -0
  37. package/__app__/src/components/model-diff/state.mjs +45 -0
  38. package/__app__/src/components/search/OverviewSearch.mjs +92 -0
  39. package/__app__/src/components/search/OverviewSearchAdapter.mjs +94 -0
  40. package/__app__/src/components/sidebar/DiagramTree.css.mjs +48 -0
  41. package/__app__/src/components/sidebar/DiagramsTree.mjs +304 -0
  42. package/__app__/src/components/sidebar/Drawer.mjs +178 -0
  43. package/__app__/src/components/sidebar/SidebarBurger.mjs +28 -0
  44. package/__app__/src/components/sidebar/data.mjs +94 -0
  45. package/__app__/src/components/sidebar/state.mjs +16 -0
  46. package/__app__/src/components/view-page/Header.mjs +1 -0
  47. package/__app__/src/components/view-page/SelectProject.mjs +258 -0
  48. package/__app__/src/components/view-page/ShareModal.mjs +111 -0
  49. package/__app__/src/components/view-page/share-modal/AlertLocalhost.mjs +31 -0
  50. package/__app__/src/components/view-page/share-modal/CopyButtonChild.mjs +36 -0
  51. package/__app__/src/components/view-page/share-modal/EmbedPanel.mjs +100 -0
  52. package/__app__/src/components/view-page/share-modal/WebcomponentsPanel.mjs +264 -0
  53. package/__app__/src/components/view-page/state.mjs +17 -0
  54. package/__app__/src/context/LikeC4CustomizationContext.mjs +26 -0
  55. package/__app__/src/context/LikeC4IconRendererContext.mjs +29 -0
  56. package/__app__/src/context/LikeC4ModelContext.mjs +34 -0
  57. package/__app__/src/context/LikeC4ProjectsContext.mjs +40 -0
  58. package/__app__/src/context/ModelDiffsContext.mjs +33 -0
  59. package/__app__/src/context/safeCtx.mjs +14 -0
  60. package/__app__/src/fonts.css +112 -1
  61. package/__app__/src/hooks.mjs +1 -0
  62. package/__app__/src/main.mjs +6 -29151
  63. package/__app__/src/pages/EmbedPage.mjs +93 -0
  64. package/__app__/src/pages/ExportPage.mjs +691 -0
  65. package/__app__/src/pages/ProjectsOverview.mjs +23 -0
  66. package/__app__/src/pages/ViewAsD2.mjs +105 -0
  67. package/__app__/src/pages/ViewAsDot.mjs +65 -0
  68. package/__app__/src/pages/ViewAsMmd.mjs +109 -0
  69. package/__app__/src/pages/ViewAsPuml.mjs +105 -0
  70. package/__app__/src/pages/ViewEditor.mjs +220 -0
  71. package/__app__/src/pages/ViewReact.mjs +1 -0
  72. package/__app__/src/pages/export-layout.mjs +95 -0
  73. package/__app__/src/pages/export-page-params.mjs +9 -0
  74. package/__app__/src/pages/styles.css.mjs +23 -0
  75. package/__app__/src/routeTree.gen.mjs +105 -0
  76. package/__app__/src/router.mjs +1 -0
  77. package/__app__/src/routes/__root.mjs +65 -0
  78. package/__app__/src/routes/index.css.mjs +29 -0
  79. package/__app__/src/routes/index.mjs +32 -0
  80. package/__app__/src/routes/project._projectId/-components.mjs +100 -0
  81. package/__app__/src/routes/project._projectId/embed._viewId.mjs +5 -0
  82. package/__app__/src/routes/project._projectId/export._viewId.mjs +24 -0
  83. package/__app__/src/routes/project._projectId/index.mjs +14 -0
  84. package/__app__/src/routes/project._projectId/route.mjs +93 -0
  85. package/__app__/src/routes/project._projectId/view._viewId.d2.mjs +34 -0
  86. package/__app__/src/routes/project._projectId/view._viewId.dot.mjs +41 -0
  87. package/__app__/src/routes/project._projectId/view._viewId.index.mjs +7 -0
  88. package/__app__/src/routes/project._projectId/view._viewId.mjs +23 -0
  89. package/__app__/src/routes/project._projectId/view._viewId.mmd.mjs +39 -0
  90. package/__app__/src/routes/project._projectId/view._viewId.puml.mjs +34 -0
  91. package/__app__/src/routes/projects.mjs +36 -0
  92. package/__app__/src/routes/single-index.mjs +1 -0
  93. package/__app__/src/routes/webcomponent._.mjs +94 -0
  94. package/__app__/src/style.css +18497 -1
  95. package/config/schema.json +146 -97
  96. package/dist/app/render-view-client.css +1 -1
  97. package/dist/app/render-view-client.js +394 -238
  98. package/dist/chunks/enableServer.mjs +1 -1
  99. package/dist/chunks/filenames.mjs +25 -17
  100. package/dist/chunks/generate-likec4.mjs +5 -0
  101. package/dist/chunks/index.d.mts +255 -194
  102. package/dist/chunks/index2.d.mts +8246 -3610
  103. package/dist/chunks/libs/@chenglou/pretext.mjs +9 -0
  104. package/dist/chunks/libs/@chevrotain/gast.mjs +27 -1
  105. package/dist/chunks/libs/@chevrotain/regexp-to-ast.mjs +81 -9
  106. package/dist/chunks/libs/@logtape/logtape.mjs +5 -4
  107. package/dist/chunks/libs/@lume/kiwi.mjs +1 -1
  108. package/dist/chunks/libs/@ts-graphviz/common.d.mts +2 -4
  109. package/dist/chunks/libs/@ts-graphviz/core.mjs +1 -1
  110. package/dist/chunks/libs/birpc.mjs +1 -1
  111. package/dist/chunks/libs/chevrotain-allstar.mjs +2 -2
  112. package/dist/chunks/libs/chevrotain.mjs +88 -36
  113. package/dist/chunks/libs/clone.mjs +1 -0
  114. package/dist/chunks/libs/eventemitter3.mjs +1 -1
  115. package/dist/chunks/libs/fast-equals.mjs +1 -0
  116. package/dist/chunks/libs/fontkit.mjs +1 -0
  117. package/dist/chunks/libs/json5.mjs +4 -4
  118. package/dist/chunks/libs/langium.d.mts +6707 -6715
  119. package/dist/chunks/libs/langium.mjs +16 -24
  120. package/dist/chunks/libs/merge-error-cause.mjs +1 -1
  121. package/dist/chunks/libs/p-limit.mjs +1 -0
  122. package/dist/chunks/libs/p-queue.mjs +1 -1
  123. package/dist/chunks/libs/package-manager-detector.mjs +1 -1
  124. package/dist/chunks/libs/pako.mjs +1 -1
  125. package/dist/chunks/libs/pathe.mjs +1 -1
  126. package/dist/chunks/libs/pretty-ms.mjs +1 -1
  127. package/dist/chunks/libs/remeda.mjs +1 -1
  128. package/dist/chunks/libs/ufo.mjs +1 -1
  129. package/dist/chunks/libs/unstorage.mjs +1 -1
  130. package/dist/chunks/libs/which.mjs +1 -1
  131. package/dist/chunks/node.mjs +111 -77
  132. package/dist/chunks/rolldown-runtime.mjs +1 -1
  133. package/dist/chunks/sequence-view.mjs +1 -1
  134. package/dist/chunks/vite-plugin.mjs +185 -166
  135. package/dist/cli/index.mjs +254 -1306
  136. package/dist/config/index.d.mts +66 -5
  137. package/dist/config/index.mjs +1 -1
  138. package/dist/generators/likec4.d.mts +6530 -0
  139. package/dist/generators/likec4.mjs +1 -0
  140. package/dist/index.d.mts +2 -4
  141. package/dist/model/index.d.mts +0 -7
  142. package/dist/vite-plugin/index.d.mts +83 -58
  143. package/dist/vite-plugin/index.mjs +1 -1
  144. package/dist/vite-plugin/internal/chunks/rolldown-runtime.mjs +8 -0
  145. package/dist/vite-plugin/internal/index.d.mts +92 -17
  146. package/dist/vite-plugin/internal/index.mjs +225 -126
  147. package/generators/likec4/package.json +4 -0
  148. package/package.json +134 -122
  149. package/react/index.d.mts +7496 -26659
  150. package/react/index.mjs +533 -63936
  151. package/react/rolldown-runtime-CfRud99p.js +1 -0
  152. package/skills/likec4-dsl/SKILL.md +474 -0
  153. package/skills/likec4-dsl/evals/evals-public.json +207 -0
  154. package/skills/likec4-dsl/evals/grading-spec.json +603 -0
  155. package/skills/likec4-dsl/references/bridge-leanix-drawio.md +42 -0
  156. package/skills/likec4-dsl/references/cli.md +168 -0
  157. package/skills/likec4-dsl/references/configuration.md +266 -0
  158. package/skills/likec4-dsl/references/deployment.md +160 -0
  159. package/skills/likec4-dsl/references/diffs.md +52 -0
  160. package/skills/likec4-dsl/references/dynamic-views.md +455 -0
  161. package/skills/likec4-dsl/references/examples.md +370 -0
  162. package/skills/likec4-dsl/references/identifier-validity.md +90 -0
  163. package/skills/likec4-dsl/references/include-predicates-wildcards.md +180 -0
  164. package/skills/likec4-dsl/references/model.md +182 -0
  165. package/skills/likec4-dsl/references/predicates.md +123 -0
  166. package/skills/likec4-dsl/references/relationships-bidirectional.md +176 -0
  167. package/skills/likec4-dsl/references/specification.md +79 -0
  168. package/skills/likec4-dsl/references/style-tokens-colors.md +150 -0
  169. package/skills/likec4-dsl/references/troubleshooting.md +101 -0
  170. package/skills/likec4-dsl/references/views.md +329 -0
  171. package/vite-plugin-modules.d.ts +126 -51
  172. package/__app__/src/chunks/LikeC4Styles.mjs +0 -2306
  173. package/__app__/src/chunks/ProjectsOverview.mjs +0 -537
  174. package/__app__/src/chunks/es.mjs +0 -439
  175. package/__app__/src/chunks/libs/@floating-ui.mjs +0 -2532
  176. package/__app__/src/chunks/libs/@mantine.mjs +0 -13868
  177. package/__app__/src/chunks/libs/@xstate/react.mjs +0 -2015
  178. package/__app__/src/chunks/libs/@xyflow/react.mjs +0 -5367
  179. package/__app__/src/chunks/libs/bezier-js.mjs +0 -1007
  180. package/__app__/src/chunks/libs/d3.mjs +0 -2817
  181. package/__app__/src/chunks/libs/framer.mjs +0 -5926
  182. package/__app__/src/chunks/libs/zod.mjs +0 -3176
  183. package/dist/chunks/libs/@chevrotain/types.d.mts +0 -108
  184. package/dist/chunks/libs/picomatch.mjs +0 -1
  185. package/dist/chunks/libs/zod.d.mts +0 -3840
  186. package/dist/chunks/libs/zod.mjs +0 -65
package/README.md CHANGED
@@ -94,6 +94,8 @@ likec4 build -o ./dist
94
94
 
95
95
  Demo - [https://template.likec4.dev](https://template.likec4.dev/view/boutique/)
96
96
 
97
+ The options of `start`, `build` and other commands can be kept in a `likec4.app.config.ts` file instead of flags (experimental), see [App config](https://likec4.dev/tooling/app-config/).
98
+
97
99
  > **Tip:**\
98
100
  > [likec4/template](https://github.com/likec4/template) repository demonstrates how to deploy to github pages.
99
101
 
@@ -1,10 +1,4 @@
1
- import "../src/chunks/rolldown-runtime.mjs";
2
- import { $likec4model as e, IconRenderer as t } from "likec4:single-project";
3
- import { LikeC4ModelProvider as n, LikeC4View as r, ReactLikeC4 as i, useLikeC4Model as a, useLikeC4View as o } from "likec4:react";
4
- //#region codegen/react.tsx
5
- var s = e.get();
6
- function isLikeC4ViewId(e) {
7
- return e != null && typeof e == "string" && !!s.findView(e);
8
- }
9
- //#endregion
10
- export { n as LikeC4ModelProvider, r as LikeC4View, i as ReactLikeC4, t as RenderIcon, isLikeC4ViewId, s as likec4model, a as useLikeC4Model, o as useLikeC4View };
1
+ import { $likec4data, $likec4model, $likec4model as $likec4model$1, IconRenderer as RenderIcon, LikeC4ModelProvider, LikeC4View, ReactLikeC4, isLikeC4ViewId, useLikeC4Model, useLikeC4View } from "likec4:react";
2
+ // codegen/react.tsx
3
+ var likec4model = $likec4model$1.get();
4
+ export { $likec4data, $likec4model, LikeC4ModelProvider, LikeC4View, ReactLikeC4, RenderIcon, isLikeC4ViewId, likec4model, useLikeC4Model, useLikeC4View };
@@ -1,131 +1,6 @@
1
- import "../src/chunks/rolldown-runtime.mjs";
2
- import { C as e, D as t, E as n, O as r, S as i, T as a, _ as o, b as s, d as c, f as l, g as u, h as d, l as f, m as p, p as m, u as h, v as g, w as _, x as v, y } from "../src/chunks/libs/zod.mjs";
3
- import { createRoot as b } from "react-dom/client";
4
- import { jsx as x } from "react/jsx-runtime";
5
- import { ComponentName as S } from "likec4:app-config";
6
- import { LikeC4View as C } from "likec4:react";
7
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/mini/schemas.js
8
- var w = /*@__PURE__*/ r("ZodMiniType", (t, n) => {
9
- if (!t._zod) throw Error("Uninitialized schema in ZodMiniType.");
10
- y.init(t, n), t.def = n, t.type = n.type, t.parse = (e, n) => s(t, e, n, { callee: t.parse }), t.safeParse = (e, n) => i(t, e, n), t.parseAsync = async (e, n) => v(t, e, n, { callee: t.parseAsync }), t.safeParseAsync = async (n, r) => e(t, n, r), t.check = (...e) => t.clone({
11
- ...n,
12
- checks: [...n.checks ?? [], ...e.map((e) => typeof e == "function" ? { _zod: {
13
- check: e,
14
- def: { check: "custom" },
15
- onattach: []
16
- } } : e)]
17
- }, { parent: !0 }), t.with = t.check, t.clone = (e, n) => _(t, e, n), t.brand = () => t, t.register = ((e, n) => (e.add(t, n), t)), t.apply = (e) => e(t);
18
- }), T = /*@__PURE__*/ r("ZodMiniString", (e, t) => {
19
- g.init(e, t), w.init(e, t);
20
- });
21
- // @__NO_SIDE_EFFECTS__
22
- function string(e) {
23
- return f(T, e);
24
- }
25
- var E = /*@__PURE__*/ r("ZodMiniBoolean", (e, t) => {
26
- c.init(e, t), w.init(e, t);
27
- }), D = /*@__PURE__*/ r("ZodMiniObject", (e, t) => {
28
- d.init(e, t), w.init(e, t), a(e, "shape", () => t.shape);
29
- });
30
- // @__NO_SIDE_EFFECTS__
31
- function object(e, t) {
32
- return new D({
33
- type: "object",
34
- shape: e ?? {},
35
- ...n(t)
36
- });
37
- }
38
- var O = /*@__PURE__*/ r("ZodMiniLiteral", (e, t) => {
39
- p.init(e, t), w.init(e, t);
40
- });
41
- // @__NO_SIDE_EFFECTS__
42
- function literal(e, t) {
43
- return new O({
44
- type: "literal",
45
- values: Array.isArray(e) ? e : [e],
46
- ...n(t)
47
- });
48
- }
49
- var k = /*@__PURE__*/ r("ZodMiniOptional", (e, t) => {
50
- u.init(e, t), w.init(e, t);
51
- });
52
- // @__NO_SIDE_EFFECTS__
53
- function optional(e) {
54
- return new k({
55
- type: "optional",
56
- innerType: e
57
- });
58
- }
59
- var A = /*@__PURE__*/ r("ZodMiniDefault", (e, t) => {
60
- m.init(e, t), w.init(e, t);
61
- });
62
- // @__NO_SIDE_EFFECTS__
63
- function _default(e, n) {
64
- return new A({
65
- type: "default",
66
- innerType: e,
67
- get defaultValue() {
68
- return typeof n == "function" ? n() : t(n);
69
- }
70
- });
71
- }
72
- var j = /*@__PURE__*/ r("ZodMiniPipe", (e, t) => {
73
- o.init(e, t), w.init(e, t);
74
- }), M = /*@__PURE__*/ r("ZodMiniCodec", (e, t) => {
75
- j.init(e, t), l.init(e, t);
76
- }), stringbool = (...e) => h({
77
- Codec: M,
78
- Boolean: E,
79
- String: T
80
- }, ...e), N = /* @__PURE__ */ object({
81
- viewId: /* @__PURE__ */ _default(/* @__PURE__ */ string(), "index"),
82
- browser: /* @__PURE__ */ _default(stringbool(), !0),
83
- dynamicViewVariant: /* @__PURE__ */ optional(/* @__PURE__ */ literal(["diagram", "sequence"])),
84
- colorScheme: /* @__PURE__ */ optional(/* @__PURE__ */ literal(["light", "dark"]))
85
- }), LikeC4View = class extends HTMLElement {
86
- shadow;
87
- root;
88
- hostCss;
89
- lastHostCss = "";
90
- constructor() {
91
- super(), this.shadow = this.attachShadow({
92
- mode: "open",
93
- delegatesFocus: !0
94
- });
95
- }
96
- updateHostCss() {
97
- let e = "\n :host {\n display: contents;\n background-color: transparent;\n margin: 0;\n padding: 0;\n }";
98
- e !== this.lastHostCss && (this.hostCss?.replaceSync(e), this.lastHostCss = e);
99
- }
100
- connectedCallback() {
101
- this.lastHostCss = "", this.hostCss = new CSSStyleSheet(), this.updateHostCss(), this.shadow.adoptedStyleSheets = [this.hostCss], this.render();
102
- }
103
- disconnectedCallback() {
104
- this.root?.unmount(), this.root = void 0, this.shadow.adoptedStyleSheets.length = 0, this.hostCss = void 0;
105
- }
106
- static observedAttributes = [
107
- "view-id",
108
- "browser",
109
- "dynamic-variant",
110
- "color-scheme"
111
- ];
112
- getProps() {
113
- let e = N.safeParse({
114
- viewId: this.getAttribute("view-id"),
115
- browser: this.getAttribute("browser") ?? void 0,
116
- dynamicViewVariant: this.getAttribute("dynamic-variant") ?? void 0,
117
- colorScheme: this.getAttribute("color-scheme") ?? void 0
118
- });
119
- return e.success ? e.data : (console.error("Invalid props", e.error), { viewId: "index" });
120
- }
121
- render() {
122
- let e = this.getProps();
123
- this.updateHostCss(), this.root ??= b(this.shadow), this.root.render(/* @__PURE__ */ x(C, { ...e }));
124
- }
125
- attributeChangedCallback(e) {
126
- this.root && this.render();
127
- }
128
- };
129
- customElements.define(S.View, LikeC4View);
130
- //#endregion
131
- export { LikeC4View };
1
+ import { ComponentName } from "likec4:app-config";
2
+ import { defineLikeC4Webcomponent } from "likec4/react";
3
+ import { LikeC4View } from "likec4:react";
4
+ import { projectId } from "likec4:single-project";
5
+ // codegen/webcomponent.tsx
6
+ defineLikeC4Webcomponent(ComponentName.View, LikeC4View, projectId);
@@ -1,19 +1,19 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en-US">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta
6
+ name="viewport"
7
+ content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no"
8
+ />
9
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg">
10
+ <link rel="stylesheet" href="/src/fonts.css">
11
+ <link rel="stylesheet" href="/src/style.css">
12
+ <title>LikeC4</title>
13
+ </head>
3
14
 
4
- <head>
5
- <meta charset="utf-8" />
6
- <meta name="viewport"
7
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no" />
8
- <link rel="icon" type="image/svg+xml" href="/favicon.svg">
9
- <link rel="stylesheet" href="/src/fonts.css">
10
- <link rel="stylesheet" href="/src/style.css">
11
- <title>LikeC4</title>
12
- </head>
13
-
14
- <body>
15
- <div id="likec4-root"></div>
16
- <script type="module" src="/src/main"></script>
17
- </body>
18
-
15
+ <body>
16
+ <div id="likec4-root"></div>
17
+ <script type="module" src="/src/main"></script>
18
+ </body>
19
19
  </html>
@@ -1,8 +1,12 @@
1
1
  import "../chunks/rolldown-runtime.mjs";
2
- import { Suspense as e, lazy as t } from "react";
3
- import { jsx as n } from "react/jsx-runtime";
4
- import { isAIAvailable as r } from "likec4:rpc";
5
- //#region src/aichat/index.tsx
6
- var i = /* @__PURE__ */ t(() => import("../chunks/AIChat.mjs")), a = r ? () => /* @__PURE__ */ n(e, { children: /* @__PURE__ */ n(i, {}) }) : () => null;
7
- //#endregion
8
- export { a as LazyAIChat };
2
+ import { Suspense, lazy } from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { isAIAvailable } from "likec4:rpc";
5
+ // src/aichat/index.tsx
6
+ var AIChat = /* @__PURE__ */ lazy(() => import("../chunks/AIChat.mjs"));
7
+ /**
8
+ * AI Chat component that is conditionally rendered based on AI availability
9
+ * Uses lazy loading to avoid importing AI components in environments where AI is not available
10
+ */
11
+ var LazyAIChat = isAIAvailable ? () => /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(AIChat, {}) }) : () => null;
12
+ export { LazyAIChat };