@kolkrabbi/kol-component 0.83.0 → 0.84.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-component",
3
- "version": "0.83.0",
3
+ "version": "0.84.0",
4
4
  "description": "KOL design-system components — atoms through organisms, emitting canonical kol-* classes. Pairs with @kolkrabbi/kol-theme for styling.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -20,7 +20,7 @@ import { minHeightClass } from './sectionHeights.js'
20
20
  * `light` / `dark` pinned; omit to inherit. Stamps `data-theme` on the root and
21
21
  * paints its surface — every token inside resolves to the other theme's.
22
22
  * @param {'full'|'80'|'60'|string} [height='60'] min-height on the family's ladder — full = 100dvh,
23
- * 80 = 70svh / 80vh, 60 = 50svh / 60vh (default); content stays vertically centred inside it
23
+ * 80 = 70svh / 80vh, 60 = 50svh / 60vh (default), 40 = 35svh / 40vh; content stays vertically centred inside it
24
24
  * @param {{title, icon, visual, description, href, backgroundColor, imageAspectRatio}[]} features
25
25
  * @param {ReactNode} label · headline · body the header (heading-03 + mono lede by default)
26
26
  * @param {ReactNode} actions centred action row under the cards
@@ -16,7 +16,7 @@ import { minHeightClass } from './sectionHeights.js'
16
16
  * way to render SectionText. FoundryCTA is its deprecated alias.
17
17
  *
18
18
  * @param {'full'|'80'|'60'|string} [height='60'] min-height on the family's ladder — full = 100dvh,
19
- * 80 = 70svh / 80vh, 60 = 50svh / 60vh (default); content stays vertically centred inside it
19
+ * 80 = 70svh / 80vh, 60 = 50svh / 60vh (default), 40 = 35svh / 40vh; content stays vertically centred inside it
20
20
  * @param {'editorial'|'centered'} variant
21
21
  * @param {ReactNode} headline · body · actions centered: the SectionText slots
22
22
  * @param {ReactNode} eyebrow left-column display wordmark (kol-sans-display-01)
@@ -12,7 +12,7 @@ import { minHeightClass } from './sectionHeights.js'
12
12
  * @param {ReactNode} label · headline · body · actions the header (SectionText)
13
13
  * @param {string} [headlineSize='heading-02']
14
14
  * @param {'full'|'80'|'60'|string} [height='60'] min-height on the family's ladder — full = 100dvh,
15
- * 80 = 70svh / 80vh, 60 = 50svh / 60vh (default); content stays vertically centred inside it
15
+ * 80 = 70svh / 80vh, 60 = 50svh / 60vh (default), 40 = 35svh / 40vh; content stays vertically centred inside it
16
16
  * @param {{ q: ReactNode, a: ReactNode, meta?: ReactNode }[]} items
17
17
  * @param {boolean} [singleOpen=false] opening one panel closes the others
18
18
  * @param {number} [defaultOpen] index open on mount (singleOpen) — omit for all closed
@@ -18,6 +18,7 @@ const HEIGHTS = {
18
18
  full: 'h-dvh',
19
19
  80: 'h-[70svh] md:h-[80vh]',
20
20
  60: 'h-[50svh] md:h-[60vh]',
21
+ 40: 'h-[35svh] md:h-[40vh]',
21
22
  screen: 'h-dvh',
22
23
  lg: 'h-[440px] md:h-[640px]',
23
24
  md: 'h-[320px] md:h-[440px]',
@@ -32,6 +33,7 @@ const SPLIT_HEIGHTS = {
32
33
  full: 'min-h-dvh',
33
34
  80: 'min-h-[70svh] md:min-h-[80vh]',
34
35
  60: 'min-h-[50svh] md:min-h-[60vh]',
36
+ 40: 'min-h-[35svh] md:min-h-[40vh]',
35
37
  screen: 'min-h-dvh',
36
38
  lg: 'min-h-dvh',
37
39
  md: 'min-h-[50svh] md:min-h-[60vh]',
@@ -126,7 +128,7 @@ function MediaLayer({ media }) {
126
128
  * {string} titleClassName · descriptionClassName · {Object} options carousel only — FeaturedCarousel's
127
129
  * seams, forwarded whole (SectionHeroCarouselSeams, 2026-08-26: the foundry index sets each
128
130
  * slide's title in the typeface's own font and routes the CTA through the SPA)
129
- * @param {string} height 'full' | '80' | '60' (viewport tiers) · 'lg' | 'md' | 'screen' (aliases) · or a height class string
131
+ * @param {string} height 'full' | '80' | '60' | '40' (viewport tiers) · 'lg' | 'md' | 'screen' (aliases) · or a height class string
130
132
  * @param {ReactNode} label · headline · body · actions the composed text (SectionText)
131
133
  * @param {object} slotClass · slotStyle per-slot class / style, forwarded to SectionText (a consumer's reveal seam)
132
134
  * @param {string} headlineSize role; defaults per variant — media 'display-04', split 'heading-02'
@@ -40,7 +40,7 @@ import { minHeightClass } from './sectionHeights.js'
40
40
  * mutually exclusive in practice — pick one.
41
41
  * @param {'right'|'left'|'center'} [align='right'] media side, or centred single column
42
42
  * @param {'full'|'80'|'60'|string} [height='60'] min-height on the family's ladder — full = 100dvh,
43
- * 80 = 70svh / 80vh, 60 = 50svh / 60vh (default); the columns stay vertically centred inside it
43
+ * 80 = 70svh / 80vh, 60 = 50svh / 60vh (default), 40 = 35svh / 40vh; the columns stay vertically centred inside it
44
44
  * @param {ReactNode} caption mono caption + gradient veil over the media
45
45
  * @param {string} bgImage inline cover background on the section
46
46
  * @param {boolean} fullBleed span the full viewport width
@@ -8,5 +8,8 @@ export const MIN_HEIGHTS = {
8
8
  full: 'min-h-dvh',
9
9
  80: 'min-h-[70svh] md:min-h-[80vh]',
10
10
  60: 'min-h-[50svh] md:min-h-[60vh]',
11
+ /* 40 (SectionHeightForty, 2026-08-27): the rung below 60 for a page-foot
12
+ * CTA or a cards band that wants less air; default stays 60 everywhere */
13
+ 40: 'min-h-[35svh] md:min-h-[40vh]',
11
14
  }
12
15
  export const minHeightClass = (height) => MIN_HEIGHTS[height] || height