@kolkrabbi/kol-component 0.76.0 → 0.76.2

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.76.0",
3
+ "version": "0.76.2",
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",
@@ -27,7 +27,7 @@
27
27
  * @param {string} [gap='gap-4'] inner rhythm (a Tailwind gap step)
28
28
  * @param {ReactNode} children extra slots rendered between body and actions
29
29
  * (the split's stats strip)
30
- * @param {string} labelClass · bodyClass · actionsClass full class overrides
30
+ * @param {string} labelClass · bodyClass · actionsClass full class overrides (label default: the hero's `kol-helper-12 text-meta`)
31
31
  * @param {string} className extra classes on the block
32
32
  */
33
33
  export const HEADLINE_ROLE = {
@@ -54,7 +54,11 @@ export default function SectionText({
54
54
  align = 'start',
55
55
  gap = 'gap-4',
56
56
  children,
57
- labelClass = 'kol-section-text-label',
57
+ /* ONE eyebrow voice across the set (SectionTextLabelVoice, user 2026-08-26:
58
+ * "closer to the hero eyebrow") — the hero's helper-12 / meta, small and
59
+ * quiet, not the split's mono-18 accent kicker. Uppercase stays: that is
60
+ * the eyebrow ROLE (ruled the same day), on `.kol-section-text-eyebrow`. */
61
+ labelClass = 'kol-helper-12 text-meta',
58
62
  bodyClass = 'kol-section-text-body',
59
63
  actionsClass = 'flex flex-wrap gap-4',
60
64
  className = '',
@@ -103,6 +103,10 @@ function MediaLayer({ media }) {
103
103
  * @param {ReactNode} foot a node rendered across the hero's bottom edge
104
104
  * @param {number} overlap how far `foot` rises into the hero, px (default 250)
105
105
  * @param {boolean} autoPlay · {number} autoPlayInterval · {'stack'|'header'} navPosition carousel only
106
+ * @param {Function} renderTitle · {string} ctaLabel · {Function} onNavigate · {boolean} showTitle · showDescription · showCta ·
107
+ * {string} titleClassName · descriptionClassName · {Object} options carousel only — FeaturedCarousel's
108
+ * seams, forwarded whole (SectionHeroCarouselSeams, 2026-08-26: the foundry index sets each
109
+ * slide's title in the typeface's own font and routes the CTA through the SPA)
106
110
  * @param {string} height 'full' | '80' | '60' (viewport tiers) · 'lg' | 'md' | 'screen' (aliases) · or a height class string
107
111
  * @param {ReactNode} label · headline · body · actions the composed text (SectionText)
108
112
  * @param {string} [headlineSize='display-04']
@@ -129,6 +133,15 @@ export default function SectionHero({
129
133
  autoPlay = false,
130
134
  autoPlayInterval = 5000,
131
135
  navPosition = 'stack',
136
+ renderTitle,
137
+ ctaLabel,
138
+ onNavigate,
139
+ showTitle,
140
+ showDescription,
141
+ showCta,
142
+ titleClassName,
143
+ descriptionClassName,
144
+ options,
132
145
  height = 'lg',
133
146
  label,
134
147
  headline,
@@ -163,7 +176,6 @@ export default function SectionHero({
163
176
  actions={actions}
164
177
  align="center"
165
178
  gap="gap-6"
166
- labelClass="kol-helper-12 text-meta"
167
179
  bodyClass="kol-sans-body-02 text-body"
168
180
  actionsClass="flex flex-wrap gap-4 justify-center"
169
181
  className="max-w-[var(--kol-content-column)]"
@@ -205,6 +217,7 @@ export default function SectionHero({
205
217
  autoPlay={autoPlay}
206
218
  autoPlayInterval={autoPlayInterval}
207
219
  navPosition={navPosition}
220
+ {...Object.fromEntries(Object.entries({ renderTitle, ctaLabel, onNavigate, showTitle, showDescription, showCta, titleClassName, descriptionClassName, options }).filter(([, v]) => v !== undefined))}
208
221
  className={`kol-section-hero-carousel ${fullBleed ? 'w-screen ml-[calc(50%-50vw)]' : ''} ${className}`.replace(/\s+/g, ' ').trim()}
209
222
  >
210
223
  {children}
@@ -223,7 +236,6 @@ export default function SectionHero({
223
236
  /* gap-6 — the rhythm every hand-built OverlayGlassPanel hero ran on,
224
237
  * so the composed route lands on the same pixels */
225
238
  gap="gap-6"
226
- labelClass="kol-helper-12 text-meta"
227
239
  bodyClass="kol-sans-body-02 text-body"
228
240
  actionsClass={`flex flex-wrap gap-4${align === 'center' ? ' justify-center' : ''}`}
229
241
  className={media == null ? `${panelMaxWidth} mx-auto` : ''}