domma-js 0.41.0 → 0.44.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,9 +1,9 @@
1
1
  /*!
2
- * Domma Elements CSS v0.41.0
2
+ * Domma Elements CSS v0.44.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-08-22T13:41:49.303Z
6
- * Commit: 5d8b7e1
5
+ * Built: 2026-09-22T03:19:19.332Z
6
+ * Commit: a452582
7
7
  */
8
8
 
9
9
  /**
@@ -5336,7 +5336,9 @@ code {
5336
5336
  z-index: 1000;
5337
5337
  min-width: 10rem;
5338
5338
  padding: 0.5rem 0;
5339
- margin: 0.125rem 0 0;
5339
+ /* No margin: the menu is placed by JS from `offset`, and a margin here would
5340
+ silently add to it, so the box would not sit where it was measured to. */
5341
+ margin: 0;
5340
5342
  background-color: var(--dm-surface);
5341
5343
  border: 1px solid var(--dm-border);
5342
5344
  border-radius: var(--dm-radius-md);
@@ -5354,30 +5356,13 @@ code {
5354
5356
  }
5355
5357
 
5356
5358
  /*
5357
- * Hover bridge: the menu is rendered as a document.body sibling positioned with a
5358
- * small offset/margin gap from its trigger. On a hover-triggered dropdown that gap
5359
- * is a dead-zone - the pointer leaves the trigger before reaching the menu, firing
5360
- * the close. These transparent pseudo-elements extend the menu's hoverable area
5361
- * above and below it, so the trigger→menu path is one continuous hover surface.
5362
- * Only present on hover dropdowns, so click dropdowns are unaffected.
5359
+ * The trigger→menu gap is bridged in JS, not CSS. A transparent pseudo-element
5360
+ * strip used to sit above and below the menu to keep the hover path continuous,
5361
+ * but it only ever covered a fixed 12px directly in line with the menu box: any
5362
+ * `offset` larger than that, or an approach taken at an angle, fell outside it,
5363
+ * and while open it also blocked the page underneath. Dropdown._pointerInSafeZone()
5364
+ * does the same job geometrically - see src/elements.js.
5363
5365
  */
5364
- .domma-dropdown-menu-hover::before,
5365
- .domma-dropdown-menu-hover::after {
5366
- content: '';
5367
- position: absolute;
5368
- left: 0;
5369
- right: 0;
5370
- height: 0.75rem;
5371
- /* transparent - a hover surface only, never painted */
5372
- }
5373
-
5374
- .domma-dropdown-menu-hover::before {
5375
- bottom: 100%; /* bridges the gap when the menu opens below the trigger */
5376
- }
5377
-
5378
- .domma-dropdown-menu-hover::after {
5379
- top: 100%; /* bridges the gap when the menu opens above the trigger */
5380
- }
5381
5366
 
5382
5367
  .domma-dropdown-item {
5383
5368
  display: block;
@@ -8108,3 +8093,425 @@ code {
8108
8093
  grid-template-columns: 1fr;
8109
8094
  }
8110
8095
  }
