domma-js 0.10.0 → 0.10.1

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/bin/domma-cli.js CHANGED
@@ -33,6 +33,9 @@ switch (command) {
33
33
  case 'add':
34
34
  handleAdd();
35
35
  break;
36
+ case 'setup-ai':
37
+ handleSetupAI();
38
+ break;
36
39
  case 'version':
37
40
  case '--version':
38
41
  case '-v':
@@ -367,6 +370,97 @@ function showVersion() {
367
370
  /**
368
371
  * Show help information
369
372
  */
373
+ /**
374
+ * Handle AI assistance setup
375
+ */
376
+ async function handleSetupAI() {
377
+ const templatesDir = join(__dirname, '..', 'templates', 'kickstart');
378
+ const projectRoot = process.cwd();
379
+
380
+ console.log(`
381
+ ╔═══════════════════════════════════════╗
382
+ ║ Domma AI Assistance Setup ║
383
+ ╚═══════════════════════════════════════╝
384
+
385
+ This will copy AI assistance files to your project:
386
+ • CLAUDE.md - Framework reference guide
387
+ • .claude/ - Settings & code snippets
388
+ • blueprints/ - Reusable schemas (8 files)
389
+ • types/ - TypeScript definitions
390
+ `);
391
+
392
+ const rl = readline.createInterface({input, output});
393
+ const answer = await rl.question('Continue? (Y/n): ');
394
+ rl.close();
395
+
396
+ if (answer.toLowerCase() === 'n' || answer.toLowerCase() === 'no') {
397
+ console.log('\nSetup cancelled.');
398
+ return;
399
+ }
400
+
401
+ console.log('\nCopying files...\n');
402
+
403
+ try {
404
+ let copied = 0;
405
+
406
+ // Copy CLAUDE.md
407
+ const claudeMd = join(templatesDir, 'CLAUDE.md');
408
+ const destClaudeMd = join(projectRoot, 'CLAUDE.md');
409
+ if (existsSync(claudeMd) && !existsSync(destClaudeMd)) {
410
+ cpSync(claudeMd, destClaudeMd);
411
+ console.log(' ✓ Created CLAUDE.md');
412
+ copied++;
413
+ } else if (existsSync(destClaudeMd)) {
414
+ console.log(' ⊘ CLAUDE.md already exists');
415
+ }
416
+
417
+ // Copy .claude/ directory
418
+ const claudeDir = join(templatesDir, '.claude');
419
+ const destClaudeDir = join(projectRoot, '.claude');
420
+ if (existsSync(claudeDir) && !existsSync(destClaudeDir)) {
421
+ cpSync(claudeDir, destClaudeDir, { recursive: true });
422
+ console.log(' ✓ Created .claude/ directory');
423
+ copied++;
424
+ } else if (existsSync(destClaudeDir)) {
425
+ console.log(' ⊘ .claude/ already exists');
426
+ }
427
+
428
+ // Copy blueprints/ directory
429
+ const blueprintsDir = join(templatesDir, 'blueprints');
430
+ const destBlueprintsDir = join(projectRoot, 'blueprints');
431
+ if (existsSync(blueprintsDir) && !existsSync(destBlueprintsDir)) {
432
+ cpSync(blueprintsDir, destBlueprintsDir, { recursive: true });
433
+ console.log(' ✓ Created blueprints/ directory');
434
+ copied++;
435
+ } else if (existsSync(destBlueprintsDir)) {
436
+ console.log(' ⊘ blueprints/ already exists');
437
+ }
438
+
439
+ // Copy types/ directory
440
+ const typesDir = join(templatesDir, 'frontend', 'types');
441
+ const destTypesDir = join(projectRoot, 'types');
442
+ if (existsSync(typesDir) && !existsSync(destTypesDir)) {
443
+ cpSync(typesDir, destTypesDir, { recursive: true });
444
+ console.log(' ✓ Created types/ directory');
445
+ copied++;
446
+ } else if (existsSync(destTypesDir)) {
447
+ console.log(' ⊘ types/ already exists');
448
+ }
449
+
450
+ if (copied > 0) {
451
+ console.log(`\n✓ Successfully added ${copied} AI assistance ${copied === 1 ? 'file' : 'files'}!`);
452
+ console.log('Claude Code will now have full context for your Domma project.\n');
453
+ } else {
454
+ console.log('\nAll AI assistance files already exist. Nothing to copy.\n');
455
+ }
456
+
457
+ } catch (error) {
458
+ console.error('\n✗ Error copying AI assistance files:', error.message);
459
+ console.error('You can manually copy them from node_modules/domma-js/templates/kickstart/\n');
460
+ process.exit(1);
461
+ }
462
+ }
463
+
370
464
  function showHelp() {
371
465
  console.log(`
372
466
  Domma CLI v${VERSION} - Project scaffolding and management
@@ -375,6 +469,7 @@ Commands:
375
469
  npx domma-js Initialize a new Domma project
376
470
  npx domma-js init Initialize a new Domma project
377
471
  npx domma-js add page <path> Add a new page at specified path
472
+ npx domma-js setup-ai Add AI assistance files to existing project
378
473
  --quick Skip interactive prompts
379
474
 
380
475
  Options:
@@ -384,6 +479,7 @@ Options:
384
479
  Examples:
385
480
  npx domma-js # Interactive project setup
386
481
  npx domma-js --quick # Quick project setup with defaults
482
+ npx domma-js setup-ai # Add AI assistance to existing project
387
483
 
388
484
  # Add pages at different paths:
389
485
  npx domma-js add page admin # Root level (admin/)
@@ -0,0 +1,212 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Domma Postinstall Script
5
+ * Offers to copy AI assistance files to the project root
6
+ */
7
+
8
+ import { existsSync, mkdirSync, copyFileSync, readdirSync, statSync, readFileSync, writeFileSync } from 'fs';
9
+ import { join, dirname, resolve } from 'path';
10
+ import { fileURLToPath } from 'url';
11
+ import { createInterface } from 'readline';
12
+
13
+ const __filename = fileURLToPath(import.meta.url);
14
+ const __dirname = dirname(__filename);
15
+
16
+ // Color codes for terminal output
17
+ const colors = {
18
+ reset: '\x1b[0m',
19
+ bright: '\x1b[1m',
20
+ cyan: '\x1b[36m',
21
+ green: '\x1b[32m',
22
+ yellow: '\x1b[33m',
23
+ gray: '\x1b[90m'
24
+ };
25
+
26
+ /**
27
+ * Check if we're in a valid installation context
28
+ * - Should be installed as dependency (in node_modules)
29
+ * - Should not be in development mode (inside domma repo itself)
30
+ */
31
+ function shouldRunPostinstall() {
32
+ const cwd = process.cwd();
33
+
34
+ // Don't run during development in domma repo
35
+ if (existsSync(join(cwd, 'templates', 'kickstart'))) {
36
+ return false;
37
+ }
38
+
39
+ // Don't run in CI environments
40
+ if (process.env.CI || process.env.CONTINUOUS_INTEGRATION) {
41
+ return false;
42
+ }
43
+
44
+ // Check if we're in node_modules (normal install)
45
+ const isInNodeModules = cwd.includes('node_modules');
46
+
47
+ return isInNodeModules;
48
+ }
49
+
50
+ /**
51
+ * Find project root (directory with package.json, above node_modules)
52
+ */
53
+ function findProjectRoot() {
54
+ let currentDir = process.cwd();
55
+
56
+ // Navigate up to find the project root (outside node_modules)
57
+ while (currentDir.includes('node_modules')) {
58
+ currentDir = dirname(currentDir);
59
+ }
60
+
61
+ // Go up one more level to get to the actual project root
62
+ const projectRoot = dirname(currentDir);
63
+
64
+ // Verify it has package.json
65
+ if (existsSync(join(projectRoot, 'package.json'))) {
66
+ return projectRoot;
67
+ }
68
+
69
+ return null;
70
+ }
71
+
72
+ /**
73
+ * Get path to kickstart template in installed package
74
+ */
75
+ function getTemplatePath() {
76
+ // When installed via npm, templates are in node_modules/domma-js/templates/
77
+ const cwd = process.cwd();
78
+ return join(cwd, 'templates', 'kickstart');
79
+ }
80
+
81
+ /**
82
+ * Copy file recursively
83
+ */
84
+ function copyRecursive(src, dest) {
85
+ const stat = statSync(src);
86
+
87
+ if (stat.isDirectory()) {
88
+ if (!existsSync(dest)) {
89
+ mkdirSync(dest, { recursive: true });
90
+ }
91
+
92
+ const items = readdirSync(src);
93
+ for (const item of items) {
94
+ copyRecursive(join(src, item), join(dest, item));
95
+ }
96
+ } else {
97
+ copyFileSync(src, dest);
98
+ }
99
+ }
100
+
101
+ /**
102
+ * Prompt user for input
103
+ */
104
+ function prompt(question) {
105
+ const rl = createInterface({
106
+ input: process.stdin,
107
+ output: process.stdout
108
+ });
109
+
110
+ return new Promise((resolve) => {
111
+ rl.question(question, (answer) => {
112
+ rl.close();
113
+ resolve(answer.trim().toLowerCase());
114
+ });
115
+ });
116
+ }
117
+
118
+ /**
119
+ * Main postinstall function
120
+ */
121
+ async function main() {
122
+ // Check if we should run
123
+ if (!shouldRunPostinstall()) {
124
+ return;
125
+ }
126
+
127
+ const projectRoot = findProjectRoot();
128
+ if (!projectRoot) {
129
+ return;
130
+ }
131
+
132
+ const templatePath = getTemplatePath();
133
+ if (!existsSync(templatePath)) {
134
+ return;
135
+ }
136
+
137
+ console.log(`\n${colors.cyan}${colors.bright}╭───────────────────────────────────────────╮${colors.reset}`);
138
+ console.log(`${colors.cyan}${colors.bright}│${colors.reset} ${colors.bright}Domma AI Assistance Available${colors.reset} ${colors.cyan}${colors.bright}│${colors.reset}`);
139
+ console.log(`${colors.cyan}${colors.bright}╰───────────────────────────────────────────╯${colors.reset}\n`);
140
+
141
+ console.log(`${colors.gray}Domma includes AI assistance files for Claude Code:${colors.reset}`);
142
+ console.log(`${colors.gray} • CLAUDE.md - Framework reference guide${colors.reset}`);
143
+ console.log(`${colors.gray} • .claude/ - Settings & code snippets${colors.reset}`);
144
+ console.log(`${colors.gray} • blueprints/ - Reusable schemas (8 files)${colors.reset}`);
145
+ console.log(`${colors.gray} • types/ - TypeScript definitions${colors.reset}\n`);
146
+
147
+ const answer = await prompt(`${colors.bright}Copy AI assistance files to your project? (Y/n): ${colors.reset}`);
148
+
149
+ if (answer === 'n' || answer === 'no') {
150
+ console.log(`${colors.gray}Skipped. Run ${colors.bright}npx domma setup-ai${colors.gray} later to add these files.${colors.reset}\n`);
151
+ return;
152
+ }
153
+
154
+ console.log(`\n${colors.cyan}Copying AI assistance files...${colors.reset}\n`);
155
+
156
+ try {
157
+ let copied = 0;
158
+
159
+ // Copy CLAUDE.md
160
+ const claudeMd = join(templatePath, 'CLAUDE.md');
161
+ const destClaudeMd = join(projectRoot, 'CLAUDE.md');
162
+ if (existsSync(claudeMd) && !existsSync(destClaudeMd)) {
163
+ copyFileSync(claudeMd, destClaudeMd);
164
+ console.log(` ${colors.green}✓${colors.reset} Created CLAUDE.md`);
165
+ copied++;
166
+ }
167
+
168
+ // Copy .claude/ directory
169
+ const claudeDir = join(templatePath, '.claude');
170
+ const destClaudeDir = join(projectRoot, '.claude');
171
+ if (existsSync(claudeDir) && !existsSync(destClaudeDir)) {
172
+ copyRecursive(claudeDir, destClaudeDir);
173
+ console.log(` ${colors.green}✓${colors.reset} Created .claude/ directory`);
174
+ copied++;
175
+ }
176
+
177
+ // Copy blueprints/ directory
178
+ const blueprintsDir = join(templatePath, 'blueprints');
179
+ const destBlueprintsDir = join(projectRoot, 'blueprints');
180
+ if (existsSync(blueprintsDir) && !existsSync(destBlueprintsDir)) {
181
+ copyRecursive(blueprintsDir, destBlueprintsDir);
182
+ console.log(` ${colors.green}✓${colors.reset} Created blueprints/ directory`);
183
+ copied++;
184
+ }
185
+
186
+ // Copy types/ directory
187
+ const typesDir = join(templatePath, 'frontend', 'types');
188
+ const destTypesDir = join(projectRoot, 'types');
189
+ if (existsSync(typesDir) && !existsSync(destTypesDir)) {
190
+ copyRecursive(typesDir, destTypesDir);
191
+ console.log(` ${colors.green}✓${colors.reset} Created types/ directory`);
192
+ copied++;
193
+ }
194
+
195
+ if (copied > 0) {
196
+ console.log(`\n${colors.green}${colors.bright}✓ Successfully added AI assistance files!${colors.reset}`);
197
+ console.log(`${colors.gray}Claude Code will now have full context for your Domma project.${colors.reset}\n`);
198
+ } else {
199
+ console.log(`\n${colors.yellow}AI assistance files already exist. Skipped copying.${colors.reset}\n`);
200
+ }
201
+
202
+ } catch (error) {
203
+ console.error(`\n${colors.yellow}Warning: Could not copy AI assistance files${colors.reset}`);
204
+ console.error(`${colors.gray}You can manually copy them from node_modules/domma-js/templates/kickstart/${colors.reset}\n`);
205
+ }
206
+ }
207
+
208
+ // Run postinstall
209
+ main().catch(() => {
210
+ // Silent failure - don't break installation
211
+ process.exit(0);
212
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "domma-js",
3
- "version": "0.10.0",
3
+ "version": "0.10.1",
4
4
  "description": "Dynamic Object Manipulation & Modeling API - A complete front-end toolkit.",
5
5
  "main": "public/dist/domma.min.js",
6
6
  "module": "public/dist/domma.esm.js",
@@ -30,6 +30,7 @@
30
30
  },
31
31
  "type": "module",
32
32
  "scripts": {
33
+ "postinstall": "node bin/postinstall.js",
33
34
  "dev": "NODE_ENV=development npm run generate:bundles && rollup -c && node scripts/build-info.js && npm run build:metadata && npm run copy:themes && npm run build:css && npm run build:miniapps && live-server public --port=3001 --open=/index.html",
34
35
  "build": "npm run generate:bundles && rollup -c && node scripts/build-info.js && npm run build:metadata && npm run copy:themes && npm run build:css && npm run build:css-bundles && npm run build:archives && npm run build:kickstart && npm run build:miniapps",
35
36
  "build:js": "rollup -c",
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Complete CSS Bundle v0.10.0
2
+ * Domma Complete CSS Bundle v0.10.1
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-01-23T16:46:59.810Z
5
+ * Built: 2026-01-23T17:27:40.953Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.10.0
14
+ * Domma Core CSS v0.10.1
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-01-23T16:46:59.402Z
18
- * Commit: e2a2ded
17
+ * Built: 2026-01-23T17:27:40.633Z
18
+ * Commit: bab2e88
19
19
  */
20
20
 
21
21
  /**
@@ -4016,11 +4016,11 @@ body.dm-cloaked.dm-ready {
4016
4016
  ============================================ */
4017
4017
 
4018
4018
  /*!
4019
- * Domma Grid CSS v0.10.0
4019
+ * Domma Grid CSS v0.10.1
4020
4020
  * Dynamic Object Manipulation & Modeling API
4021
4021
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4022
- * Built: 2026-01-23T16:46:59.410Z
4023
- * Commit: e2a2ded
4022
+ * Built: 2026-01-23T17:27:40.639Z
4023
+ * Commit: bab2e88
4024
4024
  */
4025
4025
 
4026
4026
  /**
@@ -4617,11 +4617,11 @@ body.dm-cloaked.dm-ready {
4617
4617
  ============================================ */
4618
4618
 
4619
4619
  /*!
4620
- * Domma Elements CSS v0.10.0
4620
+ * Domma Elements CSS v0.10.1
4621
4621
  * Dynamic Object Manipulation & Modeling API
4622
4622
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4623
- * Built: 2026-01-23T16:46:59.420Z
4624
- * Commit: e2a2ded
4623
+ * Built: 2026-01-23T17:27:40.647Z
4624
+ * Commit: bab2e88
4625
4625
  */
4626
4626
 
4627
4627
  /**
@@ -11187,11 +11187,11 @@ code {
11187
11187
  ============================================ */
11188
11188
 
11189
11189
  /*!
11190
- * Domma Themes v0.10.0
11190
+ * Domma Themes v0.10.1
11191
11191
  * Dynamic Object Manipulation & Modeling API
11192
11192
  * (c) 2026 Darryl Waterhouse & DCBW-IT
11193
- * Built: 2026-01-23T16:46:59.375Z
11194
- * Commit: e2a2ded
11193
+ * Built: 2026-01-23T17:27:40.609Z
11194
+ * Commit: bab2e88
11195
11195
  */
11196
11196
 
11197
11197
  /**
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Data-Focused CSS Bundle v0.10.0
2
+ * Domma Data-Focused CSS Bundle v0.10.1
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-01-23T16:46:59.796Z
5
+ * Built: 2026-01-23T17:27:40.944Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -230,11 +230,11 @@
230
230
  ============================================ */
231
231
 
232
232
  /*!
233
- * Domma Core CSS v0.10.0
233
+ * Domma Core CSS v0.10.1
234
234
  * Dynamic Object Manipulation & Modeling API
235
235
  * (c) 2026 Darryl Waterhouse & DCBW-IT
236
- * Built: 2026-01-23T16:46:59.402Z
237
- * Commit: e2a2ded
236
+ * Built: 2026-01-23T17:27:40.633Z
237
+ * Commit: bab2e88
238
238
  */
239
239
 
240
240
  /**
@@ -4235,11 +4235,11 @@ body.dm-cloaked.dm-ready {
4235
4235
  ============================================ */
4236
4236
 
4237
4237
  /*!
4238
- * Domma Grid CSS v0.10.0
4238
+ * Domma Grid CSS v0.10.1
4239
4239
  * Dynamic Object Manipulation & Modeling API
4240
4240
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4241
- * Built: 2026-01-23T16:46:59.410Z
4242
- * Commit: e2a2ded
4241
+ * Built: 2026-01-23T17:27:40.639Z
4242
+ * Commit: bab2e88
4243
4243
  */
4244
4244
 
4245
4245
  /**
@@ -4836,11 +4836,11 @@ body.dm-cloaked.dm-ready {
4836
4836
  ============================================ */
4837
4837
 
4838
4838
  /*!
4839
- * Domma Elements CSS v0.10.0
4839
+ * Domma Elements CSS v0.10.1
4840
4840
  * Dynamic Object Manipulation & Modeling API
4841
4841
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4842
- * Built: 2026-01-23T16:46:59.420Z
4843
- * Commit: e2a2ded
4842
+ * Built: 2026-01-23T17:27:40.647Z
4843
+ * Commit: bab2e88
4844
4844
  */
4845
4845
 
4846
4846
  /**
@@ -11406,11 +11406,11 @@ code {
11406
11406
  ============================================ */
11407
11407
 
11408
11408
  /*!
11409
- * Domma Themes v0.10.0
11409
+ * Domma Themes v0.10.1
11410
11410
  * Dynamic Object Manipulation & Modeling API
11411
11411
  * (c) 2026 Darryl Waterhouse & DCBW-IT
11412
- * Built: 2026-01-23T16:46:59.375Z
11413
- * Commit: e2a2ded
11412
+ * Built: 2026-01-23T17:27:40.609Z
11413
+ * Commit: bab2e88
11414
11414
  */
11415
11415
 
11416
11416
  /**
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Essentials CSS Bundle v0.10.0
2
+ * Domma Essentials CSS Bundle v0.10.1
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-01-23T16:46:59.771Z
5
+ * Built: 2026-01-23T17:27:40.933Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -230,11 +230,11 @@
230
230
  ============================================ */
231
231
 
232
232
  /*!
233
- * Domma Core CSS v0.10.0
233
+ * Domma Core CSS v0.10.1
234
234
  * Dynamic Object Manipulation & Modeling API
235
235
  * (c) 2026 Darryl Waterhouse & DCBW-IT
236
- * Built: 2026-01-23T16:46:59.402Z
237
- * Commit: e2a2ded
236
+ * Built: 2026-01-23T17:27:40.633Z
237
+ * Commit: bab2e88
238
238
  */
239
239
 
240
240
  /**
@@ -4235,11 +4235,11 @@ body.dm-cloaked.dm-ready {
4235
4235
  ============================================ */
4236
4236
 
4237
4237
  /*!
4238
- * Domma Grid CSS v0.10.0
4238
+ * Domma Grid CSS v0.10.1
4239
4239
  * Dynamic Object Manipulation & Modeling API
4240
4240
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4241
- * Built: 2026-01-23T16:46:59.410Z
4242
- * Commit: e2a2ded
4241
+ * Built: 2026-01-23T17:27:40.639Z
4242
+ * Commit: bab2e88
4243
4243
  */
4244
4244
 
4245
4245
  /**
@@ -4836,11 +4836,11 @@ body.dm-cloaked.dm-ready {
4836
4836
  ============================================ */
4837
4837
 
4838
4838
  /*!
4839
- * Domma Elements CSS v0.10.0
4839
+ * Domma Elements CSS v0.10.1
4840
4840
  * Dynamic Object Manipulation & Modeling API
4841
4841
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4842
- * Built: 2026-01-23T16:46:59.420Z
4843
- * Commit: e2a2ded
4842
+ * Built: 2026-01-23T17:27:40.647Z
4843
+ * Commit: bab2e88
4844
4844
  */
4845
4845
 
4846
4846
  /**
@@ -11406,11 +11406,11 @@ code {
11406
11406
  ============================================ */
11407
11407
 
11408
11408
  /*!
11409
- * Domma Themes v0.10.0
11409
+ * Domma Themes v0.10.1
11410
11410
  * Dynamic Object Manipulation & Modeling API
11411
11411
  * (c) 2026 Darryl Waterhouse & DCBW-IT
11412
- * Built: 2026-01-23T16:46:59.375Z
11413
- * Commit: e2a2ded
11412
+ * Built: 2026-01-23T17:27:40.609Z
11413
+ * Commit: bab2e88
11414
11414
  */
11415
11415
 
11416
11416
  /**
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Full CSS Bundle v0.10.0
2
+ * Domma Full CSS Bundle v0.10.1
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-01-23T16:46:59.781Z
5
+ * Built: 2026-01-23T17:27:40.939Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -230,11 +230,11 @@
230
230
  ============================================ */
231
231
 
232
232
  /*!
233
- * Domma Core CSS v0.10.0
233
+ * Domma Core CSS v0.10.1
234
234
  * Dynamic Object Manipulation & Modeling API
235
235
  * (c) 2026 Darryl Waterhouse & DCBW-IT
236
- * Built: 2026-01-23T16:46:59.402Z
237
- * Commit: e2a2ded
236
+ * Built: 2026-01-23T17:27:40.633Z
237
+ * Commit: bab2e88
238
238
  */
239
239
 
240
240
  /**
@@ -4235,11 +4235,11 @@ body.dm-cloaked.dm-ready {
4235
4235
  ============================================ */
4236
4236
 
4237
4237
  /*!
4238
- * Domma Grid CSS v0.10.0
4238
+ * Domma Grid CSS v0.10.1
4239
4239
  * Dynamic Object Manipulation & Modeling API
4240
4240
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4241
- * Built: 2026-01-23T16:46:59.410Z
4242
- * Commit: e2a2ded
4241
+ * Built: 2026-01-23T17:27:40.639Z
4242
+ * Commit: bab2e88
4243
4243
  */
4244
4244
 
4245
4245
  /**
@@ -4836,11 +4836,11 @@ body.dm-cloaked.dm-ready {
4836
4836
  ============================================ */
4837
4837
 
4838
4838
  /*!
4839
- * Domma Elements CSS v0.10.0
4839
+ * Domma Elements CSS v0.10.1
4840
4840
  * Dynamic Object Manipulation & Modeling API
4841
4841
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4842
- * Built: 2026-01-23T16:46:59.420Z
4843
- * Commit: e2a2ded
4842
+ * Built: 2026-01-23T17:27:40.647Z
4843
+ * Commit: bab2e88
4844
4844
  */
4845
4845
 
4846
4846
  /**
@@ -11406,11 +11406,11 @@ code {
11406
11406
  ============================================ */
11407
11407
 
11408
11408
  /*!
11409
- * Domma Themes v0.10.0
11409
+ * Domma Themes v0.10.1
11410
11410
  * Dynamic Object Manipulation & Modeling API
11411
11411
  * (c) 2026 Darryl Waterhouse & DCBW-IT
11412
- * Built: 2026-01-23T16:46:59.375Z
11413
- * Commit: e2a2ded
11412
+ * Built: 2026-01-23T17:27:40.609Z
11413
+ * Commit: bab2e88
11414
11414
  */
11415
11415
 
11416
11416
  /**