@chai-ui/react 0.6.1 → 0.7.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/dist/EditCard.js CHANGED
@@ -1,57 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useEffect, useRef, useState } from "react";
3
- import { DEFAULT_MAX_REGIONS } from "@chai-ui/core";
3
+ import { clampPan, DEFAULT_MAX_REGIONS, downloadFilename, downloadMedia, EDIT_ZOOM_STEPS, editCardWidth, fitBox, freeRegionNumber, newRegion, panForKey, panForZoom, REGION_CORNERS, regionBoxForKey, regionBoxStyle, regionPopoverPosition, resizeBox, shareMedia, } from "@chai-ui/core";
4
4
  import { Pagination } from "./primitives/Pagination.js";
5
5
  import { AddIcon, CheckSymbolIcon, CloseSymbolIcon, DeleteIcon, DownloadIcon, ExpandIcon, ShareIcon, VisibilityIcon, VisibilityOffIcon, ZoomInIcon, ZoomOutIcon, } from "./icons.js";
6
- import { downloadFilename, downloadMedia, shareMedia } from "./media-actions.js";
7
6
  import { PageSlide, usePageSlide } from "./page-slide.js";
8
- import { regionColor } from "./regions.js";
9
- const ZOOM_STEPS = [1, 1.25, 1.5, 2, 3, 4];
10
- const MIN_SIZE = 0.03;
11
- const KEY_STEP = 0.01;
12
- const KEY_STEP_LARGE = 0.05;
13
7
  const clamp = (v, min, max) => Math.min(max, Math.max(min, v));
