domma-js 0.42.0 → 0.44.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/README.md +596 -143
- package/bin/domma-cli.js +5 -5
- package/bin/postinstall.js +1 -1
- package/package.json +11 -6
- package/public/dist/bundles/domma-complete.css +490 -68
- package/public/dist/bundles/domma-data-focused.css +490 -68
- package/public/dist/bundles/domma-essentials.css +490 -68
- package/public/dist/bundles/domma-full.css +490 -68
- 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 +425 -3
- package/public/dist/grid.css +3 -3
- package/public/dist/syntax.css +3 -3
- package/public/dist/themes/domma-themes.css +57 -57
- package/templates/kickstart-spa/README.md +1 -1
- package/public/dist/bundles/domma-grayve.css +0 -16852
- package/public/dist/themes/grayve.css +0 -213
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Domma Complete CSS Bundle v0.
|
|
2
|
+
* Domma Complete CSS Bundle v0.44.0
|
|
3
3
|
* Dynamic Object Manipulation & Modeling API
|
|
4
4
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
5
|
-
* Built: 2026-
|
|
5
|
+
* Built: 2026-09-22T03:19:19.495Z
|
|
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.44.0
|
|
15
15
|
* Dynamic Object Manipulation & Modeling API
|
|
16
16
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
17
|
-
* Built: 2026-
|
|
18
|
-
* Commit:
|
|
17
|
+
* Built: 2026-09-22T03:19:19.324Z
|
|
18
|
+
* Commit: a452582
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
/**
|
|
@@ -4838,11 +4838,11 @@ body.dm-cloaked.dm-ready {
|
|
|
4838
4838
|
============================================ */
|
|
4839
4839
|
|
|
4840
4840
|
/*!
|
|
4841
|
-
* Domma Grid CSS v0.
|
|
4841
|
+
* Domma Grid CSS v0.44.0
|
|
4842
4842
|
* Dynamic Object Manipulation & Modeling API
|
|
4843
4843
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
4844
|
-
* Built: 2026-
|
|
4845
|
-
* Commit:
|
|
4844
|
+
* Built: 2026-09-22T03:19:19.327Z
|
|
4845
|
+
* Commit: a452582
|
|
4846
4846
|
*/
|
|
4847
4847
|
|
|
4848
4848
|
/**
|
|
@@ -5463,11 +5463,11 @@ body.dm-cloaked.dm-ready {
|
|
|
5463
5463
|
============================================ */
|
|
5464
5464
|
|
|
5465
5465
|
/*!
|
|
5466
|
-
* Domma Elements CSS v0.
|
|
5466
|
+
* Domma Elements CSS v0.44.0
|
|
5467
5467
|
* Dynamic Object Manipulation & Modeling API
|
|
5468
5468
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
5469
|
-
* Built: 2026-
|
|
5470
|
-
* Commit:
|
|
5469
|
+
* Built: 2026-09-22T03:19:19.332Z
|
|
5470
|
+
* Commit: a452582
|
|
5471
5471
|
*/
|
|
5472
5472
|
|
|
5473
5473
|
/**
|
|
@@ -13558,6 +13558,428 @@ code {
|
|
|
13558
13558
|
}
|
|
13559
13559
|
}
|
|
13560
13560
|
|
|
13561
|
+
/* ============================================
|
|
13562
|
+
Context Menu
|
|
13563
|
+
Bound to a container, delegated to its children. Nested menus shadow their
|
|
13564
|
+
parent for the region they cover; see src/context-menu.js for resolution.
|
|
13565
|
+
============================================ */
|
|
13566
|
+
|
|
13567
|
+
/*
|
|
13568
|
+
* Every themeable value is a custom property with the theme token as its
|
|
13569
|
+
* fallback, so an unstyled menu follows the active theme and only the options
|
|
13570
|
+
* actually passed override it. Nothing here generates per-instance rules.
|
|
13571
|
+
*/
|
|
13572
|
+
.dm-context-menu {
|
|
13573
|
+
position: fixed;
|
|
13574
|
+
z-index: 10050;
|
|
13575
|
+
display: flex;
|
|
13576
|
+
flex-direction: column;
|
|
13577
|
+
gap: 1px;
|
|
13578
|
+
padding: 4px;
|
|
13579
|
+
overflow-y: auto;
|
|
13580
|
+
background: var(--dm-ctx-surface, var(--dm-surface));
|
|
13581
|
+
color: var(--dm-text);
|
|
13582
|
+
border: 1px solid var(--dm-ctx-accent, var(--dm-border));
|
|
13583
|
+
border-radius: var(--dm-ctx-radius, var(--dm-radius-md));
|
|
13584
|
+
box-shadow: var(--dm-ctx-shadow, 0 8px 24px rgba(0, 0, 0, 0.18));
|
|
13585
|
+
font-size: 0.875rem;
|
|
13586
|
+
transform-origin: top left;
|
|
13587
|
+
outline: none;
|
|
13588
|
+
transition:
|
|
13589
|
+
opacity var(--dm-ctx-duration, 120ms) var(--dm-ctx-easing, ease),
|
|
13590
|
+
transform var(--dm-ctx-duration, 120ms) var(--dm-ctx-easing, ease);
|
|
13591
|
+
}
|
|
13592
|
+
|
|
13593
|
+
/*
|
|
13594
|
+
* A translucent panel needs its own layer: mixing the surface with transparent
|
|
13595
|
+
* keeps the text fully opaque, which `opacity` on the element would not - that
|
|
13596
|
+
* would fade the labels along with the background and fail contrast outright.
|
|
13597
|
+
*/
|
|
13598
|
+
.dm-context-menu[style*="--dm-ctx-opacity"] {
|
|
13599
|
+
background: color-mix(
|
|
13600
|
+
in srgb,
|
|
13601
|
+
var(--dm-ctx-surface, var(--dm-surface)) calc(var(--dm-ctx-opacity) * 100%),
|
|
13602
|
+
transparent
|
|
13603
|
+
);
|
|
13604
|
+
backdrop-filter: blur(10px);
|
|
13605
|
+
}
|
|
13606
|
+
|
|
13607
|
+
/* An accent tints the leading edge as well as the border. */
|
|
13608
|
+
.dm-context-menu[style*="--dm-ctx-accent"] {
|
|
13609
|
+
border-left-width: 3px;
|
|
13610
|
+
}
|
|
13611
|
+
|
|
13612
|
+
/* ---- transitions ---- */
|
|
13613
|
+
|
|
13614
|
+
.dm-context-menu[data-transition] {
|
|
13615
|
+
opacity: 0;
|
|
13616
|
+
}
|
|
13617
|
+
|
|
13618
|
+
.dm-context-menu[data-transition="scale"] { transform: scale(0.97); }
|
|
13619
|
+
.dm-context-menu[data-transition="fade"] { transform: none; }
|
|
13620
|
+
.dm-context-menu[data-transition="slide"] { transform: translateY(-6px); }
|
|
13621
|
+
.dm-context-menu[data-transition="none"] { transform: none; transition: none; }
|
|
13622
|
+
|
|
13623
|
+
.dm-context-menu.is-open {
|
|
13624
|
+
opacity: 1;
|
|
13625
|
+
transform: none;
|
|
13626
|
+
}
|
|
13627
|
+
|
|
13628
|
+
/* ---- density ---- */
|
|
13629
|
+
|
|
13630
|
+
.dm-context-menu[data-density="compact"] {
|
|
13631
|
+
font-size: 0.8125rem;
|
|
13632
|
+
padding: 2px;
|
|
13633
|
+
}
|
|
13634
|
+
|
|
13635
|
+
.dm-context-menu[data-density="compact"] .dm-context-menu-item {
|
|
13636
|
+
padding: 0.25rem 0.45rem;
|
|
13637
|
+
}
|
|
13638
|
+
|
|
13639
|
+
.dm-context-menu-item {
|
|
13640
|
+
display: flex;
|
|
13641
|
+
align-items: center;
|
|
13642
|
+
gap: 0.5rem;
|
|
13643
|
+
width: 100%;
|
|
13644
|
+
padding: 0.4rem 0.6rem;
|
|
13645
|
+
background: none;
|
|
13646
|
+
border: 0;
|
|
13647
|
+
border-radius: var(--dm-radius-sm);
|
|
13648
|
+
color: inherit;
|
|
13649
|
+
font: inherit;
|
|
13650
|
+
text-align: left;
|
|
13651
|
+
cursor: pointer;
|
|
13652
|
+
transition: background var(--dm-transition-fast);
|
|
13653
|
+
}
|
|
13654
|
+
|
|
13655
|
+
.dm-context-menu-item:hover:not(.is-disabled),
|
|
13656
|
+
.dm-context-menu-item:focus-visible {
|
|
13657
|
+
background: var(--dm-background-alt);
|
|
13658
|
+
outline: none;
|
|
13659
|
+
}
|
|
13660
|
+
|
|
13661
|
+
/*
|
|
13662
|
+
* The accent tints the hover wash rather than the label. A named colour cannot
|
|
13663
|
+
* be guaranteed readable against whatever surface the menu is on - the same
|
|
13664
|
+
* trap that made --dm-danger 1.02:1 on admin-smooth-steel - so the text keeps
|
|
13665
|
+
* the one pairing every theme guarantees and the accent carries the meaning.
|
|
13666
|
+
*/
|
|
13667
|
+
.dm-context-menu[style*="--dm-ctx-accent"] .dm-context-menu-item:hover:not(.is-disabled),
|
|
13668
|
+
.dm-context-menu[style*="--dm-ctx-accent"] .dm-context-menu-item:focus-visible {
|
|
13669
|
+
background: color-mix(in srgb, var(--dm-ctx-accent) 16%, transparent);
|
|
13670
|
+
}
|
|
13671
|
+
|
|
13672
|
+
.dm-context-menu-item:focus-visible {
|
|
13673
|
+
box-shadow: inset 0 0 0 2px var(--dm-border-focus);
|
|
13674
|
+
}
|
|
13675
|
+
|
|
13676
|
+
.dm-context-menu-item.is-disabled {
|
|
13677
|
+
opacity: 0.45;
|
|
13678
|
+
cursor: not-allowed;
|
|
13679
|
+
}
|
|
13680
|
+
|
|
13681
|
+
/*
|
|
13682
|
+
* Destructive items carry their warning in a tinted wash rather than in red
|
|
13683
|
+
* text. A saturated red cannot be read on a mid-tone surface - on
|
|
13684
|
+
* admin-smooth-steel, --dm-danger against --dm-surface lands at 1.02:1 - and
|
|
13685
|
+
* no single red works across a light surface, a dark one and the mid-tone
|
|
13686
|
+
* themes in between. The wash is mixed FROM the surface, so it adapts, and the
|
|
13687
|
+
* label keeps the one colour every theme guarantees is readable on it.
|
|
13688
|
+
*/
|
|
13689
|
+
.dm-context-menu-item.is-danger {
|
|
13690
|
+
background: color-mix(in srgb, var(--dm-danger) 10%, transparent);
|
|
13691
|
+
}
|
|
13692
|
+
|
|
13693
|
+
.dm-context-menu-item.is-danger:hover:not(.is-disabled) {
|
|
13694
|
+
background: color-mix(in srgb, var(--dm-danger) 22%, transparent);
|
|
13695
|
+
}
|
|
13696
|
+
|
|
13697
|
+
.dm-context-menu-icon {
|
|
13698
|
+
display: inline-flex;
|
|
13699
|
+
align-items: center;
|
|
13700
|
+
justify-content: center;
|
|
13701
|
+
flex: 0 0 16px;
|
|
13702
|
+
width: 16px;
|
|
13703
|
+
height: 16px;
|
|
13704
|
+
}
|
|
13705
|
+
|
|
13706
|
+
.dm-context-menu-label {
|
|
13707
|
+
flex: 1 1 auto;
|
|
13708
|
+
white-space: nowrap;
|
|
13709
|
+
overflow: hidden;
|
|
13710
|
+
text-overflow: ellipsis;
|
|
13711
|
+
}
|
|
13712
|
+
|
|
13713
|
+
.dm-context-menu-shortcut {
|
|
13714
|
+
flex: 0 0 auto;
|
|
13715
|
+
padding-left: 1rem;
|
|
13716
|
+
font-size: 0.78em;
|
|
13717
|
+
font-variant-numeric: tabular-nums;
|
|
13718
|
+
opacity: 0.8;
|
|
13719
|
+
}
|
|
13720
|
+
|
|
13721
|
+
.dm-context-menu-chevron {
|
|
13722
|
+
display: inline-flex;
|
|
13723
|
+
flex: 0 0 auto;
|
|
13724
|
+
margin-left: auto;
|
|
13725
|
+
padding-left: 0.4rem;
|
|
13726
|
+
opacity: 0.7;
|
|
13727
|
+
}
|
|
13728
|
+
|
|
13729
|
+
.dm-context-menu-item.has-submenu .dm-context-menu-label {
|
|
13730
|
+
flex: 0 1 auto;
|
|
13731
|
+
}
|
|
13732
|
+
|
|
13733
|
+
.dm-context-menu-item.is-checked .dm-context-menu-icon::after {
|
|
13734
|
+
content: "";
|
|
13735
|
+
width: 8px;
|
|
13736
|
+
height: 8px;
|
|
13737
|
+
border-radius: 50%;
|
|
13738
|
+
background: var(--dm-ctx-accent, var(--dm-primary));
|
|
13739
|
+
}
|
|
13740
|
+
|
|
13741
|
+
.dm-context-menu-divider {
|
|
13742
|
+
height: 1px;
|
|
13743
|
+
margin: 4px 2px;
|
|
13744
|
+
background: var(--dm-border);
|
|
13745
|
+
}
|
|
13746
|
+
|
|
13747
|
+
.dm-context-menu-header {
|
|
13748
|
+
padding: 0.35rem 0.6rem 0.2rem;
|
|
13749
|
+
font-size: 0.72rem;
|
|
13750
|
+
font-weight: 600;
|
|
13751
|
+
letter-spacing: 0.04em;
|
|
13752
|
+
text-transform: uppercase;
|
|
13753
|
+
}
|
|
13754
|
+
|
|
13755
|
+
/* The affordance that tells people a menu is there at all. */
|
|
13756
|
+
.dm-context-menu-host {
|
|
13757
|
+
cursor: context-menu;
|
|
13758
|
+
}
|
|
13759
|
+
|
|
13760
|
+
@media (prefers-reduced-motion: reduce) {
|
|
13761
|
+
.dm-context-menu,
|
|
13762
|
+
.dm-context-menu[data-transition] {
|
|
13763
|
+
transition: none !important;
|
|
13764
|
+
transform: none !important;
|
|
13765
|
+
}
|
|
13766
|
+
}
|
|
13767
|
+
|
|
13768
|
+
/* ============================================
|
|
13769
|
+
DatePicker
|
|
13770
|
+
--------------------------------------------
|
|
13771
|
+
Every colour is a --dm-* token that the theme layer defines, so the calendar
|
|
13772
|
+
takes whatever theme the host is wearing - including one applied to a region
|
|
13773
|
+
by a theme override, since the tokens are inherited rather than hard-coded.
|
|
13774
|
+
Nothing here invents a token: an undefined var() resolves to nothing and
|
|
13775
|
+
paints a blank panel.
|
|
13776
|
+
============================================ */
|
|
13777
|
+
|
|
13778
|
+
.dm-datepicker {
|
|
13779
|
+
position: absolute;
|
|
13780
|
+
z-index: 1080;
|
|
13781
|
+
width: max-content;
|
|
13782
|
+
padding: 0.5rem;
|
|
13783
|
+
|
|
13784
|
+
font-family: var(--dm-font-sans);
|
|
13785
|
+
font-size: var(--dm-font-size-sm);
|
|
13786
|
+
color: var(--dm-text);
|
|
13787
|
+
|
|
13788
|
+
background: var(--dm-surface-raised, var(--dm-surface));
|
|
13789
|
+
border: 1px solid var(--dm-border);
|
|
13790
|
+
border-radius: var(--dm-radius-lg);
|
|
13791
|
+
box-shadow: var(--dm-shadow-lg);
|
|
13792
|
+
}
|
|
13793
|
+
|
|
13794
|
+
.dm-datepicker--inline {
|
|
13795
|
+
position: static;
|
|
13796
|
+
box-shadow: none;
|
|
13797
|
+
margin-top: 0.35rem;
|
|
13798
|
+
}
|
|
13799
|
+
|
|
13800
|
+
/* Header: month and year pickers between two chevrons. */
|
|
13801
|
+
|
|
13802
|
+
.dm-datepicker-head {
|
|
13803
|
+
display: flex;
|
|
13804
|
+
align-items: center;
|
|
13805
|
+
gap: 0.35rem;
|
|
13806
|
+
margin-bottom: 0.4rem;
|
|
13807
|
+
}
|
|
13808
|
+
|
|
13809
|
+
.dm-datepicker-pickers {
|
|
13810
|
+
display: flex;
|
|
13811
|
+
gap: 0.3rem;
|
|
13812
|
+
flex: 1 1 auto;
|
|
13813
|
+
justify-content: center;
|
|
13814
|
+
}
|
|
13815
|
+
|
|
13816
|
+
/*
|
|
13817
|
+
* Five rules below are recorded in scripts/validate-contrast-pairs.baseline.json
|
|
13818
|
+
* rather than fixed, and the reason is the theme system, not this component.
|
|
13819
|
+
*
|
|
13820
|
+
* The three `--dm-text-disabled` rules (.is-outside, .is-disabled and the
|
|
13821
|
+
* disabled action) sit below 3:1 on `--dm-surface-raised` in ALL 33 themes -
|
|
13822
|
+
* 1.37 at worst. That is the disabled ramp behaving as designed, and WCAG AA
|
|
13823
|
+
* 1.4.3 exempts inactive controls from the contrast minimum. Lifting it to 4.5
|
|
13824
|
+
* here would make disabled dates LIGHTER than the muted weekday header, which
|
|
13825
|
+
* inverts the hierarchy.
|
|
13826
|
+
*
|
|
13827
|
+
* The two `--dm-text-muted` rules (.dm-datepicker-nav, .dm-datepicker-week)
|
|
13828
|
+
* fail on `--dm-surface-raised` in 23 of the 33 themes, worst 3.11. No token
|
|
13829
|
+
* below `--dm-text` clears AA on a raised surface everywhere, so this is not
|
|
13830
|
+
* fixable by picking a different variable - the muted ramp itself would have to
|
|
13831
|
+
* be redesigned across every theme. Using `--dm-text` instead would pass, and
|
|
13832
|
+
* cost the weekday header and adjacent-month days the de-emphasis that makes a
|
|
13833
|
+
* calendar readable at a glance.
|
|
13834
|
+
*
|
|
13835
|
+
* If the muted ramp is ever revisited, `npm run validate:contrast
|
|
13836
|
+
* --update-baseline` should drop these two.
|
|
13837
|
+
*/
|
|
13838
|
+
.dm-datepicker-nav {
|
|
13839
|
+
display: inline-flex;
|
|
13840
|
+
align-items: center;
|
|
13841
|
+
justify-content: center;
|
|
13842
|
+
width: 28px;
|
|
13843
|
+
height: 28px;
|
|
13844
|
+
padding: 0;
|
|
13845
|
+
flex: 0 0 auto;
|
|
13846
|
+
|
|
13847
|
+
color: var(--dm-text-muted);
|
|
13848
|
+
background: transparent;
|
|
13849
|
+
border: 1px solid transparent;
|
|
13850
|
+
border-radius: var(--dm-radius-md);
|
|
13851
|
+
cursor: pointer;
|
|
13852
|
+
transition: background var(--dm-transition-fast), color var(--dm-transition-fast);
|
|
13853
|
+
}
|
|
13854
|
+
|
|
13855
|
+
.dm-datepicker-nav:hover {
|
|
13856
|
+
color: var(--dm-text);
|
|
13857
|
+
background: var(--dm-hover-bg);
|
|
13858
|
+
}
|
|
13859
|
+
|
|
13860
|
+
.dm-datepicker-select {
|
|
13861
|
+
padding: 0.2rem 0.35rem;
|
|
13862
|
+
font: inherit;
|
|
13863
|
+
color: var(--dm-input-text, var(--dm-text));
|
|
13864
|
+
background: var(--dm-input-bg, var(--dm-surface));
|
|
13865
|
+
border: 1px solid var(--dm-input-border, var(--dm-border));
|
|
13866
|
+
border-radius: var(--dm-radius-md);
|
|
13867
|
+
cursor: pointer;
|
|
13868
|
+
}
|
|
13869
|
+
|
|
13870
|
+
.dm-datepicker-select:focus-visible {
|
|
13871
|
+
outline: none;
|
|
13872
|
+
border-color: var(--dm-input-focus-border, var(--dm-primary));
|
|
13873
|
+
box-shadow: var(--dm-focus-ring);
|
|
13874
|
+
}
|
|
13875
|
+
|
|
13876
|
+
/* The grid. Seven equal columns, so the weekday row and the days line up
|
|
13877
|
+
whatever the digits are - a table would do the same but cannot carry the
|
|
13878
|
+
roles this needs. */
|
|
13879
|
+
|
|
13880
|
+
.dm-datepicker-row {
|
|
13881
|
+
display: grid;
|
|
13882
|
+
grid-template-columns: repeat(7, 2rem);
|
|
13883
|
+
gap: 2px;
|
|
13884
|
+
}
|
|
13885
|
+
|
|
13886
|
+
.dm-datepicker[data-week-numbers] .dm-datepicker-row {
|
|
13887
|
+
grid-template-columns: 1.6rem repeat(7, 2rem);
|
|
13888
|
+
}
|
|
13889
|
+
|
|
13890
|
+
.dm-datepicker-weekdays { margin-bottom: 2px; }
|
|
13891
|
+
|
|
13892
|
+
.dm-datepicker-weekday,
|
|
13893
|
+
.dm-datepicker-week {
|
|
13894
|
+
display: flex;
|
|
13895
|
+
align-items: center;
|
|
13896
|
+
justify-content: center;
|
|
13897
|
+
height: 1.6rem;
|
|
13898
|
+
font-size: var(--dm-font-size-xs);
|
|
13899
|
+
font-weight: var(--dm-font-weight-semibold);
|
|
13900
|
+
color: var(--dm-text-muted);
|
|
13901
|
+
}
|
|
13902
|
+
|
|
13903
|
+
.dm-datepicker-week { font-weight: 400; }
|
|
13904
|
+
|
|
13905
|
+
.dm-datepicker-day {
|
|
13906
|
+
display: flex;
|
|
13907
|
+
align-items: center;
|
|
13908
|
+
justify-content: center;
|
|
13909
|
+
height: 2rem;
|
|
13910
|
+
padding: 0;
|
|
13911
|
+
|
|
13912
|
+
font: inherit;
|
|
13913
|
+
font-variant-numeric: tabular-nums;
|
|
13914
|
+
color: var(--dm-text);
|
|
13915
|
+
background: transparent;
|
|
13916
|
+
border: 1px solid transparent;
|
|
13917
|
+
border-radius: var(--dm-radius-md);
|
|
13918
|
+
cursor: pointer;
|
|
13919
|
+
transition: background var(--dm-transition-fast), color var(--dm-transition-fast);
|
|
13920
|
+
}
|
|
13921
|
+
|
|
13922
|
+
.dm-datepicker-day:hover:not(.is-disabled) { background: var(--dm-hover-bg); }
|
|
13923
|
+
|
|
13924
|
+
.dm-datepicker-day:focus-visible {
|
|
13925
|
+
outline: none;
|
|
13926
|
+
box-shadow: var(--dm-focus-ring);
|
|
13927
|
+
}
|
|
13928
|
+
|
|
13929
|
+
/* The days either side of the month are shown rather than blanked: a calendar
|
|
13930
|
+
with holes in it is harder to read than one that runs on. */
|
|
13931
|
+
.dm-datepicker-day.is-outside { color: var(--dm-text-disabled); }
|
|
13932
|
+
|
|
13933
|
+
.dm-datepicker-day.is-today {
|
|
13934
|
+
border-color: var(--dm-primary);
|
|
13935
|
+
font-weight: var(--dm-font-weight-semibold);
|
|
13936
|
+
}
|
|
13937
|
+
|
|
13938
|
+
.dm-datepicker-day.is-selected,
|
|
13939
|
+
.dm-datepicker-day.is-selected:hover {
|
|
13940
|
+
color: var(--dm-primary-text);
|
|
13941
|
+
background: var(--dm-primary);
|
|
13942
|
+
border-color: var(--dm-primary);
|
|
13943
|
+
}
|
|
13944
|
+
|
|
13945
|
+
.dm-datepicker-day.is-disabled {
|
|
13946
|
+
color: var(--dm-text-disabled);
|
|
13947
|
+
cursor: not-allowed;
|
|
13948
|
+
opacity: var(--dm-disabled-opacity);
|
|
13949
|
+
}
|
|
13950
|
+
|
|
13951
|
+
/* Footer actions. */
|
|
13952
|
+
|
|
13953
|
+
.dm-datepicker-foot {
|
|
13954
|
+
display: flex;
|
|
13955
|
+
gap: 0.35rem;
|
|
13956
|
+
justify-content: flex-end;
|
|
13957
|
+
margin-top: 0.45rem;
|
|
13958
|
+
padding-top: 0.45rem;
|
|
13959
|
+
border-top: 1px solid var(--dm-border);
|
|
13960
|
+
}
|
|
13961
|
+
|
|
13962
|
+
.dm-datepicker-action {
|
|
13963
|
+
padding: 0.2rem 0.6rem;
|
|
13964
|
+
font: inherit;
|
|
13965
|
+
font-size: var(--dm-font-size-xs);
|
|
13966
|
+
color: var(--dm-link);
|
|
13967
|
+
background: transparent;
|
|
13968
|
+
border: 0;
|
|
13969
|
+
border-radius: var(--dm-radius-md);
|
|
13970
|
+
cursor: pointer;
|
|
13971
|
+
}
|
|
13972
|
+
|
|
13973
|
+
.dm-datepicker-action:hover:not(:disabled) {
|
|
13974
|
+
color: var(--dm-link-hover);
|
|
13975
|
+
background: var(--dm-hover-bg);
|
|
13976
|
+
}
|
|
13977
|
+
|
|
13978
|
+
.dm-datepicker-action:disabled {
|
|
13979
|
+
color: var(--dm-text-disabled);
|
|
13980
|
+
cursor: not-allowed;
|
|
13981
|
+
}
|
|
13982
|
+
|
|
13561
13983
|
|
|
13562
13984
|
/* ============================================
|
|
13563
13985
|
THEME SYSTEM
|
|
@@ -13565,11 +13987,11 @@ code {
|
|
|
13565
13987
|
============================================ */
|
|
13566
13988
|
|
|
13567
13989
|
/*!
|
|
13568
|
-
* Domma Themes v0.
|
|
13990
|
+
* Domma Themes v0.44.0
|
|
13569
13991
|
* Dynamic Object Manipulation & Modeling API
|
|
13570
13992
|
* (c) 2026 Darryl Waterhouse & DCBW-IT
|
|
13571
|
-
* Built: 2026-
|
|
13572
|
-
* Commit:
|
|
13993
|
+
* Built: 2026-09-22T03:19:19.311Z
|
|
13994
|
+
* Commit: a452582
|
|
13573
13995
|
*/
|
|
13574
13996
|
|
|
13575
13997
|
/**
|
|
@@ -19717,40 +20139,40 @@ code {
|
|
|
19717
20139
|
.dm-theme-admin-smooth-steel {
|
|
19718
20140
|
color-scheme: dark;
|
|
19719
20141
|
|
|
19720
|
-
--dm-background: #
|
|
19721
|
-
--dm-background-alt: #
|
|
19722
|
-
--dm-surface: #
|
|
19723
|
-
--dm-surface-raised: #
|
|
19724
|
-
--dm-surface-overlay: #
|
|
20142
|
+
--dm-background: #353a43;
|
|
20143
|
+
--dm-background-alt: #2f343c;
|
|
20144
|
+
--dm-surface: #3c414a;
|
|
20145
|
+
--dm-surface-raised: #414750;
|
|
20146
|
+
--dm-surface-overlay: #414750;
|
|
19725
20147
|
--dm-text: #f7f9fb;
|
|
19726
20148
|
--dm-text-secondary: #d2d8e0;
|
|
19727
20149
|
--dm-text-muted: #b3bcc8;
|
|
19728
20150
|
--dm-text-disabled: #8a93a1;
|
|
19729
20151
|
--dm-text-inverse: #1f2733;
|
|
19730
|
-
--dm-border: #
|
|
19731
|
-
--dm-border-light: #
|
|
19732
|
-
--dm-border-dark: #
|
|
20152
|
+
--dm-border: #434852;
|
|
20153
|
+
--dm-border-light: #373d45;
|
|
20154
|
+
--dm-border-dark: #494f59;
|
|
19733
20155
|
--dm-hover-bg: rgba(255, 255, 255, 0.07);
|
|
19734
20156
|
--dm-active-bg: rgba(255, 255, 255, 0.10);
|
|
19735
20157
|
--dm-disabled-opacity: 0.4;
|
|
19736
|
-
--dm-sidebar-bg: #
|
|
20158
|
+
--dm-sidebar-bg: #292e36;
|
|
19737
20159
|
--dm-sidebar-text: #d2d8e0;
|
|
19738
|
-
--dm-sidebar-border: #
|
|
19739
|
-
--dm-navbar-bg: #
|
|
20160
|
+
--dm-sidebar-border: #232830;
|
|
20161
|
+
--dm-navbar-bg: #2f343c;
|
|
19740
20162
|
--dm-navbar-text: #f7f9fb;
|
|
19741
|
-
--dm-navbar-border: #
|
|
19742
|
-
--dm-table-header-bg: #
|
|
20163
|
+
--dm-navbar-border: #373d45;
|
|
20164
|
+
--dm-table-header-bg: #32373f;
|
|
19743
20165
|
--dm-table-stripe-bg: rgba(255, 255, 255, 0.03);
|
|
19744
20166
|
--dm-table-hover-bg: rgba(255, 255, 255, 0.07);
|
|
19745
20167
|
--dm-modal-backdrop: rgba(0, 0, 0, 0.6);
|
|
19746
20168
|
--dm-tooltip-bg: #1f2733;
|
|
19747
20169
|
--dm-tooltip-text: #ffffff;
|
|
19748
|
-
--dm-scrollbar-track: #
|
|
19749
|
-
--dm-scrollbar-thumb: #
|
|
19750
|
-
--dm-scrollbar-thumb-hover: #
|
|
19751
|
-
--dm-code-bg: #
|
|
20170
|
+
--dm-scrollbar-track: #2f343c;
|
|
20171
|
+
--dm-scrollbar-thumb: #494f59;
|
|
20172
|
+
--dm-scrollbar-thumb-hover: #5a616c;
|
|
20173
|
+
--dm-code-bg: #292e36;
|
|
19752
20174
|
--dm-code-text: #ffd9a8;
|
|
19753
|
-
--dm-progress-bg: #
|
|
20175
|
+
--dm-progress-bg: #32373f;
|
|
19754
20176
|
|
|
19755
20177
|
--dm-primary: #3b76bc;
|
|
19756
20178
|
--dm-primary-hover: #356bab;
|
|
@@ -19855,40 +20277,40 @@ code {
|
|
|
19855
20277
|
.dm-theme-admin-smooth-indigo {
|
|
19856
20278
|
color-scheme: dark;
|
|
19857
20279
|
|
|
19858
|
-
--dm-background: #
|
|
19859
|
-
--dm-background-alt: #
|
|
19860
|
-
--dm-surface: #
|
|
19861
|
-
--dm-surface-raised: #
|
|
19862
|
-
--dm-surface-overlay: #
|
|
20280
|
+
--dm-background: #353a43;
|
|
20281
|
+
--dm-background-alt: #2f343c;
|
|
20282
|
+
--dm-surface: #3c414a;
|
|
20283
|
+
--dm-surface-raised: #414750;
|
|
20284
|
+
--dm-surface-overlay: #414750;
|
|
19863
20285
|
--dm-text: #f7f9fb;
|
|
19864
20286
|
--dm-text-secondary: #d2d8e0;
|
|
19865
20287
|
--dm-text-muted: #b3bcc8;
|
|
19866
20288
|
--dm-text-disabled: #8a93a1;
|
|
19867
20289
|
--dm-text-inverse: #1f2733;
|
|
19868
|
-
--dm-border: #
|
|
19869
|
-
--dm-border-light: #
|
|
19870
|
-
--dm-border-dark: #
|
|
20290
|
+
--dm-border: #434852;
|
|
20291
|
+
--dm-border-light: #373d45;
|
|
20292
|
+
--dm-border-dark: #494f59;
|
|
19871
20293
|
--dm-hover-bg: rgba(255, 255, 255, 0.07);
|
|
19872
20294
|
--dm-active-bg: rgba(255, 255, 255, 0.10);
|
|
19873
20295
|
--dm-disabled-opacity: 0.4;
|
|
19874
|
-
--dm-sidebar-bg: #
|
|
20296
|
+
--dm-sidebar-bg: #292e36;
|
|
19875
20297
|
--dm-sidebar-text: #d2d8e0;
|
|
19876
|
-
--dm-sidebar-border: #
|
|
19877
|
-
--dm-navbar-bg: #
|
|
20298
|
+
--dm-sidebar-border: #232830;
|
|
20299
|
+
--dm-navbar-bg: #2f343c;
|
|
19878
20300
|
--dm-navbar-text: #f7f9fb;
|
|
19879
|
-
--dm-navbar-border: #
|
|
19880
|
-
--dm-table-header-bg: #
|
|
20301
|
+
--dm-navbar-border: #373d45;
|
|
20302
|
+
--dm-table-header-bg: #32373f;
|
|
19881
20303
|
--dm-table-stripe-bg: rgba(255, 255, 255, 0.03);
|
|
19882
20304
|
--dm-table-hover-bg: rgba(255, 255, 255, 0.07);
|
|
19883
20305
|
--dm-modal-backdrop: rgba(0, 0, 0, 0.6);
|
|
19884
20306
|
--dm-tooltip-bg: #1f2733;
|
|
19885
20307
|
--dm-tooltip-text: #ffffff;
|
|
19886
|
-
--dm-scrollbar-track: #
|
|
19887
|
-
--dm-scrollbar-thumb: #
|
|
19888
|
-
--dm-scrollbar-thumb-hover: #
|
|
19889
|
-
--dm-code-bg: #
|
|
20308
|
+
--dm-scrollbar-track: #2f343c;
|
|
20309
|
+
--dm-scrollbar-thumb: #494f59;
|
|
20310
|
+
--dm-scrollbar-thumb-hover: #5a616c;
|
|
20311
|
+
--dm-code-bg: #292e36;
|
|
19890
20312
|
--dm-code-text: #ffd9a8;
|
|
19891
|
-
--dm-progress-bg: #
|
|
20313
|
+
--dm-progress-bg: #32373f;
|
|
19892
20314
|
|
|
19893
20315
|
--dm-primary: #5b63a8;
|
|
19894
20316
|
--dm-primary-hover: #4f5694;
|
|
@@ -19993,40 +20415,40 @@ code {
|
|
|
19993
20415
|
.dm-theme-admin-smooth-teal {
|
|
19994
20416
|
color-scheme: dark;
|
|
19995
20417
|
|
|
19996
|
-
--dm-background: #
|
|
19997
|
-
--dm-background-alt: #
|
|
19998
|
-
--dm-surface: #
|
|
19999
|
-
--dm-surface-raised: #
|
|
20000
|
-
--dm-surface-overlay: #
|
|
20418
|
+
--dm-background: #353a43;
|
|
20419
|
+
--dm-background-alt: #2f343c;
|
|
20420
|
+
--dm-surface: #3c414a;
|
|
20421
|
+
--dm-surface-raised: #414750;
|
|
20422
|
+
--dm-surface-overlay: #414750;
|
|
20001
20423
|
--dm-text: #f7f9fb;
|
|
20002
20424
|
--dm-text-secondary: #d2d8e0;
|
|
20003
20425
|
--dm-text-muted: #b3bcc8;
|
|
20004
20426
|
--dm-text-disabled: #8a93a1;
|
|
20005
20427
|
--dm-text-inverse: #1f2733;
|
|
20006
|
-
--dm-border: #
|
|
20007
|
-
--dm-border-light: #
|
|
20008
|
-
--dm-border-dark: #
|
|
20428
|
+
--dm-border: #434852;
|
|
20429
|
+
--dm-border-light: #373d45;
|
|
20430
|
+
--dm-border-dark: #494f59;
|
|
20009
20431
|
--dm-hover-bg: rgba(255, 255, 255, 0.07);
|
|
20010
20432
|
--dm-active-bg: rgba(255, 255, 255, 0.10);
|
|
20011
20433
|
--dm-disabled-opacity: 0.4;
|
|
20012
|
-
--dm-sidebar-bg: #
|
|
20434
|
+
--dm-sidebar-bg: #292e36;
|
|
20013
20435
|
--dm-sidebar-text: #d2d8e0;
|
|
20014
|
-
--dm-sidebar-border: #
|
|
20015
|
-
--dm-navbar-bg: #
|
|
20436
|
+
--dm-sidebar-border: #232830;
|
|
20437
|
+
--dm-navbar-bg: #2f343c;
|
|
20016
20438
|
--dm-navbar-text: #f7f9fb;
|
|
20017
|
-
--dm-navbar-border: #
|
|
20018
|
-
--dm-table-header-bg: #
|
|
20439
|
+
--dm-navbar-border: #373d45;
|
|
20440
|
+
--dm-table-header-bg: #32373f;
|
|
20019
20441
|
--dm-table-stripe-bg: rgba(255, 255, 255, 0.03);
|
|
20020
20442
|
--dm-table-hover-bg: rgba(255, 255, 255, 0.07);
|
|
20021
20443
|
--dm-modal-backdrop: rgba(0, 0, 0, 0.6);
|
|
20022
20444
|
--dm-tooltip-bg: #1f2733;
|
|
20023
20445
|
--dm-tooltip-text: #ffffff;
|
|
20024
|
-
--dm-scrollbar-track: #
|
|
20025
|
-
--dm-scrollbar-thumb: #
|
|
20026
|
-
--dm-scrollbar-thumb-hover: #
|
|
20027
|
-
--dm-code-bg: #
|
|
20446
|
+
--dm-scrollbar-track: #2f343c;
|
|
20447
|
+
--dm-scrollbar-thumb: #494f59;
|
|
20448
|
+
--dm-scrollbar-thumb-hover: #5a616c;
|
|
20449
|
+
--dm-code-bg: #292e36;
|
|
20028
20450
|
--dm-code-text: #ffd9a8;
|
|
20029
|
-
--dm-progress-bg: #
|
|
20451
|
+
--dm-progress-bg: #32373f;
|
|
20030
20452
|
|
|
20031
20453
|
--dm-primary: #2a8178;
|
|
20032
20454
|
--dm-primary-hover: #287d75;
|