@poodle64/ui 2026.9.12 → 2026.9.14

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.
@@ -789,14 +789,14 @@
789
789
 
790
790
  {#if onSearch && searchPlacement === 'leading'}
791
791
  {@render searchButton(
792
- 'h-9 w-9 flex-none justify-center px-0 sm:h-auto sm:w-[clamp(200px,32vw,560px)] sm:flex-1 sm:justify-start sm:gap-2 sm:px-3 sm:py-1.5'
792
+ 'h-9 w-9 flex-none justify-center px-0 sm:h-auto sm:w-[clamp(200px,24vw,420px)] sm:flex-1 sm:justify-start sm:gap-2 sm:px-3 sm:py-1.5'
793
793
  )}
794
794
  {/if}
795
795
 
796
796
  <div class="ml-auto flex flex-none items-center gap-2 sm:gap-3">
797
797
  {#if onSearch && searchPlacement === 'trailing'}
798
798
  {@render searchButton(
799
- 'h-9 w-9 flex-none justify-center px-0 sm:h-auto sm:w-[clamp(200px,32vw,560px)] sm:justify-start sm:gap-2 sm:px-3 sm:py-1.5'
799
+ 'h-9 w-9 flex-none justify-center px-0 sm:h-auto sm:w-[clamp(180px,18vw,300px)] sm:justify-start sm:gap-2 sm:px-3 sm:py-1.5'
800
800
  )}
801
801
  {/if}
802
802
 
package/dist/styles.css CHANGED
@@ -777,6 +777,13 @@
777
777
  lands its label at 2.5rem, exactly under the parent's. The border is a real
778
778
  affordance at fifteen rows, not decoration: it is what makes the run
779
779
  scannable as one section. */
780
+ /* The disclosed rows carry no guide rule. Indentation and the children's own
781
+ icons already read as one group, and a line down the side is a second
782
+ signal for a grouping that was never ambiguous. The indent is still
783
+ measured against the parent's geometry rather than picked: `.ds-nav-item`
784
+ pads 0.625rem and the icon is 1.125rem, so 1.1875rem plus 0.625rem here
785
+ plus the child's own 0.625rem lands its label at 2.5rem, exactly under the
786
+ parent's. */
780
787
  .ds-nav-children {
781
788
  display: flex;
782
789
  flex-direction: column;
@@ -784,32 +791,35 @@
784
791
  margin-top: 0.125rem;
785
792
  margin-left: 1.1875rem;
786
793
  padding-left: 0.625rem;
787
- /* Derived from the nav's OWN ink, not `--border`. The rail is chrome the
788
- app may brand, and a page-surface border token cannot follow it there:
789
- on a branded rail the grey lands at 1.54:1 and reads as a dead scratch
790
- down the colour. At 50% of the chrome's ink the guide measures 3.10:1
791
- on that same rail — over the 3:1 floor it owes as a real affordance,
792
- and still a step quieter than the child labels it organises. */
793
- border-left: 1px solid color-mix(in oklch, var(--ds-nav-ink) 50%, transparent);
794
794
  }
795
795
 
796
796
  /* The rail's foot: where you configure the app, and which build you are on.
797
797
  Separated from the scrolling section list by a rule in the chrome's OWN
798
798
  ink rather than `--border`, for the reason the group guide takes the same
799
799
  treatment — a page-surface token cannot follow chrome an app has branded. */
800
+ /* `padding-inline` matches `.ds-nav`'s own `px-3`, because the foot sits
801
+ OUTSIDE that wrapper: without it the Settings row's icon lands 0.75rem
802
+ left of every icon above it and the rail reads as two lists. */
800
803
  .ds-shell-rail-foot {
801
804
  display: flex;
802
805
  flex-direction: column;
803
- padding-top: 0.375rem;
806
+ padding-block: 0.375rem 0.75rem;
807
+ padding-inline: 0.75rem;
804
808
  border-top: 1px solid color-mix(in oklch, var(--ds-nav-ink) 22%, transparent);
805
809
  }
806
810
 
807
811
  /* Metadata, not a row. No icon, no tile, no hover: it answers "what am I
808
812
  running" when someone reports a bug and otherwise stays out of the way.
809
813
  `tabular-nums` so a version does not re-flow as the digits change. */
814
+ /* Below Settings, on the rail's bottom edge, so the rail OPENS with the app's
815
+ name and CLOSES with its build — identity at both ends, the action between
816
+ them. Above Settings would put metadata before the thing people click.
817
+ `padding-inline` matches `.ds-nav-item`'s own, so it starts on the same
818
+ vertical as the icons rather than the labels: it is a line of metadata,
819
+ not a row missing its icon. */
810
820
  .ds-shell-version {
811
821
  margin: 0;
812
- padding: 0.25rem 0.75rem 0.375rem;
822
+ padding: 0.25rem 0.625rem 0;
813
823
  color: var(--ds-nav-ink-muted);
814
824
  font-size: var(--ds-text-2xs);
815
825
  font-variant-numeric: tabular-nums;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@poodle64/ui",
3
- "version": "2026.9.12",
3
+ "version": "2026.9.14",
4
4
  "description": "Household shared component layer: shadcn-svelte primitives (bits-ui) plus the composed page chrome every app builds its routes from, restyled by each app's @poodle64/design-tokens alias layer. One fix reaches every app.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "meta": {
3
3
  "package": "@poodle64/ui",
4
- "version": "2026.9.12",
4
+ "version": "2026.9.14",
5
5
  "generatedBy": "scripts/generate-registry.mjs",
6
6
  "source": "scripts/situations.json + package source (DO NOT EDIT the outputs by hand)",
7
7
  "componentCount": 57,
@@ -1,7 +1,7 @@
1
1
  # @poodle64/ui — situation → component map
2
2
 
3
3
  <!-- GENERATED by scripts/generate-registry.mjs from scripts/situations.json + package source. DO NOT EDIT. -->
4
- Generated from `@poodle64/ui@2026.9.12`. 57 components, 15 situations.
4
+ Generated from `@poodle64/ui@2026.9.14`. 57 components, 15 situations.
5
5
 
6
6
  **Read this before writing a `<div>`.** Find the SITUATION you are in below, then compose the component named for it — do not hand-build it from raw `Card` or utility classes. Import is `import { Name } from '<import path>'`. Props marked `?` are optional. This map is the retrieval step the [`frontend-design` skill] makes mandatory; the [CHI 2026 study] measured composing-from-a-registry at 95% design-system compliance against 71% for writing the CSS from a prose style guide.
7
7