14
- /** Keeps a box inside the image and at least the minimum size. */
15
- function fitBox(box) {
16
- const width = clamp(box.width, MIN_SIZE, 1);
17
- const height = clamp(box.height, MIN_SIZE, 1);
18
- return { x: clamp(box.x, 0, 1 - width), y: clamp(box.y, 0, 1 - height), width, height };
19
- }
20
- /** A box resized by dragging one corner; the opposite corner stays put. */
21
- function resizeBox(box, corner, dx, dy) {
22
- let left = box.x;
23
- let top = box.y;
24
- let right = box.x + box.width;
25
- let bottom = box.y + box.height;
26
- if (corner === "nw" || corner === "sw")
27
- left = clamp(left + dx, 0, right - MIN_SIZE);
28
- else
29
- right = clamp(right + dx, left + MIN_SIZE, 1);
30
- if (corner === "nw" || corner === "ne")
31
- top = clamp(top + dy, 0, bottom - MIN_SIZE);
32
- else
33
- bottom = clamp(bottom + dy, top + MIN_SIZE, 1);
34
- return { x: left, y: top, width: right - left, height: bottom - top };
35
- }
36
- /** Pan limits at a zoom level: the image always covers the viewport. */
37
- function clampPan(pan, zoom, size) {
38
- return {
39
- x: clamp(pan.x, size.width - size.width * zoom, 0),
40
- y: clamp(pan.y, size.height - size.height * zoom, 0),
41
- };
42
- }
43
- function nextRegionId() {
44
- return typeof crypto !== "undefined" && "randomUUID" in crypto
45
- ? crypto.randomUUID()
46
- : `region-${Date.now()}-${Math.random().toString(36).slice(2)}`;
47
- }
48
- /** The lowest number no current region uses, so freed numbers (and colors) come back first. */
49
- function freeNumber(regions) {
50
- let n = 1;
51
- while (regions.some((r) => r.number === n))
52
- n += 1;
53
- return n;
54
- }
55
8
  /**
56
9
  * The image editing card: the person marks regions on the image, gives each
57
10
  * one an instruction, and checks it into the Composer. It shares
@@ -114,7 +67,7 @@ export function EditCard({ versions, activeVersion, onActiveVersionChange, regio
114
67
  }, []);
115
68
  // A region being drawn takes a free number, even if the regions changed
116
69
  // since it was started (so checking it in can't duplicate a number).
117
- const shownDraft = draft && regions.some((r) => r.number === draft.number) ? { ...draft, number: freeNumber(regions) } : draft;
70
+ const shownDraft = draft && regions.some((r) => r.number === draft.number) ? { ...draft, number: freeRegionNumber(regions) } : draft;
118
71
  const all = shownDraft ? [...regions, shownDraft] : regions;
119
72
  const selected = all.find((r) => r.id === selectedId) ?? null;
120
73
  const isDraft = selected != null && selected.id === draft?.id;
@@ -145,13 +98,7 @@ export function EditCard({ versions, activeVersion, onActiveVersionChange, regio
145
98
  onRegionsChange(regions.map((r) => (r.id === id ? { ...r, box } : r)));
146
99
  }
147
100
  function addRegion() {
148
- // Centered in the part of the image in view, so it's visible when zoomed in.
149
- const viewW = 1 / zoom;
150
- const viewH = 1 / zoom;
151
- const centerX = size.width ? (-pan.x / (size.width * zoom)) + viewW / 2 : 0.5;
152
- const centerY = size.height ? (-pan.y / (size.height * zoom)) + viewH / 2 : 0.5;
153
- const box = fitBox({ x: centerX - (0.3 * viewW) / 2, y: centerY - (0.2 * viewH) / 2, width: 0.3 * viewW, height: 0.2 * viewH });
154
- const region = { id: nextRegionId(), number: freeNumber(regions), box, prompt: "" };
101
+ const region = newRegion(regions, zoom, pan, size);
155
102
  setDraft(region);
156
103
  setHidden(false);
157
104
  select(region);
@@ -184,14 +131,10 @@ export function EditCard({ versions, activeVersion, onActiveVersionChange, regio
184
131
  onRegionsChange([]);
185
132
  }
186
133
  function zoomTo(next) {
187
- // Zooms around the middle of the view, so what's centered stays centered.
188
- const cx = size.width / 2;
189
- const cy = size.height / 2;
190
- const ratio = next / zoom;
191
- setPan(clampPan({ x: cx - (cx - pan.x) * ratio, y: cy - (cy - pan.y) * ratio }, next, size));
134
+ setPan(panForZoom(pan, zoom, next, size));
192
135
  setZoom(next);
193
136
  }
194
- const zoomIndex = ZOOM_STEPS.indexOf(zoom);
137
+ const zoomIndex = EDIT_ZOOM_STEPS.indexOf(zoom);
195
138
  // --- Pointer: move and resize regions, pan the zoomed image ---
196
139
  // Moves and releases bubble to the viewport, even while a region or
197
140
  // handle holds the pointer capture, so the viewport handles them all.
@@ -237,19 +180,11 @@ export function EditCard({ versions, activeVersion, onActiveVersionChange, regio
237
180
  }
238
181
  // --- Keyboard ---
239
182
  function handleRegionKey(e, region) {
240
- const step = e.altKey ? KEY_STEP_LARGE : KEY_STEP;
241
- const arrows = {
242
- ArrowLeft: [-step, 0],
243
- ArrowRight: [step, 0],
244
- ArrowUp: [0, -step],
245
- ArrowDown: [0, step],
246
- };
247
- const delta = arrows[e.key];
248
- if (delta) {
183
+ const box = regionBoxForKey(region.box, e.key, { shift: e.shiftKey, alt: e.altKey });
184
+ if (box) {
249
185
  e.preventDefault();
250
186
  e.stopPropagation();
251
- const [dx, dy] = delta;
252
- setBox(region.id, e.shiftKey ? resizeBox(region.box, "se", dx, dy) : fitBox({ ...region.box, x: region.box.x + dx, y: region.box.y + dy }));
187
+ setBox(region.id, box);
253
188
  }
254
189
  else if (e.key === "Delete" || e.key === "Backspace") {
255
190
  e.preventDefault();
@@ -263,13 +198,11 @@ export function EditCard({ versions, activeVersion, onActiveVersionChange, regio
263
198
  function handleViewportKey(e) {
264
199
  if (e.target !== e.currentTarget || zoom <= 1)
265
200
  return;
266
- const step = 40;
267
- const arrows = { ArrowLeft: [step, 0], ArrowRight: [-step, 0], ArrowUp: [0, step], ArrowDown: [0, -step] };
268
- const delta = arrows[e.key];
269
- if (!delta)
201
+ const next = panForKey(pan, e.key, zoom, size);
202
+ if (!next)
270
203
  return;
271
204
  e.preventDefault();
272
- setPan(clampPan({ x: pan.x + delta[0], y: pan.y + delta[1] }, zoom, size));
205
+ setPan(next);
273
206
  }
274
207
  function handleFieldKey(e) {
275
208
  if (e.key === "Enter" && !e.shiftKey) {
@@ -302,57 +235,25 @@ export function EditCard({ versions, activeVersion, onActiveVersionChange, regio
302
235
  };
303
236
  // --- Layout ---
304
237
  // The field sits above its region, or below it when there isn't room above.
305
- const popover = selected && !hidden && size.width
306
- ? (() => {
307
- const left = selected.box.x * size.width * zoom + pan.x;
308
- const top = selected.box.y * size.height * zoom + pan.y;
309
- const bottom = (selected.box.y + selected.box.height) * size.height * zoom + pan.y;
310
- // Below only when it clears the controls along the image's bottom edge.
311
- const reserved = versions.length > 1 ? 100 : 56;
312
- const fitsBelow = bottom + 8 + POPOVER_HEIGHT <= size.height - reserved;
313
- const above = top > POPOVER_HEIGHT + 16 || !fitsBelow;
314
- return {
315
- left: clamp(left, 8, Math.max(8, size.width - POPOVER_WIDTH - 8)),
316
- top: above ? Math.max(top - 8, POPOVER_HEIGHT + 8) : bottom + 8,
317
- above,
318
- };
319
- })()
320
- : null;
238
+ const popover = selected && !hidden && size.width ? regionPopoverPosition(selected.box, zoom, pan, size, versions.length > 1) : null;
321
239
  if (!version)
322
240
  return null;
323
- // The starting width (from `scale`, else `width`), then fitted inside
324
- // maxWidth × maxHeight with the image's shape kept.
325
- // With neither, the card fills the box.
326
- const baseWidth = scale != null && natural ? natural.width * scale : (width ?? maxWidth);
327
- const heightCap = natural && natural.height > 0 ? (maxHeight * natural.width) / natural.height : Infinity;
328
- const cardWidth = Math.round(Math.min(baseWidth, maxWidth, heightCap));
241
+ const cardWidth = editCardWidth(natural, { width, scale, maxWidth, maxHeight });
329
242
  return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "chai-edit-card", style: { "--chai-edit-card-width": `${cardWidth}px` }, children: [_jsxs("div", { ref: viewportRef, className: `chai-edit-card__viewport${zoom > 1 ? " chai-edit-card__viewport--zoomed" : ""}`, role: "group", "aria-label": zoom > 1 ? `Image, zoomed to ${Math.round(zoom * 100)}%. Arrow keys move around.` : "Image", tabIndex: zoom > 1 ? 0 : undefined, onPointerDown: startPan, onPointerMove: handlePointerMove, onPointerUp: handlePointerUp, onPointerCancel: handlePointerUp, onKeyDown: handleViewportKey, children: [_jsx(PageSlide, { slide: slide, onEnd: endSlide, children: _jsxs("div", { className: "chai-edit-card__layer", style: { transform: `translate(${pan.x}px, ${pan.y}px) scale(${zoom})`, "--chai-edit-zoom": zoom }, children: [version.src || version.from ? (_jsx("img", { className: "chai-edit-card__image", src: version.src ?? version.from, alt: alt, draggable: false, onLoad: (e) => setNatural({ width: e.currentTarget.naturalWidth, height: e.currentTarget.naturalHeight }) })) : (_jsx("div", { className: "chai-edit-card__placeholder" })), !hidden &&
330
243
  version.regions.map((r) => (_jsx("span", { className: "chai-edit-card__region chai-edit-card__region--applied", style: boxStyle(r), "aria-hidden": "true" }, `applied-${r.id}`))), !hidden &&
331
244
  ready &&
332
- all.map((r) => (_jsx(RegionShape, { region: r, selected: r.id === selectedId, draft: r.id === draft?.id, disabled: disabled, onDragStart: startRegionDrag, onSelect: select, onKeyDown: handleRegionKey }, r.id)))] }) }), version.status !== "done" && (_jsx("div", { className: "chai-edit-card__status", role: "status", children: version.status === "queued" || version.status === "running" ? (_jsx("span", { className: "chai-edit-card__spinner", role: "img", "aria-label": "Editing" })) : (_jsx("p", { className: "chai-edit-card__status-text", children: version.status === "cancelled" ? "Stopped" : (version.error ?? "Something went wrong.") })) })), _jsxs("div", { className: "chai-card-top chai-card-top--start", onPointerDown: (e) => e.stopPropagation(), children: [_jsx("button", { type: "button", className: "chai-card-top-btn", "aria-label": "Zoom in", title: "Zoom in", disabled: !ready || zoomIndex >= ZOOM_STEPS.length - 1, onClick: () => zoomTo(ZOOM_STEPS[zoomIndex + 1]), children: _jsx(ZoomInIcon, {}) }), _jsxs("span", { className: "chai-edit-card__zoom-level", "aria-live": "polite", children: [Math.round(zoom * 100), "%"] }), _jsx("button", { type: "button", className: "chai-card-top-btn", "aria-label": "Zoom out", title: "Zoom out", disabled: !ready || zoomIndex <= 0, onClick: () => zoomTo(ZOOM_STEPS[zoomIndex - 1]), children: _jsx(ZoomOutIcon, {}) })] }), _jsxs("div", { className: "chai-card-top chai-card-top--end", onPointerDown: (e) => e.stopPropagation(), children: [_jsx("button", { type: "button", className: "chai-card-top-btn", "aria-label": "Download", title: "Download", disabled: disabled || !ready, onClick: handleDownload, children: _jsx(DownloadIcon, {}) }), _jsx("button", { type: "button", className: "chai-card-top-btn", "aria-label": linkCopied ? "Link copied" : "Share", title: linkCopied ? "Link copied" : "Share", disabled: disabled || !ready, onClick: handleShare, children: linkCopied ? _jsx(CheckSymbolIcon, {}) : _jsx(ShareIcon, {}) }), _jsx("button", { type: "button", className: "chai-card-top-btn", "aria-label": "Expand", title: "Expand", disabled: !ready, onClick: () => setExpanded(true), children: _jsx(ExpandIcon, {}) })] }), paginated && hasImage && _jsx("div", { className: "chai-card-fade" }), _jsx("div", { className: "chai-card-bottom", onPointerDown: (e) => e.stopPropagation(), children: _jsxs("div", { className: "chai-card-actions", children: [_jsxs("div", { className: "chai-card-chips", children: [_jsxs("button", { type: "button", className: "chai-card-chip", disabled: disabled || !ready || atCap, title: atCap ? `This model takes up to ${maxRegions} regions` : undefined, onClick: addRegion, children: [_jsx(AddIcon, {}), "New region"] }), _jsxs("button", { type: "button", className: "chai-card-chip", disabled: disabled || all.length === 0, onClick: clearAll, children: [_jsx(CloseSymbolIcon, {}), "Clear regions"] })] }), _jsx("button", { type: "button", className: "chai-card-round", "aria-label": hidden ? "Show regions" : "Hide regions", title: hidden ? "Show regions" : "Hide regions", disabled: !anyRegions, onClick: () => {
245
+ all.map((r) => (_jsx(RegionShape, { region: r, selected: r.id === selectedId, draft: r.id === draft?.id, disabled: disabled, onDragStart: startRegionDrag, onSelect: select, onKeyDown: handleRegionKey }, r.id)))] }) }), version.status !== "done" && (_jsx("div", { className: "chai-edit-card__status", role: "status", children: version.status === "queued" || version.status === "running" ? (_jsx("span", { className: "chai-edit-card__spinner", role: "img", "aria-label": "Editing" })) : (_jsx("p", { className: "chai-edit-card__status-text", children: version.status === "cancelled" ? "Stopped" : (version.error ?? "Something went wrong.") })) })), _jsxs("div", { className: "chai-card-top chai-card-top--start", onPointerDown: (e) => e.stopPropagation(), children: [_jsx("button", { type: "button", className: "chai-card-top-btn", "aria-label": "Zoom in", title: "Zoom in", disabled: !ready || zoomIndex >= EDIT_ZOOM_STEPS.length - 1, onClick: () => zoomTo(EDIT_ZOOM_STEPS[zoomIndex + 1]), children: _jsx(ZoomInIcon, {}) }), _jsxs("span", { className: "chai-edit-card__zoom-level", "aria-live": "polite", children: [Math.round(zoom * 100), "%"] }), _jsx("button", { type: "button", className: "chai-card-top-btn", "aria-label": "Zoom out", title: "Zoom out", disabled: !ready || zoomIndex <= 0, onClick: () => zoomTo(EDIT_ZOOM_STEPS[zoomIndex - 1]), children: _jsx(ZoomOutIcon, {}) })] }), _jsxs("div", { className: "chai-card-top chai-card-top--end", onPointerDown: (e) => e.stopPropagation(), children: [_jsx("button", { type: "button", className: "chai-card-top-btn", "aria-label": "Download", title: "Download", disabled: disabled || !ready, onClick: handleDownload, children: _jsx(DownloadIcon, {}) }), _jsx("button", { type: "button", className: "chai-card-top-btn", "aria-label": linkCopied ? "Link copied" : "Share", title: linkCopied ? "Link copied" : "Share", disabled: disabled || !ready, onClick: handleShare, children: linkCopied ? _jsx(CheckSymbolIcon, {}) : _jsx(ShareIcon, {}) }), _jsx("button", { type: "button", className: "chai-card-top-btn", "aria-label": "Expand", title: "Expand", disabled: !ready, onClick: () => setExpanded(true), children: _jsx(ExpandIcon, {}) })] }), paginated && hasImage && _jsx("div", { className: "chai-card-fade" }), _jsx("div", { className: "chai-card-bottom", onPointerDown: (e) => e.stopPropagation(), children: _jsxs("div", { className: "chai-card-actions", children: [_jsxs("div", { className: "chai-card-chips", children: [_jsxs("button", { type: "button", className: "chai-card-chip", disabled: disabled || !ready || atCap, title: atCap ? `This model takes up to ${maxRegions} regions` : undefined, onClick: addRegion, children: [_jsx(AddIcon, {}), "New region"] }), _jsxs("button", { type: "button", className: "chai-card-chip", disabled: disabled || all.length === 0, onClick: clearAll, children: [_jsx(CloseSymbolIcon, {}), "Clear regions"] })] }), _jsx("button", { type: "button", className: "chai-card-round", "aria-label": hidden ? "Show regions" : "Hide regions", title: hidden ? "Show regions" : "Hide regions", disabled: !anyRegions, onClick: () => {
333
246
  setHidden(!hidden);
334
247
  select(null);
335
248
  }, children: hidden ? _jsx(VisibilityOffIcon, {}) : _jsx(VisibilityIcon, {}) })] }) }), popover && selected && (_jsxs("div", { className: `chai-edit-card__popover${popover.above ? " chai-edit-card__popover--above" : ""}`, style: { left: popover.left, top: popover.top }, role: "dialog", "aria-label": `Region ${selected.number}`, onPointerDown: (e) => e.stopPropagation(), children: [_jsxs("div", { className: "chai-edit-card__popover-header", children: [_jsxs("span", { className: "chai-edit-card__popover-title", children: ["Region ", selected.number] }), _jsx("button", { type: "button", className: "chai-card-top-btn", "aria-label": "Add region to prompt", title: "Add region to prompt", disabled: disabled || !canCheck, onClick: check, children: _jsx(CheckSymbolIcon, {}) }), _jsx("button", { type: "button", className: "chai-card-top-btn", "aria-label": "Delete region", title: "Delete region", disabled: disabled, onClick: remove, children: _jsx(DeleteIcon, {}) })] }), _jsx("textarea", { ref: fieldRef, className: "chai-edit-card__field", value: text, rows: 1, placeholder: "What should change here?", "aria-label": `Instruction for region ${selected.number}`, disabled: disabled, onChange: (e) => setText(e.target.value), onKeyDown: handleFieldKey })] }))] }), paginated && (_jsx("div", { className: `chai-card-pager-bar${hasImage ? " chai-card-pager-bar--over-media" : ""}`, children: _jsx(Pagination, { count: versions.length, index: index, onChange: onActiveVersionChange, label: "Versions", itemLabel: "Version", disabled: disabled }) }))] }), expanded && version.src && (_jsx(ExpandedImage, { src: version.src, alt: alt, onClose: () => setExpanded(false) }))] }));
336
249
  }
337
- const POPOVER_WIDTH = 220;
338
- /** A typical height for the instruction panel (title row and a two-line field), for placing it. */
339
- const POPOVER_HEIGHT = 96;
340
- const CORNERS = ["nw", "ne", "sw", "se"];
341
250
  /** One region on the image: a button to select, move or delete it, its number badge, and corner handles while selected. */
