@kolkrabbi/kol-component 0.104.1 → 0.104.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.104.1",
3
+ "version": "0.104.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",
@@ -40,10 +40,10 @@ import IconFrame from '../atoms/IconFrame.jsx'
40
40
  * Look seams — all default to the shipped values, pass nothing and nothing changes:
41
41
  * @param {string} props.titleClassName — header title type/ink
42
42
  * @param {boolean} props.titleUppercase — cases the title (default false)
43
- * @param {string} props.labelClassName — filter-group label type/ink
43
+ * @param {string} props.labelClassName — filter-group label type/ink (default `kol-eyebrow text-fg-96`)
44
44
  * @param {boolean} props.labelUppercase — cases the group label (default true)
45
- * groups: `{ label, key, values, stack?, className?, wrapClassName? }` — columns are equal width by default;
46
- * `stack: true` makes a group hug its chips; `className` / `wrapClassName` are per-group seams
45
+ * groups: `{ label, key, values, stack?, className?, wrapClassName? }` — a short group (≤ 6 values) hugs its chips,
46
+ * a long one flows; `stack` pins either way; `className` / `wrapClassName` are per-group seams
47
47
  * @param {string} props.tagVariant — filter chip variant ('primary' grey fill)
48
48
  * @param {string} props.tagSize — filter chip size
49
49
  * @param {string} props.tagActiveClassName — chip ink, selected
@@ -104,7 +104,10 @@ const ContentFilters = ({
104
104
  * titles wrap can move to `kol-mono-14` without losing the casing. */
105
105
  titleClassName = 'kol-helper-14',
106
106
  titleUppercase = true,
107
- labelClassName = 'kol-helper-12 text-fg-96',
107
+ /* the category label is the EYEBROW role (ContentFiltersEqualColumns, what stood —
108
+ * kol-fxr 2026-08-27: every section / category label in the app tier is
109
+ * kol-eyebrow; the role carries the uppercase) */
110
+ labelClassName = 'kol-eyebrow text-fg-96',
108
111
  labelUppercase = true,
109
112
  tagVariant = 'primary',
110
113
  tagSize = 'sm',
@@ -243,12 +246,11 @@ const ContentFilters = ({
243
246
  ) : null
244
247
 
245
248
  const renderFilterGroup = (group) => {
246
- /* GROUP COLUMNS ARE EQUAL by default (ContentFiltersEqualColumns, kol-fxr
247
- * 2026-08-27 "only the first column is narrow … it's content filters
248
- * everywhere"); `stack: true` is the opt-in for a group that hugs its chips.
249
- * The 0.101 short-group default was a per-page ruling written into the
250
- * organism reverted. */
251
- const stacked = group.stack === true
249
+ /* the FIRST group hugs its chips, the rest flow (the ruled shape — /prints;
250
+ * ContentFiltersEqualColumns was withdrawn 2026-08-27 same day: the "equal
251
+ * columns" ask was a misread). A short group (≤ 6) hugs by default;
252
+ * `stack` pins either way (kol-fxr passes `stack: i === 0`). */
253
+ const stacked = group.stack ?? (group.values?.length ?? 0) <= 6
252
254
  return (
253
255
  <div key={group.key} className={`flex flex-col gap-3 ${stacked ? 'shrink-0' : 'min-w-0 flex-1'} ${group.className ?? ''}`.trim()}>
254
256
  {/* THE CATEGORY LABEL IS THE ACTIVE INK — `kol-helper-12` at `text-fg-96`,
@@ -261,7 +263,7 @@ const ContentFilters = ({
261
263
  * never what anyone looked at. No inline letter-spacing: the helper ramp
262
264
  * carries its own, and the override the fork added was not in the
263
265
  * rendered path either. */}
264
- <h4 className={labelClassName} style={labelUppercase ? { textTransform: 'uppercase' } : undefined}>
266
+ <h4 className={labelClassName} style={labelUppercase && !/\bkol-eyebrow\b/.test(labelClassName) ? { textTransform: 'uppercase' } : undefined}>
265
267
  {group.label}
266
268
  </h4>
267
269
  {/* the fluid group keeps 48px of room on its right (it ran flush to the