@dryui/mcp 0.1.2 → 0.1.3

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.
@@ -4440,7 +4440,7 @@ body { margin: 0; min-height: 100dvh; }
4440
4440
  },
4441
4441
  {
4442
4442
  name: "simple-content-page",
4443
- description: "Clean content page with constrained width and vertical rhythm. Use Container for max-width and Stack for vertical spacing. Suitable for blog posts, documentation, settings pages.",
4443
+ description: "Clean content page with constrained width and vertical rhythm. Use Container for max-width and CSS grid for vertical spacing. Suitable for blog posts, documentation, settings pages.",
4444
4444
  tags: ["page", "content", "simple", "blog", "docs", "article", "clean", "minimal"],
4445
4445
  components: ["Container"],
4446
4446
  snippet: `<!-- Simple content page — Container constrains width, grid provides rhythm -->
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema": "DolphinGraph",
3
- "generatedAt": "2026-04-07T21:02:38.014Z",
4
- "packageVersion": "0.1.4",
3
+ "generatedAt": "2026-04-07T21:44:08.785Z",
4
+ "packageVersion": "0.1.5",
5
5
  "summary": {
6
6
  "componentNodes": 292,
7
7
  "partNodes": 662,
@@ -4440,7 +4440,7 @@ body { margin: 0; min-height: 100dvh; }
4440
4440
  },
4441
4441
  {
4442
4442
  name: "simple-content-page",
4443
- description: "Clean content page with constrained width and vertical rhythm. Use Container for max-width and Stack for vertical spacing. Suitable for blog posts, documentation, settings pages.",
4443
+ description: "Clean content page with constrained width and vertical rhythm. Use Container for max-width and CSS grid for vertical spacing. Suitable for blog posts, documentation, settings pages.",
4444
4444
  tags: ["page", "content", "simple", "blog", "docs", "article", "clean", "minimal"],
4445
4445
  components: ["Container"],
4446
4446
  snippet: `<!-- Simple content page — Container constrains width, grid provides rhythm -->
@@ -3,7 +3,7 @@
3
3
  "version": 1,
4
4
  "package": {
5
5
  "name": "@dryui/ui",
6
- "version": "0.1.4"
6
+ "version": "0.1.5"
7
7
  },
8
8
  "counts": {
9
9
  "components": 144,
@@ -22341,7 +22341,7 @@
22341
22341
  },
22342
22342
  "simple-content-page": {
22343
22343
  "name": "simple-content-page",
22344
- "description": "Clean content page with constrained width and vertical rhythm. Use Container for max-width and Stack for vertical spacing. Suitable for blog posts, documentation, settings pages.",
22344
+ "description": "Clean content page with constrained width and vertical rhythm. Use Container for max-width and CSS grid for vertical spacing. Suitable for blog posts, documentation, settings pages.",
22345
22345
  "tags": [
22346
22346
  "page",
22347
22347
  "content",
package/dist/index.js CHANGED
@@ -8080,12 +8080,23 @@ function installCommand(packageManager) {
8080
8080
  return "npm install @dryui/ui";
8081
8081
  }
8082
8082
  }
8083
+ function buildThemeImportLines(spec) {
8084
+ return ` import '${spec.themeImports.default}';
8085
+ import '${spec.themeImports.dark}';`;
8086
+ }
8083
8087
  function buildThemeImportSnippet(spec) {
8088
+ return ["<script>", buildThemeImportLines(spec), "</script>"].join(`
8089
+ `);
8090
+ }
8091
+ function buildRootLayoutSnippet(spec) {
8084
8092
  return [
8085
- '<script lang="ts">',
8086
- ` import '${spec.themeImports.default}';`,
8087
- ` import '${spec.themeImports.dark}';`,
8088
- "</script>"
8093
+ "<script>",
8094
+ buildThemeImportLines(spec),
8095
+ "",
8096
+ " let { children } = $props();",
8097
+ "</script>",
8098
+ "",
8099
+ "{@render children()}"
8089
8100
  ].join(`
8090
8101
  `);
8091
8102
  }
@@ -8193,7 +8204,7 @@ function planInstall(spec, inputPath) {
8193
8204
  kind: "edit-file",
8194
8205
  status: "pending",
8195
8206
  title: "Add theme imports to app.css",
8196
- description: "Ensure the app-level stylesheet imports both default and dark DryUI themes.",
8207
+ description: "Prepend the two @import lines from the snippet to the TOP of the existing src/app.css file, before any other CSS rules. Do not create a second file.",
8197
8208
  path: detection.files.appCss,
8198
8209
  snippet: buildThemeImportCssSnippet(spec)
8199
8210
  });
@@ -8203,16 +8214,16 @@ function planInstall(spec, inputPath) {
8203
8214
  kind: "create-file",
8204
8215
  status: "pending",
8205
8216
  title: "Create root layout with theme imports",
8206
- description: "Create src/routes/+layout.svelte and add the required DryUI theme imports.",
8217
+ description: "Create the file at the path below with the snippet as its full content. The file must include {@render children()} or pages will not render.",
8207
8218
  ...path ? { path } : {},
8208
- snippet: buildThemeImportSnippet(spec)
8219
+ snippet: buildRootLayoutSnippet(spec)
8209
8220
  });
