domma-js 0.54.0 → 0.56.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.
- package/assets/types/elements.d.ts +510 -3
- package/assets/types/i18n.d.ts +99 -0
- package/assets/types/index.d.ts +10 -0
- package/package.json +1 -1
- package/public/dist/bundles/domma-complete.css +1501 -55
- package/public/dist/bundles/domma-data-focused.css +1501 -55
- package/public/dist/bundles/domma-essentials.css +1501 -55
- package/public/dist/bundles/domma-full.css +1501 -55
- package/public/dist/bundles/domma-minimal.css +8 -8
- package/public/dist/domma-flags.esm.js +3 -3
- package/public/dist/domma-flags.min.js +3 -3
- package/public/dist/domma-syntax.min.js +3 -3
- package/public/dist/domma.css +3 -3
- package/public/dist/domma.esm.js +5 -5
- package/public/dist/domma.esm.js.map +1 -1
- package/public/dist/domma.min.js +5 -5
- package/public/dist/domma.min.js.map +1 -1
- package/public/dist/elements.css +1493 -47
- package/public/dist/grid.css +3 -3
- package/public/dist/syntax.css +3 -3
- package/public/dist/themes/domma-themes.css +3 -3
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Domma Data-Focused CSS Bundle v0.
|
|
2
|
+
* Domma Data-Focused CSS Bundle v0.56.0
|
|
3
3
|
* Dynamic Object Manipulation & Modeling API
|
|
4
4
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
5
|
-
* Built: 2026-10-
|
|
5
|
+
* Built: 2026-10-24T16:12:49.304Z
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
/* ============================================
|
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
============================================ */
|
|
12
12
|
|
|
13
13
|
/*!
|
|
14
|
-
* Domma Core CSS v0.
|
|
14
|
+
* Domma Core CSS v0.56.0
|
|
15
15
|
* Dynamic Object Manipulation & Modeling API
|
|
16
16
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
17
|
-
* Built: 2026-10-
|
|
18
|
-
* Commit:
|
|
17
|
+
* Built: 2026-10-24T16:12:49.151Z
|
|
18
|
+
* Commit: f768320
|
|
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.
|
|
4974
|
+
* Domma Grid CSS v0.56.0
|
|
4975
4975
|
* Dynamic Object Manipulation & Modeling API
|
|
4976
4976
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
4977
|
-
* Built: 2026-10-
|
|
4978
|
-
* Commit:
|
|
4977
|
+
* Built: 2026-10-24T16:12:49.154Z
|
|
4978
|
+
* Commit: f768320
|
|
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.
|
|
5599
|
+
* Domma Elements CSS v0.56.0
|
|
5600
5600
|
* Dynamic Object Manipulation & Modeling API
|
|
5601
5601
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
5602
|
-
* Built: 2026-10-
|
|
5603
|
-
* Commit:
|
|
5602
|
+
* Built: 2026-10-24T16:12:49.159Z
|
|
5603
|
+
* Commit: f768320
|
|
5604
5604
|
*/
|
|
5605
5605
|
|
|
5606
5606
|
/**
|
|
@@ -5963,6 +5963,54 @@ body.dm-cloaked.dm-ready {
|
|
|
5963
5963
|
padding-bottom: 0;
|
|
5964
5964
|
}
|
|
5965
5965
|
|
|
5966
|
+
/* E.card options (src/components/card.js) */
|
|
5967
|
+
.card-collapsible .card-body,
|
|
5968
|
+
.card-collapse-icon {
|
|
5969
|
+
transition-duration: var(--dm-card-duration, 200ms);
|
|
5970
|
+
}
|
|
5971
|
+
|
|
5972
|
+
.card-no-animation,
|
|
5973
|
+
.card-no-animation .card-body,
|
|
5974
|
+
.card-no-animation .card-collapse-icon {
|
|
5975
|
+
transition: none;
|
|
5976
|
+
}
|
|
5977
|
+
|
|
5978
|
+
.card-collapse-icon {
|
|
5979
|
+
display: inline-flex;
|
|
5980
|
+
align-items: center;
|
|
5981
|
+
}
|
|
5982
|
+
|
|
5983
|
+
.card-primary .card-collapse-icon,
|
|
5984
|
+
.card-primary.card-collapsible .card-header:hover .card-collapse-icon {
|
|
5985
|
+
color: inherit;
|
|
5986
|
+
}
|
|
5987
|
+
|
|
5988
|
+
.card-title-icon {
|
|
5989
|
+
display: inline-flex;
|
|
5990
|
+
vertical-align: -0.125em;
|
|
5991
|
+
margin-right: var(--dm-space-2);
|
|
5992
|
+
}
|
|
5993
|
+
|
|
5994
|
+
.card-clickable {
|
|
5995
|
+
cursor: pointer;
|
|
5996
|
+
}
|
|
5997
|
+
|
|
5998
|
+
.card-shadow-none {
|
|
5999
|
+
box-shadow: none;
|
|
6000
|
+
}
|
|
6001
|
+
|
|
6002
|
+
.card-shadow-sm {
|
|
6003
|
+
box-shadow: var(--dm-shadow-sm);
|
|
6004
|
+
}
|
|
6005
|
+
|
|
6006
|
+
.card-shadow-lg {
|
|
6007
|
+
box-shadow: var(--dm-shadow-lg);
|
|
6008
|
+
}
|
|
6009
|
+
|
|
6010
|
+
.card-square {
|
|
6011
|
+
border-radius: 0;
|
|
6012
|
+
}
|
|
6013
|
+
|
|
5966
6014
|
|
|
5967
6015
|
/* ============================================
|
|
5968
6016
|
MODAL
|
|
@@ -6065,6 +6113,50 @@ body.dm-cloaked.dm-ready {
|
|
|
6065
6113
|
max-width: 1200px !important;
|
|
6066
6114
|
}
|
|
6067
6115
|
|
|
6116
|
+
/* E.modal (src/components/modal.js): the caller's element becomes the full-screen layer
|
|
6117
|
+
that holds the dialog drawn in its shadow root. The class is doubled so it outranks
|
|
6118
|
+
.modal / .modal-sm / .modal.active, which describe the hand-written, JS-free modal
|
|
6119
|
+
box and would otherwise hide or shrink the layer. z-index stays settable inline. */
|
|
6120
|
+
.dm-modal-host.dm-modal-host {
|
|
6121
|
+
display: none;
|
|
6122
|
+
position: fixed;
|
|
6123
|
+
inset: 0;
|
|
6124
|
+
top: 0;
|
|
6125
|
+
left: 0;
|
|
6126
|
+
right: 0;
|
|
6127
|
+
bottom: 0;
|
|
6128
|
+
width: auto;
|
|
6129
|
+
max-width: none;
|
|
6130
|
+
height: auto;
|
|
6131
|
+
max-height: none;
|
|
6132
|
+
margin: 0;
|
|
6133
|
+
padding: 0;
|
|
6134
|
+
border: 0;
|
|
6135
|
+
border-radius: 0;
|
|
6136
|
+
background: none;
|
|
6137
|
+
box-shadow: none;
|
|
6138
|
+
overflow: visible;
|
|
6139
|
+
opacity: 1;
|
|
6140
|
+
transform: none;
|
|
6141
|
+
transition: none;
|
|
6142
|
+
pointer-events: auto;
|
|
6143
|
+
align-items: center;
|
|
6144
|
+
justify-content: center;
|
|
6145
|
+
}
|
|
6146
|
+
|
|
6147
|
+
.dm-modal-host.dm-modal-host.dm-modal-visible {
|
|
6148
|
+
display: flex;
|
|
6149
|
+
}
|
|
6150
|
+
|
|
6151
|
+
.dm-modal-host.dm-modal-host.dm-modal-no-backdrop {
|
|
6152
|
+
pointer-events: none;
|
|
6153
|
+
}
|
|
6154
|
+
|
|
6155
|
+
.dm-modal-host.dm-modal-host.dm-modal-top {
|
|
6156
|
+
align-items: flex-start;
|
|
6157
|
+
padding-top: 5vh;
|
|
6158
|
+
}
|
|
6159
|
+
|
|
6068
6160
|
|
|
6069
6161
|
/* ============================================
|
|
6070
6162
|
TABS
|
|
@@ -7043,6 +7135,57 @@ textarea:not([class])::placeholder {
|
|
|
7043
7135
|
color: var(--dm-info-text, var(--dm-white));
|
|
7044
7136
|
}
|
|
7045
7137
|
|
|
7138
|
+
.badge-light {
|
|
7139
|
+
background-color: var(--dm-background-alt);
|
|
7140
|
+
color: var(--dm-text);
|
|
7141
|
+
}
|
|
7142
|
+
|
|
7143
|
+
.badge-dark {
|
|
7144
|
+
background-color: var(--dm-text);
|
|
7145
|
+
color: var(--dm-background);
|
|
7146
|
+
}
|
|
7147
|
+
|
|
7148
|
+
/* E.badge options (src/components/badge.js) */
|
|
7149
|
+
.badge {
|
|
7150
|
+
gap: 0.25rem;
|
|
7151
|
+
}
|
|
7152
|
+
|
|
7153
|
+
.badge-sm {
|
|
7154
|
+
padding: 2px 6px;
|
|
7155
|
+
font-size: 0.625rem;
|
|
7156
|
+
}
|
|
7157
|
+
|
|
7158
|
+
.badge-lg {
|
|
7159
|
+
padding: var(--dm-space-1) var(--dm-space-3);
|
|
7160
|
+
font-size: var(--dm-font-size-sm);
|
|
7161
|
+
}
|
|
7162
|
+
|
|
7163
|
+
.badge-rounded {
|
|
7164
|
+
border-radius: var(--dm-radius-sm);
|
|
7165
|
+
}
|
|
7166
|
+
|
|
7167
|
+
.badge-pill {
|
|
7168
|
+
border-radius: var(--dm-radius-full);
|
|
7169
|
+
}
|
|
7170
|
+
|
|
7171
|
+
/* Outline badges carry .badge-outline-<variant> instead of the filled .badge-<variant>:
|
|
7172
|
+
the page's text on its surface, ringed in the variant colour - legible in every theme
|
|
7173
|
+
(variant-coloured text is not: warning on a light surface is under 2:1) */
|
|
7174
|
+
.badge-outline {
|
|
7175
|
+
background-color: var(--dm-surface);
|
|
7176
|
+
color: var(--dm-text);
|
|
7177
|
+
box-shadow: inset 0 0 0 1px var(--dm-border);
|
|
7178
|
+
}
|
|
7179
|
+
|
|
7180
|
+
.badge-outline-primary { box-shadow: inset 0 0 0 1px var(--dm-primary); }
|
|
7181
|
+
.badge-outline-secondary { box-shadow: inset 0 0 0 1px var(--dm-text-secondary); }
|
|
7182
|
+
.badge-outline-success { box-shadow: inset 0 0 0 1px var(--dm-success); }
|
|
7183
|
+
.badge-outline-danger { box-shadow: inset 0 0 0 1px var(--dm-danger); }
|
|
7184
|
+
.badge-outline-warning { box-shadow: inset 0 0 0 1px var(--dm-warning); }
|
|
7185
|
+
.badge-outline-info { box-shadow: inset 0 0 0 1px var(--dm-info); }
|
|
7186
|
+
.badge-outline-light { box-shadow: inset 0 0 0 1px var(--dm-border); }
|
|
7187
|
+
.badge-outline-dark { box-shadow: inset 0 0 0 1px var(--dm-text); }
|
|
7188
|
+
|
|
7046
7189
|
/* Pulse animation for new content indicators */
|
|
7047
7190
|
.badge-pulse {
|
|
7048
7191
|
animation: badge-pulse 2s ease-in-out infinite;
|
|
@@ -7088,6 +7231,15 @@ textarea:not([class])::placeholder {
|
|
|
7088
7231
|
background-color: var(--dm-danger);
|
|
7089
7232
|
}
|
|
7090
7233
|
|
|
7234
|
+
/* E.numberBadge puts the counter inside its target; a target already positioned keeps its own */
|
|
7235
|
+
:where(.badge-counter-host) {
|
|
7236
|
+
position: relative;
|
|
7237
|
+
}
|
|
7238
|
+
|
|
7239
|
+
domma-number-badge {
|
|
7240
|
+
display: inline-flex;
|
|
7241
|
+
}
|
|
7242
|
+
|
|
7091
7243
|
/* Wrapper for positioned counter badges */
|
|
7092
7244
|
.badge-counter-wrapper {
|
|
7093
7245
|
position: relative;
|
|
@@ -11088,17 +11240,22 @@ code {
|
|
|
11088
11240
|
TOOLTIP
|
|
11089
11241
|
============================================ */
|
|
11090
11242
|
|
|
11243
|
+
/* E.tooltip's bubble (src/components/tooltip.js): on document.body, placed at the target.
|
|
11244
|
+
Inverted against the page - the text colour as its fill - in light and dark themes. */
|
|
11091
11245
|
.domma-tooltip {
|
|
11092
|
-
|
|
11093
|
-
|
|
11094
|
-
|
|
11095
|
-
|
|
11246
|
+
--dm-tooltip-bg: var(--dm-text);
|
|
11247
|
+
position: fixed;
|
|
11248
|
+
top: 0;
|
|
11249
|
+
left: 0;
|
|
11250
|
+
z-index: 10050;
|
|
11251
|
+
background-color: var(--dm-text);
|
|
11252
|
+
color: var(--dm-background);
|
|
11096
11253
|
padding: 0.5rem 0.75rem;
|
|
11097
11254
|
border-radius: var(--dm-radius-md);
|
|
11098
11255
|
font-size: 0.875rem;
|
|
11099
11256
|
line-height: 1.4;
|
|
11100
|
-
max-width:
|
|
11101
|
-
|
|
11257
|
+
max-width: 250px;
|
|
11258
|
+
overflow-wrap: break-word;
|
|
11102
11259
|
pointer-events: none;
|
|
11103
11260
|
opacity: 0;
|
|
11104
11261
|
transition: opacity var(--dm-transition-fast);
|
|
@@ -11109,9 +11266,42 @@ code {
|
|
|
11109
11266
|
opacity: 1;
|
|
11110
11267
|
}
|
|
11111
11268
|
|
|
11112
|
-
|
|
11113
|
-
|
|
11114
|
-
|
|
11269
|
+
.domma-tooltip::before {
|
|
11270
|
+
content: '';
|
|
11271
|
+
position: absolute;
|
|
11272
|
+
border: 5px solid transparent;
|
|
11273
|
+
}
|
|
11274
|
+
|
|
11275
|
+
.domma-tooltip[data-position="top"]::before {
|
|
11276
|
+
top: 100%;
|
|
11277
|
+
left: 50%;
|
|
11278
|
+
transform: translateX(-50%);
|
|
11279
|
+
border-top-color: var(--dm-tooltip-bg);
|
|
11280
|
+
}
|
|
11281
|
+
|
|
11282
|
+
.domma-tooltip[data-position="bottom"]::before {
|
|
11283
|
+
bottom: 100%;
|
|
11284
|
+
left: 50%;
|
|
11285
|
+
transform: translateX(-50%);
|
|
11286
|
+
border-bottom-color: var(--dm-tooltip-bg);
|
|
11287
|
+
}
|
|
11288
|
+
|
|
11289
|
+
.domma-tooltip[data-position="left"]::before {
|
|
11290
|
+
left: 100%;
|
|
11291
|
+
top: 50%;
|
|
11292
|
+
transform: translateY(-50%);
|
|
11293
|
+
border-left-color: var(--dm-tooltip-bg);
|
|
11294
|
+
}
|
|
11295
|
+
|
|
11296
|
+
.domma-tooltip[data-position="right"]::before {
|
|
11297
|
+
right: 100%;
|
|
11298
|
+
top: 50%;
|
|
11299
|
+
transform: translateY(-50%);
|
|
11300
|
+
border-right-color: var(--dm-tooltip-bg);
|
|
11301
|
+
}
|
|
11302
|
+
|
|
11303
|
+
domma-tooltip {
|
|
11304
|
+
display: inline-block;
|
|
11115
11305
|
}
|
|
11116
11306
|
|
|
11117
11307
|
|
|
@@ -11333,21 +11523,36 @@ code {
|
|
|
11333
11523
|
}
|
|
11334
11524
|
|
|
11335
11525
|
/* Toast variants */
|
|
11526
|
+
.domma-toast {
|
|
11527
|
+
position: relative;
|
|
11528
|
+
overflow: hidden;
|
|
11529
|
+
align-items: flex-start;
|
|
11530
|
+
border: 1px solid var(--dm-border);
|
|
11531
|
+
transition-duration: var(--dm-toast-duration, 300ms);
|
|
11532
|
+
}
|
|
11533
|
+
|
|
11336
11534
|
.domma-toast.domma-toast-success {
|
|
11337
11535
|
background-color: var(--dm-success);
|
|
11536
|
+
color: var(--dm-success-text, var(--dm-white));
|
|
11537
|
+
border-color: transparent;
|
|
11338
11538
|
}
|
|
11339
11539
|
|
|
11340
11540
|
.domma-toast.domma-toast-error {
|
|
11341
11541
|
background-color: var(--dm-danger);
|
|
11542
|
+
color: var(--dm-danger-text, var(--dm-white));
|
|
11543
|
+
border-color: transparent;
|
|
11342
11544
|
}
|
|
11343
11545
|
|
|
11344
11546
|
.domma-toast.domma-toast-warning {
|
|
11345
11547
|
background-color: var(--dm-warning);
|
|
11346
11548
|
color: var(--dm-warning-text, var(--dm-text));
|
|
11549
|
+
border-color: transparent;
|
|
11347
11550
|
}
|
|
11348
11551
|
|
|
11349
11552
|
.domma-toast.domma-toast-info {
|
|
11350
11553
|
background-color: var(--dm-info);
|
|
11554
|
+
color: var(--dm-info-text, var(--dm-white));
|
|
11555
|
+
border-color: transparent;
|
|
11351
11556
|
}
|
|
11352
11557
|
|
|
11353
11558
|
/* Toast internal structure */
|
|
@@ -11391,6 +11596,72 @@ code {
|
|
|
11391
11596
|
display: block;
|
|
11392
11597
|
}
|
|
11393
11598
|
|
|
11599
|
+
.domma-toast-close {
|
|
11600
|
+
font-size: 1.25rem;
|
|
11601
|
+
line-height: 1;
|
|
11602
|
+
}
|
|
11603
|
+
|
|
11604
|
+
.domma-toast-icon {
|
|
11605
|
+
display: flex;
|
|
11606
|
+
align-items: center;
|
|
11607
|
+
}
|
|
11608
|
+
|
|
11609
|
+
.domma-toast-title[hidden],
|
|
11610
|
+
.domma-toast-actions[hidden] {
|
|
11611
|
+
display: none;
|
|
11612
|
+
}
|
|
11613
|
+
|
|
11614
|
+
.domma-toast-message {
|
|
11615
|
+
overflow-wrap: anywhere;
|
|
11616
|
+
}
|
|
11617
|
+
|
|
11618
|
+
.domma-toast-actions {
|
|
11619
|
+
display: flex;
|
|
11620
|
+
gap: 0.5rem;
|
|
11621
|
+
margin-top: 0.5rem;
|
|
11622
|
+
}
|
|
11623
|
+
|
|
11624
|
+
.domma-toast-action {
|
|
11625
|
+
padding: 0.25rem 0.75rem;
|
|
11626
|
+
border: 1px solid currentColor;
|
|
11627
|
+
border-radius: var(--dm-radius-sm);
|
|
11628
|
+
background: transparent;
|
|
11629
|
+
color: inherit;
|
|
11630
|
+
font: inherit;
|
|
11631
|
+
font-size: 0.8rem;
|
|
11632
|
+
font-weight: 500;
|
|
11633
|
+
cursor: pointer;
|
|
11634
|
+
}
|
|
11635
|
+
|
|
11636
|
+
.domma-toast-action.is-primary {
|
|
11637
|
+
background-color: var(--dm-primary);
|
|
11638
|
+
color: var(--dm-primary-text, var(--dm-white));
|
|
11639
|
+
border-color: var(--dm-primary);
|
|
11640
|
+
}
|
|
11641
|
+
|
|
11642
|
+
.domma-toast-progress {
|
|
11643
|
+
position: absolute;
|
|
11644
|
+
left: 0;
|
|
11645
|
+
right: 0;
|
|
11646
|
+
bottom: 0;
|
|
11647
|
+
height: 3px;
|
|
11648
|
+
background: color-mix(in srgb, currentColor 15%, transparent);
|
|
11649
|
+
}
|
|
11650
|
+
|
|
11651
|
+
.domma-toast-progress-bar {
|
|
11652
|
+
width: 100%;
|
|
11653
|
+
height: 100%;
|
|
11654
|
+
background: currentColor;
|
|
11655
|
+
opacity: 0.6;
|
|
11656
|
+
}
|
|
11657
|
+
|
|
11658
|
+
@media (prefers-reduced-motion: reduce) {
|
|
11659
|
+
.domma-toast,
|
|
11660
|
+
.domma-toast-progress-bar {
|
|
11661
|
+
transition: none !important;
|
|
11662
|
+
}
|
|
11663
|
+
}
|
|
11664
|
+
|
|
11394
11665
|
|
|
11395
11666
|
/* ============================================
|
|
11396
11667
|
BACK TO TOP BUTTON
|
|
@@ -11439,6 +11710,20 @@ code {
|
|
|
11439
11710
|
box-shadow: 0 0 0 3px var(--dm-focus-ring);
|
|
11440
11711
|
}
|
|
11441
11712
|
|
|
11713
|
+
/* E.backToTop on a button inside the container it watches: it sticks to that
|
|
11714
|
+
container's bottom corner instead of the viewport's */
|
|
11715
|
+
.dm-back-to-top.dm-back-to-top-contained {
|
|
11716
|
+
position: sticky;
|
|
11717
|
+
right: auto;
|
|
11718
|
+
left: auto;
|
|
11719
|
+
margin-left: auto;
|
|
11720
|
+
}
|
|
11721
|
+
|
|
11722
|
+
.dm-back-to-top.dm-back-to-top-contained.dm-back-to-top-left {
|
|
11723
|
+
margin-left: 0;
|
|
11724
|
+
margin-right: auto;
|
|
11725
|
+
}
|
|
11726
|
+
|
|
11442
11727
|
/* Desktop (≥577px) - Back to Top enhancements */
|
|
11443
11728
|
@media (min-width: 577px) {
|
|
11444
11729
|
.dm-back-to-top {
|
|
@@ -11462,49 +11747,146 @@ code {
|
|
|
11462
11747
|
gap: 0.75rem;
|
|
11463
11748
|
}
|
|
11464
11749
|
|
|
11465
|
-
.dm-loader
|
|
11466
|
-
|
|
11467
|
-
top: 0;
|
|
11468
|
-
left: 0;
|
|
11469
|
-
right: 0;
|
|
11470
|
-
bottom: 0;
|
|
11471
|
-
z-index: 1000;
|
|
11472
|
-
background-color: var(--dm-loader-overlay-bg, rgba(255, 255, 255, 0.9));
|
|
11750
|
+
.dm-loader[hidden] {
|
|
11751
|
+
display: none !important;
|
|
11473
11752
|
}
|
|
11474
11753
|
|
|
11475
|
-
|
|
11476
|
-
|
|
11754
|
+
/* E.loader's indicator (src/components/loader.js); size and colour come from
|
|
11755
|
+
--dm-loader-size / --dm-loader-color, set from the options */
|
|
11756
|
+
.dm-loader-js {
|
|
11757
|
+
--dm-loader-size: 40px;
|
|
11758
|
+
--dm-loader-color: var(--dm-primary);
|
|
11477
11759
|
}
|
|
11478
11760
|
|
|
11479
|
-
/*
|
|
11480
|
-
|
|
11481
|
-
|
|
11482
|
-
|
|
11483
|
-
|
|
11484
|
-
|
|
11485
|
-
|
|
11486
|
-
animation: dm-loader-spin 0.8s linear infinite;
|
|
11761
|
+
/* Centred over the nearest positioned ancestor, as <domma-loader> always drew it - the
|
|
11762
|
+
container's own content stays where it is and the loader sits on top of it. */
|
|
11763
|
+
.dm-loader-js.dm-loader-centered {
|
|
11764
|
+
position: absolute;
|
|
11765
|
+
top: 50%;
|
|
11766
|
+
left: 50%;
|
|
11767
|
+
transform: translate(-50%, -50%);
|
|
11487
11768
|
}
|
|
11488
11769
|
|
|
11489
|
-
|
|
11490
|
-
|
|
11491
|
-
border-top-color: var(--dm-primary);
|
|
11770
|
+
:where(.dm-loader-host) {
|
|
11771
|
+
position: relative;
|
|
11492
11772
|
}
|
|
11493
11773
|
|
|
11494
|
-
|
|
11495
|
-
|
|
11496
|
-
display: flex;
|
|
11497
|
-
gap: 0.5rem;
|
|
11774
|
+
.dm-loader-anim {
|
|
11775
|
+
flex-shrink: 0;
|
|
11498
11776
|
}
|
|
11499
11777
|
|
|
11500
|
-
.dm-loader-
|
|
11501
|
-
|
|
11502
|
-
|
|
11503
|
-
|
|
11504
|
-
|
|
11505
|
-
background-color: var(--dm-primary);
|
|
11778
|
+
.dm-loader-anim-spinner {
|
|
11779
|
+
width: var(--dm-loader-size);
|
|
11780
|
+
height: var(--dm-loader-size);
|
|
11781
|
+
border: max(2px, calc(var(--dm-loader-size) / 10)) solid var(--dm-loader-color);
|
|
11782
|
+
border-top-color: transparent;
|
|
11506
11783
|
border-radius: 50%;
|
|
11507
|
-
animation: dm-loader-
|
|
11784
|
+
animation: dm-loader-spin 0.8s linear infinite;
|
|
11785
|
+
}
|
|
11786
|
+
|
|
11787
|
+
.dm-loader-anim-dots,
|
|
11788
|
+
.dm-loader-anim-bars {
|
|
11789
|
+
display: flex;
|
|
11790
|
+
align-items: center;
|
|
11791
|
+
gap: calc(var(--dm-loader-size) / 8);
|
|
11792
|
+
height: var(--dm-loader-size);
|
|
11793
|
+
}
|
|
11794
|
+
|
|
11795
|
+
.dm-loader-anim-dots span {
|
|
11796
|
+
/* Shapes are drawn with borders, not backgrounds: they hold no text */
|
|
11797
|
+
width: 0;
|
|
11798
|
+
height: 0;
|
|
11799
|
+
border: calc(var(--dm-loader-size) / 8) solid var(--dm-loader-color);
|
|
11800
|
+
border-radius: 50%;
|
|
11801
|
+
animation: dm-loader-bounce 1.4s ease-in-out infinite both;
|
|
11802
|
+
}
|
|
11803
|
+
|
|
11804
|
+
.dm-loader-anim-dots span:nth-child(2) { animation-delay: 0.16s; }
|
|
11805
|
+
.dm-loader-anim-dots span:nth-child(3) { animation-delay: 0.32s; }
|
|
11806
|
+
|
|
11807
|
+
.dm-loader-anim-pulse {
|
|
11808
|
+
width: 0;
|
|
11809
|
+
height: 0;
|
|
11810
|
+
border: calc(var(--dm-loader-size) / 2) solid var(--dm-loader-color);
|
|
11811
|
+
border-radius: 50%;
|
|
11812
|
+
animation: dm-loader-pulse 1.2s ease-in-out infinite;
|
|
11813
|
+
}
|
|
11814
|
+
|
|
11815
|
+
.dm-loader-anim-bars span {
|
|
11816
|
+
width: 0;
|
|
11817
|
+
height: 100%;
|
|
11818
|
+
border-left: calc(var(--dm-loader-size) / 6) solid var(--dm-loader-color);
|
|
11819
|
+
border-radius: 2px;
|
|
11820
|
+
animation: dm-loader-bars 1s ease-in-out infinite;
|
|
11821
|
+
}
|
|
11822
|
+
|
|
11823
|
+
.dm-loader-anim-bars span:nth-child(2) { animation-delay: 0.1s; }
|
|
11824
|
+
.dm-loader-anim-bars span:nth-child(3) { animation-delay: 0.2s; }
|
|
11825
|
+
.dm-loader-anim-bars span:nth-child(4) { animation-delay: 0.3s; }
|
|
11826
|
+
|
|
11827
|
+
.dm-loader-fullscreen {
|
|
11828
|
+
position: fixed;
|
|
11829
|
+
inset: 0;
|
|
11830
|
+
z-index: 9999;
|
|
11831
|
+
display: flex;
|
|
11832
|
+
align-items: center;
|
|
11833
|
+
justify-content: center;
|
|
11834
|
+
background-color: rgba(0, 0, 0, 0.7);
|
|
11835
|
+
}
|
|
11836
|
+
|
|
11837
|
+
.dm-loader-fullscreen .dm-loader-text {
|
|
11838
|
+
color: #fff;
|
|
11839
|
+
}
|
|
11840
|
+
|
|
11841
|
+
domma-loader,
|
|
11842
|
+
domma-card,
|
|
11843
|
+
domma-back-to-top {
|
|
11844
|
+
display: block;
|
|
11845
|
+
}
|
|
11846
|
+
|
|
11847
|
+
.dm-loader.dm-loader-overlay {
|
|
11848
|
+
position: absolute;
|
|
11849
|
+
top: 0;
|
|
11850
|
+
left: 0;
|
|
11851
|
+
right: 0;
|
|
11852
|
+
bottom: 0;
|
|
11853
|
+
z-index: 1000;
|
|
11854
|
+
background-color: var(--dm-loader-overlay-bg, rgba(255, 255, 255, 0.9));
|
|
11855
|
+
}
|
|
11856
|
+
|
|
11857
|
+
[data-mode="dark"] .dm-loader.dm-loader-overlay {
|
|
11858
|
+
background-color: var(--dm-loader-overlay-bg, rgba(0, 0, 0, 0.8));
|
|
11859
|
+
}
|
|
11860
|
+
|
|
11861
|
+
/* Spinner type */
|
|
11862
|
+
.dm-loader-spinner {
|
|
11863
|
+
width: 2rem;
|
|
11864
|
+
height: 2rem;
|
|
11865
|
+
border: 3px solid var(--dm-border);
|
|
11866
|
+
border-top-color: var(--dm-primary);
|
|
11867
|
+
border-radius: 50%;
|
|
11868
|
+
animation: dm-loader-spin 0.8s linear infinite;
|
|
11869
|
+
}
|
|
11870
|
+
|
|
11871
|
+
[data-mode="dark"] .dm-loader-spinner {
|
|
11872
|
+
border-color: var(--dm-text);
|
|
11873
|
+
border-top-color: var(--dm-primary);
|
|
11874
|
+
}
|
|
11875
|
+
|
|
11876
|
+
/* Dots type */
|
|
11877
|
+
.dm-loader-dots {
|
|
11878
|
+
display: flex;
|
|
11879
|
+
gap: 0.5rem;
|
|
11880
|
+
}
|
|
11881
|
+
|
|
11882
|
+
.dm-loader-dots::before,
|
|
11883
|
+
.dm-loader-dots::after {
|
|
11884
|
+
content: '';
|
|
11885
|
+
width: 0.75rem;
|
|
11886
|
+
height: 0.75rem;
|
|
11887
|
+
background-color: var(--dm-primary);
|
|
11888
|
+
border-radius: 50%;
|
|
11889
|
+
animation: dm-loader-bounce 1.4s infinite ease-in-out both;
|
|
11508
11890
|
}
|
|
11509
11891
|
|
|
11510
11892
|
.dm-loader-dots::before {
|
|
@@ -15154,6 +15536,1070 @@ a.avatar-more-person:hover .avatar-more-name {
|
|
|
15154
15536
|
text-decoration: underline;
|
|
15155
15537
|
}
|
|
15156
15538
|
|
|
15539
|
+
/* ===== Command Palette ===== */
|
|
15540
|
+
/*
|
|
15541
|
+
* E.commandPalette(options) - src/components/command-palette.js
|
|
15542
|
+
*
|
|
15543
|
+
* The overlay covers the viewport: a backdrop and a panel near the top, the way the
|
|
15544
|
+
* modal looks (--dm-modal-* tokens), so it sits with the site's dialogs in every theme.
|
|
15545
|
+
* Above modals and slideovers, which it is often opened over; below popovers (10045)
|
|
15546
|
+
* and the context menu (10050).
|
|
15547
|
+
*/
|
|
15548
|
+
.dm-command-palette {
|
|
15549
|
+
position: fixed;
|
|
15550
|
+
inset: 0;
|
|
15551
|
+
z-index: 10040;
|
|
15552
|
+
display: flex;
|
|
15553
|
+
justify-content: center;
|
|
15554
|
+
align-items: flex-start;
|
|
15555
|
+
padding: 12vh 1rem 1rem;
|
|
15556
|
+
box-sizing: border-box;
|
|
15557
|
+
--dm-command-palette-duration: 150ms;
|
|
15558
|
+
}
|
|
15559
|
+
|
|
15560
|
+
.dm-command-palette[hidden] {
|
|
15561
|
+
display: none;
|
|
15562
|
+
}
|
|
15563
|
+
|
|
15564
|
+
.dm-command-palette *,
|
|
15565
|
+
.dm-command-palette *::before,
|
|
15566
|
+
.dm-command-palette *::after {
|
|
15567
|
+
box-sizing: border-box;
|
|
15568
|
+
}
|
|
15569
|
+
|
|
15570
|
+
.dm-command-palette-backdrop {
|
|
15571
|
+
position: fixed;
|
|
15572
|
+
inset: 0;
|
|
15573
|
+
background: var(--dm-modal-backdrop);
|
|
15574
|
+
opacity: 0;
|
|
15575
|
+
transition: opacity var(--dm-command-palette-duration) ease;
|
|
15576
|
+
}
|
|
15577
|
+
|
|
15578
|
+
.dm-command-palette-panel {
|
|
15579
|
+
position: relative;
|
|
15580
|
+
display: flex;
|
|
15581
|
+
flex-direction: column;
|
|
15582
|
+
width: min(40rem, 100%);
|
|
15583
|
+
max-height: min(32rem, 76vh);
|
|
15584
|
+
background: var(--dm-modal-bg);
|
|
15585
|
+
color: var(--dm-text);
|
|
15586
|
+
border: 1px solid var(--dm-modal-border);
|
|
15587
|
+
border-radius: var(--dm-radius-lg);
|
|
15588
|
+
box-shadow: var(--dm-modal-shadow);
|
|
15589
|
+
overflow: hidden;
|
|
15590
|
+
opacity: 0;
|
|
15591
|
+
transform: scale(0.97) translateY(-6px);
|
|
15592
|
+
transition:
|
|
15593
|
+
opacity var(--dm-command-palette-duration) ease,
|
|
15594
|
+
transform var(--dm-command-palette-duration) cubic-bezier(0.16, 1, 0.3, 1);
|
|
15595
|
+
}
|
|
15596
|
+
|
|
15597
|
+
.dm-command-palette.is-open .dm-command-palette-backdrop { opacity: 1; }
|
|
15598
|
+
.dm-command-palette.is-open .dm-command-palette-panel { opacity: 1; transform: none; }
|
|
15599
|
+
|
|
15600
|
+
@media (prefers-reduced-motion: reduce) {
|
|
15601
|
+
.dm-command-palette-backdrop,
|
|
15602
|
+
.dm-command-palette-panel {
|
|
15603
|
+
transition: none;
|
|
15604
|
+
}
|
|
15605
|
+
}
|
|
15606
|
+
|
|
15607
|
+
/* Where you are in nested pages, with a way back up. */
|
|
15608
|
+
.dm-command-palette-crumbs {
|
|
15609
|
+
display: flex;
|
|
15610
|
+
align-items: center;
|
|
15611
|
+
gap: 0.5rem;
|
|
15612
|
+
padding: 0.625rem 0.875rem 0;
|
|
15613
|
+
font-size: 0.8125rem;
|
|
15614
|
+
color: var(--dm-text-muted);
|
|
15615
|
+
}
|
|
15616
|
+
|
|
15617
|
+
.dm-command-palette-crumbs[hidden] { display: none; }
|
|
15618
|
+
|
|
15619
|
+
.dm-command-palette-back {
|
|
15620
|
+
display: inline-flex;
|
|
15621
|
+
align-items: center;
|
|
15622
|
+
justify-content: center;
|
|
15623
|
+
width: 1.75rem;
|
|
15624
|
+
height: 1.75rem;
|
|
15625
|
+
padding: 0;
|
|
15626
|
+
border: 1px solid var(--dm-border);
|
|
15627
|
+
border-radius: var(--dm-radius-sm);
|
|
15628
|
+
background: transparent;
|
|
15629
|
+
color: var(--dm-text);
|
|
15630
|
+
cursor: pointer;
|
|
15631
|
+
}
|
|
15632
|
+
|
|
15633
|
+
.dm-command-palette-back:hover { background: var(--dm-hover-bg); }
|
|
15634
|
+
|
|
15635
|
+
.dm-command-palette-back:focus-visible {
|
|
15636
|
+
outline: 2px solid var(--dm-border-focus);
|
|
15637
|
+
outline-offset: 1px;
|
|
15638
|
+
}
|
|
15639
|
+
|
|
15640
|
+
.dm-command-palette-trail {
|
|
15641
|
+
display: flex;
|
|
15642
|
+
flex-wrap: wrap;
|
|
15643
|
+
gap: 0.25rem;
|
|
15644
|
+
margin: 0;
|
|
15645
|
+
padding: 0;
|
|
15646
|
+
list-style: none;
|
|
15647
|
+
}
|
|
15648
|
+
|
|
15649
|
+
.dm-command-palette-trail li + li::before {
|
|
15650
|
+
content: "/";
|
|
15651
|
+
margin-right: 0.25rem;
|
|
15652
|
+
opacity: 0.6;
|
|
15653
|
+
}
|
|
15654
|
+
|
|
15655
|
+
.dm-command-palette-trail [aria-current] { color: var(--dm-text); font-weight: 500; }
|
|
15656
|
+
|
|
15657
|
+
.dm-command-palette-search {
|
|
15658
|
+
display: flex;
|
|
15659
|
+
align-items: center;
|
|
15660
|
+
gap: 0.625rem;
|
|
15661
|
+
padding: 0.75rem 0.875rem;
|
|
15662
|
+
border-bottom: 1px solid var(--dm-border);
|
|
15663
|
+
}
|
|
15664
|
+
|
|
15665
|
+
.dm-command-palette-search-icon {
|
|
15666
|
+
display: inline-flex;
|
|
15667
|
+
color: var(--dm-text-muted);
|
|
15668
|
+
}
|
|
15669
|
+
|
|
15670
|
+
.dm-command-palette-input {
|
|
15671
|
+
flex: 1;
|
|
15672
|
+
min-width: 0;
|
|
15673
|
+
padding: 0.25rem 0;
|
|
15674
|
+
border: 0;
|
|
15675
|
+
background: transparent;
|
|
15676
|
+
color: var(--dm-text);
|
|
15677
|
+
font: inherit;
|
|
15678
|
+
font-size: 1rem;
|
|
15679
|
+
outline: none;
|
|
15680
|
+
}
|
|
15681
|
+
|
|
15682
|
+
.dm-command-palette-input::placeholder { color: var(--dm-input-placeholder); opacity: 1; }
|
|
15683
|
+
|
|
15684
|
+
/* The box is the focus; the panel shows it rather than a ring round a borderless input. */
|
|
15685
|
+
.dm-command-palette-search:focus-within {
|
|
15686
|
+
border-bottom-color: var(--dm-border-focus);
|
|
15687
|
+
}
|
|
15688
|
+
|
|
15689
|
+
.dm-command-palette-spinner {
|
|
15690
|
+
width: 1rem;
|
|
15691
|
+
height: 1rem;
|
|
15692
|
+
border: 2px solid var(--dm-border);
|
|
15693
|
+
border-top-color: var(--dm-primary);
|
|
15694
|
+
border-radius: 50%;
|
|
15695
|
+
animation: dm-command-palette-spin 0.7s linear infinite;
|
|
15696
|
+
}
|
|
15697
|
+
|
|
15698
|
+
.dm-command-palette-spinner[hidden] { display: none; }
|
|
15699
|
+
|
|
15700
|
+
@keyframes dm-command-palette-spin {
|
|
15701
|
+
to { transform: rotate(360deg); }
|
|
15702
|
+
}
|
|
15703
|
+
|
|
15704
|
+
@media (prefers-reduced-motion: reduce) {
|
|
15705
|
+
.dm-command-palette-spinner { animation-duration: 2.4s; }
|
|
15706
|
+
}
|
|
15707
|
+
|
|
15708
|
+
.dm-command-palette-list {
|
|
15709
|
+
flex: 1 1 auto;
|
|
15710
|
+
min-height: 0;
|
|
15711
|
+
overflow-y: auto;
|
|
15712
|
+
overscroll-behavior: contain;
|
|
15713
|
+
padding: 0.375rem;
|
|
15714
|
+
}
|
|
15715
|
+
|
|
15716
|
+
.dm-command-palette-list[hidden] { display: none; }
|
|
15717
|
+
|
|
15718
|
+
.dm-command-palette-group + .dm-command-palette-group,
|
|
15719
|
+
.dm-command-palette-group + .dm-command-palette-item,
|
|
15720
|
+
.dm-command-palette-item + .dm-command-palette-group {
|
|
15721
|
+
margin-top: 0.375rem;
|
|
15722
|
+
}
|
|
15723
|
+
|
|
15724
|
+
.dm-command-palette-group-heading {
|
|
15725
|
+
padding: 0.375rem 0.625rem 0.25rem;
|
|
15726
|
+
font-size: 0.75rem;
|
|
15727
|
+
font-weight: 600;
|
|
15728
|
+
letter-spacing: 0.02em;
|
|
15729
|
+
color: var(--dm-text-muted);
|
|
15730
|
+
}
|
|
15731
|
+
|
|
15732
|
+
.dm-command-palette-item {
|
|
15733
|
+
display: flex;
|
|
15734
|
+
align-items: center;
|
|
15735
|
+
gap: 0.625rem;
|
|
15736
|
+
min-height: 2.5rem;
|
|
15737
|
+
padding: 0.375rem 0.625rem;
|
|
15738
|
+
border-radius: var(--dm-radius-md);
|
|
15739
|
+
color: var(--dm-text);
|
|
15740
|
+
cursor: pointer;
|
|
15741
|
+
user-select: none;
|
|
15742
|
+
}
|
|
15743
|
+
|
|
15744
|
+
.dm-command-palette-item.is-active {
|
|
15745
|
+
background: var(--dm-selected-bg);
|
|
15746
|
+
}
|
|
15747
|
+
|
|
15748
|
+
/* Forced colours drop backgrounds: the active row keeps an outline instead. */
|
|
15749
|
+
@media (forced-colors: active) {
|
|
15750
|
+
.dm-command-palette-item.is-active { outline: 2px solid Highlight; }
|
|
15751
|
+
}
|
|
15752
|
+
|
|
15753
|
+
.dm-command-palette-item[aria-disabled="true"] {
|
|
15754
|
+
cursor: default;
|
|
15755
|
+
opacity: var(--dm-disabled-opacity);
|
|
15756
|
+
}
|
|
15757
|
+
|
|
15758
|
+
.dm-command-palette-icon {
|
|
15759
|
+
flex: 0 0 1rem;
|
|
15760
|
+
display: inline-flex;
|
|
15761
|
+
justify-content: center;
|
|
15762
|
+
color: var(--dm-text-muted);
|
|
15763
|
+
}
|
|
15764
|
+
|
|
15765
|
+
.dm-command-palette-item.is-active .dm-command-palette-icon { color: var(--dm-text); }
|
|
15766
|
+
|
|
15767
|
+
.dm-command-palette-text {
|
|
15768
|
+
flex: 1;
|
|
15769
|
+
min-width: 0;
|
|
15770
|
+
display: flex;
|
|
15771
|
+
flex-direction: column;
|
|
15772
|
+
line-height: 1.3;
|
|
15773
|
+
}
|
|
15774
|
+
|
|
15775
|
+
.dm-command-palette-title,
|
|
15776
|
+
.dm-command-palette-subtitle {
|
|
15777
|
+
overflow: hidden;
|
|
15778
|
+
text-overflow: ellipsis;
|
|
15779
|
+
white-space: nowrap;
|
|
15780
|
+
}
|
|
15781
|
+
|
|
15782
|
+
.dm-command-palette-subtitle {
|
|
15783
|
+
font-size: 0.8125rem;
|
|
15784
|
+
color: var(--dm-text-muted);
|
|
15785
|
+
}
|
|
15786
|
+
|
|
15787
|
+
.dm-command-palette-match {
|
|
15788
|
+
color: var(--dm-primary);
|
|
15789
|
+
font-weight: 600;
|
|
15790
|
+
}
|
|
15791
|
+
|
|
15792
|
+
.dm-command-palette-shortcut,
|
|
15793
|
+
.dm-command-palette-hint {
|
|
15794
|
+
display: inline-flex;
|
|
15795
|
+
align-items: center;
|
|
15796
|
+
gap: 0.25rem;
|
|
15797
|
+
}
|
|
15798
|
+
|
|
15799
|
+
.dm-command-palette kbd {
|
|
15800
|
+
display: inline-flex;
|
|
15801
|
+
align-items: center;
|
|
15802
|
+
justify-content: center;
|
|
15803
|
+
min-width: 1.375rem;
|
|
15804
|
+
height: 1.375rem;
|
|
15805
|
+
padding: 0 0.3rem;
|
|
15806
|
+
border: 1px solid var(--dm-border);
|
|
15807
|
+
border-bottom-width: 2px;
|
|
15808
|
+
border-radius: var(--dm-radius-sm);
|
|
15809
|
+
background: var(--dm-background-alt);
|
|
15810
|
+
color: var(--dm-text-secondary);
|
|
15811
|
+
font-family: inherit;
|
|
15812
|
+
font-size: 0.6875rem;
|
|
15813
|
+
line-height: 1;
|
|
15814
|
+
}
|
|
15815
|
+
|
|
15816
|
+
.dm-command-palette-more {
|
|
15817
|
+
display: inline-flex;
|
|
15818
|
+
color: var(--dm-text-muted);
|
|
15819
|
+
}
|
|
15820
|
+
|
|
15821
|
+
.dm-command-palette-status {
|
|
15822
|
+
padding: 1.5rem 1rem;
|
|
15823
|
+
text-align: center;
|
|
15824
|
+
font-size: 0.875rem;
|
|
15825
|
+
color: var(--dm-text-muted);
|
|
15826
|
+
}
|
|
15827
|
+
|
|
15828
|
+
.dm-command-palette-status[hidden] { display: none; }
|
|
15829
|
+
.dm-command-palette-status[data-state="error"] { color: var(--dm-danger); }
|
|
15830
|
+
|
|
15831
|
+
.dm-command-palette-footer {
|
|
15832
|
+
display: flex;
|
|
15833
|
+
flex-wrap: wrap;
|
|
15834
|
+
gap: 0.5rem 1rem;
|
|
15835
|
+
padding: 0.5rem 0.875rem;
|
|
15836
|
+
border-top: 1px solid var(--dm-border);
|
|
15837
|
+
background: var(--dm-background-alt);
|
|
15838
|
+
color: var(--dm-text-secondary);
|
|
15839
|
+
font-size: 0.75rem;
|
|
15840
|
+
}
|
|
15841
|
+
|
|
15842
|
+
/* Phones: the whole width, from the top. */
|
|
15843
|
+
@media (max-width: 640px) {
|
|
15844
|
+
.dm-command-palette {
|
|
15845
|
+
padding: 0;
|
|
15846
|
+
}
|
|
15847
|
+
|
|
15848
|
+
.dm-command-palette-panel {
|
|
15849
|
+
width: 100%;
|
|
15850
|
+
max-height: 85vh;
|
|
15851
|
+
border-width: 0 0 1px;
|
|
15852
|
+
border-radius: 0 0 var(--dm-radius-lg) var(--dm-radius-lg);
|
|
15853
|
+
}
|
|
15854
|
+
|
|
15855
|
+
.dm-command-palette-footer { display: none; }
|
|
15856
|
+
}
|
|
15857
|
+
|
|
15858
|
+
/* ===== Split Pane ===== */
|
|
15859
|
+
/* E.splitPane(container): flexbox panes with a fixed flex-basis each, gutters between. */
|
|
15860
|
+
.dm-split {
|
|
15861
|
+
display: flex;
|
|
15862
|
+
min-width: 0;
|
|
15863
|
+
min-height: 0;
|
|
15864
|
+
}
|
|
15865
|
+
|
|
15866
|
+
.dm-split-horizontal {
|
|
15867
|
+
flex-direction: row;
|
|
15868
|
+
}
|
|
15869
|
+
|
|
15870
|
+
.dm-split-vertical {
|
|
15871
|
+
flex-direction: column;
|
|
15872
|
+
}
|
|
15873
|
+
|
|
15874
|
+
.dm-split > .dm-split-pane {
|
|
15875
|
+
min-width: 0;
|
|
15876
|
+
min-height: 0;
|
|
15877
|
+
overflow: auto;
|
|
15878
|
+
}
|
|
15879
|
+
|
|
15880
|
+
.dm-split-collapsed {
|
|
15881
|
+
overflow: hidden;
|
|
15882
|
+
}
|
|
15883
|
+
|
|
15884
|
+
.dm-split > .dm-split-gutter {
|
|
15885
|
+
position: relative;
|
|
15886
|
+
display: flex;
|
|
15887
|
+
align-items: center;
|
|
15888
|
+
justify-content: center;
|
|
15889
|
+
background: var(--dm-border);
|
|
15890
|
+
touch-action: none;
|
|
15891
|
+
user-select: none;
|
|
15892
|
+
transition: background-color var(--dm-transition-fast);
|
|
15893
|
+
}
|
|
15894
|
+
|
|
15895
|
+
/* A thin grip line drawn inside the gutter. */
|
|
15896
|
+
.dm-split > .dm-split-gutter::before {
|
|
15897
|
+
content: "";
|
|
15898
|
+
border-radius: var(--dm-radius-full);
|
|
15899
|
+
background: var(--dm-text-muted);
|
|
15900
|
+
opacity: 0.6;
|
|
15901
|
+
}
|
|
15902
|
+
|
|
15903
|
+
.dm-split-horizontal > .dm-split-gutter::before {
|
|
15904
|
+
width: 2px;
|
|
15905
|
+
height: 1.5rem;
|
|
15906
|
+
}
|
|
15907
|
+
|
|
15908
|
+
.dm-split-vertical > .dm-split-gutter::before {
|
|
15909
|
+
width: 1.5rem;
|
|
15910
|
+
height: 2px;
|
|
15911
|
+
}
|
|
15912
|
+
|
|
15913
|
+
.dm-split > .dm-split-gutter:hover,
|
|
15914
|
+
.dm-split > .dm-split-gutter.is-dragging {
|
|
15915
|
+
background: var(--dm-primary);
|
|
15916
|
+
}
|
|
15917
|
+
|
|
15918
|
+
.dm-split > .dm-split-gutter:hover::before,
|
|
15919
|
+
.dm-split > .dm-split-gutter.is-dragging::before {
|
|
15920
|
+
background: var(--dm-primary-text);
|
|
15921
|
+
}
|
|
15922
|
+
|
|
15923
|
+
.dm-split > .dm-split-gutter:focus-visible {
|
|
15924
|
+
outline: 2px solid var(--dm-primary);
|
|
15925
|
+
outline-offset: 1px;
|
|
15926
|
+
z-index: 1;
|
|
15927
|
+
}
|
|
15928
|
+
|
|
15929
|
+
.dm-split-disabled > .dm-split-gutter,
|
|
15930
|
+
.dm-split-disabled > .dm-split-gutter:hover {
|
|
15931
|
+
background: var(--dm-border);
|
|
15932
|
+
cursor: default;
|
|
15933
|
+
}
|
|
15934
|
+
|
|
15935
|
+
/* While dragging, the panes (and any iframe in them) take no pointer events, so the
|
|
15936
|
+
gutter's captured pointer keeps every move, and text does not get selected. */
|
|
15937
|
+
.dm-split-dragging > .dm-split-pane {
|
|
15938
|
+
pointer-events: none;
|
|
15939
|
+
user-select: none;
|
|
15940
|
+
}
|
|
15941
|
+
|
|
15942
|
+
.dm-split-horizontal.dm-split-dragging {
|
|
15943
|
+
cursor: col-resize;
|
|
15944
|
+
}
|
|
15945
|
+
|
|
15946
|
+
.dm-split-vertical.dm-split-dragging {
|
|
15947
|
+
cursor: row-resize;
|
|
15948
|
+
}
|
|
15949
|
+
|
|
15950
|
+
.dm-split-toggle {
|
|
15951
|
+
position: absolute;
|
|
15952
|
+
z-index: 1;
|
|
15953
|
+
display: inline-flex;
|
|
15954
|
+
align-items: center;
|
|
15955
|
+
justify-content: center;
|
|
15956
|
+
width: 1.25rem;
|
|
15957
|
+
height: 1.25rem;
|
|
15958
|
+
padding: 0;
|
|
15959
|
+
border: 1px solid var(--dm-border);
|
|
15960
|
+
border-radius: var(--dm-radius-full);
|
|
15961
|
+
background: var(--dm-surface);
|
|
15962
|
+
color: var(--dm-text);
|
|
15963
|
+
cursor: pointer;
|
|
15964
|
+
font: inherit;
|
|
15965
|
+
line-height: 1;
|
|
15966
|
+
}
|
|
15967
|
+
|
|
15968
|
+
.dm-split-horizontal > .dm-split-gutter > .dm-split-toggle {
|
|
15969
|
+
top: 0.5rem;
|
|
15970
|
+
}
|
|
15971
|
+
|
|
15972
|
+
.dm-split-vertical > .dm-split-gutter > .dm-split-toggle {
|
|
15973
|
+
left: 0.5rem;
|
|
15974
|
+
}
|
|
15975
|
+
|
|
15976
|
+
.dm-split-toggle::before {
|
|
15977
|
+
content: "";
|
|
15978
|
+
width: 0;
|
|
15979
|
+
height: 0;
|
|
15980
|
+
border: 4px solid transparent;
|
|
15981
|
+
}
|
|
15982
|
+
|
|
15983
|
+
.dm-split-horizontal > .dm-split-gutter > .dm-split-toggle::before {
|
|
15984
|
+
border-right-color: currentColor;
|
|
15985
|
+
margin-right: 4px;
|
|
15986
|
+
}
|
|
15987
|
+
|
|
15988
|
+
.dm-split-vertical > .dm-split-gutter > .dm-split-toggle::before {
|
|
15989
|
+
border-bottom-color: currentColor;
|
|
15990
|
+
margin-bottom: 4px;
|
|
15991
|
+
}
|
|
15992
|
+
|
|
15993
|
+
.dm-split-toggle:hover {
|
|
15994
|
+
background: var(--dm-hover-bg);
|
|
15995
|
+
}
|
|
15996
|
+
|
|
15997
|
+
@media (prefers-reduced-motion: reduce) {
|
|
15998
|
+
.dm-split > .dm-split-gutter {
|
|
15999
|
+
transition: none;
|
|
16000
|
+
}
|
|
16001
|
+
}
|
|
16002
|
+
|
|
16003
|
+
/* ===== Virtual List ===== */
|
|
16004
|
+
/* E.virtualList(container): the container scrolls; a spacer gives it its height and the
|
|
16005
|
+
rendered rows are placed by transform. The container needs a height from your CSS. */
|
|
16006
|
+
.dm-vlist {
|
|
16007
|
+
position: relative;
|
|
16008
|
+
overflow: auto;
|
|
16009
|
+
overflow-anchor: none;
|
|
16010
|
+
contain: content;
|
|
16011
|
+
background: var(--dm-surface);
|
|
16012
|
+
color: var(--dm-text);
|
|
16013
|
+
}
|
|
16014
|
+
|
|
16015
|
+
.dm-vlist-spacer {
|
|
16016
|
+
width: 1px;
|
|
16017
|
+
pointer-events: none;
|
|
16018
|
+
}
|
|
16019
|
+
|
|
16020
|
+
.dm-vlist-items {
|
|
16021
|
+
position: absolute;
|
|
16022
|
+
top: 0;
|
|
16023
|
+
left: 0;
|
|
16024
|
+
right: 0;
|
|
16025
|
+
height: 0;
|
|
16026
|
+
outline: none;
|
|
16027
|
+
}
|
|
16028
|
+
|
|
16029
|
+
.dm-vlist-row {
|
|
16030
|
+
position: absolute;
|
|
16031
|
+
top: 0;
|
|
16032
|
+
left: 0;
|
|
16033
|
+
right: 0;
|
|
16034
|
+
box-sizing: border-box;
|
|
16035
|
+
will-change: transform;
|
|
16036
|
+
}
|
|
16037
|
+
|
|
16038
|
+
.dm-vlist-fixed .dm-vlist-row {
|
|
16039
|
+
overflow: hidden;
|
|
16040
|
+
}
|
|
16041
|
+
|
|
16042
|
+
.dm-vlist-row:focus-visible {
|
|
16043
|
+
outline: 2px solid var(--dm-primary);
|
|
16044
|
+
outline-offset: -2px;
|
|
16045
|
+
}
|
|
16046
|
+
|
|
16047
|
+
.dm-vlist-status {
|
|
16048
|
+
position: absolute;
|
|
16049
|
+
top: 0;
|
|
16050
|
+
left: 0;
|
|
16051
|
+
right: 0;
|
|
16052
|
+
display: flex;
|
|
16053
|
+
align-items: center;
|
|
16054
|
+
justify-content: center;
|
|
16055
|
+
gap: var(--dm-space-2);
|
|
16056
|
+
padding: var(--dm-space-3);
|
|
16057
|
+
color: var(--dm-text-muted);
|
|
16058
|
+
box-sizing: border-box;
|
|
16059
|
+
}
|
|
16060
|
+
|
|
16061
|
+
.dm-vlist-status[hidden] {
|
|
16062
|
+
display: none;
|
|
16063
|
+
}
|
|
16064
|
+
|
|
16065
|
+
.dm-vlist-loading,
|
|
16066
|
+
.dm-vlist-error {
|
|
16067
|
+
display: inline-flex;
|
|
16068
|
+
align-items: center;
|
|
16069
|
+
gap: var(--dm-space-2);
|
|
16070
|
+
}
|
|
16071
|
+
|
|
16072
|
+
/* Plain text colour: --dm-danger is not readable on --dm-surface in every theme. */
|
|
16073
|
+
.dm-vlist-error {
|
|
16074
|
+
color: var(--dm-text);
|
|
16075
|
+
}
|
|
16076
|
+
|
|
16077
|
+
.dm-vlist-spinner {
|
|
16078
|
+
width: 1rem;
|
|
16079
|
+
height: 1rem;
|
|
16080
|
+
border: 2px solid var(--dm-border);
|
|
16081
|
+
border-top-color: var(--dm-primary);
|
|
16082
|
+
border-radius: var(--dm-radius-full);
|
|
16083
|
+
animation: dm-loader-spin 0.8s linear infinite;
|
|
16084
|
+
}
|
|
16085
|
+
|
|
16086
|
+
@media (prefers-reduced-motion: reduce) {
|
|
16087
|
+
.dm-vlist-spinner {
|
|
16088
|
+
animation-duration: 2.4s;
|
|
16089
|
+
}
|
|
16090
|
+
}
|
|
16091
|
+
|
|
16092
|
+
/* ===== Dropzone ===== */
|
|
16093
|
+
/*
|
|
16094
|
+
* E.dropzone(target, options) - src/components/dropzone.js
|
|
16095
|
+
*
|
|
16096
|
+
* The caller's element is the area (.dm-dropzone, role="button"); the file list
|
|
16097
|
+
* (.dm-dropzone-files) is drawn after it, because a button cannot hold buttons.
|
|
16098
|
+
* Theme tokens only, so every theme and its dark variant colour it.
|
|
16099
|
+
*/
|
|
16100
|
+
.dm-dropzone {
|
|
16101
|
+
display: flex;
|
|
16102
|
+
flex-direction: column;
|
|
16103
|
+
align-items: center;
|
|
16104
|
+
justify-content: center;
|
|
16105
|
+
gap: var(--dm-space-2);
|
|
16106
|
+
min-height: 8rem;
|
|
16107
|
+
padding: var(--dm-space-6) var(--dm-space-4);
|
|
16108
|
+
border: 2px dashed var(--dm-border);
|
|
16109
|
+
border-radius: var(--dm-radius-md);
|
|
16110
|
+
background: var(--dm-surface);
|
|
16111
|
+
color: var(--dm-text);
|
|
16112
|
+
text-align: center;
|
|
16113
|
+
cursor: pointer;
|
|
16114
|
+
transition: border-color var(--dm-transition-fast), background-color var(--dm-transition-fast);
|
|
16115
|
+
}
|
|
16116
|
+
|
|
16117
|
+
.dm-dropzone:hover {
|
|
16118
|
+
border-color: var(--dm-primary);
|
|
16119
|
+
}
|
|
16120
|
+
|
|
16121
|
+
.dm-dropzone:focus-visible {
|
|
16122
|
+
outline: 2px solid var(--dm-border-focus);
|
|
16123
|
+
outline-offset: 2px;
|
|
16124
|
+
border-color: var(--dm-primary);
|
|
16125
|
+
}
|
|
16126
|
+
|
|
16127
|
+
.dm-dropzone.is-dragover {
|
|
16128
|
+
border-color: var(--dm-primary);
|
|
16129
|
+
border-style: solid;
|
|
16130
|
+
background: color-mix(in srgb, var(--dm-primary) 10%, var(--dm-surface));
|
|
16131
|
+
}
|
|
16132
|
+
|
|
16133
|
+
.dm-dropzone.is-invalid {
|
|
16134
|
+
border-color: var(--dm-danger);
|
|
16135
|
+
}
|
|
16136
|
+
|
|
16137
|
+
.dm-dropzone.is-disabled {
|
|
16138
|
+
opacity: var(--dm-disabled-opacity, 0.6);
|
|
16139
|
+
cursor: not-allowed;
|
|
16140
|
+
}
|
|
16141
|
+
|
|
16142
|
+
.dm-dropzone.is-disabled:hover {
|
|
16143
|
+
border-color: var(--dm-border);
|
|
16144
|
+
}
|
|
16145
|
+
|
|
16146
|
+
.dm-dropzone-prompt {
|
|
16147
|
+
display: flex;
|
|
16148
|
+
flex-direction: column;
|
|
16149
|
+
align-items: center;
|
|
16150
|
+
gap: var(--dm-space-1);
|
|
16151
|
+
pointer-events: none;
|
|
16152
|
+
}
|
|
16153
|
+
|
|
16154
|
+
.dm-dropzone-icon {
|
|
16155
|
+
color: var(--dm-text-secondary);
|
|
16156
|
+
}
|
|
16157
|
+
|
|
16158
|
+
.dm-dropzone:hover .dm-dropzone-icon,
|
|
16159
|
+
.dm-dropzone.is-dragover .dm-dropzone-icon {
|
|
16160
|
+
color: var(--dm-text);
|
|
16161
|
+
}
|
|
16162
|
+
|
|
16163
|
+
.dm-dropzone-text {
|
|
16164
|
+
font-weight: 500;
|
|
16165
|
+
}
|
|
16166
|
+
|
|
16167
|
+
.dm-dropzone-hint {
|
|
16168
|
+
color: var(--dm-text-muted);
|
|
16169
|
+
font-size: var(--dm-font-size-sm);
|
|
16170
|
+
}
|
|
16171
|
+
|
|
16172
|
+
.dm-dropzone-files {
|
|
16173
|
+
display: flex;
|
|
16174
|
+
flex-direction: column;
|
|
16175
|
+
gap: var(--dm-space-2);
|
|
16176
|
+
margin: var(--dm-space-3) 0;
|
|
16177
|
+
padding: 0;
|
|
16178
|
+
list-style: none;
|
|
16179
|
+
}
|
|
16180
|
+
|
|
16181
|
+
.dm-dropzone-files[hidden] {
|
|
16182
|
+
display: none;
|
|
16183
|
+
}
|
|
16184
|
+
|
|
16185
|
+
.dm-dropzone-file {
|
|
16186
|
+
display: grid;
|
|
16187
|
+
grid-template-columns: 2.75rem minmax(0, 1fr) auto auto;
|
|
16188
|
+
grid-template-areas: "thumb meta retry remove" "thumb bar bar bar";
|
|
16189
|
+
align-items: center;
|
|
16190
|
+
column-gap: var(--dm-space-3);
|
|
16191
|
+
row-gap: var(--dm-space-1);
|
|
16192
|
+
padding: var(--dm-space-2) var(--dm-space-3);
|
|
16193
|
+
border: 1px solid var(--dm-border);
|
|
16194
|
+
border-radius: var(--dm-radius-md);
|
|
16195
|
+
background: var(--dm-surface);
|
|
16196
|
+
color: var(--dm-text);
|
|
16197
|
+
}
|
|
16198
|
+
|
|
16199
|
+
.dm-dropzone-file[data-status="error"] {
|
|
16200
|
+
border-color: var(--dm-danger);
|
|
16201
|
+
}
|
|
16202
|
+
|
|
16203
|
+
.dm-dropzone-thumb {
|
|
16204
|
+
grid-area: thumb;
|
|
16205
|
+
display: flex;
|
|
16206
|
+
align-items: center;
|
|
16207
|
+
justify-content: center;
|
|
16208
|
+
width: 2.75rem;
|
|
16209
|
+
height: 2.75rem;
|
|
16210
|
+
overflow: hidden;
|
|
16211
|
+
border-radius: var(--dm-radius-sm);
|
|
16212
|
+
background: color-mix(in srgb, var(--dm-text) 8%, var(--dm-surface));
|
|
16213
|
+
color: var(--dm-text-secondary);
|
|
16214
|
+
font-size: var(--dm-font-size-xs);
|
|
16215
|
+
font-weight: 600;
|
|
16216
|
+
}
|
|
16217
|
+
|
|
16218
|
+
.dm-dropzone-thumb img {
|
|
16219
|
+
display: block;
|
|
16220
|
+
width: 100%;
|
|
16221
|
+
height: 100%;
|
|
16222
|
+
object-fit: cover;
|
|
16223
|
+
}
|
|
16224
|
+
|
|
16225
|
+
.dm-dropzone-meta {
|
|
16226
|
+
grid-area: meta;
|
|
16227
|
+
display: flex;
|
|
16228
|
+
flex-wrap: wrap;
|
|
16229
|
+
align-items: baseline;
|
|
16230
|
+
column-gap: var(--dm-space-2);
|
|
16231
|
+
min-width: 0;
|
|
16232
|
+
}
|
|
16233
|
+
|
|
16234
|
+
.dm-dropzone-name {
|
|
16235
|
+
flex: 1 1 auto;
|
|
16236
|
+
min-width: 0;
|
|
16237
|
+
overflow: hidden;
|
|
16238
|
+
text-overflow: ellipsis;
|
|
16239
|
+
white-space: nowrap;
|
|
16240
|
+
}
|
|
16241
|
+
|
|
16242
|
+
.dm-dropzone-size,
|
|
16243
|
+
.dm-dropzone-status {
|
|
16244
|
+
color: var(--dm-text-muted);
|
|
16245
|
+
font-size: var(--dm-font-size-sm);
|
|
16246
|
+
}
|
|
16247
|
+
|
|
16248
|
+
/* State colours stay on borders and bars (--dm-danger / --dm-success as text on a
|
|
16249
|
+
surface fail AA in several themes); the words carry the state */
|
|
16250
|
+
.dm-dropzone-file[data-status="error"] .dm-dropzone-status {
|
|
16251
|
+
color: var(--dm-text);
|
|
16252
|
+
font-weight: 600;
|
|
16253
|
+
}
|
|
16254
|
+
|
|
16255
|
+
.dm-dropzone-progress {
|
|
16256
|
+
grid-area: bar;
|
|
16257
|
+
display: block;
|
|
16258
|
+
height: 0.375rem;
|
|
16259
|
+
overflow: hidden;
|
|
16260
|
+
border-radius: var(--dm-radius-full);
|
|
16261
|
+
background: color-mix(in srgb, var(--dm-text) 10%, var(--dm-surface));
|
|
16262
|
+
}
|
|
16263
|
+
|
|
16264
|
+
.dm-dropzone-progress[hidden] {
|
|
16265
|
+
display: none;
|
|
16266
|
+
}
|
|
16267
|
+
|
|
16268
|
+
.dm-dropzone-progress-bar {
|
|
16269
|
+
display: block;
|
|
16270
|
+
width: 0;
|
|
16271
|
+
height: 100%;
|
|
16272
|
+
border-radius: inherit;
|
|
16273
|
+
background: var(--dm-primary);
|
|
16274
|
+
}
|
|
16275
|
+
|
|
16276
|
+
.dm-dropzone-file[data-status="done"] .dm-dropzone-progress-bar {
|
|
16277
|
+
background: var(--dm-success);
|
|
16278
|
+
}
|
|
16279
|
+
|
|
16280
|
+
.dm-dropzone-retry {
|
|
16281
|
+
grid-area: retry;
|
|
16282
|
+
}
|
|
16283
|
+
|
|
16284
|
+
.dm-dropzone-retry[hidden] {
|
|
16285
|
+
display: none;
|
|
16286
|
+
}
|
|
16287
|
+
|
|
16288
|
+
.dm-dropzone-remove {
|
|
16289
|
+
grid-area: remove;
|
|
16290
|
+
display: inline-flex;
|
|
16291
|
+
align-items: center;
|
|
16292
|
+
justify-content: center;
|
|
16293
|
+
width: 2rem;
|
|
16294
|
+
height: 2rem;
|
|
16295
|
+
padding: 0;
|
|
16296
|
+
border: 0;
|
|
16297
|
+
border-radius: var(--dm-radius-full);
|
|
16298
|
+
background: transparent;
|
|
16299
|
+
color: var(--dm-text-muted);
|
|
16300
|
+
font-size: 1.25rem;
|
|
16301
|
+
line-height: 1;
|
|
16302
|
+
cursor: pointer;
|
|
16303
|
+
}
|
|
16304
|
+
|
|
16305
|
+
.dm-dropzone-remove:hover:not(:disabled) {
|
|
16306
|
+
background: var(--dm-hover-bg);
|
|
16307
|
+
color: var(--dm-text);
|
|
16308
|
+
}
|
|
16309
|
+
|
|
16310
|
+
.dm-dropzone-remove:focus-visible {
|
|
16311
|
+
outline: 2px solid var(--dm-border-focus);
|
|
16312
|
+
outline-offset: 1px;
|
|
16313
|
+
}
|
|
16314
|
+
|
|
16315
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
16316
|
+
.dm-dropzone-progress-bar {
|
|
16317
|
+
transition: width var(--dm-transition-fast);
|
|
16318
|
+
}
|
|
16319
|
+
}
|
|
16320
|
+
|
|
16321
|
+
@media (prefers-reduced-motion: reduce) {
|
|
16322
|
+
.dm-dropzone {
|
|
16323
|
+
transition: none;
|
|
16324
|
+
}
|
|
16325
|
+
}
|
|
16326
|
+
|
|
16327
|
+
/* ===== Range Slider ===== */
|
|
16328
|
+
/*
|
|
16329
|
+
* E.rangeSlider(target, options) / E.slider - src/components/range-slider.js
|
|
16330
|
+
*
|
|
16331
|
+
* The real <input type="range"> elements are hidden; this is the drawn slider in
|
|
16332
|
+
* front of them. The root is the hit area (2.75rem tall - a comfortable touch
|
|
16333
|
+
* target) with a thin track through its middle. Thumbs are positioned by JS
|
|
16334
|
+
* with left / right / bottom as a percentage and centred with a transform.
|
|
16335
|
+
*/
|
|
16336
|
+
.dm-range-slider {
|
|
16337
|
+
position: relative;
|
|
16338
|
+
display: block;
|
|
16339
|
+
height: 2.75rem;
|
|
16340
|
+
margin: 0 0.625rem;
|
|
16341
|
+
color: var(--dm-text);
|
|
16342
|
+
cursor: pointer;
|
|
16343
|
+
user-select: none;
|
|
16344
|
+
-webkit-user-select: none;
|
|
16345
|
+
/* A horizontal slider still lets the page scroll vertically on touch */
|
|
16346
|
+
touch-action: pan-y;
|
|
16347
|
+
-webkit-tap-highlight-color: transparent;
|
|
16348
|
+
}
|
|
16349
|
+
|
|
16350
|
+
.dm-range-slider.has-tick-labels,
|
|
16351
|
+
.dm-range-slider.has-marks {
|
|
16352
|
+
margin-bottom: 1.5rem;
|
|
16353
|
+
}
|
|
16354
|
+
|
|
16355
|
+
/* A tooltip that is always shown needs room above the track */
|
|
16356
|
+
.dm-range-slider[data-tooltip="always"]:not([data-orientation="vertical"]) {
|
|
16357
|
+
margin-top: 1.75rem;
|
|
16358
|
+
}
|
|
16359
|
+
|
|
16360
|
+
.dm-range-slider[data-orientation="vertical"] {
|
|
16361
|
+
display: inline-block;
|
|
16362
|
+
width: 2.75rem;
|
|
16363
|
+
height: 12rem;
|
|
16364
|
+
margin: 0.625rem 0;
|
|
16365
|
+
touch-action: pan-x;
|
|
16366
|
+
vertical-align: top;
|
|
16367
|
+
}
|
|
16368
|
+
|
|
16369
|
+
.dm-range-slider[data-orientation="vertical"].has-tick-labels,
|
|
16370
|
+
.dm-range-slider[data-orientation="vertical"].has-marks {
|
|
16371
|
+
margin-bottom: 0.625rem;
|
|
16372
|
+
margin-right: 3rem;
|
|
16373
|
+
}
|
|
16374
|
+
|
|
16375
|
+
.dm-range-track {
|
|
16376
|
+
position: absolute;
|
|
16377
|
+
left: 0;
|
|
16378
|
+
right: 0;
|
|
16379
|
+
top: 50%;
|
|
16380
|
+
height: 0.375rem;
|
|
16381
|
+
transform: translateY(-50%);
|
|
16382
|
+
border-radius: var(--dm-radius-full);
|
|
16383
|
+
background: color-mix(in srgb, var(--dm-text) 16%, var(--dm-surface));
|
|
16384
|
+
}
|
|
16385
|
+
|
|
16386
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-track {
|
|
16387
|
+
left: 50%;
|
|
16388
|
+
right: auto;
|
|
16389
|
+
top: 0;
|
|
16390
|
+
bottom: 0;
|
|
16391
|
+
width: 0.375rem;
|
|
16392
|
+
height: auto;
|
|
16393
|
+
transform: translateX(-50%);
|
|
16394
|
+
}
|
|
16395
|
+
|
|
16396
|
+
.dm-range-fill {
|
|
16397
|
+
position: absolute;
|
|
16398
|
+
top: 0;
|
|
16399
|
+
bottom: 0;
|
|
16400
|
+
border-radius: inherit;
|
|
16401
|
+
background: var(--dm-primary);
|
|
16402
|
+
}
|
|
16403
|
+
|
|
16404
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-fill {
|
|
16405
|
+
left: 0;
|
|
16406
|
+
right: 0;
|
|
16407
|
+
top: auto;
|
|
16408
|
+
}
|
|
16409
|
+
|
|
16410
|
+
.dm-range-thumb {
|
|
16411
|
+
position: absolute;
|
|
16412
|
+
top: 50%;
|
|
16413
|
+
z-index: 2;
|
|
16414
|
+
width: 1.25rem;
|
|
16415
|
+
height: 1.25rem;
|
|
16416
|
+
border: 2px solid var(--dm-primary);
|
|
16417
|
+
border-radius: var(--dm-radius-full);
|
|
16418
|
+
background: var(--dm-surface);
|
|
16419
|
+
box-shadow: var(--dm-shadow-md);
|
|
16420
|
+
transform: translate(-50%, -50%);
|
|
16421
|
+
cursor: grab;
|
|
16422
|
+
touch-action: none;
|
|
16423
|
+
}
|
|
16424
|
+
|
|
16425
|
+
.dm-range-slider[dir="rtl"] .dm-range-thumb {
|
|
16426
|
+
transform: translate(50%, -50%);
|
|
16427
|
+
}
|
|
16428
|
+
|
|
16429
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-thumb {
|
|
16430
|
+
top: auto;
|
|
16431
|
+
left: 50%;
|
|
16432
|
+
transform: translate(-50%, 50%);
|
|
16433
|
+
}
|
|
16434
|
+
|
|
16435
|
+
.dm-range-thumb:hover {
|
|
16436
|
+
box-shadow: 0 0 0 0.375rem var(--dm-focus-ring);
|
|
16437
|
+
}
|
|
16438
|
+
|
|
16439
|
+
.dm-range-thumb:focus-visible {
|
|
16440
|
+
outline: 2px solid var(--dm-border-focus);
|
|
16441
|
+
outline-offset: 2px;
|
|
16442
|
+
box-shadow: 0 0 0 0.375rem var(--dm-focus-ring);
|
|
16443
|
+
}
|
|
16444
|
+
|
|
16445
|
+
/* The thumb being moved sits above the other when they meet */
|
|
16446
|
+
.dm-range-thumb.is-active,
|
|
16447
|
+
.dm-range-thumb:focus-visible {
|
|
16448
|
+
z-index: 3;
|
|
16449
|
+
}
|
|
16450
|
+
|
|
16451
|
+
.dm-range-slider.is-dragging,
|
|
16452
|
+
.dm-range-slider.is-dragging .dm-range-thumb {
|
|
16453
|
+
cursor: grabbing;
|
|
16454
|
+
}
|
|
16455
|
+
|
|
16456
|
+
.dm-range-tooltip {
|
|
16457
|
+
position: absolute;
|
|
16458
|
+
bottom: calc(100% + 0.5rem);
|
|
16459
|
+
left: 50%;
|
|
16460
|
+
padding: 0.125rem 0.5rem;
|
|
16461
|
+
border-radius: var(--dm-radius-sm);
|
|
16462
|
+
background: var(--dm-text);
|
|
16463
|
+
color: var(--dm-surface);
|
|
16464
|
+
font-size: var(--dm-font-size-xs);
|
|
16465
|
+
line-height: 1.5;
|
|
16466
|
+
white-space: nowrap;
|
|
16467
|
+
pointer-events: none;
|
|
16468
|
+
transform: translateX(-50%);
|
|
16469
|
+
opacity: 0;
|
|
16470
|
+
visibility: hidden;
|
|
16471
|
+
}
|
|
16472
|
+
|
|
16473
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-tooltip {
|
|
16474
|
+
bottom: auto;
|
|
16475
|
+
left: calc(100% + 0.5rem);
|
|
16476
|
+
top: 50%;
|
|
16477
|
+
transform: translateY(-50%);
|
|
16478
|
+
}
|
|
16479
|
+
|
|
16480
|
+
.dm-range-slider[data-tooltip="always"] .dm-range-tooltip,
|
|
16481
|
+
.dm-range-slider[data-tooltip="hover"] .dm-range-thumb:hover .dm-range-tooltip,
|
|
16482
|
+
.dm-range-slider[data-tooltip="hover"] .dm-range-thumb:focus-visible .dm-range-tooltip,
|
|
16483
|
+
.dm-range-slider[data-tooltip="hover"] .dm-range-thumb.is-active .dm-range-tooltip {
|
|
16484
|
+
opacity: 1;
|
|
16485
|
+
visibility: visible;
|
|
16486
|
+
}
|
|
16487
|
+
|
|
16488
|
+
.dm-range-ticks,
|
|
16489
|
+
.dm-range-marks {
|
|
16490
|
+
position: absolute;
|
|
16491
|
+
inset: 0;
|
|
16492
|
+
pointer-events: none;
|
|
16493
|
+
}
|
|
16494
|
+
|
|
16495
|
+
.dm-range-tick,
|
|
16496
|
+
.dm-range-mark {
|
|
16497
|
+
position: absolute;
|
|
16498
|
+
top: calc(50% + 0.375rem);
|
|
16499
|
+
width: 1px;
|
|
16500
|
+
height: 0.375rem;
|
|
16501
|
+
background: var(--dm-border-dark);
|
|
16502
|
+
transform: translateX(-50%);
|
|
16503
|
+
}
|
|
16504
|
+
|
|
16505
|
+
.dm-range-slider[dir="rtl"] .dm-range-tick,
|
|
16506
|
+
.dm-range-slider[dir="rtl"] .dm-range-mark {
|
|
16507
|
+
transform: translateX(50%);
|
|
16508
|
+
}
|
|
16509
|
+
|
|
16510
|
+
.dm-range-tick.is-in-range {
|
|
16511
|
+
background: var(--dm-primary);
|
|
16512
|
+
}
|
|
16513
|
+
|
|
16514
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-tick,
|
|
16515
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-mark {
|
|
16516
|
+
top: auto;
|
|
16517
|
+
left: calc(50% + 0.375rem);
|
|
16518
|
+
width: 0.375rem;
|
|
16519
|
+
height: 1px;
|
|
16520
|
+
transform: translateY(50%);
|
|
16521
|
+
}
|
|
16522
|
+
|
|
16523
|
+
.dm-range-mark {
|
|
16524
|
+
width: 0.375rem;
|
|
16525
|
+
height: 0.375rem;
|
|
16526
|
+
top: 50%;
|
|
16527
|
+
border-radius: var(--dm-radius-full);
|
|
16528
|
+
background: var(--dm-surface);
|
|
16529
|
+
border: 1px solid var(--dm-border-dark);
|
|
16530
|
+
transform: translate(-50%, -50%);
|
|
16531
|
+
pointer-events: auto;
|
|
16532
|
+
z-index: 1;
|
|
16533
|
+
}
|
|
16534
|
+
|
|
16535
|
+
.dm-range-slider[dir="rtl"] .dm-range-mark {
|
|
16536
|
+
transform: translate(50%, -50%);
|
|
16537
|
+
}
|
|
16538
|
+
|
|
16539
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-mark {
|
|
16540
|
+
left: 50%;
|
|
16541
|
+
width: 0.375rem;
|
|
16542
|
+
height: 0.375rem;
|
|
16543
|
+
transform: translate(-50%, 50%);
|
|
16544
|
+
}
|
|
16545
|
+
|
|
16546
|
+
.dm-range-tick-label,
|
|
16547
|
+
.dm-range-mark-label {
|
|
16548
|
+
position: absolute;
|
|
16549
|
+
top: calc(100% + 0.25rem);
|
|
16550
|
+
left: 50%;
|
|
16551
|
+
color: var(--dm-text-muted);
|
|
16552
|
+
font-size: var(--dm-font-size-xs);
|
|
16553
|
+
line-height: 1.2;
|
|
16554
|
+
white-space: nowrap;
|
|
16555
|
+
transform: translateX(-50%);
|
|
16556
|
+
}
|
|
16557
|
+
|
|
16558
|
+
.dm-range-mark-label {
|
|
16559
|
+
top: calc(100% + 0.625rem);
|
|
16560
|
+
color: var(--dm-text-secondary);
|
|
16561
|
+
cursor: pointer;
|
|
16562
|
+
}
|
|
16563
|
+
|
|
16564
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-tick-label,
|
|
16565
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-mark-label {
|
|
16566
|
+
top: 50%;
|
|
16567
|
+
left: calc(100% + 0.5rem);
|
|
16568
|
+
transform: translateY(-50%);
|
|
16569
|
+
}
|
|
16570
|
+
|
|
16571
|
+
.dm-range-slider.is-disabled {
|
|
16572
|
+
opacity: var(--dm-disabled-opacity, 0.6);
|
|
16573
|
+
cursor: not-allowed;
|
|
16574
|
+
}
|
|
16575
|
+
|
|
16576
|
+
.dm-range-slider.is-disabled .dm-range-thumb {
|
|
16577
|
+
cursor: not-allowed;
|
|
16578
|
+
box-shadow: none;
|
|
16579
|
+
}
|
|
16580
|
+
|
|
16581
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
16582
|
+
.dm-range-thumb {
|
|
16583
|
+
transition: box-shadow var(--dm-transition-fast);
|
|
16584
|
+
}
|
|
16585
|
+
|
|
16586
|
+
.dm-range-tooltip {
|
|
16587
|
+
transition: opacity var(--dm-transition-fast), visibility var(--dm-transition-fast);
|
|
16588
|
+
}
|
|
16589
|
+
}
|
|
16590
|
+
|
|
16591
|
+
@media (forced-colors: active) {
|
|
16592
|
+
.dm-range-fill,
|
|
16593
|
+
.dm-dropzone-progress-bar {
|
|
16594
|
+
background: Highlight;
|
|
16595
|
+
}
|
|
16596
|
+
|
|
16597
|
+
.dm-range-thumb {
|
|
16598
|
+
background: ButtonFace;
|
|
16599
|
+
border-color: ButtonText;
|
|
16600
|
+
}
|
|
16601
|
+
}
|
|
16602
|
+
|
|
15157
16603
|
|
|
15158
16604
|
/* ============================================
|
|
15159
16605
|
THEME SYSTEM
|
|
@@ -15161,11 +16607,11 @@ a.avatar-more-person:hover .avatar-more-name {
|
|
|
15161
16607
|
============================================ */
|
|
15162
16608
|
|
|
15163
16609
|
/*!
|
|
15164
|
-
* Domma Themes v0.
|
|
16610
|
+
* Domma Themes v0.56.0
|
|
15165
16611
|
* Dynamic Object Manipulation & Modeling API
|
|
15166
16612
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
15167
|
-
* Built: 2026-10-
|
|
15168
|
-
* Commit:
|
|
16613
|
+
* Built: 2026-10-24T16:12:49.139Z
|
|
16614
|
+
* Commit: f768320
|
|
15169
16615
|
*/
|
|
15170
16616
|
|
|
15171
16617
|
/**
|