cursedbelt 5.74.0 → 5.74.1

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.
Files changed (31) hide show
  1. package/dist/react/components/Page.d.ts.map +1 -1
  2. package/dist/react/components/Page.js +10 -1
  3. package/dist/react/components/Page.js.map +1 -1
  4. package/dist/react/media/DenseGalleryShell.d.ts.map +1 -1
  5. package/dist/react/media/DenseGalleryShell.js +73 -9
  6. package/dist/react/media/DenseGalleryShell.js.map +1 -1
  7. package/dist/react/media/HoverScrubVideoThumb.d.ts +11 -9
  8. package/dist/react/media/HoverScrubVideoThumb.d.ts.map +1 -1
  9. package/dist/react/media/HoverScrubVideoThumb.js +98 -25
  10. package/dist/react/media/HoverScrubVideoThumb.js.map +1 -1
  11. package/dist/react/media/denseGallery.css +103 -7
  12. package/dist/react/media-gallery/GalleryTable.js +7 -9
  13. package/dist/react/media-gallery/GalleryTable.js.map +1 -1
  14. package/dist/react/media-gallery/MediaGallery.d.ts.map +1 -1
  15. package/dist/react/media-gallery/MediaGallery.js +19 -7
  16. package/dist/react/media-gallery/MediaGallery.js.map +1 -1
  17. package/dist/react/media-gallery/playbackPreferences.d.ts +2 -2
  18. package/dist/react/media-gallery/playbackPreferences.js +2 -2
  19. package/dist/styles-areas/core.css +8 -6
  20. package/dist/styles-utilities.css +8 -0
  21. package/package.json +1 -1
  22. package/src/react/components/Page.tsx +11 -1
  23. package/src/react/media/DenseGalleryShell.tsx +90 -6
  24. package/src/react/media/HoverScrubVideoThumb.spec.tsx +82 -0
  25. package/src/react/media/HoverScrubVideoThumb.tsx +116 -28
  26. package/src/react/media/denseGallery.css +103 -7
  27. package/src/react/media-gallery/GalleryTable.tsx +7 -9
  28. package/src/react/media-gallery/MediaGallery.tsx +18 -7
  29. package/src/react/media-gallery/playbackPreferences.ts +2 -2
  30. package/src/styles-areas/core.css +8 -6
  31. package/src/styles-utilities.css +8 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/react/components/Page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,SAAS,EAAiD,MAAM,OAAO,CAAC;AAM1H;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,cAAc,CAAC,+BAEvE;AAED;;;GAGG;AACH,QAAA,MAAM,UAAU;IACd,qDAAqD;;;;;IAErD,6DAA6D;;;;;IAE7D,yEAAyE;;;;;IAEzE,0EAA0E;;;;;CAElE,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,UAAU,CAAC;AAEhD;;;iDAGiD;AACjD,eAAO,MAAM,eAAe,kCAAuB,CAAC;AAEpD,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACxE;uDACmD;IACnD,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED;sEACsE;AACtE,wBAAgB,aAAa,CAAC,EAAE,KAAmB,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,kBAAkB,+BAYzF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,cAAc,CAAC,+BAWjF;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,iFAAiF;IACjF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;gEAC4D;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;yEAGqE;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;uFAEmF;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;mEAE+D;IAC/D,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,KAAK,EACL,KAAa,EACb,aAAoB,EACpB,MAAc,EACd,KAAS,EACT,SAAS,GACV,EAAE,eAAe,+BAqCjB"}
