blockparty 0.1.2 → 0.1.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/README.md CHANGED
@@ -20,17 +20,19 @@ export default ({ who }: Props) => (
20
20
 
21
21
  Create a new directory and paste the above into a file called `index.tsx`. You've just created your first Block!
22
22
 
23
+ ## Storybook
24
+
23
25
  ### Run the Storybook
24
26
 
25
27
  Block Party includes a storybook-style UI for quick previews of your Blocks.
26
28
 
27
- Just run `npx blockparty` in the directory with your Block. The preview will automatically update if changes are made to the Block's source code.
29
+ Just run `npx blockparty` from the directory containing your Block, or from a root directory, where each Block is in a different subdirectory. The preview will automatically update if changes are made to any of the Blocks' source code.
28
30
 
29
31
  ### Publish the Storybook
30
32
 
31
33
  You may want to publish a static site build of the storybook UI, for instance during a CI run on a git repo.
32
34
 
33
- To create a static site build of the storybook, run `npx blockparty build` from the root (where each block is in a different subdirectory).
35
+ To create a static site build of the storybook, run `npx blockparty build` from the root.
34
36
 
35
37
  By default, the output goes into a `dist` directory, but you can specify a different path on the command line. For instance, if you are using GitHub Pages, you may want to put it in the `docs` directory:
36
38
 
@@ -99,4 +101,83 @@ export default ({ who, greeting = 'Hello' }: Props) => (
99
101
  )
100
102
  ```
101
103
 
104
+ ## Styling
105
+
106
+ The easiest way to style your Block is to just put styles right in the code:
107
+
108
+ ```typescript
109
+ export interface Props {
110
+ // .. snip ..
111
+ }
112
+
113
+ export default ({ who, greeting = 'Hello' }: Props) => {
114
+ const headingStyle: React.CSSProperties = {
115
+ fontSize: '24px',
116
+ color: '#111827',
117
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
118
+ }
119
+ return (
120
+ <h1 style={headingStyle}>{greeting}, {who}!</h1>
121
+ )
122
+ }
123
+ ```
124
+
125
+ You can also use a CSS module, which is a CSS file ending in `.module.css`.
126
+
127
+ ```css
128
+ .heading {
129
+ font-size: 24px;
130
+ color: #111827;
131
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
132
+ }
133
+ ```
134
+
135
+ For instance, if you name the above `styles.module.css`, you can import it in your code like so:
136
+
137
+ ```typescript
138
+ import styles from './styles.module.css'
139
+
140
+ export interface Props {
141
+ // .. snip ..
142
+ }
143
+
144
+ export default ({ who, greeting = 'Hello' }: Props) => {
145
+ return (
146
+ <h1 className={styles.heading}>{greeting}, {who}!</h1>
147
+ )
148
+ }
149
+ ```
150
+
151
+ ## Hacking on Block Party
152
+
153
+ ### Running the CLI
154
+
155
+ To run the Block Party CLI command (e.g. `npx blockparty`) from within the git checkout, run:
156
+
157
+ ```
158
+ npm run cli -- ...
159
+ ```
160
+ Where everything after the hypens are arguments to the Block Party CLI.
161
+
162
+ ### Running the tests
163
+
164
+ ```
165
+ npm test
166
+ ```
167
+
168
+ ### Preparing a release
169
+
170
+ 1. Bump the version:
171
+ ```
172
+ npm version patch|minor|major
173
+ ```
174
+
175
+ 2. Push the version bump and new git tag:
176
+ ```
177
+ git push origin main --tags
178
+ ```
102
179
 
180
+ 3. Publish to NPM:
181
+ ```
182
+ npm publish
183
+ ```
package/dist/cli.js CHANGED
@@ -2,13 +2,20 @@
2
2
  import { existsSync } from 'fs';
3
3
  import { resolve } from 'path';
4
4
  import { startStorybookServer } from './commands/storybook.js';
5
- import { buildStorybook } from './commands/build.js';
5
+ import { buildStorybook, buildBlocks } from './commands/build.js';
6
6
  async function main() {
7
7
  const args = process.argv.slice(2);
8
- // Parse command and path
8
+ // Parse command and flags
9
9
  let command;
10
10
  let targetPath;
11
11
  let outDir;
12
+ let buildBlocksIndividually = false;
13
+ // Handle flags
14
+ let individuallyIndex = args.indexOf('--individually');
15
+ if (individuallyIndex !== -1) {
16
+ buildBlocksIndividually = true;
17
+ args.splice(individuallyIndex, 1);
18
+ }
12
19
  if (args.length === 0) {
13
20
  // No arguments - default to storybook in current directory
14
21
  command = 'storybook';
@@ -22,7 +29,7 @@ async function main() {
22
29
  }
23
30
  else {
24
31
  console.error('❌ Unknown command');
25
- console.error('Usage: blockparty [storybook|build] [path] [outDir]');
32
+ console.error('Usage: blockparty [storybook|build] [flags] [path] [outDir]');
26
33
  console.error('');
27
34
  console.error('Commands:');
28
35
  console.error(' storybook Start storybook dev server (default)');
@@ -31,6 +38,9 @@ async function main() {
31
38
  console.error('Arguments:');
32
39
  console.error(' path Path to Block or root directory for Blocks (default: current directory)');
33
40
  console.error(' outDir Output directory for build (default: dist)');
41
+ console.error('');
42
+ console.error('Build Flags:');
43
+ console.error(' --individually Bundle each block individually');
34
44
  process.exit(1);
35
45
  }
36
46
  // Resolve the path
@@ -44,7 +54,15 @@ async function main() {
44
54
  await startStorybookServer(resolvedPath);
45
55
  }
46
56
  else if (command === 'build') {
47
- await buildStorybook(resolvedPath, outDir ?? 'dist');
57
+ if (outDir === undefined) {
58
+ outDir = 'dist';
59
+ }
60
+ if (buildBlocksIndividually) {
61
+ await buildBlocks(resolvedPath, outDir);
62
+ }
63
+ else {
64
+ await buildStorybook(resolvedPath, outDir);
65
+ }
48
66
  }
49
67
  }
50
68
  main().catch(error => {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAElC,yBAAyB;IACzB,IAAI,OAAe,CAAA;IACnB,IAAI,UAAkB,CAAA;IACtB,IAAI,MAA0B,CAAA;IAE9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,2DAA2D;QAC3D,OAAO,GAAG,WAAW,CAAA;QACrB,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAC5B,CAAC;SAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC1D,mBAAmB;QACnB,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;QACrC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,8CAA8C;IACjE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;QAClC,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAA;QACpE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACjB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAC1B,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;QAClE,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAA;QAC7D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACjB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAC3B,OAAO,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAA;QACrG,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAA;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,mBAAmB;IACnB,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAA;IAEvD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAA;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,8BAA8B;IAC9B,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,MAAM,oBAAoB,CAAC,YAAY,CAAC,CAAA;IAC1C,CAAC;SAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,cAAc,CAAC,YAAY,EAAE,MAAM,IAAI,MAAM,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAA;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export declare function buildStorybook(targetPath: string, outDir: string): Promise<void>;
2
+ export declare function buildBlocks(targetPath: string, outDir: string): Promise<void>;
2
3
  //# sourceMappingURL=build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAOA,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAgEtE"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAQA,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAgDtE;AAED,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBA6KnE"}
@@ -1,28 +1,14 @@
1
1
  import { resolve } from 'path';
2
- import { mkdir, writeFile, rm } from 'fs/promises';
2
+ import { mkdir, writeFile, rm, readFile } from 'fs/promises';
3
3
  import { build as viteBuild } from 'vite';
4
- import { discoverBlocks } from '../discoverBlocks.js';
5
- import { generateBlocksModule } from '../generateBlocksModule.js';
6
4
  import { templatesDir, getViteResolveConfig, getVitePlugins } from '../viteConfig.js';
5
+ import { discoverBlocksAndGenerateModule } from './shared.js';
6
+ import { discoverBlocks } from '../discoverBlocks.js';
7
7
  export async function buildStorybook(targetPath, outDir) {
8
- console.log('🏗️ Building Blocks...');
8
+ console.log('🏗️ Building Storybook...');
9
9
  console.log(`📂 Target: ${targetPath}`);
10
10
  console.log(`📦 Output: ${outDir}\n`);
11
- const blocks = await discoverBlocks(targetPath);
12
- if (blocks.length === 0) {
13
- console.error('❌ No Blocks found!');
14
- console.error('A Block should have an index.ts or index.tsx file with:');
15
- console.error(' - An exported Props interface');
16
- console.error(' - A default exported function component');
17
- process.exit(1);
18
- }
19
- console.log(`✅ Found ${blocks.length} Block(s):`);
20
- blocks.forEach(block => {
21
- console.log(` - ${block.name}`);
22
- });
23
- console.log();
24
- // Generate blocks module
25
- const blocksModule = await generateBlocksModule(blocks);
11
+ const blocksModule = await discoverBlocksAndGenerateModule(targetPath);
26
12
  // Create a temporary directory for the virtual blocks module
27
13
  const tempDir = resolve(process.cwd(), '.blockparty-build');
28
14
  await mkdir(tempDir, { recursive: true });
@@ -46,6 +32,7 @@ export async function buildStorybook(targetPath, outDir) {
46
32
  plugins: getVitePlugins(),
47
33
  build: {
48
34
  outDir: resolve(process.cwd(), outDir),
35
+ minify: true,
49
36
  emptyOutDir: true,
50
37
  rollupOptions: {
51
38
  input: resolve(templatesDir, 'index.html')
@@ -63,4 +50,152 @@ export async function buildStorybook(targetPath, outDir) {
63
50
  await rm(tempDir, { recursive: true, force: true });
64
51
  }
65
52
  }
53
+ export async function buildBlocks(targetPath, outDir) {
54
+ console.log('🏗️ Building Blocks...');
55
+ console.log(`📂 Target: ${targetPath}`);
56
+ console.log(`📦 Output: ${outDir}\n`);
57
+ const blocks = await discoverBlocks(targetPath);
58
+ if (blocks.length === 0) {
59
+ console.error('❌ No Blocks found!');
60
+ process.exit(1);
61
+ }
62
+ console.log(`✅ Found ${blocks.length} Block(s):`);
63
+ blocks.forEach(block => {
64
+ console.log(` - ${block.name}`);
65
+ });
66
+ console.log();
67
+ const outputDir = resolve(process.cwd(), outDir);
68
+ await mkdir(outputDir, { recursive: true });
69
+ const viteResolve = getViteResolveConfig();
70
+ const externalDeps = Object.keys(viteResolve.alias);
71
+ const importMap = {};
72
+ console.log('📦 Bundling external dependencies...\n');
73
+ // Build each package
74
+ for (const dep of externalDeps) {
75
+ // Skip subpath imports
76
+ if (dep.includes('/')) {
77
+ continue;
78
+ }
79
+ const depPath = viteResolve.alias[dep];
80
+ const packageJsonPath = resolve(depPath, 'package.json');
81
+ const packageJson = JSON.parse(await readFile(packageJsonPath, 'utf-8'));
82
+ const version = packageJson.version ?? 'latest';
83
+ // Determine entry point
84
+ const entryPoint = packageJson.module ?? packageJson.main ?? 'index.js';
85
+ const entryPath = resolve(depPath, entryPoint);
86
+ console.log(` Bundling ${dep}...`);
87
+ // Get the list of other external deps to keep external
88
+ const otherExternalDeps = externalDeps.filter(d => d !== dep);
89
+ // Get any subpath imports for this dep
90
+ const subDepEntryPaths = [];
91
+ if (typeof packageJson.exports === 'object' && !Array.isArray(packageJson.exports)) {
92
+ for (const d of externalDeps) {
93
+ if (d.startsWith(`${dep}/`)) {
94
+ const key = d.replace(`${dep}/`, './');
95
+ const entry = packageJson.exports?.[key];
96
+ if (typeof entry === 'string') {
97
+ subDepEntryPaths.push(resolve(depPath, entry));
98
+ }
99
+ }
100
+ }
101
+ }
102
+ try {
103
+ await viteBuild({
104
+ build: {
105
+ lib: {
106
+ entry: [entryPath, ...subDepEntryPaths],
107
+ formats: ['es'],
108
+ fileName: (_, entry) => `${(entry == 'index' ? dep : entry).replace('/', '-')}.js`
109
+ },
110
+ outDir: resolve(outputDir, 'deps'),
111
+ minify: true,
112
+ emptyOutDir: false,
113
+ rollupOptions: {
114
+ external: otherExternalDeps
115
+ }
116
+ }
117
+ });
118
+ // Add to import map
119
+ const external = otherExternalDeps.filter(d => !d.includes('/')).sort().join(',');
120
+ importMap[dep] = `https://esm.sh/${dep}@${version}?external=${external}`;
121
+ // Also include trailing slash version for packages that require it
122
+ importMap[`${dep}/`] = `https://esm.sh/${dep}@${version}&external=${external}/`;
123
+ }
124
+ catch (error) {
125
+ console.error(` ❌ Failed to bundle ${dep}:`, error);
126
+ process.exit(1);
127
+ }
128
+ }
129
+ console.log();
130
+ console.log('📝 Bundling individual blocks...\n');
131
+ // Build each block individually and collect block info
132
+ const blockInfos = [];
133
+ for (const block of blocks) {
134
+ const blockId = block.metadata?.id ?? block.name;
135
+ console.log(` Building ${blockId} ${blockId !== block.name ? `(${block.name}) ` : ''}...`);
136
+ // Sanitize block name for filename (replace spaces and special chars)
137
+ const safeFileName = blockId.replace(/[^a-zA-Z0-9-_]/g, '-');
138
+ try {
139
+ const css = [];
140
+ const assets = [];
141
+ await viteBuild({
142
+ build: {
143
+ lib: {
144
+ entry: block.path,
145
+ formats: ['es'],
146
+ fileName: () => 'index.js'
147
+ },
148
+ outDir: resolve(outputDir, safeFileName),
149
+ minify: true,
150
+ emptyOutDir: false,
151
+ rollupOptions: {
152
+ external: externalDeps,
153
+ output: {
154
+ assetFileNames: (assetInfo) => {
155
+ const assetName = assetInfo.name;
156
+ if (assetName === undefined) {
157
+ // FIXME: What to do if assetName is undefined?
158
+ return 'asset';
159
+ }
160
+ const assetPath = `./${safeFileName}/${assetName}`;
161
+ if (assetName.endsWith('.css')) {
162
+ if (!css.includes(assetPath)) {
163
+ css.push(assetPath);
164
+ }
165
+ }
166
+ else if (!assets.includes(assetPath)) {
167
+ assets.push(assetPath);
168
+ }
169
+ return assetName;
170
+ }
171
+ }
172
+ }
173
+ },
174
+ plugins: getVitePlugins()
175
+ });
176
+ // Add block info with relative path to built file
177
+ const blockInfo = {
178
+ name: block.name,
179
+ description: block.description,
180
+ metadata: block.metadata,
181
+ readme: block.readme,
182
+ propDefinitions: block.propDefinitions,
183
+ js: `./${safeFileName}/index.js`,
184
+ css,
185
+ assets
186
+ };
187
+ blockInfos.push(blockInfo);
188
+ }
189
+ catch (error) {
190
+ console.error(` ❌ Failed to build ${block.name}:`, error);
191
+ process.exit(1);
192
+ }
193
+ }
194
+ // Write index.json with blocks and import map
195
+ await writeFile(resolve(outputDir, 'index.json'), JSON.stringify({
196
+ blocks: blockInfos,
197
+ importmap: importMap
198
+ }, null, 2));
199
+ console.log(`\n✅ Build complete! Output in ${outDir}/`);
200
+ }
66
201
  //# sourceMappingURL=build.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function discoverBlocksAndGenerateModule(targetPath: string): Promise<string>;
