domma-js 0.46.1 → 0.48.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 +2 -1
- package/public/dist/bundles/domma-complete.css +574 -88
- package/public/dist/bundles/domma-data-focused.css +574 -88
- package/public/dist/bundles/domma-essentials.css +574 -88
- package/public/dist/bundles/domma-full.css +574 -88
- 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.min.js +5 -5
- package/public/dist/elements.css +392 -18
- package/public/dist/grid.css +3 -3
- package/public/dist/syntax.css +3 -3
- package/public/dist/themes/core.css +5 -0
- package/public/dist/themes/domma-themes.css +174 -62
package/public/dist/elements.css
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Domma Elements CSS v0.
|
|
2
|
+
* Domma Elements CSS v0.48.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-27T22:11:07.101Z
|
|
6
|
+
* Commit: cf6d8de
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -49,9 +49,12 @@
|
|
|
49
49
|
box-shadow: 0 0 0 3px var(--dm-focus-ring);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
.btn:disabled
|
|
52
|
+
.btn:disabled,
|
|
53
|
+
.btn[aria-disabled="true"],
|
|
54
|
+
.btn.disabled {
|
|
53
55
|
opacity: 0.65;
|
|
54
56
|
cursor: not-allowed;
|
|
57
|
+
pointer-events: none;
|
|
55
58
|
}
|
|
56
59
|
|
|
57
60
|
.btn-primary {
|
|
@@ -501,7 +504,8 @@
|
|
|
501
504
|
border-bottom-color: var(--dm-border);
|
|
502
505
|
}
|
|
503
506
|
|
|
504
|
-
.tab-item.active
|
|
507
|
+
.tab-item.active,
|
|
508
|
+
.tab-item[aria-selected="true"] {
|
|
505
509
|
color: var(--dm-link, color-mix(in oklab, var(--dm-primary, #0070d6), var(--dm-text, #1a1a1a) 55%));
|
|
506
510
|
border-bottom-color: var(--dm-primary);
|
|
507
511
|
}
|
|
@@ -533,7 +537,8 @@
|
|
|
533
537
|
margin-bottom: 0;
|
|
534
538
|
}
|
|
535
539
|
|
|
536
|
-
.tabs-pills .tab-item.active
|
|
540
|
+
.tabs-pills .tab-item.active,
|
|
541
|
+
.tabs-pills .tab-item[aria-selected="true"] {
|
|
537
542
|
background-color: var(--dm-surface);
|
|
538
543
|
box-shadow: var(--dm-shadow-sm);
|
|
539
544
|
border-bottom: none;
|
|
@@ -576,7 +581,8 @@
|
|
|
576
581
|
transition: transform var(--dm-transition-normal);
|
|
577
582
|
}
|
|
578
583
|
|
|
579
|
-
.accordion-item.active .accordion-icon
|
|
584
|
+
.accordion-item.active .accordion-icon,
|
|
585
|
+
.accordion-header[aria-expanded="true"] .accordion-icon {
|
|
580
586
|
transform: rotate(180deg);
|
|
581
587
|
}
|
|
582
588
|
|
|
@@ -855,7 +861,10 @@ textarea:not([class])::placeholder {
|
|
|
855
861
|
|
|
856
862
|
.form-input:disabled,
|
|
857
863
|
.form-select:disabled,
|
|
858
|
-
.form-textarea:disabled
|
|
864
|
+
.form-textarea:disabled,
|
|
865
|
+
.form-input[aria-disabled="true"],
|
|
866
|
+
.form-select[aria-disabled="true"],
|
|
867
|
+
.form-textarea[aria-disabled="true"] {
|
|
859
868
|
background-color: var(--dm-hover-bg);
|
|
860
869
|
cursor: not-allowed;
|
|
861
870
|
opacity: 0.7;
|
|
@@ -863,7 +872,10 @@ textarea:not([class])::placeholder {
|
|
|
863
872
|
|
|
864
873
|
[data-mode="dark"].form-input:disabled,
|
|
865
874
|
[data-mode="dark"].form-select:disabled,
|
|
866
|
-
[data-mode="dark"].form-textarea:disabled
|
|
875
|
+
[data-mode="dark"].form-textarea:disabled,
|
|
876
|
+
[data-mode="dark"].form-input[aria-disabled="true"],
|
|
877
|
+
[data-mode="dark"].form-select[aria-disabled="true"],
|
|
878
|
+
[data-mode="dark"].form-textarea[aria-disabled="true"] {
|
|
867
879
|
background-color: var(--dm-surface);
|
|
868
880
|
}
|
|
869
881
|
|
|
@@ -881,13 +893,25 @@ textarea:not([class])::placeholder {
|
|
|
881
893
|
|
|
882
894
|
.form-input.error,
|
|
883
895
|
.form-select.error,
|
|
884
|
-
.form-textarea.error
|
|
896
|
+
.form-textarea.error,
|
|
897
|
+
.form-input[aria-invalid="true"],
|
|
898
|
+
.form-select[aria-invalid="true"],
|
|
899
|
+
.form-textarea[aria-invalid="true"],
|
|
900
|
+
.form-input.is-invalid,
|
|
901
|
+
.form-select.is-invalid,
|
|
902
|
+
.form-textarea.is-invalid {
|
|
885
903
|
border-color: var(--dm-danger);
|
|
886
904
|
}
|
|
887
905
|
|
|
888
906
|
.form-input.error:focus,
|
|
889
907
|
.form-select.error:focus,
|
|
890
|
-
.form-textarea.error:focus
|
|
908
|
+
.form-textarea.error:focus,
|
|
909
|
+
.form-input[aria-invalid="true"]:focus,
|
|
910
|
+
.form-select[aria-invalid="true"]:focus,
|
|
911
|
+
.form-textarea[aria-invalid="true"]:focus,
|
|
912
|
+
.form-input.is-invalid:focus,
|
|
913
|
+
.form-select.is-invalid:focus,
|
|
914
|
+
.form-textarea.is-invalid:focus {
|
|
891
915
|
box-shadow: 0 0 0 3px var(--dm-focus-ring-danger);
|
|
892
916
|
}
|
|
893
917
|
|
|
@@ -1132,6 +1156,118 @@ textarea:not([class])::placeholder {
|
|
|
1132
1156
|
border-color: var(--dm-danger);
|
|
1133
1157
|
}
|
|
1134
1158
|
|
|
1159
|
+
/* Input extras (formConfig reveal / clear / stepper, E.inputGroup): real
|
|
1160
|
+
* buttons joined to the input like an addon, but clickable and in the tab
|
|
1161
|
+
* order. Buttons after the input share its right border, buttons before it
|
|
1162
|
+
* its left; only the outermost piece of the group keeps a rounded corner. */
|
|
1163
|
+
.input-group-icon > .input-group-btn {
|
|
1164
|
+
display: flex;
|
|
1165
|
+
flex: none;
|
|
1166
|
+
align-items: center;
|
|
1167
|
+
justify-content: center;
|
|
1168
|
+
min-width: 2.5rem;
|
|
1169
|
+
margin: 0;
|
|
1170
|
+
padding: 0 var(--dm-space-2);
|
|
1171
|
+
font: inherit;
|
|
1172
|
+
line-height: 1;
|
|
1173
|
+
color: var(--dm-text);
|
|
1174
|
+
background-color: color-mix(in srgb, var(--dm-text) 6%, var(--dm-surface, var(--dm-white)));
|
|
1175
|
+
border: 1px solid var(--dm-border, var(--dm-gray-300));
|
|
1176
|
+
border-radius: 0;
|
|
1177
|
+
cursor: pointer;
|
|
1178
|
+
user-select: none;
|
|
1179
|
+
touch-action: manipulation;
|
|
1180
|
+
transition: border-color var(--dm-transition-fast), color var(--dm-transition-fast), background-color var(--dm-transition-fast);
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
.input-group-icon > .input-group-btn[hidden] {
|
|
1184
|
+
display: none;
|
|
1185
|
+
}
|
|
1186
|
+
|
|
1187
|
+
.input-group-icon > .input-group-btn svg,
|
|
1188
|
+
.input-group-icon > .input-group-btn [data-icon] {
|
|
1189
|
+
width: 1.1em;
|
|
1190
|
+
height: 1.1em;
|
|
1191
|
+
pointer-events: none;
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
.input-group-icon > .input-group-btn-left {
|
|
1195
|
+
border-right: 0;
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1198
|
+
.input-group-icon > .input-group-btn-right {
|
|
1199
|
+
border-left: 0;
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1202
|
+
.input-group-icon > .input-group-btn:first-child {
|
|
1203
|
+
border-radius: var(--dm-radius-md) 0 0 var(--dm-radius-md);
|
|
1204
|
+
}
|
|
1205
|
+
|
|
1206
|
+
.input-group-icon > .input-group-btn:last-child {
|
|
1207
|
+
border-radius: 0 var(--dm-radius-md) var(--dm-radius-md) 0;
|
|
1208
|
+
}
|
|
1209
|
+
|
|
1210
|
+
/* Hover and "on" tint the fill with the primary colour and keep the full text
|
|
1211
|
+
* colour: --dm-primary as text is a mid-tone on the lemon and silver families. */
|
|
1212
|
+
.input-group-icon > .input-group-btn:hover:not(:disabled),
|
|
1213
|
+
.input-group-icon > .input-group-btn[aria-pressed="true"] {
|
|
1214
|
+
background-color: color-mix(in srgb, var(--dm-primary) 14%, var(--dm-surface, var(--dm-white)));
|
|
1215
|
+
}
|
|
1216
|
+
|
|
1217
|
+
.input-group-icon > .input-group-btn:focus-visible {
|
|
1218
|
+
outline: 2px solid var(--dm-primary);
|
|
1219
|
+
outline-offset: -3px;
|
|
1220
|
+
}
|
|
1221
|
+
|
|
1222
|
+
.input-group-icon > .input-group-btn:disabled {
|
|
1223
|
+
opacity: 0.45;
|
|
1224
|
+
cursor: not-allowed;
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
.input-group-icon:focus-within > .input-group-btn {
|
|
1228
|
+
border-color: var(--dm-primary);
|
|
1229
|
+
}
|
|
1230
|
+
|
|
1231
|
+
.input-group-icon:has(> .error) > .input-group-btn,
|
|
1232
|
+
.has-error .input-group-icon > .input-group-btn {
|
|
1233
|
+
border-color: var(--dm-danger);
|
|
1234
|
+
}
|
|
1235
|
+
|
|
1236
|
+
/* A number input with a stepper hides the browser's own spinner. */
|
|
1237
|
+
.input-group-icon > .input-group-decrease ~ input[type="number"] {
|
|
1238
|
+
-moz-appearance: textfield;
|
|
1239
|
+
appearance: textfield;
|
|
1240
|
+
text-align: center;
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1243
|
+
.input-group-icon > .input-group-decrease ~ input[type="number"]::-webkit-inner-spin-button,
|
|
1244
|
+
.input-group-icon > .input-group-decrease ~ input[type="number"]::-webkit-outer-spin-button {
|
|
1245
|
+
-webkit-appearance: none;
|
|
1246
|
+
margin: 0;
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
/* Character counter under the control: "12 / 200", amber from 90% of the
|
|
1250
|
+
* limit, red past it. The two state colours are mixed toward the text colour,
|
|
1251
|
+
* as .text-warning / .text-danger are (further, for AA on every theme). */
|
|
1252
|
+
.form-counter {
|
|
1253
|
+
margin-top: var(--dm-space-1);
|
|
1254
|
+
font-size: var(--dm-font-size-sm);
|
|
1255
|
+
font-variant-numeric: tabular-nums;
|
|
1256
|
+
text-align: right;
|
|
1257
|
+
color: var(--dm-text-secondary);
|
|
1258
|
+
transition: color var(--dm-transition-fast);
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1261
|
+
.form-counter.is-warning {
|
|
1262
|
+
color: color-mix(in oklab, var(--dm-warning), var(--dm-text) 60%);
|
|
1263
|
+
font-weight: 600;
|
|
1264
|
+
}
|
|
1265
|
+
|
|
1266
|
+
.form-counter.is-over {
|
|
1267
|
+
color: color-mix(in oklab, var(--dm-danger), var(--dm-text) 50%);
|
|
1268
|
+
font-weight: 600;
|
|
1269
|
+
}
|
|
1270
|
+
|
|
1135
1271
|
/* Prepend/Append style (addon outside input) */
|
|
1136
1272
|
.input-group-prepend,
|
|
1137
1273
|
.input-group-append {
|
|
@@ -1551,19 +1687,22 @@ textarea:not([class])::placeholder {
|
|
|
1551
1687
|
}
|
|
1552
1688
|
|
|
1553
1689
|
/* Active/selected state - accent background takes precedence over colour variants */
|
|
1554
|
-
.list-group-item.active
|
|
1690
|
+
.list-group-item.active,
|
|
1691
|
+
.list-group-item[aria-selected="true"] {
|
|
1555
1692
|
background-color: var(--dm-primary);
|
|
1556
1693
|
color: var(--dm-primary-text, var(--dm-white));
|
|
1557
1694
|
border-bottom-color: var(--dm-primary-hover);
|
|
1558
1695
|
z-index: 1;
|
|
1559
1696
|
}
|
|
1560
1697
|
|
|
1561
|
-
.list-group-item.active .list-group-item-text
|
|
1698
|
+
.list-group-item.active .list-group-item-text,
|
|
1699
|
+
.list-group-item[aria-selected="true"] .list-group-item-text {
|
|
1562
1700
|
color: rgba(255, 255, 255, 0.75);
|
|
1563
1701
|
}
|
|
1564
1702
|
|
|
1565
1703
|
/* Disabled state - dimmed and non-interactive */
|
|
1566
|
-
.list-group-item.disabled
|
|
1704
|
+
.list-group-item.disabled,
|
|
1705
|
+
.list-group-item[aria-disabled="true"] {
|
|
1567
1706
|
opacity: 0.7;
|
|
1568
1707
|
cursor: not-allowed;
|
|
1569
1708
|
pointer-events: none;
|
|
@@ -2014,14 +2153,16 @@ code {
|
|
|
2014
2153
|
text-decoration: none;
|
|
2015
2154
|
}
|
|
2016
2155
|
|
|
2017
|
-
.pagination-link.active
|
|
2156
|
+
.pagination-link.active,
|
|
2157
|
+
.pagination-link[aria-current="page"] {
|
|
2018
2158
|
background-color: var(--dm-primary);
|
|
2019
2159
|
border-color: var(--dm-primary);
|
|
2020
2160
|
color: var(--dm-primary-text, var(--dm-white));
|
|
2021
2161
|
}
|
|
2022
2162
|
|
|
2023
2163
|
.pagination-link:disabled,
|
|
2024
|
-
.pagination-link.disabled
|
|
2164
|
+
.pagination-link.disabled,
|
|
2165
|
+
.pagination-link[aria-disabled="true"] {
|
|
2025
2166
|
opacity: 0.5;
|
|
2026
2167
|
cursor: not-allowed;
|
|
2027
2168
|
pointer-events: none;
|
|
@@ -5886,7 +6027,8 @@ code {
|
|
|
5886
6027
|
color: var(--dm-primary, #6495ED);
|
|
5887
6028
|
}
|
|
5888
6029
|
|
|
5889
|
-
.dm-breadcrumbs-item.active
|
|
6030
|
+
.dm-breadcrumbs-item.active,
|
|
6031
|
+
.dm-breadcrumbs-item[aria-current="page"] {
|
|
5890
6032
|
color: var(--dm-text);
|
|
5891
6033
|
font-weight: 500;
|
|
5892
6034
|
}
|
|
@@ -5904,7 +6046,8 @@ code {
|
|
|
5904
6046
|
color: var(--dm-text-muted);
|
|
5905
6047
|
}
|
|
5906
6048
|
|
|
5907
|
-
[data-mode="dark"] .dm-breadcrumbs-item.active
|
|
6049
|
+
[data-mode="dark"] .dm-breadcrumbs-item.active,
|
|
6050
|
+
[data-mode="dark"] .dm-breadcrumbs-item[aria-current="page"] {
|
|
5908
6051
|
color: var(--dm-text);
|
|
5909
6052
|
}
|
|
5910
6053
|
|
|
@@ -8682,3 +8825,234 @@ code {
|
|
|
8682
8825
|
transition: none;
|
|
8683
8826
|
}
|
|
8684
8827
|
}
|
|
8828
|
+
|
|
8829
|
+
/* ============================================
|
|
8830
|
+
SKELETON LOADERS
|
|
8831
|
+
Shimmering placeholders shaped like the content on its way. The tint is the
|
|
8832
|
+
theme's text colour mixed into its surface, so it reads as a quiet grey on
|
|
8833
|
+
light themes and a quiet lift on dark ones. Written by E.skeleton() or by
|
|
8834
|
+
hand. Override hooks: --dm-skeleton-bg, --dm-skeleton-shine,
|
|
8835
|
+
--dm-skeleton-duration, --dm-skeleton-columns (table).
|
|
8836
|
+
============================================ */
|
|
8837
|
+
.skeleton {
|
|
8838
|
+
position: relative;
|
|
8839
|
+
display: block;
|
|
8840
|
+
overflow: hidden;
|
|
8841
|
+
background-color: var(--dm-skeleton-bg, color-mix(in srgb, var(--dm-text) 10%, var(--dm-surface)));
|
|
8842
|
+
border-radius: var(--dm-radius-md);
|
|
8843
|
+
user-select: none;
|
|
8844
|
+
pointer-events: none;
|
|
8845
|
+
}
|
|
8846
|
+
|
|
8847
|
+
/* The sweep: a soft band that crosses each shape. Towards the surface on light
|
|
8848
|
+
themes, towards the text on dark ones - lighter in both cases. */
|
|
8849
|
+
.skeleton::after {
|
|
8850
|
+
content: '';
|
|
8851
|
+
position: absolute;
|
|
8852
|
+
inset: 0;
|
|
8853
|
+
transform: translateX(-100%);
|
|
8854
|
+
background-image: linear-gradient(90deg,
|
|
8855
|
+
transparent 0%,
|
|
8856
|
+
var(--dm-skeleton-shine, color-mix(in srgb, var(--dm-surface) 70%, transparent)) 50%,
|
|
8857
|
+
transparent 100%);
|
|
8858
|
+
animation: dm-skeleton-sweep var(--dm-skeleton-duration, 1.6s) ease-in-out infinite;
|
|
8859
|
+
}
|
|
8860
|
+
|
|
8861
|
+
[data-mode="dark"] .skeleton::after {
|
|
8862
|
+
background-image: linear-gradient(90deg,
|
|
8863
|
+
transparent 0%,
|
|
8864
|
+
var(--dm-skeleton-shine, color-mix(in srgb, var(--dm-text) 8%, transparent)) 50%,
|
|
8865
|
+
transparent 100%);
|
|
8866
|
+
}
|
|
8867
|
+
|
|
8868
|
+
@keyframes dm-skeleton-sweep {
|
|
8869
|
+
100% {
|
|
8870
|
+
transform: translateX(100%);
|
|
8871
|
+
}
|
|
8872
|
+
}
|
|
8873
|
+
|
|
8874
|
+
/* animate: false, or by hand on a shape or a group of shapes */
|
|
8875
|
+
.skeleton-static::after,
|
|
8876
|
+
.skeleton-static .skeleton::after {
|
|
8877
|
+
display: none;
|
|
8878
|
+
}
|
|
8879
|
+
|
|
8880
|
+
/* Lines of text: 0.875em bars on a 1.5em rhythm, like body copy */
|
|
8881
|
+
.skeleton-text {
|
|
8882
|
+
width: 100%;
|
|
8883
|
+
height: 0.875em;
|
|
8884
|
+
border-radius: var(--dm-radius-sm);
|
|
8885
|
+
}
|
|
8886
|
+
|
|
8887
|
+
.skeleton-text + .skeleton-text {
|
|
8888
|
+
margin-top: 0.625em;
|
|
8889
|
+
}
|
|
8890
|
+
|
|
8891
|
+
.skeleton-text-sm {
|
|
8892
|
+
height: 0.75em;
|
|
8893
|
+
}
|
|
8894
|
+
|
|
8895
|
+
/* The last line of a paragraph runs short */
|
|
8896
|
+
.skeleton-lines > .skeleton-text:last-child:not(:first-child) {
|
|
8897
|
+
width: 60%;
|
|
8898
|
+
}
|
|
8899
|
+
|
|
8900
|
+
.skeleton-lines + .skeleton-lines {
|
|
8901
|
+
margin-top: var(--dm-space-6);
|
|
8902
|
+
}
|
|
8903
|
+
|
|
8904
|
+
.skeleton-heading {
|
|
8905
|
+
width: 50%;
|
|
8906
|
+
height: 1.25rem;
|
|
8907
|
+
margin-bottom: var(--dm-space-4);
|
|
8908
|
+
border-radius: var(--dm-radius-sm);
|
|
8909
|
+
}
|
|
8910
|
+
|
|
8911
|
+
.skeleton-w-25 { width: 25%; }
|
|
8912
|
+
.skeleton-w-50 { width: 50%; }
|
|
8913
|
+
.skeleton-w-75 { width: 75%; }
|
|
8914
|
+
.skeleton-w-100 { width: 100%; }
|
|
8915
|
+
|
|
8916
|
+
.skeleton-lines > .skeleton-w-25:last-child:not(:first-child) { width: 25%; }
|
|
8917
|
+
.skeleton-lines > .skeleton-w-50:last-child:not(:first-child) { width: 50%; }
|
|
8918
|
+
.skeleton-lines > .skeleton-w-75:last-child:not(:first-child) { width: 75%; }
|
|
8919
|
+
.skeleton-lines > .skeleton-w-100:last-child:not(:first-child) { width: 100%; }
|
|
8920
|
+
|
|
8921
|
+
/* Circles - avatars, icons. 2.5rem by default */
|
|
8922
|
+
.skeleton-circle,
|
|
8923
|
+
.skeleton-avatar {
|
|
8924
|
+
flex-shrink: 0;
|
|
8925
|
+
width: 2.5rem;
|
|
8926
|
+
height: 2.5rem;
|
|
8927
|
+
border-radius: var(--dm-radius-full);
|
|
8928
|
+
}
|
|
8929
|
+
|
|
8930
|
+
.skeleton-circle.skeleton-sm,
|
|
8931
|
+
.skeleton-avatar.skeleton-sm { width: 2rem; height: 2rem; }
|
|
8932
|
+
.skeleton-circle.skeleton-lg,
|
|
8933
|
+
.skeleton-avatar.skeleton-lg { width: 3.5rem; height: 3.5rem; }
|
|
8934
|
+
.skeleton-circle.skeleton-xl,
|
|
8935
|
+
.skeleton-avatar.skeleton-xl { width: 5rem; height: 5rem; }
|
|
8936
|
+
|
|
8937
|
+
/* Blocks and images - 16:9 unless told otherwise */
|
|
8938
|
+
.skeleton-rect,
|
|
8939
|
+
.skeleton-image {
|
|
8940
|
+
width: 100%;
|
|
8941
|
+
aspect-ratio: 16 / 9;
|
|
8942
|
+
}
|
|
8943
|
+
|
|
8944
|
+
.skeleton-ratio-1x1 { aspect-ratio: 1 / 1; }
|
|
8945
|
+
.skeleton-ratio-4x3 { aspect-ratio: 4 / 3; }
|
|
8946
|
+
.skeleton-ratio-16x9 { aspect-ratio: 16 / 9; }
|
|
8947
|
+
.skeleton-ratio-21x9 { aspect-ratio: 21 / 9; }
|
|
8948
|
+
|
|
8949
|
+
/* The size of a .btn: small text on a 1.5 line, space-2 padding, 1px border */
|
|
8950
|
+
.skeleton-button {
|
|
8951
|
+
display: inline-block;
|
|
8952
|
+
width: 6rem;
|
|
8953
|
+
height: calc(var(--dm-font-size-sm) * 1.5 + var(--dm-space-2) * 2 + 2px);
|
|
8954
|
+
vertical-align: middle;
|
|
8955
|
+
border-radius: var(--dm-radius-md);
|
|
8956
|
+
}
|
|
8957
|
+
|
|
8958
|
+
/* Card: the .card frame, an image with square corners, a .card-body's padding */
|
|
8959
|
+
.skeleton-card {
|
|
8960
|
+
overflow: hidden;
|
|
8961
|
+
color: var(--dm-text);
|
|
8962
|
+
background-color: var(--dm-card-bg, var(--dm-surface));
|
|
8963
|
+
border: 1px solid var(--dm-card-border, var(--dm-border));
|
|
8964
|
+
border-radius: var(--dm-radius-lg);
|
|
8965
|
+
}
|
|
8966
|
+
|
|
8967
|
+
.skeleton-card > .skeleton-image {
|
|
8968
|
+
border-radius: 0;
|
|
8969
|
+
}
|
|
8970
|
+
|
|
8971
|
+
.skeleton-card-body {
|
|
8972
|
+
padding: var(--dm-space-6);
|
|
8973
|
+
}
|
|
8974
|
+
|
|
8975
|
+
/* List: the .list-group frame and item padding, circle then two lines */
|
|
8976
|
+
.skeleton-list {
|
|
8977
|
+
overflow: hidden;
|
|
8978
|
+
color: var(--dm-text);
|
|
8979
|
+
background-color: var(--dm-surface);
|
|
8980
|
+
border: 1px solid var(--dm-border);
|
|
8981
|
+
border-radius: var(--dm-radius-md);
|
|
8982
|
+
}
|
|
8983
|
+
|
|
8984
|
+
.skeleton-list-item {
|
|
8985
|
+
display: flex;
|
|
8986
|
+
align-items: center;
|
|
8987
|
+
gap: var(--dm-space-3);
|
|
8988
|
+
padding: var(--dm-space-3) var(--dm-space-4);
|
|
8989
|
+
font-size: var(--dm-font-size-sm);
|
|
8990
|
+
border-bottom: 1px solid var(--dm-border-light);
|
|
8991
|
+
}
|
|
8992
|
+
|
|
8993
|
+
.skeleton-list-item:last-child {
|
|
8994
|
+
border-bottom: none;
|
|
8995
|
+
}
|
|
8996
|
+
|
|
8997
|
+
.skeleton-list-item-content {
|
|
8998
|
+
flex: 1 1 auto;
|
|
8999
|
+
min-width: 0;
|
|
9000
|
+
}
|
|
9001
|
+
|
|
9002
|
+
/* Table: rows of cells with .table's padding and rule */
|
|
9003
|
+
.skeleton-table {
|
|
9004
|
+
overflow: hidden;
|
|
9005
|
+
color: var(--dm-text);
|
|
9006
|
+
font-size: var(--dm-font-size-sm);
|
|
9007
|
+
border: 1px solid var(--dm-table-border, var(--dm-border));
|
|
9008
|
+
border-radius: var(--dm-radius-md);
|
|
9009
|
+
}
|
|
9010
|
+
|
|
9011
|
+
.skeleton-table-row {
|
|
9012
|
+
display: grid;
|
|
9013
|
+
grid-template-columns: repeat(var(--dm-skeleton-columns, 4), minmax(0, 1fr));
|
|
9014
|
+
align-items: center;
|
|
9015
|
+
gap: var(--dm-space-4);
|
|
9016
|
+
padding: var(--dm-space-3) var(--dm-space-4);
|
|
9017
|
+
border-bottom: 1px solid var(--dm-table-border, var(--dm-border));
|
|
9018
|
+
}
|
|
9019
|
+
|
|
9020
|
+
.skeleton-table-row:last-child {
|
|
9021
|
+
border-bottom: none;
|
|
9022
|
+
}
|
|
9023
|
+
|
|
9024
|
+
/* Cells sit side by side: no line spacing between them */
|
|
9025
|
+
.skeleton-table-row > .skeleton-text + .skeleton-text {
|
|
9026
|
+
margin-top: 0;
|
|
9027
|
+
}
|
|
9028
|
+
|
|
9029
|
+
.skeleton-table-head {
|
|
9030
|
+
color: var(--dm-table-header-text, var(--dm-text));
|
|
9031
|
+
background-color: var(--dm-table-header-bg, var(--dm-background-alt));
|
|
9032
|
+
}
|
|
9033
|
+
|
|
9034
|
+
/* Inside a real table cell (the DataTable's loading rows) */
|
|
9035
|
+
td > .skeleton-text {
|
|
9036
|
+
min-width: 3rem;
|
|
9037
|
+
}
|
|
9038
|
+
|
|
9039
|
+
/* The "Loading..." announcement: read out, not shown */
|
|
9040
|
+
.skeleton-status {
|
|
9041
|
+
position: absolute;
|
|
9042
|
+
width: 1px;
|
|
9043
|
+
height: 1px;
|
|
9044
|
+
margin: -1px;
|
|
9045
|
+
padding: 0;
|
|
9046
|
+
overflow: hidden;
|
|
9047
|
+
clip: rect(0 0 0 0);
|
|
9048
|
+
white-space: nowrap;
|
|
9049
|
+
border: 0;
|
|
9050
|
+
}
|
|
9051
|
+
|
|
9052
|
+
/* Reduced motion: no sweep, just the still tint */
|
|
9053
|
+
@media (prefers-reduced-motion: reduce) {
|
|
9054
|
+
.skeleton::after {
|
|
9055
|
+
display: none;
|
|
9056
|
+
animation: none;
|
|
9057
|
+
}
|
|
9058
|
+
}
|
package/public/dist/grid.css
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Domma Grid CSS v0.
|
|
2
|
+
* Domma Grid CSS v0.48.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-27T22:11:07.097Z
|
|
6
|
+
* Commit: cf6d8de
|
|
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.48.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-27T22:11:07.105Z
|
|
6
|
+
* Commit: cf6d8de
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -18,6 +18,11 @@
|
|
|
18
18
|
--dm-warning: var(--dm-core-warning);
|
|
19
19
|
--dm-danger: var(--dm-core-danger);
|
|
20
20
|
--dm-info: var(--dm-core-info);
|
|
21
|
+
--dm-info-text: #055160;
|
|
22
|
+
--dm-warning-text: #000000;
|
|
23
|
+
--dm-primary-text: #ffffff;
|
|
24
|
+
--dm-danger-text: #ffffff;
|
|
25
|
+
--dm-success-text: #ffffff;
|
|
21
26
|
|
|
22
27
|
/* Component specific overrides can go here */
|
|
23
28
|
}
|