domma-js 0.55.0 → 0.57.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.
Files changed (116) hide show
  1. package/assets/types/generated/public/assets/flags/africa.d.ts +6 -0
  2. package/assets/types/generated/public/assets/flags/americas.d.ts +6 -0
  3. package/assets/types/generated/public/assets/flags/asia.d.ts +6 -0
  4. package/assets/types/generated/public/assets/flags/europe.d.ts +9 -0
  5. package/assets/types/generated/public/assets/flags/index.d.ts +11 -0
  6. package/assets/types/generated/public/assets/flags/oceania.d.ts +2 -0
  7. package/assets/types/generated/public/assets/icons/buildings.d.ts +6 -0
  8. package/assets/types/generated/public/assets/icons/code.d.ts +2 -0
  9. package/assets/types/generated/public/assets/icons/commerce.d.ts +7 -0
  10. package/assets/types/generated/public/assets/icons/communication.d.ts +7 -0
  11. package/assets/types/generated/public/assets/icons/devices.d.ts +6 -0
  12. package/assets/types/generated/public/assets/icons/emojis.d.ts +6 -0
  13. package/assets/types/generated/public/assets/icons/files.d.ts +7 -0
  14. package/assets/types/generated/public/assets/icons/finance.d.ts +6 -0
  15. package/assets/types/generated/public/assets/icons/forms.d.ts +5 -0
  16. package/assets/types/generated/public/assets/icons/health.d.ts +6 -0
  17. package/assets/types/generated/public/assets/icons/index.d.ts +24 -0
  18. package/assets/types/generated/public/assets/icons/media.d.ts +7 -0
  19. package/assets/types/generated/public/assets/icons/navigation.d.ts +7 -0
  20. package/assets/types/generated/public/assets/icons/seasonal.d.ts +6 -0
  21. package/assets/types/generated/public/assets/icons/social.d.ts +7 -0
  22. package/assets/types/generated/public/assets/icons/sport.d.ts +6 -0
  23. package/assets/types/generated/public/assets/icons/status.d.ts +7 -0
  24. package/assets/types/generated/public/assets/icons/transport.d.ts +7 -0
  25. package/assets/types/generated/public/assets/icons/ui.d.ts +7 -0
  26. package/assets/types/generated/public/assets/icons/weather.d.ts +6 -0
  27. package/assets/types/generated/src/auth.d.ts +424 -0
  28. package/assets/types/generated/src/avatar.d.ts +270 -0
  29. package/assets/types/generated/src/binding-source.d.ts +58 -0
  30. package/assets/types/generated/src/butterfly-drawing.d.ts +2 -0
  31. package/assets/types/generated/src/component-factory.d.ts +150 -0
  32. package/assets/types/generated/src/component.d.ts +162 -0
  33. package/assets/types/generated/src/components/back-to-top.d.ts +150 -0
  34. package/assets/types/generated/src/components/badge.d.ts +208 -0
  35. package/assets/types/generated/src/components/card.d.ts +189 -0
  36. package/assets/types/generated/src/components/command-palette.d.ts +352 -0
  37. package/assets/types/generated/src/components/dropzone.d.ts +342 -0
  38. package/assets/types/generated/src/components/focus-trap.d.ts +238 -0
  39. package/assets/types/generated/src/components/loader.d.ts +133 -0
  40. package/assets/types/generated/src/components/modal.d.ts +341 -0
  41. package/assets/types/generated/src/components/range-slider.d.ts +267 -0
  42. package/assets/types/generated/src/components/shared.d.ts +91 -0
  43. package/assets/types/generated/src/components/split-pane.d.ts +239 -0
  44. package/assets/types/generated/src/components/toast.d.ts +284 -0
  45. package/assets/types/generated/src/components/tooltip.d.ts +200 -0
  46. package/assets/types/generated/src/components/virtual-list.d.ts +340 -0
  47. package/assets/types/generated/src/config.d.ts +193 -0
  48. package/assets/types/generated/src/context-cursor.d.ts +69 -0
  49. package/assets/types/generated/src/context-menu.d.ts +596 -0
  50. package/assets/types/generated/src/dates.d.ts +367 -0
  51. package/assets/types/generated/src/dom.d.ts +1221 -0
  52. package/assets/types/generated/src/effects.d.ts +1281 -0
  53. package/assets/types/generated/src/elements.d.ts +4996 -0
  54. package/assets/types/generated/src/escape.d.ts +5 -0
  55. package/assets/types/generated/src/flags-bundle.d.ts +4 -0
  56. package/assets/types/generated/src/flags.d.ts +338 -0
  57. package/assets/types/generated/src/forms.d.ts +1060 -0
  58. package/assets/types/generated/src/globals.d.ts +45 -0
  59. package/assets/types/generated/src/http.d.ts +131 -0
  60. package/assets/types/generated/src/i18n.d.ts +261 -0
  61. package/assets/types/generated/src/icons.d.ts +213 -0
  62. package/assets/types/generated/src/index.d.ts +249 -0
  63. package/assets/types/generated/src/input-group.d.ts +135 -0
  64. package/assets/types/generated/src/models.d.ts +968 -0
  65. package/assets/types/generated/src/popover.d.ts +412 -0
  66. package/assets/types/generated/src/router.d.ts +344 -0
  67. package/assets/types/generated/src/safe-url.d.ts +10 -0
  68. package/assets/types/generated/src/sanitize.d.ts +97 -0
  69. package/assets/types/generated/src/schema-builder.d.ts +420 -0
  70. package/assets/types/generated/src/skeleton.d.ts +135 -0
  71. package/assets/types/generated/src/smooth-caret.d.ts +61 -0
  72. package/assets/types/generated/src/sortable.d.ts +369 -0
  73. package/assets/types/generated/src/storage.d.ts +93 -0
  74. package/assets/types/generated/src/tables.d.ts +901 -0
  75. package/assets/types/generated/src/theme.d.ts +277 -0
  76. package/assets/types/generated/src/ticker-tape-drawing.d.ts +2 -0
  77. package/assets/types/generated/src/treeview.d.ts +504 -0
  78. package/assets/types/generated/src/utils.d.ts +1667 -0
  79. package/assets/types/generated/src/web-components/base/domma-element.d.ts +134 -0
  80. package/assets/types/generated/src/web-components/index.d.ts +14 -0
  81. package/assets/types/generated/vendor/domma-reactive.d.ts +587 -0
  82. package/assets/types/index.d.ts +104 -216
  83. package/package.json +5 -2
  84. package/public/dist/bundles/domma-complete.css +1084 -14
  85. package/public/dist/bundles/domma-data-focused.css +1084 -14
  86. package/public/dist/bundles/domma-essentials.css +1084 -14
  87. package/public/dist/bundles/domma-full.css +1084 -14
  88. package/public/dist/bundles/domma-minimal.css +8 -8
  89. package/public/dist/domma-flags.esm.js +3 -3
  90. package/public/dist/domma-flags.esm.js.map +1 -1
  91. package/public/dist/domma-flags.min.js +3 -3
  92. package/public/dist/domma-flags.min.js.map +1 -1
  93. package/public/dist/domma-syntax.min.js +3 -3
  94. package/public/dist/domma.css +3 -3
  95. package/public/dist/domma.esm.js +5 -5
  96. package/public/dist/domma.esm.js.map +1 -1
  97. package/public/dist/domma.min.js +5 -5
  98. package/public/dist/domma.min.js.map +1 -1
  99. package/public/dist/elements.css +1073 -3
  100. package/public/dist/grid.css +3 -3
  101. package/public/dist/syntax.css +3 -3
  102. package/public/dist/themes/domma-themes.css +3 -3
  103. package/templates/kickstart/frontend/types/domma.d.ts +2 -1
  104. package/assets/types/config.d.ts +0 -136
  105. package/assets/types/dates.d.ts +0 -209
  106. package/assets/types/dom.d.ts +0 -448
  107. package/assets/types/elements.d.ts +0 -682
  108. package/assets/types/flags.d.ts +0 -130
  109. package/assets/types/http.d.ts +0 -97
  110. package/assets/types/icons.d.ts +0 -147
  111. package/assets/types/models.d.ts +0 -260
  112. package/assets/types/smooth-caret.d.ts +0 -12
  113. package/assets/types/storage.d.ts +0 -93
  114. package/assets/types/tables.d.ts +0 -327
  115. package/assets/types/theme.d.ts +0 -137
  116. package/assets/types/utils.d.ts +0 -675
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Data-Focused CSS Bundle v0.55.0
2
+ * Domma Data-Focused CSS Bundle v0.57.0
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-24T15:07:57.676Z
5
+ * Built: 2026-10-24T20:04:51.363Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.55.0
14
+ * Domma Core CSS v0.57.0
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-10-24T15:07:57.499Z
18
- * Commit: 253e259
17
+ * Built: 2026-10-24T20:04:51.166Z
18
+ * Commit: 8ca8224
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.55.0
4974
+ * Domma Grid CSS v0.57.0
4975
4975
  * Dynamic Object Manipulation & Modeling API
