domma-js 0.57.0 → 0.58.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.
Files changed (31) hide show
  1. package/README.md +2 -2
  2. package/assets/types/generated/src/components/focus-trap.d.ts +12 -2
  3. package/assets/types/generated/src/components/modal.d.ts +0 -2
  4. package/assets/types/generated/src/components/range-slider.d.ts +7 -0
  5. package/assets/types/generated/src/elements.d.ts +12 -14
  6. package/assets/types/generated/src/popover.d.ts +8 -7
  7. package/assets/types/generated/src/sortable.d.ts +1 -2
  8. package/assets/types/generated/src/theme.d.ts +0 -15
  9. package/bin/domma-cli.js +9 -2
  10. package/package.json +2 -2
  11. package/public/dist/bundles/domma-complete.css +19 -19
  12. package/public/dist/bundles/domma-data-focused.css +19 -19
  13. package/public/dist/bundles/domma-essentials.css +19 -19
  14. package/public/dist/bundles/domma-full.css +19 -19
  15. package/public/dist/bundles/domma-minimal.css +8 -8
  16. package/public/dist/domma-flags.esm.js +3 -3
  17. package/public/dist/domma-flags.min.js +3 -3
  18. package/public/dist/domma-syntax.min.js +3 -3
  19. package/public/dist/domma.css +3 -3
  20. package/public/dist/domma.esm.js +5 -5
  21. package/public/dist/domma.esm.js.map +1 -1
  22. package/public/dist/domma.min.js +5 -5
  23. package/public/dist/domma.min.js.map +1 -1
  24. package/public/dist/elements.css +8 -8
  25. package/public/dist/grid.css +3 -3
  26. package/public/dist/syntax.css +3 -3
  27. package/public/dist/themes/domma-themes.css +3 -3
  28. package/templates/kickstart/.claude/snippets.md +1 -1
  29. package/templates/kickstart/CLAUDE.md +4 -3
  30. package/templates/kickstart-spa/.claude/snippets.md +1 -1
  31. package/templates/kickstart/frontend/types/domma.d.ts +0 -621
package/README.md CHANGED
@@ -474,13 +474,13 @@ Domma.theme.init({ theme: 'ocean-dark' });
474
474
  Domma.theme.set('forest-light');
475
475
 
476
476
  // Toggle between light/dark
477
- Domma.theme.toggle();
477
+ Domma.theme.set(`${Domma.theme.getBase()}-${Domma.theme.isDark() ? 'light' : 'dark'}`);
478
478
 
479
479
  // Auto-detect system preference
480
480
  Domma.theme.init({ autoDetect: true });
481
481
 
482
482
  // List everything available
