@wpmoo/ui 1.0.0 → 1.1.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/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.0.0/THIRD_PARTY_NOTICES.md).
17
+ [version-pinned third-party notices](https://github.com/wpmoo-org/ui/blob/v1.1.0/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
@@ -59,6 +59,9 @@ head before this stylesheet loads.
59
59
 
60
60
  ## Install
61
61
 
62
+ Local development candidates use separate tarballs. Public install and license
63
+ links refer to the published stable release.
64
+
62
65
  ```bash
63
66
  npm install @wpmoo/ui bootstrap
64
67
  ```
@@ -191,7 +194,9 @@ calm.
191
194
 
192
195
  ## Status And Support
193
196
 
194
- The stable public-contract release is `1.0.0`. Component certification remains
197
+ The stable public-contract release is `1.1.0`. It adds a shared Table of
198
+ Contents component, description-only Alerts and compatible navigation fixes
199
+ while preserving the 1.0.0 package contract. Component certification remains
195
200
  `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/).
196
201
  Complete release notes are on
197
202
  [GitHub Releases](https://github.com/wpmoo-org/ui/releases).
@@ -217,4 +222,4 @@ The published `LICENSE` also retains the full MIT notices for bundled
217
222
  Chart.js and `@kurkle/color`.
218
223
  Asset terms live in [ASSET_LICENSE.md](ASSET_LICENSE.md); dependency notices
219
224
  live in the
220
- [version-pinned third-party notices](https://github.com/wpmoo-org/ui/blob/v1.0.0/THIRD_PARTY_NOTICES.md).
225
+ [version-pinned third-party notices](https://github.com/wpmoo-org/ui/blob/v1.1.0/THIRD_PARTY_NOTICES.md).
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "0.1",
3
3
  "status": "preview",
4
- "coreVersion": "1.0.0",
4
+ "coreVersion": "1.1.0",
5
5
  "bootstrap": {
6
6
  "canonicalVersion": "5.3.3",
7
7
  "targetRange": ">=5.3.0 <5.4",
@@ -28,6 +28,8 @@
28
28
  "./context-menu.js",
29
29
  "./datatable.js",
30
30
  "./slider.js",
31
+ "./toc.js",
32
+ "./table-of-contents.js",
31
33
  "./sheet.js",
32
34
  "./chart.js",
33
35
  "./chart.min.js",
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Moo UI v1.0.0 (https://wpmoo.org/)
2
+ * Moo UI v1.1.0 (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
  *
@@ -13724,6 +13724,53 @@ label.btn {
13724
13724
  border-color: var(--moo-primary);
13725
13725
  }
13726
13726
 
13727
+ /* Table of contents */
13728
+ [data-toc] > .fw-semibold {
13729
+ padding-inline-start: calc(0.75rem - var(--bs-border-width));
13730
+ }
13731
+ [data-toc]:has(> .nav) {
13732
+ position: relative;
13733
+ border-inline-start: calc(var(--bs-border-width) * 0.5) solid var(--bs-border-color);
13734
+ }
13735
+ [data-toc][data-toc-marker]::after {
13736
+ content: "";
13737
+ position: absolute;
13738
+ inset-block-start: 0;
13739
+ inset-inline-start: calc(var(--bs-border-width) * -1);
13740
+ block-size: var(--moo-toc-marker-height);
13741
+ border-inline-start: calc(var(--bs-border-width) * 3) solid var(--moo-primary);
13742
+ transform: translateY(var(--moo-toc-marker-offset));
13743
+ pointer-events: none;
13744
+ transition: all 0.2s ease-in-out;
13745
+ }
13746
+ @media (prefers-reduced-motion: reduce) {
13747
+ [data-toc][data-toc-marker]::after {
13748
+ transition: none;
13749
+ }
13750
+ }
13751
+ [data-toc] > .nav .nav-link {
13752
+ display: flex;
13753
+ position: relative;
13754
+ margin-inline-start: calc(var(--bs-border-width) * -1);
13755
+ color: var(--moo-muted-foreground);
13756
+ }
13757
+ [data-toc] > .nav .nav-link::before {
13758
+ content: "";
13759
+ position: absolute;
13760
+ inset-block: var(--bs-nav-link-padding-y);
13761
+ inset-inline-start: 0;
13762
+ border-inline-start: calc(var(--bs-border-width) * 3) solid transparent;
13763
+ }
13764
+ [data-toc] > .nav .nav-link.active {
13765
+ color: var(--moo-foreground);
13766
+ }
13767
+ [data-toc] > .nav .nav-link.active::before {
13768
+ border-inline-start-color: var(--moo-primary);
13769
+ }
13770
+ [data-toc][data-toc-marker] > .nav .nav-link.active::before {
13771
+ border-inline-start-color: transparent;
13772
+ }
13773
+
13727
13774
  /* Skeleton */
13728
13775
  .skeleton {
13729
13776
  color: var(--moo-border);
@@ -16922,6 +16969,14 @@ label.btn {
16922
16969
  --moo-scroll-fade-e: var(--moo-scroll-fade-e-size);
16923
16970
  }
16924
16971
  }
16972
+ .scroll-smooth {
16973
+ scroll-behavior: smooth;
16974
+ }
16975
+ @media (prefers-reduced-motion: reduce) {
16976
+ .scroll-smooth {
16977
+ scroll-behavior: auto;
16978
+ }
16979
+ }
16925
16980
 
16926
16981
  /* Application layout */
16927
16982
  .sidebar {
@@ -16956,9 +17011,6 @@ label.btn {
16956
17011
  background: transparent;
16957
17012
  transition: background 0.15s ease;
16958
17013
  }
16959
- .sidebar-rail:hover::after {
16960
- background: var(--moo-sidebar-border);
16961
- }
16962
17014
  .wrapper[data-layout="app"][data-shell-mode="contained"] .sidebar-inner {
16963
17015
  position: relative;
16964
17016
  height: 100%;