domma-js 0.22.9 → 0.24.0

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.
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Minimal CSS Bundle v0.22.9
2
+ * Domma Minimal CSS Bundle v0.24.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-04-24T20:17:43.246Z
5
+ * Built: 2026-05-02T17:40:23.905Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.22.9
14
+ * Domma Core CSS v0.24.0
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-04-24T20:17:43.040Z
18
- * Commit: acc551f
17
+ * Built: 2026-05-02T17:40:23.693Z
18
+ * Commit: ef7021b
19
19
  */
20
20
 
21
21
  /**
@@ -178,11 +178,12 @@
178
178
  /* ================================================
179
179
  STATUS COLORS
180
180
  ================================================ */
181
- --dm-success: var(--dm-green-600);
182
- --dm-success-hover: var(--dm-green-700);
183
- --dm-success-active: var(--dm-green-800);
181
+ --dm-success: var(--dm-green-700);
182
+ --dm-success-hover: var(--dm-green-800);
183
+ --dm-success-active: var(--dm-green-900, #14532d);
184
184
  --dm-success-light: var(--dm-green-100);
185
185
  --dm-success-dark: var(--dm-green-800);
186
+ --dm-success-text: var(--dm-white);
186
187
 
187
188
  --dm-danger: var(--dm-red-600);
188
189
  --dm-danger-hover: var(--dm-red-700);
@@ -191,17 +192,19 @@
191
192
  --dm-danger-dark: var(--dm-red-800);
192
193
 
193
194
  --dm-warning: var(--dm-amber-500);
195
+ /* amber-950 ensures ≥6.9:1 contrast on amber-500 backgrounds (badges, alerts, btn-warning) */
194
196
  --dm-warning-hover: var(--dm-amber-600);
195
197
  --dm-warning-active: var(--dm-amber-700);
196
- --dm-warning-text: var(--dm-amber-900);
198
+ --dm-warning-text: var(--dm-amber-950);
197
199
  --dm-warning-light: var(--dm-amber-100);
198
200
  --dm-warning-dark: var(--dm-amber-800);
199
201
 
200
- --dm-info: var(--dm-sky-500);
201
- --dm-info-hover: var(--dm-sky-600);
202
- --dm-info-active: var(--dm-sky-700);
202
+ --dm-info: var(--dm-sky-700);
203
+ --dm-info-hover: var(--dm-sky-800);
204
+ --dm-info-active: var(--dm-sky-900, #0c4a6e);
203
205
  --dm-info-light: var(--dm-sky-100);
204
206
  --dm-info-dark: var(--dm-sky-800);
207
+ --dm-info-text: var(--dm-white);
205
208
 
206
209
  /* ================================================
207
210
  BACKGROUND TINTS (Lighter versions for backgrounds)
@@ -432,13 +435,13 @@ body {
432
435
  }
433
436
 
434
437
  a {
435
- color: var(--dm-primary);
438
+ color: var(--dm-link, color-mix(in oklab, var(--dm-primary, #0070d6), var(--dm-text, #1a1a1a) 55%));
436
439
  text-decoration: none;
437
440
  transition: color 0.2s ease;
438
441
  }
439
442
 
440
443
  a:hover {
441
- color: var(--dm-primary-hover);
444
+ color: var(--dm-link-hover, color-mix(in oklab, var(--dm-primary, #0070d6), var(--dm-text, #1a1a1a) 25%));
442
445
  text-decoration: none;
443
446
  }
444
447
 
@@ -1224,7 +1227,7 @@ code, pre {
1224
1227
  }
1225
1228
 
1226
1229
  .text-secondary {
1227
- color: var(--dm-secondary);
1230
+ color: var(--dm-text-secondary);
1228
1231
  }
1229
1232
 
1230
1233
  .text-success {
@@ -2575,7 +2578,7 @@ code, pre {
2575
2578
  .btn-group > .btn-outline.active {
2576
2579
  background-color: var(--dm-primary);
2577
2580
  border-color: var(--dm-primary);
2578
- color: var(--dm-white);
2581
+ color: var(--dm-primary-text, var(--dm-white));
2579
2582
  }
2580
2583
 
2581
2584
  .btn-group > .btn-secondary.active {
@@ -4826,11 +4829,11 @@ body.dm-cloaked.dm-ready {
4826
4829
  ============================================ */
4827
4830
 
4828
4831
  /*!
4829
- * Domma Grid CSS v0.22.9
4832
+ * Domma Grid CSS v0.24.0
4830
4833
  * Dynamic Object Manipulation & Modeling API
4831
4834
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4832
- * Built: 2026-04-24T20:17:43.045Z
4833
- * Commit: acc551f
4835
+ * Built: 2026-05-02T17:40:23.697Z
4836
+ * Commit: ef7021b
4834
4837
  */
4835
4838
 
4836
4839
  /**
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Syntax Highlighter v0.22.9
2
+ * Domma Syntax Highlighter v0.24.0
3
3
  * Lightweight code syntax highlighting for JavaScript, HTML, and CSS
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-04-24T20:17:31.956Z
6
- * Commit: acc551f
5
+ * Built: 2026-05-02T17:40:11.963Z
6
+ * Commit: ef7021b
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.22.9
2
+ * Domma Core CSS v0.24.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-04-24T20:17:43.040Z
6
- * Commit: acc551f
5
+ * Built: 2026-05-02T17:40:23.693Z
6
+ * Commit: ef7021b
7
7
  */
8
8
 
9
9
  /**
@@ -166,11 +166,12 @@
166
166
  /* ================================================
167
167
  STATUS COLORS
168
168
  ================================================ */
169
- --dm-success: var(--dm-green-600);
170
- --dm-success-hover: var(--dm-green-700);
171
- --dm-success-active: var(--dm-green-800);
169
+ --dm-success: var(--dm-green-700);
170
+ --dm-success-hover: var(--dm-green-800);
171
+ --dm-success-active: var(--dm-green-900, #14532d);
172
172
  --dm-success-light: var(--dm-green-100);
173
173
  --dm-success-dark: var(--dm-green-800);
174
+ --dm-success-text: var(--dm-white);
174
175
 
175
176
  --dm-danger: var(--dm-red-600);
176
177
  --dm-danger-hover: var(--dm-red-700);
@@ -179,17 +180,19 @@
179
180
  --dm-danger-dark: var(--dm-red-800);
180
181
 
181
182
  --dm-warning: var(--dm-amber-500);
183
+ /* amber-950 ensures ≥6.9:1 contrast on amber-500 backgrounds (badges, alerts, btn-warning) */
182
184
  --dm-warning-hover: var(--dm-amber-600);
183
185
  --dm-warning-active: var(--dm-amber-700);
184
- --dm-warning-text: var(--dm-amber-900);
186
+ --dm-warning-text: var(--dm-amber-950);
185
187
  --dm-warning-light: var(--dm-amber-100);
186
188
  --dm-warning-dark: var(--dm-amber-800);
187
189
 
188
- --dm-info: var(--dm-sky-500);
189
- --dm-info-hover: var(--dm-sky-600);
190
- --dm-info-active: var(--dm-sky-700);
190
+ --dm-info: var(--dm-sky-700);
191
+ --dm-info-hover: var(--dm-sky-800);
192
+ --dm-info-active: var(--dm-sky-900, #0c4a6e);
191
193
  --dm-info-light: var(--dm-sky-100);
192
194
  --dm-info-dark: var(--dm-sky-800);
195
+ --dm-info-text: var(--dm-white);
193
196
 
194
197
  /* ================================================
195
198
  BACKGROUND TINTS (Lighter versions for backgrounds)
@@ -420,13 +423,13 @@ body {
420
423
  }
421
424
 
422
425
  a {
423
- color: var(--dm-primary);
426
+ color: var(--dm-link, color-mix(in oklab, var(--dm-primary, #0070d6), var(--dm-text, #1a1a1a) 55%));
424
427
  text-decoration: none;
425
428
  transition: color 0.2s ease;
426
429
  }
427
430
 
428
431
  a:hover {
429
- color: var(--dm-primary-hover);
432
+ color: var(--dm-link-hover, color-mix(in oklab, var(--dm-primary, #0070d6), var(--dm-text, #1a1a1a) 25%));
430
433
  text-decoration: none;
431
434
  }
432
435
 
@@ -1212,7 +1215,7 @@ code, pre {
1212
1215
  }
1213
1216
 
1214
1217
  .text-secondary {
1215
- color: var(--dm-secondary);
1218
+ color: var(--dm-text-secondary);
1216
1219
  }
1217
1220
 
1218
1221
  .text-success {
@@ -2563,7 +2566,7 @@ code, pre {
2563
2566
  .btn-group > .btn-outline.active {
2564
2567
  background-color: var(--dm-primary);
2565
2568
  border-color: var(--dm-primary);
2566
- color: var(--dm-white);
2569
+ color: var(--dm-primary-text, var(--dm-white));
2567
2570
  }
2568
2571
 
2569
2572
  .btn-group > .btn-secondary.active {