domma-js 0.51.7 → 0.51.9

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
@@ -1170,15 +1170,6 @@ Real-world, production-ready applications built with Domma.
1170
1170
 
1171
1171
  🚀 **[Explore All MiniApps](https://dommajs.org/miniapps/)** - Try them live!
1172
1172
 
1173
- ### My Garage
1174
-
1175
- Vehicle management system with DVLA integration for UK registration lookups.
1176
-
1177
- - Look up any UK vehicle by registration number
1178
- - Display MOT and tax status
1179
- - Save vehicle history with Domma.storage
1180
- - **Try it:** [My Garage Live](https://dommajs.org/miniapps/garage/)
1181
-
1182
1173
  ### Domma Docs
1183
1174
 
1184
1175
  Powerful document editor with rich text formatting and export capabilities.
@@ -1189,22 +1180,6 @@ Powerful document editor with rich text formatting and export capabilities.
1189
1180
  - Auto-save with Domma.storage
1190
1181
  - **Try it:** [Domma Docs Live](https://dommajs.org/miniapps/docs/)
1191
1182
 
1192
- ### Address Lookup
1193
-
1194
- UK postcode and address finder.
1195
-
1196
- - Search by postcode, pick from the matching addresses
1197
- - Results cached client-side with Domma.storage
1198
- - **Try it:** [Address Lookup Live](https://dommajs.org/miniapps/address/)
1199
-
1200
- ### Nexus
1201
-
1202
- Contact management and collaboration platform.
1203
-
1204
- - Contact tracking and organisation
1205
- - Team collaboration tools
1206
- - **Try it:** [Nexus Live](https://dommajs.org/miniapps/nexus/)
1207
-
1208
1183
  ## Documentation
1209
1184
 
1210
1185
  ### For Claude Code Development
@@ -1266,7 +1241,7 @@ npm run validate:showcase # load all 87 showcase pages in jsdom
1266
1241
 
1267
1242
  ```bash
1268
1243
  npm run build:miniapps # Build all miniapps
1269
- npm run build:miniapp:garage # Build specific miniapp
1244
+ node scripts/build-miniapp.js docs # Build one miniapp
1270
1245
  NODE_ENV=production npm run build # Production build
1271
1246
  ```
1272
1247
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "domma-js",
3
- "version": "0.51.7",
3
+ "version": "0.51.9",
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",
@@ -61,8 +61,6 @@
61
61
  "build:metadata": "node scripts/copy-metadata.js",
62
62
  "copy:themes": "node scripts/copy-theme-css.js",
63
63
  "build:miniapps": "node scripts/build-miniapp.js && node scripts/copy-miniapps.js",
64
- "build:miniapp:garage": "node scripts/build-miniapp.js garage",
65
- "build:miniapp:address": "node scripts/build-miniapp.js address",
66
64
  "watch:miniapps": "node scripts/watch-miniapps.js",
67
65
  "generate:bundles": "node scripts/generate-bundles.js",
68
66
  "generate:themes": "node scripts/generate-admin-themes.js",
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Complete CSS Bundle v0.51.7
2
+ * Domma Complete CSS Bundle v0.51.9
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-09T11:57:50.307Z
5
+ * Built: 2026-10-11T10:11:06.027Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.51.7
14
+ * Domma Core CSS v0.51.9
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-10-09T11:57:50.118Z
18
- * Commit: a5d495a
17
+ * Built: 2026-10-11T10:11:05.843Z
18
+ * Commit: c708495
19
19
  */
20
20
 
21
21
  /**
@@ -3499,126 +3499,96 @@ code, pre {
3499
3499
  /* Scribe Effect Keyframes */
3500
3500
 
3501
3501
  @keyframes dm-scribe-cursor-blink {
3502
- 0%, 100% {
3503
- opacity: 1;
3504
- }
3505
- 50% {
3506
- opacity: 0;
3507
- }
3502
+ 0%, 45%, 100% { opacity: 1; }
3503
+ 55%, 90% { opacity: 0; }
3508
3504
  }
3509
3505
 
3510
3506
  @keyframes dm-scribe-fade {
3511
- from {
3512
- opacity: 0;
3513
- transform: translateZ(0);
3514
- }
3515
- to {
3516
- opacity: 1;
3517
- transform: translateZ(0);
3518
- }
3507
+ from { opacity: 0; }
3508
+ to { opacity: 1; }
3519
3509
  }
3520
3510
 
3521
3511
  @keyframes dm-scribe-bounce {
3522
- 0% {
3523
- opacity: 0;
3524
- transform: translateY(-8px) translateZ(0);
3525
- }
3526
- 60% {
3527
- opacity: 1;
3528
- transform: translateY(2px) translateZ(0);
3529
- }
3530
- 80% {
3531
- transform: translateY(-1px) translateZ(0);
3532
- }
3533
- 100% {
3534
- opacity: 1;
3535
- transform: translateY(0) translateZ(0);
3536
- }
3512
+ 0% { opacity: 0; transform: translateY(-0.3em); }
3513
+ 60% { opacity: 1; transform: translateY(0.06em); }
3514
+ 80% { transform: translateY(-0.025em); }
3515
+ 100% { opacity: 1; transform: translateY(0); }
3537
3516
  }
3538
3517
 
3539
3518
  @keyframes dm-scribe-glow {
3540
- 0% {
3541
- opacity: 0;
3542
- transform: scale(0.8) translateZ(0);
3543
- filter: brightness(1);
3544
- }
3545
- 50% {
3546
- opacity: 1;
3547
- transform: scale(1.1) translateZ(0);
3548
- filter: brightness(1.5);
3549
- }
3550
- 100% {
3551
- opacity: 1;
3552
- transform: scale(1) translateZ(0);
3553
- filter: brightness(1);
3554
- }
3519
+ 0% { opacity: 0; text-shadow: 0 0 0.6em currentColor; }
3520
+ 40% { opacity: 1; text-shadow: 0 0 0.35em currentColor; }
3521
+ 100% { opacity: 1; text-shadow: 0 0 0 transparent; }
3555
3522
  }
3556
3523
 
3557
- /* Scribe Classes */
3558
-
3559
3524
  .dm-scribe-cursor {
3560
- display: inline;
3525
+ display: inline-block;
3561
3526
  white-space: pre;
3562
- font-weight: 600;
3563
- margin-left: 2px;
3564
- vertical-align: 0.08em;
3565
- animation: dm-scribe-cursor-blink 1s ease-in-out infinite;
3527
+ margin-left: 0.04em;
3528
+ vertical-align: baseline;
3529
+ animation: dm-scribe-cursor-blink 1.1s ease-in-out infinite;
3566
3530
  }
3567
3531
 
3568
- .dm-scribe-cursor.dm-scribe-cursor-no-blink {
3532
+ .dm-scribe-cursor.dm-scribe-cursor-no-blink,
3533
+ .dm-scribe-cursor.dm-scribe-cursor-active {
3569
3534
  animation: none;
3570
3535
  opacity: 1;
3571
3536
  }
3572
3537
 
3573
- /* Cursor Types */
3574
- .dm-scribe-cursor-caret {
3575
- /* Default - thin vertical line */
3576
- }
3577
-
3578
3538
  .dm-scribe-cursor-block {
3579
- padding: 0;
3580
3539
  background: currentColor;
3581
- color: var(--dm-background, #fff);
3582
- opacity: 0.8;
3583
3540
  font-size: 0.7em;
3584
- line-height: 0.9;
3585
- }
3586
-
3587
- .dm-scribe-cursor-block.dm-scribe-cursor-no-blink {
3588
- opacity: 0.6;
3541
+ line-height: 1;
3589
3542
  }
3590
3543
 
3591
3544
  .dm-scribe-cursor-underline {
3592
- border-bottom: 2px solid currentColor;
3593
- padding: 0;
3545
+ border-bottom: 0.08em solid currentColor;
3594
3546
  min-width: 0.5em;
3547
+ line-height: 1;
3595
3548
  }
3596
3549
 
3597
- /* Unit base styling (shared across modes) */
3550
+ /* Transformable units inherit the surrounding typography. Sentences stay
3551
+ inline so long passages can wrap within narrow containers. */
3598
3552
  .dm-scribe-char,
3599
- .dm-scribe-word,
3553
+ .dm-scribe-word {
3554
+ display: inline-block;
3555
+ white-space: pre-wrap;
3556
+ vertical-align: baseline;
3557
+ }
3558
+
3600
3559
  .dm-scribe-sentence {
3601
3560
  display: inline;
3602
- white-space: pre;
3603
- font-weight: 600;
3604
- will-change: transform, opacity;
3605
- backface-visibility: hidden;
3606
- -webkit-font-smoothing: antialiased;
3607
- -moz-osx-font-smoothing: grayscale;
3608
- transform: translateZ(0);
3561
+ white-space: pre-wrap;
3562
+ }
3563
+
3564
+ .dm-scribe-space {
3565
+ display: inline;
3566
+ }
3567
+
3568
+ .dm-scribe-sentence.dm-scribe-transform-unit {
3569
+ display: inline-block;
3570
+ max-width: 100%;
3609
3571
  }
3610
3572
 
3611
- /* Effect classes (shared across modes) */
3612
3573
  .dm-scribe-fade {
3613
- animation: dm-scribe-fade 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
3574
+ animation: dm-scribe-fade 0.22s ease-out both;
3614
3575
  }
3615
3576
 
3616
3577
  .dm-scribe-bounce {
3617
- animation: dm-scribe-bounce 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
3578
+ animation: dm-scribe-bounce 0.38s ease-out both;
3618
3579
  }
3619
3580
 
3620
3581
  .dm-scribe-glow {
3621
- animation: dm-scribe-glow 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
3582
+ animation: dm-scribe-glow 0.5s ease-out both;
3583
+ }
3584
+
3585
+ @media (prefers-reduced-motion: reduce) {
3586
+ .dm-scribe-cursor,
3587
+ .dm-scribe-fade,
3588
+ .dm-scribe-bounce,
3589
+ .dm-scribe-glow {
3590
+ animation: none;
3591
+ }
3622
3592
  }
3623
3593
 
3624
3594
  /* =================================================================
@@ -4976,11 +4946,11 @@ body.dm-cloaked.dm-ready {
4976
4946
  ============================================ */
4977
4947
 
4978
4948
  /*!
4979
- * Domma Grid CSS v0.51.7
4949
+ * Domma Grid CSS v0.51.9
4980
4950
  * Dynamic Object Manipulation & Modeling API
4981
4951
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4982
- * Built: 2026-10-09T11:57:50.123Z
4983
- * Commit: a5d495a
4952
+ * Built: 2026-10-11T10:11:05.847Z
4953
+ * Commit: c708495
4984
4954
  */
4985
4955
 
4986
4956
  /**
@@ -5601,11 +5571,11 @@ body.dm-cloaked.dm-ready {
5601
5571
  ============================================ */
5602
5572
 
5603
5573
  /*!
5604
- * Domma Elements CSS v0.51.7
5574
+ * Domma Elements CSS v0.51.9
5605
5575
  * Dynamic Object Manipulation & Modeling API
5606
5576
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5607
- * Built: 2026-10-09T11:57:50.129Z
5608
- * Commit: a5d495a
5577
+ * Built: 2026-10-11T10:11:05.855Z
5578
+ * Commit: c708495
5609
5579
  */
5610
5580
 
5611
5581
  /**
@@ -15121,11 +15091,11 @@ a.avatar-more-person:hover .avatar-more-name {
15121
15091
  ============================================ */
15122
15092
 
15123
15093
  /*!
15124
- * Domma Themes v0.51.7
15094
+ * Domma Themes v0.51.9
15125
15095
  * Dynamic Object Manipulation & Modeling API
15126
15096
  * (c) 2026 Darryl Waterhouse & DCBW-IT
15127
- * Built: 2026-10-09T11:57:50.104Z
15128
- * Commit: a5d495a
15097
+ * Built: 2026-10-11T10:11:05.828Z
15098
+ * Commit: c708495
15129
15099
  */
15130
15100
 
15131
15101
  /**
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Data-Focused CSS Bundle v0.51.7
2
+ * Domma Data-Focused CSS Bundle v0.51.9
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-09T11:57:50.303Z
5
+ * Built: 2026-10-11T10:11:06.023Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.51.7
14
+ * Domma Core CSS v0.51.9
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-10-09T11:57:50.118Z
18
- * Commit: a5d495a
17
+ * Built: 2026-10-11T10:11:05.843Z
18
+ * Commit: c708495
19
19
  */
20
20
 
21
21
  /**
@@ -3499,126 +3499,96 @@ code, pre {
3499
3499
  /* Scribe Effect Keyframes */
3500
3500
 
3501
3501
  @keyframes dm-scribe-cursor-blink {
3502
- 0%, 100% {
3503
- opacity: 1;
3504
- }
3505
- 50% {
3506
- opacity: 0;
3507
- }
3502
+ 0%, 45%, 100% { opacity: 1; }
3503
+ 55%, 90% { opacity: 0; }
3508
3504
  }
3509
3505
 
3510
3506
  @keyframes dm-scribe-fade {
3511
- from {
3512
- opacity: 0;
3513
- transform: translateZ(0);
3514
- }
3515
- to {
3516
- opacity: 1;
3517
- transform: translateZ(0);
3518
- }
3507
+ from { opacity: 0; }
3508
+ to { opacity: 1; }
3519
3509
  }
3520
3510
 
3521
3511
  @keyframes dm-scribe-bounce {
3522
- 0% {
3523
- opacity: 0;
3524
- transform: translateY(-8px) translateZ(0);
3525
- }
3526
- 60% {
3527
- opacity: 1;
3528
- transform: translateY(2px) translateZ(0);
3529
- }
3530
- 80% {
3531
- transform: translateY(-1px) translateZ(0);
3532
- }
3533
- 100% {
3534
- opacity: 1;
3535
- transform: translateY(0) translateZ(0);
3536
- }
3512
+ 0% { opacity: 0; transform: translateY(-0.3em); }
3513
+ 60% { opacity: 1; transform: translateY(0.06em); }
3514
+ 80% { transform: translateY(-0.025em); }
3515
+ 100% { opacity: 1; transform: translateY(0); }
3537
3516
  }
3538
3517
 
3539
3518
  @keyframes dm-scribe-glow {
3540
- 0% {
3541
- opacity: 0;
3542
- transform: scale(0.8) translateZ(0);
3543
- filter: brightness(1);
3544
- }
3545
- 50% {
3546
- opacity: 1;
3547
- transform: scale(1.1) translateZ(0);
3548
- filter: brightness(1.5);
3549
- }
3550
- 100% {
3551
- opacity: 1;
3552
- transform: scale(1) translateZ(0);
3553
- filter: brightness(1);
3554
- }
3519
+ 0% { opacity: 0; text-shadow: 0 0 0.6em currentColor; }
3520
+ 40% { opacity: 1; text-shadow: 0 0 0.35em currentColor; }
3521
+ 100% { opacity: 1; text-shadow: 0 0 0 transparent; }
3555
3522
  }
3556
3523
 
3557
- /* Scribe Classes */
3558
-
3559
3524
  .dm-scribe-cursor {
3560
- display: inline;
3525
+ display: inline-block;
3561
3526
  white-space: pre;
3562
- font-weight: 600;
3563
- margin-left: 2px;
3564
- vertical-align: 0.08em;
3565
- animation: dm-scribe-cursor-blink 1s ease-in-out infinite;
3527
+ margin-left: 0.04em;
3528
+ vertical-align: baseline;
3529
+ animation: dm-scribe-cursor-blink 1.1s ease-in-out infinite;
3566
3530
  }
3567
3531
 
3568
- .dm-scribe-cursor.dm-scribe-cursor-no-blink {
3532
+ .dm-scribe-cursor.dm-scribe-cursor-no-blink,
3533
+ .dm-scribe-cursor.dm-scribe-cursor-active {
3569
3534
  animation: none;
3570
3535
  opacity: 1;
3571
3536
  }
3572
3537
 
3573
- /* Cursor Types */
3574
- .dm-scribe-cursor-caret {
3575
- /* Default - thin vertical line */
3576
- }
3577
-
3578
3538
  .dm-scribe-cursor-block {
3579
- padding: 0;
3580
3539
  background: currentColor;
3581
- color: var(--dm-background, #fff);
3582
- opacity: 0.8;
3583
3540
  font-size: 0.7em;
3584
- line-height: 0.9;
3585
- }
3586
-
3587
- .dm-scribe-cursor-block.dm-scribe-cursor-no-blink {
3588
- opacity: 0.6;
3541
+ line-height: 1;
3589
3542
  }
3590
3543
 
3591
3544
  .dm-scribe-cursor-underline {
3592
- border-bottom: 2px solid currentColor;
3593
- padding: 0;
3545
+ border-bottom: 0.08em solid currentColor;
3594
3546
  min-width: 0.5em;
3547
+ line-height: 1;
3595
3548
  }
3596
3549
 
3597
- /* Unit base styling (shared across modes) */
3550
+ /* Transformable units inherit the surrounding typography. Sentences stay
3551
+ inline so long passages can wrap within narrow containers. */
3598
3552
  .dm-scribe-char,
3599
- .dm-scribe-word,
3553
+ .dm-scribe-word {
3554
+ display: inline-block;
3555
+ white-space: pre-wrap;
3556
+ vertical-align: baseline;
3557
+ }
3558
+
3600
3559
  .dm-scribe-sentence {
3601
3560
  display: inline;
3602
- white-space: pre;
3603
- font-weight: 600;
3604
- will-change: transform, opacity;
3605
- backface-visibility: hidden;
3606
- -webkit-font-smoothing: antialiased;
3607
- -moz-osx-font-smoothing: grayscale;
3608
- transform: translateZ(0);
3561
+ white-space: pre-wrap;
3562
+ }
3563
+
3564
+ .dm-scribe-space {
3565
+ display: inline;
3566
+ }
3567
+
3568
+ .dm-scribe-sentence.dm-scribe-transform-unit {
3569
+ display: inline-block;
3570
+ max-width: 100%;
3609
3571
  }
3610
3572
 
3611
- /* Effect classes (shared across modes) */
3612
3573
  .dm-scribe-fade {
3613
- animation: dm-scribe-fade 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
3574
+ animation: dm-scribe-fade 0.22s ease-out both;
3614
3575
  }
3615
3576
 
3616
3577
  .dm-scribe-bounce {
3617
- animation: dm-scribe-bounce 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
3578
+ animation: dm-scribe-bounce 0.38s ease-out both;
3618
3579
  }
3619
3580
 
3620
3581
  .dm-scribe-glow {
3621
- animation: dm-scribe-glow 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
3582
+ animation: dm-scribe-glow 0.5s ease-out both;
3583
+ }
3584
+
3585
+ @media (prefers-reduced-motion: reduce) {
3586
+ .dm-scribe-cursor,
3587
+ .dm-scribe-fade,
3588
+ .dm-scribe-bounce,
3589
+ .dm-scribe-glow {
3590
+ animation: none;
3591
+ }
3622
3592
  }
3623
3593
 
3624
3594
  /* =================================================================
@@ -4976,11 +4946,11 @@ body.dm-cloaked.dm-ready {
4976
4946
  ============================================ */
4977
4947
 
4978
4948
  /*!
4979
- * Domma Grid CSS v0.51.7
4949
+ * Domma Grid CSS v0.51.9
4980
4950
  * Dynamic Object Manipulation & Modeling API
4981
4951
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4982
- * Built: 2026-10-09T11:57:50.123Z
4983
- * Commit: a5d495a
4952
+ * Built: 2026-10-11T10:11:05.847Z
4953
+ * Commit: c708495
4984
4954
  */
4985
4955
 
4986
4956
  /**
@@ -5601,11 +5571,11 @@ body.dm-cloaked.dm-ready {
5601
5571
  ============================================ */
5602
5572
 
5603
5573
  /*!
5604
- * Domma Elements CSS v0.51.7
5574
+ * Domma Elements CSS v0.51.9
5605
5575
  * Dynamic Object Manipulation & Modeling API
5606
5576
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5607
- * Built: 2026-10-09T11:57:50.129Z
5608
- * Commit: a5d495a
5577
+ * Built: 2026-10-11T10:11:05.855Z
5578
+ * Commit: c708495
5609
5579
  */
5610
5580
 
5611
5581
  /**
@@ -15121,11 +15091,11 @@ a.avatar-more-person:hover .avatar-more-name {
15121
15091
  ============================================ */
15122
15092
 
15123
15093
  /*!
15124
- * Domma Themes v0.51.7
15094
+ * Domma Themes v0.51.9
15125
15095
  * Dynamic Object Manipulation & Modeling API
15126
15096
  * (c) 2026 Darryl Waterhouse & DCBW-IT
15127
- * Built: 2026-10-09T11:57:50.104Z
15128
- * Commit: a5d495a
15097
+ * Built: 2026-10-11T10:11:05.828Z
15098
+ * Commit: c708495
15129
15099
  */
15130
15100
 
15131
15101
  /**