@adonis-agora/agent 0.74.1 → 0.76.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 (124) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +16 -0
  3. package/dist/src/channels/handler.d.ts.map +1 -1
  4. package/dist/src/channels/handler.js +10 -0
  5. package/dist/src/channels/handler.js.map +1 -1
  6. package/dist/src/channels/texts.d.ts +2 -0
  7. package/dist/src/channels/texts.d.ts.map +1 -1
  8. package/dist/src/channels/texts.js.map +1 -1
  9. package/dist/src/genui/catalog.d.ts.map +1 -1
  10. package/dist/src/genui/catalog.js +3 -1
  11. package/dist/src/genui/catalog.js.map +1 -1
  12. package/dist/src/genui/channels.d.ts +32 -5
  13. package/dist/src/genui/channels.d.ts.map +1 -1
  14. package/dist/src/genui/channels.js +20 -9
  15. package/dist/src/genui/channels.js.map +1 -1
  16. package/dist/src/genui/index.d.ts.map +1 -1
  17. package/dist/src/genui/index.js +7 -7
  18. package/dist/src/genui/index.js.map +1 -1
  19. package/dist/src/genui/kit/bundle.d.ts +12 -0
  20. package/dist/src/genui/kit/bundle.d.ts.map +1 -1
  21. package/dist/src/genui/kit/bundle.js +124 -133
  22. package/dist/src/genui/kit/bundle.js.map +1 -1
  23. package/dist/src/genui/kit/discover.d.ts +8 -5
  24. package/dist/src/genui/kit/discover.d.ts.map +1 -1
  25. package/dist/src/genui/kit/discover.js +45 -18
  26. package/dist/src/genui/kit/discover.js.map +1 -1
  27. package/dist/src/genui/kit/docs.d.ts +3 -1
  28. package/dist/src/genui/kit/docs.d.ts.map +1 -1
  29. package/dist/src/genui/kit/docs.js +22 -5
  30. package/dist/src/genui/kit/docs.js.map +1 -1
  31. package/dist/src/genui/kit/files.d.ts +22 -10
  32. package/dist/src/genui/kit/files.d.ts.map +1 -1
  33. package/dist/src/genui/kit/files.js +117 -19
  34. package/dist/src/genui/kit/files.js.map +1 -1
  35. package/dist/src/genui/kit/index.d.ts +5 -3
  36. package/dist/src/genui/kit/index.d.ts.map +1 -1
  37. package/dist/src/genui/kit/index.js +4 -2
  38. package/dist/src/genui/kit/index.js.map +1 -1
  39. package/dist/src/genui/kit/plugin.d.ts +17 -9
  40. package/dist/src/genui/kit/plugin.d.ts.map +1 -1
  41. package/dist/src/genui/kit/plugin.js +196 -129
  42. package/dist/src/genui/kit/plugin.js.map +1 -1
  43. package/dist/src/genui/kit/styles.d.ts +83 -0
  44. package/dist/src/genui/kit/styles.d.ts.map +1 -0
  45. package/dist/src/genui/kit/styles.js +406 -0
  46. package/dist/src/genui/kit/styles.js.map +1 -0
  47. package/dist/src/genui/kit/vite-build.d.ts +33 -0
  48. package/dist/src/genui/kit/vite-build.d.ts.map +1 -0
  49. package/dist/src/genui/kit/vite-build.js +195 -0
  50. package/dist/src/genui/kit/vite-build.js.map +1 -0
  51. package/dist/src/genui/kit/write.d.ts +20 -8
  52. package/dist/src/genui/kit/write.d.ts.map +1 -1
  53. package/dist/src/genui/kit/write.js +54 -16
  54. package/dist/src/genui/kit/write.js.map +1 -1
  55. package/dist/src/genui/public.d.ts +5 -4
  56. package/dist/src/genui/public.d.ts.map +1 -1
  57. package/dist/src/genui/public.js +4 -3
  58. package/dist/src/genui/public.js.map +1 -1
  59. package/dist/src/genui/sandbox-jsx-frame-generated.d.ts +2 -0
  60. package/dist/src/genui/sandbox-jsx-frame-generated.d.ts.map +1 -0
  61. package/dist/src/genui/sandbox-jsx-frame-generated.js +4 -0
  62. package/dist/src/genui/sandbox-jsx-frame-generated.js.map +1 -0
  63. package/dist/src/genui/sandbox-kit.d.ts +50 -17
  64. package/dist/src/genui/sandbox-kit.d.ts.map +1 -1
  65. package/dist/src/genui/sandbox-kit.js +20 -10
  66. package/dist/src/genui/sandbox-kit.js.map +1 -1
  67. package/dist/src/genui/sandbox-styles.d.ts +113 -0
  68. package/dist/src/genui/sandbox-styles.d.ts.map +1 -0
  69. package/dist/src/genui/sandbox-styles.js +487 -0
  70. package/dist/src/genui/sandbox-styles.js.map +1 -0
  71. package/dist/src/genui/sandbox-theme.d.ts +13 -9
  72. package/dist/src/genui/sandbox-theme.d.ts.map +1 -1
  73. package/dist/src/genui/sandbox-theme.js +52 -60
  74. package/dist/src/genui/sandbox-theme.js.map +1 -1
  75. package/dist/src/genui/sandbox.d.ts +21 -15
  76. package/dist/src/genui/sandbox.d.ts.map +1 -1
  77. package/dist/src/genui/sandbox.js +66 -17
  78. package/dist/src/genui/sandbox.js.map +1 -1
  79. package/dist/src/genui/tools.d.ts +20 -0
  80. package/dist/src/genui/tools.d.ts.map +1 -1
  81. package/dist/src/genui/tools.js +19 -4
  82. package/dist/src/genui/tools.js.map +1 -1
  83. package/dist/src/hooks/genui_kit.d.ts +6 -2
  84. package/dist/src/hooks/genui_kit.d.ts.map +1 -1
  85. package/dist/src/hooks/genui_kit.js +21 -9
  86. package/dist/src/hooks/genui_kit.js.map +1 -1
  87. package/dist/src/index.d.ts +1 -1
  88. package/dist/src/index.js +1 -1
  89. package/dist/src/negotiated-tool-ui.d.ts.map +1 -1
  90. package/dist/src/negotiated-tool-ui.js +4 -0
  91. package/dist/src/negotiated-tool-ui.js.map +1 -1
  92. package/dist/src/react/core/genui/sandbox-assets.d.ts +4 -1
  93. package/dist/src/react/core/genui/sandbox-assets.d.ts.map +1 -1
  94. package/dist/src/react/core/genui/sandbox-assets.js +17 -5
  95. package/dist/src/react/core/genui/sandbox-assets.js.map +1 -1
  96. package/dist/src/react/core/genui/sandbox.d.ts +1 -1
  97. package/dist/src/react/core/genui/sandbox.d.ts.map +1 -1
  98. package/dist/src/react/core/genui/sandbox.js +20 -4
  99. package/dist/src/react/core/genui/sandbox.js.map +1 -1
  100. package/dist/src/react-native/genui/index.d.ts +20 -0
  101. package/dist/src/react-native/genui/index.d.ts.map +1 -0
  102. package/dist/src/react-native/genui/index.js +18 -0
  103. package/dist/src/react-native/genui/index.js.map +1 -0
  104. package/dist/src/react-native/genui/provider.d.ts +19 -0
  105. package/dist/src/react-native/genui/provider.d.ts.map +1 -0
  106. package/dist/src/react-native/genui/provider.js +23 -0
  107. package/dist/src/react-native/genui/provider.js.map +1 -0
  108. package/dist/src/react-native/genui/sandbox-assets.d.ts +57 -0
  109. package/dist/src/react-native/genui/sandbox-assets.d.ts.map +1 -0
  110. package/dist/src/react-native/genui/sandbox-assets.js +153 -0
  111. package/dist/src/react-native/genui/sandbox-assets.js.map +1 -0
  112. package/dist/src/react-native/genui/sandbox-host.d.ts +119 -0
  113. package/dist/src/react-native/genui/sandbox-host.d.ts.map +1 -0
  114. package/dist/src/react-native/genui/sandbox-host.js +188 -0
  115. package/dist/src/react-native/genui/sandbox-host.js.map +1 -0
  116. package/dist/src/react-native/genui/sandbox.d.ts +86 -0
  117. package/dist/src/react-native/genui/sandbox.d.ts.map +1 -0
  118. package/dist/src/react-native/genui/sandbox.js +376 -0
  119. package/dist/src/react-native/genui/sandbox.js.map +1 -0
  120. package/dist/src/vite/index.d.ts +10 -7
  121. package/dist/src/vite/index.d.ts.map +1 -1
  122. package/dist/src/vite/index.js +10 -7
  123. package/dist/src/vite/index.js.map +1 -1
  124. package/package.json +28 -2
