@atelier-ui/create-workspace 0.0.2 → 0.0.4

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atelier-ui/create-workspace",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "description": "Nx preset for Atelier UI workshop workspaces",
5
5
  "keywords": [
6
6
  "nx",
@@ -3,12 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.presetGenerator = presetGenerator;
4
4
  const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nx/devkit");
6
- const generators_1 = require("@nx/angular/generators");
7
- const react_1 = require("@nx/react");
8
6
  const SITE_URL = 'https://atelier-ui.netlify.app';
9
7
  function presetGenerator(tree, options) {
10
8
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
- var _a;
9
+ var _a, _b;
12
10
  const frameworks = ((_a = options.frameworks) !== null && _a !== void 0 ? _a : 'angular')
13
11
  .split(',')
14
12
  .map((f) => f.trim())
@@ -19,7 +17,9 @@ function presetGenerator(tree, options) {
19
17
  for (const framework of frameworks) {
20
18
  const appName = `workshop-${framework}`;
21
19
  if (framework === 'angular') {
22
- yield (0, generators_1.applicationGenerator)(tree, {
20
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
+ const { applicationGenerator: angularAppGenerator } = yield (0, devkit_1.ensurePackage)('@nx/angular', devkit_1.NX_VERSION);
22
+ yield angularAppGenerator(tree, {
23
23
  name: appName,
24
24
  directory: appName,
25
25
  style: 'css',
@@ -32,7 +32,9 @@ function presetGenerator(tree, options) {
32
32
  deps['@atelier-ui/angular'] = 'latest';
33
33
  }
34
34
  if (framework === 'react') {
35
- yield (0, react_1.applicationGenerator)(tree, {
35
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
+ const { applicationGenerator: reactAppGenerator } = yield (0, devkit_1.ensurePackage)('@nx/react', devkit_1.NX_VERSION);
37
+ yield reactAppGenerator(tree, {
36
38
  name: appName,
37
39
  directory: appName,
38
40
  style: 'css',
@@ -45,7 +47,7 @@ function presetGenerator(tree, options) {
45
47
  }
46
48
  if (framework === 'vue') {
47
49
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
- const { applicationGenerator: vueAppGenerator } = yield (0, devkit_1.ensurePackage)('@nx/vue', 'latest');
50
+ const { applicationGenerator: vueAppGenerator } = yield (0, devkit_1.ensurePackage)('@nx/vue', devkit_1.NX_VERSION);
49
51
  yield vueAppGenerator(tree, {
50
52
  name: appName,
51
53
  directory: appName,
@@ -56,7 +58,74 @@ function presetGenerator(tree, options) {
56
58
  });
57
59
  deps['@atelier-ui/vue'] = 'latest';
58
60
  }
61
+ // Inject CSS tokens import into the app's global stylesheet
62
+ const stylesPath = `${appName}/src/styles.css`;
63
+ const existing = tree.exists(stylesPath) ? ((_b = tree.read(stylesPath, 'utf-8')) !== null && _b !== void 0 ? _b : '') : '';
64
+ tree.write(stylesPath, `@import '@atelier-ui/${framework}/styles/tokens.css';\n\n${existing}`);
59
65
  }
66
+ // Write CLAUDE.md with framework-specific guidance
67
+ const frameworkSections = frameworks
68
+ .map((f) => {
69
+ if (f === 'angular') {
70
+ return `### Angular (\`@atelier-ui/angular\`)
71
+ - Selectors: \`llm-button\`, \`llm-input\`, \`llm-dialog\`, …
72
+ - Import: \`import { LlmButtonComponent } from '@atelier-ui/angular';\`
73
+ - Add to \`@Component({ imports: [LlmButtonComponent] })\`
74
+ - Form controls implement Signal Forms (\`FormValueControl\` / \`FormCheckboxControl\`)`;
75
+ }
76
+ if (f === 'react') {
77
+ return `### React (\`@atelier-ui/react\`)
78
+ - Elements: \`<LlmButton>\`, \`<LlmInput>\`, \`<LlmDialog>\`, …
79
+ - Import: \`import { LlmButton } from '@atelier-ui/react';\`
80
+ - Event handlers follow \`onXxx\` / \`onXxxChange\` convention
81
+ - Toast: use \`useLlmToast()\` hook inside \`<LlmToastProvider>\``;
82
+ }
83
+ if (f === 'vue') {
84
+ return `### Vue (\`@atelier-ui/vue\`)
85
+ - Elements: \`<LlmButton>\`, \`<LlmInput>\`, \`<LlmDialog>\`, …
86
+ - Import: \`import { LlmButton } from '@atelier-ui/vue';\`
87
+ - Two-way binding: \`v-model\` and \`v-model:value\` where applicable
88
+ - Toast: use \`useLlmToast()\` composable`;
89
+ }
90
+ return '';
91
+ })
92
+ .join('\n\n');
93
+ tree.write('CLAUDE.md', `# Atelier UI Workshop
94
+
95
+ This workspace contains Atelier UI component library apps for hands-on AI development training.
96
+
97
+ ## MCP Tools — always use these before writing component code
98
+
99
+ The MCP servers are pre-configured in \`.claude/settings.json\` and connect automatically.
100
+
101
+ | Tool | When to call it |
102
+ |---|---|
103
+ | \`get_component_docs(component)\` | Before using any component — returns exact props, types, defaults |
104
+ | \`list_components()\` | To see all 22 available components grouped by category |
105
+ | \`search_components(query)\` | When you know the intent ("form input") but not the component name |
106
+ | \`get_stories(component)\` | To see real usage examples and variants |
107
+ | \`get_theming_guide()\` | Before customising colors, spacing, or dark mode |
108
+
109
+ **Rule:** call the MCP server first, then write code. Never guess prop names.
110
+
111
+ ## Component Libraries
112
+
113
+ ${frameworkSections}
114
+
115
+ ## Global styles
116
+
117
+ CSS design tokens are imported in each app's \`src/styles.css\`.
118
+ All \`--ui-*\` custom properties are available globally (colors, spacing, radius, typography, shadows).
119
+
120
+ ## Apps
121
+
122
+ ${frameworks.map((f) => `- \`workshop-${f}\` — run with \`npx nx serve workshop-${f}\``).join('\n')}
123
+
124
+ ## Reference
125
+
126
+ - Component browser + exercises: ${SITE_URL}
127
+ - MCP Playground (inspect tool responses): ${SITE_URL}/mcp
128
+ `);
60
129
  // Install selected @atelier-ui/* packages
61
130
  const installTask = (0, devkit_1.addDependenciesToPackageJson)(tree, deps, {});
62
131
  // Write .claude/settings.json with MCP servers for selected frameworks
@@ -1 +1 @@
1
- {"version":3,"file":"preset.js","sourceRoot":"","sources":["../../../../../../libs/create-workspace/src/generators/preset/preset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preset.js","sourceRoot":"","sources":["../../../../../../libs/create-workspace/src/generators/preset/preset.ts"],"names":[],"mappings":"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"}