1
+ {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/react/components/Page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,SAAS,EAAiD,MAAM,OAAO,CAAC;AAM1H;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,cAAc,CAAC,+BAEvE;AAED;;;GAGG;AACH,QAAA,MAAM,UAAU;IACd,qDAAqD;;;;;IAErD,6DAA6D;;;;;IAE7D,yEAAyE;;;;;IAEzE,0EAA0E;;;;;CAElE,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,UAAU,CAAC;AAEhD;;;iDAGiD;AACjD,eAAO,MAAM,eAAe,kCAAuB,CAAC;AAEpD,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACxE;uDACmD;IACnD,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED;sEACsE;AACtE,wBAAgB,aAAa,CAAC,EAAE,KAAmB,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,kBAAkB,+BAYzF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,cAAc,CAAC,+BAWjF;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,iFAAiF;IACjF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;gEAC4D;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;yEAGqE;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;uFAEmF;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;mEAE+D;IAC/D,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,KAAK,EACL,KAAa,EACb,aAAoB,EACpB,MAAc,EACd,KAAS,EACT,SAAS,GACV,EAAE,eAAe,+BA0CjB"}
@@ -56,6 +56,10 @@ export function PageContainer({ width = 'dashboard', className, ...p }) {
56
56
  export function ReadableColumn({ className, ...p }) {
57
57
  return (_jsx("div", { "data-cb-readable": '', "data-cb-page-width": '800', className: cn('mx-auto w-full max-w-[var(--reading-width)]', className), ...p }));
58
58
  }
59
+ /** Under a phone held sideways (`orientation: landscape` and at most 500px tall) — literal
60
+ * class strings, because Tailwind's scanner reads them out of the source. */
61
+ const SHORT_LANDSCAPE_PAD = '[@media(orientation:landscape)_and_(max-height:500px)]:py-1.5';
62
+ const SHORT_LANDSCAPE_TITLE = '[@media(orientation:landscape)_and_(max-height:500px)]:text-h3';
59
63
  /**
60
64
  * The page title row: an `<h1>` (fluid `text-h1`) + optional subtitle, with metric
61
65
  * pills (`meta`) beside the title and optional actions pushed to the trailing edge.
@@ -68,7 +72,12 @@ export function PageHeader({ title, subtitle, meta, actions, guide, dense = fals
68
72
  return (_jsxs(Split, { className: cn(
69
73
  // Wrap on narrow screens so the actions drop below the title instead of
70
74
  // pushing off-viewport (phone-overflow bug class).
71
- 'flex-wrap gap-y-2 border-b border-border', dense ? 'px-0 py-2' : inContainer ? 'px-0 pb-4' : 'px-4 py-4 sm:px-6 lg:px-8', sticky && 'sticky top-0 z-20 bg-background/90 backdrop-blur-md', className), children: [_jsxs("div", { className: 'min-w-0', children: [_jsxs("div", { className: 'flex min-w-0 flex-wrap items-baseline gap-x-3 gap-y-1', children: [_jsx(Heading, { className: cn('font-bold tracking-tight text-foreground', dense ? 'text-h3' : 'text-h1', !titleOnMobile && 'hidden sm:block'), children: title }), meta && _jsx("span", { className: 'flex flex-wrap items-center gap-1.5', children: meta })] }), subtitle && _jsx(PageSubtitle, { dense: dense, children: subtitle })] }), (actions || guide) && (_jsxs("div", { className: 'flex items-center gap-2', children: [guide ? _jsx(PageGuideButton, { children: guide }) : null, actions] }))] }));
75
+ 'flex-wrap gap-y-2 border-b border-border', dense ? 'px-0 py-2' : inContainer ? 'px-0 pb-4' : 'px-4 py-4 sm:px-6 lg:px-8',
76
+ // 🔴 A phone on its side is ~340px tall under Safari's bars, and a roomy page header
77
+ // took a quarter of it. Owner, 2026-10-10, collections on an iPhone: *"landscape view
78
+ // has the scrollable content area too short … the outer rows should be much shorter."*
79
+ // One tight line there: the same title, at h3 scale (below).
80
+ !dense && SHORT_LANDSCAPE_PAD, sticky && 'sticky top-0 z-20 bg-background/90 backdrop-blur-md', className), children: [_jsxs("div", { className: 'min-w-0', children: [_jsxs("div", { className: 'flex min-w-0 flex-wrap items-baseline gap-x-3 gap-y-1', children: [_jsx(Heading, { className: cn('font-bold tracking-tight text-foreground', dense ? 'text-h3' : cn('text-h1', SHORT_LANDSCAPE_TITLE), !titleOnMobile && 'hidden sm:block'), children: title }), meta && _jsx("span", { className: 'flex flex-wrap items-center gap-1.5', children: meta })] }), subtitle && _jsx(PageSubtitle, { dense: dense, children: subtitle })] }), (actions || guide) && (_jsxs("div", { className: 'flex items-center gap-2', children: [guide ? _jsx(PageGuideButton, { children: guide }) : null, actions] }))] }));
72
81
  }
73
82
  /**
74
83
  * The subtitle's one line. Measured, not guessed: when the text is wider than the line it
@@ -1 +1 @@
1
- {"version":3,"file":"Page.js","sourceRoot":"","sources":["../../../src/react/components/Page.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Page.js","sourceRoot":"","sources":["../../../src/react/components/Page.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DenseGalleryShell.d.ts","sourceRoot":"","sources":["../../../src/react/media/DenseGalleryShell.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DenseGalleryShell.d.ts","sourceRoot":"","sources":["../../../src/react/media/DenseGalleryShell.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import './denseGallery.css';
3
- import { ChevronLeft, ChevronRight, Maximize2, Minimize2 } from 'lucide-react';
4
- import { useCallback, useEffect, useState, } from 'react';
3
+ import { ChevronDown, ChevronLeft, ChevronRight, ChevronUp, Maximize2, Minimize2 } from 'lucide-react';
4
+ import { useCallback, useEffect, useId, useLayoutEffect, useState, } from 'react';
5
5
  import { VirtualMediaGrid } from './VirtualMediaGrid.js';
6
6
  import { Tooltip } from '../components/Tooltip.js';
7
7
  import { MediaResizeBar, MediaResizeCorner, useMediaResize } from './MediaResize.js';
@@ -142,16 +142,34 @@ rowExtraHeight, fullStage: fullStageProp, onFullStageChange, stageOwnsDoubleClic
142
142
  */
143
143
  const top = watchEl.querySelector('.cbgd-watch-top');
144
144
  const frame = watchEl.querySelector('.cbgd-watch-player-box');
145
- const chromePx = top && frame
146
- ? Math.round(top.getBoundingClientRect().height - frame.getBoundingClientRect().height)
147
- : gripPx;
145
+ /*
146
+ * 🔴 A phone on its SIDE puts the titlebar BESIDE the frame (`--cbgd-stage-beside`, set by
147
+ * `denseGallery.css`'s short-landscape block), so nothing of the chrome is under the
148
+ * picture: only the region's own padding is. Measuring the region there would be a loop —
149
+ * the titlebar's column is whatever width the frame leaves it, so its height depends on
150
+ * the frame's — and the stylesheet's share (`--cbgd-stage-share`) is the whole height.
151
+ */
152
+ const style = getComputedStyle(watchEl);
153
+ const beside = style.getPropertyValue('--cbgd-stage-beside').trim() === '1';
154
+ const shareVar = Number.parseFloat(style.getPropertyValue('--cbgd-stage-share'));
155
+ const share = Number.isFinite(shareVar) && shareVar > 0 ? shareVar : STAGE_SHARE;
156
+ const topStyle = top ? getComputedStyle(top) : null;
157
+ const chromePx = beside
158
+ ? Math.round(Number.parseFloat(topStyle?.paddingTop ?? '0') + Number.parseFloat(topStyle?.paddingBottom ?? '0'))
159
+ : top && frame
160
+ ? Math.round(top.getBoundingClientRect().height - frame.getBoundingClientRect().height)
161
+ : gripPx;
148
162
  // A ternary rather than `Math.max`, deliberately: `denseGallery.layout.spec.ts` asserts
149
163
  // the fit expression contains no `max(` — the CSS `min()` there may never become a
150
164
  // `max()`, because a rule that can GROW the stage tracks the content it is measuring
151
165
  // and chases itself. That guard reads the source text, so the JS clamp is written in a
152
166
  // form that cannot be mistaken for the thing it forbids.
153
- const usable = available > chromePx ? available - chromePx : 0;
154
- const fit = `min(${Math.round(usable * STAGE_SHARE)}px, var(--cbgd-stage-default))`;
167
+ // Beside, the frame is measured against the SCROLLER itself: its parent also holds the
168
+ // app's page header, and the whole point is that the picture fits the scroller's height.
169
+ // Loop-free — the scroller's box is its parent's layout, not its content's.
170
+ const room = beside ? watchEl.clientHeight : available;
171
+ const usable = room > chromePx ? room - chromePx : 0;
172
+ const fit = `min(${Math.round(usable * share)}px, var(--cbgd-stage-default))`;
155
173
  if (fit === last)
156
174
  return;
157
175
  last = fit;
@@ -263,6 +281,52 @@ rowExtraHeight, fullStage: fullStageProp, onFullStageChange, stageOwnsDoubleClic
263
281
  frameEl,
264
282
  });
265
283
  const effectiveStageHeight = dragHeight !== null ? `${dragHeight}px` : stageHeight;