8210
8221
  } else {
8211
8222
  steps.push({
8212
8223
  kind: "edit-file",
8213
8224
  status: "pending",
8214
8225
  title: "Add theme imports to the root layout",
8215
- description: "Ensure the root layout imports both default and dark DryUI themes.",
8226
+ description: "Add the two import lines from the snippet into the EXISTING <script> block in this file. Do not create a second <script> block. If no <script> block exists, add one at the top of the file.",
8216
8227
  path: detection.files.rootLayout,
8217
8228
  snippet: buildThemeImportSnippet(spec)
8218
8229
  });
@@ -8230,9 +8241,9 @@ function planInstall(spec, inputPath) {
8230
8241
  kind: "edit-file",
8231
8242
  status: "pending",
8232
8243
  title: "Set html theme mode to auto",
8233
- description: 'Add class="theme-auto" to the html element in src/app.html.',
8244
+ description: 'In src/app.html, find the opening <html> tag (e.g. <html lang="en">) and add class="theme-auto" to it, preserving any existing attributes. Result should be like <html lang="en" class="theme-auto">. Do NOT add a second <html> element.',
8234
8245
  path: detection.files.appHtml,
8235
- snippet: '<html class="theme-auto">'
8246
+ snippet: '<html lang="en" class="theme-auto">'
8236
8247
  });
8237
8248
  }
8238
8249
  if (steps.length === 0) {
@@ -158,12 +158,23 @@ function installCommand(packageManager) {
158
158
  return "npm install @dryui/ui";
159
159
  }
160
160
  }
161
+ function buildThemeImportLines(spec) {
162
+ return ` import '${spec.themeImports.default}';
163
+ import '${spec.themeImports.dark}';`;
164
+ }
161
165
  function buildThemeImportSnippet(spec) {
166
+ return ["<script>", buildThemeImportLines(spec), "</script>"].join(`
167
+ `);
168
+ }
169
+ function buildRootLayoutSnippet(spec) {
162
170
  return [
163
- '<script lang="ts">',
164
- ` import '${spec.themeImports.default}';`,
165
- ` import '${spec.themeImports.dark}';`,
166
- "</script>"
171
+ "<script>",
172
+ buildThemeImportLines(spec),
173
+ "",
174
+ " let { children } = $props();",
175
+ "</script>",
176
+ "",
177
+ "{@render children()}"
167
178
  ].join(`
168
179
  `);
169
180
  }
@@ -271,7 +282,7 @@ function planInstall(spec, inputPath) {
271
282
  kind: "edit-file",
272
283
  status: "pending",
273
284
  title: "Add theme imports to app.css",
274
- description: "Ensure the app-level stylesheet imports both default and dark DryUI themes.",
285
+ description: "Prepend the two @import lines from the snippet to the TOP of the existing src/app.css file, before any other CSS rules. Do not create a second file.",
275
286
  path: detection.files.appCss,
276
287
  snippet: buildThemeImportCssSnippet(spec)
277
288
  });
@@ -281,16 +292,16 @@ function planInstall(spec, inputPath) {
281
292
  kind: "create-file",
282
293
  status: "pending",
283
294
  title: "Create root layout with theme imports",
284
- description: "Create src/routes/+layout.svelte and add the required DryUI theme imports.",
295
+ description: "Create the file at the path below with the snippet as its full content. The file must include {@render children()} or pages will not render.",
285
296
  ...path ? { path } : {},
286
- snippet: buildThemeImportSnippet(spec)
297
+ snippet: buildRootLayoutSnippet(spec)
287
298
  });
288
299
  } else {
289
300
  steps.push({
290
301
  kind: "edit-file",
291
302
  status: "pending",
292
303
  title: "Add theme imports to the root layout",
293
- description: "Ensure the root layout imports both default and dark DryUI themes.",
304
+ description: "Add the two import lines from the snippet into the EXISTING <script> block in this file. Do not create a second <script> block. If no <script> block exists, add one at the top of the file.",
294
305
  path: detection.files.rootLayout,
295
306
  snippet: buildThemeImportSnippet(spec)
296
307
  });
@@ -308,9 +319,9 @@ function planInstall(spec, inputPath) {
308
319
  kind: "edit-file",
309
320
  status: "pending",
310
321
  title: "Set html theme mode to auto",
311
- description: 'Add class="theme-auto" to the html element in src/app.html.',
322
+ description: 'In src/app.html, find the opening <html> tag (e.g. <html lang="en">) and add class="theme-auto" to it, preserving any existing attributes. Result should be like <html lang="en" class="theme-auto">. Do NOT add a second <html> element.',
312
323
  path: detection.files.appHtml,
313
- snippet: '<html class="theme-auto">'
324
+ snippet: '<html lang="en" class="theme-auto">'
314
325
  });