@@ -2,22 +2,30 @@ import type { Plugin } from 'vite';
2
2
  import type { SandboxKitDescriptor } from '../sandbox-kit.js';
3
3
  import { type SandboxKitSourceOptions } from './files.js';
4
4
  export interface GenuiSandboxKitOptions extends SandboxKitSourceOptions {
5
- /** Serve (and emit) the Tailwind runtime for `sandbox({ tailwind: true })`. Default true. */
6
- tailwind?: boolean;
5
+ /**
6
+ * The app's style entry files — plain CSS, Sass/Less, PostCSS, CSS modules, a `.scss` importing
7
+ * Bootstrap, a Tailwind v3/v4 stylesheet… — compiled with the app's Vite CSS pipeline and inlined
8
+ * into the frame. Paths or globs relative to the root, or package stylesheets
9
+ * (`bootstrap/dist/css/bootstrap.css`). Default: the stylesheets among the app's Vite entrypoints.
10
+ */
11
+ styles?: string | readonly string[];
12
+ /** Guidance on the styles for the model (a markdown/text file, or the text itself). */
13
+ stylesDocs?: string;
7
14
  /** Where the dev descriptor is written, relative to the Vite root. */
8
15
  descriptor?: string;
9
16
  /** The tsconfig the kit's types are read with. Default: the nearest to the kit. */
10
17
  tsconfig?: string;
11
18
  /** A TypeScript module with the compiler API, when the project's own has none (TypeScript 7). */
12
19
  typescript?: unknown;
13
- /** Extra Vite plugins for the kit build. */
14
- plugins?: unknown[];
15
20
  /**
16
- * Stylesheets whose Tailwind directives (`@custom-variant`, `@utility`, `@theme`) the sandbox's
17
- * Tailwind gets too — the variants a kit's classes use (shadcn's `data-open:`…). Paths relative to
18
- * the root, absolute paths, or package specifiers (`shadcn/tailwind.css`).
21
+ * Extra Vite plugins for compiling the styles and the components (a CSS-in-JS compiler, a
22
+ * PostCSS-less Tailwind setup…). The app's `@tailwindcss/vite` is added on its own.
19
23
  */
20
- tailwindCss?: string | readonly string[];
24
+ plugins?: unknown[];
25
+ /** Largest font or image a stylesheet's `url()` inlines, in bytes. Default 128 KB; larger ones are left out (warned). */
26
+ inlineAssetLimit?: number;
27
+ /** Most bytes of fonts and images inlined in all. Default 1 MB. */
28
+ inlineAssetBudget?: number;
21
29
  }
