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.
- package/assets/types/generated/public/assets/flags/africa.d.ts +6 -0
- package/assets/types/generated/public/assets/flags/americas.d.ts +6 -0
- package/assets/types/generated/public/assets/flags/asia.d.ts +6 -0
- package/assets/types/generated/public/assets/flags/europe.d.ts +9 -0
- package/assets/types/generated/public/assets/flags/index.d.ts +11 -0
- package/assets/types/generated/public/assets/flags/oceania.d.ts +2 -0
- package/assets/types/generated/public/assets/icons/buildings.d.ts +6 -0
- package/assets/types/generated/public/assets/icons/code.d.ts +2 -0
- package/assets/types/generated/public/assets/icons/commerce.d.ts +7 -0
- package/assets/types/generated/public/assets/icons/communication.d.ts +7 -0
- package/assets/types/generated/public/assets/icons/devices.d.ts +6 -0
- package/assets/types/generated/public/assets/icons/emojis.d.ts +6 -0
- package/assets/types/generated/public/assets/icons/files.d.ts +7 -0
- package/assets/types/generated/public/assets/icons/finance.d.ts +6 -0
- package/assets/types/generated/public/assets/icons/forms.d.ts +5 -0
- package/assets/types/generated/public/assets/icons/health.d.ts +6 -0
- package/assets/types/generated/public/assets/icons/index.d.ts +24 -0
- package/assets/types/generated/public/assets/icons/media.d.ts +7 -0
- package/assets/types/generated/public/assets/icons/navigation.d.ts +7 -0
- package/assets/types/generated/public/assets/icons/seasonal.d.ts +6 -0
- package/assets/types/generated/public/assets/icons/social.d.ts +7 -0
- package/assets/types/generated/public/assets/icons/sport.d.ts +6 -0
- package/assets/types/generated/public/assets/icons/status.d.ts +7 -0
- package/assets/types/generated/public/assets/icons/transport.d.ts +7 -0
- package/assets/types/generated/public/assets/icons/ui.d.ts +7 -0
- package/assets/types/generated/public/assets/icons/weather.d.ts +6 -0
- package/assets/types/generated/src/auth.d.ts +424 -0
- package/assets/types/generated/src/avatar.d.ts +270 -0
- package/assets/types/generated/src/binding-source.d.ts +58 -0
- package/assets/types/generated/src/butterfly-drawing.d.ts +2 -0
- package/assets/types/generated/src/component-factory.d.ts +150 -0
- package/assets/types/generated/src/component.d.ts +162 -0
- package/assets/types/generated/src/components/back-to-top.d.ts +150 -0
- package/assets/types/generated/src/components/badge.d.ts +208 -0
- package/assets/types/generated/src/components/card.d.ts +189 -0
- package/assets/types/generated/src/components/command-palette.d.ts +352 -0
- package/assets/types/generated/src/components/dropzone.d.ts +342 -0
- package/assets/types/generated/src/components/focus-trap.d.ts +238 -0
- package/assets/types/generated/src/components/loader.d.ts +133 -0
- package/assets/types/generated/src/components/modal.d.ts +341 -0
- package/assets/types/generated/src/components/range-slider.d.ts +267 -0
- package/assets/types/generated/src/components/shared.d.ts +91 -0
- package/assets/types/generated/src/components/split-pane.d.ts +239 -0
- package/assets/types/generated/src/components/toast.d.ts +284 -0
- package/assets/types/generated/src/components/tooltip.d.ts +200 -0
- package/assets/types/generated/src/components/virtual-list.d.ts +340 -0
- package/assets/types/generated/src/config.d.ts +193 -0
- package/assets/types/generated/src/context-cursor.d.ts +69 -0
- package/assets/types/generated/src/context-menu.d.ts +596 -0
- package/assets/types/generated/src/dates.d.ts +367 -0
- package/assets/types/generated/src/dom.d.ts +1221 -0
- package/assets/types/generated/src/effects.d.ts +1281 -0
- package/assets/types/generated/src/elements.d.ts +4996 -0
- package/assets/types/generated/src/escape.d.ts +5 -0
- package/assets/types/generated/src/flags-bundle.d.ts +4 -0
- package/assets/types/generated/src/flags.d.ts +338 -0
- package/assets/types/generated/src/forms.d.ts +1060 -0
- package/assets/types/generated/src/globals.d.ts +45 -0
- package/assets/types/generated/src/http.d.ts +131 -0
- package/assets/types/generated/src/i18n.d.ts +261 -0
- package/assets/types/generated/src/icons.d.ts +213 -0
- package/assets/types/generated/src/index.d.ts +249 -0
- package/assets/types/generated/src/input-group.d.ts +135 -0
- package/assets/types/generated/src/models.d.ts +968 -0
- package/assets/types/generated/src/popover.d.ts +412 -0
- package/assets/types/generated/src/router.d.ts +344 -0
- package/assets/types/generated/src/safe-url.d.ts +10 -0
- package/assets/types/generated/src/sanitize.d.ts +97 -0
- package/assets/types/generated/src/schema-builder.d.ts +420 -0
- package/assets/types/generated/src/skeleton.d.ts +135 -0
- package/assets/types/generated/src/smooth-caret.d.ts +61 -0
- package/assets/types/generated/src/sortable.d.ts +369 -0
- package/assets/types/generated/src/storage.d.ts +93 -0
- package/assets/types/generated/src/tables.d.ts +901 -0
- package/assets/types/generated/src/theme.d.ts +277 -0
- package/assets/types/generated/src/ticker-tape-drawing.d.ts +2 -0
- package/assets/types/generated/src/treeview.d.ts +504 -0
- package/assets/types/generated/src/utils.d.ts +1667 -0
- package/assets/types/generated/src/web-components/base/domma-element.d.ts +134 -0
- package/assets/types/generated/src/web-components/index.d.ts +14 -0
- package/assets/types/generated/vendor/domma-reactive.d.ts +587 -0
- package/assets/types/index.d.ts +104 -216
- package/package.json +5 -2
- package/public/dist/bundles/domma-complete.css +1084 -14
- package/public/dist/bundles/domma-data-focused.css +1084 -14
- package/public/dist/bundles/domma-essentials.css +1084 -14
- package/public/dist/bundles/domma-full.css +1084 -14
- package/public/dist/bundles/domma-minimal.css +8 -8
- package/public/dist/domma-flags.esm.js +3 -3
- package/public/dist/domma-flags.esm.js.map +1 -1
- package/public/dist/domma-flags.min.js +3 -3
- package/public/dist/domma-flags.min.js.map +1 -1
- 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 +1073 -3
- package/public/dist/grid.css +3 -3
- package/public/dist/syntax.css +3 -3
- package/public/dist/themes/domma-themes.css +3 -3
- package/templates/kickstart/frontend/types/domma.d.ts +2 -1
- package/assets/types/config.d.ts +0 -136
- package/assets/types/dates.d.ts +0 -209
- package/assets/types/dom.d.ts +0 -448
- package/assets/types/elements.d.ts +0 -682
- package/assets/types/flags.d.ts +0 -130
- package/assets/types/http.d.ts +0 -97
- package/assets/types/icons.d.ts +0 -147
- package/assets/types/models.d.ts +0 -260
- package/assets/types/smooth-caret.d.ts +0 -12
- package/assets/types/storage.d.ts +0 -93
- package/assets/types/tables.d.ts +0 -327
- package/assets/types/theme.d.ts +0 -137
- package/assets/types/utils.d.ts +0 -675
package/public/dist/elements.css
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Domma Elements CSS v0.
|
|
2
|
+
* Domma Elements CSS v0.57.0
|
|
3
3
|
* Dynamic Object Manipulation & Modeling API
|
|
4
4
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
5
|
-
* Built: 2026-10-
|
|
6
|
-
* Commit:
|
|
5
|
+
* Built: 2026-10-24T20:04:51.175Z
|
|
6
|
+
* Commit: 8ca8224
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -3986,6 +3986,12 @@ code {
|
|
|
3986
3986
|
z-index: 10000;
|
|
3987
3987
|
}
|
|
3988
3988
|
|
|
3989
|
+
/* A slideover takes focus itself on open (its focus trap), so the first Tab reaches its
|
|
3990
|
+
first control; the panel is not a tab stop and needs no ring of its own. */
|
|
3991
|
+
.dm-slideover[tabindex="-1"]:focus {
|
|
3992
|
+
outline: none;
|
|
3993
|
+
}
|
|
3994
|
+
|
|
3989
3995
|
.dm-dialog-overlay {
|
|
3990
3996
|
position: fixed;
|
|
3991
3997
|
top: 0;
|
|
@@ -9938,3 +9944,1067 @@ a.avatar-tone-7:hover {
|
|
|
9938
9944
|
a.avatar-more-person:hover .avatar-more-name {
|
|
9939
9945
|
text-decoration: underline;
|
|
9940
9946
|
}
|
|
9947
|
+
|
|
9948
|
+
/* ===== Command Palette ===== */
|
|
9949
|
+
/*
|
|
9950
|
+
* E.commandPalette(options) - src/components/command-palette.js
|
|
9951
|
+
*
|
|
9952
|
+
* The overlay covers the viewport: a backdrop and a panel near the top, the way the
|
|
9953
|
+
* modal looks (--dm-modal-* tokens), so it sits with the site's dialogs in every theme.
|
|
9954
|
+
* Above modals and slideovers, which it is often opened over; below popovers (10045)
|
|
9955
|
+
* and the context menu (10050).
|
|
9956
|
+
*/
|
|
9957
|
+
.dm-command-palette {
|
|
9958
|
+
position: fixed;
|
|
9959
|
+
inset: 0;
|
|
9960
|
+
z-index: 10040;
|
|
9961
|
+
display: flex;
|
|
9962
|
+
justify-content: center;
|
|
9963
|
+
align-items: flex-start;
|
|
9964
|
+
padding: 12vh 1rem 1rem;
|
|
9965
|
+
box-sizing: border-box;
|
|
9966
|
+
--dm-command-palette-duration: 150ms;
|
|
9967
|
+
}
|
|
9968
|
+
|
|
9969
|
+
.dm-command-palette[hidden] {
|
|
9970
|
+
display: none;
|
|
9971
|
+
}
|
|
9972
|
+
|
|
9973
|
+
.dm-command-palette *,
|
|
9974
|
+
.dm-command-palette *::before,
|
|
9975
|
+
.dm-command-palette *::after {
|
|
9976
|
+
box-sizing: border-box;
|
|
9977
|
+
}
|
|
9978
|
+
|
|
9979
|
+
.dm-command-palette-backdrop {
|
|
9980
|
+
position: fixed;
|
|
9981
|
+
inset: 0;
|
|
9982
|
+
background: var(--dm-modal-backdrop);
|
|
9983
|
+
opacity: 0;
|
|
9984
|
+
transition: opacity var(--dm-command-palette-duration) ease;
|
|
9985
|
+
}
|
|
9986
|
+
|
|
9987
|
+
.dm-command-palette-panel {
|
|
9988
|
+
position: relative;
|
|
9989
|
+
display: flex;
|
|
9990
|
+
flex-direction: column;
|
|
9991
|
+
width: min(40rem, 100%);
|
|
9992
|
+
max-height: min(32rem, 76vh);
|
|
9993
|
+
background: var(--dm-modal-bg);
|
|
9994
|
+
color: var(--dm-text);
|
|
9995
|
+
border: 1px solid var(--dm-modal-border);
|
|
9996
|
+
border-radius: var(--dm-radius-lg);
|
|
9997
|
+
box-shadow: var(--dm-modal-shadow);
|
|
9998
|
+
overflow: hidden;
|
|
9999
|
+
opacity: 0;
|
|
10000
|
+
transform: scale(0.97) translateY(-6px);
|
|
10001
|
+
transition:
|
|
10002
|
+
opacity var(--dm-command-palette-duration) ease,
|
|
10003
|
+
transform var(--dm-command-palette-duration) cubic-bezier(0.16, 1, 0.3, 1);
|
|
10004
|
+
}
|
|
10005
|
+
|
|
10006
|
+
.dm-command-palette.is-open .dm-command-palette-backdrop { opacity: 1; }
|
|
10007
|
+
.dm-command-palette.is-open .dm-command-palette-panel { opacity: 1; transform: none; }
|
|
10008
|
+
|
|
10009
|
+
@media (prefers-reduced-motion: reduce) {
|
|
10010
|
+
.dm-command-palette-backdrop,
|
|
10011
|
+
.dm-command-palette-panel {
|
|
10012
|
+
transition: none;
|
|
10013
|
+
}
|
|
10014
|
+
}
|
|
10015
|
+
|
|
10016
|
+
/* Where you are in nested pages, with a way back up. */
|
|
10017
|
+
.dm-command-palette-crumbs {
|
|
10018
|
+
display: flex;
|
|
10019
|
+
align-items: center;
|
|
10020
|
+
gap: 0.5rem;
|
|
10021
|
+
padding: 0.625rem 0.875rem 0;
|
|
10022
|
+
font-size: 0.8125rem;
|
|
10023
|
+
color: var(--dm-text-muted);
|
|
10024
|
+
}
|
|
10025
|
+
|
|
10026
|
+
.dm-command-palette-crumbs[hidden] { display: none; }
|
|
10027
|
+
|
|
10028
|
+
.dm-command-palette-back {
|
|
10029
|
+
display: inline-flex;
|
|
10030
|
+
align-items: center;
|
|
10031
|
+
justify-content: center;
|
|
10032
|
+
width: 1.75rem;
|
|
10033
|
+
height: 1.75rem;
|
|
10034
|
+
padding: 0;
|
|
10035
|
+
border: 1px solid var(--dm-border);
|
|
10036
|
+
border-radius: var(--dm-radius-sm);
|
|
10037
|
+
background: transparent;
|
|
10038
|
+
color: var(--dm-text);
|
|
10039
|
+
cursor: pointer;
|
|
10040
|
+
}
|
|
10041
|
+
|
|
10042
|
+
.dm-command-palette-back:hover { background: var(--dm-hover-bg); }
|
|
10043
|
+
|
|
10044
|
+
.dm-command-palette-back:focus-visible {
|
|
10045
|
+
outline: 2px solid var(--dm-border-focus);
|
|
10046
|
+
outline-offset: 1px;
|
|
10047
|
+
}
|
|
10048
|
+
|
|
10049
|
+
.dm-command-palette-trail {
|
|
10050
|
+
display: flex;
|
|
10051
|
+
flex-wrap: wrap;
|
|
10052
|
+
gap: 0.25rem;
|
|
10053
|
+
margin: 0;
|
|
10054
|
+
padding: 0;
|
|
10055
|
+
list-style: none;
|
|
10056
|
+
}
|
|
10057
|
+
|
|
10058
|
+
.dm-command-palette-trail li + li::before {
|
|
10059
|
+
content: "/";
|
|
10060
|
+
margin-right: 0.25rem;
|
|
10061
|
+
opacity: 0.6;
|
|
10062
|
+
}
|
|
10063
|
+
|
|
10064
|
+
.dm-command-palette-trail [aria-current] { color: var(--dm-text); font-weight: 500; }
|
|
10065
|
+
|
|
10066
|
+
.dm-command-palette-search {
|
|
10067
|
+
display: flex;
|
|
10068
|
+
align-items: center;
|
|
10069
|
+
gap: 0.625rem;
|
|
10070
|
+
padding: 0.75rem 0.875rem;
|
|
10071
|
+
border-bottom: 1px solid var(--dm-border);
|
|
10072
|
+
}
|
|
10073
|
+
|
|
10074
|
+
.dm-command-palette-search-icon {
|
|
10075
|
+
display: inline-flex;
|
|
10076
|
+
color: var(--dm-text-muted);
|
|
10077
|
+
}
|
|
10078
|
+
|
|
10079
|
+
.dm-command-palette-input {
|
|
10080
|
+
flex: 1;
|
|
10081
|
+
min-width: 0;
|
|
10082
|
+
padding: 0.25rem 0;
|
|
10083
|
+
border: 0;
|
|
10084
|
+
background: transparent;
|
|
10085
|
+
color: var(--dm-text);
|
|
10086
|
+
font: inherit;
|
|
10087
|
+
font-size: 1rem;
|
|
10088
|
+
outline: none;
|
|
10089
|
+
}
|
|
10090
|
+
|
|
10091
|
+
.dm-command-palette-input::placeholder { color: var(--dm-input-placeholder); opacity: 1; }
|
|
10092
|
+
|
|
10093
|
+
/* The box is the focus; the panel shows it rather than a ring round a borderless input. */
|
|
10094
|
+
.dm-command-palette-search:focus-within {
|
|
10095
|
+
border-bottom-color: var(--dm-border-focus);
|
|
10096
|
+
}
|
|
10097
|
+
|
|
10098
|
+
.dm-command-palette-spinner {
|
|
10099
|
+
width: 1rem;
|
|
10100
|
+
height: 1rem;
|
|
10101
|
+
border: 2px solid var(--dm-border);
|
|
10102
|
+
border-top-color: var(--dm-primary);
|
|
10103
|
+
border-radius: 50%;
|
|
10104
|
+
animation: dm-command-palette-spin 0.7s linear infinite;
|
|
10105
|
+
}
|
|
10106
|
+
|
|
10107
|
+
.dm-command-palette-spinner[hidden] { display: none; }
|
|
10108
|
+
|
|
10109
|
+
@keyframes dm-command-palette-spin {
|
|
10110
|
+
to { transform: rotate(360deg); }
|
|
10111
|
+
}
|
|
10112
|
+
|
|
10113
|
+
@media (prefers-reduced-motion: reduce) {
|
|
10114
|
+
.dm-command-palette-spinner { animation-duration: 2.4s; }
|
|
10115
|
+
}
|
|
10116
|
+
|
|
10117
|
+
.dm-command-palette-list {
|
|
10118
|
+
flex: 1 1 auto;
|
|
10119
|
+
min-height: 0;
|
|
10120
|
+
overflow-y: auto;
|
|
10121
|
+
overscroll-behavior: contain;
|
|
10122
|
+
padding: 0.375rem;
|
|
10123
|
+
}
|
|
10124
|
+
|
|
10125
|
+
.dm-command-palette-list[hidden] { display: none; }
|
|
10126
|
+
|
|
10127
|
+
.dm-command-palette-group + .dm-command-palette-group,
|
|
10128
|
+
.dm-command-palette-group + .dm-command-palette-item,
|
|
10129
|
+
.dm-command-palette-item + .dm-command-palette-group {
|
|
10130
|
+
margin-top: 0.375rem;
|
|
10131
|
+
}
|
|
10132
|
+
|
|
10133
|
+
.dm-command-palette-group-heading {
|
|
10134
|
+
padding: 0.375rem 0.625rem 0.25rem;
|
|
10135
|
+
font-size: 0.75rem;
|
|
10136
|
+
font-weight: 600;
|
|
10137
|
+
letter-spacing: 0.02em;
|
|
10138
|
+
color: var(--dm-text-muted);
|
|
10139
|
+
}
|
|
10140
|
+
|
|
10141
|
+
.dm-command-palette-item {
|
|
10142
|
+
display: flex;
|
|
10143
|
+
align-items: center;
|
|
10144
|
+
gap: 0.625rem;
|
|
10145
|
+
min-height: 2.5rem;
|
|
10146
|
+
padding: 0.375rem 0.625rem;
|
|
10147
|
+
border-radius: var(--dm-radius-md);
|
|
10148
|
+
color: var(--dm-text);
|
|
10149
|
+
cursor: pointer;
|
|
10150
|
+
user-select: none;
|
|
10151
|
+
}
|
|
10152
|
+
|
|
10153
|
+
.dm-command-palette-item.is-active {
|
|
10154
|
+
background: var(--dm-selected-bg);
|
|
10155
|
+
}
|
|
10156
|
+
|
|
10157
|
+
/* Forced colours drop backgrounds: the active row keeps an outline instead. */
|
|
10158
|
+
@media (forced-colors: active) {
|
|
10159
|
+
.dm-command-palette-item.is-active { outline: 2px solid Highlight; }
|
|
10160
|
+
}
|
|
10161
|
+
|
|
10162
|
+
.dm-command-palette-item[aria-disabled="true"] {
|
|
10163
|
+
cursor: default;
|
|
10164
|
+
opacity: var(--dm-disabled-opacity);
|
|
10165
|
+
}
|
|
10166
|
+
|
|
10167
|
+
.dm-command-palette-icon {
|
|
10168
|
+
flex: 0 0 1rem;
|
|
10169
|
+
display: inline-flex;
|
|
10170
|
+
justify-content: center;
|
|
10171
|
+
color: var(--dm-text-muted);
|
|
10172
|
+
}
|
|
10173
|
+
|
|
10174
|
+
.dm-command-palette-item.is-active .dm-command-palette-icon { color: var(--dm-text); }
|
|
10175
|
+
|
|
10176
|
+
.dm-command-palette-text {
|
|
10177
|
+
flex: 1;
|
|
10178
|
+
min-width: 0;
|
|
10179
|
+
display: flex;
|
|
10180
|
+
flex-direction: column;
|
|
10181
|
+
line-height: 1.3;
|
|
10182
|
+
}
|
|
10183
|
+
|
|
10184
|
+
.dm-command-palette-title,
|
|
10185
|
+
.dm-command-palette-subtitle {
|
|
10186
|
+
overflow: hidden;
|
|
10187
|
+
text-overflow: ellipsis;
|
|
10188
|
+
white-space: nowrap;
|
|
10189
|
+
}
|
|
10190
|
+
|
|
10191
|
+
.dm-command-palette-subtitle {
|
|
10192
|
+
font-size: 0.8125rem;
|
|
10193
|
+
color: var(--dm-text-muted);
|
|
10194
|
+
}
|
|
10195
|
+
|
|
10196
|
+
.dm-command-palette-match {
|
|
10197
|
+
color: var(--dm-primary);
|
|
10198
|
+
font-weight: 600;
|
|
10199
|
+
}
|
|
10200
|
+
|
|
10201
|
+
.dm-command-palette-shortcut,
|
|
10202
|
+
.dm-command-palette-hint {
|
|
10203
|
+
display: inline-flex;
|
|
10204
|
+
align-items: center;
|
|
10205
|
+
gap: 0.25rem;
|
|
10206
|
+
}
|
|
10207
|
+
|
|
10208
|
+
.dm-command-palette kbd {
|
|
10209
|
+
display: inline-flex;
|
|
10210
|
+
align-items: center;
|
|
10211
|
+
justify-content: center;
|
|
10212
|
+
min-width: 1.375rem;
|
|
10213
|
+
height: 1.375rem;
|
|
10214
|
+
padding: 0 0.3rem;
|
|
10215
|
+
border: 1px solid var(--dm-border);
|
|
10216
|
+
border-bottom-width: 2px;
|
|
10217
|
+
border-radius: var(--dm-radius-sm);
|
|
10218
|
+
background: var(--dm-background-alt);
|
|
10219
|
+
color: var(--dm-text-secondary);
|
|
10220
|
+
font-family: inherit;
|
|
10221
|
+
font-size: 0.6875rem;
|
|
10222
|
+
line-height: 1;
|
|
10223
|
+
}
|
|
10224
|
+
|
|
10225
|
+
.dm-command-palette-more {
|
|
10226
|
+
display: inline-flex;
|
|
10227
|
+
color: var(--dm-text-muted);
|
|
10228
|
+
}
|
|
10229
|
+
|
|
10230
|
+
.dm-command-palette-status {
|
|
10231
|
+
padding: 1.5rem 1rem;
|
|
10232
|
+
text-align: center;
|
|
10233
|
+
font-size: 0.875rem;
|
|
10234
|
+
color: var(--dm-text-muted);
|
|
10235
|
+
}
|
|
10236
|
+
|
|
10237
|
+
.dm-command-palette-status[hidden] { display: none; }
|
|
10238
|
+
.dm-command-palette-status[data-state="error"] { color: var(--dm-danger); }
|
|
10239
|
+
|
|
10240
|
+
.dm-command-palette-footer {
|
|
10241
|
+
display: flex;
|
|
10242
|
+
flex-wrap: wrap;
|
|
10243
|
+
gap: 0.5rem 1rem;
|
|
10244
|
+
padding: 0.5rem 0.875rem;
|
|
10245
|
+
border-top: 1px solid var(--dm-border);
|
|
10246
|
+
background: var(--dm-background-alt);
|
|
10247
|
+
color: var(--dm-text-secondary);
|
|
10248
|
+
font-size: 0.75rem;
|
|
10249
|
+
}
|
|
10250
|
+
|
|
10251
|
+
/* Phones: the whole width, from the top. */
|
|
10252
|
+
@media (max-width: 640px) {
|
|
10253
|
+
.dm-command-palette {
|
|
10254
|
+
padding: 0;
|
|
10255
|
+
}
|
|
10256
|
+
|
|
10257
|
+
.dm-command-palette-panel {
|
|
10258
|
+
width: 100%;
|
|
10259
|
+
max-height: 85vh;
|
|
10260
|
+
border-width: 0 0 1px;
|
|
10261
|
+
border-radius: 0 0 var(--dm-radius-lg) var(--dm-radius-lg);
|
|
10262
|
+
}
|
|
10263
|
+
|
|
10264
|
+
.dm-command-palette-footer { display: none; }
|
|
10265
|
+
}
|
|
10266
|
+
|
|
10267
|
+
/* ===== Split Pane ===== */
|
|
10268
|
+
/* E.splitPane(container): flexbox panes with a fixed flex-basis each, gutters between. */
|
|
10269
|
+
.dm-split {
|
|
10270
|
+
display: flex;
|
|
10271
|
+
min-width: 0;
|
|
10272
|
+
min-height: 0;
|
|
10273
|
+
}
|
|
10274
|
+
|
|
10275
|
+
.dm-split-horizontal {
|
|
10276
|
+
flex-direction: row;
|
|
10277
|
+
}
|
|
10278
|
+
|
|
10279
|
+
.dm-split-vertical {
|
|
10280
|
+
flex-direction: column;
|
|
10281
|
+
}
|
|
10282
|
+
|
|
10283
|
+
.dm-split > .dm-split-pane {
|
|
10284
|
+
min-width: 0;
|
|
10285
|
+
min-height: 0;
|
|
10286
|
+
overflow: auto;
|
|
10287
|
+
}
|
|
10288
|
+
|
|
10289
|
+
.dm-split-collapsed {
|
|
10290
|
+
overflow: hidden;
|
|
10291
|
+
}
|
|
10292
|
+
|
|
10293
|
+
.dm-split > .dm-split-gutter {
|
|
10294
|
+
position: relative;
|
|
10295
|
+
display: flex;
|
|
10296
|
+
align-items: center;
|
|
10297
|
+
justify-content: center;
|
|
10298
|
+
background: var(--dm-border);
|
|
10299
|
+
touch-action: none;
|
|
10300
|
+
user-select: none;
|
|
10301
|
+
transition: background-color var(--dm-transition-fast);
|
|
10302
|
+
}
|
|
10303
|
+
|
|
10304
|
+
/* A thin grip line drawn inside the gutter. */
|
|
10305
|
+
.dm-split > .dm-split-gutter::before {
|
|
10306
|
+
content: "";
|
|
10307
|
+
border-radius: var(--dm-radius-full);
|
|
10308
|
+
background: var(--dm-text-muted);
|
|
10309
|
+
opacity: 0.6;
|
|
10310
|
+
}
|
|
10311
|
+
|
|
10312
|
+
.dm-split-horizontal > .dm-split-gutter::before {
|
|
10313
|
+
width: 2px;
|
|
10314
|
+
height: 1.5rem;
|
|
10315
|
+
}
|
|
10316
|
+
|
|
10317
|
+
.dm-split-vertical > .dm-split-gutter::before {
|
|
10318
|
+
width: 1.5rem;
|
|
10319
|
+
height: 2px;
|
|
10320
|
+
}
|
|
10321
|
+
|
|
10322
|
+
.dm-split > .dm-split-gutter:hover,
|
|
10323
|
+
.dm-split > .dm-split-gutter.is-dragging {
|
|
10324
|
+
background: var(--dm-primary);
|
|
10325
|
+
}
|
|
10326
|
+
|
|
10327
|
+
.dm-split > .dm-split-gutter:hover::before,
|
|
10328
|
+
.dm-split > .dm-split-gutter.is-dragging::before {
|
|
10329
|
+
background: var(--dm-primary-text);
|
|
10330
|
+
}
|
|
10331
|
+
|
|
10332
|
+
.dm-split > .dm-split-gutter:focus-visible {
|
|
10333
|
+
outline: 2px solid var(--dm-primary);
|
|
10334
|
+
outline-offset: 1px;
|
|
10335
|
+
z-index: 1;
|
|
10336
|
+
}
|
|
10337
|
+
|
|
10338
|
+
.dm-split-disabled > .dm-split-gutter,
|
|
10339
|
+
.dm-split-disabled > .dm-split-gutter:hover {
|
|
10340
|
+
background: var(--dm-border);
|
|
10341
|
+
cursor: default;
|
|
10342
|
+
}
|
|
10343
|
+
|
|
10344
|
+
/* While dragging, the panes (and any iframe in them) take no pointer events, so the
|
|
10345
|
+
gutter's captured pointer keeps every move, and text does not get selected. */
|
|
10346
|
+
.dm-split-dragging > .dm-split-pane {
|
|
10347
|
+
pointer-events: none;
|
|
10348
|
+
user-select: none;
|
|
10349
|
+
}
|
|
10350
|
+
|
|
10351
|
+
.dm-split-horizontal.dm-split-dragging {
|
|
10352
|
+
cursor: col-resize;
|
|
10353
|
+
}
|
|
10354
|
+
|
|
10355
|
+
.dm-split-vertical.dm-split-dragging {
|
|
10356
|
+
cursor: row-resize;
|
|
10357
|
+
}
|
|
10358
|
+
|
|
10359
|
+
.dm-split-toggle {
|
|
10360
|
+
position: absolute;
|
|
10361
|
+
z-index: 1;
|
|
10362
|
+
display: inline-flex;
|
|
10363
|
+
align-items: center;
|
|
10364
|
+
justify-content: center;
|
|
10365
|
+
width: 1.25rem;
|
|
10366
|
+
height: 1.25rem;
|
|
10367
|
+
padding: 0;
|
|
10368
|
+
border: 1px solid var(--dm-border);
|
|
10369
|
+
border-radius: var(--dm-radius-full);
|
|
10370
|
+
background: var(--dm-surface);
|
|
10371
|
+
color: var(--dm-text);
|
|
10372
|
+
cursor: pointer;
|
|
10373
|
+
font: inherit;
|
|
10374
|
+
line-height: 1;
|
|
10375
|
+
}
|
|
10376
|
+
|
|
10377
|
+
.dm-split-horizontal > .dm-split-gutter > .dm-split-toggle {
|
|
10378
|
+
top: 0.5rem;
|
|
10379
|
+
}
|
|
10380
|
+
|
|
10381
|
+
.dm-split-vertical > .dm-split-gutter > .dm-split-toggle {
|
|
10382
|
+
left: 0.5rem;
|
|
10383
|
+
}
|
|
10384
|
+
|
|
10385
|
+
.dm-split-toggle::before {
|
|
10386
|
+
content: "";
|
|
10387
|
+
width: 0;
|
|
10388
|
+
height: 0;
|
|
10389
|
+
border: 4px solid transparent;
|
|
10390
|
+
}
|
|
10391
|
+
|
|
10392
|
+
.dm-split-horizontal > .dm-split-gutter > .dm-split-toggle::before {
|
|
10393
|
+
border-right-color: currentColor;
|
|
10394
|
+
margin-right: 4px;
|
|
10395
|
+
}
|
|
10396
|
+
|
|
10397
|
+
.dm-split-vertical > .dm-split-gutter > .dm-split-toggle::before {
|
|
10398
|
+
border-bottom-color: currentColor;
|
|
10399
|
+
margin-bottom: 4px;
|
|
10400
|
+
}
|
|
10401
|
+
|
|
10402
|
+
.dm-split-toggle:hover {
|
|
10403
|
+
background: var(--dm-hover-bg);
|
|
10404
|
+
}
|
|
10405
|
+
|
|
10406
|
+
@media (prefers-reduced-motion: reduce) {
|
|
10407
|
+
.dm-split > .dm-split-gutter {
|
|
10408
|
+
transition: none;
|
|
10409
|
+
}
|
|
10410
|
+
}
|
|
10411
|
+
|
|
10412
|
+
/* ===== Virtual List ===== */
|
|
10413
|
+
/* E.virtualList(container): the container scrolls; a spacer gives it its height and the
|
|
10414
|
+
rendered rows are placed by transform. The container needs a height from your CSS. */
|
|
10415
|
+
.dm-vlist {
|
|
10416
|
+
position: relative;
|
|
10417
|
+
overflow: auto;
|
|
10418
|
+
overflow-anchor: none;
|
|
10419
|
+
contain: content;
|
|
10420
|
+
background: var(--dm-surface);
|
|
10421
|
+
color: var(--dm-text);
|
|
10422
|
+
}
|
|
10423
|
+
|
|
10424
|
+
.dm-vlist-spacer {
|
|
10425
|
+
width: 1px;
|
|
10426
|
+
pointer-events: none;
|
|
10427
|
+
}
|
|
10428
|
+
|
|
10429
|
+
.dm-vlist-items {
|
|
10430
|
+
position: absolute;
|
|
10431
|
+
top: 0;
|
|
10432
|
+
left: 0;
|
|
10433
|
+
right: 0;
|
|
10434
|
+
height: 0;
|
|
10435
|
+
outline: none;
|
|
10436
|
+
}
|
|
10437
|
+
|
|
10438
|
+
.dm-vlist-row {
|
|
10439
|
+
position: absolute;
|
|
10440
|
+
top: 0;
|
|
10441
|
+
left: 0;
|
|
10442
|
+
right: 0;
|
|
10443
|
+
box-sizing: border-box;
|
|
10444
|
+
will-change: transform;
|
|
10445
|
+
}
|
|
10446
|
+
|
|
10447
|
+
.dm-vlist-fixed .dm-vlist-row {
|
|
10448
|
+
overflow: hidden;
|
|
10449
|
+
}
|
|
10450
|
+
|
|
10451
|
+
.dm-vlist-row:focus-visible {
|
|
10452
|
+
outline: 2px solid var(--dm-primary);
|
|
10453
|
+
outline-offset: -2px;
|
|
10454
|
+
}
|
|
10455
|
+
|
|
10456
|
+
.dm-vlist-status {
|
|
10457
|
+
position: absolute;
|
|
10458
|
+
top: 0;
|
|
10459
|
+
left: 0;
|
|
10460
|
+
right: 0;
|
|
10461
|
+
display: flex;
|
|
10462
|
+
align-items: center;
|
|
10463
|
+
justify-content: center;
|
|
10464
|
+
gap: var(--dm-space-2);
|
|
10465
|
+
padding: var(--dm-space-3);
|
|
10466
|
+
color: var(--dm-text-muted);
|
|
10467
|
+
box-sizing: border-box;
|
|
10468
|
+
}
|
|
10469
|
+
|
|
10470
|
+
.dm-vlist-status[hidden] {
|
|
10471
|
+
display: none;
|
|
10472
|
+
}
|
|
10473
|
+
|
|
10474
|
+
.dm-vlist-loading,
|
|
10475
|
+
.dm-vlist-error {
|
|
10476
|
+
display: inline-flex;
|
|
10477
|
+
align-items: center;
|
|
10478
|
+
gap: var(--dm-space-2);
|
|
10479
|
+
}
|
|
10480
|
+
|
|
10481
|
+
/* Plain text colour: --dm-danger is not readable on --dm-surface in every theme. */
|
|
10482
|
+
.dm-vlist-error {
|
|
10483
|
+
color: var(--dm-text);
|
|
10484
|
+
}
|
|
10485
|
+
|
|
10486
|
+
.dm-vlist-spinner {
|
|
10487
|
+
width: 1rem;
|
|
10488
|
+
height: 1rem;
|
|
10489
|
+
border: 2px solid var(--dm-border);
|
|
10490
|
+
border-top-color: var(--dm-primary);
|
|
10491
|
+
border-radius: var(--dm-radius-full);
|
|
10492
|
+
animation: dm-loader-spin 0.8s linear infinite;
|
|
10493
|
+
}
|
|
10494
|
+
|
|
10495
|
+
@media (prefers-reduced-motion: reduce) {
|
|
10496
|
+
.dm-vlist-spinner {
|
|
10497
|
+
animation-duration: 2.4s;
|
|
10498
|
+
}
|
|
10499
|
+
}
|
|
10500
|
+
|
|
10501
|
+
/* ===== Dropzone ===== */
|
|
10502
|
+
/*
|
|
10503
|
+
* E.dropzone(target, options) - src/components/dropzone.js
|
|
10504
|
+
*
|
|
10505
|
+
* The caller's element is the area (.dm-dropzone, role="button"); the file list
|
|
10506
|
+
* (.dm-dropzone-files) is drawn after it, because a button cannot hold buttons.
|
|
10507
|
+
* Theme tokens only, so every theme and its dark variant colour it.
|
|
10508
|
+
*/
|
|
10509
|
+
.dm-dropzone {
|
|
10510
|
+
display: flex;
|
|
10511
|
+
flex-direction: column;
|
|
10512
|
+
align-items: center;
|
|
10513
|
+
justify-content: center;
|
|
10514
|
+
gap: var(--dm-space-2);
|
|
10515
|
+
min-height: 8rem;
|
|
10516
|
+
padding: var(--dm-space-6) var(--dm-space-4);
|
|
10517
|
+
border: 2px dashed var(--dm-border);
|
|
10518
|
+
border-radius: var(--dm-radius-md);
|
|
10519
|
+
background: var(--dm-surface);
|
|
10520
|
+
color: var(--dm-text);
|
|
10521
|
+
text-align: center;
|
|
10522
|
+
cursor: pointer;
|
|
10523
|
+
transition: border-color var(--dm-transition-fast), background-color var(--dm-transition-fast);
|
|
10524
|
+
}
|
|
10525
|
+
|
|
10526
|
+
.dm-dropzone:hover {
|
|
10527
|
+
border-color: var(--dm-primary);
|
|
10528
|
+
}
|
|
10529
|
+
|
|
10530
|
+
.dm-dropzone:focus-visible {
|
|
10531
|
+
outline: 2px solid var(--dm-border-focus);
|
|
10532
|
+
outline-offset: 2px;
|
|
10533
|
+
border-color: var(--dm-primary);
|
|
10534
|
+
}
|
|
10535
|
+
|
|
10536
|
+
.dm-dropzone.is-dragover {
|
|
10537
|
+
border-color: var(--dm-primary);
|
|
10538
|
+
border-style: solid;
|
|
10539
|
+
background: color-mix(in srgb, var(--dm-primary) 10%, var(--dm-surface));
|
|
10540
|
+
}
|
|
10541
|
+
|
|
10542
|
+
.dm-dropzone.is-invalid {
|
|
10543
|
+
border-color: var(--dm-danger);
|
|
10544
|
+
}
|
|
10545
|
+
|
|
10546
|
+
.dm-dropzone.is-disabled {
|
|
10547
|
+
opacity: var(--dm-disabled-opacity, 0.6);
|
|
10548
|
+
cursor: not-allowed;
|
|
10549
|
+
}
|
|
10550
|
+
|
|
10551
|
+
.dm-dropzone.is-disabled:hover {
|
|
10552
|
+
border-color: var(--dm-border);
|
|
10553
|
+
}
|
|
10554
|
+
|
|
10555
|
+
.dm-dropzone-prompt {
|
|
10556
|
+
display: flex;
|
|
10557
|
+
flex-direction: column;
|
|
10558
|
+
align-items: center;
|
|
10559
|
+
gap: var(--dm-space-1);
|
|
10560
|
+
pointer-events: none;
|
|
10561
|
+
}
|
|
10562
|
+
|
|
10563
|
+
.dm-dropzone-icon {
|
|
10564
|
+
color: var(--dm-text-secondary);
|
|
10565
|
+
}
|
|
10566
|
+
|
|
10567
|
+
.dm-dropzone:hover .dm-dropzone-icon,
|
|
10568
|
+
.dm-dropzone.is-dragover .dm-dropzone-icon {
|
|
10569
|
+
color: var(--dm-text);
|
|
10570
|
+
}
|
|
10571
|
+
|
|
10572
|
+
.dm-dropzone-text {
|
|
10573
|
+
font-weight: 500;
|
|
10574
|
+
}
|
|
10575
|
+
|
|
10576
|
+
.dm-dropzone-hint {
|
|
10577
|
+
color: var(--dm-text-muted);
|
|
10578
|
+
font-size: var(--dm-font-size-sm);
|
|
10579
|
+
}
|
|
10580
|
+
|
|
10581
|
+
.dm-dropzone-files {
|
|
10582
|
+
display: flex;
|
|
10583
|
+
flex-direction: column;
|
|
10584
|
+
gap: var(--dm-space-2);
|
|
10585
|
+
margin: var(--dm-space-3) 0;
|
|
10586
|
+
padding: 0;
|
|
10587
|
+
list-style: none;
|
|
10588
|
+
}
|
|
10589
|
+
|
|
10590
|
+
.dm-dropzone-files[hidden] {
|
|
10591
|
+
display: none;
|
|
10592
|
+
}
|
|
10593
|
+
|
|
10594
|
+
.dm-dropzone-file {
|
|
10595
|
+
display: grid;
|
|
10596
|
+
grid-template-columns: 2.75rem minmax(0, 1fr) auto auto;
|
|
10597
|
+
grid-template-areas: "thumb meta retry remove" "thumb bar bar bar";
|
|
10598
|
+
align-items: center;
|
|
10599
|
+
column-gap: var(--dm-space-3);
|
|
10600
|
+
row-gap: var(--dm-space-1);
|
|
10601
|
+
padding: var(--dm-space-2) var(--dm-space-3);
|
|
10602
|
+
border: 1px solid var(--dm-border);
|
|
10603
|
+
border-radius: var(--dm-radius-md);
|
|
10604
|
+
background: var(--dm-surface);
|
|
10605
|
+
color: var(--dm-text);
|
|
10606
|
+
}
|
|
10607
|
+
|
|
10608
|
+
.dm-dropzone-file[data-status="error"] {
|
|
10609
|
+
border-color: var(--dm-danger);
|
|
10610
|
+
}
|
|
10611
|
+
|
|
10612
|
+
.dm-dropzone-thumb {
|
|
10613
|
+
grid-area: thumb;
|
|
10614
|
+
display: flex;
|
|
10615
|
+
align-items: center;
|
|
10616
|
+
justify-content: center;
|
|
10617
|
+
width: 2.75rem;
|
|
10618
|
+
height: 2.75rem;
|
|
10619
|
+
overflow: hidden;
|
|
10620
|
+
border-radius: var(--dm-radius-sm);
|
|
10621
|
+
background: color-mix(in srgb, var(--dm-text) 8%, var(--dm-surface));
|
|
10622
|
+
color: var(--dm-text-secondary);
|
|
10623
|
+
font-size: var(--dm-font-size-xs);
|
|
10624
|
+
font-weight: 600;
|
|
10625
|
+
}
|
|
10626
|
+
|
|
10627
|
+
.dm-dropzone-thumb img {
|
|
10628
|
+
display: block;
|
|
10629
|
+
width: 100%;
|
|
10630
|
+
height: 100%;
|
|
10631
|
+
object-fit: cover;
|
|
10632
|
+
}
|
|
10633
|
+
|
|
10634
|
+
.dm-dropzone-meta {
|
|
10635
|
+
grid-area: meta;
|
|
10636
|
+
display: flex;
|
|
10637
|
+
flex-wrap: wrap;
|
|
10638
|
+
align-items: baseline;
|
|
10639
|
+
column-gap: var(--dm-space-2);
|
|
10640
|
+
min-width: 0;
|
|
10641
|
+
}
|
|
10642
|
+
|
|
10643
|
+
.dm-dropzone-name {
|
|
10644
|
+
flex: 1 1 auto;
|
|
10645
|
+
min-width: 0;
|
|
10646
|
+
overflow: hidden;
|
|
10647
|
+
text-overflow: ellipsis;
|
|
10648
|
+
white-space: nowrap;
|
|
10649
|
+
}
|
|
10650
|
+
|
|
10651
|
+
.dm-dropzone-size,
|
|
10652
|
+
.dm-dropzone-status {
|
|
10653
|
+
color: var(--dm-text-muted);
|
|
10654
|
+
font-size: var(--dm-font-size-sm);
|
|
10655
|
+
}
|
|
10656
|
+
|
|
10657
|
+
/* State colours stay on borders and bars (--dm-danger / --dm-success as text on a
|
|
10658
|
+
surface fail AA in several themes); the words carry the state */
|
|
10659
|
+
.dm-dropzone-file[data-status="error"] .dm-dropzone-status {
|
|
10660
|
+
color: var(--dm-text);
|
|
10661
|
+
font-weight: 600;
|
|
10662
|
+
}
|
|
10663
|
+
|
|
10664
|
+
.dm-dropzone-progress {
|
|
10665
|
+
grid-area: bar;
|
|
10666
|
+
display: block;
|
|
10667
|
+
height: 0.375rem;
|
|
10668
|
+
overflow: hidden;
|
|
10669
|
+
border-radius: var(--dm-radius-full);
|
|
10670
|
+
background: color-mix(in srgb, var(--dm-text) 10%, var(--dm-surface));
|
|
10671
|
+
}
|
|
10672
|
+
|
|
10673
|
+
.dm-dropzone-progress[hidden] {
|
|
10674
|
+
display: none;
|
|
10675
|
+
}
|
|
10676
|
+
|
|
10677
|
+
.dm-dropzone-progress-bar {
|
|
10678
|
+
display: block;
|
|
10679
|
+
width: 0;
|
|
10680
|
+
height: 100%;
|
|
10681
|
+
border-radius: inherit;
|
|
10682
|
+
background: var(--dm-primary);
|
|
10683
|
+
}
|
|
10684
|
+
|
|
10685
|
+
.dm-dropzone-file[data-status="done"] .dm-dropzone-progress-bar {
|
|
10686
|
+
background: var(--dm-success);
|
|
10687
|
+
}
|
|
10688
|
+
|
|
10689
|
+
.dm-dropzone-retry {
|
|
10690
|
+
grid-area: retry;
|
|
10691
|
+
}
|
|
10692
|
+
|
|
10693
|
+
.dm-dropzone-retry[hidden] {
|
|
10694
|
+
display: none;
|
|
10695
|
+
}
|
|
10696
|
+
|
|
10697
|
+
.dm-dropzone-remove {
|
|
10698
|
+
grid-area: remove;
|
|
10699
|
+
display: inline-flex;
|
|
10700
|
+
align-items: center;
|
|
10701
|
+
justify-content: center;
|
|
10702
|
+
width: 2rem;
|
|
10703
|
+
height: 2rem;
|
|
10704
|
+
padding: 0;
|
|
10705
|
+
border: 0;
|
|
10706
|
+
border-radius: var(--dm-radius-full);
|
|
10707
|
+
background: transparent;
|
|
10708
|
+
color: var(--dm-text-muted);
|
|
10709
|
+
font-size: 1.25rem;
|
|
10710
|
+
line-height: 1;
|
|
10711
|
+
cursor: pointer;
|
|
10712
|
+
}
|
|
10713
|
+
|
|
10714
|
+
.dm-dropzone-remove:hover:not(:disabled) {
|
|
10715
|
+
background: var(--dm-hover-bg);
|
|
10716
|
+
color: var(--dm-text);
|
|
10717
|
+
}
|
|
10718
|
+
|
|
10719
|
+
.dm-dropzone-remove:focus-visible {
|
|
10720
|
+
outline: 2px solid var(--dm-border-focus);
|
|
10721
|
+
outline-offset: 1px;
|
|
10722
|
+
}
|
|
10723
|
+
|
|
10724
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
10725
|
+
.dm-dropzone-progress-bar {
|
|
10726
|
+
transition: width var(--dm-transition-fast);
|
|
10727
|
+
}
|
|
10728
|
+
}
|
|
10729
|
+
|
|
10730
|
+
@media (prefers-reduced-motion: reduce) {
|
|
10731
|
+
.dm-dropzone {
|
|
10732
|
+
transition: none;
|
|
10733
|
+
}
|
|
10734
|
+
}
|
|
10735
|
+
|
|
10736
|
+
/* ===== Range Slider ===== */
|
|
10737
|
+
/*
|
|
10738
|
+
* E.rangeSlider(target, options) / E.slider - src/components/range-slider.js
|
|
10739
|
+
*
|
|
10740
|
+
* The real <input type="range"> elements are hidden; this is the drawn slider in
|
|
10741
|
+
* front of them. The root is the hit area (2.75rem tall - a comfortable touch
|
|
10742
|
+
* target) with a thin track through its middle. Thumbs are positioned by JS
|
|
10743
|
+
* with left / right / bottom as a percentage and centred with a transform.
|
|
10744
|
+
*/
|
|
10745
|
+
.dm-range-slider {
|
|
10746
|
+
position: relative;
|
|
10747
|
+
display: block;
|
|
10748
|
+
height: 2.75rem;
|
|
10749
|
+
margin: 0 0.625rem;
|
|
10750
|
+
color: var(--dm-text);
|
|
10751
|
+
cursor: pointer;
|
|
10752
|
+
user-select: none;
|
|
10753
|
+
-webkit-user-select: none;
|
|
10754
|
+
/* A horizontal slider still lets the page scroll vertically on touch */
|
|
10755
|
+
touch-action: pan-y;
|
|
10756
|
+
-webkit-tap-highlight-color: transparent;
|
|
10757
|
+
}
|
|
10758
|
+
|
|
10759
|
+
.dm-range-slider.has-tick-labels,
|
|
10760
|
+
.dm-range-slider.has-marks {
|
|
10761
|
+
margin-bottom: 1.5rem;
|
|
10762
|
+
}
|
|
10763
|
+
|
|
10764
|
+
/* A tooltip that is always shown needs room above the track */
|
|
10765
|
+
.dm-range-slider[data-tooltip="always"]:not([data-orientation="vertical"]) {
|
|
10766
|
+
margin-top: 1.75rem;
|
|
10767
|
+
}
|
|
10768
|
+
|
|
10769
|
+
.dm-range-slider[data-orientation="vertical"] {
|
|
10770
|
+
display: inline-block;
|
|
10771
|
+
width: 2.75rem;
|
|
10772
|
+
height: 12rem;
|
|
10773
|
+
margin: 0.625rem 0;
|
|
10774
|
+
touch-action: pan-x;
|
|
10775
|
+
vertical-align: top;
|
|
10776
|
+
}
|
|
10777
|
+
|
|
10778
|
+
.dm-range-slider[data-orientation="vertical"].has-tick-labels,
|
|
10779
|
+
.dm-range-slider[data-orientation="vertical"].has-marks {
|
|
10780
|
+
margin-bottom: 0.625rem;
|
|
10781
|
+
margin-right: 3rem;
|
|
10782
|
+
}
|
|
10783
|
+
|
|
10784
|
+
.dm-range-track {
|
|
10785
|
+
position: absolute;
|
|
10786
|
+
left: 0;
|
|
10787
|
+
right: 0;
|
|
10788
|
+
top: 50%;
|
|
10789
|
+
height: 0.375rem;
|
|
10790
|
+
transform: translateY(-50%);
|
|
10791
|
+
border-radius: var(--dm-radius-full);
|
|
10792
|
+
background: color-mix(in srgb, var(--dm-text) 16%, var(--dm-surface));
|
|
10793
|
+
}
|
|
10794
|
+
|
|
10795
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-track {
|
|
10796
|
+
left: 50%;
|
|
10797
|
+
right: auto;
|
|
10798
|
+
top: 0;
|
|
10799
|
+
bottom: 0;
|
|
10800
|
+
width: 0.375rem;
|
|
10801
|
+
height: auto;
|
|
10802
|
+
transform: translateX(-50%);
|
|
10803
|
+
}
|
|
10804
|
+
|
|
10805
|
+
.dm-range-fill {
|
|
10806
|
+
position: absolute;
|
|
10807
|
+
top: 0;
|
|
10808
|
+
bottom: 0;
|
|
10809
|
+
border-radius: inherit;
|
|
10810
|
+
background: var(--dm-primary);
|
|
10811
|
+
}
|
|
10812
|
+
|
|
10813
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-fill {
|
|
10814
|
+
left: 0;
|
|
10815
|
+
right: 0;
|
|
10816
|
+
top: auto;
|
|
10817
|
+
}
|
|
10818
|
+
|
|
10819
|
+
.dm-range-thumb {
|
|
10820
|
+
position: absolute;
|
|
10821
|
+
top: 50%;
|
|
10822
|
+
z-index: 2;
|
|
10823
|
+
width: 1.25rem;
|
|
10824
|
+
height: 1.25rem;
|
|
10825
|
+
border: 2px solid var(--dm-primary);
|
|
10826
|
+
border-radius: var(--dm-radius-full);
|
|
10827
|
+
background: var(--dm-surface);
|
|
10828
|
+
box-shadow: var(--dm-shadow-md);
|
|
10829
|
+
transform: translate(-50%, -50%);
|
|
10830
|
+
cursor: grab;
|
|
10831
|
+
touch-action: none;
|
|
10832
|
+
}
|
|
10833
|
+
|
|
10834
|
+
.dm-range-slider[dir="rtl"] .dm-range-thumb {
|
|
10835
|
+
transform: translate(50%, -50%);
|
|
10836
|
+
}
|
|
10837
|
+
|
|
10838
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-thumb {
|
|
10839
|
+
top: auto;
|
|
10840
|
+
left: 50%;
|
|
10841
|
+
transform: translate(-50%, 50%);
|
|
10842
|
+
}
|
|
10843
|
+
|
|
10844
|
+
.dm-range-thumb:hover {
|
|
10845
|
+
box-shadow: 0 0 0 0.375rem var(--dm-focus-ring);
|
|
10846
|
+
}
|
|
10847
|
+
|
|
10848
|
+
.dm-range-thumb:focus-visible {
|
|
10849
|
+
outline: 2px solid var(--dm-border-focus);
|
|
10850
|
+
outline-offset: 2px;
|
|
10851
|
+
box-shadow: 0 0 0 0.375rem var(--dm-focus-ring);
|
|
10852
|
+
}
|
|
10853
|
+
|
|
10854
|
+
/* The thumb being moved sits above the other when they meet */
|
|
10855
|
+
.dm-range-thumb.is-active,
|
|
10856
|
+
.dm-range-thumb:focus-visible {
|
|
10857
|
+
z-index: 3;
|
|
10858
|
+
}
|
|
10859
|
+
|
|
10860
|
+
.dm-range-slider.is-dragging,
|
|
10861
|
+
.dm-range-slider.is-dragging .dm-range-thumb {
|
|
10862
|
+
cursor: grabbing;
|
|
10863
|
+
}
|
|
10864
|
+
|
|
10865
|
+
.dm-range-tooltip {
|
|
10866
|
+
position: absolute;
|
|
10867
|
+
bottom: calc(100% + 0.5rem);
|
|
10868
|
+
left: 50%;
|
|
10869
|
+
padding: 0.125rem 0.5rem;
|
|
10870
|
+
border-radius: var(--dm-radius-sm);
|
|
10871
|
+
background: var(--dm-text);
|
|
10872
|
+
color: var(--dm-surface);
|
|
10873
|
+
font-size: var(--dm-font-size-xs);
|
|
10874
|
+
line-height: 1.5;
|
|
10875
|
+
white-space: nowrap;
|
|
10876
|
+
pointer-events: none;
|
|
10877
|
+
transform: translateX(-50%);
|
|
10878
|
+
opacity: 0;
|
|
10879
|
+
visibility: hidden;
|
|
10880
|
+
}
|
|
10881
|
+
|
|
10882
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-tooltip {
|
|
10883
|
+
bottom: auto;
|
|
10884
|
+
left: calc(100% + 0.5rem);
|
|
10885
|
+
top: 50%;
|
|
10886
|
+
transform: translateY(-50%);
|
|
10887
|
+
}
|
|
10888
|
+
|
|
10889
|
+
.dm-range-slider[data-tooltip="always"] .dm-range-tooltip,
|
|
10890
|
+
.dm-range-slider[data-tooltip="hover"] .dm-range-thumb:hover .dm-range-tooltip,
|
|
10891
|
+
.dm-range-slider[data-tooltip="hover"] .dm-range-thumb:focus-visible .dm-range-tooltip,
|
|
10892
|
+
.dm-range-slider[data-tooltip="hover"] .dm-range-thumb.is-active .dm-range-tooltip {
|
|
10893
|
+
opacity: 1;
|
|
10894
|
+
visibility: visible;
|
|
10895
|
+
}
|
|
10896
|
+
|
|
10897
|
+
.dm-range-ticks,
|
|
10898
|
+
.dm-range-marks {
|
|
10899
|
+
position: absolute;
|
|
10900
|
+
inset: 0;
|
|
10901
|
+
pointer-events: none;
|
|
10902
|
+
}
|
|
10903
|
+
|
|
10904
|
+
.dm-range-tick,
|
|
10905
|
+
.dm-range-mark {
|
|
10906
|
+
position: absolute;
|
|
10907
|
+
top: calc(50% + 0.375rem);
|
|
10908
|
+
width: 1px;
|
|
10909
|
+
height: 0.375rem;
|
|
10910
|
+
background: var(--dm-border-dark);
|
|
10911
|
+
transform: translateX(-50%);
|
|
10912
|
+
}
|
|
10913
|
+
|
|
10914
|
+
.dm-range-slider[dir="rtl"] .dm-range-tick,
|
|
10915
|
+
.dm-range-slider[dir="rtl"] .dm-range-mark {
|
|
10916
|
+
transform: translateX(50%);
|
|
10917
|
+
}
|
|
10918
|
+
|
|
10919
|
+
.dm-range-tick.is-in-range {
|
|
10920
|
+
background: var(--dm-primary);
|
|
10921
|
+
}
|
|
10922
|
+
|
|
10923
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-tick,
|
|
10924
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-mark {
|
|
10925
|
+
top: auto;
|
|
10926
|
+
left: calc(50% + 0.375rem);
|
|
10927
|
+
width: 0.375rem;
|
|
10928
|
+
height: 1px;
|
|
10929
|
+
transform: translateY(50%);
|
|
10930
|
+
}
|
|
10931
|
+
|
|
10932
|
+
.dm-range-mark {
|
|
10933
|
+
width: 0.375rem;
|
|
10934
|
+
height: 0.375rem;
|
|
10935
|
+
top: 50%;
|
|
10936
|
+
border-radius: var(--dm-radius-full);
|
|
10937
|
+
background: var(--dm-surface);
|
|
10938
|
+
border: 1px solid var(--dm-border-dark);
|
|
10939
|
+
transform: translate(-50%, -50%);
|
|
10940
|
+
pointer-events: auto;
|
|
10941
|
+
z-index: 1;
|
|
10942
|
+
}
|
|
10943
|
+
|
|
10944
|
+
.dm-range-slider[dir="rtl"] .dm-range-mark {
|
|
10945
|
+
transform: translate(50%, -50%);
|
|
10946
|
+
}
|
|
10947
|
+
|
|
10948
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-mark {
|
|
10949
|
+
left: 50%;
|
|
10950
|
+
width: 0.375rem;
|
|
10951
|
+
height: 0.375rem;
|
|
10952
|
+
transform: translate(-50%, 50%);
|
|
10953
|
+
}
|
|
10954
|
+
|
|
10955
|
+
.dm-range-tick-label,
|
|
10956
|
+
.dm-range-mark-label {
|
|
10957
|
+
position: absolute;
|
|
10958
|
+
top: calc(100% + 0.25rem);
|
|
10959
|
+
left: 50%;
|
|
10960
|
+
color: var(--dm-text-muted);
|
|
10961
|
+
font-size: var(--dm-font-size-xs);
|
|
10962
|
+
line-height: 1.2;
|
|
10963
|
+
white-space: nowrap;
|
|
10964
|
+
transform: translateX(-50%);
|
|
10965
|
+
}
|
|
10966
|
+
|
|
10967
|
+
.dm-range-mark-label {
|
|
10968
|
+
top: calc(100% + 0.625rem);
|
|
10969
|
+
color: var(--dm-text-secondary);
|
|
10970
|
+
cursor: pointer;
|
|
10971
|
+
}
|
|
10972
|
+
|
|
10973
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-tick-label,
|
|
10974
|
+
.dm-range-slider[data-orientation="vertical"] .dm-range-mark-label {
|
|
10975
|
+
top: 50%;
|
|
10976
|
+
left: calc(100% + 0.5rem);
|
|
10977
|
+
transform: translateY(-50%);
|
|
10978
|
+
}
|
|
10979
|
+
|
|
10980
|
+
.dm-range-slider.is-disabled {
|
|
10981
|
+
opacity: var(--dm-disabled-opacity, 0.6);
|
|
10982
|
+
cursor: not-allowed;
|
|
10983
|
+
}
|
|
10984
|
+
|
|
10985
|
+
.dm-range-slider.is-disabled .dm-range-thumb {
|
|
10986
|
+
cursor: not-allowed;
|
|
10987
|
+
box-shadow: none;
|
|
10988
|
+
}
|
|
10989
|
+
|
|
10990
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
10991
|
+
.dm-range-thumb {
|
|
10992
|
+
transition: box-shadow var(--dm-transition-fast);
|
|
10993
|
+
}
|
|
10994
|
+
|
|
10995
|
+
.dm-range-tooltip {
|
|
10996
|
+
transition: opacity var(--dm-transition-fast), visibility var(--dm-transition-fast);
|
|
10997
|
+
}
|
|
10998
|
+
}
|
|
10999
|
+
|
|
11000
|
+
@media (forced-colors: active) {
|
|
11001
|
+
.dm-range-fill,
|
|
11002
|
+
.dm-dropzone-progress-bar {
|
|
11003
|
+
background: Highlight;
|
|
11004
|
+
}
|
|
11005
|
+
|
|
11006
|
+
.dm-range-thumb {
|
|
11007
|
+
background: ButtonFace;
|
|
11008
|
+
border-color: ButtonText;
|
|
11009
|
+
}
|
|
11010
|
+
}
|