342
251
  function RegionShape({ region, selected, draft, disabled, onDragStart, onSelect, onKeyDown, }) {
343
252
  const name = `Region ${region.number}`;
344
253
  return (_jsxs("div", { className: `chai-edit-card__region${selected ? " chai-edit-card__region--selected" : ""}${draft ? " chai-edit-card__region--draft" : ""}`, style: boxStyle(region), children: [_jsx("button", { type: "button", className: "chai-edit-card__region-body", "aria-label": `${name}${region.prompt ? `: ${region.prompt}` : ", no instruction yet"}. Arrow keys move it, Shift and arrow keys resize it.`, "aria-pressed": selected, disabled: disabled, onPointerDown: (e) => onDragStart(e, region, "move"), onClick: () => onSelect(region), onKeyDown: (e) => onKeyDown(e, region) }), _jsx("span", { className: "chai-edit-card__badge", "aria-hidden": "true", children: region.number }), selected &&
345
- CORNERS.map((corner) => (_jsx("span", { className: `chai-edit-card__handle chai-edit-card__handle--${corner}`, "aria-hidden": "true", onPointerDown: (e) => onDragStart(e, region, corner) }, corner)))] }));
346
- }
347
- function boxStyle(r) {
348
- return {
349
- left: `${r.box.x * 100}%`,
350
- top: `${r.box.y * 100}%`,
351
- width: `${r.box.width * 100}%`,
352
- height: `${r.box.height * 100}%`,
353
- "--chai-region-color": regionColor(r.number),
354
- };
254
+ REGION_CORNERS.map((corner) => (_jsx("span", { className: `chai-edit-card__handle chai-edit-card__handle--${corner}`, "aria-hidden": "true", onPointerDown: (e) => onDragStart(e, region, corner) }, corner)))] }));
355
255
  }
