domma-js 0.48.0 → 0.50.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/package.json +1 -1
- package/public/dist/bundles/domma-complete.css +603 -16
- package/public/dist/bundles/domma-data-focused.css +603 -16
- package/public/dist/bundles/domma-essentials.css +603 -16
- package/public/dist/bundles/domma-full.css +603 -16
- package/public/dist/bundles/domma-minimal.css +148 -10
- 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 +143 -5
- package/public/dist/domma.esm.js +5 -5
- package/public/dist/domma.min.js +5 -5
- package/public/dist/elements.css +452 -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/public/dist/elements.css
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Domma Elements CSS v0.
|
|
2
|
+
* Domma Elements CSS v0.50.0
|
|
3
3
|
* Dynamic Object Manipulation & Modeling API
|
|
4
4
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
5
|
-
* Built: 2026-09-
|
|
6
|
-
* Commit:
|
|
5
|
+
* Built: 2026-09-28T07:48:39.958Z
|
|
6
|
+
* Commit: d400172
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -9056,3 +9056,452 @@ td > .skeleton-text {
|
|
|
9056
9056
|
animation: none;
|
|
9057
9057
|
}
|
|
9058
9058
|
}
|
|
9059
|
+
|
|
9060
|
+
/* ============================================
|
|
9061
|
+
POPOVER
|
|
9062
|
+
E.popover(trigger, options) - src/popover.js
|
|
9063
|
+
============================================ */
|
|
9064
|
+
|
|
9065
|
+
/*
|
|
9066
|
+
* Portalled to <body> and positioned with `fixed`, so no ancestor's overflow
|
|
9067
|
+
* or stacking context can clip it. Above modals and slideovers (a popover is
|
|
9068
|
+
* usually opened from inside one), below the context menu (10050), which can
|
|
9069
|
+
* be opened from inside a popover.
|
|
9070
|
+
*
|
|
9071
|
+
* Width options arrive as custom properties, so a theme or page stylesheet
|
|
9072
|
+
* can still set them without fighting inline styles.
|
|
9073
|
+
*/
|
|
9074
|
+
.dm-popover {
|
|
9075
|
+
position: fixed;
|
|
9076
|
+
top: 0;
|
|
9077
|
+
left: 0;
|
|
9078
|
+
z-index: 10045;
|
|
9079
|
+
box-sizing: border-box;
|
|
9080
|
+
display: flex;
|
|
9081
|
+
flex-direction: column;
|
|
9082
|
+
width: var(--dm-popover-width, auto);
|
|
9083
|
+
max-width: min(var(--dm-popover-max-width, 20rem), calc(100vw - 16px));
|
|
9084
|
+
max-height: calc(100vh - 16px);
|
|
9085
|
+
background: var(--dm-surface);
|
|
9086
|
+
color: var(--dm-text);
|
|
9087
|
+
border: 1px solid var(--dm-border);
|
|
9088
|
+
border-radius: var(--dm-radius-md);
|
|
9089
|
+
box-shadow: var(--dm-shadow-lg);
|
|
9090
|
+
font-size: 0.875rem;
|
|
9091
|
+
line-height: 1.5;
|
|
9092
|
+
text-align: left;
|
|
9093
|
+
white-space: normal;
|
|
9094
|
+
overflow-wrap: break-word;
|
|
9095
|
+
opacity: 0;
|
|
9096
|
+
transform: scale(0.96);
|
|
9097
|
+
transform-origin: top center;
|
|
9098
|
+
transition:
|
|
9099
|
+
opacity var(--dm-popover-duration, 150ms) ease,
|
|
9100
|
+
transform var(--dm-popover-duration, 150ms) cubic-bezier(0.16, 1, 0.3, 1);
|
|
9101
|
+
outline: none;
|
|
9102
|
+
}
|
|
9103
|
+
|
|
9104
|
+
.dm-popover[data-side="top"] { transform-origin: bottom center; }
|
|
9105
|
+
.dm-popover[data-side="bottom"] { transform-origin: top center; }
|
|
9106
|
+
.dm-popover[data-side="left"] { transform-origin: center right; }
|
|
9107
|
+
.dm-popover[data-side="right"] { transform-origin: center left; }
|
|
9108
|
+
|
|
9109
|
+
.dm-popover.is-open {
|
|
9110
|
+
opacity: 1;
|
|
9111
|
+
transform: none;
|
|
9112
|
+
}
|
|
9113
|
+
|
|
9114
|
+
.dm-popover[data-animation="off"] {
|
|
9115
|
+
transition: none;
|
|
9116
|
+
}
|
|
9117
|
+
|
|
9118
|
+
/* The trigger has scrolled out of view; the panel waits for it. */
|
|
9119
|
+
.dm-popover.is-detached {
|
|
9120
|
+
visibility: hidden;
|
|
9121
|
+
pointer-events: none;
|
|
9122
|
+
}
|
|
9123
|
+
|
|
9124
|
+
.dm-popover [hidden] {
|
|
9125
|
+
display: none;
|
|
9126
|
+
}
|
|
9127
|
+
|
|
9128
|
+
.dm-popover-header {
|
|
9129
|
+
padding: 0.625rem 0.875rem 0;
|
|
9130
|
+
}
|
|
9131
|
+
|
|
9132
|
+
.dm-popover-title {
|
|
9133
|
+
margin: 0;
|
|
9134
|
+
font-size: 0.9375rem;
|
|
9135
|
+
font-weight: 600;
|
|
9136
|
+
line-height: 1.35;
|
|
9137
|
+
color: var(--dm-text);
|
|
9138
|
+
}
|
|
9139
|
+
|
|
9140
|
+
/* The body scrolls when the content is taller than the viewport, so the
|
|
9141
|
+
panel itself keeps overflow visible and the arrow is not clipped. */
|
|
9142
|
+
.dm-popover-body {
|
|
9143
|
+
min-height: 0;
|
|
9144
|
+
padding: 0.625rem 0.875rem;
|
|
9145
|
+
overflow: auto;
|
|
9146
|
+
}
|
|
9147
|
+
|
|
9148
|
+
.dm-popover-body > :first-child { margin-top: 0; }
|
|
9149
|
+
.dm-popover-body > :last-child { margin-bottom: 0; }
|
|
9150
|
+
|
|
9151
|
+
.dm-popover.is-dismissible .dm-popover-header,
|
|
9152
|
+
.dm-popover.is-dismissible:not(.has-title) .dm-popover-body {
|
|
9153
|
+
padding-right: 2.25rem;
|
|
9154
|
+
}
|
|
9155
|
+
|
|
9156
|
+
.dm-popover-close {
|
|
9157
|
+
position: absolute;
|
|
9158
|
+
top: 0.375rem;
|
|
9159
|
+
right: 0.375rem;
|
|
9160
|
+
display: inline-flex;
|
|
9161
|
+
align-items: center;
|
|
9162
|
+
justify-content: center;
|
|
9163
|
+
width: 1.5rem;
|
|
9164
|
+
height: 1.5rem;
|
|
9165
|
+
padding: 0;
|
|
9166
|
+
border: 0;
|
|
9167
|
+
border-radius: var(--dm-radius-sm);
|
|
9168
|
+
background: transparent;
|
|
9169
|
+
color: var(--dm-text);
|
|
9170
|
+
cursor: pointer;
|
|
9171
|
+
}
|
|
9172
|
+
|
|
9173
|
+
.dm-popover-close:hover {
|
|
9174
|
+
background: var(--dm-hover-bg);
|
|
9175
|
+
color: var(--dm-text);
|
|
9176
|
+
}
|
|
9177
|
+
|
|
9178
|
+
.dm-popover-close:focus-visible {
|
|
9179
|
+
outline: 2px solid var(--dm-primary);
|
|
9180
|
+
outline-offset: 1px;
|
|
9181
|
+
}
|
|
9182
|
+
|
|
9183
|
+
/*
|
|
9184
|
+
* A square turned 45 degrees, bordered on the two edges that face out, so it
|
|
9185
|
+
* reads as a continuation of the panel's own border. JS sets its position
|
|
9186
|
+
* along the edge (left for top/bottom, top for left/right).
|
|
9187
|
+
*/
|
|
9188
|
+
.dm-popover-arrow {
|
|
9189
|
+
position: absolute;
|
|
9190
|
+
width: 10px;
|
|
9191
|
+
height: 10px;
|
|
9192
|
+
margin: -5px 0 0 -5px;
|
|
9193
|
+
background: var(--dm-surface);
|
|
9194
|
+
border: 1px solid var(--dm-border);
|
|
9195
|
+
transform: rotate(45deg);
|
|
9196
|
+
pointer-events: none;
|
|
9197
|
+
}
|
|
9198
|
+
|
|
9199
|
+
.dm-popover[data-side="bottom"] .dm-popover-arrow {
|
|
9200
|
+
top: -1px;
|
|
9201
|
+
border-right: 0;
|
|
9202
|
+
border-bottom: 0;
|
|
9203
|
+
}
|
|
9204
|
+
|
|
9205
|
+
.dm-popover[data-side="top"] .dm-popover-arrow {
|
|
9206
|
+
top: calc(100% + 1px);
|
|
9207
|
+
border-left: 0;
|
|
9208
|
+
border-top: 0;
|
|
9209
|
+
}
|
|
9210
|
+
|
|
9211
|
+
.dm-popover[data-side="right"] .dm-popover-arrow {
|
|
9212
|
+
left: -1px;
|
|
9213
|
+
margin: -5px 0 0 -5px;
|
|
9214
|
+
border-top: 0;
|
|
9215
|
+
border-right: 0;
|
|
9216
|
+
}
|
|
9217
|
+
|
|
9218
|
+
.dm-popover[data-side="left"] .dm-popover-arrow {
|
|
9219
|
+
left: calc(100% + 1px);
|
|
9220
|
+
border-bottom: 0;
|
|
9221
|
+
border-left: 0;
|
|
9222
|
+
}
|
|
9223
|
+
|
|
9224
|
+
.dm-popover-trigger[role="button"] {
|
|
9225
|
+
cursor: pointer;
|
|
9226
|
+
}
|
|
9227
|
+
|
|
9228
|
+
@media (prefers-reduced-motion: reduce) {
|
|
9229
|
+
.dm-popover {
|
|
9230
|
+
transition: none;
|
|
9231
|
+
transform: none;
|
|
9232
|
+
}
|
|
9233
|
+
}
|
|
9234
|
+
|
|
9235
|
+
/* ============================================
|
|
9236
|
+
AVATAR
|
|
9237
|
+
============================================
|
|
9238
|
+
* A person's picture, initials or an icon. Sizes set --dm-avatar-size, which
|
|
9239
|
+
* everything else (font, dot, overlap) scales from; shapes set
|
|
9240
|
+
* --dm-avatar-radius. On a group the size sits on the list and the avatars
|
|
9241
|
+
* inherit it.
|
|
9242
|
+
*
|
|
9243
|
+
* Tones: eight hues mixed 24% into the theme surface, the initials the same hue
|
|
9244
|
+
* mixed 30% into the theme text. Following the theme on both sides is what keeps
|
|
9245
|
+
* them AA everywhere - the lowest measured pair across all 39 themes is 5.2:1.
|
|
9246
|
+
*
|
|
9247
|
+
* --dm-avatar-gap-color is the ring that separates stacked avatars and circles
|
|
9248
|
+
* the status dot: the page background by default, the card inside a card.
|
|
9249
|
+
*/
|
|
9250
|
+
.avatar {
|
|
9251
|
+
position: relative;
|
|
9252
|
+
box-sizing: border-box;
|
|
9253
|
+
display: inline-flex;
|
|
9254
|
+
flex-shrink: 0;
|
|
9255
|
+
align-items: center;
|
|
9256
|
+
justify-content: center;
|
|
9257
|
+
width: var(--dm-avatar-size, 2.5rem);
|
|
9258
|
+
height: var(--dm-avatar-size, 2.5rem);
|
|
9259
|
+
padding: 0;
|
|
9260
|
+
border: 0;
|
|
9261
|
+
border-radius: var(--dm-avatar-radius, var(--dm-radius-full));
|
|
9262
|
+
background-color: color-mix(in srgb, var(--dm-text) 12%, var(--dm-surface));
|
|
9263
|
+
color: var(--dm-text);
|
|
9264
|
+
font-family: inherit;
|
|
9265
|
+
font-size: calc(var(--dm-avatar-size, 2.5rem) * 0.4);
|
|
9266
|
+
font-weight: 600;
|
|
9267
|
+
line-height: 1;
|
|
9268
|
+
text-decoration: none;
|
|
9269
|
+
vertical-align: middle;
|
|
9270
|
+
user-select: none;
|
|
9271
|
+
}
|
|
9272
|
+
|
|
9273
|
+
a.avatar,
|
|
9274
|
+
button.avatar {
|
|
9275
|
+
cursor: pointer;
|
|
9276
|
+
}
|
|
9277
|
+
|
|
9278
|
+
/* The global a:hover colour would otherwise repaint a linked avatar's initials */
|
|
9279
|
+
a.avatar:hover {
|
|
9280
|
+
background-color: color-mix(in srgb, var(--dm-text) 12%, var(--dm-surface));
|
|
9281
|
+
color: var(--dm-text);
|
|
9282
|
+
}
|
|
9283
|
+
|
|
9284
|
+
a.avatar:focus-visible,
|
|
9285
|
+
button.avatar:focus-visible {
|
|
9286
|
+
outline: 2px solid var(--dm-border-focus);
|
|
9287
|
+
outline-offset: 2px;
|
|
9288
|
+
}
|
|
9289
|
+
|
|
9290
|
+
.avatar-img {
|
|
9291
|
+
display: block;
|
|
9292
|
+
width: 100%;
|
|
9293
|
+
height: 100%;
|
|
9294
|
+
object-fit: cover;
|
|
9295
|
+
border-radius: inherit;
|
|
9296
|
+
}
|
|
9297
|
+
|
|
9298
|
+
.avatar-initials {
|
|
9299
|
+
letter-spacing: 0.02em;
|
|
9300
|
+
white-space: nowrap;
|
|
9301
|
+
}
|
|
9302
|
+
|
|
9303
|
+
.avatar-icon {
|
|
9304
|
+
display: inline-flex;
|
|
9305
|
+
}
|
|
9306
|
+
|
|
9307
|
+
/* Domma.icons.scan() swaps the span for the svg and keeps its classes */
|
|
9308
|
+
svg.avatar-icon,
|
|
9309
|
+
.avatar-icon svg {
|
|
9310
|
+
width: calc(var(--dm-avatar-size, 2.5rem) * 0.55);
|
|
9311
|
+
height: calc(var(--dm-avatar-size, 2.5rem) * 0.55);
|
|
9312
|
+
}
|
|
9313
|
+
|
|
9314
|
+
/* Sizes */
|
|
9315
|
+
.avatar-xs, .avatar-group-xs { --dm-avatar-size: 1.5rem; }
|
|
9316
|
+
.avatar-sm, .avatar-group-sm { --dm-avatar-size: 2rem; }
|
|
9317
|
+
.avatar-md, .avatar-group-md { --dm-avatar-size: 2.5rem; }
|
|
9318
|
+
.avatar-lg, .avatar-group-lg { --dm-avatar-size: 3.5rem; }
|
|
9319
|
+
.avatar-xl, .avatar-group-xl { --dm-avatar-size: 5rem; }
|
|
9320
|
+
|
|
9321
|
+
/* Shapes - circle is the default */
|
|
9322
|
+
.avatar-rounded { --dm-avatar-radius: calc(var(--dm-avatar-size, 2.5rem) * 0.22); }
|
|
9323
|
+
.avatar-square { --dm-avatar-radius: 0; }
|
|
9324
|
+
|
|
9325
|
+
/* Tones, picked from the name by E.avatar(). The a:hover form keeps a linked
|
|
9326
|
+
avatar's initials their own colour under the global link hover. */
|
|
9327
|
+
.avatar-tone-0,
|
|
9328
|
+
a.avatar-tone-0:hover {
|
|
9329
|
+
background-color: color-mix(in srgb, var(--dm-red-500) 24%, var(--dm-surface));
|
|
9330
|
+
color: color-mix(in srgb, var(--dm-red-500) 30%, var(--dm-text));
|
|
9331
|
+
}
|
|
9332
|
+
|
|
9333
|
+
.avatar-tone-1,
|
|
9334
|
+
a.avatar-tone-1:hover {
|
|
9335
|
+
background-color: color-mix(in srgb, color-mix(in srgb, var(--dm-red-500) 50%, var(--dm-amber-500)) 24%, var(--dm-surface));
|
|
9336
|
+
color: color-mix(in srgb, color-mix(in srgb, var(--dm-red-500) 50%, var(--dm-amber-500)) 30%, var(--dm-text));
|
|
9337
|
+
}
|
|
9338
|
+
|
|
9339
|
+
.avatar-tone-2,
|
|
9340
|
+
a.avatar-tone-2:hover {
|
|
9341
|
+
background-color: color-mix(in srgb, var(--dm-amber-500) 24%, var(--dm-surface));
|
|
9342
|
+
color: color-mix(in srgb, var(--dm-amber-500) 30%, var(--dm-text));
|
|
9343
|
+
}
|
|
9344
|
+
|
|
9345
|
+
.avatar-tone-3,
|
|
9346
|
+
a.avatar-tone-3:hover {
|
|
9347
|
+
background-color: color-mix(in srgb, var(--dm-green-500) 24%, var(--dm-surface));
|
|
9348
|
+
color: color-mix(in srgb, var(--dm-green-500) 30%, var(--dm-text));
|
|
9349
|
+
}
|
|
9350
|
+
|
|
9351
|
+
.avatar-tone-4,
|
|
9352
|
+
a.avatar-tone-4:hover {
|
|
9353
|
+
background-color: color-mix(in srgb, color-mix(in srgb, var(--dm-green-500) 50%, var(--dm-sky-500)) 24%, var(--dm-surface));
|
|
9354
|
+
color: color-mix(in srgb, color-mix(in srgb, var(--dm-green-500) 50%, var(--dm-sky-500)) 30%, var(--dm-text));
|
|
9355
|
+
}
|
|
9356
|
+
|
|
9357
|
+
.avatar-tone-5,
|
|
9358
|
+
a.avatar-tone-5:hover {
|
|
9359
|
+
background-color: color-mix(in srgb, var(--dm-sky-500) 24%, var(--dm-surface));
|
|
9360
|
+
color: color-mix(in srgb, var(--dm-sky-500) 30%, var(--dm-text));
|
|
9361
|
+
}
|
|
9362
|
+
|
|
9363
|
+
.avatar-tone-6,
|
|
9364
|
+
a.avatar-tone-6:hover {
|
|
9365
|
+
background-color: color-mix(in srgb, var(--dm-blue-500) 24%, var(--dm-surface));
|
|
9366
|
+
color: color-mix(in srgb, var(--dm-blue-500) 30%, var(--dm-text));
|
|
9367
|
+
}
|
|
9368
|
+
|
|
9369
|
+
.avatar-tone-7,
|
|
9370
|
+
a.avatar-tone-7:hover {
|
|
9371
|
+
background-color: color-mix(in srgb, color-mix(in srgb, var(--dm-blue-500) 55%, var(--dm-red-500)) 24%, var(--dm-surface));
|
|
9372
|
+
color: color-mix(in srgb, color-mix(in srgb, var(--dm-blue-500) 55%, var(--dm-red-500)) 30%, var(--dm-text));
|
|
9373
|
+
}
|
|
9374
|
+
|
|
9375
|
+
/* Where the ring colour comes from */
|
|
9376
|
+
.card {
|
|
9377
|
+
--dm-avatar-gap-color: var(--dm-card-bg, var(--dm-surface));
|
|
9378
|
+
}
|
|
9379
|
+
|
|
9380
|
+
.dm-popover {
|
|
9381
|
+
--dm-avatar-gap-color: var(--dm-surface);
|
|
9382
|
+
}
|
|
9383
|
+
|
|
9384
|
+
/* Ring */
|
|
9385
|
+
.avatar-ring {
|
|
9386
|
+
box-shadow: 0 0 0 2px var(--dm-avatar-gap-color, var(--dm-background)), 0 0 0 4px var(--dm-primary);
|
|
9387
|
+
}
|
|
9388
|
+
|
|
9389
|
+
/* Status dot. Offline is hollow and busy carries a bar, so colour is not the
|
|
9390
|
+
only difference; the word itself is in the avatar's accessible name. */
|
|
9391
|
+
.avatar-status {
|
|
9392
|
+
position: absolute;
|
|
9393
|
+
right: 0;
|
|
9394
|
+
bottom: 0;
|
|
9395
|
+
box-sizing: border-box;
|
|
9396
|
+
width: max(0.5rem, calc(var(--dm-avatar-size, 2.5rem) * 0.28));
|
|
9397
|
+
height: max(0.5rem, calc(var(--dm-avatar-size, 2.5rem) * 0.28));
|
|
9398
|
+
border-radius: var(--dm-radius-full);
|
|
9399
|
+
background-color: var(--dm-text-muted);
|
|
9400
|
+
box-shadow: 0 0 0 2px var(--dm-avatar-gap-color, var(--dm-background));
|
|
9401
|
+
}
|
|
9402
|
+
|
|
9403
|
+
.avatar-status-online { background-color: var(--dm-success); }
|
|
9404
|
+
.avatar-status-away { background-color: var(--dm-warning); }
|
|
9405
|
+
.avatar-status-busy { background-color: var(--dm-danger); }
|
|
9406
|
+
|
|
9407
|
+
.avatar-status-busy::after {
|
|
9408
|
+
content: "";
|
|
9409
|
+
position: absolute;
|
|
9410
|
+
top: 50%;
|
|
9411
|
+
left: 22%;
|
|
9412
|
+
right: 22%;
|
|
9413
|
+
height: 2px;
|
|
9414
|
+
margin-top: -1px;
|
|
9415
|
+
border-radius: 1px;
|
|
9416
|
+
background-color: var(--dm-avatar-gap-color, var(--dm-background));
|
|
9417
|
+
}
|
|
9418
|
+
|
|
9419
|
+
.avatar-status-offline {
|
|
9420
|
+
background-color: var(--dm-avatar-gap-color, var(--dm-background));
|
|
9421
|
+
border: 2px solid var(--dm-text-muted);
|
|
9422
|
+
}
|
|
9423
|
+
|
|
9424
|
+
.avatar-square .avatar-status,
|
|
9425
|
+
.avatar-rounded .avatar-status {
|
|
9426
|
+
right: -0.125rem;
|
|
9427
|
+
bottom: -0.125rem;
|
|
9428
|
+
}
|
|
9429
|
+
|
|
9430
|
+
/* Group: a list of overlapping avatars */
|
|
9431
|
+
.avatar-group {
|
|
9432
|
+
isolation: isolate; /* the items' z-index stays inside the group, under navbars and menus */
|
|
9433
|
+
display: inline-flex;
|
|
9434
|
+
flex-direction: row;
|
|
9435
|
+
align-items: center;
|
|
9436
|
+
margin: 0;
|
|
9437
|
+
padding: 0;
|
|
9438
|
+
list-style: none;
|
|
9439
|
+
}
|
|
9440
|
+
|
|
9441
|
+
/* E.avatarGroup() sets --dm-avatar-z on each item, highest first, so each
|
|
9442
|
+
avatar sits over the next and its status dot stays in view. Hand-written
|
|
9443
|
+
groups stack the other way (later on top) unless they set it too. */
|
|
9444
|
+
.avatar-group > * {
|
|
9445
|
+
position: relative;
|
|
9446
|
+
z-index: var(--dm-avatar-z, auto);
|
|
9447
|
+
display: inline-flex;
|
|
9448
|
+
margin: 0;
|
|
9449
|
+
padding: 0;
|
|
9450
|
+
}
|
|
9451
|
+
|
|
9452
|
+
.avatar-group > * + * {
|
|
9453
|
+
margin-inline-start: calc(-1 * var(--dm-avatar-overlap, calc(var(--dm-avatar-size, 2.5rem) * 0.25)));
|
|
9454
|
+
}
|
|
9455
|
+
|
|
9456
|
+
.avatar-group .avatar {
|
|
9457
|
+
box-shadow: 0 0 0 2px var(--dm-avatar-gap-color, var(--dm-background));
|
|
9458
|
+
}
|
|
9459
|
+
|
|
9460
|
+
.avatar-group .avatar-ring {
|
|
9461
|
+
box-shadow: 0 0 0 2px var(--dm-avatar-gap-color, var(--dm-background)), 0 0 0 4px var(--dm-primary);
|
|
9462
|
+
}
|
|
9463
|
+
|
|
9464
|
+
.avatar-group > *:hover,
|
|
9465
|
+
.avatar-group > *:focus-within {
|
|
9466
|
+
z-index: 1000;
|
|
9467
|
+
}
|
|
9468
|
+
|
|
9469
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
9470
|
+
.avatar-group .avatar {
|
|
9471
|
+
transition: transform var(--dm-transition-fast);
|
|
9472
|
+
}
|
|
9473
|
+
|
|
9474
|
+
.avatar-group .avatar:hover,
|
|
9475
|
+
.avatar-group .avatar:focus-visible {
|
|
9476
|
+
transform: translateY(-3px);
|
|
9477
|
+
}
|
|
9478
|
+
}
|
|
9479
|
+
|
|
9480
|
+
/* The "+N" bubble */
|
|
9481
|
+
.avatar-more {
|
|
9482
|
+
background-color: color-mix(in srgb, var(--dm-text) 16%, var(--dm-surface));
|
|
9483
|
+
color: var(--dm-text);
|
|
9484
|
+
font-size: calc(var(--dm-avatar-size, 2.5rem) * 0.34);
|
|
9485
|
+
font-weight: 600;
|
|
9486
|
+
}
|
|
9487
|
+
|
|
9488
|
+
.avatar-more-list {
|
|
9489
|
+
display: flex;
|
|
9490
|
+
flex-direction: column;
|
|
9491
|
+
gap: var(--dm-space-1);
|
|
9492
|
+
margin: 0;
|
|
9493
|
+
padding: 0;
|
|
9494
|
+
list-style: none;
|
|
9495
|
+
}
|
|
9496
|
+
|
|
9497
|
+
.avatar-more-person {
|
|
9498
|
+
display: flex;
|
|
9499
|
+
align-items: center;
|
|
9500
|
+
gap: var(--dm-space-2);
|
|
9501
|
+
color: inherit;
|
|
9502
|
+
text-decoration: none;
|
|
9503
|
+
}
|
|
9504
|
+
|
|
9505
|
+
a.avatar-more-person:hover .avatar-more-name {
|
|
9506
|
+
text-decoration: underline;
|
|
9507
|
+
}
|
package/public/dist/grid.css
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Domma Grid CSS v0.
|
|
2
|
+
* Domma Grid CSS v0.50.0
|
|
3
3
|
* Dynamic Object Manipulation & Modeling API
|
|
4
4
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
5
|
-
* Built: 2026-09-
|
|
6
|
-
* Commit:
|
|
5
|
+
* Built: 2026-09-28T07:48:39.953Z
|
|
6
|
+
* Commit: d400172
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
/**
|
package/public/dist/syntax.css
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Domma Syntax Highlighting CSS v0.
|
|
2
|
+
* Domma Syntax Highlighting CSS v0.50.0
|
|
3
3
|
* Dynamic Object Manipulation & Modeling API
|
|
4
4
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
5
|
-
* Built: 2026-09-
|
|
6
|
-
* Commit:
|
|
5
|
+
* Built: 2026-09-28T07:48:39.962Z
|
|
6
|
+
* Commit: d400172
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Domma Themes v0.
|
|
2
|
+
* Domma Themes v0.50.0
|
|
3
3
|
* Dynamic Object Manipulation & Modeling API
|
|
4
4
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
5
|
-
* Built: 2026-09-
|
|
6
|
-
* Commit:
|
|
5
|
+
* Built: 2026-09-28T07:48:39.933Z
|
|
6
|
+
* Commit: d400172
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
/**
|