22
30
  /** The library-specific defaults the shared plugin is built with. */
23
31
  export interface GenuiSandboxKitDefaults {
@@ -31,6 +39,7 @@ export declare const SANDBOX_KIT_DEV_PREFIX = "@genui-sandbox-kit/";
31
39
  /** The Vite manifest keys the build lists them under. */
32
40
  export declare const SANDBOX_KIT_MANIFEST_KEYS: {
33
41
  readonly kit: 'genui-sandbox-kit.js';
42
+ readonly css: 'genui-sandbox-kit.css';
34
43
  readonly tailwind: 'genui-sandbox-tailwind.js';
35
44
  readonly descriptor: 'genui-sandbox-kit.json';
36
45
  };
@@ -43,7 +52,6 @@ export interface GenuiSandboxKitApi {
43
52
  /** Resolves when the first build is done. */
44
53
  ready(): Promise<void>;
45
54
  }
46
- /** The plugin, with a library's defaults. */
47
55
  /** The plugin object: a Vite plugin with the {@link GenuiSandboxKitApi} on `api`. */
48
56
  export type GenuiSandboxKitPlugin = Plugin & {
49
57
  api: GenuiSandboxKitApi;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/genui/kit/plugin.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAA0B,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAItF,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACrE,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iGAAiG;IACjG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,qEAAqE;AACrE,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,8CAA8C;AAC9C,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAC5D,yDAAyD;AACzD,eAAO,MAAM,yBAAyB;aACpC,GAAG,EAAE,sBAAsB;aAC3B,QAAQ,EAAE,2BAA2B;aACrC,UAAU,EAAE,wBAAwB;CAC5B,CAAC;AACX,wEAAwE;AACxE,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,UAAU,IAAI,oBAAoB,GAAG,IAAI,CAAC;IAC1C,6CAA6C;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAyDD,6CAA6C;AAC7C,qFAAqF;AACrF,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAEzE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,uBAAuB,GAChC,qBAAqB,CAmRvB"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/genui/kit/plugin.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAA0B,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAItF,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,YAAY,CAAC;AAYpB,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACrE;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IACpC,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iGAAiG;IACjG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,yHAAyH;IACzH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qEAAqE;AACrE,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,8CAA8C;AAC9C,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAC5D,yDAAyD;AACzD,eAAO,MAAM,yBAAyB;aACpC,GAAG,EAAE,sBAAsB;aAC3B,GAAG,EAAE,uBAAuB;aAC5B,QAAQ,EAAE,2BAA2B;aACrC,UAAU,EAAE,wBAAwB;CAC5B,CAAC;AACX,wEAAwE;AACxE,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,UAAU,IAAI,oBAAoB,GAAG,IAAI,CAAC;IAC1C,6CAA6C;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAkCD,qFAAqF;AACrF,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAkBzE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,uBAAuB,GAChC,qBAAqB,CAkWvB"}
@@ -1,26 +1,36 @@
1
1
  /**
2
- * `genuiSandboxKit()` — the Vite plugin that makes the app's design system available to the
3
- * sandbox, with no command to run by hand:
2
+ * `genuiSandboxKit()` — the Vite plugin that puts the app's design system in the sandbox, whatever
3
+ * its stack, with no command to run by hand:
4
4
  *
5
- * - dev: builds the kit bundle (the app's components + React as one IIFE) and serves it, with the
6
- * Tailwind runtime, under `/@genui-sandbox-kit/`; writes the descriptor (docs + urls) for the
7
- * server; rebuilds when a kit file changes and tells open pages, whose sandboxes reload (HMR);
8
- * - build: emits both as hashed assets plus `genui-sandbox-kit.json` (the docs and their urls), and
9
- * lists the three in the Vite manifest — where the server finds them, as it finds any asset;
10
- * - collects the theme's custom properties from the app's own CSS, for the prompt.
5
+ * - `styles`: the app's style entries, compiled with Vite's own CSS pipeline (Sass, Less, PostCSS,
6
+ * CSS modules, Tailwind…), fonts and images inlined — the frame stays network-less. Tailwind is
7
+ * detected: the frame then runs Tailwind's browser runtime with the app's theme, variants and
8
+ * utilities; any other CSS is described to the model by its class vocabulary;
9
+ * - `components`: modules exporting React components, bundled with React as one IIFE and documented
10
+ * from their TypeScript types (names and propTypes in a JavaScript project);
11
+ * - `wrapper`: a module whose default export wraps the model's App (theme providers, baselines);
12
+ * - dev: builds and serves all of it under `/@genui-sandbox-kit/`, writes the descriptor (docs + urls)
13
+ * for the server, rebuilds when a kit or style file changes and tells open pages (HMR);
14
+ * - build: emits it all as hashed assets plus `genui-sandbox-kit.json`, listed in the Vite manifest.
15
+ *
16
+ * Zero-config: without `styles`, the style entries are found from the app's Vite entrypoints
17
+ * (`build.rollupOptions.input` — where the AdonisJS plugin puts its `entrypoints` — or `index.html`);
18
+ * without `components`, the first `components/ui` folder.
11
19
  */
12
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
20
+ import { existsSync, mkdirSync, readFileSync, realpathSync, writeFileSync } from 'node:fs';
13
21
  import { createRequire } from 'node:module';
14
22
  import { dirname, join, resolve } from 'node:path';
15
- import { tailwindDirectivesFromCss, themeVarsFromCss } from '../sandbox-theme.js';
16
- import { buildSandboxKitBundle } from './bundle.js';
23
+ import { themeVarsFromCss } from '../sandbox-theme.js';
24
+ import { buildSandboxKitBundle, kitDocsFromBundle } from './bundle.js';
17
25
  import { generateSandboxKitDocs } from './docs.js';
18
- import { resolveSandboxKitFiles, } from './files.js';
26
+ import { assertNoLegacyKitOptions, resolveSandboxKitFiles, } from './files.js';
27
+ import { buildSandboxKitStyles, discoverStyleEntries, readStylesGuide, resolveStyleEntries, STYLE_EXTENSIONS, stylesDocs, tailwindVitePluginFor, } from './styles.js';
19
28
  /** Where the dev server serves the assets. */
20
29
  export const SANDBOX_KIT_DEV_PREFIX = '@genui-sandbox-kit/';
21
30
  /** The Vite manifest keys the build lists them under. */
22
31
  export const SANDBOX_KIT_MANIFEST_KEYS = {
23
32
  kit: 'genui-sandbox-kit.js',
33
+ css: 'genui-sandbox-kit.css',
24
34
  tailwind: 'genui-sandbox-tailwind.js',
25
35
  descriptor: 'genui-sandbox-kit.json',
26
36
  };
@@ -35,68 +45,77 @@ function tailwindRuntimePath() {
35
45
  return null;
36
46
  }
37
47
  }
