@polyhedral/cli 0.1.0-beta.4 → 0.1.0-beta.5

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
@@ -59,9 +59,38 @@ polyhedral push -f # Skip confirmation prompt
59
59
 
60
60
  Commands that modify data (`push`, `pull`, `delete`) prompt for confirmation. Use `--force` / `-f` to skip, or `--json` which implies `--force`.
61
61
 
62
+ ## Build Types
63
+
64
+ The CLI supports two build types, chosen during `polyhedral init`:
65
+
66
+ ### In-App (default)
67
+
68
+ Templates are JSX files using the Polyhedral component library (`Sheet`, `Section`, `EditableText`, etc.). The platform compiles and renders them for you. Validation runs offline via Babel before each push.
69
+
70
+ ```bash
71
+ polyhedral init my-sheet # select "In-App"
72
+ ```
73
+
74
+ ### External
75
+
76
+ For pre-built templates — plain HTML/JS, or output from a bundler like Vite or webpack. You control the full HTML document; the Polyhedral SDK scripts are automatically injected into `<head>` at render time.
77
+
78
+ JSX validation is skipped for external builds since the file isn't JSX. You'll see a "Skipping JSX validation (external build)" message during `push`, `dev`, and `validate`.
79
+
80
+ ```bash
81
+ polyhedral init my-sheet # select "External"
82
+ ```
83
+
84
+ Use external when you want to:
85
+
86
+ - Use a framework like React, Vue, or Svelte with your own build step
87
+ - Write plain HTML/CSS/JS without JSX
88
+ - Bundle with Vite, webpack, or another tool
89
+ - Have full control over the document structure
90
+
62
91
  ## How It Works
63
92
 
64
- Templates are JSX files using the Polyhedral SDK component library. The CLI wraps the [REST API](https://polyhedral.co/developers/api) to manage templates from the terminal.
93
+ Templates are JSX files (in-app) or HTML files (external) using the Polyhedral SDK. The CLI wraps the [REST API](https://polyhedral.co/developers/api) to manage templates from the terminal.
65
94
 
66
95
  The `dev` command is the main workflow: it pushes your template, opens the preview page, and watches for file changes (including `polyhedral.json`). When you save, it validates locally and pushes automatically. The preview page uses realtime subscriptions, so it updates without a manual refresh.
67
96
 
@@ -65,6 +65,9 @@ async function initialPush(config, client, manifest, filePath) {
65
65
  return undefined;
66
66
  }
67
67
  }
68
+ else {
69
+ console.log('Skipping JSX validation (external build).');
70
+ }
68
71
  const data = buildTemplatePayload(manifest, code);
69
72
  let templateId = manifest.templateId;
70
73
  if (templateId) {
@@ -91,6 +94,9 @@ async function pushOnChange(client, manifest, filePath) {
91
94
  return;
92
95
  }
93
96
  }
97
+ else {
98
+ console.log(`[${timestamp}] Skipping JSX validation (external build).`);
99
+ }
94
100
  const data = buildTemplatePayload(manifest, code);
95
101
  await client.updateTemplate(manifest.templateId, data);
96
102
  console.log(`[${timestamp}] Pushed.`);
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AASA,wBAAsB,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyD7D"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAUA,wBAAsB,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyE7D"}
@@ -3,6 +3,7 @@ import { join, dirname, resolve, basename } from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
4
  import { saveManifest } from '../lib/manifest.js';
5
5
  import { isJsonMode, jsonOutput, log } from '../lib/output.js';
6
+ import { choose } from '../lib/prompt.js';
6
7
  const __dirname = dirname(fileURLToPath(import.meta.url));