315
326
  }
316
327
  if (steps.length === 0) {
package/dist/spec.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.4",
2
+ "version": "0.1.5",
3
3
  "package": "@dryui/ui",
4
4
  "themeImports": {
5
5
  "default": "@dryui/ui/themes/default.css",
@@ -22197,7 +22197,7 @@
22197
22197
  },
22198
22198
  "simple-content-page": {
22199
22199
  "name": "simple-content-page",
22200
- "description": "Clean content page with constrained width and vertical rhythm. Use Container for max-width and Stack for vertical spacing. Suitable for blog posts, documentation, settings pages.",
22200
+ "description": "Clean content page with constrained width and vertical rhythm. Use Container for max-width and CSS grid for vertical spacing. Suitable for blog posts, documentation, settings pages.",
22201
22201
  "tags": [
22202
22202
  "page",
22203
22203
  "content",
@@ -1607,12 +1607,23 @@ function installCommand(packageManager) {
1607
1607
  return "npm install @dryui/ui";
1608
1608
  }
1609
1609
  }
1610
+ function buildThemeImportLines(spec) {
1611
+ return ` import '${spec.themeImports.default}';
1612
+ import '${spec.themeImports.dark}';`;
1613
+ }
1610
1614
  function buildThemeImportSnippet(spec) {
1615
+ return ["<script>", buildThemeImportLines(spec), "</script>"].join(`
1616
+ `);
1617
+ }
1618
+ function buildRootLayoutSnippet(spec) {
1611
1619
  return [
1612
- '<script lang="ts">',
1613
- ` import '${spec.themeImports.default}';`,
1614
- ` import '${spec.themeImports.dark}';`,
1615
- "</script>"
1620
+ "<script>",
1621
+ buildThemeImportLines(spec),
1622
+ "",
1623
+ " let { children } = $props();",
1624
+ "</script>",
1625
+ "",
1626
+ "{@render children()}"
1616
1627
  ].join(`
1617
1628
  `);
1618
1629
  }
@@ -1720,7 +1731,7 @@ function planInstall(spec, inputPath) {
1720
1731
  kind: "edit-file",
1721
1732
  status: "pending",
1722
1733
  title: "Add theme imports to app.css",
1723
- description: "Ensure the app-level stylesheet imports both default and dark DryUI themes.",
1734
+ description: "Prepend the two @import lines from the snippet to the TOP of the existing src/app.css file, before any other CSS rules. Do not create a second file.",
1724
1735
  path: detection.files.appCss,
1725
1736
  snippet: buildThemeImportCssSnippet(spec)
1726
1737
  });
@@ -1730,16 +1741,16 @@ function planInstall(spec, inputPath) {
1730
1741
  kind: "create-file",
1731
1742
  status: "pending",
1732
1743
  title: "Create root layout with theme imports",
1733
- description: "Create src/routes/+layout.svelte and add the required DryUI theme imports.",
1744
+ description: "Create the file at the path below with the snippet as its full content. The file must include {@render children()} or pages will not render.",
1734
1745
  ...path ? { path } : {},
1735
- snippet: buildThemeImportSnippet(spec)
1746
+ snippet: buildRootLayoutSnippet(spec)
1736
1747
  });
1737
1748
  } else {
1738
1749
  steps.push({
1739
1750
  kind: "edit-file",
1740
1751
  status: "pending",
1741
1752
  title: "Add theme imports to the root layout",
1742
- description: "Ensure the root layout imports both default and dark DryUI themes.",
1753
+ description: "Add the two import lines from the snippet into the EXISTING <script> block in this file. Do not create a second <script> block. If no <script> block exists, add one at the top of the file.",
1743
1754
  path: detection.files.rootLayout,
1744
1755
  snippet: buildThemeImportSnippet(spec)
1745
1756
  });
@@ -1757,9 +1768,9 @@ function planInstall(spec, inputPath) {
1757
1768
  kind: "edit-file",
1758
1769
  status: "pending",
1759
1770
  title: "Set html theme mode to auto",
1760
- description: 'Add class="theme-auto" to the html element in src/app.html.',
1771
+ description: 'In src/app.html, find the opening <html> tag (e.g. <html lang="en">) and add class="theme-auto" to it, preserving any existing attributes. Result should be like <html lang="en" class="theme-auto">. Do NOT add a second <html> element.',
1761
1772
  path: detection.files.appHtml,
1762
- snippet: '<html class="theme-auto">'
1773
+ snippet: '<html lang="en" class="theme-auto">'
1763
1774
  });
1764
1775
  }
1765
1776
  if (steps.length === 0) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dryui/mcp",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "author": "Rob Balfre",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -71,9 +71,6 @@
71
71
  "files": [
72
72
  "dist"
73
73
  ],
74
- "publishConfig": {
75
- "access": "public"
76
- },
77
74
  "scripts": {
78
75
  "generate-spec": "bun src/generate-spec.ts",
79
76
  "generate-architecture": "bun src/generate-architecture.ts",