483
- Domma.theme.listThemes(); // also listBases() and listVariants()
483
+ Domma.theme.listThemes(); // also listBases()
484
484
  ```
485
485
 
486
486
  **Light/dark families:**
@@ -3,15 +3,24 @@
3
3
  * page. A layer is the nearest of:
4
4
  * - an element carrying `data-focus-trap-allow` (an opt-in for anything else);
5
5
  * - an element with `position: fixed` (toasts, popovers, context menus, palettes,
6
- * another overlay that did not trap focus);
6
+ * another overlay that did not trap focus) - unless it was already on the page and
7
+ * stacks below the trap (`floor`): a fixed header under a modal is page, not a layer;
7
8
  * - a direct child of <body> that is absolutely positioned (portalled pickers and
8
9
  * dropdowns), or that was put there after `since` was taken - something opened
9
10
  * while the trap was on top.
10
11
  * @param {Element} target
11
12
  * @param {Set<Element>} [since] - the children <body> had when the trap activated
13
+ * @param {number} [floor] - the trap's own stacking level (see `stackLevel()`); 0 = none
12
14
  * @returns {Element|null}
13
15
  */
14
- export function layerOf(target: Element, since?: Set<Element>): Element | null;
16
+ export function layerOf(target: Element, since?: Set<Element>, floor?: number): Element | null;
17
+ /**
18
+ * The highest z-index on an element or its ancestors - roughly the stacking layer it
19
+ * is drawn in. 0 when nothing on the way sets one.
20
+ * @param {Element} el
21
+ * @returns {number}
22
+ */
23
+ export function stackLevel(el: Element): number;
15
24
  /**
16
25
  * The tabbable elements in some containers, in Tab order: positive tabindex first (in
17
26
  * ascending order), then the rest in document order. Of a radio group only the checked
@@ -53,6 +62,7 @@ export class FocusTrap extends Component {
53
62
  constructor(containers: FocusTarget | Element | Array<FocusTarget | Element>, options?: FocusTrapOptions);
54
63
  _containers: HTMLElement[];
55
64
  _bodyAtStart: Set<Element>;
65
+ _floor: number;
56
66
  _pendingTab: {
57
67
  shift: any;
58
68
  fromInside: boolean;
@@ -125,8 +125,6 @@ export class Modal extends Component {
125
125
  _later(fn: any, ms: any): void;
126
126
  _clearTimers(): void;
127
127
  _duration(): number;
128
- /** The deprecated unprefixed DOM event, dispatched on the element only (no bubbling). */
129
- _legacyEvent(name: any): void;
130
128
  /**
131
129
  * Open the modal.
132
130
  * @returns {this}
@@ -91,6 +91,7 @@ export class RangeSlider extends Component {
91
91
  max: string;
92
92
  step: string;
93
93
  disabled: string;
94
+ value: string;
94
95
  };
95
96
  _syncInputAttrs(): void;
96
97
  /**
@@ -102,6 +103,12 @@ export class RangeSlider extends Component {
102
103
  /** Push the current values into the real inputs. */
103
104
  _writeInputs(): void;
104
105
  _writing: boolean;
106
+ /**
107
+ * A form reset returns each input to its value attribute. Inputs this component made,
108
+ * and a caller's input without one, would reset to the midpoint - give them the
109
+ * starting value.
110
+ */
111
+ _setDefaults(): void;
105
112
  /** Read the inputs back after something outside changed them. */
106
113
  _fromInputs(): void;
107
114
  _bindInputs(): void;
@@ -75,11 +75,11 @@
75
75
  * @property {(selector?: string|HTMLElement|null, options?: import('./components/back-to-top.js').BackToTopOptions) => import('./components/back-to-top.js').BackToTopInstance} backToTop
76
76
  * Create a BackToTop button: a button / link selector is used as the button, anything else adds one
77
77
  * @property {{
78
- * (selector: string|HTMLElement, options?: ButtonGroupOptions): ButtonGroupInstance,
78
+ * (selector: string|HTMLElement, options?: ButtonGroupOptions): (ButtonGroupInstance & {all(): ButtonGroup[]})|null,
79
79
  * all(selector: string|HTMLElement, options?: ButtonGroupOptions): ButtonGroup[]
80
80
  * }} buttonGroup
81
81
  * A button group on every match; returns the first (with `all()` for the rest). `E.buttonGroup.all()`
82
- * returns them as an array. (A selector that matches nothing returns an empty array.)
82
+ * returns them as an array. A selector that matches nothing returns null.
83
83
  * @property {(selector: import('./components/shared.js').ComponentTarget, options?: import('./components/loader.js').LoaderOptions) => import('./components/loader.js').LoaderInstance|null} loader
84
84
  * Create a Loader on an element (null when nothing matches)
85
85
  * @property {(selector: import('./components/shared.js').ComponentTarget, options?: import('./components/loader.js').LoaderOptions) => import('./components/loader.js').LoaderInstance|null} showLoader
@@ -145,13 +145,11 @@
145
145
  * @property {(selector: string|HTMLElement, options?: ProgressionOptions) => ProgressionInstance} progression
146
146
  * A timeline or roadmap
147
147
  * @property {{
148
- * (selector: string|HTMLElement, options?: ListGroupOptions): ListGroupInstance,
148
+ * (selector: string|HTMLElement, options?: ListGroupOptions): (ListGroupInstance & {all(): ListGroup[]})|null,
149
149
  * all(selector: string|HTMLElement, options?: ListGroupOptions): ListGroup[]
150
150
  * }} listGroup
151
151
  * A list group on every match; returns the first (with `all()` for the rest). `E.listGroup.all()`
152
- * returns them as an array. (A selector that matches nothing returns an empty array.)
153
- * @property {(selector: string|HTMLElement, options?: ProgressionOptions) => ProgressionInstance} timeline
154
- * Deprecated: `progression(selector, {mode: 'timeline', ...})`
152
+ * returns them as an array. A selector that matches nothing returns null.
155
153
  * @property {import('./components/toast.js').ToastStatic} toast
156
154
  * Toast notifications: `E.toast(message, options)` plus `.show/.success/.error/.warning/.info/.closeAll`
157
155
  * @property {{
@@ -1941,10 +1939,12 @@ export type Elements = {
1941
1939
  backToTop: (selector?: string | HTMLElement | null, options?: import("./components/back-to-top.js").BackToTopOptions) => import("./components/back-to-top.js").BackToTopInstance;
1942
1940
  /**
1943
1941
  * A button group on every match; returns the first (with `all()` for the rest). `E.buttonGroup.all()`
1944
- * returns them as an array. (A selector that matches nothing returns an empty array.)
1942
+ * returns them as an array. A selector that matches nothing returns null.
1945
1943
  */
1946
1944
  buttonGroup: {
1947
- (selector: string | HTMLElement, options?: ButtonGroupOptions): ButtonGroupInstance;
1945
+ (selector: string | HTMLElement, options?: ButtonGroupOptions): (ButtonGroupInstance & {
1946
+ all(): ButtonGroup[];
1947
+ }) | null;
1948
1948
  all(selector: string | HTMLElement, options?: ButtonGroupOptions): ButtonGroup[];
1949
1949
  };
1950
1950
  /**
@@ -2079,16 +2079,14 @@ export type Elements = {
2079
2079
  progression: (selector: string | HTMLElement, options?: ProgressionOptions) => ProgressionInstance;
2080
2080
  /**
2081
2081
  * A list group on every match; returns the first (with `all()` for the rest). `E.listGroup.all()`
2082
- * returns them as an array. (A selector that matches nothing returns an empty array.)
2082
+ * returns them as an array. A selector that matches nothing returns null.
2083
2083
  */
2084
2084
  listGroup: {
2085
- (selector: string | HTMLElement, options?: ListGroupOptions): ListGroupInstance;
2085
+ (selector: string | HTMLElement, options?: ListGroupOptions): (ListGroupInstance & {
2086
+ all(): ListGroup[];
2087
+ }) | null;
2086
2088
  all(selector: string | HTMLElement, options?: ListGroupOptions): ListGroup[];
2087
2089
  };
2088
- /**
2089
- * Deprecated: `progression(selector, {mode: 'timeline', ...})`
2090
- */
2091
- timeline: (selector: string | HTMLElement, options?: ProgressionOptions) => ProgressionInstance;
2092
2090
  /**
2093
2091
  * Toast notifications: `E.toast(message, options)` plus `.show/.success/.error/.warning/.info/.closeAll`
2094
2092
  */
@@ -131,10 +131,11 @@ export type PopoverOptions = {
131
131
  onHidden?: ((popover: Popover) => void) | null;
132
132
  };
133
133
  /**
134
- * event.detail of popover:show / popover:shown / popover:hide / popover:hidden (fired on the trigger).
134
+ * event.detail of dm:popover:show / shown / hide / hidden (bubbling, fired on the trigger).
135
135
  */
136
136
  export type PopoverEventDetail = {
137
- popover: Popover;
137
+ instance: Popover;
138
+ args: Popover[];
138
139
  };
139
140
  export type PopoverInstance = Popover;
140
141
  /**
@@ -195,9 +196,10 @@ export type PopoverStatic = {
195
196
  * @property {((popover: Popover) => void)|null} [onHidden] - After the panel has been removed
196
197
  */
197
198
  /**
198
- * event.detail of popover:show / popover:shown / popover:hide / popover:hidden (fired on the trigger).
199
+ * event.detail of dm:popover:show / shown / hide / hidden (bubbling, fired on the trigger).
199
200
  * @typedef {object} PopoverEventDetail
200
- * @property {Popover} popover
201
+ * @property {Popover} instance
202
+ * @property {Popover[]} args
201
203
  */
202
204
  /** @typedef {Popover} PopoverInstance */
203
205
  /**
@@ -402,9 +404,8 @@ declare class Popover extends Component {
402
404
  _isAncestorOf(other: any): boolean;
403
405
  _position(): void;
404
406
  /**
405
- * Run the callback, the .on() listeners and `dm:popover:<name>`, then the older
406
- * `popover:<name>` event (kept until 1.0). For a cancelable phase, returns false
407
- * when any of them said no.
407
+ * Run the callback, then the .on() listeners and `dm:popover:<name>`. For a
408
+ * cancelable phase, returns false when any of them said no.
408
409
  */
409
410
  _phase(name: any, cancelable?: boolean): boolean;
410
411
  }
@@ -362,8 +362,7 @@ declare class Sortable extends Component {
362
362
  /** Live mode: move elements and slide everything, the slot included, into place. */
363
363
  _flipItems(mutate: any): void;
364
364
  _save(order: any): void;
365
- /** The onX callback, .on() listeners and `dm:sortable:<name>`, then the older `sortable:<name>` (kept until 1.0). */
365
+ /** The onX callback, then the .on() listeners and `dm:sortable:<name>`. */
366
366
  _signal(name: any, detail: any): void;
367
- _dispatch(name: any, detail: any): void;
368
367
  }
369
368
  import Component from './component.js';
@@ -172,16 +172,6 @@ declare class ThemeEngine {
172
172
  * @returns {this}
173
173
  */
174
174
  set(theme: ThemeName): this;
175
- /**
176
- * @deprecated Use set() with full theme name instead (e.g., set('ocean-dark'))
177
- * @returns {this}
178
- */
179
- setVariant(): this;
180
- /**
181
- * @deprecated No longer applicable with unified theme system. Use variant selector UI instead.
182
- * @returns {this}
183
- */
184
- toggle(): this;
185
175
  /**
186
176
  * Register a callback for theme changes
187
177
  * @param {ThemeChangeCallback} callback - Callback function(oldTheme, newTheme)
@@ -204,11 +194,6 @@ declare class ThemeEngine {
204
194
  * @returns {ThemeVariant[]}
205
195
  */
206
196
  listBases(): ThemeVariant[];
207
- /**
208
- * @deprecated Use listThemes() instead. Kept for backward compatibility.
209
- * @returns {ThemeVariant[]}
210
- */
211
- listVariants(): ThemeVariant[];
212
197
  /**
213
198
  * Get current theme configuration
214
199
  * @returns {ThemeConfig}
package/bin/domma-cli.js CHANGED
@@ -168,6 +168,13 @@ async function handleInit() {
168
168
  // Copy all templates with variable substitution
169
169
  copyTemplatesRecursive(templatesDir, process.cwd(), vars);
170
170
 
171
+ // The TypeScript declarations, generated from the source at build time (MPA only, as before)
172
+ const typesSrc = join(__dirname, '..', 'assets', 'types');
173
+ const typesDest = join(process.cwd(), 'frontend', 'types');
174
+ if (projectMode !== 'spa' && existsSync(typesSrc) && !existsSync(typesDest)) {
175
+ cpSync(typesSrc, typesDest, {recursive: true});
176
+ }
177
+
171
178
  // Copy Domma dist files to frontend/dist/domma
172
179
  const frontendDistDir = join(process.cwd(), 'frontend', 'dist', 'domma');
173
180
  console.log(`\n Copying Domma distribution files...\n`);
@@ -763,8 +770,8 @@ This will copy AI assistance files to your project:
763
770
  console.log(' ⊘ blueprints/ already exists');
764
771
  }
765
772
 
766
- // Copy types/ directory
767
- const typesDir = join(templatesDir, 'frontend', 'types');
773
+ // Copy types/ directory - the declarations generated from the source
774
+ const typesDir = join(__dirname, '..', 'assets', 'types');
768
775
  const destTypesDir = join(projectRoot, 'types');
769
776
  if (existsSync(typesDir) && !existsSync(destTypesDir)) {
770
777
  cpSync(typesDir, destTypesDir, { recursive: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "domma-js",
3
- "version": "0.57.0",
3
+ "version": "0.58.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",
@@ -69,7 +69,7 @@
69
69
  "serve:3096": "node bin/domma-cli.js serve --port 3096",
70
70
  "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 copy:celebrate && npm run generate:themes && npm run build:css && npm run build:miniapps && live-server public --port=3001 --open=/index.html",
71
71
  "dev:watch": "NODE_ENV=development npm run generate:bundles && rollup -c && node scripts/build-info.js && npm run build:metadata && npm run copy:themes && npm run copy:celebrate && npm run generate:themes && npm run build:css && npm run build:miniapps && npm run watch:miniapps",
72
- "build": "npm run generate:bundles && rollup -c && node scripts/build-info.js && npm run build:metadata && npm run copy:themes && npm run copy:celebrate && npm run generate:themes && npm run build:css && npm run build:css-bundles && npm run build:archives && npm run build:kickstart-files && npm run build:miniapps && npm run build:types",
72
+ "build": "npm run generate:bundles && rollup -c && node scripts/build-info.js && npm run build:metadata && npm run copy:themes && npm run copy:celebrate && npm run generate:themes && npm run build:css && npm run build:css-bundles && npm run build:archives && npm run build:types && npm run build:kickstart-files && npm run build:miniapps",
73
73
  "build:js": "rollup -c",
74
74
  "build:types": "node scripts/build-types.mjs",
75
75
  "check:types": "node scripts/check-types.mjs",
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Complete CSS Bundle v0.57.0
2
+ * Domma Complete CSS Bundle v0.58.1
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-24T20:04:51.370Z
5
+ * Built: 2026-10-25T09:04:25.782Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.57.0
14
+ * Domma Core CSS v0.58.1
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-10-24T20:04:51.166Z
18
- * Commit: 8ca8224
17
+ * Built: 2026-10-25T09:04:25.598Z
18
+ * Commit: bcc485e
19
19
  */
20
20
 
21
21
  /**
@@ -4971,11 +4971,11 @@ body.dm-cloaked.dm-ready {
4971
4971
  ============================================ */
4972
4972
 
4973
4973
  /*!
4974
- * Domma Grid CSS v0.57.0
4974
+ * Domma Grid CSS v0.58.1
4975
4975
  * Dynamic Object Manipulation & Modeling API
4976
4976
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4977
- * Built: 2026-10-24T20:04:51.170Z
4978
- * Commit: 8ca8224
4977
+ * Built: 2026-10-25T09:04:25.602Z
4978
+ * Commit: bcc485e
4979
4979
  */
4980
4980
 
4981
4981
  /**
@@ -5596,11 +5596,11 @@ body.dm-cloaked.dm-ready {
5596
5596
  ============================================ */
5597
5597
 
5598
5598
  /*!
5599
- * Domma Elements CSS v0.57.0
5599
+ * Domma Elements CSS v0.58.1
5600
5600
  * Dynamic Object Manipulation & Modeling API
5601
5601
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5602
- * Built: 2026-10-24T20:04:51.175Z
5603
- * Commit: 8ca8224
5602
+ * Built: 2026-10-25T09:04:25.608Z
5603
+ * Commit: bcc485e
5604
5604
  */
5605
5605
 
5606
5606
  /**
@@ -16359,7 +16359,7 @@ a.avatar-more-person:hover .avatar-more-name {
16359
16359
  }
16360
16360
 
16361
16361
  /* A tooltip that is always shown needs room above the track */
16362
- .dm-range-slider[data-tooltip="always"]:not([data-orientation="vertical"]) {
16362
+ .dm-range-slider[data-tooltip-mode="always"]:not([data-orientation="vertical"]) {
16363
16363
  margin-top: 1.75rem;
16364
16364
  }
16365
16365
 
@@ -16483,10 +16483,10 @@ a.avatar-more-person:hover .avatar-more-name {
16483
16483
  transform: translateY(-50%);
16484
16484
  }
16485
16485
 
16486
- .dm-range-slider[data-tooltip="always"] .dm-range-tooltip,
16487
- .dm-range-slider[data-tooltip="hover"] .dm-range-thumb:hover .dm-range-tooltip,
16488
- .dm-range-slider[data-tooltip="hover"] .dm-range-thumb:focus-visible .dm-range-tooltip,
16489
- .dm-range-slider[data-tooltip="hover"] .dm-range-thumb.is-active .dm-range-tooltip {
16486
+ .dm-range-slider[data-tooltip-mode="always"] .dm-range-tooltip,
16487
+ .dm-range-slider[data-tooltip-mode="hover"] .dm-range-thumb:hover .dm-range-tooltip,
16488
+ .dm-range-slider[data-tooltip-mode="hover"] .dm-range-thumb:focus-visible .dm-range-tooltip,
16489
+ .dm-range-slider[data-tooltip-mode="hover"] .dm-range-thumb.is-active .dm-range-tooltip {
16490
16490
  opacity: 1;
16491
16491
  visibility: visible;
16492
16492
  }
@@ -16613,11 +16613,11 @@ a.avatar-more-person:hover .avatar-more-name {
16613
16613
  ============================================ */
16614
16614
 
16615
16615
  /*!
16616
- * Domma Themes v0.57.0
16616
+ * Domma Themes v0.58.1
16617
16617
  * Dynamic Object Manipulation & Modeling API
16618
16618
  * (c) 2026 Darryl Waterhouse & DCBW-IT
16619
- * Built: 2026-10-24T20:04:51.154Z
16620
- * Commit: 8ca8224
16619
+ * Built: 2026-10-25T09:04:25.585Z
16620
+ * Commit: bcc485e
16621
16621
  */
16622
16622
 
16623
16623
  /**
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Data-Focused CSS Bundle v0.57.0
2
+ * Domma Data-Focused CSS Bundle v0.58.1
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-24T20:04:51.363Z
5
+ * Built: 2026-10-25T09:04:25.779Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.57.0
14
+ * Domma Core CSS v0.58.1
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-10-24T20:04:51.166Z
18
- * Commit: 8ca8224
17
+ * Built: 2026-10-25T09:04:25.598Z
18
+ * Commit: bcc485e
19
19
  */
20
20
 
21
21
  /**
@@ -4971,11 +4971,11 @@ body.dm-cloaked.dm-ready {
4971
4971
  ============================================ */
4972
4972
 
4973
4973
  /*!
4974
- * Domma Grid CSS v0.57.0
4974
+ * Domma Grid CSS v0.58.1
4975
4975
  * Dynamic Object Manipulation & Modeling API
4976
4976
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4977
- * Built: 2026-10-24T20:04:51.170Z
4978
- * Commit: 8ca8224
4977
+ * Built: 2026-10-25T09:04:25.602Z
4978
+ * Commit: bcc485e
4979
4979
  */
4980
4980
 
4981
4981
  /**
@@ -5596,11 +5596,11 @@ body.dm-cloaked.dm-ready {
5596
5596
  ============================================ */
5597
5597
 
5598
5598
  /*!
5599
- * Domma Elements CSS v0.57.0
5599
+ * Domma Elements CSS v0.58.1
5600
5600
  * Dynamic Object Manipulation & Modeling API
5601
5601
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5602
- * Built: 2026-10-24T20:04:51.175Z
5603
- * Commit: 8ca8224
5602
+ * Built: 2026-10-25T09:04:25.608Z
5603
+ * Commit: bcc485e
5604
5604
  */
5605
5605
 
5606
5606
  /**
@@ -16359,7 +16359,7 @@ a.avatar-more-person:hover .avatar-more-name {
16359
16359
  }
16360
16360
 
16361
16361
  /* A tooltip that is always shown needs room above the track */
16362
- .dm-range-slider[data-tooltip="always"]:not([data-orientation="vertical"]) {
16362
+ .dm-range-slider[data-tooltip-mode="always"]:not([data-orientation="vertical"]) {
16363
16363
  margin-top: 1.75rem;
16364
16364
  }
16365
16365
 
@@ -16483,10 +16483,10 @@ a.avatar-more-person:hover .avatar-more-name {
16483
16483
  transform: translateY(-50%);
16484
16484
  }
16485
16485
 
16486
- .dm-range-slider[data-tooltip="always"] .dm-range-tooltip,
16487
- .dm-range-slider[data-tooltip="hover"] .dm-range-thumb:hover .dm-range-tooltip,
16488
- .dm-range-slider[data-tooltip="hover"] .dm-range-thumb:focus-visible .dm-range-tooltip,
16489
- .dm-range-slider[data-tooltip="hover"] .dm-range-thumb.is-active .dm-range-tooltip {
16486
+ .dm-range-slider[data-tooltip-mode="always"] .dm-range-tooltip,
16487
+ .dm-range-slider[data-tooltip-mode="hover"] .dm-range-thumb:hover .dm-range-tooltip,
16488
+ .dm-range-slider[data-tooltip-mode="hover"] .dm-range-thumb:focus-visible .dm-range-tooltip,
16489
+ .dm-range-slider[data-tooltip-mode="hover"] .dm-range-thumb.is-active .dm-range-tooltip {
16490
16490
  opacity: 1;
16491
16491
  visibility: visible;
16492
16492
  }
@@ -16613,11 +16613,11 @@ a.avatar-more-person:hover .avatar-more-name {
16613
16613
  ============================================ */
16614
16614
 
16615
16615
  /*!
16616
- * Domma Themes v0.57.0
16616
+ * Domma Themes v0.58.1
16617
16617
  * Dynamic Object Manipulation & Modeling API
16618
16618
  * (c) 2026 Darryl Waterhouse & DCBW-IT
16619
- * Built: 2026-10-24T20:04:51.154Z
16620
- * Commit: 8ca8224
16619
+ * Built: 2026-10-25T09:04:25.585Z
16620
+ * Commit: bcc485e
16621
16621
  */
16622
16622
 
16623
16623
  /**
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Essentials CSS Bundle v0.57.0
2
+ * Domma Essentials CSS Bundle v0.58.1
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-24T20:04:51.348Z
5
+ * Built: 2026-10-25T09:04:25.769Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.57.0
14
+ * Domma Core CSS v0.58.1
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-10-24T20:04:51.166Z
18
- * Commit: 8ca8224
17
+ * Built: 2026-10-25T09:04:25.598Z
18
+ * Commit: bcc485e
19
19
  */
20
20
 
21
21
  /**
@@ -4971,11 +4971,11 @@ body.dm-cloaked.dm-ready {
4971
4971
  ============================================ */
4972
4972
 
4973
4973
  /*!
4974
- * Domma Grid CSS v0.57.0
4974
+ * Domma Grid CSS v0.58.1
4975
4975
  * Dynamic Object Manipulation & Modeling API
4976
4976
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4977
- * Built: 2026-10-24T20:04:51.170Z
4978
- * Commit: 8ca8224
4977
+ * Built: 2026-10-25T09:04:25.602Z
4978
+ * Commit: bcc485e
4979
4979
  */
4980
4980
 
4981
4981
  /**
@@ -5596,11 +5596,11 @@ body.dm-cloaked.dm-ready {
5596
5596
  ============================================ */
5597
5597
 
5598
5598
  /*!
5599
- * Domma Elements CSS v0.57.0
5599
+ * Domma Elements CSS v0.58.1
5600
5600
  * Dynamic Object Manipulation & Modeling API
5601
5601
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5602
- * Built: 2026-10-24T20:04:51.175Z
5603
- * Commit: 8ca8224
5602
+ * Built: 2026-10-25T09:04:25.608Z
5603
+ * Commit: bcc485e
5604
5604
  */
5605
5605
 
5606
5606
  /**
@@ -16359,7 +16359,7 @@ a.avatar-more-person:hover .avatar-more-name {
16359
16359
  }
16360
16360
 
16361
16361
  /* A tooltip that is always shown needs room above the track */
16362
- .dm-range-slider[data-tooltip="always"]:not([data-orientation="vertical"]) {
16362
+ .dm-range-slider[data-tooltip-mode="always"]:not([data-orientation="vertical"]) {
16363
16363
  margin-top: 1.75rem;
16364
16364
  }
16365
16365
 
@@ -16483,10 +16483,10 @@ a.avatar-more-person:hover .avatar-more-name {
16483
16483
  transform: translateY(-50%);
16484
16484
  }
16485
16485
 
16486
- .dm-range-slider[data-tooltip="always"] .dm-range-tooltip,
16487
- .dm-range-slider[data-tooltip="hover"] .dm-range-thumb:hover .dm-range-tooltip,
16488
- .dm-range-slider[data-tooltip="hover"] .dm-range-thumb:focus-visible .dm-range-tooltip,
16489
- .dm-range-slider[data-tooltip="hover"] .dm-range-thumb.is-active .dm-range-tooltip {
16486
+ .dm-range-slider[data-tooltip-mode="always"] .dm-range-tooltip,
16487
+ .dm-range-slider[data-tooltip-mode="hover"] .dm-range-thumb:hover .dm-range-tooltip,
16488
+ .dm-range-slider[data-tooltip-mode="hover"] .dm-range-thumb:focus-visible .dm-range-tooltip,
16489
+ .dm-range-slider[data-tooltip-mode="hover"] .dm-range-thumb.is-active .dm-range-tooltip {
16490
16490
  opacity: 1;
16491
16491
  visibility: visible;
16492
16492
  }
@@ -16613,11 +16613,11 @@ a.avatar-more-person:hover .avatar-more-name {
16613
16613
  ============================================ */
16614
16614
 
16615
16615
  /*!
16616
- * Domma Themes v0.57.0
16616
+ * Domma Themes v0.58.1
16617
16617
  * Dynamic Object Manipulation & Modeling API
16618
16618
  * (c) 2026 Darryl Waterhouse & DCBW-IT
16619
- * Built: 2026-10-24T20:04:51.154Z
16620
- * Commit: 8ca8224
16619
+ * Built: 2026-10-25T09:04:25.585Z
16620
+ * Commit: bcc485e
16621
16621
  */
16622
16622
 
16623
16623
  /**
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Full CSS Bundle v0.57.0
2
+ * Domma Full CSS Bundle v0.58.1
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-24T20:04:51.357Z
5
+ * Built: 2026-10-25T09:04:25.774Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.57.0
14
+ * Domma Core CSS v0.58.1
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-10-24T20:04:51.166Z
18
- * Commit: 8ca8224
17
+ * Built: 2026-10-25T09:04:25.598Z
18
+ * Commit: bcc485e
19
19
  */
20
20
 
21
21
  /**
@@ -4971,11 +4971,11 @@ body.dm-cloaked.dm-ready {
4971
4971
  ============================================ */
4972
4972
 
4973
4973
  /*!
4974
- * Domma Grid CSS v0.57.0
4974
+ * Domma Grid CSS v0.58.1
4975
4975
  * Dynamic Object Manipulation & Modeling API
4976
4976
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4977
- * Built: 2026-10-24T20:04:51.170Z
4978
- * Commit: 8ca8224
4977
+ * Built: 2026-10-25T09:04:25.602Z
4978
+ * Commit: bcc485e
4979
4979
  */
4980
4980
 
4981
4981
  /**
@@ -5596,11 +5596,11 @@ body.dm-cloaked.dm-ready {
5596
5596
  ============================================ */
5597
5597
 
5598
5598
  /*!
5599
- * Domma Elements CSS v0.57.0
5599
+ * Domma Elements CSS v0.58.1
5600
5600
  * Dynamic Object Manipulation & Modeling API
5601
5601
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5602
- * Built: 2026-10-24T20:04:51.175Z
5603
- * Commit: 8ca8224
5602
+ * Built: 2026-10-25T09:04:25.608Z
5603
+ * Commit: bcc485e
5604
5604
  */
5605
5605
 
5606
5606
  /**
@@ -16359,7 +16359,7 @@ a.avatar-more-person:hover .avatar-more-name {
16359
16359
  }
16360
16360
 
16361
16361
  /* A tooltip that is always shown needs room above the track */
16362
- .dm-range-slider[data-tooltip="always"]:not([data-orientation="vertical"]) {
16362
+ .dm-range-slider[data-tooltip-mode="always"]:not([data-orientation="vertical"]) {
16363
16363
  margin-top: 1.75rem;
16364
16364
  }
16365
16365
 
@@ -16483,10 +16483,10 @@ a.avatar-more-person:hover .avatar-more-name {
16483
16483
  transform: translateY(-50%);
16484
16484
  }
16485
16485
 
16486
- .dm-range-slider[data-tooltip="always"] .dm-range-tooltip,
16487
- .dm-range-slider[data-tooltip="hover"] .dm-range-thumb:hover .dm-range-tooltip,
16488
- .dm-range-slider[data-tooltip="hover"] .dm-range-thumb:focus-visible .dm-range-tooltip,
16489
- .dm-range-slider[data-tooltip="hover"] .dm-range-thumb.is-active .dm-range-tooltip {
16486
+ .dm-range-slider[data-tooltip-mode="always"] .dm-range-tooltip,
16487
+ .dm-range-slider[data-tooltip-mode="hover"] .dm-range-thumb:hover .dm-range-tooltip,
16488
+ .dm-range-slider[data-tooltip-mode="hover"] .dm-range-thumb:focus-visible .dm-range-tooltip,
16489
+ .dm-range-slider[data-tooltip-mode="hover"] .dm-range-thumb.is-active .dm-range-tooltip {
16490
16490
  opacity: 1;
16491
16491
  visibility: visible;
16492
16492
  }
@@ -16613,11 +16613,11 @@ a.avatar-more-person:hover .avatar-more-name {
16613
16613
  ============================================ */
16614
16614
 
16615
16615
  /*!
16616
- * Domma Themes v0.57.0
16616
+ * Domma Themes v0.58.1
16617
16617
  * Dynamic Object Manipulation & Modeling API
16618
16618
  * (c) 2026 Darryl Waterhouse & DCBW-IT
16619
- * Built: 2026-10-24T20:04:51.154Z
16620
- * Commit: 8ca8224
16619
+ * Built: 2026-10-25T09:04:25.585Z
16620
+ * Commit: bcc485e
16621
16621
  */
16622
16622
 
16623
16623
  /**