@kerfjs/ui 5.0.0-beta.88 → 5.0.0-beta.89

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.
@@ -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.88` and `kerfjs@5.0.0-beta.88`. This bounded reference covers only APIs used by the seven-task corpus. It is interface evidence, not an implementation or runtime guarantee.
3
+ Generated from emitted declarations for `@kerfjs/ui@5.0.0-beta.89` and `kerfjs@5.0.0-beta.89`. 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
 
package/ai/skill.md CHANGED
@@ -64,6 +64,11 @@ backdrop. See `../docs/webawesome-theme.md#contextual-transparency`.
64
64
  This is the rule every Kerf UI surface follows, and applications and
65
65
  component packages built on Kerf UI must follow it too:
66
66
 
67
+ `Catalog` owns its preview stage in every package: its shipped styles fill the
68
+ Pane scroller for short specimens and grow for tall ones. Import its browser
69
+ styles or companion CSS; never add a demo-specific stage height, backdrop, or
70
+ Pane override to imitate the Kerf UI UX demo.
71
+
67
72
  - **A component styles only itself.** Change how a component looks or sits
68
73
  through its typed props and data attributes (size, density, inset,
69
74
  presentation, tone, `dividerSides`, `ToolbarConfig`, `PaneConfig`, …). Never
@@ -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.88` 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.
3
+ Generated from the emitted `@kerfjs/ui@5.0.0-beta.89` 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';
@@ -3,6 +3,7 @@
3
3
  sunken Pane's translucent surface instead of painting a second layer. */
4
4
  .kui-catalog__stage {
5
5
  flex: 1 0 auto;
6
+ min-height: 100%;
6
7
  background-color: transparent;
7
8
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%238e8e93' fill-opacity='.12' d='M0 0h8v8H0zM8 8h8v8H8z'/%3E%3C/svg%3E");
8
9
  background-size: 1rem 1rem;
package/docs/catalog.md CHANGED
@@ -187,9 +187,14 @@ The app owns entry ids, `kind`, routing, sources, relationships, and test hooks.
187
187
  `Catalog.stageRootAttributes` places app-owned `data-*` state on the
188
188
  catalog-owned preview stage without an extra wrapper; `data-catalog-stage`
189
189
  remains protected.
190
- The stage is the main Pane's direct scrolling content, owns an 8px inset, and
191
- grows with tall specimens. The main Pane keeps its sunken appearance without a
192
- deep inset.
190
+ The stage is the main Pane's direct scrolling content and fills its available
191
+ scroller height for short specimens, so every backdrop reaches the pane's bottom.
192
+ It grows with tall specimens and scrolls without clipping. The canvas owns the
193
+ 16px inset; the main Pane keeps its sunken appearance without a deep inset. The
194
+ Catalog's shipped CSS supplies this behavior in this package's UX demo and in
195
+ other packages' demos. Consumers should import `@kerfjs/ui/catalog` with its
196
+ browser styles (or the companion CSS subpath for manual CSS pipelines) rather
197
+ than styling Pane or stage internals.
193
198
  The helpers own their structural markers, label/note anatomy, alignment marker,
194
199
  and private classes. Component metadata such as margin/border/padding ownership
195
200
  lives in `component-catalog.json`.
package/docs/ux-demo.md CHANGED
@@ -28,7 +28,7 @@ deterministic state, and semantic layout owners from the [recipe guide](./recipe
28
28
  - `ai/component-catalog.json` is the canonical catalog metadata. A deterministic checked-in projection supplies the demo's unique id, category, kind (`component`, `composition`, or `recipe`), source (`kerf` or `webawesome`), name, description, recommendation, direct `uses` dependencies, existing documentation path, and demo-source path; first-party, recipe, and Web Awesome renderer maps are exhaustively typed against its generated id unions. Functional groups follow their authored importance order; components precede compositions inside each group, equal-importance entries use alphabetical order, and the Recipes group comes last. Composition names stay concise and project a visible `Composition` sidebar tag. Non-supported Web Awesome recommendations project to a visible `Discouraged` tag, with Popup as the deliberate conditional exception. Demo paths resolve to the matching `ui/ux-demo/demos/<id>.tsx` or `ui/ux-demo/recipes/*.tsx` file, or to `ui/ux-demo/webawesome-demos.tsx` for Web Awesome entries. `ui/ux-demo/main.tsx` owns only the catalog shell, shared state, routing, and interaction wiring. First-party component entries additionally derive `ui/src/<public-subpath>.tsx` from their canonical `delivery.browserImport` or opt-in `delivery.moduleImport`.
29
29
  - Every detail footer groups compact `Demo source` and `Guidance` actions; first-party component details also expose `Component source`. Web Awesome details say `Integration guidance` to distinguish the local integration contract from the upstream component implementation. Each button retains its repository-relative path in the DOM for verification and uses a deploy-safe absolute GitHub blob URL with a contextual new-tab name; the demo does not depend on a local source server or add a package runtime export. At phone widths, the resource group and related-component selector stack as full-width rows, with any resource overflow contained locally so labels cannot overlap the selector or widen the document.
30
30
  - The master/detail shell groups first-party routes by category with production `ListHeader` and `ListItem` components. Catalog entries can supply short reusable trailing tags; the Web Awesome projection uses them to label exactly the 15 discouraged choices. The 70 ecosystem components live in a separate `Web Awesome` disclosure with seven subgroups, so they remain discoverable without being presented as first-class `@kerfjs/ui` exports. Direct Web Awesome routes open the disclosure and reveal the selected row at wide sizes; narrow layouts keep the expanded list in document flow rather than introducing a competing nested scroller.
31
- - The shell itself uses `@kerfjs/ui/layout.css`: sidebars, details, previews, dialogs, and resize specimens share unpadded panes plus self-contained content items. Its sidebar identity uses the Kerf logo beside a vertically centered title, with supporting copy in its own aligned row; the current-view heading is also a toolbar. The shared Catalog sidebar includes a filter for entry and heading names that works across first-party and ecosystem sections, including collapsed sections. Collapsing the catalog removes the pane completely and moves its restore action to the main toolbar's leading edge instead of leaving an icon-only rail. The selected view description remains inset below the page toolbar. The preview stage sits directly in the sunken main Pane, with its canvas padded by the medium spacing token. The checkerboard belongs to that stage, rather than a viewport-height wrapper or nested card, and one explicitly repeated SVG tile keeps the pattern continuous through below-fold content. A lightly separated footer keeps live status above compact source, guidance, and relationship groups. The focused `ResizableRegion` specimen stretches its surface through the available stage height and reports committed width in that shared status footer; narrow layouts retain local horizontal access when the pane is resized wider than the stage, and the split remains readable at 200% root scaling. Geometry coverage checks wide, intermediate, narrow, and 200% zoom layouts.
31
+ - The shell itself uses `@kerfjs/ui/layout.css`: sidebars, details, previews, dialogs, and resize specimens share unpadded panes plus self-contained content items. Its sidebar identity uses the Kerf logo beside a vertically centered title, with supporting copy in its own aligned row; the current-view heading is also a toolbar. The shared Catalog sidebar includes a filter for entry and heading names that works across first-party and ecosystem sections, including collapsed sections. Collapsing the catalog removes the pane completely and moves its restore action to the main toolbar's leading edge instead of leaving an icon-only rail. The selected view description remains inset below the page toolbar. The preview stage sits directly in the sunken main Pane, with its canvas padded by the medium spacing token. The stage fills the preview scroller for short specimens and grows with taller ones; every background choice follows that same shared behavior in this demo and in consumers. The checkerboard belongs to that stage, rather than a viewport-height wrapper or nested card, and one explicitly repeated SVG tile keeps the pattern continuous through below-fold content. A lightly separated footer keeps live status above compact source, guidance, and relationship groups. The focused `ResizableRegion` specimen stretches its surface through the available stage height and reports committed width in that shared status footer; narrow layouts retain local horizontal access when the pane is resized wider than the stage, and the split remains readable at 200% root scaling. Geometry coverage checks wide, intermediate, narrow, and 200% zoom layouts.
32
32
  - The composer-form recipe demonstrates one coherent visible form surface with toolbar title/supporting-copy hierarchy, fields and actions on the shared 8px control gutter, and 24px major rhythm. Its conditional error or success `StateBanner` is the only nested semantic surface. Reset synchronizes the upgraded Web Awesome fields' live value properties with their empty controlled attributes and announces `Draft reset`; browser coverage preserves behavior and verifies wide, narrow, dark, validation, success, reset, 200% zoom, and forced-colors states.
33
33
  - The list-detail dialog recipe is laid out like a `Workbench` on roomy devices: a headerless `DialogSurface` modal whose `SplitView` holds a full-height list sidebar `Pane` with its own toolbar beside a full-height detail `Pane` that carries the primary xl title, the `data-dialog="close"` control, and the record actions in its footer. Compact devices get a full-screen sheet with its own labeled header, footer actions, and a list-to-detail drill-down. Browser geometry coverage protects those relationships at wide and narrow widths.
34
34
  - Catalog-only brand marks, preview dimensions, checkerboard tiles, and the compound display-settings control retain local geometry because they are specimen chrome or intrinsic control anatomy rather than reusable application spacing roles.
package/llms.txt CHANGED
@@ -566,7 +566,10 @@ shell, `@kerfjs/ui/collapsible-panel` (`CollapsiblePanel`, `CollapsiblePanelTogg
566
566
  `wireCatalog` callbacks instead of recreating their toolbar markup, while your
567
567
  app owns applying and persisting preferences. For any Catalog demo, follow
568
568
  the [authoritative authoring contract](./docs/catalog.md#catalog-demo-authoring-contract)
569
- rather than inferring structure from the shell or private CSS.
569
+ rather than inferring structure from the shell or private CSS. The shipped
570
+ Catalog stage fills the preview scroller for short specimens and grows with
571
+ tall ones in every consumer; do not add a demo-specific height or backdrop
572
+ override.
570
573
  `@kerfjs/ui/webawesome` is a
571
574
  type-only boundary for `wa-*` JSX; `@kerfjs/ui/select/register` and the CSS are the
572
575
  declared side effects.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kerfjs/ui",
3
- "version": "5.0.0-beta.88",
3
+ "version": "5.0.0-beta.89",
4
4
  "description": "Accessible, composable UI primitives for kerf applications.",
5
5
  "type": "module",
6
6
  "license": "MIT",