38
- /** The Tailwind directives of `tailwindCss`, read now (they may change in dev). */
39
- function tailwindCssOf(root, specs) {
40
- if (specs === undefined)
41
- return undefined;
42
- const require = createRequire(resolve(root, 'package.json'));
43
- const parts = [];
44
- for (const spec of typeof specs === 'string' ? [specs] : specs) {
45
- let path = resolve(root, spec);
46
- if (!existsSync(path)) {
47
- try {
48
- path = require.resolve(spec);
49
- }
50
- catch {
51
- continue;
52
- }
53
- }
54
- try {
55
- parts.push(tailwindDirectivesFromCss(readFileSync(path, 'utf8')));
56
- }
57
- catch {
58
- /* unreadable: skipped */
59
- }
60
- }
61
- const css = parts.filter((part) => part !== '').join('\n');
62
- return css === '' ? undefined : css;
63
- }
64
- function fallbackDocs(bundle) {
65
- return (bundle?.exports ?? []).map((name) => ({ name, props: [] }));
66
- }
67
48
  const HMR_BRIDGE = `
68
49
  if (import.meta.hot && typeof window !== 'undefined' && !window.__genuiSandboxKitHmr) {
69
50
  window.__genuiSandboxKitHmr = true;
70
51
  import.meta.hot.on(${JSON.stringify(SANDBOX_KIT_UPDATE_EVENT)}, (data) => window.dispatchEvent(new CustomEvent(${JSON.stringify(SANDBOX_KIT_UPDATE_EVENT)}, { detail: data })));
71
52
  }`;
