domma-js 0.51.9 → 0.51.11

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": "domma-js",
3
- "version": "0.51.9",
3
+ "version": "0.51.11",
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",
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Complete CSS Bundle v0.51.9
2
+ * Domma Complete CSS Bundle v0.51.11
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-11T10:11:06.027Z
5
+ * Built: 2026-10-12T06:01:57.107Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.51.9
14
+ * Domma Core CSS v0.51.11
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-10-11T10:11:05.843Z
18
- * Commit: c708495
17
+ * Built: 2026-10-12T06:01:56.939Z
18
+ * Commit: a53de2f
19
19
  */
20
20
 
21
21
  /**
@@ -3549,6 +3549,15 @@ code, pre {
3549
3549
 
3550
3550
  /* Transformable units inherit the surrounding typography. Sentences stay
3551
3551
  inline so long passages can wrap within narrow containers. */
3552
+ /* Keep animated characters in one unbreakable word, even inside containers
3553
+ that allow emergency wrapping. Whitespace stays outside these groups. */
3554
+ .dm-scribe-word-group {
3555
+ display: inline-block;
3556
+ white-space: nowrap;
3557
+ overflow-wrap: normal;
3558
+ word-break: normal;
3559
+ }
3560
+
3552
3561
  .dm-scribe-char,