256
+ const boxStyle = (r) => regionBoxStyle(r);
356
257
  /** The full-size image in a modal dialog: focus moves in, Escape closes, and focus returns to Expand. */
357
258
  function ExpandedImage({ src, alt, onClose }) {
358
259
  const closeRef = useRef(null);
@@ -1 +1 @@
1
- {"version":3,"file":"EditCard.js","sourceRoot":"","sources":["../src/EditCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EditCard.js","sourceRoot":"","sources":["../src/EditCard.tsx"],"names":[],"mappings":"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"}
@@ -1,42 +1,7 @@
1
1
  import * as React from "react";
2
- import type { DroppedMedia, ModelOption, MediaKind } from "@chai-ui/core";
3
- import type { MediaAnalysisPromptLength } from "@chai-ui/core";
2
+ import type { ModelOption, MediaKind, MediaAnalysisPromptLength } from "@chai-ui/core";
4
3
  import type { MediaAnalyzerAttachment, MediaAnalyzerSubmitPayload } from "@chai-ui/core";
5
- export type { MediaAnalyzerAttachment, MediaAnalyzerSubmitPayload } from "@chai-ui/core";
6
- /**
7
- * How many attachments of each kind an analysis can hold at once. Image
8
- * defaults to 5 (a sequence/series reads as one analysis); video and audio
9
- * default to 1 — there's no equivalent "a few short clips" case for either,
10
- * and multiple would each need their own kind-specific model/template
11
- * anyway. Only one *kind* is ever active per analysis (see
12
- * `nextMediaAnalyzerAttachments`'s own comment) — these caps only bound how
13
- * many of that one kind can pile up before the drop zone stops accepting
14
- * more.
15
- */
16
- export declare const DEFAULT_MAX_ATTACHMENTS_BY_KIND: Record<MediaKind, number>;
17
- /**
18
- * Applies one newly-read file to the current attachment list (§3 principle
19
- * 3, "derive intent, don't demand it" — extended here to multiple files of
20
- * one kind). Only one media *kind* exists per analysis: dropping a kind
21
- * that doesn't match what's already attached replaces the whole list
22
- * (reference: the design spec — "there can only be one media
23
- * type per analysis... the video thumbnail will replace the image"), never
24
- * merges the two. Within one kind, video/audio are single-slot (a second
25
- * drop replaces the first — there's nothing to "add" to), while image fills
26
- * up to `max` and then silently stops accepting more of the same kind (the
27
- * drop zone's own disabled-looking state is what explains why, not a
28
- * rejected-file dialog for something this low-stakes).
29
- */
30
- export declare function nextMediaAnalyzerAttachments(current: MediaAnalyzerAttachment[], incoming: DroppedMedia, maxByKind?: Record<MediaKind, number>): MediaAnalyzerAttachment[];
31
- /**
32
- * True once a same-kind drop would actually be rejected outright, i.e. the
33
- * drop zone should show its disabled "maximum added" look. Only ever true
34
- * for image: video/audio are single-slot, so a same-kind drop *always*
35
- * succeeds by replacing the one already there (see
36
- * `nextMediaAnalyzerAttachments`'s own comment) — there's no "blocked"
37
- * state to show for either, just the normal "ready to replace" one.
38
- */
39
- export declare function isMediaAnalyzerAtCap(current: MediaAnalyzerAttachment[], maxByKind?: Record<MediaKind, number>): boolean;
4
+ export { DEFAULT_MAX_ATTACHMENTS_BY_KIND, isMediaAnalyzerAtCap, nextMediaAnalyzerAttachments, type MediaAnalyzerAttachment, type MediaAnalyzerSubmitPayload, } from "@chai-ui/core";
40
5
  export interface MediaAnalyzerProps {
41
6
  attachments: MediaAnalyzerAttachment[];
42
7
  onAttachmentsChange: (next: MediaAnalyzerAttachment[]) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"MediaAnalyzer.d.ts","sourceRoot":"","sources":["../src/MediaAnalyzer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAG/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAEzF,YAAY,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAuBzF;;;;;;;;;GASG;AACH,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CASrE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,uBAAuB,EAAE,EAClC,QAAQ,EAAE,YAAY,EACtB,SAAS,GAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAmC,GACrE,uBAAuB,EAAE,CAU3B;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,uBAAuB,EAAE,EAClC,SAAS,GAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAmC,GACrE,OAAO,CAGT;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,uBAAuB,EAAE,CAAC;IACvC,mBAAmB,EAAE,CAAC,IAAI,EAAE,uBAAuB,EAAE,KAAK,IAAI,CAAC;IAC/D,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,oBAAoB,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACjD,wEAAwE;IACxE,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACzD;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;OAIG;IACH,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C;;;;;;;OAOG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD;;;;;;;;OAQG;IACH,YAAY,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC/C,oBAAoB,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACjE,mBAAmB,EAAE;QAAE,KAAK,EAAE,yBAAyB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACxD,oMAAoM;IACpM,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAgBD,wBAAgB,aAAa,CAAC,EAC5B,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,oBAAsD,EACtD,MAAW,EACX,YAAwC,EACxC,OAAO,EACP,aAAa,EACb,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,WAAW,EACX,QAAQ,EACR,OAAO,GACR,EAAE,kBAAkB,qBAgPpB"}
1
+ {"version":3,"file":"MediaAnalyzer.d.ts","sourceRoot":"","sources":["../src/MediaAnalyzer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAGvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAEzF,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,EACpB,4BAA4B,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,GAChC,MAAM,eAAe,CAAC;AAUvB,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,uBAAuB,EAAE,CAAC;IACvC,mBAAmB,EAAE,CAAC,IAAI,EAAE,uBAAuB,EAAE,KAAK,IAAI,CAAC;IAC/D,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,oBAAoB,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACjD,wEAAwE;IACxE,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACzD;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;OAIG;IACH,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C;;;;;;;OAOG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD;;;;;;;;OAQG;IACH,YAAY,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC/C,oBAAoB,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACjE,mBAAmB,EAAE;QAAE,KAAK,EAAE,yBAAyB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACxD,oMAAoM;IACpM,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,aAAa,CAAC,EAC5B,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,oBAAsD,EACtD,MAAW,EACX,YAAwC,EACxC,OAAO,EACP,aAAa,EACb,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,WAAW,EACX,QAAQ,EACR,OAAO,GACR,EAAE,kBAAkB,qBAkMpB"}
@@ -3,9 +3,10 @@ import { createComponent } from "@lit/react";
3
3
  import * as React from "react";
4
4
  import { useEffect, useRef, useState } from "react";
5
5
  import { MdFab } from "@material/web/fab/fab.js";
6
- import { SUGGESTED_ANALYSIS_MODELS } from "@chai-ui/core";
6
+ import { DEFAULT_MAX_ATTACHMENTS_BY_KIND, isMediaAnalyzerAtCap, mediaAnalyzerModelSections, nextMediaAnalyzerAttachments, PROMPT_LENGTH_HINT, readMediaFiles, replacedNote, SUGGESTED_ANALYSIS_MODELS, } from "@chai-ui/core";
7
7
  import { SearchMenu } from "./primitives/SearchMenu.js";
8
8
  import { StopIcon } from "./icons.js";
9
+ export { DEFAULT_MAX_ATTACHMENTS_BY_KIND, isMediaAnalyzerAtCap, nextMediaAnalyzerAttachments, } from "@chai-ui/core";
9
10
  /** See primitives/Toggle.tsx for why `createComponent` is used instead of raw JSX on custom-element tags. */
10
11
  const MdFabElement = createComponent({
11
12
  react: React,
@@ -13,87 +14,6 @@ const MdFabElement = createComponent({
13
14
  elementClass: MdFab,
14
15
  events: { onClick: "click" },
15
16
  });
16
- const ACCEPTED_KINDS = ["image", "video", "audio"];
17
- function detectKind(file) {
18
- const prefix = file.type.split("/")[0];
19
- return ACCEPTED_KINDS.find((k) => k === prefix);
20
- }
21
- function nextAttachmentId() {
22
- return typeof crypto !== "undefined" && "randomUUID" in crypto
23
- ? crypto.randomUUID()
24
- : `attachment-${Date.now()}-${Math.random().toString(36).slice(2)}`;
25
- }
26
- /**
27
- * How many attachments of each kind an analysis can hold at once. Image
28
- * defaults to 5 (a sequence/series reads as one analysis); video and audio
29
- * default to 1 — there's no equivalent "a few short clips" case for either,
30
- * and multiple would each need their own kind-specific model/template
31
- * anyway. Only one *kind* is ever active per analysis (see
32
- * `nextMediaAnalyzerAttachments`'s own comment) — these caps only bound how
33
- * many of that one kind can pile up before the drop zone stops accepting
34
- * more.
35
- */
36
- export const DEFAULT_MAX_ATTACHMENTS_BY_KIND = {
37
- image: 5,
38
- video: 1,
39
- audio: 1,
40
- // `MediaKind`'s fourth member — text is output, never what a drop zone
41
- // itself detects (`detectKind` only ever
42
- // returns image/video/audio) — unreachable here, present only so this
43
- // stays a total map over the real type instead of a partial one.
44
- text: 0,
45
- };
46
- /**
47
- * Applies one newly-read file to the current attachment list (§3 principle
48
- * 3, "derive intent, don't demand it" — extended here to multiple files of
49
- * one kind). Only one media *kind* exists per analysis: dropping a kind
50
- * that doesn't match what's already attached replaces the whole list
51
- * (reference: the design spec — "there can only be one media
52
- * type per analysis... the video thumbnail will replace the image"), never
53
- * merges the two. Within one kind, video/audio are single-slot (a second
54
- * drop replaces the first — there's nothing to "add" to), while image fills
55
- * up to `max` and then silently stops accepting more of the same kind (the
56
- * drop zone's own disabled-looking state is what explains why, not a
57
- * rejected-file dialog for something this low-stakes).
58
- */
59
- export function nextMediaAnalyzerAttachments(current, incoming, maxByKind = DEFAULT_MAX_ATTACHMENTS_BY_KIND) {
60
- const existingKind = current[0]?.kind;
61
- const withId = { ...incoming, id: nextAttachmentId() };
62
- if (!existingKind || existingKind !== incoming.kind)
63
- return [withId];
64
- if (incoming.kind === "image") {
65
- if (current.length >= (maxByKind.image ?? DEFAULT_MAX_ATTACHMENTS_BY_KIND.image))
66
- return current;
67
- return [...current, withId];
68
- }
69
- // video/audio: single slot, a same-kind drop always replaces it.
70
- return [withId];
71
- }
72
- /**
73
- * True once a same-kind drop would actually be rejected outright, i.e. the
74
- * drop zone should show its disabled "maximum added" look. Only ever true
75
- * for image: video/audio are single-slot, so a same-kind drop *always*
76
- * succeeds by replacing the one already there (see
77
- * `nextMediaAnalyzerAttachments`'s own comment) — there's no "blocked"
78
- * state to show for either, just the normal "ready to replace" one.
79
- */
80
- export function isMediaAnalyzerAtCap(current, maxByKind = DEFAULT_MAX_ATTACHMENTS_BY_KIND) {
81
- if (current[0]?.kind !== "image")
82
- return false;
83
- return current.length >= (maxByKind.image ?? DEFAULT_MAX_ATTACHMENTS_BY_KIND.image);
84
- }
85
- const KIND_LABEL = {
86
- image: "Image",
87
- video: "Video",
88
- audio: "Audio",
89
- text: "Text", // unreachable — see DEFAULT_MAX_ATTACHMENTS_BY_KIND's own comment
90
- };
91
- /** Clarifies what "Terse"/"Concise"/"Detailed" actually mean in the "Prompt length" menu's own option rows — design spec, not core prompt data (it's UI copy, not sent to any model), so it lives here rather than in media-analysis-to-prompt.prompts.ts. */
92
- const PROMPT_LENGTH_HINT = {
93
- terse: "short",
94
- concise: "moderate",
95
- detailed: "long",
96
- };
97
17
  export function MediaAnalyzer({ attachments, onAttachmentsChange, onUnsupportedFile, maxAttachmentsByKind = DEFAULT_MAX_ATTACHMENTS_BY_KIND, models = [], modelsByKind = SUGGESTED_ANALYSIS_MODELS, modelId, onModelChange, autoSelectModel, onAutoSelectModelChange, promptLength, onPromptLengthChange, promptLengthOptions, disabled, submitting, submitError, onSubmit, onAbort, }) {
98
18
  const inputRef = useRef(null);
99
19
  const kind = attachments[0]?.kind;
@@ -109,65 +29,23 @@ export function MediaAnalyzer({ attachments, onAttachmentsChange, onUnsupportedF
109
29
  // attachments change some other way.
110
30
  const [replaced, setReplaced] = useState(null);
111
31
  const isDragActive = dragDepth > 0;
112
- /**
113
- * Reads every file first, then folds each resolved one through
114
- * `nextMediaAnalyzerAttachments` in drop order and commits a single final
115
- * result — not one `onAttachmentsChange` call per file as each
116
- * `FileReader` happens to finish. Multiple files read concurrently
117
- * resolve in whatever order the browser gets to them; a call per file
118
- * would have each one apply itself on top of the *pre-drop* `attachments`
119
- * closure instead of the previous file's own result, so dropping 3 images
120
- * at once onto an empty zone could easily end up with just 1 attached
121
- * instead of 3 (last write wins) — same failure shape as Composer.tsx's
122
- * own `handleFilesSelected`, which this mirrors for exactly that reason.
123
- */
124
- function handleFiles(fileList) {
32
+ /** Reads every file first, then applies them in drop order and commits once. */
33
+ async function handleFiles(fileList) {
125
34
  if (!fileList || fileList.length === 0)
126
35
  return;
127
- const files = Array.from(fileList);
128
- let pending = files.length;
129
- const resolved = [];
130
- const settle = () => {
131
- pending -= 1;
132
- if (pending === 0 && resolved.length > 0) {
133
- const next = resolved.reduce((acc, media) => nextMediaAnalyzerAttachments(acc, media, maxAttachmentsByKind), attachments);
134
- const removed = attachments.filter((a) => !next.some((n) => n.id === a.id));
135
- const added = next.filter((n) => !attachments.some((a) => a.id === n.id));
136
- setReplaced(removed.length > 0 && added.length > 0 ? { note: replacedNote(removed, added), for: next } : null);
137
- onAttachmentsChange(next);
138
- }
139
- };
140
- files.forEach((file) => {
141
- const fileKind = detectKind(file);
142
- if (!fileKind) {
143
- onUnsupportedFile?.(file.name);
144
- settle();
145
- return;
146
- }
147
- const reader = new FileReader();
148
- reader.onload = () => {
149
- resolved.push({ src: String(reader.result), kind: fileKind, name: file.name, size: file.size });
150
- settle();
151
- };
152
- reader.onerror = () => {
153
- onUnsupportedFile?.(file.name);
154
- settle();
155
- };
156
- reader.readAsDataURL(file);
157
- });
36
+ const { media, unsupported } = await readMediaFiles(fileList);
37
+ unsupported.forEach((name) => onUnsupportedFile?.(name));
38
+ if (media.length === 0)
39
+ return;
40
+ const next = media.reduce((acc, m) => nextMediaAnalyzerAttachments(acc, m, maxAttachmentsByKind), attachments);
41
+ const note = replacedNote(attachments, next);
42
+ setReplaced(note ? { note, for: next } : null);
43
+ onAttachmentsChange(next);
158
44
  }
159
45
  function handleRemove(id) {
160
46
  onAttachmentsChange(attachments.filter((a) => a.id !== id));
161
47
  }
162
- const modelOptions = kind
163
- ? (modelsByKind[kind] ?? models).map((m) => ({ id: m.id, label: m.label }))
164
- : [];
165
- const sections = kind
166
- ? [{ label: KIND_LABEL[kind], options: modelOptions }]
167
- : ["image", "video", "audio"].map((k) => ({
168
- label: KIND_LABEL[k],
169
- options: (modelsByKind[k] ?? []).map((m) => ({ id: m.id, label: m.label })),
170
- }));
48
+ const sections = mediaAnalyzerModelSections(kind, modelsByKind, models);
171
49
  // Looked up across every section (not just `modelOptions`, which is empty
172
50
  // until a kind is known) — a model picked while the menu still shows all
173
51
  // three kinds' sections (no attachment yet) must still resolve to a real
@@ -235,12 +113,6 @@ function MediaAnalyzerThumbnail({ attachment, onRemove, }) {
235
113
  // --- Icons ---------------------------------------------------------------
236
114
  // Same "trace and inline as a currentColor component" convention Composer.tsx
237
115
  // documents — icons aren't shared across files yet in this codebase.
238
- /** "Replaced 2 images with clip.wav." */
239
- function replacedNote(removed, added) {
240
- const name = (a) => a.name ?? KIND_LABEL[a.kind].toLowerCase();
241
- const describe = (list) => list.length === 1 ? name(list[0]) : `${list.length} ${KIND_LABEL[list[0].kind].toLowerCase()}s`;
242
- return `Replaced ${describe(removed)} with ${describe(added)}.`;
243
- }
244
116
  function ArrowForwardIcon() {
245
117
  return (_jsx("svg", { viewBox: "0 -960 960 960", "aria-hidden": "true", children: _jsx("path", { d: "M686-450H160v-60h526L438-758l42-42 320 320-320 320-42-42 248-248Z", fill: "currentColor" }) }));
246
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MediaAnalyzer.js","sourceRoot":"","sources":["../src/MediaAnalyzer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MediaAnalyzer.js","sourceRoot":"","sources":["../src/MediaAnalyzer.tsx"],"names":[],"mappings":"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"}