2
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAGA,wBAAsB,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBzF"}
@@ -0,0 +1,19 @@
1
+ import { discoverBlocks } from '../discoverBlocks.js';
2
+ import { generateBlocksModule } from '../generateBlocksModule.js';
3
+ export async function discoverBlocksAndGenerateModule(targetPath) {
4
+ const blocks = await discoverBlocks(targetPath);
5
+ if (blocks.length === 0) {
6
+ console.error('❌ No Blocks found!');
7
+ console.error('A Block should have an index.ts or index.tsx file with:');
8
+ console.error(' - An exported Props interface');
9
+ console.error(' - A default exported function component that accepts the Props');
10
+ process.exit(1);
11
+ }
12
+ console.log(`✅ Found ${blocks.length} Block(s):`);
13
+ blocks.forEach(block => {
14
+ console.log(` - ${block.name}`);
15
+ });
16
+ console.log();
17
+ return await generateBlocksModule(blocks);
18
+ }
19
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAEjE,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,UAAkB;IACtE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAA;IAE/C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACnC,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAA;QACxE,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAChD,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAA;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,YAAY,CAAC,CAAA;IACjD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,GAAG,EAAE,CAAA;IAEb,OAAO,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAA;AAC3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"storybook.d.ts","sourceRoot":"","sources":["../../src/commands/storybook.ts"],"names":[],"mappings":"AAMA,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,iBAsG5D"}
1
+ {"version":3,"file":"storybook.d.ts","sourceRoot":"","sources":["../../src/commands/storybook.ts"],"names":[],"mappings":"AAOA,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,iBAqF5D"}
@@ -3,24 +3,11 @@ import { createServer } from 'vite';
3
3
  import { discoverBlocks } from '../discoverBlocks.js';