7
8
  export async function initCommand(dir) {
8
9
  const targetDir = dir ? resolve(dir) : process.cwd();
@@ -16,17 +17,27 @@ export async function initCommand(dir) {
16
17
  }
17
18
  await mkdir(targetDir, { recursive: true });
18
19
  const name = dir ? basename(resolve(dir)) : 'my-sheet';
20
+ const buildType = await choose('Build type:', [
21
+ { label: 'In-App — JSX with the Polyhedral component library', value: 'in-app' },
22
+ {
23
+ label: 'External — pre-built HTML/JS (Vite, webpack, plain HTML, etc.)',
24
+ value: 'external',
25
+ },
26
+ ], 'in-app');
27
+ const isExternal = buildType === 'external';
28
+ const templateFile = isExternal ? './sheet.html' : './sheet.jsx';
29
+ const templateFilename = isExternal ? 'sheet.html' : 'sheet.jsx';
19
30
  const manifest = {
20
31
  name,
21
- file: './sheet.jsx',
22
- buildType: 'in-app',
32
+ file: templateFile,
33
+ buildType,
23
34
  description: '',
24
35
  fieldSchema: [],
25
36
  nameField: 'name',
26
37
  };
27
38
  await saveManifest(manifest, targetDir);
28
- const templateSrc = join(__dirname, '..', '..', 'templates', 'sheet.jsx');
29
- const templateDest = join(targetDir, 'sheet.jsx');
39
+ const templateSrc = join(__dirname, '..', '..', 'templates', templateFilename);
40
+ const templateDest = join(targetDir, templateFilename);
30
41
  await copyFile(templateSrc, templateDest);
31
42
  // Handle .gitignore
32
43
  const gitignorePath = join(targetDir, '.gitignore');
@@ -40,18 +51,18 @@ export async function initCommand(dir) {
40
51
  await writeFile(gitignorePath, 'node_modules/\n', 'utf-8');
41
52
  }
42
53
  if (isJsonMode()) {
43
- jsonOutput({ dir: targetDir, name, file: './sheet.jsx' });
54
+ jsonOutput({ dir: targetDir, name, file: templateFile, buildType });
44
55
  return;
45
56
  }
46
57
  console.log(`Initialized polyhedral project in ${targetDir}`);
47
58
  console.log('');
48
59
  console.log('Files created:');
49
60
  console.log(' polyhedral.json — project manifest');
50
- console.log(' sheet.jsx — starter template');
61
+ console.log(` ${templateFilename.padEnd(15)}— starter template`);
51
62
  console.log(' .gitignore — git ignore rules');
52
63
  console.log('');
53
64
  console.log('Next steps:');
54
- console.log(' 1. Edit sheet.jsx in your editor');
65
+ console.log(` 1. Edit ${templateFilename} in your editor`);
55
66
  console.log(' 2. Run `polyhedral push` to upload');
56
67
  console.log(' 3. Run `polyhedral dev` for live preview');
57
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC/E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAG9D,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAEzD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAY;IAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;IAEpD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAA;QAChD,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;QAClE,OAAM;IACR,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;IAED,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAE3C,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;IAEtD,MAAM,QAAQ,GAAa;QACzB,IAAI;QACJ,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,MAAM;KAClB,CAAA;IAED,MAAM,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IAEvC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;IACzE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IACjD,MAAM,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;IAEzC,oBAAoB;IACpB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;IACnD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QACvD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,+DAA+D,CAAC,CAAA;QACtE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,SAAS,CAAC,aAAa,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAC5D,CAAC;IAED,IAAI,UAAU,EAAE,EAAE,CAAC;QACjB,UAAU,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;QACzD,OAAM;IACR,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qCAAqC,SAAS,EAAE,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAC7B,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAA;IACpD,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAA;IACpD,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAA;IACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAC1B,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;IACjD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAA;IACnD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAA;AAC3D,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAYA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAeD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA6ErE"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAYA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAeD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+ErE"}
@@ -40,6 +40,9 @@ export async function pushCommand(options) {
40
40
  process.exit(1);
41
41
  }
42
42
  }
43
+ else {
44
+ log('Skipping JSX validation (external build).');
45
+ }
43
46
  const bump = resolveBump(options);
44
47
  if (bump === 'major' && !options.changelog) {
45
48
  if (isJsonMode()) {
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,6 @@
1
1
  export declare function confirm(message: string): Promise<boolean>;
2
+ export declare function choose<T extends string>(message: string, options: {
3
+ label: string;
4
+ value: T;
5
+ }[], defaultValue: T): Promise<T>;
2
6
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/lib/prompt.ts"],"names":[],"mappings":"AAIA,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAU/D"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/lib/prompt.ts"],"names":[],"mappings":"AAIA,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAU/D;AAED,wBAAsB,MAAM,CAAC,CAAC,SAAS,MAAM,EAC3C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,EAAE,EACtC,YAAY,EAAE,CAAC,GACd,OAAO,CAAC,CAAC,CAAC,CAmBZ"}
@@ -13,4 +13,25 @@ export async function confirm(message) {
13
13
  rl.close();
14
14
  }
15
15
  }