53
+ /** A stylesheet under node_modules that is a workspace package (a symlink out of node_modules). */
54
+ function WORKSPACE_LINKED(path) {
55
+ if (!path.includes('/node_modules/'))
56
+ return false;
57
+ try {
58
+ return !realpathSync(path).includes('/node_modules/');
59
+ }
60
+ catch {
61
+ return false;
62
+ }
63
+ }
64
+ /** A file a change to which may change the compiled styles. */
65
+ const STYLE_CHANGE = new RegExp(`(${STYLE_EXTENSIONS.map((ext) => ext.replace('.', '\\.')).join('|')}|tailwind\\.config\\.[cm]?[jt]s)$`, 'i');
72
66
  export function createGenuiSandboxKitPlugin(options, defaults) {
67
+ assertNoLegacyKitOptions(options, 'genuiSandboxKit');
73
68
  let config;
74
69
  let files = null;
75
70
  let bundle = null;
71
+ let styles = null;
76
72
  let docs = [];
77
- const themeVars = {};
73
+ const scannedVars = {};
78
74
  let descriptor = null;
79
75
  let firstBuild;
80
76
  let onReady;
81
77
  const ready = new Promise((resolveReady) => {
82
78
  onReady = resolveReady;
83
79
  });
84
- let warnedDocs = false;
85
- const tailwindOn = options.tailwind !== false;
80
+ const warned = new Set();
81
+ const warn = (message) => {
82
+ if (warned.has(message))
83
+ return;
84
+ warned.add(message);
85
+ config?.logger.warn(`[genui-sandbox-kit] ${message}`);
86
+ };
86
87
  const devUrl = (name, hash) => `${config?.base ?? '/'}${SANDBOX_KIT_DEV_PREFIX}${name}${hash ? `?v=${hash}` : ''}`;
87
- const describeDev = () => ({
88
- version: 1,
89
- components: docs,
90
- ...(Object.keys(themeVars).length > 0 ? { theme: { vars: { ...themeVars } } } : {}),
91
- kit: bundle === null ? null : { url: devUrl('kit.js', bundle.hash), hash: bundle.hash },
92
- tailwind: tailwindOn && tailwindRuntimePath() !== null
93
- ? {
94
- url: devUrl('tailwind.js'),
95
- ...withCss(tailwindCssOf(config?.root ?? process.cwd(), options.tailwindCss)),
96
- }
97
- : null,
88
+ /** The descriptor, given where each asset is (`null`: none). */
89
+ const describe = (urls) => {
90
+ const vars = styles !== null && Object.keys(styles.vars).length > 0 ? styles.vars : scannedVars;
91
+ const guide = readStylesGuide(config?.root ?? process.cwd(), options.stylesDocs);
92
+ return {
93
+ version: 2,
94
+ components: docs,
95
+ jsx: bundle !== null,
96
+ ...(files?.wrapper !== undefined && bundle !== null ? { wrapper: true } : {}),
97
+ ...(Object.keys(vars).length > 0 ? { theme: { vars: { ...vars } } } : {}),
98
+ ...stylesDocs(styles),
99
+ ...(guide !== undefined ? { guide } : {}),
100
+ assets: {
101
+ kit: bundle !== null && urls.kit !== null ? { url: urls.kit, hash: bundle.hash } : null,
102
+ css: styles !== null && styles.css !== '' && urls.css !== null
103
+ ? { url: urls.css, hash: styles.hash }
104
+ : null,
105
+ tailwind: styles?.tailwind !== undefined && urls.tailwind !== null
106
+ ? {
107
+ url: urls.tailwind,
108
+ ...(styles.tailwind.directives !== '' ? { css: styles.tailwind.directives } : {}),
109
+ }
110
+ : null,
111
+ },
112
+ };
113
+ };
114
+ const describeDev = () => describe({
115
+ kit: bundle === null ? null : devUrl('kit.js', bundle.hash),
116
+ css: styles === null ? null : devUrl('styles.css', styles.hash),
117
+ tailwind: tailwindRuntimePath() === null ? null : devUrl('tailwind.js'),
98
118
  });
99
- const withCss = (css) => (css === undefined ? {} : { css });
100
119
  const writeDescriptor = () => {
101
120
  if (config === undefined)
102
121
  return;
@@ -107,40 +126,85 @@ export function createGenuiSandboxKitPlugin(options, defaults) {
107
126
  writeFileSync(path, `${JSON.stringify(descriptor, null, 2)}\n`);
108
127
  }
109
128
  catch (error) {
110
- config.logger.warn(`[genui-sandbox-kit] could not write ${path}: ${error instanceof Error ? error.message : String(error)}`);
129
+ warn(`could not write ${path}: ${error instanceof Error ? error.message : String(error)}`);
111
130
  }
112
131
  };
132
+ const styleEntries = () => {
133
+ if (config === undefined)
134
+ return [];
135
+ if (options.styles === undefined) {
136
+ return discoverStyleEntries(config.root, {
137
+ input: config.build.rolldownOptions?.input ?? config.build.rollupOptions?.input,
138
+ });
139
+ }
140
+ const found = resolveStyleEntries(config.root, options.styles);
141
+ for (const spec of found.missing)
142
+ warn(`styles: "${spec}" matched no file`);
143
+ return found.files;
144
+ };
113
145
  const buildAll = async () => {
114
146
  if (config === undefined)
115
147
  return;
116
- files = resolveSandboxKitFiles(config.root, options);
117
- if (files === null) {
118
- bundle = null;
119
- docs = [];
120
- return;
148
+ const root = config.root;
149
+ try {
150
+ files = resolveSandboxKitFiles(root, options);
121
151
  }
122
- const [built, generated] = await Promise.all([
123
- buildSandboxKitBundle({
124
- root: config.root,
125
- files,
126
- resolve: config.resolve,
127
- ...(options.plugins !== undefined ? { plugins: options.plugins } : {}),
128
- }),
129
- generateSandboxKitDocs({
130
- root: config.root,
131
- files,
132
- ...(options.tsconfig !== undefined ? { tsconfig: options.tsconfig } : {}),
133
- ...(options.typescript !== undefined ? { typescript: options.typescript } : {}),
152
+ catch (error) {
153
+ warn(error instanceof Error ? error.message : String(error));
154
+ files = null;
155
+ }
156
+ for (const spec of files?.missing ?? [])
157
+ warn(`components: "${spec}" matched no module`);
158
+ const plugins = [
159
+ ...(options.plugins ?? []),
160
+ ...(await tailwindVitePluginFor(root, config.plugins ?? [], options.plugins ?? [])),
161
+ ];
162
+ const shared = {
163
+ root,
164
+ resolve: config.resolve,
165
+ ...(config.css !== undefined ? { css: config.css } : {}),
166
+ plugins,
167
+ ...(options.inlineAssetLimit !== undefined
168
+ ? { inlineAssetLimit: options.inlineAssetLimit }
169
+ : {}),
170
+ ...(options.inlineAssetBudget !== undefined
171
+ ? { inlineAssetBudget: options.inlineAssetBudget }
172
+ : {}),
173
+ warn,
174
+ };
175
+ const current = files;
176
+ const [builtStyles, built, generated] = await Promise.all([
177
+ buildSandboxKitStyles({
178
+ ...shared,
179
+ entries: styleEntries(),
180
+ ...(config.publicDir !== undefined ? { publicDir: config.publicDir } : {}),
134
181
  }).catch((error) => {
135
- if (!warnedDocs) {
136
- warnedDocs = true;
137
- config?.logger.warn(`[genui-sandbox-kit] kit docs from names only: ${error instanceof Error ? error.message : String(error)}`);
138
- }
182
+ warn(`the styles did not compile: ${error instanceof Error ? error.message : String(error)}`);
139
183
  return null;
140
184
  }),
185
+ current === null
186
+ ? Promise.resolve(null)
187
+ : buildSandboxKitBundle({ ...shared, files: current }).catch((error) => {
188
+ warn(`the kit did not build: ${error instanceof Error ? error.message : String(error)}`);
189
+ return null;
190
+ }),
191
+ current === null || (current.files.length === 0 && current.packages.length === 0)
192
+ ? Promise.resolve([])
193
+ : generateSandboxKitDocs({
194
+ root,
195
+ files: current,
196
+ ...(options.tsconfig !== undefined ? { tsconfig: options.tsconfig } : {}),
197
+ ...(options.typescript !== undefined ? { typescript: options.typescript } : {}),
198
+ }).catch((error) => {
199
+ warn(`kit docs from names (and propTypes) only: ${error instanceof Error ? error.message : String(error)}`);
200
+ return null;
201
+ }),
141
202
  ]);
203
+ styles = builtStyles;
142
204
  bundle = built;
143
- docs = generated ?? fallbackDocs(built);
205
+ docs = generated ?? (built === null ? [] : kitDocsFromBundle(built.code));
206
+ if (generated === null && docs.length === 0 && built !== null)
207
+ docs = built.exports.map((name) => ({ name, props: [] }));
144
208
  };
145
209
  let rebuildTimer;
146
210
  const plugin = {
@@ -155,16 +219,22 @@ export function createGenuiSandboxKitPlugin(options, defaults) {
155
219
  },
156
220
  transform(code, id) {
157
221
  const path = id.split('?')[0] ?? id;
158
- if (path.endsWith('.css') && !path.includes('/node_modules/')) {
159
- const found = themeVarsFromCss(code);
222
+ // The app's own CSS — workspace packages pnpm injects under node_modules (`file:` deps) too —
223
+ // never a third-party library's.
224
+ const appCss = !path.includes('/node_modules/') ||
225
+ /\/node_modules\/\.pnpm\/[^/]*@file\+/.test(path) ||
226
+ WORKSPACE_LINKED(path);
227
+ if (path.endsWith('.css') && appCss) {
228
+ // The theme's variables as the app's CSS declares them — used when there are no styles.
229
+ const found = themeVarsFromCss(code, { rootOnly: true });
160
230
  let changed = false;
161
231
  for (const [name, value] of Object.entries(found)) {
162
- if (themeVars[name] === undefined) {
163
- themeVars[name] = value;
232
+ if (scannedVars[name] === undefined) {
233
+ scannedVars[name] = value;
164
234
  changed = true;
165
235
  }
166
236
  }
167
- if (changed && config?.command === 'serve' && firstBuild !== undefined)
237
+ if (changed && styles === null && config?.command === 'serve' && firstBuild !== undefined)
168
238
  writeDescriptor();
169
239
  return null;
170
240
  }
@@ -177,14 +247,18 @@ export function createGenuiSandboxKitPlugin(options, defaults) {
177
247
  return null;
178
248
  },
179
249
  configureServer(server) {
250
+ const watchAll = () => {
251
+ const paths = [...(files?.dirs ?? []), ...(styles?.files ?? [])];
252
+ if (paths.length > 0)
253
+ server.watcher.add?.(paths);
254
+ };
180
255
  firstBuild = buildAll()
181
256
  .catch((error) => {
182
- config?.logger.warn(`[genui-sandbox-kit] the kit did not build: ${error instanceof Error ? error.message : String(error)}`);
257
+ warn(`the kit did not build: ${error instanceof Error ? error.message : String(error)}`);
183
258
  })
184
259
  .finally(() => {
185
260
  writeDescriptor();
186
- if (files !== null)
187
- server.watcher.add?.(files.dirs);
261
+ watchAll();
188
262
  onReady();
189
263
  });
190
264
  server.middlewares.use((req, res, next) => {
@@ -199,7 +273,11 @@ export function createGenuiSandboxKitPlugin(options, defaults) {
199
273
  let type = 'text/javascript; charset=utf-8';
200
274
  if (name === 'kit.js')
201
275
  body = bundle?.code ?? null;
202
- else if (name === 'tailwind.js' && tailwindOn) {
276
+ else if (name === 'styles.css') {
277
+ body = styles?.css ?? null;
278
+ type = 'text/css; charset=utf-8';
279
+ }
280
+ else if (name === 'tailwind.js' && styles?.tailwind !== undefined) {
203
281
  const path = tailwindRuntimePath();
204
282
  body = path === null ? null : readFileSync(path, 'utf8');
205
283
  }
@@ -220,24 +298,36 @@ export function createGenuiSandboxKitPlugin(options, defaults) {
220
298
  const changed = (file) => {
221
299
  if (config === undefined)
222
300
  return;
301
+ // Under node_modules only what the kit itself read (an injected workspace package).
302
+ if (file.includes('/node_modules/') &&
303
+ styles?.files.includes(file) !== true &&
304
+ bundle?.modules.includes(file) !== true)
305
+ return;
223
306
  const inKit = files?.dirs.some((dir) => file.startsWith(dir)) === true ||
224
- bundle?.modules.includes(file) === true;
225
- if (!inKit)
307
+ bundle?.modules.includes(file) === true ||
308
+ files?.wrapper === file;
309
+ const inStyles = styles?.files.includes(file) === true || STYLE_CHANGE.test(file);
310
+ if (!inKit && !inStyles)
226
311
  return;
227
312
  clearTimeout(rebuildTimer);
228
313
  rebuildTimer = setTimeout(() => {
229
314
  firstBuild = buildAll()
230
315
  .then(() => {
231
316
  writeDescriptor();
317
+ watchAll();
232
318
  server.ws.send({
233
319
  type: 'custom',
234
320
  event: SANDBOX_KIT_UPDATE_EVENT,
235
- data: { hash: bundle?.hash ?? null, url: descriptor?.kit?.url ?? null },
321
+ data: {
322
+ hash: bundle?.hash ?? null,
323
+ url: descriptor?.assets.kit?.url ?? null,
324
+ css: descriptor?.assets.css?.url ?? null,
325
+ },
236
326
  });
237
327
  config?.logger.info('[genui-sandbox-kit] kit rebuilt');
238
328
  })
239
329
  .catch((error) => {
240
- config?.logger.warn(`[genui-sandbox-kit] the kit did not rebuild: ${error instanceof Error ? error.message : String(error)}`);
330
+ warn(`the kit did not rebuild: ${error instanceof Error ? error.message : String(error)}`);
241
331
  });
242
332
  }, 150);
243
333
  };
@@ -250,48 +340,25 @@ export function createGenuiSandboxKitPlugin(options, defaults) {
250
340
  return;
251
341
  await buildAll();
252
342
  const base = config.base ?? '/';
253
- let kit = null;
254
- if (bundle !== null) {
343
+ const emit = (key, source) => {
255
344
  const ref = this.emitFile({
256
345
  type: 'asset',
257
- name: SANDBOX_KIT_MANIFEST_KEYS.kit,
258
- originalFileName: SANDBOX_KIT_MANIFEST_KEYS.kit,
259
- source: bundle.code,
346
+ name: SANDBOX_KIT_MANIFEST_KEYS[key],
347
+ originalFileName: SANDBOX_KIT_MANIFEST_KEYS[key],
348
+ source,
260
349
  });
261
- kit = { url: `${base}${this.getFileName(ref)}`, hash: bundle.hash };
262
- emitted.kit = this.getFileName(ref);
263
- }
264
- let tailwind = null;
265
- const runtime = tailwindOn ? tailwindRuntimePath() : null;
266
- if (runtime !== null) {
267
- const ref = this.emitFile({
268
- type: 'asset',
269
- name: SANDBOX_KIT_MANIFEST_KEYS.tailwind,
270
- originalFileName: SANDBOX_KIT_MANIFEST_KEYS.tailwind,
271
- source: readFileSync(runtime, 'utf8'),
272
- });
273
- tailwind = {
274
- url: `${base}${this.getFileName(ref)}`,
275
- ...withCss(tailwindCssOf(config.root, options.tailwindCss)),
276
- };
277
- emitted.tailwind = this.getFileName(ref);
278
- }
279
- descriptor = {
280
- version: 1,
281
- components: docs,
282
- ...(Object.keys(themeVars).length > 0 ? { theme: { vars: { ...themeVars } } } : {}),
283
- kit,
284
- tailwind,
350
+ const fileName = this.getFileName(ref);
351
+ emitted[key] = fileName;
352
+ return `${base}${fileName}`;
285
353
  };
286
- const ref = this.emitFile({
287
- type: 'asset',
288
- name: SANDBOX_KIT_MANIFEST_KEYS.descriptor,
289
- originalFileName: SANDBOX_KIT_MANIFEST_KEYS.descriptor,
290
- source: JSON.stringify(descriptor),
291
- });
292
- emitted.descriptor = this.getFileName(ref);
354
+ const kitUrl = bundle !== null ? emit('kit', bundle.code) : null;
355
+ const cssUrl = styles !== null && styles.css !== '' ? emit('css', styles.css) : null;
356
+ const runtime = styles?.tailwind !== undefined ? tailwindRuntimePath() : null;
357
+ const tailwindUrl = runtime !== null ? emit('tailwind', readFileSync(runtime, 'utf8')) : null;
358
+ descriptor = describe({ kit: kitUrl, css: cssUrl, tailwind: tailwindUrl });
359
+ emit('descriptor', JSON.stringify(descriptor));
293
360
  },
294
- /** The manifest lists the three by their names, whatever Vite's own manifest did with them. */
361
+ /** The manifest lists them by their names, whatever Vite's own manifest did with them. */
295
362
  writeBundle() {
296
363
  if (config?.command !== 'build' || config.build.manifest === false)
297
364
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../src/genui/kit/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../src/genui/kit/plugin.ts"],"names":[],"mappings":"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"}