4
4
  import { generateBlocksModule } from '../generateBlocksModule.js';
5
5
  import { blockPartyRoot, templatesDir, getViteResolveConfig, getVitePlugins } from '../viteConfig.js';
6
+ import { discoverBlocksAndGenerateModule } from './shared.js';
6
7
  export async function startStorybookServer(targetPath) {
7
8
  console.log('🎉 Starting Block Party...');
8
9
  console.log(`📂 Target path: ${targetPath}\n`);
9
- const blocks = await discoverBlocks(targetPath);
10
- if (blocks.length === 0) {
11
- console.error('❌ No Blocks found!');
12
- console.error('A Block should have an index.ts or index.tsx file with:');
13
- console.error(' - An exported Props interface');
14
- console.error(' - A default exported function component');
15
- process.exit(1);
16
- }
17
- console.log(`✅ Found ${blocks.length} Block(s):`);
18
- blocks.forEach(block => {
19
- console.log(` - ${block.name}`);
20
- });
21
- console.log();
22
- // Generate initial blocks module
23
- let blocksModule = await generateBlocksModule(blocks);
10
+ let blocksModule = await discoverBlocksAndGenerateModule(targetPath);
24
11
  // Resolve target path through symlinks for comparison
25
12
  const realTargetPath = realpathSync(targetPath);
26
13
  // Start Vite dev server
@@ -1 +1 @@
1
- {"version":3,"file":"storybook.js","sourceRoot":"","sources":["../../src/commands/storybook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storybook.js","sourceRoot":"","sources":["../../src/commands/storybook.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"discoverBlocks.d.ts","sourceRoot":"","sources":["../src/discoverBlocks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,kBAAkB,CAAA;AAE1E,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,cAAc,EAAE,CAAA;CAClC;AAmCD,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA4B7E"}
1
+ {"version":3,"file":"discoverBlocks.d.ts","sourceRoot":"","sources":["../src/discoverBlocks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,kBAAkB,CAAA;AAE1E,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,cAAc,EAAE,CAAA;CAClC;AAqCD,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAa7E"}
@@ -1,18 +1,21 @@
1
1
  import { existsSync } from 'fs';
2
2
  import { readdir, stat } from 'fs/promises';
3
- import { join, dirname, basename } from 'path';
3
+ import { join, dirname, basename, extname } from 'path';
4
4
  import { extractPropsFromFile } from './extractProps.js';
5
5
  import { parseReadmeMetadata } from './parseReadme.js';
6
6
  async function getBlockInfo(path) {
7
7
  let blockDir;
8
+ let blockName;
8
9
  let indexPath;
9
10
  const targetStat = await stat(path);
10
11
  if (targetStat.isFile()) {
11
12
  blockDir = dirname(path);
13
+ blockName = basename(path, extname(path));
12
14
  indexPath = path;
13
15
  }
14
16
  else {
15
17
  blockDir = path;
18
+ blockName = basename(blockDir);
16
19
  const indexTsPath = join(blockDir, 'index.ts');
17
20
  const indexTsxPath = join(blockDir, 'index.tsx');
18
21
  if (existsSync(indexTsxPath)) {
@@ -26,7 +29,6 @@ async function getBlockInfo(path) {
26
29
  }
27
30
  }
28
31
  const propDefinitions = await extractPropsFromFile(indexPath);
29
- const blockName = basename(blockDir);
30
32
  const metadata = await parseReadmeMetadata(blockDir);
31
33
  return {
32
34
  ...metadata,
@@ -42,22 +44,29 @@ export async function discoverBlocks(targetPath) {
42
44
  blocks.push(blockInfo);
43
45
  return blocks;
44
46
  }
45
- // Check subdirectories for Blocks
47
+ // Recursively check subdirectories for Blocks
48
+ await discoverBlocksRecursive(targetPath, blocks);
49
+ return blocks;
50
+ }
51
+ async function discoverBlocksRecursive(dirPath, blocks) {
46
52
  try {
47
- const entries = await readdir(targetPath, { withFileTypes: true });
53
+ const entries = await readdir(dirPath, { withFileTypes: true });
48
54
  for (const entry of entries) {
49
55
  if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules') {
50
- const dirPath = join(targetPath, entry.name);
51
- const blockInfo = await getBlockInfo(dirPath);
56
+ const entryPath = join(dirPath, entry.name);
57
+ const blockInfo = await getBlockInfo(entryPath);
52
58
  if (blockInfo) {
53
59
  blocks.push(blockInfo);
54
60
  }
61
+ else {
62
+ // If this directory is not a block, search its subdirectories
63
+ await discoverBlocksRecursive(entryPath, blocks);
64
+ }
55
65
  }
56
66
  }
57
67
  }
58
68
  catch (error) {
59
69
  console.error('Error reading directory:', error);
60
70
  }
61
- return blocks;
62
71
  }
63
72
  //# sourceMappingURL=discoverBlocks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discoverBlocks.js","sourceRoot":"","sources":["../src/discoverBlocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAuB,MAAM,mBAAmB,CAAA;AAC7E,OAAO,EAAsB,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAQ1E,KAAK,UAAU,YAAY,CAAC,IAAY;IACtC,IAAI,QAAgB,CAAA;IACpB,IAAI,SAAiB,CAAA;IAErB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;QACxB,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QACxB,SAAS,GAAG,IAAI,CAAA;IAClB,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,IAAI,CAAA;QAEf,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QAChD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,SAAS,GAAG,YAAY,CAAA;QAC1B,CAAC;aAAM,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,SAAS,GAAG,WAAW,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IACD,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAEpD,OAAO;QACL,GAAG,QAAQ;QACX,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,SAAS;QAChC,IAAI,EAAE,SAAS;QACf,eAAe;KAChB,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAkB;IACrD,MAAM,MAAM,GAAgB,EAAE,CAAA;IAE9B,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAA;IAChD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACtB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QAElE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACxF,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC5C,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAA;gBAE7C,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;IAClD,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"discoverBlocks.js","sourceRoot":"","sources":["../src/discoverBlocks.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { discoverBlocks, type BlockInfo } from './discoverBlocks.js';
2
2
  export { startStorybookServer } from './commands/storybook.js';
3
- export { buildStorybook } from './commands/build.js';
3
+ export { buildStorybook, buildBlocks } from './commands/build.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // Public API exports for BlockParty library
2
2
  export { discoverBlocks } from './discoverBlocks.js';
3
3
  export { startStorybookServer } from './commands/storybook.js';
4
- export { buildStorybook } from './commands/build.js';
4
+ export { buildStorybook, buildBlocks } from './commands/build.js';
5
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,OAAO,EAAE,cAAc,EAAkB,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,OAAO,EAAE,cAAc,EAAkB,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA"}
@@ -4,7 +4,7 @@ export interface BlockMetadata {
4
4
  /** The markdown content of the readme (not including frontmatter) */
5
5
  readme?: string;
6
6
  /** The metadata from the readme frontmatter */
7
- frontmatter?: Record<string, string>;
7
+ metadata?: Record<string, string>;
8
8
  }
9
9
  export declare function parseFrontmatter(content: string): {
10
10
  frontmatter: Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"parseReadme.d.ts","sourceRoot":"","sources":["../src/parseReadme.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAyB1G;AAGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAiCtE;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAgCjF"}
1
+ {"version":3,"file":"parseReadme.d.ts","sourceRoot":"","sources":["../src/parseReadme.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAyB1G;AAGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAiCtE;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAgCjF"}
@@ -72,7 +72,7 @@ export async function parseReadmeMetadata(dirPath) {
72
72
  name,
73
73
  description,
74
74
  readme: remainingContent,
75
- frontmatter
75
+ metadata: frontmatter
76
76
  };
77
77
  return result;
78
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parseReadme.js","sourceRoot":"","sources":["../src/parseReadme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseReadme.js","sourceRoot":"","sources":["../src/parseReadme.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blockparty",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Easy, zero-config, convention-based React components.",
5
5
  "repository": "github:chkn/blockparty",
6
6
  "type": "module",
@@ -48,7 +48,8 @@
48
48
  "devDependencies": {
49
49
  "@types/node": "^20.10.0",
50
50
  "@types/react": "^19.2.4",
51
- "@types/react-dom": "^19.2.3"
51
+ "@types/react-dom": "^19.2.3",
52
+ "type-fest": "^5.2.0"
52
53
  },
53
54
  "dependencies": {
54
55
  "@vitejs/plugin-react": "^4.2.0",