4976
4976
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4977
- * Built: 2026-10-24T15:07:57.504Z
4978
- * Commit: 253e259
4977
+ * Built: 2026-10-24T20:04:51.170Z
4978
+ * Commit: 8ca8224
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.55.0
5599
+ * Domma Elements CSS v0.57.0
5600
5600
  * Dynamic Object Manipulation & Modeling API
5601
5601
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5602
- * Built: 2026-10-24T15:07:57.510Z
5603
- * Commit: 253e259
5602
+ * Built: 2026-10-24T20:04:51.175Z
5603
+ * Commit: 8ca8224
5604
5604
  */
5605
5605
 
5606
5606
  /**
@@ -9583,6 +9583,12 @@ code {
9583
9583
  z-index: 10000;
9584
9584
  }
9585
9585
 
9586
+ /* A slideover takes focus itself on open (its focus trap), so the first Tab reaches its
9587
+ first control; the panel is not a tab stop and needs no ring of its own. */
9588
+ .dm-slideover[tabindex="-1"]:focus {
9589
+ outline: none;
9590
+ }
9591
+
9586
9592
  .dm-dialog-overlay {
9587
9593
  position: fixed;
9588
9594
  top: 0;
@@ -15536,6 +15542,1070 @@ a.avatar-more-person:hover .avatar-more-name {
15536
15542
  text-decoration: underline;
15537
15543
  }
15538
15544
 
15545
+ /* ===== Command Palette ===== */
15546
+ /*
15547
+ * E.commandPalette(options) - src/components/command-palette.js
15548
+ *
15549
+ * The overlay covers the viewport: a backdrop and a panel near the top, the way the
15550
+ * modal looks (--dm-modal-* tokens), so it sits with the site's dialogs in every theme.
15551
+ * Above modals and slideovers, which it is often opened over; below popovers (10045)
15552
+ * and the context menu (10050).
15553
+ */
15554
+ .dm-command-palette {
15555
+ position: fixed;
15556
+ inset: 0;
15557
+ z-index: 10040;
15558
+ display: flex;
15559
+ justify-content: center;
15560
+ align-items: flex-start;
15561
+ padding: 12vh 1rem 1rem;
15562
+ box-sizing: border-box;
15563
+ --dm-command-palette-duration: 150ms;
15564
+ }
15565
+
15566
+ .dm-command-palette[hidden] {
15567
+ display: none;
15568
+ }
15569
+
15570
+ .dm-command-palette *,
15571
+ .dm-command-palette *::before,
15572
+ .dm-command-palette *::after {
15573
+ box-sizing: border-box;
15574
+ }
15575
+
15576
+ .dm-command-palette-backdrop {
15577
+ position: fixed;
15578
+ inset: 0;
15579
+ background: var(--dm-modal-backdrop);
15580
+ opacity: 0;
15581
+ transition: opacity var(--dm-command-palette-duration) ease;
15582
+ }
15583
+
15584
+ .dm-command-palette-panel {
15585
+ position: relative;
15586
+ display: flex;
15587
+ flex-direction: column;
15588
+ width: min(40rem, 100%);
15589
+ max-height: min(32rem, 76vh);
15590
+ background: var(--dm-modal-bg);
15591
+ color: var(--dm-text);
15592
+ border: 1px solid var(--dm-modal-border);
15593
+ border-radius: var(--dm-radius-lg);
15594
+ box-shadow: var(--dm-modal-shadow);
15595
+ overflow: hidden;
15596
+ opacity: 0;
15597
+ transform: scale(0.97) translateY(-6px);
15598
+ transition:
15599
+ opacity var(--dm-command-palette-duration) ease,
15600
+ transform var(--dm-command-palette-duration) cubic-bezier(0.16, 1, 0.3, 1);
15601
+ }
15602
+
15603
+ .dm-command-palette.is-open .dm-command-palette-backdrop { opacity: 1; }
15604
+ .dm-command-palette.is-open .dm-command-palette-panel { opacity: 1; transform: none; }
15605
+
15606
+ @media (prefers-reduced-motion: reduce) {
15607
+ .dm-command-palette-backdrop,
15608
+ .dm-command-palette-panel {
15609
+ transition: none;
15610
+ }
15611
+ }
15612
+
15613
+ /* Where you are in nested pages, with a way back up. */
15614
+ .dm-command-palette-crumbs {
15615
+ display: flex;
15616
+ align-items: center;
15617
+ gap: 0.5rem;
15618
+ padding: 0.625rem 0.875rem 0;
15619
+ font-size: 0.8125rem;
15620
+ color: var(--dm-text-muted);
15621
+ }
15622
+
15623
+ .dm-command-palette-crumbs[hidden] { display: none; }
15624
+
15625
+ .dm-command-palette-back {
15626
+ display: inline-flex;
15627
+ align-items: center;
15628
+ justify-content: center;
15629
+ width: 1.75rem;
15630
+ height: 1.75rem;
15631
+ padding: 0;
15632
+ border: 1px solid var(--dm-border);
15633
+ border-radius: var(--dm-radius-sm);
15634
+ background: transparent;
15635
+ color: var(--dm-text);
15636
+ cursor: pointer;
15637
+ }
15638
+
15639
+ .dm-command-palette-back:hover { background: var(--dm-hover-bg); }
15640
+
15641
+ .dm-command-palette-back:focus-visible {
15642
+ outline: 2px solid var(--dm-border-focus);
15643
+ outline-offset: 1px;
15644
+ }
15645
+
15646
+ .dm-command-palette-trail {
15647
+ display: flex;
15648
+ flex-wrap: wrap;
15649
+ gap: 0.25rem;
15650
+ margin: 0;
15651
+ padding: 0;
15652
+ list-style: none;
15653
+ }
15654
+
15655
+ .dm-command-palette-trail li + li::before {
15656
+ content: "/";
15657
+ margin-right: 0.25rem;
15658
+ opacity: 0.6;
15659
+ }
15660
+
15661
+ .dm-command-palette-trail [aria-current] { color: var(--dm-text); font-weight: 500; }
15662
+
15663
+ .dm-command-palette-search {
15664
+ display: flex;
15665
+ align-items: center;
15666
+ gap: 0.625rem;
15667
+ padding: 0.75rem 0.875rem;
15668
+ border-bottom: 1px solid var(--dm-border);
15669
+ }
15670
+
15671
+ .dm-command-palette-search-icon {
15672
+ display: inline-flex;
15673
+ color: var(--dm-text-muted);
15674
+ }
15675
+
15676
+ .dm-command-palette-input {
15677
+ flex: 1;
15678
+ min-width: 0;
15679
+ padding: 0.25rem 0;
15680
+ border: 0;
15681
+ background: transparent;
15682
+ color: var(--dm-text);
15683
+ font: inherit;
15684
+ font-size: 1rem;
15685
+ outline: none;
15686
+ }
15687
+
15688
+ .dm-command-palette-input::placeholder { color: var(--dm-input-placeholder); opacity: 1; }
15689
+
15690
+ /* The box is the focus; the panel shows it rather than a ring round a borderless input. */
15691
+ .dm-command-palette-search:focus-within {
15692
+ border-bottom-color: var(--dm-border-focus);
15693
+ }
15694
+
15695
+ .dm-command-palette-spinner {
15696
+ width: 1rem;
15697
+ height: 1rem;
15698
+ border: 2px solid var(--dm-border);
15699
+ border-top-color: var(--dm-primary);
15700
+ border-radius: 50%;
15701
+ animation: dm-command-palette-spin 0.7s linear infinite;
15702
+ }
15703
+
15704
+ .dm-command-palette-spinner[hidden] { display: none; }
15705
+
15706
+ @keyframes dm-command-palette-spin {
15707
+ to { transform: rotate(360deg); }
15708
+ }
15709
+
15710
+ @media (prefers-reduced-motion: reduce) {
15711
+ .dm-command-palette-spinner { animation-duration: 2.4s; }
15712
+ }
15713
+
15714
+ .dm-command-palette-list {
15715
+ flex: 1 1 auto;
15716
+ min-height: 0;
15717
+ overflow-y: auto;
15718
+ overscroll-behavior: contain;
15719
+ padding: 0.375rem;
15720
+ }
15721
+
15722
+ .dm-command-palette-list[hidden] { display: none; }
15723
+
15724
+ .dm-command-palette-group + .dm-command-palette-group,
15725
+ .dm-command-palette-group + .dm-command-palette-item,
15726
+ .dm-command-palette-item + .dm-command-palette-group {
15727
+ margin-top: 0.375rem;
15728
+ }
15729
+
15730
+ .dm-command-palette-group-heading {
15731
+ padding: 0.375rem 0.625rem 0.25rem;
15732
+ font-size: 0.75rem;
15733
+ font-weight: 600;
15734
+ letter-spacing: 0.02em;
15735
+ color: var(--dm-text-muted);
15736
+ }
15737
+
15738
+ .dm-command-palette-item {
15739
+ display: flex;
15740
+ align-items: center;
15741
+ gap: 0.625rem;
15742
+ min-height: 2.5rem;
15743
+ padding: 0.375rem 0.625rem;
15744
+ border-radius: var(--dm-radius-md);
15745
+ color: var(--dm-text);
15746
+ cursor: pointer;
15747
+ user-select: none;
15748
+ }
15749
+
15750
+ .dm-command-palette-item.is-active {
15751
+ background: var(--dm-selected-bg);
15752
+ }
15753
+
15754
+ /* Forced colours drop backgrounds: the active row keeps an outline instead. */
15755
+ @media (forced-colors: active) {
15756
+ .dm-command-palette-item.is-active { outline: 2px solid Highlight; }
15757
+ }
15758
+
15759
+ .dm-command-palette-item[aria-disabled="true"] {
15760
+ cursor: default;
15761
+ opacity: var(--dm-disabled-opacity);
15762
+ }
15763
+
15764
+ .dm-command-palette-icon {
15765
+ flex: 0 0 1rem;
15766
+ display: inline-flex;
15767
+ justify-content: center;
15768
+ color: var(--dm-text-muted);
15769
+ }
15770
+
15771
+ .dm-command-palette-item.is-active .dm-command-palette-icon { color: var(--dm-text); }
15772
+
15773
+ .dm-command-palette-text {
15774
+ flex: 1;
15775
+ min-width: 0;
15776
+ display: flex;
15777
+ flex-direction: column;
15778
+ line-height: 1.3;
15779
+ }
15780
+
15781
+ .dm-command-palette-title,
15782
+ .dm-command-palette-subtitle {
15783
+ overflow: hidden;
15784
+ text-overflow: ellipsis;
15785
+ white-space: nowrap;
15786
+ }
15787
+
15788
+ .dm-command-palette-subtitle {
15789
+ font-size: 0.8125rem;
15790
+ color: var(--dm-text-muted);
15791
+ }
15792
+
15793
+ .dm-command-palette-match {
15794
+ color: var(--dm-primary);
15795
+ font-weight: 600;
15796
+ }
15797
+
15798
+ .dm-command-palette-shortcut,
15799
+ .dm-command-palette-hint {
15800
+ display: inline-flex;
15801
+ align-items: center;
15802
+ gap: 0.25rem;
15803
+ }
15804
+
15805
+ .dm-command-palette kbd {
15806
+ display: inline-flex;
15807
+ align-items: center;
15808
+ justify-content: center;
15809
+ min-width: 1.375rem;
15810
+ height: 1.375rem;
15811
+ padding: 0 0.3rem;
15812
+ border: 1px solid var(--dm-border);
15813
+ border-bottom-width: 2px;
15814
+ border-radius: var(--dm-radius-sm);
15815
+ background: var(--dm-background-alt);
15816
+ color: var(--dm-text-secondary);
15817
+ font-family: inherit;
15818
+ font-size: 0.6875rem;
15819
+ line-height: 1;
15820
+ }
15821
+
15822
+ .dm-command-palette-more {
15823
+ display: inline-flex;
15824
+ color: var(--dm-text-muted);
15825
+ }
15826
+
15827
+ .dm-command-palette-status {
15828
+ padding: 1.5rem 1rem;
15829
+ text-align: center;
15830
+ font-size: 0.875rem;
15831
+ color: var(--dm-text-muted);
15832
+ }
15833
+
15834
+ .dm-command-palette-status[hidden] { display: none; }
15835
+ .dm-command-palette-status[data-state="error"] { color: var(--dm-danger); }
15836
+
15837
+ .dm-command-palette-footer {
15838
+ display: flex;
15839
+ flex-wrap: wrap;
15840
+ gap: 0.5rem 1rem;
15841
+ padding: 0.5rem 0.875rem;
15842
+ border-top: 1px solid var(--dm-border);
15843
+ background: var(--dm-background-alt);
15844
+ color: var(--dm-text-secondary);
15845
+ font-size: 0.75rem;
15846
+ }
15847
+
15848
+ /* Phones: the whole width, from the top. */
15849
+ @media (max-width: 640px) {
15850
+ .dm-command-palette {
15851
+ padding: 0;
15852
+ }
15853
+
15854
+ .dm-command-palette-panel {
15855
+ width: 100%;
15856
+ max-height: 85vh;
15857
+ border-width: 0 0 1px;
15858
+ border-radius: 0 0 var(--dm-radius-lg) var(--dm-radius-lg);
15859
+ }
15860
+
15861
+ .dm-command-palette-footer { display: none; }
15862
+ }
15863
+
15864
+ /* ===== Split Pane ===== */
15865
+ /* E.splitPane(container): flexbox panes with a fixed flex-basis each, gutters between. */
15866
+ .dm-split {
15867
+ display: flex;
15868
+ min-width: 0;
15869
+ min-height: 0;
15870
+ }
15871
+
15872
+ .dm-split-horizontal {
15873
+ flex-direction: row;
15874
+ }
15875
+
15876
+ .dm-split-vertical {
15877
+ flex-direction: column;
15878
+ }
15879
+
15880
+ .dm-split > .dm-split-pane {
15881
+ min-width: 0;
15882
+ min-height: 0;
15883
+ overflow: auto;
15884
+ }
15885
+
15886
+ .dm-split-collapsed {
15887
+ overflow: hidden;
15888
+ }
15889
+
15890
+ .dm-split > .dm-split-gutter {
15891
+ position: relative;
15892
+ display: flex;
15893
+ align-items: center;
15894
+ justify-content: center;
15895
+ background: var(--dm-border);
15896
+ touch-action: none;
15897
+ user-select: none;
15898
+ transition: background-color var(--dm-transition-fast);
15899
+ }
15900
+
15901
+ /* A thin grip line drawn inside the gutter. */
15902
+ .dm-split > .dm-split-gutter::before {
15903
+ content: "";
15904
+ border-radius: var(--dm-radius-full);
15905
+ background: var(--dm-text-muted);
15906
+ opacity: 0.6;
15907
+ }
15908
+
15909
+ .dm-split-horizontal > .dm-split-gutter::before {
15910
+ width: 2px;
15911
+ height: 1.5rem;
15912
+ }
15913
+
15914
+ .dm-split-vertical > .dm-split-gutter::before {
15915
+ width: 1.5rem;
15916
+ height: 2px;
15917
+ }
15918
+
15919
+ .dm-split > .dm-split-gutter:hover,
15920
+ .dm-split > .dm-split-gutter.is-dragging {
15921
+ background: var(--dm-primary);
15922
+ }
15923
+
15924
+ .dm-split > .dm-split-gutter:hover::before,
15925
+ .dm-split > .dm-split-gutter.is-dragging::before {
15926
+ background: var(--dm-primary-text);
15927
+ }
15928
+
15929
+ .dm-split > .dm-split-gutter:focus-visible {
15930
+ outline: 2px solid var(--dm-primary);
15931
+ outline-offset: 1px;
15932
+ z-index: 1;
15933
+ }
15934
+
15935
+ .dm-split-disabled > .dm-split-gutter,
15936
+ .dm-split-disabled > .dm-split-gutter:hover {
15937
+ background: var(--dm-border);
15938
+ cursor: default;
15939
+ }
15940
+
15941
+ /* While dragging, the panes (and any iframe in them) take no pointer events, so the
15942
+ gutter's captured pointer keeps every move, and text does not get selected. */
15943
+ .dm-split-dragging > .dm-split-pane {
15944
+ pointer-events: none;
15945
+ user-select: none;
15946
+ }
15947
+
15948
+ .dm-split-horizontal.dm-split-dragging {
15949
+ cursor: col-resize;
15950
+ }
15951
+
15952
+ .dm-split-vertical.dm-split-dragging {
15953
+ cursor: row-resize;
15954
+ }
15955
+
15956
+ .dm-split-toggle {
15957
+ position: absolute;
15958
+ z-index: 1;
15959
+ display: inline-flex;
15960
+ align-items: center;
15961
+ justify-content: center;
15962
+ width: 1.25rem;
15963
+ height: 1.25rem;
15964
+ padding: 0;
15965
+ border: 1px solid var(--dm-border);
15966
+ border-radius: var(--dm-radius-full);
15967
+ background: var(--dm-surface);
15968
+ color: var(--dm-text);
15969
+ cursor: pointer;
15970
+ font: inherit;
15971
+ line-height: 1;
15972
+ }
15973
+
15974
+ .dm-split-horizontal > .dm-split-gutter > .dm-split-toggle {
15975
+ top: 0.5rem;
15976
+ }
15977
+
15978
+ .dm-split-vertical > .dm-split-gutter > .dm-split-toggle {
15979
+ left: 0.5rem;
15980
+ }
15981
+
15982
+ .dm-split-toggle::before {
15983
+ content: "";
15984
+ width: 0;
15985
+ height: 0;
15986
+ border: 4px solid transparent;
15987
+ }
15988
+
15989
+ .dm-split-horizontal > .dm-split-gutter > .dm-split-toggle::before {
15990
+ border-right-color: currentColor;
15991
+ margin-right: 4px;
15992
+ }
15993
+
15994
+ .dm-split-vertical > .dm-split-gutter > .dm-split-toggle::before {
15995
+ border-bottom-color: currentColor;
15996
+ margin-bottom: 4px;
15997
+ }
15998
+
15999
+ .dm-split-toggle:hover {
16000
+ background: var(--dm-hover-bg);
16001
+ }
16002
+
16003
+ @media (prefers-reduced-motion: reduce) {
16004
+ .dm-split > .dm-split-gutter {
16005
+ transition: none;
16006
+ }
16007
+ }
16008
+
16009
+ /* ===== Virtual List ===== */
16010
+ /* E.virtualList(container): the container scrolls; a spacer gives it its height and the
16011
+ rendered rows are placed by transform. The container needs a height from your CSS. */
16012
+ .dm-vlist {
16013
+ position: relative;
16014
+ overflow: auto;
16015
+ overflow-anchor: none;
16016
+ contain: content;
16017
+ background: var(--dm-surface);
16018
+ color: var(--dm-text);
16019
+ }
16020
+
16021
+ .dm-vlist-spacer {
16022
+ width: 1px;
16023
+ pointer-events: none;
16024
+ }
16025
+
16026
+ .dm-vlist-items {
16027
+ position: absolute;
16028
+ top: 0;
16029
+ left: 0;
16030
+ right: 0;
16031
+ height: 0;
16032
+ outline: none;
16033
+ }
16034
+
16035
+ .dm-vlist-row {
16036
+ position: absolute;
16037
+ top: 0;
16038
+ left: 0;
16039
+ right: 0;
16040
+ box-sizing: border-box;
16041
+ will-change: transform;
16042
+ }
16043
+
16044
+ .dm-vlist-fixed .dm-vlist-row {
16045
+ overflow: hidden;
16046
+ }
16047
+
16048
+ .dm-vlist-row:focus-visible {
16049
+ outline: 2px solid var(--dm-primary);
16050
+ outline-offset: -2px;
16051
+ }
16052
+
16053
+ .dm-vlist-status {
16054
+ position: absolute;
16055
+ top: 0;
16056
+ left: 0;
16057
+ right: 0;
16058
+ display: flex;
16059
+ align-items: center;
16060
+ justify-content: center;
16061
+ gap: var(--dm-space-2);
16062
+ padding: var(--dm-space-3);
16063
+ color: var(--dm-text-muted);
16064
+ box-sizing: border-box;
16065
+ }
16066
+
16067
+ .dm-vlist-status[hidden] {
16068
+ display: none;
16069
+ }
16070
+
16071
+ .dm-vlist-loading,
16072
+ .dm-vlist-error {
16073
+ display: inline-flex;
16074
+ align-items: center;
16075
+ gap: var(--dm-space-2);
16076
+ }
16077
+
16078
+ /* Plain text colour: --dm-danger is not readable on --dm-surface in every theme. */
16079
+ .dm-vlist-error {
16080
+ color: var(--dm-text);
16081
+ }
16082
+
16083
+ .dm-vlist-spinner {
16084
+ width: 1rem;
16085
+ height: 1rem;
16086
+ border: 2px solid var(--dm-border);
16087
+ border-top-color: var(--dm-primary);
16088
+ border-radius: var(--dm-radius-full);
16089
+ animation: dm-loader-spin 0.8s linear infinite;
16090
+ }
16091
+
16092
+ @media (prefers-reduced-motion: reduce) {
16093
+ .dm-vlist-spinner {
16094
+ animation-duration: 2.4s;
16095
+ }
16096
+ }
16097
+
16098
+ /* ===== Dropzone ===== */
16099
+ /*
16100
+ * E.dropzone(target, options) - src/components/dropzone.js
16101
+ *
16102
+ * The caller's element is the area (.dm-dropzone, role="button"); the file list
16103
+ * (.dm-dropzone-files) is drawn after it, because a button cannot hold buttons.
16104
+ * Theme tokens only, so every theme and its dark variant colour it.
16105
+ */
16106
+ .dm-dropzone {
16107
+ display: flex;
16108
+ flex-direction: column;
16109
+ align-items: center;
16110
+ justify-content: center;
16111
+ gap: var(--dm-space-2);
16112
+ min-height: 8rem;
16113
+ padding: var(--dm-space-6) var(--dm-space-4);
16114
+ border: 2px dashed var(--dm-border);
16115
+ border-radius: var(--dm-radius-md);
16116
+ background: var(--dm-surface);
16117
+ color: var(--dm-text);
16118
+ text-align: center;
16119
+ cursor: pointer;
16120
+ transition: border-color var(--dm-transition-fast), background-color var(--dm-transition-fast);
16121
+ }
16122
+
16123
+ .dm-dropzone:hover {
16124
+ border-color: var(--dm-primary);
16125
+ }
16126
+
16127
+ .dm-dropzone:focus-visible {
16128
+ outline: 2px solid var(--dm-border-focus);
16129
+ outline-offset: 2px;
16130
+ border-color: var(--dm-primary);
16131
+ }
16132
+
16133
+ .dm-dropzone.is-dragover {
16134
+ border-color: var(--dm-primary);
16135
+ border-style: solid;
16136
+ background: color-mix(in srgb, var(--dm-primary) 10%, var(--dm-surface));
16137
+ }
16138
+
16139
+ .dm-dropzone.is-invalid {
16140
+ border-color: var(--dm-danger);
16141
+ }
16142
+
16143
+ .dm-dropzone.is-disabled {
16144
+ opacity: var(--dm-disabled-opacity, 0.6);
16145
+ cursor: not-allowed;
16146
+ }
16147
+
16148
+ .dm-dropzone.is-disabled:hover {
16149
+ border-color: var(--dm-border);
16150
+ }
16151
+
16152
+ .dm-dropzone-prompt {
16153
+ display: flex;
16154
+ flex-direction: column;
16155
+ align-items: center;
16156
+ gap: var(--dm-space-1);
16157
+ pointer-events: none;
16158
+ }
16159
+
16160
+ .dm-dropzone-icon {
16161
+ color: var(--dm-text-secondary);
16162
+ }
16163
+
16164
+ .dm-dropzone:hover .dm-dropzone-icon,
16165
+ .dm-dropzone.is-dragover .dm-dropzone-icon {
16166
+ color: var(--dm-text);
16167
+ }
16168
+
16169
+ .dm-dropzone-text {
16170
+ font-weight: 500;
16171
+ }
16172
+
16173
+ .dm-dropzone-hint {
16174
+ color: var(--dm-text-muted);
16175
+ font-size: var(--dm-font-size-sm);
16176
+ }
16177
+
16178
+ .dm-dropzone-files {
16179
+ display: flex;
16180
+ flex-direction: column;
16181
+ gap: var(--dm-space-2);
16182
+ margin: var(--dm-space-3) 0;
16183
+ padding: 0;
16184
+ list-style: none;
16185
+ }
16186
+
16187
+ .dm-dropzone-files[hidden] {
16188
+ display: none;
16189
+ }
16190
+
16191
+ .dm-dropzone-file {
16192
+ display: grid;
16193
+ grid-template-columns: 2.75rem minmax(0, 1fr) auto auto;
16194
+ grid-template-areas: "thumb meta retry remove" "thumb bar bar bar";
16195
+ align-items: center;
16196
+ column-gap: var(--dm-space-3);
16197
+ row-gap: var(--dm-space-1);
16198
+ padding: var(--dm-space-2) var(--dm-space-3);
16199
+ border: 1px solid var(--dm-border);
16200
+ border-radius: var(--dm-radius-md);
16201
+ background: var(--dm-surface);
16202
+ color: var(--dm-text);
16203
+ }
16204
+
16205
+ .dm-dropzone-file[data-status="error"] {
16206
+ border-color: var(--dm-danger);
16207
+ }
16208
+
16209
+ .dm-dropzone-thumb {
16210
+ grid-area: thumb;
16211
+ display: flex;
16212
+ align-items: center;
16213
+ justify-content: center;
16214
+ width: 2.75rem;
16215
+ height: 2.75rem;
16216
+ overflow: hidden;
16217
+ border-radius: var(--dm-radius-sm);
16218
+ background: color-mix(in srgb, var(--dm-text) 8%, var(--dm-surface));
16219
+ color: var(--dm-text-secondary);
16220
+ font-size: var(--dm-font-size-xs);
16221
+ font-weight: 600;
16222
+ }
16223
+
16224
+ .dm-dropzone-thumb img {
16225
+ display: block;
16226
+ width: 100%;
16227
+ height: 100%;
16228
+ object-fit: cover;
16229
+ }
16230
+
16231
+ .dm-dropzone-meta {
16232
+ grid-area: meta;
16233
+ display: flex;
16234
+ flex-wrap: wrap;
16235
+ align-items: baseline;
16236
+ column-gap: var(--dm-space-2);
16237
+ min-width: 0;
16238
+ }
16239
+
16240
+ .dm-dropzone-name {
16241
+ flex: 1 1 auto;
16242
+ min-width: 0;
16243
+ overflow: hidden;
16244
+ text-overflow: ellipsis;
16245
+ white-space: nowrap;
16246
+ }
16247
+
16248
+ .dm-dropzone-size,
16249
+ .dm-dropzone-status {
16250
+ color: var(--dm-text-muted);
16251
+ font-size: var(--dm-font-size-sm);
16252
+ }
16253
+
16254
+ /* State colours stay on borders and bars (--dm-danger / --dm-success as text on a
16255
+ surface fail AA in several themes); the words carry the state */
16256
+ .dm-dropzone-file[data-status="error"] .dm-dropzone-status {
16257
+ color: var(--dm-text);
16258
+ font-weight: 600;
16259
+ }
16260
+
16261
+ .dm-dropzone-progress {
16262
+ grid-area: bar;
16263
+ display: block;
16264
+ height: 0.375rem;
16265
+ overflow: hidden;
16266
+ border-radius: var(--dm-radius-full);
16267
+ background: color-mix(in srgb, var(--dm-text) 10%, var(--dm-surface));
16268
+ }
16269
+
16270
+ .dm-dropzone-progress[hidden] {
16271
+ display: none;
16272
+ }
16273
+
16274
+ .dm-dropzone-progress-bar {
16275
+ display: block;
16276
+ width: 0;
16277
+ height: 100%;
16278
+ border-radius: inherit;
16279
+ background: var(--dm-primary);
16280
+ }
16281
+
16282
+ .dm-dropzone-file[data-status="done"] .dm-dropzone-progress-bar {
16283
+ background: var(--dm-success);
16284
+ }
16285
+
16286
+ .dm-dropzone-retry {
16287
+ grid-area: retry;
16288
+ }
16289
+
16290
+ .dm-dropzone-retry[hidden] {
16291
+ display: none;
16292
+ }
16293
+
16294
+ .dm-dropzone-remove {
16295
+ grid-area: remove;
16296
+ display: inline-flex;
16297
+ align-items: center;
16298
+ justify-content: center;
16299
+ width: 2rem;
16300
+ height: 2rem;
16301
+ padding: 0;
16302
+ border: 0;
16303
+ border-radius: var(--dm-radius-full);
16304
+ background: transparent;
16305
+ color: var(--dm-text-muted);
16306
+ font-size: 1.25rem;
16307
+ line-height: 1;
16308
+ cursor: pointer;
16309
+ }
16310
+
16311
+ .dm-dropzone-remove:hover:not(:disabled) {
16312
+ background: var(--dm-hover-bg);
16313
+ color: var(--dm-text);
16314
+ }
16315
+
16316
+ .dm-dropzone-remove:focus-visible {
16317
+ outline: 2px solid var(--dm-border-focus);
16318
+ outline-offset: 1px;
16319
+ }
16320
+
16321
+ @media (prefers-reduced-motion: no-preference) {
16322
+ .dm-dropzone-progress-bar {
16323
+ transition: width var(--dm-transition-fast);
16324
+ }
16325
+ }
16326
+
16327
+ @media (prefers-reduced-motion: reduce) {
16328
+ .dm-dropzone {
16329
+ transition: none;
16330
+ }
16331
+ }
16332
+
16333
+ /* ===== Range Slider ===== */
16334
+ /*
16335
+ * E.rangeSlider(target, options) / E.slider - src/components/range-slider.js
16336
+ *
16337
+ * The real <input type="range"> elements are hidden; this is the drawn slider in
16338
+ * front of them. The root is the hit area (2.75rem tall - a comfortable touch
16339
+ * target) with a thin track through its middle. Thumbs are positioned by JS
16340
+ * with left / right / bottom as a percentage and centred with a transform.
16341
+ */
16342
+ .dm-range-slider {
16343
+ position: relative;
16344
+ display: block;
16345
+ height: 2.75rem;
16346
+ margin: 0 0.625rem;
16347
+ color: var(--dm-text);
16348
+ cursor: pointer;
16349
+ user-select: none;
16350
+ -webkit-user-select: none;
16351
+ /* A horizontal slider still lets the page scroll vertically on touch */
16352
+ touch-action: pan-y;
16353
+ -webkit-tap-highlight-color: transparent;
16354
+ }
16355
+
16356
+ .dm-range-slider.has-tick-labels,
16357
+ .dm-range-slider.has-marks {
16358
+ margin-bottom: 1.5rem;
16359
+ }
16360
+
16361
+ /* A tooltip that is always shown needs room above the track */
16362
+ .dm-range-slider[data-tooltip="always"]:not([data-orientation="vertical"]) {
16363
+ margin-top: 1.75rem;
16364
+ }
16365
+
16366
+ .dm-range-slider[data-orientation="vertical"] {
16367
+ display: inline-block;
16368
+ width: 2.75rem;
16369
+ height: 12rem;
16370
+ margin: 0.625rem 0;
16371
+ touch-action: pan-x;
16372
+ vertical-align: top;
16373
+ }
16374
+
16375
+ .dm-range-slider[data-orientation="vertical"].has-tick-labels,
16376
+ .dm-range-slider[data-orientation="vertical"].has-marks {
16377
+ margin-bottom: 0.625rem;
16378
+ margin-right: 3rem;
16379
+ }
16380
+
16381
+ .dm-range-track {
16382
+ position: absolute;
16383
+ left: 0;
16384
+ right: 0;
16385
+ top: 50%;
16386
+ height: 0.375rem;
16387
+ transform: translateY(-50%);
16388
+ border-radius: var(--dm-radius-full);
16389
+ background: color-mix(in srgb, var(--dm-text) 16%, var(--dm-surface));
16390
+ }
16391
+
16392
+ .dm-range-slider[data-orientation="vertical"] .dm-range-track {
16393
+ left: 50%;
16394
+ right: auto;
16395
+ top: 0;
16396
+ bottom: 0;
16397
+ width: 0.375rem;
16398
+ height: auto;
16399
+ transform: translateX(-50%);
16400
+ }
16401
+
16402
+ .dm-range-fill {
16403
+ position: absolute;
16404
+ top: 0;
16405
+ bottom: 0;
16406
+ border-radius: inherit;
16407
+ background: var(--dm-primary);
16408
+ }
16409
+
16410
+ .dm-range-slider[data-orientation="vertical"] .dm-range-fill {
16411
+ left: 0;
16412
+ right: 0;
16413
+ top: auto;
16414
+ }
16415
+
16416
+ .dm-range-thumb {
16417
+ position: absolute;
16418
+ top: 50%;
16419
+ z-index: 2;
16420
+ width: 1.25rem;
16421
+ height: 1.25rem;
16422
+ border: 2px solid var(--dm-primary);
16423
+ border-radius: var(--dm-radius-full);
16424
+ background: var(--dm-surface);
16425
+ box-shadow: var(--dm-shadow-md);
16426
+ transform: translate(-50%, -50%);
16427
+ cursor: grab;
16428
+ touch-action: none;
16429
+ }
16430
+
16431
+ .dm-range-slider[dir="rtl"] .dm-range-thumb {
16432
+ transform: translate(50%, -50%);
16433
+ }
16434
+
16435
+ .dm-range-slider[data-orientation="vertical"] .dm-range-thumb {
16436
+ top: auto;
16437
+ left: 50%;
16438
+ transform: translate(-50%, 50%);
16439
+ }
16440
+
16441
+ .dm-range-thumb:hover {
16442
+ box-shadow: 0 0 0 0.375rem var(--dm-focus-ring);
16443
+ }
16444
+
16445
+ .dm-range-thumb:focus-visible {
16446
+ outline: 2px solid var(--dm-border-focus);
16447
+ outline-offset: 2px;
16448
+ box-shadow: 0 0 0 0.375rem var(--dm-focus-ring);
16449
+ }
16450
+
16451
+ /* The thumb being moved sits above the other when they meet */
16452
+ .dm-range-thumb.is-active,
16453
+ .dm-range-thumb:focus-visible {
16454
+ z-index: 3;
16455
+ }
16456
+
16457
+ .dm-range-slider.is-dragging,
16458
+ .dm-range-slider.is-dragging .dm-range-thumb {
16459
+ cursor: grabbing;
16460
+ }
16461
+
16462
+ .dm-range-tooltip {
16463
+ position: absolute;
16464
+ bottom: calc(100% + 0.5rem);
16465
+ left: 50%;
16466
+ padding: 0.125rem 0.5rem;
16467
+ border-radius: var(--dm-radius-sm);
16468
+ background: var(--dm-text);
16469
+ color: var(--dm-surface);
16470
+ font-size: var(--dm-font-size-xs);
16471
+ line-height: 1.5;
16472
+ white-space: nowrap;
16473
+ pointer-events: none;
16474
+ transform: translateX(-50%);
16475
+ opacity: 0;
16476
+ visibility: hidden;
16477
+ }
16478
+
16479
+ .dm-range-slider[data-orientation="vertical"] .dm-range-tooltip {
16480
+ bottom: auto;
16481
+ left: calc(100% + 0.5rem);
16482
+ top: 50%;
16483
+ transform: translateY(-50%);
16484
+ }
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 {
16490
+ opacity: 1;
16491
+ visibility: visible;
16492
+ }
16493
+
16494
+ .dm-range-ticks,
16495
+ .dm-range-marks {
16496
+ position: absolute;
16497
+ inset: 0;
16498
+ pointer-events: none;
16499
+ }
16500
+
16501
+ .dm-range-tick,
16502
+ .dm-range-mark {
16503
+ position: absolute;
16504
+ top: calc(50% + 0.375rem);
16505
+ width: 1px;
16506
+ height: 0.375rem;
16507
+ background: var(--dm-border-dark);
16508
+ transform: translateX(-50%);
16509
+ }
16510
+
16511
+ .dm-range-slider[dir="rtl"] .dm-range-tick,
16512
+ .dm-range-slider[dir="rtl"] .dm-range-mark {
16513
+ transform: translateX(50%);
16514
+ }
16515
+
16516
+ .dm-range-tick.is-in-range {
16517
+ background: var(--dm-primary);
16518
+ }
16519
+
16520
+ .dm-range-slider[data-orientation="vertical"] .dm-range-tick,
16521
+ .dm-range-slider[data-orientation="vertical"] .dm-range-mark {
16522
+ top: auto;
16523
+ left: calc(50% + 0.375rem);
16524
+ width: 0.375rem;
16525
+ height: 1px;
16526
+ transform: translateY(50%);
16527
+ }
16528
+
16529
+ .dm-range-mark {
16530
+ width: 0.375rem;
16531
+ height: 0.375rem;
16532
+ top: 50%;
16533
+ border-radius: var(--dm-radius-full);
16534
+ background: var(--dm-surface);
16535
+ border: 1px solid var(--dm-border-dark);
16536
+ transform: translate(-50%, -50%);
16537
+ pointer-events: auto;
16538
+ z-index: 1;
16539
+ }
16540
+
16541
+ .dm-range-slider[dir="rtl"] .dm-range-mark {
16542
+ transform: translate(50%, -50%);
16543
+ }
16544
+
16545
+ .dm-range-slider[data-orientation="vertical"] .dm-range-mark {
16546
+ left: 50%;
16547
+ width: 0.375rem;
16548
+ height: 0.375rem;
16549
+ transform: translate(-50%, 50%);
16550
+ }
16551
+
16552
+ .dm-range-tick-label,
16553
+ .dm-range-mark-label {
16554
+ position: absolute;
16555
+ top: calc(100% + 0.25rem);
16556
+ left: 50%;
16557
+ color: var(--dm-text-muted);
16558
+ font-size: var(--dm-font-size-xs);
16559
+ line-height: 1.2;
16560
+ white-space: nowrap;
16561
+ transform: translateX(-50%);
16562
+ }
16563
+
16564
+ .dm-range-mark-label {
16565
+ top: calc(100% + 0.625rem);
16566
+ color: var(--dm-text-secondary);
16567
+ cursor: pointer;
16568
+ }
16569
+
16570
+ .dm-range-slider[data-orientation="vertical"] .dm-range-tick-label,
16571
+ .dm-range-slider[data-orientation="vertical"] .dm-range-mark-label {
16572
+ top: 50%;
16573
+ left: calc(100% + 0.5rem);
16574
+ transform: translateY(-50%);
16575
+ }
16576
+
16577
+ .dm-range-slider.is-disabled {
16578
+ opacity: var(--dm-disabled-opacity, 0.6);
16579
+ cursor: not-allowed;
16580
+ }
16581
+
16582
+ .dm-range-slider.is-disabled .dm-range-thumb {
16583
+ cursor: not-allowed;
16584
+ box-shadow: none;
16585
+ }
16586
+
16587
+ @media (prefers-reduced-motion: no-preference) {
16588
+ .dm-range-thumb {
16589
+ transition: box-shadow var(--dm-transition-fast);
16590
+ }
16591
+
16592
+ .dm-range-tooltip {
16593
+ transition: opacity var(--dm-transition-fast), visibility var(--dm-transition-fast);
16594
+ }
16595
+ }
16596
+
16597
+ @media (forced-colors: active) {
16598
+ .dm-range-fill,
16599
+ .dm-dropzone-progress-bar {
16600
+ background: Highlight;
16601
+ }
16602
+
16603
+ .dm-range-thumb {
16604
+ background: ButtonFace;
16605
+ border-color: ButtonText;
16606
+ }
16607
+ }
16608
+
15539
16609
 
15540
16610
  /* ============================================
15541
16611
  THEME SYSTEM
@@ -15543,11 +16613,11 @@ a.avatar-more-person:hover .avatar-more-name {
15543
16613
  ============================================ */
15544
16614
 
15545
16615
  /*!
15546
- * Domma Themes v0.55.0
16616
+ * Domma Themes v0.57.0
15547
16617
  * Dynamic Object Manipulation & Modeling API
15548
16618
  * (c) 2026 Darryl Waterhouse & DCBW-IT
15549
- * Built: 2026-10-24T15:07:57.484Z
15550
- * Commit: 253e259
16619
+ * Built: 2026-10-24T20:04:51.154Z
16620
+ * Commit: 8ca8224
15551
16621
  */
15552
16622
 
15553
16623
  /**