@kerfjs/ui 5.0.0-beta.84 → 5.0.0-beta.85
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.
|
@@ -625,7 +625,8 @@
|
|
|
625
625
|
"A pane boundary needs an opt-in separator on any combination of logical sides.",
|
|
626
626
|
"Pinned chrome needs a divider from the scrolling content only while content is scrolled beneath it (wireScrollDividers).",
|
|
627
627
|
"A lowered background must cover the scrolling work viewport and blank space after short content without a second scroll container (appearance: sunken).",
|
|
628
|
-
"A child table or other component needs edge-to-edge decoration with text aligned to other pane content."
|
|
628
|
+
"A child table or other component needs edge-to-edge decoration with text aligned to other pane content.",
|
|
629
|
+
"An opaque edge-to-edge child needs a reserved vertical scrollbar gutter."
|
|
629
630
|
],
|
|
630
631
|
"avoidWhen": [
|
|
631
632
|
"Do not use Pane as a padded card or add a competing scroll owner around its content slot.",
|
|
@@ -647,6 +648,7 @@
|
|
|
647
648
|
"responsive placement and visibility",
|
|
648
649
|
"whether the chrome dividers follow the scroll, always show, or never show (chromeDividers)",
|
|
649
650
|
"default or sunken scrolling work surface (appearance)",
|
|
651
|
+
"whether to reserve a vertical scrollbar gutter for opaque edge-to-edge content (--kui-pane-scrollbar-gutter)",
|
|
650
652
|
"optional keyboard or programmatic focus (tabIndex) and persistent focus outline (outlined)"
|
|
651
653
|
],
|
|
652
654
|
"variants": [
|
|
@@ -672,7 +674,8 @@
|
|
|
672
674
|
"The pane is unpadded; separators are independently opt-in on logical edges and default off.",
|
|
673
675
|
"Safe areas: the root and separators paint through unsafe areas while header, content, and footer pad the sides the pane still reaches (routed by --kui-edge-inset-*); content block insets are scroll padding.",
|
|
674
676
|
"The scrolling content exposes its resolved logical inline padding to descendants as --kui-pane-content-inset-inline-start/end, including safe areas and deepInset.",
|
|
675
|
-
"deepInset adds --kui-space-xs to every side of the scrolling content and its block scroll padding; header/footer chrome still owns safe-area padding at its edge."
|
|
677
|
+
"deepInset adds --kui-space-xs to every side of the scrolling content and its block scroll padding; header/footer chrome still owns safe-area padding at its edge.",
|
|
678
|
+
"For opaque edge-to-edge children, --kui-pane-scrollbar-gutter: stable reserves a vertical scrollbar gutter outside the published content insets; the default is auto."
|
|
676
679
|
]
|
|
677
680
|
},
|
|
678
681
|
"delivery": {
|
|
@@ -718,6 +721,7 @@
|
|
|
718
721
|
"--kui-pane-chrome-background",
|
|
719
722
|
"--kui-pane-content-inset-inline-start",
|
|
720
723
|
"--kui-pane-content-inset-inline-end",
|
|
724
|
+
"--kui-pane-scrollbar-gutter",
|
|
721
725
|
"--kui-sunken-panel-background"
|
|
722
726
|
],
|
|
723
727
|
"links": {
|
|
@@ -613,6 +613,11 @@
|
|
|
613
613
|
"owner": "application",
|
|
614
614
|
"required": false
|
|
615
615
|
},
|
|
616
|
+
{
|
|
617
|
+
"id": "whether to reserve a vertical scrollbar gutter for opaque edge-to-edge content (--kui-pane-scrollbar-gutter)",
|
|
618
|
+
"owner": "application",
|
|
619
|
+
"required": false
|
|
620
|
+
},
|
|
616
621
|
{
|
|
617
622
|
"id": "optional keyboard or programmatic focus (tabIndex) and persistent focus outline (outlined)",
|
|
618
623
|
"owner": "application",
|
|
@@ -649,7 +654,8 @@
|
|
|
649
654
|
"The pane is unpadded; separators are independently opt-in on logical edges and default off.",
|
|
650
655
|
"Safe areas: the root and separators paint through unsafe areas while header, content, and footer pad the sides the pane still reaches (routed by --kui-edge-inset-*); content block insets are scroll padding.",
|
|
651
656
|
"The scrolling content exposes its resolved logical inline padding to descendants as --kui-pane-content-inset-inline-start/end, including safe areas and deepInset.",
|
|
652
|
-
"deepInset adds --kui-space-xs to every side of the scrolling content and its block scroll padding; header/footer chrome still owns safe-area padding at its edge."
|
|
657
|
+
"deepInset adds --kui-space-xs to every side of the scrolling content and its block scroll padding; header/footer chrome still owns safe-area padding at its edge.",
|
|
658
|
+
"For opaque edge-to-edge children, --kui-pane-scrollbar-gutter: stable reserves a vertical scrollbar gutter outside the published content insets; the default is auto."
|
|
653
659
|
]
|
|
654
660
|
}
|
|
655
661
|
},
|
|
@@ -679,6 +685,7 @@
|
|
|
679
685
|
"--kui-pane-chrome-background",
|
|
680
686
|
"--kui-pane-content-inset-inline-start",
|
|
681
687
|
"--kui-pane-content-inset-inline-end",
|
|
688
|
+
"--kui-pane-scrollbar-gutter",
|
|
682
689
|
"--kui-sunken-panel-background"
|
|
683
690
|
]
|
|
684
691
|
},
|
package/ai/components/pane.md
CHANGED
|
@@ -15,6 +15,7 @@ Organize a sidebar, main area, inspector, or dialog column into fixed vertical h
|
|
|
15
15
|
- Pinned chrome needs a divider from the scrolling content only while content is scrolled beneath it (wireScrollDividers).
|
|
16
16
|
- A lowered background must cover the scrolling work viewport and blank space after short content without a second scroll container (appearance: sunken).
|
|
17
17
|
- A child table or other component needs edge-to-edge decoration with text aligned to other pane content.
|
|
18
|
+
- An opaque edge-to-edge child needs a reserved vertical scrollbar gutter.
|
|
18
19
|
|
|
19
20
|
**Not when:**
|
|
20
21
|
|
|
@@ -62,7 +63,7 @@ Zones (a zone is bound to JSX only through its listed prop; never assume the zon
|
|
|
62
63
|
|
|
63
64
|
## State and wiring
|
|
64
65
|
|
|
65
|
-
**The app owns:** root and content semantics; accessible labels; header, content, and footer children; which logical boundaries show separators; which sides may compensate for device safe areas in an app-owned arrangement (safeAreaEdges); responsive placement and visibility; whether the chrome dividers follow the scroll, always show, or never show (chromeDividers); default or sunken scrolling work surface (appearance); optional keyboard or programmatic focus (tabIndex) and persistent focus outline (outlined).
|
|
66
|
+
**The app owns:** root and content semantics; accessible labels; header, content, and footer children; which logical boundaries show separators; which sides may compensate for device safe areas in an app-owned arrangement (safeAreaEdges); responsive placement and visibility; whether the chrome dividers follow the scroll, always show, or never show (chromeDividers); default or sunken scrolling work surface (appearance); whether to reserve a vertical scrollbar gutter for opaque edge-to-edge content (--kui-pane-scrollbar-gutter); optional keyboard or programmatic focus (tabIndex) and persistent focus outline (outlined).
|
|
66
67
|
|
|
67
68
|
**Wiring:** `wireScrollDividers` is optional.
|
|
68
69
|
|
|
@@ -79,6 +80,7 @@ Margin: child · border: conditional · padding: child (layout role: structure).
|
|
|
79
80
|
- Safe areas: the root and separators paint through unsafe areas while header, content, and footer pad the sides the pane still reaches (routed by --kui-edge-inset-\*); content block insets are scroll padding.
|
|
80
81
|
- The scrolling content exposes its resolved logical inline padding to descendants as --kui-pane-content-inset-inline-start/end, including safe areas and deepInset.
|
|
81
82
|
- deepInset adds --kui-space-xs to every side of the scrolling content and its block scroll padding; header/footer chrome still owns safe-area padding at its edge.
|
|
83
|
+
- For opaque edge-to-edge children, --kui-pane-scrollbar-gutter: stable reserves a vertical scrollbar gutter outside the published content insets; the default is auto.
|
|
82
84
|
|
|
83
85
|
## Accessibility
|
|
84
86
|
|
|
@@ -93,7 +95,7 @@ Public class hooks (select for layout placement only, never to change the compon
|
|
|
93
95
|
|
|
94
96
|
Never put `kui-pane`, `kui-pane__content`, `kui-pane__footer`, `kui-pane__header`, `kui-pane__toolbar` on an element you write; render `Pane` instead (`KUI-L103`).
|
|
95
97
|
|
|
96
|
-
Public tokens it reads: `--kui-edge-inset-block-end`, `--kui-edge-inset-block-start`, `--kui-edge-inset-inline-end`, `--kui-edge-inset-inline-start`, `--kui-pane-separator-color`, `--kui-pane-separator-width`, `--kui-pane-chrome-background`, `--kui-pane-content-inset-inline-start`, `--kui-pane-content-inset-inline-end`, `--kui-sunken-panel-background`. Set a token only where its public contract allows; prefer a prop.
|
|
98
|
+
Public tokens it reads: `--kui-edge-inset-block-end`, `--kui-edge-inset-block-start`, `--kui-edge-inset-inline-end`, `--kui-edge-inset-inline-start`, `--kui-pane-separator-color`, `--kui-pane-separator-width`, `--kui-pane-chrome-background`, `--kui-pane-content-inset-inline-start`, `--kui-pane-content-inset-inline-end`, `--kui-pane-scrollbar-gutter`, `--kui-sunken-panel-background`. Set a token only where its public contract allows; prefer a prop.
|
|
97
99
|
|
|
98
100
|
Everything else is internal: `kerf-ui-analyze` reports private or unknown `.kui-*` selectors (`KUI-L001`, `KUI-L010`), unknown or private tokens (`KUI-L002`, `KUI-L012`), and any application rule that restyles the component, forced dimensions included (`KUI-L019`).
|
|
99
101
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Public API signatures for the UI authoring corpus
|
|
2
2
|
|
|
3
|
-
Generated from emitted declarations for `@kerfjs/ui@5.0.0-beta.
|
|
3
|
+
Generated from emitted declarations for `@kerfjs/ui@5.0.0-beta.85` and `kerfjs@5.0.0-beta.85`. This bounded reference covers only APIs used by the seven-task corpus. It is interface evidence, not an implementation or runtime guarantee.
|
|
4
4
|
|
|
5
5
|
## `@kerfjs/ui/css-values`
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Web Awesome JSX signatures for the UI authoring corpus
|
|
2
2
|
|
|
3
|
-
Generated from the emitted `@kerfjs/ui@5.0.0-beta.
|
|
3
|
+
Generated from the emitted `@kerfjs/ui@5.0.0-beta.85` declaration boundary. Import `@kerfjs/ui/webawesome` for type effects when authoring direct `wa-*` JSX. The module emits no runtime behavior and does not register custom elements.
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
6
|
import { KerfCustomElement } from 'kerfjs/jsx-runtime';
|