@wpmoo/ui 1.3.0 → 1.4.1
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/ASSET_LICENSE.md +1 -1
- package/README.md +28 -4
- package/certification.json +2 -1
- package/dist/assets/css/moo-ui.css +159 -14
- package/dist/assets/css/moo-ui.min.css +2 -2
- package/dist/assets/css/moo.css +147 -2
- package/dist/assets/css/moo.min.css +2 -2
- package/dist/js/chart.js +1 -1
- package/dist/js/chart.min.js +1 -1
- package/dist/js/combobox.js +1 -1
- package/dist/js/context-menu.js +1 -1
- package/dist/js/datatable.js +1 -1
- package/dist/js/datepicker.js +3 -1
- package/dist/js/datepicker.min.js +2 -2
- package/dist/js/moo-ui.js +306 -1
- package/dist/js/moo-ui.min.js +2 -2
- package/dist/js/overlay-scrollbar.js +308 -0
- package/dist/js/sheet.js +1 -1
- package/dist/js/sidebar.js +1 -1
- package/dist/js/slider.js +1 -1
- package/dist/js/state.js +1 -1
- package/dist/js/table-of-contents.js +1 -1
- package/dist/js/toc.js +1 -1
- package/dist/release-manifest.json +4 -4
- package/package.json +3 -1
- package/scss/components/_datepicker.scss +5 -0
- package/scss/components/_field.scss +3 -0
- package/scss/components/_select.scss +4 -0
- package/scss/foundations/_globals.scss +1 -0
- package/scss/foundations/_scope.scss +2 -0
- package/scss/mixins/_banner.scss +1 -1
- package/scss/moo-core.scss +2 -0
- package/scss/moo-ui.scss +3 -0
- package/scss/settings/_component_variables.scss +2 -0
- package/scss/settings/_forms.scss +1 -1
- package/scss/utilities/_overlay_scrollbar.scss +68 -0
- package/scss/utilities/_overlay_scrollbar_native.scss +1 -0
- package/scss/utilities/_text_alignment.scss +29 -0
package/ASSET_LICENSE.md
CHANGED
|
@@ -14,6 +14,6 @@ product, site, template, library, training dataset, or marketing asset without
|
|
|
14
14
|
prior written permission from WPMoo.
|
|
15
15
|
|
|
16
16
|
Third-party assets remain under their own licenses. See the
|
|
17
|
-
[version-pinned third-party notices](https://github.com/wpmoo-org/ui/blob/v1.
|
|
17
|
+
[version-pinned third-party notices](https://github.com/wpmoo-org/ui/blob/v1.4.1/THIRD_PARTY_NOTICES.md).
|
|
18
18
|
Those notices are repository-only and are intentionally not shipped in the npm
|
|
19
19
|
package.
|
package/README.md
CHANGED
|
@@ -168,6 +168,29 @@ import { initSheets } from "@wpmoo/ui/sheet.js";
|
|
|
168
168
|
initSheets(document);
|
|
169
169
|
```
|
|
170
170
|
|
|
171
|
+
For an opt-in document overlay scrollbar, load the stylesheet first and pass
|
|
172
|
+
the resolved page theme owner explicitly:
|
|
173
|
+
|
|
174
|
+
```js
|
|
175
|
+
import OverlayScrollbar from "@wpmoo/ui/overlay-scrollbar.js";
|
|
176
|
+
const scrollbar = OverlayScrollbar.getOrCreateInstance(document.querySelector(".moo-ui"), {
|
|
177
|
+
label: "Page scroll position", // supply a localized accessible name
|
|
178
|
+
hideDelay: 900,
|
|
179
|
+
});
|
|
180
|
+
// scrollbar.refresh(); // after host geometry changes
|
|
181
|
+
// scrollbar.dispose(); // restore the native scrollbar
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
The module preserves native document/touch/wheel scrolling. Its thin thumb
|
|
185
|
+
appears while scrolling, near the trailing mouse edge or on keyboard focus;
|
|
186
|
+
show/hide never reserves a layout gutter. Initial activation removes any native
|
|
187
|
+
gutter. By default it controls the standards-mode document. Pass
|
|
188
|
+
`scrollElement: element` for an existing native scrolling region belonging to
|
|
189
|
+
the same theme owner; the catalog uses this for its Page main region. There is
|
|
190
|
+
one instance per scroll target, without replacing or wrapping that target.
|
|
191
|
+
Printing, forced colors and horizontal overflow use the
|
|
192
|
+
native scrollbar instead. It does not initialize merely by importing the module.
|
|
193
|
+
|
|
171
194
|
## Why Teams Try It
|
|
172
195
|
|
|
173
196
|
- Keep server-rendered HTML, Bootstrap classes, and familiar plugin behavior.
|
|
@@ -194,9 +217,10 @@ calm.
|
|
|
194
217
|
|
|
195
218
|
## Status And Support
|
|
196
219
|
|
|
197
|
-
The `1.
|
|
198
|
-
|
|
199
|
-
|
|
220
|
+
The `1.4.1` patch release target aligns nested Field labels and readable empty
|
|
221
|
+
prompts across form controls, with normal-weight Date Picker values. Native
|
|
222
|
+
selection, validation, disabled states and the 1.4.0 package API remain intact.
|
|
223
|
+
Component certification remains
|
|
200
224
|
`preview`, with its documented manual and browser/device limits. Public exports, package boundaries, browser support, and release evidence live in [Support & Evidence](https://ui.wpmoo.org/support/).
|
|
201
225
|
Complete release notes are on
|
|
202
226
|
[GitHub Releases](https://github.com/wpmoo-org/ui/releases).
|
|
@@ -222,4 +246,4 @@ The published `LICENSE` also retains the full MIT notices for bundled
|
|
|
222
246
|
Chart.js and `@kurkle/color`.
|
|
223
247
|
Asset terms live in [ASSET_LICENSE.md](ASSET_LICENSE.md); dependency notices
|
|
224
248
|
live in the
|
|
225
|
-
[version-pinned third-party notices](https://github.com/wpmoo-org/ui/blob/v1.
|
|
249
|
+
[version-pinned third-party notices](https://github.com/wpmoo-org/ui/blob/v1.4.1/THIRD_PARTY_NOTICES.md).
|
package/certification.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "0.1",
|
|
3
3
|
"status": "preview",
|
|
4
|
-
"coreVersion": "1.
|
|
4
|
+
"coreVersion": "1.4.1",
|
|
5
5
|
"bootstrap": {
|
|
6
6
|
"canonicalVersion": "5.3.3",
|
|
7
7
|
"targetRange": ">=5.3.0 <5.4",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"./datatable.js",
|
|
30
30
|
"./slider.js",
|
|
31
31
|
"./toc.js",
|
|
32
|
+
"./overlay-scrollbar.js",
|
|
32
33
|
"./table-of-contents.js",
|
|
33
34
|
"./sheet.js",
|
|
34
35
|
"./chart.js",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Moo UI v1.
|
|
2
|
+
* Moo UI v1.4.1 (https://wpmoo.org/)
|
|
3
3
|
* Copyright 2026 WPMoo Authors
|
|
4
4
|
* Licensed under MIT (https://github.com/wpmoo-org/ui/blob/main/LICENSE)
|
|
5
5
|
*
|
|
@@ -5624,11 +5624,11 @@ progress {
|
|
|
5624
5624
|
}
|
|
5625
5625
|
|
|
5626
5626
|
.text-start {
|
|
5627
|
-
text-align:
|
|
5627
|
+
text-align: start !important;
|
|
5628
5628
|
}
|
|
5629
5629
|
|
|
5630
5630
|
.text-end {
|
|
5631
|
-
text-align:
|
|
5631
|
+
text-align: end !important;
|
|
5632
5632
|
}
|
|
5633
5633
|
|
|
5634
5634
|
.text-center {
|
|
@@ -6900,10 +6900,10 @@ progress {
|
|
|
6900
6900
|
column-gap: 3rem !important;
|
|
6901
6901
|
}
|
|
6902
6902
|
.text-sm-start {
|
|
6903
|
-
text-align:
|
|
6903
|
+
text-align: start !important;
|
|
6904
6904
|
}
|
|
6905
6905
|
.text-sm-end {
|
|
6906
|
-
text-align:
|
|
6906
|
+
text-align: end !important;
|
|
6907
6907
|
}
|
|
6908
6908
|
.text-sm-center {
|
|
6909
6909
|
text-align: center !important;
|
|
@@ -7451,10 +7451,10 @@ progress {
|
|
|
7451
7451
|
column-gap: 3rem !important;
|
|
7452
7452
|
}
|
|
7453
7453
|
.text-md-start {
|
|
7454
|
-
text-align:
|
|
7454
|
+
text-align: start !important;
|
|
7455
7455
|
}
|
|
7456
7456
|
.text-md-end {
|
|
7457
|
-
text-align:
|
|
7457
|
+
text-align: end !important;
|
|
7458
7458
|
}
|
|
7459
7459
|
.text-md-center {
|
|
7460
7460
|
text-align: center !important;
|
|
@@ -8002,10 +8002,10 @@ progress {
|
|
|
8002
8002
|
column-gap: 3rem !important;
|
|
8003
8003
|
}
|
|
8004
8004
|
.text-lg-start {
|
|
8005
|
-
text-align:
|
|
8005
|
+
text-align: start !important;
|
|
8006
8006
|
}
|
|
8007
8007
|
.text-lg-end {
|
|
8008
|
-
text-align:
|
|
8008
|
+
text-align: end !important;
|
|
8009
8009
|
}
|
|
8010
8010
|
.text-lg-center {
|
|
8011
8011
|
text-align: center !important;
|
|
@@ -8553,10 +8553,10 @@ progress {
|
|
|
8553
8553
|
column-gap: 3rem !important;
|
|
8554
8554
|
}
|
|
8555
8555
|
.text-xl-start {
|
|
8556
|
-
text-align:
|
|
8556
|
+
text-align: start !important;
|
|
8557
8557
|
}
|
|
8558
8558
|
.text-xl-end {
|
|
8559
|
-
text-align:
|
|
8559
|
+
text-align: end !important;
|
|
8560
8560
|
}
|
|
8561
8561
|
.text-xl-center {
|
|
8562
8562
|
text-align: center !important;
|
|
@@ -9104,10 +9104,10 @@ progress {
|
|
|
9104
9104
|
column-gap: 3rem !important;
|
|
9105
9105
|
}
|
|
9106
9106
|
.text-xxl-start {
|
|
9107
|
-
text-align:
|
|
9107
|
+
text-align: start !important;
|
|
9108
9108
|
}
|
|
9109
9109
|
.text-xxl-end {
|
|
9110
|
-
text-align:
|
|
9110
|
+
text-align: end !important;
|
|
9111
9111
|
}
|
|
9112
9112
|
.text-xxl-center {
|
|
9113
9113
|
text-align: center !important;
|
|
@@ -9225,6 +9225,23 @@ progress {
|
|
|
9225
9225
|
}
|
|
9226
9226
|
}
|
|
9227
9227
|
|
|
9228
|
+
html.scrollbar-overlay-native {
|
|
9229
|
+
scrollbar-width: none;
|
|
9230
|
+
}
|
|
9231
|
+
|
|
9232
|
+
html.scrollbar-overlay-native::-webkit-scrollbar {
|
|
9233
|
+
display: none;
|
|
9234
|
+
}
|
|
9235
|
+
|
|
9236
|
+
@media print, (forced-colors: active) {
|
|
9237
|
+
html.scrollbar-overlay-native {
|
|
9238
|
+
scrollbar-width: auto !important;
|
|
9239
|
+
}
|
|
9240
|
+
html.scrollbar-overlay-native::-webkit-scrollbar {
|
|
9241
|
+
display: revert !important;
|
|
9242
|
+
}
|
|
9243
|
+
}
|
|
9244
|
+
|
|
9228
9245
|
@keyframes moo-overlay-backdrop-enter {
|
|
9229
9246
|
from {
|
|
9230
9247
|
opacity: 0;
|
|
@@ -9588,7 +9605,7 @@ progress {
|
|
|
9588
9605
|
padding: 0;
|
|
9589
9606
|
}
|
|
9590
9607
|
.form-control::placeholder {
|
|
9591
|
-
color: var(--bs-
|
|
9608
|
+
color: var(--bs-secondary-color);
|
|
9592
9609
|
opacity: 1;
|
|
9593
9610
|
}
|
|
9594
9611
|
.form-control:disabled {
|
|
@@ -12744,6 +12761,9 @@ progress {
|
|
|
12744
12761
|
}
|
|
12745
12762
|
|
|
12746
12763
|
/* Select */
|
|
12764
|
+
.form-select:not(:disabled):not([multiple]):is(:not([size]), [size="1"]):has(option[data-placeholder="true"]:checked) {
|
|
12765
|
+
color: var(--bs-secondary-color);
|
|
12766
|
+
}
|
|
12747
12767
|
.form-select option,
|
|
12748
12768
|
.form-select optgroup {
|
|
12749
12769
|
color: var(--bs-body-color);
|
|
@@ -15348,6 +15368,8 @@ label.btn {
|
|
|
15348
15368
|
}
|
|
15349
15369
|
.field > .form-label {
|
|
15350
15370
|
margin-bottom: 0;
|
|
15371
|
+
}
|
|
15372
|
+
.field .form-label {
|
|
15351
15373
|
font-weight: 500;
|
|
15352
15374
|
}
|
|
15353
15375
|
.field[data-invalid="true"] {
|
|
@@ -15426,6 +15448,7 @@ label.btn {
|
|
|
15426
15448
|
max-width: var(--moo-datepicker-width);
|
|
15427
15449
|
}
|
|
15428
15450
|
.moo-datepicker__trigger {
|
|
15451
|
+
--bs-btn-font-weight: 400;
|
|
15429
15452
|
width: 100%;
|
|
15430
15453
|
justify-content: flex-start;
|
|
15431
15454
|
text-align: start;
|
|
@@ -15435,6 +15458,9 @@ label.btn {
|
|
|
15435
15458
|
overflow: hidden;
|
|
15436
15459
|
text-overflow: ellipsis;
|
|
15437
15460
|
}
|
|
15461
|
+
.moo-datepicker__trigger:not(:disabled):not(.is-invalid):not(:hover, :active, :focus-visible, [aria-expanded="true"]) [data-datepicker-empty="true"] {
|
|
15462
|
+
color: var(--bs-secondary-color);
|
|
15463
|
+
}
|
|
15438
15464
|
.moo-datepicker__trigger.is-invalid {
|
|
15439
15465
|
border-color: var(--bs-form-invalid-border-color);
|
|
15440
15466
|
color: var(--bs-form-invalid-color);
|
|
@@ -16879,6 +16905,70 @@ label.btn {
|
|
|
16879
16905
|
.border-dashed {
|
|
16880
16906
|
border-style: dashed !important;
|
|
16881
16907
|
}
|
|
16908
|
+
.text-start {
|
|
16909
|
+
text-align: start !important;
|
|
16910
|
+
}
|
|
16911
|
+
.text-end {
|
|
16912
|
+
text-align: end !important;
|
|
16913
|
+
}
|
|
16914
|
+
.text-center {
|
|
16915
|
+
text-align: center !important;
|
|
16916
|
+
}
|
|
16917
|
+
@media (min-width: 576px) {
|
|
16918
|
+
.text-sm-start {
|
|
16919
|
+
text-align: start !important;
|
|
16920
|
+
}
|
|
16921
|
+
.text-sm-end {
|
|
16922
|
+
text-align: end !important;
|
|
16923
|
+
}
|
|
16924
|
+
.text-sm-center {
|
|
16925
|
+
text-align: center !important;
|
|
16926
|
+
}
|
|
16927
|
+
}
|
|
16928
|
+
@media (min-width: 768px) {
|
|
16929
|
+
.text-md-start {
|
|
16930
|
+
text-align: start !important;
|
|
16931
|
+
}
|
|
16932
|
+
.text-md-end {
|
|
16933
|
+
text-align: end !important;
|
|
16934
|
+
}
|
|
16935
|
+
.text-md-center {
|
|
16936
|
+
text-align: center !important;
|
|
16937
|
+
}
|
|
16938
|
+
}
|
|
16939
|
+
@media (min-width: 992px) {
|
|
16940
|
+
.text-lg-start {
|
|
16941
|
+
text-align: start !important;
|
|
16942
|
+
}
|
|
16943
|
+
.text-lg-end {
|
|
16944
|
+
text-align: end !important;
|
|
16945
|
+
}
|
|
16946
|
+
.text-lg-center {
|
|
16947
|
+
text-align: center !important;
|
|
16948
|
+
}
|
|
16949
|
+
}
|
|
16950
|
+
@media (min-width: 1200px) {
|
|
16951
|
+
.text-xl-start {
|
|
16952
|
+
text-align: start !important;
|
|
16953
|
+
}
|
|
16954
|
+
.text-xl-end {
|
|
16955
|
+
text-align: end !important;
|
|
16956
|
+
}
|
|
16957
|
+
.text-xl-center {
|
|
16958
|
+
text-align: center !important;
|
|
16959
|
+
}
|
|
16960
|
+
}
|
|
16961
|
+
@media (min-width: 1400px) {
|
|
16962
|
+
.text-xxl-start {
|
|
16963
|
+
text-align: start !important;
|
|
16964
|
+
}
|
|
16965
|
+
.text-xxl-end {
|
|
16966
|
+
text-align: end !important;
|
|
16967
|
+
}
|
|
16968
|
+
.text-xxl-center {
|
|
16969
|
+
text-align: center !important;
|
|
16970
|
+
}
|
|
16971
|
+
}
|
|
16882
16972
|
:where( .scroll-fade, .scroll-fade-y, .scroll-fade-x, .scroll-fade-t, .scroll-fade-b, .scroll-fade-l, .scroll-fade-r, .scroll-fade-s, .scroll-fade-e ) {
|
|
16883
16973
|
--scroll-fade-size: min(12%, 2.5rem);
|
|
16884
16974
|
--scroll-fade-reveal: 6rem;
|
|
@@ -17047,6 +17137,61 @@ label.btn {
|
|
|
17047
17137
|
--moo-scroll-fade-e: var(--moo-scroll-fade-e-size);
|
|
17048
17138
|
}
|
|
17049
17139
|
}
|
|
17140
|
+
.scrollbar-overlay-native {
|
|
17141
|
+
scrollbar-width: none;
|
|
17142
|
+
}
|
|
17143
|
+
.scrollbar-overlay-native::-webkit-scrollbar {
|
|
17144
|
+
display: none;
|
|
17145
|
+
}
|
|
17146
|
+
@media print, (forced-colors: active) {
|
|
17147
|
+
.scrollbar-overlay-native {
|
|
17148
|
+
scrollbar-width: auto !important;
|
|
17149
|
+
}
|
|
17150
|
+
.scrollbar-overlay-native::-webkit-scrollbar {
|
|
17151
|
+
display: revert !important;
|
|
17152
|
+
}
|
|
17153
|
+
}
|
|
17154
|
+
.scrollbar-overlay {
|
|
17155
|
+
--moo-scrollbar-overlay-hit-size: 1.5rem;
|
|
17156
|
+
--moo-scrollbar-overlay-thumb-size: 0.375rem;
|
|
17157
|
+
position: fixed;
|
|
17158
|
+
inset-block: 0;
|
|
17159
|
+
inset-inline-end: 0;
|
|
17160
|
+
z-index: 1030;
|
|
17161
|
+
inline-size: var(--moo-scrollbar-overlay-hit-size);
|
|
17162
|
+
color: var(--bs-secondary-color);
|
|
17163
|
+
opacity: 0;
|
|
17164
|
+
pointer-events: none;
|
|
17165
|
+
touch-action: none;
|
|
17166
|
+
transition: opacity 0.15s linear;
|
|
17167
|
+
}
|
|
17168
|
+
@media (prefers-reduced-motion: reduce) {
|
|
17169
|
+
.scrollbar-overlay {
|
|
17170
|
+
transition: none;
|
|
17171
|
+
}
|
|
17172
|
+
}
|
|
17173
|
+
.scrollbar-overlay[data-scrollbar-visible="true"], .scrollbar-overlay:focus-visible {
|
|
17174
|
+
opacity: 1;
|
|
17175
|
+
}
|
|
17176
|
+
.scrollbar-overlay[data-scrollbar-interactive="true"], .scrollbar-overlay:focus-visible {
|
|
17177
|
+
pointer-events: auto;
|
|
17178
|
+
}
|
|
17179
|
+
.scrollbar-overlay:hover, .scrollbar-overlay:focus-visible {
|
|
17180
|
+
color: var(--bs-emphasis-color);
|
|
17181
|
+
}
|
|
17182
|
+
.scrollbar-overlay-thumb {
|
|
17183
|
+
position: absolute;
|
|
17184
|
+
inset-block-start: 0;
|
|
17185
|
+
inset-inline-end: 0.25rem;
|
|
17186
|
+
inline-size: var(--moo-scrollbar-overlay-thumb-size);
|
|
17187
|
+
background-color: currentColor;
|
|
17188
|
+
border-radius: var(--bs-border-radius-pill);
|
|
17189
|
+
}
|
|
17190
|
+
@media print, (forced-colors: active) {
|
|
17191
|
+
.scrollbar-overlay {
|
|
17192
|
+
display: none !important;
|
|
17193
|
+
}
|
|
17194
|
+
}
|
|
17050
17195
|
.scroll-smooth {
|
|
17051
17196
|
scroll-behavior: smooth;
|
|
17052
17197
|
}
|