284
+ /*
285
+ * 🔴 On a phone the action row is ONE line, and what does not fit FOLDS behind a toggle.
286
+ *
287
+ * Owner, 2026-10-10, on an iPhone: *"the icons over the media player go out of the right side
288
+ * of the screen."* The row scrolled sideways with its scrollbar hidden (task 2424 chose one
289
+ * row over three wrapped ones), so it read as icons cut off by the screen's edge with no sign
290
+ * there were more. Now the row wraps but is clipped to its first line, and a toggle at its end
291
+ * — drawn only when something is actually clipped — opens the rest in place, the way iOS
292
+ * Photos and Linear's mobile issue bar do. One line stays the default, so the files are still
293
+ * right under the picture.
294
+ *
295
+ * The CSS decides WHERE the fold applies (`.cbgd-actions-more` is `display: none` outside the
296
+ * phone block); this only measures whether anything is past the first line. Measured on every
297
+ * render because the row's contents change (an inline rename swaps buttons for a form) without
298
+ * its clipped box changing size, and on resize for the width.
299
+ */
300
+ const actionsId = useId();
301
+ const [actionsEl, setActionsEl] = useState(null);
302
+ const [actionsOpen, setActionsOpen] = useState(false);
303
+ const [actionsFold, setActionsFold] = useState(false);
304
+ const measureFold = useCallback(() => {
305
+ if (!actionsEl)
306
+ return;
307
+ const kids = [...actionsEl.children];
308
+ const first = Math.min(...kids.map((kid) => kid.offsetTop));
309
+ let folds = false;
310
+ for (const kid of kids) {
311
+ const folded = kid.offsetTop > first + 4;
312
+ folds ||= folded;
313
+ // A control on a folded line is out of reach, so it is out of the tab order and the
314
+ // accessibility tree too (`visibility: hidden` in the phone block), not merely clipped.
315
+ kid.toggleAttribute('data-cbgd-folded', folded && !actionsOpen);
316
+ }
317
+ setActionsFold((current) => (current === folds ? current : folds));
318
+ }, [actionsEl, actionsOpen]);
319
+ // No dependency list: every render, on purpose — see above.
320
+ useLayoutEffect(() => {
321
+ measureFold();
322
+ });
323
+ useEffect(() => {
324
+ if (!actionsEl || typeof ResizeObserver === 'undefined')
325
+ return;
326
+ const observer = new ResizeObserver(measureFold);
327
+ observer.observe(actionsEl);
328
+ return () => observer.disconnect();
329
+ }, [actionsEl, measureFold]);
266
330
  return (_jsxs("div", { ref: setWatchEl, className: `cbgd-watch${sticky ? ' cbgd-watch-sticky' : ''}${fullStage ? ' cbgd-watch-full' : ''}`,
267
331
  // Set on the ROOT, not on the box: the frame reads it through the cascade,
268
332
  // so one declaration covers the box and anything else that comes to depend
@@ -274,12 +338,12 @@ rowExtraHeight, fullStage: fullStageProp, onFullStageChange, stageOwnsDoubleClic
274
338
  is why double-clicking a photograph did nothing — the handler that would have
275
339
  made it fullscreen only existed once it already was. `onStageDoubleClick`
276
340
  decides; see it for the three rules. */
277
- onDoubleClick: onStageDoubleClick, children: stage }), fullStage ? null : (_jsxs("div", { className: 'cbmr-rail', children: [_jsx(MediaResizeBar, { ...resizeHandle, label: 'Viewer height' }), _jsx(MediaResizeCorner, { ...resizeHandle, label: 'Viewer height' })] }))] }), _jsxs("div", { className: 'cbgd-watch-titlebar', children: [_jsx("span", { className: 'cbgd-watch-title', children: title }), meta ? _jsx("span", { className: 'cbgd-meta-line', children: meta }) : null, _jsxs("span", { className: 'cbgd-watch-actions', children: [onStep ? (_jsxs("span", { className: 'cbgd-watch-step', children: [_jsx(GalleryActionButton, { iconOnly: true, tooltip: 'Previous file (\u21E7\u2190)', "aria-label": 'Previous file', disabled: !canStep, onClick: () => onStep(-1), children: _jsx(ChevronLeft, { "aria-hidden": true }) }), _jsx(GalleryActionButton, { iconOnly: true, tooltip: 'Next file (\u21E7\u2192)', "aria-label": 'Next file', disabled: !canStep, onClick: () => onStep(1), children: _jsx(ChevronRight, { "aria-hidden": true }) })] })) : null, actions, _jsx(Tooltip, { content: fullStage
341
+ onDoubleClick: onStageDoubleClick, children: stage }), fullStage ? null : (_jsxs("div", { className: 'cbmr-rail', children: [_jsx(MediaResizeBar, { ...resizeHandle, label: 'Viewer height' }), _jsx(MediaResizeCorner, { ...resizeHandle, label: 'Viewer height' })] }))] }), _jsxs("div", { className: 'cbgd-watch-titlebar', children: [_jsx("span", { className: 'cbgd-watch-title', children: title }), meta ? _jsx("span", { className: 'cbgd-meta-line', children: meta }) : null, _jsxs("span", { ref: setActionsEl, className: `cbgd-watch-actions${actionsOpen ? ' is-open' : ''}`, id: actionsId, children: [onStep ? (_jsxs("span", { className: 'cbgd-watch-step', children: [_jsx(GalleryActionButton, { iconOnly: true, tooltip: 'Previous file (\u21E7\u2190)', "aria-label": 'Previous file', disabled: !canStep, onClick: () => onStep(-1), children: _jsx(ChevronLeft, { "aria-hidden": true }) }), _jsx(GalleryActionButton, { iconOnly: true, tooltip: 'Next file (\u21E7\u2192)', "aria-label": 'Next file', disabled: !canStep, onClick: () => onStep(1), children: _jsx(ChevronRight, { "aria-hidden": true }) })] })) : null, actions, _jsx(Tooltip, { content: fullStage
278
342
  ? 'Leave full window (Esc)'
279
343
  : 'Fill the window — the picture as big as the window, the files below', children: _jsx("button", {
280
344
  // guardrails-ignore no-raw-action-button: same self-contained `.cbgd-`
281
345
  // pill styling as the sort pills above — a UI-preference toggle (not
282
346
  // persisted, not destructive) styled by this module's own plain CSS.
283
- type: 'button', className: cn(RAW_BUTTON, 'cbgd-order-btn is-icon'), "aria-pressed": fullStage, "aria-label": 'Full window', onClick: () => setFullStage(!fullStage), children: fullStage ? _jsx(Minimize2, { "aria-hidden": true }) : _jsx(Maximize2, { "aria-hidden": true }) }) })] })] })] }), rail ? (_jsx("aside", { className: 'cbgd-watch-rail', "aria-label": 'Up next', children: rail })) : null] }), fullStage && !stageOffersFullStageToggle ? (_jsx("span", { className: 'cbgd-full-exit', children: _jsx(GalleryActionButton, { iconOnly: true, tooltip: 'Leave full window (Esc)', "aria-label": 'Leave full window', onClick: () => setFullStage(false), children: _jsx(Minimize2, { "aria-hidden": true }) }) })) : null, _jsxs("div", { className: 'cbgd-related', children: [relatedLabel ? _jsx("div", { className: 'cbgd-section-head', children: relatedLabel }) : null, relatedBody ?? (_jsx(VirtualMediaGrid, { scrollElement: watchEl, itemCount: itemCount, minColumnWidth: minColumnWidth, rowExtraHeight: rowExtraHeight, onNearEnd: onNearEnd, renderItem: renderTile, footer: loading ? _jsx("div", { className: 'cbgd-loading', children: "Loading\u2026" }) : null }))] })] }));
347
+ type: 'button', className: cn(RAW_BUTTON, 'cbgd-order-btn is-icon'), "aria-pressed": fullStage, "aria-label": 'Full window', onClick: () => setFullStage(!fullStage), children: fullStage ? _jsx(Minimize2, { "aria-hidden": true }) : _jsx(Maximize2, { "aria-hidden": true }) }) })] }), actionsFold || actionsOpen ? (_jsx("span", { className: 'cbgd-actions-more', children: _jsx(GalleryActionButton, { iconOnly: true, tooltip: actionsOpen ? 'Fold the actions back to one line' : 'Show every action', "aria-label": actionsOpen ? 'Fewer actions' : 'More actions', "aria-expanded": actionsOpen, "aria-controls": actionsId, onClick: () => setActionsOpen(!actionsOpen), children: actionsOpen ? _jsx(ChevronUp, { "aria-hidden": true }) : _jsx(ChevronDown, { "aria-hidden": true }) }) })) : null] })] }), rail ? (_jsx("aside", { className: 'cbgd-watch-rail', "aria-label": 'Up next', children: rail })) : null] }), fullStage && !stageOffersFullStageToggle ? (_jsx("span", { className: 'cbgd-full-exit', children: _jsx(GalleryActionButton, { iconOnly: true, tooltip: 'Leave full window (Esc)', "aria-label": 'Leave full window', onClick: () => setFullStage(false), children: _jsx(Minimize2, { "aria-hidden": true }) }) })) : null, _jsxs("div", { className: 'cbgd-related', children: [relatedLabel ? _jsx("div", { className: 'cbgd-section-head', children: relatedLabel }) : null, relatedBody ?? (_jsx(VirtualMediaGrid, { scrollElement: watchEl, itemCount: itemCount, minColumnWidth: minColumnWidth, rowExtraHeight: rowExtraHeight, onNearEnd: onNearEnd, renderItem: renderTile, footer: loading ? _jsx("div", { className: 'cbgd-loading', children: "Loading\u2026" }) : null }))] })] }));
284
348
  }