8096
+
8097
+ /* ============================================
8098
+ Context Menu
8099
+ Bound to a container, delegated to its children. Nested menus shadow their
8100
+ parent for the region they cover; see src/context-menu.js for resolution.
8101
+ ============================================ */
8102
+
8103
+ /*
8104
+ * Every themeable value is a custom property with the theme token as its
8105
+ * fallback, so an unstyled menu follows the active theme and only the options
8106
+ * actually passed override it. Nothing here generates per-instance rules.
8107
+ */
8108
+ .dm-context-menu {
8109
+ position: fixed;
8110
+ z-index: 10050;
8111
+ display: flex;
8112
+ flex-direction: column;
8113
+ gap: 1px;
8114
+ padding: 4px;
8115
+ overflow-y: auto;
8116
+ background: var(--dm-ctx-surface, var(--dm-surface));
8117
+ color: var(--dm-text);
8118
+ border: 1px solid var(--dm-ctx-accent, var(--dm-border));
8119
+ border-radius: var(--dm-ctx-radius, var(--dm-radius-md));
8120
+ box-shadow: var(--dm-ctx-shadow, 0 8px 24px rgba(0, 0, 0, 0.18));
8121
+ font-size: 0.875rem;
8122
+ transform-origin: top left;
8123
+ outline: none;
8124
+ transition:
8125
+ opacity var(--dm-ctx-duration, 120ms) var(--dm-ctx-easing, ease),
8126
+ transform var(--dm-ctx-duration, 120ms) var(--dm-ctx-easing, ease);
8127
+ }
8128
+
8129
+ /*
8130
+ * A translucent panel needs its own layer: mixing the surface with transparent
8131
+ * keeps the text fully opaque, which `opacity` on the element would not - that
8132
+ * would fade the labels along with the background and fail contrast outright.
8133
+ */
8134
+ .dm-context-menu[style*="--dm-ctx-opacity"] {
8135
+ background: color-mix(
8136
+ in srgb,
8137
+ var(--dm-ctx-surface, var(--dm-surface)) calc(var(--dm-ctx-opacity) * 100%),
8138
+ transparent
8139
+ );
8140
+ backdrop-filter: blur(10px);
8141
+ }
8142
+
8143
+ /* An accent tints the leading edge as well as the border. */
8144
+ .dm-context-menu[style*="--dm-ctx-accent"] {
8145
+ border-left-width: 3px;
8146
+ }
8147
+
8148
+ /* ---- transitions ---- */
8149
+
8150
+ .dm-context-menu[data-transition] {
8151
+ opacity: 0;
8152
+ }
8153
+
8154
+ .dm-context-menu[data-transition="scale"] { transform: scale(0.97); }
8155
+ .dm-context-menu[data-transition="fade"] { transform: none; }
8156
+ .dm-context-menu[data-transition="slide"] { transform: translateY(-6px); }
8157
+ .dm-context-menu[data-transition="none"] { transform: none; transition: none; }
8158
+
8159
+ .dm-context-menu.is-open {
8160
+ opacity: 1;
8161
+ transform: none;
8162
+ }
8163
+
8164
+ /* ---- density ---- */
8165
+
8166
+ .dm-context-menu[data-density="compact"] {
8167
+ font-size: 0.8125rem;
8168
+ padding: 2px;
8169
+ }
8170
+
8171
+ .dm-context-menu[data-density="compact"] .dm-context-menu-item {
8172
+ padding: 0.25rem 0.45rem;
8173
+ }
8174
+
8175
+ .dm-context-menu-item {
8176
+ display: flex;
8177
+ align-items: center;
8178
+ gap: 0.5rem;
8179
+ width: 100%;
8180
+ padding: 0.4rem 0.6rem;
8181
+ background: none;
8182
+ border: 0;
8183
+ border-radius: var(--dm-radius-sm);
8184
+ color: inherit;
8185
+ font: inherit;
8186
+ text-align: left;
8187
+ cursor: pointer;
8188
+ transition: background var(--dm-transition-fast);
8189
+ }
8190
+
8191
+ .dm-context-menu-item:hover:not(.is-disabled),
8192
+ .dm-context-menu-item:focus-visible {
8193
+ background: var(--dm-background-alt);
8194
+ outline: none;
8195
+ }
8196
+
8197
+ /*
8198
+ * The accent tints the hover wash rather than the label. A named colour cannot
8199
+ * be guaranteed readable against whatever surface the menu is on - the same
8200
+ * trap that made --dm-danger 1.02:1 on admin-smooth-steel - so the text keeps
8201
+ * the one pairing every theme guarantees and the accent carries the meaning.
8202
+ */
8203
+ .dm-context-menu[style*="--dm-ctx-accent"] .dm-context-menu-item:hover:not(.is-disabled),
8204
+ .dm-context-menu[style*="--dm-ctx-accent"] .dm-context-menu-item:focus-visible {
8205
+ background: color-mix(in srgb, var(--dm-ctx-accent) 16%, transparent);
8206
+ }
8207
+
8208
+ .dm-context-menu-item:focus-visible {
8209
+ box-shadow: inset 0 0 0 2px var(--dm-border-focus);
8210
+ }
8211
+
8212
+ .dm-context-menu-item.is-disabled {
8213
+ opacity: 0.45;
8214
+ cursor: not-allowed;
8215
+ }
8216
+
8217
+ /*
8218
+ * Destructive items carry their warning in a tinted wash rather than in red
8219
+ * text. A saturated red cannot be read on a mid-tone surface - on
8220
+ * admin-smooth-steel, --dm-danger against --dm-surface lands at 1.02:1 - and
8221
+ * no single red works across a light surface, a dark one and the mid-tone
8222
+ * themes in between. The wash is mixed FROM the surface, so it adapts, and the
8223
+ * label keeps the one colour every theme guarantees is readable on it.
8224
+ */
8225
+ .dm-context-menu-item.is-danger {
8226
+ background: color-mix(in srgb, var(--dm-danger) 10%, transparent);
8227
+ }
8228
+
8229
+ .dm-context-menu-item.is-danger:hover:not(.is-disabled) {
8230
+ background: color-mix(in srgb, var(--dm-danger) 22%, transparent);
8231
+ }
8232
+
8233
+ .dm-context-menu-icon {
8234
+ display: inline-flex;
8235
+ align-items: center;
8236
+ justify-content: center;
8237
+ flex: 0 0 16px;
8238
+ width: 16px;
8239
+ height: 16px;
8240
+ }
8241
+
8242
+ .dm-context-menu-label {
8243
+ flex: 1 1 auto;
8244
+ white-space: nowrap;
8245
+ overflow: hidden;
8246
+ text-overflow: ellipsis;
8247
+ }
8248
+
8249
+ .dm-context-menu-shortcut {
8250
+ flex: 0 0 auto;
8251
+ padding-left: 1rem;
8252
+ font-size: 0.78em;
8253
+ font-variant-numeric: tabular-nums;
8254
+ opacity: 0.8;
8255
+ }
8256
+
8257
+ .dm-context-menu-chevron {
8258
+ display: inline-flex;
8259
+ flex: 0 0 auto;
8260
+ margin-left: auto;
8261
+ padding-left: 0.4rem;
8262
+ opacity: 0.7;
8263
+ }
8264
+
8265
+ .dm-context-menu-item.has-submenu .dm-context-menu-label {
8266
+ flex: 0 1 auto;
8267
+ }
8268
+
8269
+ .dm-context-menu-item.is-checked .dm-context-menu-icon::after {
8270
+ content: "";
8271
+ width: 8px;
8272
+ height: 8px;
8273
+ border-radius: 50%;
8274
+ background: var(--dm-ctx-accent, var(--dm-primary));
8275
+ }
8276
+
8277
+ .dm-context-menu-divider {
8278
+ height: 1px;
8279
+ margin: 4px 2px;
8280
+ background: var(--dm-border);
8281
+ }
8282
+
8283
+ .dm-context-menu-header {
8284
+ padding: 0.35rem 0.6rem 0.2rem;
8285
+ font-size: 0.72rem;
8286
+ font-weight: 600;
8287
+ letter-spacing: 0.04em;
8288
+ text-transform: uppercase;
8289
+ }
8290
+
8291
+ /* The affordance that tells people a menu is there at all. */
8292
+ .dm-context-menu-host {
8293
+ cursor: context-menu;
8294
+ }
8295
+
8296
+ @media (prefers-reduced-motion: reduce) {
8297
+ .dm-context-menu,
8298
+ .dm-context-menu[data-transition] {
8299
+ transition: none !important;
8300
+ transform: none !important;
8301
+ }
8302
+ }
8303
+
8304
+ /* ============================================
8305
+ DatePicker
8306
+ --------------------------------------------
8307
+ Every colour is a --dm-* token that the theme layer defines, so the calendar
8308
+ takes whatever theme the host is wearing - including one applied to a region
8309
+ by a theme override, since the tokens are inherited rather than hard-coded.
8310
+ Nothing here invents a token: an undefined var() resolves to nothing and
8311
+ paints a blank panel.
8312
+ ============================================ */
8313
+
8314
+ .dm-datepicker {
8315
+ position: absolute;
8316
+ z-index: 1080;
8317
+ width: max-content;
8318
+ padding: 0.5rem;
8319
+
8320
+ font-family: var(--dm-font-sans);
8321
+ font-size: var(--dm-font-size-sm);
8322
+ color: var(--dm-text);
8323
+
8324
+ background: var(--dm-surface-raised, var(--dm-surface));
8325
+ border: 1px solid var(--dm-border);
8326
+ border-radius: var(--dm-radius-lg);
8327
+ box-shadow: var(--dm-shadow-lg);
8328
+ }
8329
+
8330
+ .dm-datepicker--inline {
8331
+ position: static;
8332
+ box-shadow: none;
8333
+ margin-top: 0.35rem;
8334
+ }
8335
+
8336
+ /* Header: month and year pickers between two chevrons. */
8337
+
8338
+ .dm-datepicker-head {
8339
+ display: flex;
8340
+ align-items: center;
8341
+ gap: 0.35rem;
8342
+ margin-bottom: 0.4rem;
8343
+ }
8344
+
8345
+ .dm-datepicker-pickers {
8346
+ display: flex;
8347
+ gap: 0.3rem;
8348
+ flex: 1 1 auto;
8349
+ justify-content: center;
8350
+ }
8351
+
8352
+ /*
8353
+ * Five rules below are recorded in scripts/validate-contrast-pairs.baseline.json
8354
+ * rather than fixed, and the reason is the theme system, not this component.
8355
+ *
8356
+ * The three `--dm-text-disabled` rules (.is-outside, .is-disabled and the
8357
+ * disabled action) sit below 3:1 on `--dm-surface-raised` in ALL 33 themes -
8358
+ * 1.37 at worst. That is the disabled ramp behaving as designed, and WCAG AA
8359
+ * 1.4.3 exempts inactive controls from the contrast minimum. Lifting it to 4.5
8360
+ * here would make disabled dates LIGHTER than the muted weekday header, which
8361
+ * inverts the hierarchy.
8362
+ *
8363
+ * The two `--dm-text-muted` rules (.dm-datepicker-nav, .dm-datepicker-week)
8364
+ * fail on `--dm-surface-raised` in 23 of the 33 themes, worst 3.11. No token
8365
+ * below `--dm-text` clears AA on a raised surface everywhere, so this is not
8366
+ * fixable by picking a different variable - the muted ramp itself would have to
8367
+ * be redesigned across every theme. Using `--dm-text` instead would pass, and
8368
+ * cost the weekday header and adjacent-month days the de-emphasis that makes a
8369
+ * calendar readable at a glance.
8370
+ *
8371
+ * If the muted ramp is ever revisited, `npm run validate:contrast
8372
+ * --update-baseline` should drop these two.
8373
+ */
8374
+ .dm-datepicker-nav {
8375
+ display: inline-flex;
8376
+ align-items: center;
8377
+ justify-content: center;
8378
+ width: 28px;
8379
+ height: 28px;
8380
+ padding: 0;
8381
+ flex: 0 0 auto;
8382
+
8383
+ color: var(--dm-text-muted);
8384
+ background: transparent;
8385
+ border: 1px solid transparent;
8386
+ border-radius: var(--dm-radius-md);
8387
+ cursor: pointer;
8388
+ transition: background var(--dm-transition-fast), color var(--dm-transition-fast);
8389
+ }
8390
+
8391
+ .dm-datepicker-nav:hover {
8392
+ color: var(--dm-text);
8393
+ background: var(--dm-hover-bg);
8394
+ }
8395
+
8396
+ .dm-datepicker-select {
8397
+ padding: 0.2rem 0.35rem;
8398
+ font: inherit;
8399
+ color: var(--dm-input-text, var(--dm-text));
8400
+ background: var(--dm-input-bg, var(--dm-surface));
8401
+ border: 1px solid var(--dm-input-border, var(--dm-border));
8402
+ border-radius: var(--dm-radius-md);
8403
+ cursor: pointer;
8404
+ }
8405
+
8406
+ .dm-datepicker-select:focus-visible {
8407
+ outline: none;
8408
+ border-color: var(--dm-input-focus-border, var(--dm-primary));
8409
+ box-shadow: var(--dm-focus-ring);
8410
+ }
8411
+
8412
+ /* The grid. Seven equal columns, so the weekday row and the days line up
8413
+ whatever the digits are - a table would do the same but cannot carry the
8414
+ roles this needs. */
8415
+
8416
+ .dm-datepicker-row {
8417
+ display: grid;
8418
+ grid-template-columns: repeat(7, 2rem);
8419
+ gap: 2px;
8420
+ }
8421
+
8422
+ .dm-datepicker[data-week-numbers] .dm-datepicker-row {
8423
+ grid-template-columns: 1.6rem repeat(7, 2rem);
8424
+ }
8425
+
8426
+ .dm-datepicker-weekdays { margin-bottom: 2px; }
8427
+
8428
+ .dm-datepicker-weekday,
8429
+ .dm-datepicker-week {
8430
+ display: flex;
8431
+ align-items: center;
8432
+ justify-content: center;
8433
+ height: 1.6rem;
8434
+ font-size: var(--dm-font-size-xs);
8435
+ font-weight: var(--dm-font-weight-semibold);
8436
+ color: var(--dm-text-muted);
8437
+ }
8438
+
8439
+ .dm-datepicker-week { font-weight: 400; }
8440
+
8441
+ .dm-datepicker-day {
8442
+ display: flex;
8443
+ align-items: center;
8444
+ justify-content: center;
8445
+ height: 2rem;
8446
+ padding: 0;
8447
+
8448
+ font: inherit;
8449
+ font-variant-numeric: tabular-nums;
8450
+ color: var(--dm-text);
8451
+ background: transparent;
8452
+ border: 1px solid transparent;
8453
+ border-radius: var(--dm-radius-md);
8454
+ cursor: pointer;
8455
+ transition: background var(--dm-transition-fast), color var(--dm-transition-fast);
8456
+ }
8457
+
8458
+ .dm-datepicker-day:hover:not(.is-disabled) { background: var(--dm-hover-bg); }
8459
+
8460
+ .dm-datepicker-day:focus-visible {
8461
+ outline: none;
8462
+ box-shadow: var(--dm-focus-ring);
8463
+ }
8464
+
8465
+ /* The days either side of the month are shown rather than blanked: a calendar
8466
+ with holes in it is harder to read than one that runs on. */
8467
+ .dm-datepicker-day.is-outside { color: var(--dm-text-disabled); }
8468
+
8469
+ .dm-datepicker-day.is-today {
8470
+ border-color: var(--dm-primary);
8471
+ font-weight: var(--dm-font-weight-semibold);
8472
+ }
8473
+
8474
+ .dm-datepicker-day.is-selected,
8475
+ .dm-datepicker-day.is-selected:hover {
8476
+ color: var(--dm-primary-text);
8477
+ background: var(--dm-primary);
8478
+ border-color: var(--dm-primary);
8479
+ }
8480
+
8481
+ .dm-datepicker-day.is-disabled {
8482
+ color: var(--dm-text-disabled);
8483
+ cursor: not-allowed;
8484
+ opacity: var(--dm-disabled-opacity);
8485
+ }
8486
+
8487
+ /* Footer actions. */
8488
+
8489
+ .dm-datepicker-foot {
8490
+ display: flex;
8491
+ gap: 0.35rem;
8492
+ justify-content: flex-end;
8493
+ margin-top: 0.45rem;
8494
+ padding-top: 0.45rem;
8495
+ border-top: 1px solid var(--dm-border);
8496
+ }
8497
+
8498
+ .dm-datepicker-action {
8499
+ padding: 0.2rem 0.6rem;
8500
+ font: inherit;
8501
+ font-size: var(--dm-font-size-xs);
8502
+ color: var(--dm-link);
8503
+ background: transparent;
8504
+ border: 0;
8505
+ border-radius: var(--dm-radius-md);
8506
+ cursor: pointer;
8507
+ }
8508
+
8509
+ .dm-datepicker-action:hover:not(:disabled) {
8510
+ color: var(--dm-link-hover);
8511
+ background: var(--dm-hover-bg);
8512
+ }
8513
+
8514
+ .dm-datepicker-action:disabled {
8515
+ color: var(--dm-text-disabled);
8516
+ cursor: not-allowed;
8517
+ }
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Grid CSS v0.41.0
2
+ * Domma Grid CSS v0.44.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-08-22T13:41:49.299Z
6
- * Commit: 5d8b7e1
5
+ * Built: 2026-09-22T03:19:19.327Z
6
+ * Commit: a452582
7
7
  */
