@kolkrabbi/kol-component 0.194.0 → 0.195.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.194.0",
3
+ "version": "0.195.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",
@@ -357,9 +357,37 @@ export function MediaLibraryBrowse({
357
357
  onSettings={() => setSettingsOpen(true)} />
358
358
 
359
359
  <div className="flex flex-col gap-3">
360
- {/* Breadcrumb (uppercase, active segment at full ink) · folder-view toggle */}
360
+ {/* Breadcrumb (uppercase, active segment at full ink) · folder-view toggle
361
+ *
362
+ * AT 390 THIS ROW FAILED (ColumnBrowserStackMode items 3 + 7, kol-r2b2
363
+ * 2026-09-03, measured on a live site): breadcrumb, the folder-view
364
+ * toggle and the ROW·COLUMN pair share one `justify-between` line with
365
+ * no wrap or collapse rule, so the crumbs wrapped to two lines and
366
+ * `COLUMN` was cut off. Below `md` the crumb becomes ONE middle-elided
367
+ * path line and the toggles collapse into the settings drawer — where
368
+ * both already live, so nothing new was minted to hold them. Both
369
+ * references (iOS Files, Dropbox) put these behind a `···` too. */}
361
370
  <div className="flex items-center justify-between gap-4">
362
- <div className="flex items-center gap-2 kol-mono-12">
371
+ {/* the elided line — first segment, an ellipsis for anything between,
372
+ * and the current one. Below `md` only. */}
373
+ <div className="flex md:hidden items-center gap-2 kol-mono-12 min-w-0">
374
+ <button className={crumbCls(appRoot)} onClick={() => { setAppRoot(true); setPickedFile(null); setPrefix('') }}>{ROOT}</button>
375
+ {!appRoot && bucketMeta.id && crumbs.length > 1 && (
376
+ <><span className="text-oq-32">/</span><span className="text-oq-32">…</span></>
377
+ )}
378
+ {!appRoot && bucketMeta.id && (
379
+ <span className="flex items-center gap-2 min-w-0">
380
+ <span className="text-oq-32">/</span>
381
+ <button
382
+ className={`${crumbCls(true)} truncate`}
383
+ onClick={() => setPrefix(crumbs.length ? crumbs.join('/') + '/' : '')}
384
+ >
385
+ {(crumbs[crumbs.length - 1] ?? label).toUpperCase()}
386
+ </button>
387
+ </span>
388
+ )}
389
+ </div>
390
+ <div className="hidden md:flex items-center gap-2 kol-mono-12">
363
391
  <button className={crumbCls(appRoot)} onClick={() => { setAppRoot(true); setPickedFile(null); setPrefix('') }}>{ROOT}</button>
364
392
  {!appRoot && bucketMeta.id && (
365
393
  <span className="flex items-center gap-2">
@@ -381,7 +409,10 @@ export function MediaLibraryBrowse({
381
409
  <span className="flex items-center gap-2"><span className="text-oq-32">/</span><span className="text-oq-96">{pickedFile.key.slice(prefix.length).toUpperCase()}</span></span>
382
410
  )}
383
411
  </div>
384
- <div className="flex items-center gap-6">
412
+ {/* the control cluster is desktop-only — below `md` these two toggles
413
+ * are the same setting the drawer already carries, and nothing in
414
+ * this row survives 390 */}
415
+ <div className="hidden md:flex items-center gap-6">
385
416
  <ViewToggle viewMode={folderView} onViewChange={(v) => setSettings({ ...settings, folderView: v })} variant="icon" options={FOLDER_VIEW_OPTIONS} />
386
417
  <Divider variant="vertical" />
387
418
  <div className="flex items-center gap-4">