285
349
  //# sourceMappingURL=DenseGalleryShell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DenseGalleryShell.js","sourceRoot":"","sources":["../../../src/react/media/DenseGalleryShell.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DenseGalleryShell.js","sourceRoot":"","sources":["../../../src/react/media/DenseGalleryShell.tsx"],"names":[],"mappings":";AAAA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvG,OAAO,EAML,WAAW,EACX,SAAS,EACT,KAAK,EACL,eAAe,EACf,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAiD9C,MAAM,UAAU,mBAAmB,CAAC,EAClC,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,GAAG,KAAK,EACiB;IACzB,MAAM,MAAM,GAAG,CACb;QACE,iFAAiF;QACjF,mEAAmE;QACnE,IAAI,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAC7D,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,iBAAiB,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KACjG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,KACxD,KAAK,YAER,QAAQ,GACF,CACV,CAAC;IACF,OAAO,OAAO,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,OAAO,EAAE,OAAO,YAAG,MAAM,GAAW,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1E,CAAC;AA6BD,SAAS,UAAU,CAAmB,EAAE,KAAK,EAAmC;IAC9E,OAAO,CACL,mBAAU,SAAS,EAAC,YAAY,gBAAa,KAAK,CAAC,SAAS,IAAI,MAAM,YACnE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACzB,oFAAoF;YACpF,oDAAoD;YACpD,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,UAAU,CAAC;YAChF,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,QAAQ,CAAC;YACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;YACrE,mFAAmF;YACnF,oFAAoF;YACpF,yBAAyB;YACzB,MAAM,IAAI,GAAG,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YACtG,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa;gBAC5B,CAAC,CAAC,MAAM;oBACN,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,qBAAqB;oBAChF,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;gBACxB,CAAC,CAAC,SAAS,CAAC;YACd,OAAO,CACP,KAAC,OAAO,IAAe,OAAO,EAAE,IAAI,YAClC;oBACE,mFAAmF;oBACnF,iFAAiF;oBACjF,gFAAgF;oBAChF,iFAAiF;oBACjF,mFAAmF;oBACnF,mCAAmC;oBACnC,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,iBAAiB,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAC1D,MAAM,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,aAElC,KAAK,EAIL,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CACxC,eAAM,SAAS,EAAC,gBAAgB,iBAAa,MAAM,YAChD,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAChB,CACR,CAAC,CAAC,CAAC,IAAI,IACD,IAtBG,GAAG,CAAC,GAAG,CAuBX,CACT,CAAC;QACJ,CAAC,CAAC,GACO,CACZ,CAAC;AACJ,CAAC;AA4FD,sFAAsF;AACtF,MAAM,UAAU,iBAAiB,CAA4B,EAC3D,KAAK,EACL,OAAO,EAAE,QAAQ,GAAG,MAAM,EAC1B,KAAK,EACL,KAAK,EACL,aAAa,EACb,iBAAiB,GAAG,SAAS,EAC7B,WAAW,EACX,MAAM,GAAG,QAAQ,EACjB,WAAW,EACX,OAAO,EACP,SAAS,EACT,UAAU,EACV,IAAI,EACJ,SAAS,EACT,OAAO,EACP,KAAK,EACL,WAAW,EACX,cAAc,GAAG,GAAG;AACpB,mEAAmE;AACnE,cAAc,EACd,OAAO,GACmB;IAC1B,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,EAAC,GAAG,EAAE,OAAO,aACpC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CACtB,eAAK,SAAS,EAAC,cAAc,EAAC,IAAI,EAAC,SAAS,gBAAY,yBAAyB,aAC9E,WAAW,EACX,OAAO,EACR,eAAM,SAAS,EAAC,kBAAkB,YAAE,WAAW,GAAQ,IACnD,CACP,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7B,kBAAQ,SAAS,EAAC,aAAa,aAC7B,KAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,YAAE,KAAK,GAAY,EAClD,KAAK,CAAC,CAAC,CAAC,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI,EAC3C,aAAa,CAAC,CAAC,CAAC,CACf;wBACE,uEAAuE;wBACvE,4EAA4E;wBAC5E,0EAA0E;wBAC1E,6EAA6E;wBAC7E,WAAW;wBACX,SAAS,EAAC,aAAa,EACvB,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9C,WAAW,EAAE,iBAAiB,EAC9B,UAAU,EAAE,KAAK,GACjB,CACH,CAAC,CAAC,CAAC,IAAI,EACP,WAAW,IACL,CACV,EAEA,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7B,8BACG,WAAW,EACX,OAAO,IACP,CACJ,EAEA,IAAI,IAAI,CACT,KAAC,gBAAgB,IACf,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,SAAS,EACpB,KAAK,EACH,OAAO,IAAI,CAAC,KAAK;oBACf,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,WAAW;wBACX,CAAC,CAAC,CACE,eAAK,SAAS,EAAC,iBAAiB,aAC7B,KAAK,EACN,cAAK,SAAS,EAAC,mBAAmB,YAAE,WAAW,GAAO,IAClD,CACP;wBACH,CAAC,CAAC,KAAK,EAEb,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,cAAc,8BAAe,CAAC,CAAC,CAAC,IAAI,EACrE,SAAS,EAAC,WAAW,EACrB,UAAU,EAAE,UAAU,GACtB,CACD,IACG,CACP,CAAC;AACJ,CAAC;AAgHD;;;;;GAKG;AACH,MAAM,WAAW,GAAG,IAAI,CAAC;AAEzB,8FAA8F;AAC9F,MAAM,UAAU,kBAAkB,CAAC,EACjC,KAAK,EACL,KAAK,EACL,IAAI,EACJ,OAAO,EACP,MAAM,EACN,OAAO,GAAG,IAAI,EACd,IAAI,EACJ,WAAW,EACX,MAAM,EACN,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,cAAc,GAAG,GAAG;AACpB,mEAAmE;AACnE,cAAc,EACd,SAAS,EAAE,aAAa,EACxB,iBAAiB,EACjB,oBAAoB,GAAG,KAAK,EAC5B,0BAA0B,GAAG,KAAK,GACV;IACxB,qFAAqF;IACrF,wFAAwF;IACxF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAEjE;;;;;;;;;;;;;;;;;;;;OAoBG;IACH;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE,OAAO;QAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC;QAC9C,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,iDAAiD;YACzE,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,uFAAuF;YACvF,sFAAsF;YACtF,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAChE;;;;;;;;;;;;;;;;;;;;eAoBG;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;YAC9D;;;;;;eAMG;YACH,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC;YAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACjF,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;YACjF,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpD,MAAM,QAAQ,GAAG,MAAM;gBACrB,CAAC,CAAC,IAAI,CAAC,KAAK,CACR,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,IAAI,GAAG,CAAC,CACnG;gBACH,CAAC,CAAC,GAAG,IAAI,KAAK;oBACZ,CAAC,CAAC,IAAI,CAAC,KAAK,CACR,GAAG,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAC1E;oBACH,CAAC,CAAC,MAAM,CAAC;YACb,wFAAwF;YACxF,mFAAmF;YACnF,qFAAqF;YACrF,uFAAuF;YACvF,yDAAyD;YACzD,uFAAuF;YACvF,yFAAyF;YACzF,4EAA4E;YAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YACvD,MAAM,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,gCAAgC,CAAC;YAC9E,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO;YACzB,IAAI,GAAG,GAAG,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,IAAI,KAAK,OAAO;YAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,KAAK,EAAE,CAAC;QACR,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,sFAAsF;IACtF,gFAAgF;IAChF,MAAM,SAAS,GAAG,aAAa,IAAI,YAAY,CAAC;IAChD,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,IAAa,EAAE,EAAE;QAChB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IACF,wFAAwF;IACxF,0FAA0F;IAC1F,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,KAAK,GAAG,CAAC,KAAoB,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,gBAAgB;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7E,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IAE9B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,KAAmC,EAAE,EAAE;QACtC,IAAI,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO;QAC3C,IAAI,SAAS,EAAE,CAAC;YACd,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,oBAAoB;YAAE,OAAO;QACjC,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,EACD,CAAC,SAAS,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAChD,CAAC;IAEF;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IACjE,MAAM,EACJ,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,YAAY,GACrB,GAAG,cAAc,CAAC;QACjB,UAAU,EAAE,gBAAgB;QAC5B,2FAA2F;QAC3F,wFAAwF;QACxF,yFAAyF;QACzF,iEAAiE;QACjE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;QAC/D,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;IAEnF;;;;;;;;;;;;;;;OAeG;IACH,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;IAC1B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAkB,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;YACzC,KAAK,KAAK,MAAM,CAAC;YACjB,oFAAoF;YACpF,wFAAwF;YACxF,GAAG,CAAC,eAAe,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;QAClE,CAAC;QACD,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAC7B,4DAA4D;IAC5D,eAAe,CAAC,GAAG,EAAE;QACnB,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE,OAAO;QAChE,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC;QACjD,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5B,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAE7B,OAAO,CACL,eACE,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,aAAa,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE;QAClG,2EAA2E;QAC3E,2EAA2E;QAC3E,yBAAyB;QACzB,KAAK,EACH,oBAAoB;YAClB,CAAC,CAAE,EAAE,gBAAgB,EAAE,oBAAoB,EAAoB;YAC/D,CAAC,CAAC,SAAS,aAGf,eAAK,SAAS,EAAE,iBAAiB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,aACjE,eAAK,SAAS,EAAC,iBAAiB,aAC9B,eAAK,SAAS,EAAC,mBAAmB,aAKhC,cACE,SAAS,EAAC,uBAAuB,EACjC,GAAG,EAAE,UAAU;wCACf;;;kFAG0C;wCAC1C,aAAa,EAAE,kBAAkB,YAEhC,KAAK,GACF,EAcL,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAClB,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,cAAc,OAAK,YAAY,EAAE,KAAK,EAAC,eAAe,GAAG,EAC1D,KAAC,iBAAiB,OAAK,YAAY,EAAE,KAAK,EAAC,eAAe,GAAG,IACzD,CACP,IACG,EACN,eAAK,SAAS,EAAC,qBAAqB,aAClC,eAAM,SAAS,EAAC,kBAAkB,YAAE,KAAK,GAAQ,EAChD,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,gBAAgB,YAAE,IAAI,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC7D,gBACE,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,qBAAqB,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAC/D,EAAE,EAAE,SAAS,aAmBZ,MAAM,CAAC,CAAC,CAAC,CACR,gBAAM,SAAS,EAAC,iBAAiB,aAM/B,KAAC,mBAAmB,IAClB,QAAQ,QACR,OAAO,EAAC,8BAAoB,gBACjB,eAAe,EAC1B,QAAQ,EAAE,CAAC,OAAO,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAEzB,KAAC,WAAW,0BAAe,GACP,EACtB,KAAC,mBAAmB,IAClB,QAAQ,QACR,OAAO,EAAC,0BAAgB,gBACb,WAAW,EACtB,QAAQ,EAAE,CAAC,OAAO,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,YAExB,KAAC,YAAY,0BAAe,GACR,IACjB,CACR,CAAC,CAAC,CAAC,IAAI,EACP,OAAO,EACR,KAAC,OAAO,IAAC,OAAO,EACZ,SAAS;oDACP,CAAC,CAAC,yBAAyB;oDAC3B,CAAC,CAAC,qEAAqE,YAE3E;oDACE,uEAAuE;oDACvE,qEAAqE;oDACrE,qEAAqE;oDACrE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,wBAAwB,CAAC,kBACrC,SAAS,gBAIZ,aAAa,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,YAEtC,SAAS,CAAC,CAAC,CAAC,KAAC,SAAS,0BAAe,CAAC,CAAC,CAAC,KAAC,SAAS,0BAAe,GAC3D,GACD,IACL,EACN,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,CAC5B,eAAM,SAAS,EAAC,mBAAmB,YACnC,KAAC,mBAAmB,IAClB,QAAQ,QACR,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,mBAAmB,gBACpE,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,mBAC3C,WAAW,mBACX,SAAS,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,YAE1C,WAAW,CAAC,CAAC,CAAC,KAAC,SAAS,0BAAe,CAAC,CAAC,CAAC,KAAC,WAAW,0BAAe,GAClD,GACf,CACR,CAAC,CAAC,CAAC,IAAI,IACJ,IACF,EACL,IAAI,CAAC,CAAC,CAAC,CACN,gBAAO,SAAS,EAAC,iBAAiB,gBAAY,SAAS,YACpD,IAAI,GACC,CACT,CAAC,CAAC,CAAC,IAAI,IACJ,EAEL,SAAS,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAC1C,eAAM,SAAS,EAAC,gBAAgB,YAC9B,KAAC,mBAAmB,IAClB,QAAQ,QACR,OAAO,EAAC,yBAAyB,gBACtB,mBAAmB,EAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,YAElC,KAAC,SAAS,0BAAe,GACL,GACjB,CACR,CAAC,CAAC,CAAC,IAAI,EACR,eAAK,SAAS,EAAC,cAAc,aAC1B,YAAY,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,mBAAmB,YAAE,YAAY,GAAO,CAAC,CAAC,CAAC,IAAI,EAC7E,WAAW,IAAI,CACd,KAAC,gBAAgB,IACf,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,cAAc,8BAAe,CAAC,CAAC,CAAC,IAAI,GACrE,CACH,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -24,14 +24,10 @@ export declare function useScrubPreview(ref: {