8
8
 
9
9
  /**
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Syntax Highlighting CSS v0.41.0
2
+ * Domma Syntax Highlighting CSS v0.44.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-08-22T13:41:49.308Z
6
- * Commit: 5d8b7e1
5
+ * Built: 2026-09-22T03:19:19.336Z
6
+ * Commit: a452582
7
7
  */
8
8
 
9
9
  /**
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Themes v0.41.0
2
+ * Domma Themes v0.44.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-08-22T13:41:49.280Z
6
- * Commit: 5d8b7e1
5
+ * Built: 2026-09-22T03:19:19.311Z
6
+ * Commit: a452582
7
7
  */
8
8
 
9
9
  /**
@@ -6151,40 +6151,40 @@
6151
6151
  .dm-theme-admin-smooth-steel {
6152
6152
  color-scheme: dark;
6153
6153
 
6154
- --dm-background: #586170;
6155
- --dm-background-alt: #4f5764;
6156
- --dm-surface: #646d7c;
6157
- --dm-surface-raised: #6c7686;
6158
- --dm-surface-overlay: #6c7686;
6154
+ --dm-background: #353a43;
6155
+ --dm-background-alt: #2f343c;
6156
+ --dm-surface: #3c414a;
6157
+ --dm-surface-raised: #414750;
6158
+ --dm-surface-overlay: #414750;
6159
6159
  --dm-text: #f7f9fb;
6160
6160
  --dm-text-secondary: #d2d8e0;
6161
6161
  --dm-text-muted: #b3bcc8;
6162
6162
  --dm-text-disabled: #8a93a1;
6163
6163
  --dm-text-inverse: #1f2733;
6164
- --dm-border: #6f7888;
6165
- --dm-border-light: #5c6573;
6166
- --dm-border-dark: #7a8494;
6164
+ --dm-border: #434852;
6165
+ --dm-border-light: #373d45;
6166
+ --dm-border-dark: #494f59;
6167
6167
  --dm-hover-bg: rgba(255, 255, 255, 0.07);
6168
6168
  --dm-active-bg: rgba(255, 255, 255, 0.10);
6169
6169
  --dm-disabled-opacity: 0.4;
6170
- --dm-sidebar-bg: #454d5a;
6170
+ --dm-sidebar-bg: #292e36;
6171
6171
  --dm-sidebar-text: #d2d8e0;
6172
- --dm-sidebar-border: #3b424d;
6173
- --dm-navbar-bg: #4f5764;
6172
+ --dm-sidebar-border: #232830;
6173
+ --dm-navbar-bg: #2f343c;
6174
6174
  --dm-navbar-text: #f7f9fb;
6175
- --dm-navbar-border: #5c6573;
6176
- --dm-table-header-bg: #535b69;
6175
+ --dm-navbar-border: #373d45;
6176
+ --dm-table-header-bg: #32373f;
6177
6177
  --dm-table-stripe-bg: rgba(255, 255, 255, 0.03);
6178
6178
  --dm-table-hover-bg: rgba(255, 255, 255, 0.07);
6179
6179
  --dm-modal-backdrop: rgba(0, 0, 0, 0.6);
6180
6180
  --dm-tooltip-bg: #1f2733;
6181
6181
  --dm-tooltip-text: #ffffff;
6182
- --dm-scrollbar-track: #4f5764;
6183
- --dm-scrollbar-thumb: #7a8494;
6184
- --dm-scrollbar-thumb-hover: #8b95a5;
6185
- --dm-code-bg: #454d5a;
6182
+ --dm-scrollbar-track: #2f343c;
6183
+ --dm-scrollbar-thumb: #494f59;
6184
+ --dm-scrollbar-thumb-hover: #5a616c;
6185
+ --dm-code-bg: #292e36;
6186
6186
  --dm-code-text: #ffd9a8;
6187
- --dm-progress-bg: #535b69;
6187
+ --dm-progress-bg: #32373f;
6188
6188
 
6189
6189
  --dm-primary: #3b76bc;
6190
6190
  --dm-primary-hover: #356bab;
@@ -6289,40 +6289,40 @@
6289
6289
  .dm-theme-admin-smooth-indigo {
6290
6290
  color-scheme: dark;
6291
6291
 
6292
- --dm-background: #586170;
6293
- --dm-background-alt: #4f5764;
6294
- --dm-surface: #646d7c;
6295
- --dm-surface-raised: #6c7686;
6296
- --dm-surface-overlay: #6c7686;
6292
+ --dm-background: #353a43;
6293
+ --dm-background-alt: #2f343c;
6294
+ --dm-surface: #3c414a;
6295
+ --dm-surface-raised: #414750;
6296
+ --dm-surface-overlay: #414750;
6297
6297
  --dm-text: #f7f9fb;
6298
6298
  --dm-text-secondary: #d2d8e0;
6299
6299
  --dm-text-muted: #b3bcc8;
6300
6300
  --dm-text-disabled: #8a93a1;
6301
6301
  --dm-text-inverse: #1f2733;
6302
- --dm-border: #6f7888;
6303
- --dm-border-light: #5c6573;
6304
- --dm-border-dark: #7a8494;
6302
+ --dm-border: #434852;
6303
+ --dm-border-light: #373d45;
6304
+ --dm-border-dark: #494f59;
6305
6305
  --dm-hover-bg: rgba(255, 255, 255, 0.07);
6306
6306
  --dm-active-bg: rgba(255, 255, 255, 0.10);
6307
6307
  --dm-disabled-opacity: 0.4;
6308
- --dm-sidebar-bg: #454d5a;
6308
+ --dm-sidebar-bg: #292e36;
6309
6309
  --dm-sidebar-text: #d2d8e0;
6310
- --dm-sidebar-border: #3b424d;
6311
- --dm-navbar-bg: #4f5764;
6310
+ --dm-sidebar-border: #232830;
6311
+ --dm-navbar-bg: #2f343c;
6312
6312
  --dm-navbar-text: #f7f9fb;
6313
- --dm-navbar-border: #5c6573;
6314
- --dm-table-header-bg: #535b69;
6313
+ --dm-navbar-border: #373d45;
6314
+ --dm-table-header-bg: #32373f;
6315
6315
  --dm-table-stripe-bg: rgba(255, 255, 255, 0.03);
6316
6316
  --dm-table-hover-bg: rgba(255, 255, 255, 0.07);
6317
6317
  --dm-modal-backdrop: rgba(0, 0, 0, 0.6);
6318
6318
  --dm-tooltip-bg: #1f2733;
6319
6319
  --dm-tooltip-text: #ffffff;
6320
- --dm-scrollbar-track: #4f5764;
6321
- --dm-scrollbar-thumb: #7a8494;
6322
- --dm-scrollbar-thumb-hover: #8b95a5;
6323
- --dm-code-bg: #454d5a;
6320
+ --dm-scrollbar-track: #2f343c;
6321
+ --dm-scrollbar-thumb: #494f59;
6322
+ --dm-scrollbar-thumb-hover: #5a616c;
6323
+ --dm-code-bg: #292e36;
6324
6324
  --dm-code-text: #ffd9a8;
6325
- --dm-progress-bg: #535b69;
6325
+ --dm-progress-bg: #32373f;
6326
6326
 
6327
6327
  --dm-primary: #5b63a8;
6328
6328
  --dm-primary-hover: #4f5694;
@@ -6427,40 +6427,40 @@
6427
6427
  .dm-theme-admin-smooth-teal {
6428
6428
  color-scheme: dark;
6429
6429
 
6430
- --dm-background: #586170;
6431
- --dm-background-alt: #4f5764;
6432
- --dm-surface: #646d7c;
6433
- --dm-surface-raised: #6c7686;
6434
- --dm-surface-overlay: #6c7686;
6430
+ --dm-background: #353a43;
6431
+ --dm-background-alt: #2f343c;
6432
+ --dm-surface: #3c414a;
6433
+ --dm-surface-raised: #414750;
6434
+ --dm-surface-overlay: #414750;
6435
6435
  --dm-text: #f7f9fb;
6436
6436
  --dm-text-secondary: #d2d8e0;
6437
6437
  --dm-text-muted: #b3bcc8;
6438
6438
  --dm-text-disabled: #8a93a1;
6439
6439
  --dm-text-inverse: #1f2733;
6440
- --dm-border: #6f7888;
6441
- --dm-border-light: #5c6573;
6442
- --dm-border-dark: #7a8494;
6440
+ --dm-border: #434852;
6441
+ --dm-border-light: #373d45;
6442
+ --dm-border-dark: #494f59;
6443
6443
  --dm-hover-bg: rgba(255, 255, 255, 0.07);
6444
6444
  --dm-active-bg: rgba(255, 255, 255, 0.10);
6445
6445
  --dm-disabled-opacity: 0.4;
6446
- --dm-sidebar-bg: #454d5a;
6446
+ --dm-sidebar-bg: #292e36;
6447
6447
  --dm-sidebar-text: #d2d8e0;
6448
- --dm-sidebar-border: #3b424d;
6449
- --dm-navbar-bg: #4f5764;
6448
+ --dm-sidebar-border: #232830;
6449
+ --dm-navbar-bg: #2f343c;
6450
6450
  --dm-navbar-text: #f7f9fb;
6451
- --dm-navbar-border: #5c6573;
6452
- --dm-table-header-bg: #535b69;
6451
+ --dm-navbar-border: #373d45;
6452
+ --dm-table-header-bg: #32373f;
6453
6453
  --dm-table-stripe-bg: rgba(255, 255, 255, 0.03);
6454
6454
  --dm-table-hover-bg: rgba(255, 255, 255, 0.07);
6455
6455
  --dm-modal-backdrop: rgba(0, 0, 0, 0.6);
6456
6456
  --dm-tooltip-bg: #1f2733;
6457
6457
  --dm-tooltip-text: #ffffff;
6458
- --dm-scrollbar-track: #4f5764;
6459
- --dm-scrollbar-thumb: #7a8494;
6460
- --dm-scrollbar-thumb-hover: #8b95a5;
6461
- --dm-code-bg: #454d5a;
6458
+ --dm-scrollbar-track: #2f343c;
6459
+ --dm-scrollbar-thumb: #494f59;
6460
+ --dm-scrollbar-thumb-hover: #5a616c;
6461
+ --dm-code-bg: #292e36;
6462
6462
  --dm-code-text: #ffd9a8;
6463
- --dm-progress-bg: #535b69;
6463
+ --dm-progress-bg: #32373f;
6464
6464
 
6465
6465
  --dm-primary: #2a8178;
6466
6466
  --dm-primary-hover: #287d75;