3553
3562
  .dm-scribe-word {
3554
3563
  display: inline-block;
@@ -4946,11 +4955,11 @@ body.dm-cloaked.dm-ready {
4946
4955
  ============================================ */
4947
4956
 
4948
4957
  /*!
4949
- * Domma Grid CSS v0.51.9
4958
+ * Domma Grid CSS v0.51.11
4950
4959
  * Dynamic Object Manipulation & Modeling API
4951
4960
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4952
- * Built: 2026-10-11T10:11:05.847Z
4953
- * Commit: c708495
4961
+ * Built: 2026-10-12T06:01:56.942Z
4962
+ * Commit: a53de2f
4954
4963
  */
4955
4964
 
4956
4965
  /**
@@ -5571,11 +5580,11 @@ body.dm-cloaked.dm-ready {
5571
5580
  ============================================ */
5572
5581
 
5573
5582
  /*!
5574
- * Domma Elements CSS v0.51.9
5583
+ * Domma Elements CSS v0.51.11
5575
5584
  * Dynamic Object Manipulation & Modeling API
5576
5585
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5577
- * Built: 2026-10-11T10:11:05.855Z
5578
- * Commit: c708495
5586
+ * Built: 2026-10-12T06:01:56.947Z
5587
+ * Commit: a53de2f
5579
5588
  */
5580
5589
 
5581
5590
  /**
@@ -12407,7 +12416,34 @@ code {
12407
12416
  }
12408
12417
  }
12409
12418
 
12419
+ /* Phones: one column - each item's marker, then its content at full width, beside the
12420
+ line at the left. The five-column grid below is for wider screens only; on a phone it
12421
+ squeezed the content into two narrow side columns and pushed the markers off-screen. */
12422
+ @media (max-width: 768px) {
12423
+ .dm-progression-centered .dm-progression-item {
12424
+ display: grid;
12425
+ grid-template-columns: minmax(0, 1fr);
12426
+ row-gap: var(--dm-space-2, 0.5rem);
12427
+ position: relative;
12428
+ z-index: 1;
12429
+ }
12430
+ .dm-progression-centered .dm-progression-item .dm-progression-marker {
12431
+ grid-column: 1;
12432
+ grid-row: 1;
12433
+ justify-self: start;
12434
+ margin: 0;
12435
+ }
12436
+ .dm-progression-centered .dm-progression-item .dm-progression-content {
12437
+ grid-column: 1;
12438
+ grid-row: 2;
12439
+ justify-self: stretch;
12440
+ margin: 0;
12441
+ max-width: none;
12442
+ }
12443
+ }
12444
+
12410
12445
  /* Centered grid: simple 5-column layout */
12446
+ @media (min-width: 769px) {
12411
12447
  .dm-progression-centered .dm-progression-item {
12412
12448
  display: grid;
12413
12449
  /* [left content] [left marker] [center gap] [right marker] [right content] */
@@ -12452,6 +12488,7 @@ code {
12452
12488
  align-self: start;
12453
12489
  margin-left: 0; /* Gap handled by column-gap */
12454
12490
  }
12491
+ }
12455
12492
 
12456
12493
  /* Horizontal layout */
12457
12494
  .dm-progression-horizontal {
@@ -15091,11 +15128,11 @@ a.avatar-more-person:hover .avatar-more-name {
15091
15128
  ============================================ */
15092
15129
 
15093
15130
  /*!
15094
- * Domma Themes v0.51.9
15131
+ * Domma Themes v0.51.11
15095
15132
  * Dynamic Object Manipulation & Modeling API
15096
15133
  * (c) 2026 Darryl Waterhouse & DCBW-IT
15097
- * Built: 2026-10-11T10:11:05.828Z
15098
- * Commit: c708495
15134
+ * Built: 2026-10-12T06:01:56.925Z
15135
+ * Commit: a53de2f
15099
15136
  */
15100
15137
 
15101
15138
  /**
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Data-Focused CSS Bundle v0.51.9
2
+ * Domma Data-Focused CSS Bundle v0.51.11
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-11T10:11:06.023Z
5
+ * Built: 2026-10-12T06:01:57.103Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.51.9
14
+ * Domma Core CSS v0.51.11
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-10-11T10:11:05.843Z
18
- * Commit: c708495
17
+ * Built: 2026-10-12T06:01:56.939Z
18
+ * Commit: a53de2f
19
19
  */
20
20
 
21
21
  /**
@@ -3549,6 +3549,15 @@ code, pre {
3549
3549
 
3550
3550
  /* Transformable units inherit the surrounding typography. Sentences stay
3551
3551
  inline so long passages can wrap within narrow containers. */
3552
+ /* Keep animated characters in one unbreakable word, even inside containers
3553
+ that allow emergency wrapping. Whitespace stays outside these groups. */
3554
+ .dm-scribe-word-group {
3555
+ display: inline-block;
3556
+ white-space: nowrap;
3557
+ overflow-wrap: normal;
3558
+ word-break: normal;
3559
+ }
3560
+
3552
3561
  .dm-scribe-char,
3553
3562
  .dm-scribe-word {
3554
3563
  display: inline-block;
@@ -4946,11 +4955,11 @@ body.dm-cloaked.dm-ready {
4946
4955
  ============================================ */
4947
4956
 
4948
4957
  /*!
4949
- * Domma Grid CSS v0.51.9
4958
+ * Domma Grid CSS v0.51.11
4950
4959
  * Dynamic Object Manipulation & Modeling API
4951
4960
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4952
- * Built: 2026-10-11T10:11:05.847Z
4953
- * Commit: c708495
4961
+ * Built: 2026-10-12T06:01:56.942Z
4962
+ * Commit: a53de2f
4954
4963
  */
4955
4964
 
4956
4965
  /**
@@ -5571,11 +5580,11 @@ body.dm-cloaked.dm-ready {
5571
5580
  ============================================ */
5572
5581
 
5573
5582
  /*!
5574
- * Domma Elements CSS v0.51.9
5583
+ * Domma Elements CSS v0.51.11
5575
5584
  * Dynamic Object Manipulation & Modeling API
5576
5585
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5577
- * Built: 2026-10-11T10:11:05.855Z
5578
- * Commit: c708495
5586
+ * Built: 2026-10-12T06:01:56.947Z
5587
+ * Commit: a53de2f
5579
5588
  */
5580
5589
 
5581
5590
  /**
@@ -12407,7 +12416,34 @@ code {
12407
12416
  }
12408
12417
  }
12409
12418
 
12419
+ /* Phones: one column - each item's marker, then its content at full width, beside the
12420
+ line at the left. The five-column grid below is for wider screens only; on a phone it
12421
+ squeezed the content into two narrow side columns and pushed the markers off-screen. */
12422
+ @media (max-width: 768px) {
12423
+ .dm-progression-centered .dm-progression-item {
12424
+ display: grid;
12425
+ grid-template-columns: minmax(0, 1fr);
12426
+ row-gap: var(--dm-space-2, 0.5rem);
12427
+ position: relative;
12428
+ z-index: 1;
12429
+ }
12430
+ .dm-progression-centered .dm-progression-item .dm-progression-marker {
12431
+ grid-column: 1;
12432
+ grid-row: 1;
12433
+ justify-self: start;
12434
+ margin: 0;
12435
+ }
12436
+ .dm-progression-centered .dm-progression-item .dm-progression-content {
12437
+ grid-column: 1;
12438
+ grid-row: 2;
12439
+ justify-self: stretch;
12440
+ margin: 0;
12441
+ max-width: none;
12442
+ }
12443
+ }
12444
+
12410
12445
  /* Centered grid: simple 5-column layout */
12446
+ @media (min-width: 769px) {
12411
12447
  .dm-progression-centered .dm-progression-item {
12412
12448
  display: grid;
12413
12449
  /* [left content] [left marker] [center gap] [right marker] [right content] */
@@ -12452,6 +12488,7 @@ code {
12452
12488
  align-self: start;
12453
12489
  margin-left: 0; /* Gap handled by column-gap */
12454
12490
  }
12491
+ }
12455
12492
 
12456
12493
  /* Horizontal layout */
12457
12494
  .dm-progression-horizontal {
@@ -15091,11 +15128,11 @@ a.avatar-more-person:hover .avatar-more-name {
15091
15128
  ============================================ */
15092
15129
 
15093
15130
  /*!
15094
- * Domma Themes v0.51.9
15131
+ * Domma Themes v0.51.11
15095
15132
  * Dynamic Object Manipulation & Modeling API
15096
15133
  * (c) 2026 Darryl Waterhouse & DCBW-IT
15097
- * Built: 2026-10-11T10:11:05.828Z
15098
- * Commit: c708495
15134
+ * Built: 2026-10-12T06:01:56.925Z
15135
+ * Commit: a53de2f
15099
15136
  */
15100
15137
 
15101
15138
  /**
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Essentials CSS Bundle v0.51.9
2
+ * Domma Essentials CSS Bundle v0.51.11
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-11T10:11:06.014Z
5
+ * Built: 2026-10-12T06:01:57.094Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.51.9
14
+ * Domma Core CSS v0.51.11
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-10-11T10:11:05.843Z
18
- * Commit: c708495
17
+ * Built: 2026-10-12T06:01:56.939Z
18
+ * Commit: a53de2f
19
19
  */
20
20
 
21
21
  /**
@@ -3549,6 +3549,15 @@ code, pre {
3549
3549
 
3550
3550
  /* Transformable units inherit the surrounding typography. Sentences stay
3551
3551
  inline so long passages can wrap within narrow containers. */
3552
+ /* Keep animated characters in one unbreakable word, even inside containers
3553
+ that allow emergency wrapping. Whitespace stays outside these groups. */
3554
+ .dm-scribe-word-group {
3555
+ display: inline-block;
3556
+ white-space: nowrap;
3557
+ overflow-wrap: normal;
3558
+ word-break: normal;
3559
+ }
3560
+
3552
3561
  .dm-scribe-char,
3553
3562
  .dm-scribe-word {
3554
3563
  display: inline-block;
@@ -4946,11 +4955,11 @@ body.dm-cloaked.dm-ready {
4946
4955
  ============================================ */
4947
4956
 
4948
4957
  /*!
4949
- * Domma Grid CSS v0.51.9
4958
+ * Domma Grid CSS v0.51.11
4950
4959
  * Dynamic Object Manipulation & Modeling API
4951
4960
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4952
- * Built: 2026-10-11T10:11:05.847Z
4953
- * Commit: c708495
4961
+ * Built: 2026-10-12T06:01:56.942Z
4962
+ * Commit: a53de2f
4954
4963
  */
4955
4964
 
4956
4965
  /**
@@ -5571,11 +5580,11 @@ body.dm-cloaked.dm-ready {
5571
5580
  ============================================ */
5572
5581
 
5573
5582
  /*!
5574
- * Domma Elements CSS v0.51.9
5583
+ * Domma Elements CSS v0.51.11
5575
5584
  * Dynamic Object Manipulation & Modeling API
5576
5585
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5577
- * Built: 2026-10-11T10:11:05.855Z
5578
- * Commit: c708495
5586
+ * Built: 2026-10-12T06:01:56.947Z
5587
+ * Commit: a53de2f
5579
5588
  */
5580
5589
 
5581
5590
  /**
@@ -12407,7 +12416,34 @@ code {
12407
12416
  }
12408
12417
  }
12409
12418
 
12419
+ /* Phones: one column - each item's marker, then its content at full width, beside the
12420
+ line at the left. The five-column grid below is for wider screens only; on a phone it
12421
+ squeezed the content into two narrow side columns and pushed the markers off-screen. */
12422
+ @media (max-width: 768px) {
12423
+ .dm-progression-centered .dm-progression-item {
12424
+ display: grid;
12425
+ grid-template-columns: minmax(0, 1fr);
12426
+ row-gap: var(--dm-space-2, 0.5rem);
12427
+ position: relative;
12428
+ z-index: 1;
12429
+ }
12430
+ .dm-progression-centered .dm-progression-item .dm-progression-marker {
12431
+ grid-column: 1;
12432
+ grid-row: 1;
12433
+ justify-self: start;
12434
+ margin: 0;
12435
+ }
12436
+ .dm-progression-centered .dm-progression-item .dm-progression-content {
12437
+ grid-column: 1;
12438
+ grid-row: 2;
12439
+ justify-self: stretch;
12440
+ margin: 0;
12441
+ max-width: none;
12442
+ }
12443
+ }
12444
+
12410
12445
  /* Centered grid: simple 5-column layout */
12446
+ @media (min-width: 769px) {
12411
12447
  .dm-progression-centered .dm-progression-item {
12412
12448
  display: grid;
12413
12449
  /* [left content] [left marker] [center gap] [right marker] [right content] */
@@ -12452,6 +12488,7 @@ code {
12452
12488
  align-self: start;
12453
12489
  margin-left: 0; /* Gap handled by column-gap */
12454
12490
  }
12491
+ }
12455
12492
 
12456
12493
  /* Horizontal layout */
12457
12494
  .dm-progression-horizontal {
@@ -15091,11 +15128,11 @@ a.avatar-more-person:hover .avatar-more-name {
15091
15128
  ============================================ */
15092
15129
 
15093
15130
  /*!
15094
- * Domma Themes v0.51.9
15131
+ * Domma Themes v0.51.11
15095
15132
  * Dynamic Object Manipulation & Modeling API
15096
15133
  * (c) 2026 Darryl Waterhouse & DCBW-IT
15097
- * Built: 2026-10-11T10:11:05.828Z
15098
- * Commit: c708495
15134
+ * Built: 2026-10-12T06:01:56.925Z
15135
+ * Commit: a53de2f
15099
15136
  */
15100
15137
 
15101
15138
  /**
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Full CSS Bundle v0.51.9
2
+ * Domma Full CSS Bundle v0.51.11
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-11T10:11:06.019Z
5
+ * Built: 2026-10-12T06:01:57.099Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.51.9
14
+ * Domma Core CSS v0.51.11
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-10-11T10:11:05.843Z
18
- * Commit: c708495
17
+ * Built: 2026-10-12T06:01:56.939Z
18
+ * Commit: a53de2f
19
19
  */
20
20
 
21
21
  /**
@@ -3549,6 +3549,15 @@ code, pre {
3549
3549
 
3550
3550
  /* Transformable units inherit the surrounding typography. Sentences stay
3551
3551
  inline so long passages can wrap within narrow containers. */
3552
+ /* Keep animated characters in one unbreakable word, even inside containers
3553
+ that allow emergency wrapping. Whitespace stays outside these groups. */
3554
+ .dm-scribe-word-group {
3555
+ display: inline-block;
3556
+ white-space: nowrap;
3557
+ overflow-wrap: normal;
3558
+ word-break: normal;
3559
+ }
3560
+
3552
3561
  .dm-scribe-char,
3553
3562
  .dm-scribe-word {
3554
3563
  display: inline-block;
@@ -4946,11 +4955,11 @@ body.dm-cloaked.dm-ready {
4946
4955
  ============================================ */
4947
4956
 
4948
4957
  /*!
4949
- * Domma Grid CSS v0.51.9
4958
+ * Domma Grid CSS v0.51.11
4950
4959
  * Dynamic Object Manipulation & Modeling API
4951
4960
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4952
- * Built: 2026-10-11T10:11:05.847Z
4953
- * Commit: c708495
4961
+ * Built: 2026-10-12T06:01:56.942Z
4962
+ * Commit: a53de2f
4954
4963
  */
4955
4964
 
4956
4965
  /**
@@ -5571,11 +5580,11 @@ body.dm-cloaked.dm-ready {
5571
5580
  ============================================ */
5572
5581
 
5573
5582
  /*!
5574
- * Domma Elements CSS v0.51.9
5583
+ * Domma Elements CSS v0.51.11
5575
5584
  * Dynamic Object Manipulation & Modeling API
5576
5585
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5577
- * Built: 2026-10-11T10:11:05.855Z
5578
- * Commit: c708495
5586
+ * Built: 2026-10-12T06:01:56.947Z
5587
+ * Commit: a53de2f
5579
5588
  */
5580
5589
 
5581
5590
  /**
@@ -12407,7 +12416,34 @@ code {
12407
12416
  }
12408
12417
  }
12409
12418
 
12419
+ /* Phones: one column - each item's marker, then its content at full width, beside the
12420
+ line at the left. The five-column grid below is for wider screens only; on a phone it
12421
+ squeezed the content into two narrow side columns and pushed the markers off-screen. */
12422
+ @media (max-width: 768px) {
12423
+ .dm-progression-centered .dm-progression-item {
12424
+ display: grid;
12425
+ grid-template-columns: minmax(0, 1fr);
12426
+ row-gap: var(--dm-space-2, 0.5rem);
12427
+ position: relative;
12428
+ z-index: 1;
12429
+ }
12430
+ .dm-progression-centered .dm-progression-item .dm-progression-marker {
12431
+ grid-column: 1;
12432
+ grid-row: 1;
12433
+ justify-self: start;
12434
+ margin: 0;
12435
+ }
12436
+ .dm-progression-centered .dm-progression-item .dm-progression-content {
12437
+ grid-column: 1;
12438
+ grid-row: 2;
12439
+ justify-self: stretch;
12440
+ margin: 0;
12441
+ max-width: none;
12442
+ }
12443
+ }
12444
+
12410
12445
  /* Centered grid: simple 5-column layout */
12446
+ @media (min-width: 769px) {
12411
12447
  .dm-progression-centered .dm-progression-item {
12412
12448
  display: grid;
12413
12449
  /* [left content] [left marker] [center gap] [right marker] [right content] */
@@ -12452,6 +12488,7 @@ code {
12452
12488
  align-self: start;
12453
12489
  margin-left: 0; /* Gap handled by column-gap */
12454
12490
  }
12491
+ }
12455
12492
 
12456
12493
  /* Horizontal layout */
12457
12494
  .dm-progression-horizontal {
@@ -15091,11 +15128,11 @@ a.avatar-more-person:hover .avatar-more-name {
15091
15128
  ============================================ */
15092
15129
 
15093
15130
  /*!
15094
- * Domma Themes v0.51.9
15131
+ * Domma Themes v0.51.11
15095
15132
  * Dynamic Object Manipulation & Modeling API
15096
15133
  * (c) 2026 Darryl Waterhouse & DCBW-IT
15097
- * Built: 2026-10-11T10:11:05.828Z
15098
- * Commit: c708495
15134
+ * Built: 2026-10-12T06:01:56.925Z
15135
+ * Commit: a53de2f
15099
15136
  */
15100
15137
 
15101
15138
  /**
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Minimal CSS Bundle v0.51.9
2
+ * Domma Minimal CSS Bundle v0.51.11
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-11T10:11:06.013Z
5
+ * Built: 2026-10-12T06:01:57.093Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.51.9
14
+ * Domma Core CSS v0.51.11
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-10-11T10:11:05.843Z
18
- * Commit: c708495
17
+ * Built: 2026-10-12T06:01:56.939Z
18
+ * Commit: a53de2f
19
19
  */
20
20
 
21
21
  /**
@@ -3549,6 +3549,15 @@ code, pre {
3549
3549
 
3550
3550
  /* Transformable units inherit the surrounding typography. Sentences stay
3551
3551
  inline so long passages can wrap within narrow containers. */
3552
+ /* Keep animated characters in one unbreakable word, even inside containers
3553
+ that allow emergency wrapping. Whitespace stays outside these groups. */
3554
+ .dm-scribe-word-group {
3555
+ display: inline-block;
3556
+ white-space: nowrap;
3557
+ overflow-wrap: normal;
3558
+ word-break: normal;
3559
+ }
3560
+
3552
3561
  .dm-scribe-char,
3553
3562
  .dm-scribe-word {
3554
3563
  display: inline-block;
@@ -4946,11 +4955,11 @@ body.dm-cloaked.dm-ready {
4946
4955
  ============================================ */
4947
4956
 
4948
4957
  /*!
4949
- * Domma Grid CSS v0.51.9
4958
+ * Domma Grid CSS v0.51.11
4950
4959
  * Dynamic Object Manipulation & Modeling API
4951
4960
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4952
- * Built: 2026-10-11T10:11:05.847Z
4953
- * Commit: c708495
4961
+ * Built: 2026-10-12T06:01:56.942Z
4962
+ * Commit: a53de2f
4954
4963
  */
4955
4964
 
4956
4965
  /**
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Flags v0.51.9
2
+ * Domma Flags v0.51.11
3
3
  * Nation flags as inline SVG (opt-in module)
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-11T10:10:49.611Z
6
- * Commit: c708495
5
+ * Built: 2026-10-12T06:01:41.252Z
6
+ * Commit: a53de2f
7
7
  *
8
8
  * Requires: domma.min.js
9
9
  */
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Flags v0.51.9
2
+ * Domma Flags v0.51.11
3
3
  * Nation flags as inline SVG (opt-in module)
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-11T10:10:49.611Z
6
- * Commit: c708495
5
+ * Built: 2026-10-12T06:01:41.252Z
6
+ * Commit: a53de2f
7
7
  *
8
8
  * Requires: domma.min.js
9
9
  */
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Syntax Highlighter v0.51.9
2
+ * Domma Syntax Highlighter v0.51.11
3
3
  * Lightweight code syntax highlighting for JavaScript, HTML, and CSS
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-11T10:10:49.607Z
6
- * Commit: c708495
5
+ * Built: 2026-10-12T06:01:41.248Z
6
+ * Commit: a53de2f
7
7
  */
8
8
  !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).DommaSyntax={})}(this,function(t){"use strict";const e={javascript:[{type:"comment",pattern:/\/\*[\s\S]*?\*\//g},{type:"comment",pattern:/\/\/.*/g},{type:"template-string",pattern:/`(?:\\.|[^`\\])*`/g},{type:"string",pattern:/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/g},{type:"keyword",pattern:/\b(const|let|var|function|return|if|else|for|while|do|break|continue|switch|case|default|try|catch|finally|throw|async|await|class|extends|static|new|this|super|import|export|from|as|default|yield|typeof|instanceof|in|of|delete|void)\b/g},{type:"boolean",pattern:/\b(true|false|null|undefined|NaN|Infinity)\b/g},{type:"number",pattern:/\b\d+\.?\d*([eE][+-]?\d+)?\b/g},{type:"function",pattern:/\b([a-zA-Z_$][\w$]*)\s*(?=\()/g},{type:"class-name",pattern:/\b[A-Z][\w$]*\b/g},{type:"operator",pattern:/[+\-*/%=<>!&|^~?:]+|===|!==|==|!=|<=|>=|&&|\|\||<<|>>|>>>/g},{type:"punctuation",pattern:/[{}[\]();,.]/g}],html:[{type:"comment",pattern:/<!--[\s\S]*?-->/g},{type:"doctype",pattern:/<!DOCTYPE[^>]*>/gi},{type:"tag-open",pattern:/<\/?[a-zA-Z][\w-]*/g},{type:"tag-close",pattern:/\/?>/g},{type:"attr-name",pattern:/\s+[a-zA-Z:@][\w:.-]*(?=\s*=)/g},{type:"attr-value",pattern:/=\s*"[^"]*"|=\s*'[^']*'/g},{type:"entity",pattern:/&[#\w]+;/g}],css:[{type:"comment",pattern:/\/\*[\s\S]*?\*\//g},{type:"at-rule",pattern:/@[\w-]+/g},{type:"selector",pattern:/[.#]?[a-zA-Z][\w-]*(?=\s*[{,])/g},{type:"property",pattern:/\b[\w-]+(?=\s*:)/g},{type:"string",pattern:/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/g},{type:"function",pattern:/\b[\w-]+(?=\()/g},{type:"important",pattern:/!important\b/g},{type:"number",pattern:/\b\d+\.?\d*(px|em|rem|%|vh|vw|pt|cm|mm|in|pc|ex|ch|vmin|vmax|fr)?\b/g},{type:"color",pattern:/#[\da-fA-F]{3,8}\b/g},{type:"punctuation",pattern:/[{}:;,()]/g}]};function n(t){const e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};return t.replace(/[&<>"']/g,t=>e[t])}class a{constructor(){this.config={autoDetect:!0,preserveOriginal:!0,selector:".code-block",showLanguageBadge:!1,languagePrefix:"language-"}}highlight(t,a=null){const r="string"==typeof t?document.querySelector(t):t;if(!r||r.hasAttribute("data-syntax-highlighted"))return!1;if(!a&&this.config.autoDetect){const t=Array.from(r.classList).find(t=>t.startsWith(this.config.languagePrefix));t&&(a=t.substring(this.config.languagePrefix.length))}if(!a||!e[a])return!1;const o=r.textContent||"";this.config.preserveOriginal&&r.setAttribute("data-original-code",o);const i=function(t,a){const r=e[a];if(!r)return n(t);const o=[];for(const{type:e,pattern:n}of r){if("html"===a&&"entity"===e)continue;let r;for(n.lastIndex=0;null!==(r=n.exec(t));)o.push({start:r.index,end:r.index+r[0].length,text:r[0],type:e})}o.sort((t,e)=>t.start-e.start);const i=[];let s=0;for(const t of o)t.start>=s&&(i.push(t),s=t.end);let c="",p=0;for(const e of i)e.start>p&&(c+=n(t.substring(p,e.start))),c+=`<span class="syntax-${e.type}">${n(e.text)}</span>`,p=e.end;return p<t.length&&(c+=n(t.substring(p))),c}(o,a);return r.innerHTML=i,r.setAttribute("data-syntax-highlighted","true"),r.setAttribute("data-language",a),this.config.showLanguageBadge&&this.addLanguageBadge(r,a),!0}scan(t={}){const e=t.selector||this.config.selector,n=document.querySelectorAll(e);let a=0;return n.forEach(e=>{this.highlight(e,t.language||null)&&(this.addCopyButton(e),a++)}),a}register(t,n){t&&Array.isArray(n)?e[t]=n:console.error("SyntaxHighlighter: Invalid language registration")}configure(t){return t?(Object.assign(this.config,t),this.config):{...this.config}}addLanguageBadge(t,e){if(t.querySelector(".syntax-language-badge"))return;const n=document.createElement("div");n.className="syntax-language-badge",n.textContent=e.toUpperCase(),t.style.position="relative",t.insertBefore(n,t.firstChild)}getLanguages(){return Object.keys(e)}isLanguageSupported(t){return t in e}addCopyButton(t){if(t.parentElement&&t.parentElement.classList.contains("code-block-wrapper"))return;const e=document.createElement("div");e.className="code-block-wrapper";const n=document.createElement("button");n.className="code-block-copy",n.setAttribute("aria-label","Copy code to clipboard"),n.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>',n.addEventListener("click",async()=>{const e=t.getAttribute("data-original-code")||t.textContent;try{if(navigator.clipboard&&navigator.clipboard.writeText)await navigator.clipboard.writeText(e);else{const t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)}n.classList.add("copied"),n.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"></polyline></svg>',setTimeout(()=>{n.classList.remove("copied"),n.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>'},2e3)}catch(t){console.error("Failed to copy code:",t)}}),t.parentNode.insertBefore(e,t),e.appendChild(t),e.appendChild(n)}}const r=new a;"undefined"!=typeof document&&("loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{r.scan()}):setTimeout(()=>r.scan(),0)),"undefined"!=typeof window&&(window.Domma&&(window.Domma.syntax=r),window.DommaSyntax=r),t.LANGUAGES=e,t.SyntaxHighlighter=a,t.default=r,t.syntax=r,Object.defineProperty(t,"__esModule",{value:!0})});
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Core CSS v0.51.9
2
+ * Domma Core CSS v0.51.11
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-11T10:11:05.843Z
6
- * Commit: c708495
5
+ * Built: 2026-10-12T06:01:56.939Z
6
+ * Commit: a53de2f
7
7
  */
8
8
 
9
9
  /**
@@ -3537,6 +3537,15 @@ code, pre {
3537
3537
 
3538
3538
  /* Transformable units inherit the surrounding typography. Sentences stay
3539
3539
  inline so long passages can wrap within narrow containers. */
3540
+ /* Keep animated characters in one unbreakable word, even inside containers
3541
+ that allow emergency wrapping. Whitespace stays outside these groups. */
3542
+ .dm-scribe-word-group {
3543
+ display: inline-block;
3544
+ white-space: nowrap;
3545
+ overflow-wrap: normal;
3546
+ word-break: normal;
3547
+ }
3548
+
3540
3549
  .dm-scribe-char,
3541
3550
  .dm-scribe-word {
3542
3551
  display: inline-block;