24
24
  /**
25
25
  * True only on devices that can actually hover with a fine pointer (a mouse).
26
26
  *
27
- * Touch phones/tablets report `(hover: none)`; there an `autoPlay` preview is suppressed so a
28
- * thumbnail never silently plays under a finger, and a preview still starts on an explicit
29
- * touch-and-hold. Starts `false` so the very first paint never autoplays, then resolves after
30
- * mount.
31
- *
32
- * 🔴 Exported alongside {@link useScrubPreview} for the same reason — the table view has to
33
- * make the SAME decision about coarse pointers as the grid, and two copies of a media query is
34
- * how one view ends up playing ninety clips on a phone.
27
+ * Touch phones/tablets report `(hover: none)`. It no longer gates `autoPlay` (see that prop's
28
+ * note); it decides what a press-and-hold MEANS — a drag to re-file the tile
29
+ * with a mouse, a preview under a finger — so the gallery's tile wrapper is draggable only where
30
+ * this is true. Starts `false`, then resolves after mount.
35
31
  */
36
32
  export declare function useCanHover(): boolean;
37
33
  export interface HoverScrubVideoThumbProps {
@@ -45,11 +41,17 @@ export interface HoverScrubVideoThumbProps {
45
41
  */
46
42
  previewMode?: 'scrub' | 'loop';
47
43
  /**
48
- * Preview continuously without hover — the watch page's silent side tiles.
44
+ * Preview continuously without hover — the gallery's "Preview all".
49
45
  *
50
46
  * 🔴 Gated: the preview starts only once the tile is ON SCREEN and has stayed there for
51
47
  * `PREVIEW_SETTLE_MS` (`previewGate.ts`), so a grid scrolled past fast never opens a stream
52
48
  * per row. Without an `IntersectionObserver` the tile counts as visible.
49
+ *
50
+ * 🔴 Honoured on a TOUCH screen too. It was suppressed under a coarse pointer until
51
+ * 2026-10-10, so the "Preview all" button on a phone lit up and nothing moved — owner, on an
52
+ * iPhone: *"The play icon above the player clicked but it did not make all the video
53
+ * thumbnails start playing like I thought it would."* A control the reader pressed is the
54
+ * request; the gate above is what keeps it to the tiles actually on screen.
53
55
  */
54
56
  autoPlay?: boolean;
55
57
  /** Small overlay chips (top-left slot) — e.g. a quality badge. */
@@ -1 +1 @@
1
- {"version":3,"file":"HoverScrubVideoThumb.d.ts","sourceRoot":"","sources":["../../../src/react/media/HoverScrubVideoThumb.tsx"],"names":[],"mappings":"AACA,OAAO,EAAsB,KAAK,SAAS,EAA+B,MAAM,OAAO,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AA4BzD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC9B,GAAG,EAAE;IAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAA;CAAE,EACzC,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACpF,IAAI,CAmBN;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAWrC;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AAEH,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,MAAM,EACN,WAAqB,EACrB,QAAgB,EAChB,KAAK,EACL,WAAW,EACX,QAAQ,EACR,SAAS,GACV,EAAE,yBAAyB,+BAyM3B"}
1
+ {"version":3,"file":"HoverScrubVideoThumb.d.ts","sourceRoot":"","sources":["../../../src/react/media/HoverScrubVideoThumb.tsx"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAsCzD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC9B,GAAG,EAAE;IAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAA;CAAE,EACzC,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACpF,IAAI,CAmBN;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAWrC;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AAEH,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,MAAM,EACN,WAAqB,EACrB,QAAgB,EAChB,KAAK,EACL,WAAW,EACX,QAAQ,EACR,SAAS,GACV,EAAE,yBAAyB,+BA6Q3B"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Play } from 'lucide-react';
3
- import { useEffect, useRef, useState } from 'react';
3
+ import { useEffect, useRef, useState, } from 'react';
4
4
  import { formatTimecode } from 'cursedbelt-core/media';
5
5
  import { cn } from '../lib/cn.js';
6
6
  import { NO_EDIT, previewTransform, swapsAxes } from './pictureEdit.js';
@@ -30,7 +30,16 @@ function turnStyle(orientation) {
30
30
  /** Source offsets (fractions of duration) a scrub preview steps through. */
31
31
  const SCRUB_POINTS = [0.1, 0.3, 0.5, 0.7, 0.9];
32
32
  const SCRUB_STEP_MS = 900;
33
+ /** How long a finger rests on a tile before it counts as a hold rather than a tap. */
33
34
  const TOUCH_HOLD_MS = 300;
35
+ /** How far a finger may wander during a hold before it is a scroll instead — a resting thumb is
36
+ * never perfectly still, and a hold that any jitter cancelled would read as one that never works. */
37
+ const TOUCH_HOLD_SLOP_PX = 10;
38
+ /**
39
+ * The one tile a touch-and-hold is previewing — so holding a SECOND tile stops the first, and a
40
+ * phone never accumulates a preview per tile the reader has ever held.
41
+ */
42
+ let stopHeldPreview = null;
34
43
  /**
35
44
  * Step a muted preview through spaced source offsets, so a preview tours the WHOLE video
36
45
  * instead of replaying its first seconds.
@@ -70,14 +79,10 @@ export function useScrubPreview(ref, { active, durationSeconds }) {
70
79
  /**
71
80
  * True only on devices that can actually hover with a fine pointer (a mouse).
72
81
  *
73
- * Touch phones/tablets report `(hover: none)`; there an `autoPlay` preview is suppressed so a
74
- * thumbnail never silently plays under a finger, and a preview still starts on an explicit
75
- * touch-and-hold. Starts `false` so the very first paint never autoplays, then resolves after
76
- * mount.
77
- *
78
- * 🔴 Exported alongside {@link useScrubPreview} for the same reason — the table view has to
79
- * make the SAME decision about coarse pointers as the grid, and two copies of a media query is
80
- * how one view ends up playing ninety clips on a phone.
82
+ * Touch phones/tablets report `(hover: none)`. It no longer gates `autoPlay` (see that prop's
83
+ * note); it decides what a press-and-hold MEANS — a drag to re-file the tile
84
+ * with a mouse, a preview under a finger — so the gallery's tile wrapper is draggable only where
85
+ * this is true. Starts `false`, then resolves after mount.
81
86
  */
82
87
  export function useCanHover() {
83
88
  const [canHover, setCanHover] = useState(false);
@@ -105,26 +110,88 @@ export function HoverScrubVideoThumb({ video, onOpen, previewMode = 'scrub', aut
105
110
  * poster that appears later arrives on the next load, which is the state the
106
111
  * derived-poster contract already describes. */
107
112
  const [posterFailed, setPosterFailed] = useState(false);
108
- const canHover = useCanHover();
109
- // On touch devices ignore `autoPlay` — an unrequested video playing under the
110
- // finger reads as a bug (and iOS shows a stack of them below the watch player).
111
- // Touch-and-hold still triggers `hovering` → a preview on demand.
113
+ /**
114
+ * A touch-and-hold's preview — and it STAYS on after the finger lifts.
115
+ *
116
+ * Owner, 2026-10-10, on an iPhone: *"holding down on a thumbnail should make it start
117
+ * previewing the video."* It used to preview only while held: under the thumb that was
118
+ * holding it, and stopped by the very lift that then fired the tile's click and opened the
119
+ * file. So now a hold LATCHES the preview, the lift after a hold is not a click, a plain tap
120
+ * still opens, and the preview ends when the tile leaves the screen or another tile is held.
121
+ */
122
+ const [held, setHeld] = useState(false);
112
123
  const boxRef = useRef(null);
113
- const wantsAuto = autoPlay && canHover;
114
124
  // A hover is not gated: the pointer on the tile IS the intent the settle exists to infer.
115
- const autoReady = useSettled(useInView(boxRef, wantsAuto));
116
- const previewing = autoReady || hovering;
117
- const holdTimer = useRef(null);
125
+ const autoReady = useSettled(useInView(boxRef, autoPlay));
126
+ const heldInView = useInView(boxRef, held);
127
+ const previewing = autoReady || hovering || held;
128
+ const hold = useRef(null);
129
+ /** Set by a hold that latched, so the click the lift produces opens nothing. */
130
+ const swallowClick = useRef(false);
118
131
  const videoRef = useRef(null);
119
- const startHold = () => {
120
- holdTimer.current = setTimeout(() => setHovering(true), TOUCH_HOLD_MS);
132
+ const stopHeld = useRef(() => setHeld(false)).current;
133
+ const clearHold = () => {
134
+ if (hold.current)
135
+ clearTimeout(hold.current.timer);
136
+ hold.current = null;
121
137
  };
122
- const cancelHold = () => {
123
- if (holdTimer.current)
124
- clearTimeout(holdTimer.current);
125
- holdTimer.current = null;
126
- setHovering(false);
138
+ const onPointerDown = (event) => {
139
+ if (event.pointerType !== 'touch')
140
+ return;
141
+ clearHold();
142
+ const timer = setTimeout(() => {
143
+ hold.current = null;
144
+ if (stopHeldPreview && stopHeldPreview !== stopHeld)
145
+ stopHeldPreview();
146
+ stopHeldPreview = stopHeld;
147
+ swallowClick.current = true;
148
+ setHeld(true);
149
+ }, TOUCH_HOLD_MS);
150
+ hold.current = { timer, x: event.clientX, y: event.clientY };
127
151
  };
152
+ const onPointerMove = (event) => {
153
+ const start = hold.current;
154
+ if (!start)
155
+ return;
156
+ if (Math.hypot(event.clientX - start.x, event.clientY - start.y) > TOUCH_HOLD_SLOP_PX)
157
+ clearHold();
158
+ };
159
+ const onClickCapture = (event) => {
160
+ if (!swallowClick.current)
161
+ return;
162
+ swallowClick.current = false;
163
+ event.preventDefault();
164
+ event.stopPropagation();
165
+ };
166
+ // A held preview ends when its tile scrolls away (and a hold that never got a click — the lift
167
+ // landed off the tile — must not eat the next real tap).
168
+ useEffect(() => {
169
+ if (!held)
170
+ return;
171
+ const reset = setTimeout(() => {
172
+ swallowClick.current = false;
173
+ }, 1000);
174
+ return () => clearTimeout(reset);
175
+ }, [held]);
176
+ const seenInView = useRef(false);
177
+ useEffect(() => {
178
+ if (!held) {
179
+ seenInView.current = false;
180
+ return;
181
+ }
182
+ if (heldInView)
183
+ seenInView.current = true;
184
+ else if (seenInView.current)
185
+ setHeld(false);
186
+ }, [held, heldInView]);
187
+ // Unmount only: a pending hold must not fire into an unmounted tile.
188
+ // biome-ignore lint/correctness/useExhaustiveDependencies: unmount-only cleanup; both read refs
189
+ useEffect(() => () => {
190
+ if (hold.current)
191
+ clearTimeout(hold.current.timer);
192
+ if (stopHeldPreview === stopHeld)
193
+ stopHeldPreview = null;
194
+ }, []);
128
195
  useScrubPreview(videoRef, {
129
196
  active: previewing && previewMode === 'scrub',
130
197
  durationSeconds: video.durationSeconds,
@@ -187,6 +254,12 @@ export function HoverScrubVideoThumb({ video, onOpen, previewMode = 'scrub', aut
187
254
  // navigation card, not a labeled action; Button's mandatory tooltip prop is the wrong
188
255
  // UX for a whole-thumbnail click target (matches plugin-video-gallery's VideoCard /
189
256
  // GalleryApp "opens a video — navigation" precedent).
190
- type: 'button', onClick: onOpen, onMouseEnter: () => setHovering(true), onMouseLeave: () => setHovering(false), onTouchStart: startHold, onTouchEnd: cancelHold, onTouchMove: cancelHold, className: cn(RAW_BUTTON, cardClassName, 'hover:border-accent-solid focus-visible:ring-2 focus-visible:ring-accent-solid'), "aria-label": `Open ${video.name}`, children: [media, children] }));
257
+ type: 'button', onClick: onOpen, onClickCapture: onClickCapture, onMouseEnter: () => setHovering(true), onMouseLeave: () => setHovering(false), onPointerDown: onPointerDown, onPointerMove: onPointerMove, onPointerUp: clearHold, onPointerCancel: clearHold,
258
+ // A hold is a preview, not the browser's own long-press: no "Save image" callout, no text
259
+ // selection, no context menu (Android's long-press) over the tile.
260
+ onContextMenu: (event) => {
261
+ if (hold.current || swallowClick.current)
262
+ event.preventDefault();
263
+ }, "data-held-preview": held ? 'true' : undefined, className: cn(RAW_BUTTON, cardClassName, '[-webkit-touch-callout:none] select-none hover:border-accent-solid focus-visible:ring-2 focus-visible:ring-accent-solid'), "aria-label": `Open ${video.name}`, children: [media, children] }));
191
264
  }
192
265
  //# sourceMappingURL=HoverScrubVideoThumb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HoverScrubVideoThumb.js","sourceRoot":"","sources":["../../../src/react/media/HoverScrubVideoThumb.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAsC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;;;;;;;;;GAWG;AACH,SAAS,SAAS,CAAC,WAAyC;IAC1D,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACnC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;IAC5C,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,SAAS,GAAG,gBAAgB,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1F,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AAC1F,CAAC;AAED,4EAA4E;AAC5E,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/C,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAC9B,GAAyC,EACzC,EAAE,MAAM,EAAE,eAAe,EAA6D;IAEtF,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,IAAI,CAAC,eAAe;YAAE,OAAO;QACpC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,IAAI,GAAG,GAAG,EAAE;YACjB,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,GAAG,EAAE,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YACxF,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;QAC3C,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;QAC5B,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC/C,OAAO,GAAG,EAAE;YACX,EAAE,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YACjD,aAAa,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC;QACF,kFAAkF;IACnF,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW;IAC1B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO;QAChE,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,oCAAoC,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,EAAE,CAAC;QACT,EAAE,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,QAAQ,CAAC;AACjB,CAAC;AAoCD;;;;;GAKG;AAEH,MAAM,UAAU,oBAAoB,CAAC,EACnC,KAAK,EACL,MAAM,EACN,WAAW,GAAG,OAAO,EACrB,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,WAAW,EACX,QAAQ,EACR,SAAS,GACiB;IAC1B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD;;;qDAGiD;IACjD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,8EAA8E;IAC9E,gFAAgF;IAChF,kEAAkE;IAClE,MAAM,MAAM,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,QAAQ,IAAI,QAAQ,CAAC;IACvC,0FAA0F;IAC1F,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,SAAS,IAAI,QAAQ,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAEhD,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,SAAS,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;IACzE,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,SAAS,CAAC,OAAO;YAAE,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACvD,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,eAAe,CAAC,QAAQ,EAAE;QACxB,MAAM,EAAE,UAAU,IAAI,WAAW,KAAK,OAAO;QAC7C,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC,CAAC;IAEH,uFAAuF;IACvF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC5B,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAEtC,MAAM,KAAK,GAAG,CACZ,eAAK,GAAG,EAAE,MAAM,EAAE,SAAS,EAAC,uDAAuD,aAChF,KAAK,CAAC,SAAS,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAClC,cACE,GAAG,EAAE,KAAK,CAAC,SAAS,EACpB,GAAG,EAAE,KAAK,CAAC,IAAI,EACf,OAAO,EAAC,MAAM,EACd,QAAQ,EAAC,OAAO;gBAChB;;;;;;;;;;;;;;;;;;;mBAmBG;gBACH,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;gBACpC,oFAAoF;gBACpF,oFAAoF;gBACpF,oFAAoF;gBACpF,oFAAoF;gBACpF,6EAA6E;gBAC7E,gFAAgF;gBAChF,oDAAoD;gBACpD,SAAS,EAAE,KAAK,EAChB,SAAS,EAAC,6CAA6C,KACnD,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACrC,CACH,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,yEAAyE,YACtF,KAAC,IAAI,yBAAa,SAAS,EAAC,QAAQ,GAAG,GACnC,CACP,EAgCA,CAAC,UAAU,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CACjD,eAAM,SAAS,EAAC,uEAAuE,YACrF,eAAM,SAAS,EAAC,wGAAwG,YACtH,KAAC,IAAI,yBAAa,SAAS,EAAC,uBAAuB,GAAG,GACjD,GACF,CACR,CAAC,CAAC,CAAC,IAAI,EACP,UAAU,CAAC,CAAC,CAAC,CACZ,gBACE,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,KAAK,CAAC,SAAS;gBACpB,oFAAoF;gBACpF,gFAAgF;gBAChF,OAAO,EAAC,UAAU,EAClB,KAAK,QACL,IAAI,QACJ,QAAQ,QACR,WAAW;gBACX,8EAA8E;gBAC9E,kFAAkF;gBAClF,SAAS,EAAE,KAAK,EAChB,SAAS,EAAC,6CAA6C,KACnD,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACrC,CACH,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,uBAAuB,YAAE,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,EACrE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CACvB,eAAM,SAAS,EAAC,gHAAgH,YAC7H,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,GACjC,CACR,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI,KAAK,CAAC,gBAAgB,KAAK,YAAY,CAAC,CAAC,CAAC,CACjF,eAAM,SAAS,EAAC,2FAA2F,iCAEpG,CACR,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;IAEF,4EAA4E;IAC5E,2EAA2E;IAC3E,yDAAyD;IACzD,MAAM,aAAa,GAAG,EAAE,CACtB,sHAAsH,EACtH,SAAS,CACV,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,0EAA0E;QAC1E,gEAAgE;QAChE,OAAO,CAEL,eACE,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EACrC,YAAY,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,aAErC,KAAK,EACL,QAAQ,IACL,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL;QACE,oFAAoF;QACpF,sFAAsF;QACtF,oFAAoF;QACpF,sDAAsD;QACtD,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EACrC,YAAY,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EACtC,YAAY,EAAE,SAAS,EACvB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,UAAU,EACvB,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,gFAAgF,CAAC,gBAC9G,QAAQ,KAAK,CAAC,IAAI,EAAE,aAE/B,KAAK,EACL,QAAQ,IACF,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"HoverScrubVideoThumb.js","sourceRoot":"","sources":["../../../src/react/media/HoverScrubVideoThumb.tsx"],"names":[],"mappings":"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"}