@kolkrabbi/kol-component 0.317.1 → 0.317.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.317.1",
3
+ "version": "0.317.2",
4
4
  "description": "The core component library",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -38,7 +38,7 @@
38
38
  "react-dom": "^18.3.0 || ^19.0.0"
39
39
  },
40
40
  "devDependencies": {
41
- "@kolkrabbi/kol-icons": "^0.53.1"
41
+ "@kolkrabbi/kol-icons": "^0.53.2"
42
42
  },
43
43
  "files": [
44
44
  "src",
@@ -266,7 +266,8 @@ function StackedTabs({ tabs, value, onChange, placement, shape = 'bar', collapse
266
266
  }
267
267
 
268
268
  function UnderlineTabs({ tabs, value, onChange, onClose, onMinimise, wrap, size }) {
269
- /* `size="md"` (2026-10-29, the user's ref — Adobe's tab strip): the sans body face, a 20px glyph, a 48px row, 24 between tabs */
269
+ /* `size="md"` (2026-10-29, the user's ref — Adobe's tab strip): the sans body face at medium weight, a 20px glyph at a
270
+ * 2 stroke (`.kol-tab-md`, the theme), a 48px row, 24 between tabs — review 8: *"the problem … was thickness and stroke"* */
270
271
  const md = size === 'md'
271
272
  const listRef = useRef(null)
272
273
  const activeIdx = tabs.findIndex((t) => t.id === value)
@@ -301,7 +302,7 @@ function UnderlineTabs({ tabs, value, onChange, onClose, onMinimise, wrap, size
301
302
  tabIndex={isActive || (activeIdx === -1 && i === 0) ? 0 : -1}
302
303
  onClick={() => onChange?.(t.id)}
303
304
  className={[
304
- `group ${md ? 'kol-sans-body-02 gap-2.5' : 'kol-mono-12 gap-2'} flex items-center cursor-pointer border-b-2`,
305
+ `group ${md ? 'kol-tab-md kol-sans-body-02 font-medium gap-2.5' : 'kol-mono-12 gap-2'} flex items-center cursor-pointer border-b-2`,
305
306
  isActive
306
307
  ? 'text-emphasis border-fg'
307
308
  : 'text-meta hover:text-emphasis border-transparent',
@@ -74,9 +74,8 @@ function ChannelStrip({ ch, hex, hsva, onHsva }) {
74
74
  onKeyDown={(e) => { const d = { ArrowRight: 1, ArrowUp: 1, ArrowLeft: -1, ArrowDown: -1 }[e.key]; if (d) { e.preventDefault(); set(value + d * (e.shiftKey ? 10 : 1)) } }}>
75
75
  <span className="absolute top-1/2 size-4 -translate-x-1/2 -translate-y-1/2 rounded-full" style={{ left: `${pct}%`, boxShadow: '0 0 0 2px #fff, 0 0 0 3px rgba(0,0,0,0.35)', background: hex.slice(0, 7) }} />
76
76
  </div>
77
- <div className="w-14 shrink-0">
78
- <Input size="sm" type="number" value={Math.round(value)} aria-label={`${ch.label ?? ch.key} value`} onChange={(e) => { const v = Number(e.target.value); if (!Number.isNaN(v)) set(v) }} />
79
- </div>
77
+ {/* the box hugs three characters by the Input's own `chars` — a utility width is not guaranteed in every consumer (review 8, ref 81) */}
78
+ <Input size="sm" type="number" chars={3} value={Math.round(value)} aria-label={`${ch.label ?? ch.key} value`} onChange={(e) => { const v = Number(e.target.value); if (!Number.isNaN(v)) set(v) }} />
80
79
  </div>
81
80
  )
82
81
  }
@@ -212,7 +211,7 @@ export default function ColorPickerPopover({ color, onChange, defaultValue, size
212
211
  return hsva && (
213
212
  <div className={`flex w-full flex-col gap-3 ${className}`.trim()}>
214
213
  <div className="flex items-center justify-between gap-3">
215
- <span className="kol-sans-body-02 text-emphasis">{title ?? label}</span>
214
+ <span className="kol-eyebrow text-fg-80">{title ?? label}</span>
216
215
  {modes && <Dropdown variant="nav" size="sm" value={mode} onChange={setMode} options={PICKER_MODES} ariaLabel={`${label} mode`} />}
217
216
  </div>
218
217
  {hexField}