16
+ export async function choose(message, options, defaultValue) {
17
+ if (isJsonMode())
18
+ return defaultValue;
19
+ const rl = createInterface({ input: stdin, output: stdout });
20
+ try {
21
+ console.log(message);
22
+ for (let i = 0; i < options.length; i++) {
23
+ const marker = options[i].value === defaultValue ? ' (default)' : '';
24
+ console.log(` ${i + 1}) ${options[i].label}${marker}`);
25
+ }
26
+ const answer = await rl.question(`Choose [1-${options.length}]: `);
27
+ const index = parseInt(answer.trim(), 10) - 1;
28
+ if (index >= 0 && index < options.length) {
29
+ return options[index].value;
30
+ }
31
+ return defaultValue;
32
+ }
33
+ finally {
34
+ rl.close();
35
+ }
36
+ }
16
37
  //# sourceMappingURL=prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/lib/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAe;IAC3C,IAAI,UAAU,EAAE;QAAE,OAAO,IAAI,CAAA;IAE7B,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC5D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACzC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAA;IAC5C,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/lib/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAe;IAC3C,IAAI,UAAU,EAAE;QAAE,OAAO,IAAI,CAAA;IAE7B,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC5D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACzC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAA;IAC5C,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,OAAe,EACf,OAAsC,EACtC,YAAe;IAEf,IAAI,UAAU,EAAE;QAAE,OAAO,YAAY,CAAA;IAErC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC5D,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;YACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,OAAO,CAAC,MAAM,KAAK,CAAC,CAAA;QAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;QAC7C,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAA;QAC7B,CAAC;QACD,OAAO,YAAY,CAAA;IACrB,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polyhedral/cli",
3
- "version": "0.1.0-beta.4",
3
+ "version": "0.1.0-beta.5",
4
4
  "description": "CLI tool for local Polyhedral custom sheet template development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,108 @@
1
+ <!--
2
+ Polyhedral External Sheet Template
3
+
4
+ This file is served inside an iframe. The Polyhedral SDK scripts are
5
+ automatically injected into <head> — you don't need to add them yourself.
6
+
7
+ Available globals (provided by the SDK):
8
+ Polyhedral.getField(name) — read a field value
9
+ Polyhedral.setField(name, value) — write a field value
10
+ Polyhedral.onFieldChange(cb) — subscribe to field updates
11
+ Polyhedral.fields — current field data object
12
+
13
+ You can use any framework or none at all. Build with Vite, webpack,
14
+ or write plain HTML/JS like this starter file.
15
+ -->
16
+ <!DOCTYPE html>
17
+ <html lang="en">
18
+ <head>
19
+ <meta charset="UTF-8" />
20
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
21
+ <style>
22
+ body {
23
+ font-family: system-ui, -apple-system, sans-serif;
24
+ margin: 0;
25
+ padding: 16px;
26
+ color: #e4e4e7;
27
+ background: transparent;
28
+ }
29
+
30
+ h1 {
31
+ font-size: 1.25rem;
32
+ font-weight: 600;
33
+ margin: 0 0 16px;
34
+ }
35
+
36
+ label {
37
+ display: block;
38
+ font-size: 0.75rem;
39
+ font-weight: 500;
40
+ text-transform: uppercase;
41
+ letter-spacing: 0.05em;
42
+ color: #a1a1aa;
43
+ margin-bottom: 4px;
44
+ }
45
+
46
+ input {
47
+ width: 100%;
48
+ padding: 6px 8px;
49
+ border: 1px solid #3f3f46;
50
+ border-radius: 6px;
51
+ background: #18181b;
52
+ color: #e4e4e7;
53
+ font-size: 0.875rem;
54
+ box-sizing: border-box;
55
+ }
56
+
57
+ .field {
58
+ margin-bottom: 12px;
59
+ }
60
+ </style>
61
+ </head>
62
+ <body>
63
+ <h1 id="title">Character Sheet</h1>
64
+
65
+ <div class="field">
66
+ <label for="name">Character Name</label>
67
+ <input id="name" type="text" placeholder="Enter name..." />
68
+ </div>
69
+
70
+ <div class="field">
71
+ <label for="notes">Notes</label>
72
+ <input id="notes" type="text" placeholder="Enter notes..." />
73
+ </div>
74
+
75
+ <script>
76
+ // Wait for the SDK to be ready, then bind fields to inputs
77
+ function init() {
78
+ var nameInput = document.getElementById('name')
79
+ var notesInput = document.getElementById('notes')
80
+
81
+ // Load initial values
82
+ nameInput.value = Polyhedral.getField('name') || ''
83
+ notesInput.value = Polyhedral.getField('notes') || ''
84
+
85
+ // Save on input
86
+ nameInput.addEventListener('input', function () {
87
+ Polyhedral.setField('name', nameInput.value)
88
+ })
89
+ notesInput.addEventListener('input', function () {
90
+ Polyhedral.setField('notes', notesInput.value)
91
+ })
92
+
93
+ // React to external changes
94
+ Polyhedral.onFieldChange(function (fields) {
95
+ if (fields.name !== undefined) nameInput.value = fields.name
96
+ if (fields.notes !== undefined) notesInput.value = fields.notes
97
+ })
98
+ }
99
+
100
+ // The SDK sets Polyhedral.ready when it's available
101
+ if (window.Polyhedral) {
102
+ init()
103
+ } else {
104
+ window.addEventListener('polyhedral:ready', init)
105
+ }
106
+ </script>
107
+ </body>
108
+ </html>