domma-js 0.44.9 → 0.46.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 +179 -46
- package/public/dist/bundles/domma-data-focused.css +179 -46
- package/public/dist/bundles/domma-essentials.css +179 -46
- package/public/dist/bundles/domma-full.css +179 -46
- 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 +168 -35
- package/public/dist/grid.css +3 -3
- package/public/dist/syntax.css +3 -3
- package/public/dist/themes/domma-themes.css +3 -3
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Domma Complete CSS Bundle v0.
|
|
2
|
+
* Domma Complete CSS Bundle v0.46.0
|
|
3
3
|
* Dynamic Object Manipulation & Modeling API
|
|
4
4
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
5
|
-
* Built: 2026-09-
|
|
5
|
+
* Built: 2026-09-27T20:30:22.686Z
|
|
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.46.0
|
|
15
15
|
* Dynamic Object Manipulation & Modeling API
|
|
16
16
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
17
|
-
* Built: 2026-09-
|
|
18
|
-
* Commit:
|
|
17
|
+
* Built: 2026-09-27T20:30:22.523Z
|
|
18
|
+
* Commit: 2e6a350
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
/**
|
|
@@ -4835,11 +4835,11 @@ body.dm-cloaked.dm-ready {
|
|
|
4835
4835
|
============================================ */
|
|
4836
4836
|
|
|
4837
4837
|
/*!
|
|
4838
|
-
* Domma Grid CSS v0.
|
|
4838
|
+
* Domma Grid CSS v0.46.0
|
|
4839
4839
|
* Dynamic Object Manipulation & Modeling API
|
|
4840
4840
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
4841
|
-
* Built: 2026-09-
|
|
4842
|
-
* Commit:
|
|
4841
|
+
* Built: 2026-09-27T20:30:22.527Z
|
|
4842
|
+
* Commit: 2e6a350
|
|
4843
4843
|
*/
|
|
4844
4844
|
|
|
4845
4845
|
/**
|
|
@@ -5460,11 +5460,11 @@ body.dm-cloaked.dm-ready {
|
|
|
5460
5460
|
============================================ */
|
|
5461
5461
|
|
|
5462
5462
|
/*!
|
|
5463
|
-
* Domma Elements CSS v0.
|
|
5463
|
+
* Domma Elements CSS v0.46.0
|
|
5464
5464
|
* Dynamic Object Manipulation & Modeling API
|
|
5465
5465
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
5466
|
-
* Built: 2026-09-
|
|
5467
|
-
* Commit:
|
|
5466
|
+
* Built: 2026-09-27T20:30:22.531Z
|
|
5467
|
+
* Commit: 2e6a350
|
|
5468
5468
|
*/
|
|
5469
5469
|
|
|
5470
5470
|
/**
|
|
@@ -6489,55 +6489,71 @@ textarea:not([class])::placeholder {
|
|
|
6489
6489
|
min-width: 0;
|
|
6490
6490
|
}
|
|
6491
6491
|
|
|
6492
|
-
/*
|
|
6492
|
+
/* Addon input group (formConfig.prefix / suffix, E.inputGroup): an icon or
|
|
6493
|
+
* short text joined to the start or end of an input, Bootstrap-style. The
|
|
6494
|
+
* addon and the input share one border and one rounded outline; the addon is
|
|
6495
|
+
* as wide as what it holds, so "£", "kg" and "https://" all fit. */
|
|
6493
6496
|
.input-group-icon {
|
|
6494
|
-
|
|
6497
|
+
display: flex;
|
|
6498
|
+
align-items: stretch;
|
|
6495
6499
|
width: 100%;
|
|
6500
|
+
min-width: 0;
|
|
6496
6501
|
}
|
|
6497
6502
|
|
|
6498
6503
|
.input-group-icon > .input-group-addon {
|
|
6499
|
-
position: absolute;
|
|
6500
|
-
top: 0;
|
|
6501
|
-
bottom: 0;
|
|
6502
6504
|
display: flex;
|
|
6505
|
+
flex: none;
|
|
6503
6506
|
align-items: center;
|
|
6504
6507
|
justify-content: center;
|
|
6508
|
+
gap: var(--dm-space-1);
|
|
6509
|
+
padding: 0 var(--dm-space-3);
|
|
6510
|
+
font-size: var(--dm-font-size-base);
|
|
6511
|
+
line-height: 1;
|
|
6512
|
+
white-space: nowrap;
|
|
6505
6513
|
pointer-events: none;
|
|
6506
|
-
|
|
6514
|
+
/* Full text colour: muted text on the tinted addon fell below 4.5:1 on the
|
|
6515
|
+
* mid-tone admin themes (validate:contrast). */
|
|
6507
6516
|
color: var(--dm-text);
|
|
6508
|
-
background-color: var(--dm-
|
|
6509
|
-
|
|
6517
|
+
background-color: color-mix(in srgb, var(--dm-text) 6%, var(--dm-surface, var(--dm-white)));
|
|
6518
|
+
border: 1px solid var(--dm-border, var(--dm-gray-300));
|
|
6519
|
+
transition: border-color var(--dm-transition-fast), color var(--dm-transition-fast);
|
|
6520
|
+
}
|
|
6521
|
+
|
|
6522
|
+
.input-group-icon > .input-group-addon [data-icon],
|
|
6523
|
+
.input-group-icon > .input-group-addon svg {
|
|
6524
|
+
width: 1.15em;
|
|
6525
|
+
height: 1.15em;
|
|
6510
6526
|
}
|
|
6511
6527
|
|
|
6512
6528
|
.input-group-icon > .input-group-addon-left {
|
|
6513
|
-
|
|
6514
|
-
border-
|
|
6515
|
-
border-top-left-radius: var(--dm-radius-md);
|
|
6516
|
-
border-bottom-left-radius: var(--dm-radius-md);
|
|
6529
|
+
border-right: 0;
|
|
6530
|
+
border-radius: var(--dm-radius-md) 0 0 var(--dm-radius-md);
|
|
6517
6531
|
}
|
|
6518
6532
|
|
|
6519
6533
|
.input-group-icon > .input-group-addon-right {
|
|
6520
|
-
|
|
6521
|
-
border-
|
|
6522
|
-
border-top-right-radius: var(--dm-radius-md);
|
|
6523
|
-
border-bottom-right-radius: var(--dm-radius-md);
|
|
6534
|
+
border-left: 0;
|
|
6535
|
+
border-radius: 0 var(--dm-radius-md) var(--dm-radius-md) 0;
|
|
6524
6536
|
}
|
|
6525
6537
|
|
|
6526
|
-
|
|
6527
|
-
|
|
6528
|
-
|
|
6529
|
-
|
|
6530
|
-
|
|
6538
|
+
.input-group-icon > .form-input,
|
|
6539
|
+
.input-group-icon > .form-select,
|
|
6540
|
+
.input-group-icon > .form-textarea,
|
|
6541
|
+
.input-group-icon > input,
|
|
6542
|
+
.input-group-icon > select,
|
|
6543
|
+
.input-group-icon > textarea {
|
|
6544
|
+
flex: 1 1 auto;
|
|
6545
|
+
width: 1%;
|
|
6546
|
+
min-width: 0;
|
|
6531
6547
|
}
|
|
6532
6548
|
|
|
6533
|
-
/* Adjust input padding when icon is present */
|
|
6534
6549
|
.input-group-icon.has-addon-left > .form-input,
|
|
6535
6550
|
.input-group-icon.has-addon-left > .form-select,
|
|
6536
6551
|
.input-group-icon.has-addon-left > .form-textarea,
|
|
6537
6552
|
.input-group-icon.has-addon-left > input,
|
|
6538
6553
|
.input-group-icon.has-addon-left > select,
|
|
6539
6554
|
.input-group-icon.has-addon-left > textarea {
|
|
6540
|
-
|
|
6555
|
+
border-top-left-radius: 0;
|
|
6556
|
+
border-bottom-left-radius: 0;
|
|
6541
6557
|
}
|
|
6542
6558
|
|
|
6543
6559
|
.input-group-icon.has-addon-right > .form-input,
|
|
@@ -6546,17 +6562,35 @@ textarea:not([class])::placeholder {
|
|
|
6546
6562
|
.input-group-icon.has-addon-right > input,
|
|
6547
6563
|
.input-group-icon.has-addon-right > select,
|
|
6548
6564
|
.input-group-icon.has-addon-right > textarea {
|
|
6549
|
-
|
|
6565
|
+
border-top-right-radius: 0;
|
|
6566
|
+
border-bottom-right-radius: 0;
|
|
6567
|
+
}
|
|
6568
|
+
|
|
6569
|
+
/* The addon follows the input's own focus and error states, so the group
|
|
6570
|
+
* reads as one control: the focus ring goes round the whole group rather than
|
|
6571
|
+
* the input alone. */
|
|
6572
|
+
.input-group-icon:focus-within {
|
|
6573
|
+
border-radius: var(--dm-radius-md);
|
|
6574
|
+
box-shadow: 0 0 0 3px var(--dm-focus-ring);
|
|
6575
|
+
}
|
|
6576
|
+
|
|
6577
|
+
.input-group-icon > .form-input:focus,
|
|
6578
|
+
.input-group-icon > .form-select:focus,
|
|
6579
|
+
.input-group-icon > .form-textarea:focus,
|
|
6580
|
+
.input-group-icon > input:focus,
|
|
6581
|
+
.input-group-icon > select:focus,
|
|
6582
|
+
.input-group-icon > textarea:focus {
|
|
6583
|
+
box-shadow: none;
|
|
6550
6584
|
}
|
|
6551
6585
|
|
|
6552
|
-
.input-group-icon
|
|
6553
|
-
|
|
6554
|
-
|
|
6555
|
-
|
|
6556
|
-
|
|
6557
|
-
.input-group-icon
|
|
6558
|
-
|
|
6559
|
-
|
|
6586
|
+
.input-group-icon:focus-within > .input-group-addon {
|
|
6587
|
+
border-color: var(--dm-primary);
|
|
6588
|
+
color: var(--dm-primary);
|
|
6589
|
+
}
|
|
6590
|
+
|
|
6591
|
+
.input-group-icon:has(> .error) > .input-group-addon,
|
|
6592
|
+
.has-error .input-group-icon > .input-group-addon {
|
|
6593
|
+
border-color: var(--dm-danger);
|
|
6560
6594
|
}
|
|
6561
6595
|
|
|
6562
6596
|
/* Prepend/Append style (addon outside input) */
|
|
@@ -14011,6 +14045,105 @@ code {
|
|
|
14011
14045
|
cursor: not-allowed;
|
|
14012
14046
|
}
|
|
14013
14047
|
|
|
14048
|
+
/* ============================================
|
|
14049
|
+
Sortable - drag to reorder (E.sortable)
|
|
14050
|
+
============================================ */
|
|
14051
|
+
|
|
14052
|
+
.dm-sortable-handle {
|
|
14053
|
+
cursor: grab;
|
|
14054
|
+
touch-action: none;
|
|
14055
|
+
}
|
|
14056
|
+
|
|
14057
|
+
.dm-sortable-dragging,
|
|
14058
|
+
.dm-sortable-dragging * {
|
|
14059
|
+
cursor: grabbing !important;
|
|
14060
|
+
user-select: none !important;
|
|
14061
|
+
-webkit-user-select: none !important;
|
|
14062
|
+
}
|
|
14063
|
+
|
|
14064
|
+
/* The copy that follows the pointer. It lifts in (scale + shadow) and settles
|
|
14065
|
+
back down as it lands on the item's new place. */
|
|
14066
|
+
.dm-sortable-ghost {
|
|
14067
|
+
z-index: 10040;
|
|
14068
|
+
opacity: 0.96;
|
|
14069
|
+
background: var(--dm-sortable-ghost-bg, var(--dm-surface, var(--dm-card-bg)));
|
|
14070
|
+
color: var(--dm-text);
|
|
14071
|
+
border-radius: var(--dm-sortable-radius, var(--dm-radius-sm));
|
|
14072
|
+
box-shadow: 0 0 0 0 transparent;
|
|
14073
|
+
scale: 1;
|
|
14074
|
+
will-change: transform;
|
|
14075
|
+
transition:
|
|
14076
|
+
scale 160ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
14077
|
+
box-shadow 160ms cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
14078
|
+
}
|
|
14079
|
+
|
|
14080
|
+
.dm-sortable-ghost-lifted {
|
|
14081
|
+
scale: var(--dm-sortable-lift, 1.02);
|
|
14082
|
+
box-shadow: var(--dm-sortable-shadow, var(--dm-shadow-lg, 0 12px 28px rgba(0, 0, 0, 0.22)));
|
|
14083
|
+
}
|
|
14084
|
+
|
|
14085
|
+
/* The item's own slot while it is being dragged. */
|
|
14086
|
+
.dm-sortable-placeholder {
|
|
14087
|
+
opacity: 0.35;
|
|
14088
|
+
outline: 2px dashed color-mix(in srgb, var(--dm-primary) 55%, transparent);
|
|
14089
|
+
outline-offset: -2px;
|
|
14090
|
+
border-radius: var(--dm-sortable-radius, var(--dm-radius-sm));
|
|
14091
|
+
transition: opacity 160ms ease;
|
|
14092
|
+
}
|
|
14093
|
+
|
|
14094
|
+
/* While the ghost flies home the slot is empty, so the two never double up. */
|
|
14095
|
+
.dm-sortable-placeholder.dm-sortable-landing {
|
|
14096
|
+
opacity: 0;
|
|
14097
|
+
outline-color: transparent;
|
|
14098
|
+
}
|
|
14099
|
+
|
|
14100
|
+
/* Indicator mode: a rule at the edge the item would drop beside, or an outline
|
|
14101
|
+
round the item it would drop into. It glides between positions. */
|
|
14102
|
+
.dm-sortable-indicator {
|
|
14103
|
+
position: fixed;
|
|
14104
|
+
z-index: 10030;
|
|
14105
|
+
pointer-events: none;
|
|
14106
|
+
opacity: 0;
|
|
14107
|
+
background: var(--dm-sortable-accent, var(--dm-primary));
|
|
14108
|
+
border-radius: var(--dm-sortable-radius, var(--dm-radius-sm));
|
|
14109
|
+
transition:
|
|
14110
|
+
left 120ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
14111
|
+
top 120ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
14112
|
+
width 120ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
14113
|
+
height 120ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
14114
|
+
opacity 120ms ease,
|
|
14115
|
+
background-color 120ms ease;
|
|
14116
|
+
}
|
|
14117
|
+
|
|
14118
|
+
.dm-sortable-indicator.is-visible {
|
|
14119
|
+
opacity: 1;
|
|
14120
|
+
}
|
|
14121
|
+
|
|
14122
|
+
.dm-sortable-indicator.is-into {
|
|
14123
|
+
background: color-mix(in srgb, var(--dm-sortable-accent, var(--dm-primary)) 12%, transparent);
|
|
14124
|
+
box-shadow: inset 0 0 0 2px var(--dm-sortable-accent, var(--dm-primary));
|
|
14125
|
+
}
|
|
14126
|
+
|
|
14127
|
+
.dm-sortable-live {
|
|
14128
|
+
position: absolute;
|
|
14129
|
+
width: 1px;
|
|
14130
|
+
height: 1px;
|
|
14131
|
+
margin: -1px;
|
|
14132
|
+
padding: 0;
|
|
14133
|
+
overflow: hidden;
|
|
14134
|
+
clip: rect(0 0 0 0);
|
|
14135
|
+
white-space: nowrap;
|
|
14136
|
+
border: 0;
|
|
14137
|
+
}
|
|
14138
|
+
|
|
14139
|
+
@media (prefers-reduced-motion: reduce) {
|
|
14140
|
+
.dm-sortable-ghost,
|
|
14141
|
+
.dm-sortable-indicator,
|
|
14142
|
+
.dm-sortable-placeholder {
|
|
14143
|
+
transition: none;
|
|
14144
|
+
}
|
|
14145
|
+
}
|
|
14146
|
+
|
|
14014
14147
|
|
|
14015
14148
|
/* ============================================
|
|
14016
14149
|
THEME SYSTEM
|
|
@@ -14018,11 +14151,11 @@ code {
|
|
|
14018
14151
|
============================================ */
|
|
14019
14152
|
|
|
14020
14153
|
/*!
|
|
14021
|
-
* Domma Themes v0.
|
|
14154
|
+
* Domma Themes v0.46.0
|
|
14022
14155
|
* Dynamic Object Manipulation & Modeling API
|
|
14023
14156
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
14024
|
-
* Built: 2026-09-
|
|
14025
|
-
* Commit:
|
|
14157
|
+
* Built: 2026-09-27T20:30:22.510Z
|
|
14158
|
+
* Commit: 2e6a350
|
|
14026
14159
|
*/
|
|
14027
14160
|
|
|
14028
14161
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Domma Data-Focused CSS Bundle v0.
|
|
2
|
+
* Domma Data-Focused CSS Bundle v0.46.0
|
|
3
3
|
* Dynamic Object Manipulation & Modeling API
|
|
4
4
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
5
|
-
* Built: 2026-09-
|
|
5
|
+
* Built: 2026-09-27T20:30:22.683Z
|
|
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.46.0
|
|
15
15
|
* Dynamic Object Manipulation & Modeling API
|
|
16
16
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
17
|
-
* Built: 2026-09-
|
|
18
|
-
* Commit:
|
|
17
|
+
* Built: 2026-09-27T20:30:22.523Z
|
|
18
|
+
* Commit: 2e6a350
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
/**
|
|
@@ -4835,11 +4835,11 @@ body.dm-cloaked.dm-ready {
|
|
|
4835
4835
|
============================================ */
|
|
4836
4836
|
|
|
4837
4837
|
/*!
|
|
4838
|
-
* Domma Grid CSS v0.
|
|
4838
|
+
* Domma Grid CSS v0.46.0
|
|
4839
4839
|
* Dynamic Object Manipulation & Modeling API
|
|
4840
4840
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
4841
|
-
* Built: 2026-09-
|
|
4842
|
-
* Commit:
|
|
4841
|
+
* Built: 2026-09-27T20:30:22.527Z
|
|
4842
|
+
* Commit: 2e6a350
|
|
4843
4843
|
*/
|
|
4844
4844
|
|
|
4845
4845
|
/**
|
|
@@ -5460,11 +5460,11 @@ body.dm-cloaked.dm-ready {
|
|
|
5460
5460
|
============================================ */
|
|
5461
5461
|
|
|
5462
5462
|
/*!
|
|
5463
|
-
* Domma Elements CSS v0.
|
|
5463
|
+
* Domma Elements CSS v0.46.0
|
|
5464
5464
|
* Dynamic Object Manipulation & Modeling API
|
|
5465
5465
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
5466
|
-
* Built: 2026-09-
|
|
5467
|
-
* Commit:
|
|
5466
|
+
* Built: 2026-09-27T20:30:22.531Z
|
|
5467
|
+
* Commit: 2e6a350
|
|
5468
5468
|
*/
|
|
5469
5469
|
|
|
5470
5470
|
/**
|
|
@@ -6489,55 +6489,71 @@ textarea:not([class])::placeholder {
|
|
|
6489
6489
|
min-width: 0;
|
|
6490
6490
|
}
|
|
6491
6491
|
|
|
6492
|
-
/*
|
|
6492
|
+
/* Addon input group (formConfig.prefix / suffix, E.inputGroup): an icon or
|
|
6493
|
+
* short text joined to the start or end of an input, Bootstrap-style. The
|
|
6494
|
+
* addon and the input share one border and one rounded outline; the addon is
|
|
6495
|
+
* as wide as what it holds, so "£", "kg" and "https://" all fit. */
|
|
6493
6496
|
.input-group-icon {
|
|
6494
|
-
|
|
6497
|
+
display: flex;
|
|
6498
|
+
align-items: stretch;
|
|
6495
6499
|
width: 100%;
|
|
6500
|
+
min-width: 0;
|
|
6496
6501
|
}
|
|
6497
6502
|
|
|
6498
6503
|
.input-group-icon > .input-group-addon {
|
|
6499
|
-
position: absolute;
|
|
6500
|
-
top: 0;
|
|
6501
|
-
bottom: 0;
|
|
6502
6504
|
display: flex;
|
|
6505
|
+
flex: none;
|
|
6503
6506
|
align-items: center;
|
|
6504
6507
|
justify-content: center;
|
|
6508
|
+
gap: var(--dm-space-1);
|
|
6509
|
+
padding: 0 var(--dm-space-3);
|
|
6510
|
+
font-size: var(--dm-font-size-base);
|
|
6511
|
+
line-height: 1;
|
|
6512
|
+
white-space: nowrap;
|
|
6505
6513
|
pointer-events: none;
|
|
6506
|
-
|
|
6514
|
+
/* Full text colour: muted text on the tinted addon fell below 4.5:1 on the
|
|
6515
|
+
* mid-tone admin themes (validate:contrast). */
|
|
6507
6516
|
color: var(--dm-text);
|
|
6508
|
-
background-color: var(--dm-
|
|
6509
|
-
|
|
6517
|
+
background-color: color-mix(in srgb, var(--dm-text) 6%, var(--dm-surface, var(--dm-white)));
|
|
6518
|
+
border: 1px solid var(--dm-border, var(--dm-gray-300));
|
|
6519
|
+
transition: border-color var(--dm-transition-fast), color var(--dm-transition-fast);
|
|
6520
|
+
}
|
|
6521
|
+
|
|
6522
|
+
.input-group-icon > .input-group-addon [data-icon],
|
|
6523
|
+
.input-group-icon > .input-group-addon svg {
|
|
6524
|
+
width: 1.15em;
|
|
6525
|
+
height: 1.15em;
|
|
6510
6526
|
}
|
|
6511
6527
|
|
|
6512
6528
|
.input-group-icon > .input-group-addon-left {
|
|
6513
|
-
|
|
6514
|
-
border-
|
|
6515
|
-
border-top-left-radius: var(--dm-radius-md);
|
|
6516
|
-
border-bottom-left-radius: var(--dm-radius-md);
|
|
6529
|
+
border-right: 0;
|
|
6530
|
+
border-radius: var(--dm-radius-md) 0 0 var(--dm-radius-md);
|
|
6517
6531
|
}
|
|
6518
6532
|
|
|
6519
6533
|
.input-group-icon > .input-group-addon-right {
|
|
6520
|
-
|
|
6521
|
-
border-
|
|
6522
|
-
border-top-right-radius: var(--dm-radius-md);
|
|
6523
|
-
border-bottom-right-radius: var(--dm-radius-md);
|
|
6534
|
+
border-left: 0;
|
|
6535
|
+
border-radius: 0 var(--dm-radius-md) var(--dm-radius-md) 0;
|
|
6524
6536
|
}
|
|
6525
6537
|
|
|
6526
|
-
|
|
6527
|
-
|
|
6528
|
-
|
|
6529
|
-
|
|
6530
|
-
|
|
6538
|
+
.input-group-icon > .form-input,
|
|
6539
|
+
.input-group-icon > .form-select,
|
|
6540
|
+
.input-group-icon > .form-textarea,
|
|
6541
|
+
.input-group-icon > input,
|
|
6542
|
+
.input-group-icon > select,
|
|
6543
|
+
.input-group-icon > textarea {
|
|
6544
|
+
flex: 1 1 auto;
|
|
6545
|
+
width: 1%;
|
|
6546
|
+
min-width: 0;
|
|
6531
6547
|
}
|
|
6532
6548
|
|
|
6533
|
-
/* Adjust input padding when icon is present */
|
|
6534
6549
|
.input-group-icon.has-addon-left > .form-input,
|
|
6535
6550
|
.input-group-icon.has-addon-left > .form-select,
|
|
6536
6551
|
.input-group-icon.has-addon-left > .form-textarea,
|
|
6537
6552
|
.input-group-icon.has-addon-left > input,
|
|
6538
6553
|
.input-group-icon.has-addon-left > select,
|
|
6539
6554
|
.input-group-icon.has-addon-left > textarea {
|
|
6540
|
-
|
|
6555
|
+
border-top-left-radius: 0;
|
|
6556
|
+
border-bottom-left-radius: 0;
|
|
6541
6557
|
}
|
|
6542
6558
|
|
|
6543
6559
|
.input-group-icon.has-addon-right > .form-input,
|
|
@@ -6546,17 +6562,35 @@ textarea:not([class])::placeholder {
|
|
|
6546
6562
|
.input-group-icon.has-addon-right > input,
|
|
6547
6563
|
.input-group-icon.has-addon-right > select,
|
|
6548
6564
|
.input-group-icon.has-addon-right > textarea {
|
|
6549
|
-
|
|
6565
|
+
border-top-right-radius: 0;
|
|
6566
|
+
border-bottom-right-radius: 0;
|
|
6567
|
+
}
|
|
6568
|
+
|
|
6569
|
+
/* The addon follows the input's own focus and error states, so the group
|
|
6570
|
+
* reads as one control: the focus ring goes round the whole group rather than
|
|
6571
|
+
* the input alone. */
|
|
6572
|
+
.input-group-icon:focus-within {
|
|
6573
|
+
border-radius: var(--dm-radius-md);
|
|
6574
|
+
box-shadow: 0 0 0 3px var(--dm-focus-ring);
|
|
6575
|
+
}
|
|
6576
|
+
|
|
6577
|
+
.input-group-icon > .form-input:focus,
|
|
6578
|
+
.input-group-icon > .form-select:focus,
|
|
6579
|
+
.input-group-icon > .form-textarea:focus,
|
|
6580
|
+
.input-group-icon > input:focus,
|
|
6581
|
+
.input-group-icon > select:focus,
|
|
6582
|
+
.input-group-icon > textarea:focus {
|
|
6583
|
+
box-shadow: none;
|
|
6550
6584
|
}
|
|
6551
6585
|
|
|
6552
|
-
.input-group-icon
|
|
6553
|
-
|
|
6554
|
-
|
|
6555
|
-
|
|
6556
|
-
|
|
6557
|
-
.input-group-icon
|
|
6558
|
-
|
|
6559
|
-
|
|
6586
|
+
.input-group-icon:focus-within > .input-group-addon {
|
|
6587
|
+
border-color: var(--dm-primary);
|
|
6588
|
+
color: var(--dm-primary);
|
|
6589
|
+
}
|
|
6590
|
+
|
|
6591
|
+
.input-group-icon:has(> .error) > .input-group-addon,
|
|
6592
|
+
.has-error .input-group-icon > .input-group-addon {
|
|
6593
|
+
border-color: var(--dm-danger);
|
|
6560
6594
|
}
|
|
6561
6595
|
|
|
6562
6596
|
/* Prepend/Append style (addon outside input) */
|
|
@@ -14011,6 +14045,105 @@ code {
|
|
|
14011
14045
|
cursor: not-allowed;
|
|
14012
14046
|
}
|
|
14013
14047
|
|
|
14048
|
+
/* ============================================
|
|
14049
|
+
Sortable - drag to reorder (E.sortable)
|
|
14050
|
+
============================================ */
|
|
14051
|
+
|
|
14052
|
+
.dm-sortable-handle {
|
|
14053
|
+
cursor: grab;
|
|
14054
|
+
touch-action: none;
|
|
14055
|
+
}
|
|
14056
|
+
|
|
14057
|
+
.dm-sortable-dragging,
|
|
14058
|
+
.dm-sortable-dragging * {
|
|
14059
|
+
cursor: grabbing !important;
|
|
14060
|
+
user-select: none !important;
|
|
14061
|
+
-webkit-user-select: none !important;
|
|
14062
|
+
}
|
|
14063
|
+
|
|
14064
|
+
/* The copy that follows the pointer. It lifts in (scale + shadow) and settles
|
|
14065
|
+
back down as it lands on the item's new place. */
|
|
14066
|
+
.dm-sortable-ghost {
|
|
14067
|
+
z-index: 10040;
|
|
14068
|
+
opacity: 0.96;
|
|
14069
|
+
background: var(--dm-sortable-ghost-bg, var(--dm-surface, var(--dm-card-bg)));
|
|
14070
|
+
color: var(--dm-text);
|
|
14071
|
+
border-radius: var(--dm-sortable-radius, var(--dm-radius-sm));
|
|
14072
|
+
box-shadow: 0 0 0 0 transparent;
|
|
14073
|
+
scale: 1;
|
|
14074
|
+
will-change: transform;
|
|
14075
|
+
transition:
|
|
14076
|
+
scale 160ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
14077
|
+
box-shadow 160ms cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
14078
|
+
}
|
|
14079
|
+
|
|
14080
|
+
.dm-sortable-ghost-lifted {
|
|
14081
|
+
scale: var(--dm-sortable-lift, 1.02);
|
|
14082
|
+
box-shadow: var(--dm-sortable-shadow, var(--dm-shadow-lg, 0 12px 28px rgba(0, 0, 0, 0.22)));
|
|
14083
|
+
}
|
|
14084
|
+
|
|
14085
|
+
/* The item's own slot while it is being dragged. */
|
|
14086
|
+
.dm-sortable-placeholder {
|
|
14087
|
+
opacity: 0.35;
|
|
14088
|
+
outline: 2px dashed color-mix(in srgb, var(--dm-primary) 55%, transparent);
|
|
14089
|
+
outline-offset: -2px;
|
|
14090
|
+
border-radius: var(--dm-sortable-radius, var(--dm-radius-sm));
|
|
14091
|
+
transition: opacity 160ms ease;
|
|
14092
|
+
}
|
|
14093
|
+
|
|
14094
|
+
/* While the ghost flies home the slot is empty, so the two never double up. */
|
|
14095
|
+
.dm-sortable-placeholder.dm-sortable-landing {
|
|
14096
|
+
opacity: 0;
|
|
14097
|
+
outline-color: transparent;
|
|
14098
|
+
}
|
|
14099
|
+
|
|
14100
|
+
/* Indicator mode: a rule at the edge the item would drop beside, or an outline
|
|
14101
|
+
round the item it would drop into. It glides between positions. */
|
|
14102
|
+
.dm-sortable-indicator {
|
|
14103
|
+
position: fixed;
|
|
14104
|
+
z-index: 10030;
|
|
14105
|
+
pointer-events: none;
|
|
14106
|
+
opacity: 0;
|
|
14107
|
+
background: var(--dm-sortable-accent, var(--dm-primary));
|
|
14108
|
+
border-radius: var(--dm-sortable-radius, var(--dm-radius-sm));
|
|
14109
|
+
transition:
|
|
14110
|
+
left 120ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
14111
|
+
top 120ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
14112
|
+
width 120ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
14113
|
+
height 120ms cubic-bezier(0.2, 0.8, 0.2, 1),
|
|
14114
|
+
opacity 120ms ease,
|
|
14115
|
+
background-color 120ms ease;
|
|
14116
|
+
}
|
|
14117
|
+
|
|
14118
|
+
.dm-sortable-indicator.is-visible {
|
|
14119
|
+
opacity: 1;
|
|
14120
|
+
}
|
|
14121
|
+
|
|
14122
|
+
.dm-sortable-indicator.is-into {
|
|
14123
|
+
background: color-mix(in srgb, var(--dm-sortable-accent, var(--dm-primary)) 12%, transparent);
|
|
14124
|
+
box-shadow: inset 0 0 0 2px var(--dm-sortable-accent, var(--dm-primary));
|
|
14125
|
+
}
|
|
14126
|
+
|
|
14127
|
+
.dm-sortable-live {
|
|
14128
|
+
position: absolute;
|
|
14129
|
+
width: 1px;
|
|
14130
|
+
height: 1px;
|
|
14131
|
+
margin: -1px;
|
|
14132
|
+
padding: 0;
|
|
14133
|
+
overflow: hidden;
|
|
14134
|
+
clip: rect(0 0 0 0);
|
|
14135
|
+
white-space: nowrap;
|
|
14136
|
+
border: 0;
|
|
14137
|
+
}
|
|
14138
|
+
|
|
14139
|
+
@media (prefers-reduced-motion: reduce) {
|
|
14140
|
+
.dm-sortable-ghost,
|
|
14141
|
+
.dm-sortable-indicator,
|
|
14142
|
+
.dm-sortable-placeholder {
|
|
14143
|
+
transition: none;
|
|
14144
|
+
}
|
|
14145
|
+
}
|
|
14146
|
+
|
|
14014
14147
|
|
|
14015
14148
|
/* ============================================
|
|
14016
14149
|
THEME SYSTEM
|
|
@@ -14018,11 +14151,11 @@ code {
|
|
|
14018
14151
|
============================================ */
|
|
14019
14152
|
|
|
14020
14153
|
/*!
|
|
14021
|
-
* Domma Themes v0.
|
|
14154
|
+
* Domma Themes v0.46.0
|
|
14022
14155
|
* Dynamic Object Manipulation & Modeling API
|
|
14023
14156
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
14024
|
-
* Built: 2026-09-
|
|
14025
|
-
* Commit:
|
|
14157
|
+
* Built: 2026-09-27T20:30:22.510Z
|
|
14158
|
+
* Commit: 2e6a350
|
|
14026
14159
|
*/
|
|
14027
14160
|
|
|
14028
14161
|
/**
|