Files
pictureFrame-webApp/public/build/assets/UploadView-D2_c32F3.css
T
football2801 e57e711fcc
CI / test (push) Has been cancelled
chore(build): rebuild bundle for v2 crop fix + tighten Device.model
The crop-aspect fix didn't reach production on the prior deploy because
public/build/ was 5 days stale. Rebuilds the SPA bundle so the
panelDims-driven CropEditor / StickerCanvas / FrameCard ship.

Also makes Device.model required in the TS type (was optional in this
session's first cut to placate test fixtures) and adds `model: 'v1'` to
every test Device fixture. A new device row from the API always has a
model, so the type should reflect that — leaving it optional was a trap
for production code that defensively assumed undefined.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 12:29:12 -04:00

2 lines
5.9 KiB
CSS

.crop-editor[data-v-0bb7e2c9]{touch-action:none;background:#000;flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.crop-editor__canvas[data-v-0bb7e2c9]{touch-action:none;cursor:grab;flex:1;min-height:0;display:block}.crop-editor__canvas[data-v-0bb7e2c9]:active{cursor:grabbing}.crop-editor__top[data-v-0bb7e2c9]{pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.crop-editor__label[data-v-0bb7e2c9]{color:#fff;font-size:var(--text-xs);letter-spacing:.04em;background:#0009;border-radius:999px;padding:4px 12px;font-weight:700}.crop-editor__orient[data-v-0bb7e2c9]{pointer-events:auto;background:#0009;border-radius:999px;gap:4px;padding:4px;display:flex}.crop-editor__orient-btn[data-v-0bb7e2c9]{color:#ffffffa6;cursor:pointer;width:36px;height:32px;transition:background var(--duration-fast), color var(--duration-fast);background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;display:flex}.crop-editor__orient-btn--active[data-v-0bb7e2c9]{color:#000;background:#fff}.crop-editor__mismatch[data-v-0bb7e2c9]{pointer-events:auto;background:var(--color-warning,#f59e0b);color:#fff;font-size:var(--text-xs);border-radius:999px;align-items:center;gap:6px;max-width:100%;padding:6px 12px;font-weight:600;line-height:1.3;display:flex}.crop-editor__mismatch svg[data-v-0bb7e2c9]{flex-shrink:0}.crop-editor__actions[data-v-0bb7e2c9]{padding:var(--space-4);justify-content:center;display:flex;position:absolute;bottom:0;left:0;right:0}.crop-editor__use-btn[data-v-0bb7e2c9]{width:100%;max-width:320px}.sticker-tray__section[data-v-9a64b78a]{margin-bottom:var(--space-4)}.sticker-tray__section[data-v-9a64b78a]:last-child{margin-bottom:0}.sticker-tray__heading[data-v-9a64b78a]{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin:0 0 var(--space-2);font-weight:700}.sticker-tray__hint[data-v-9a64b78a]{font-size:var(--text-xs);color:var(--color-text-muted);margin:0 0 var(--space-2);line-height:1.4}.sticker-tray__row[data-v-9a64b78a]{gap:var(--space-2);flex-wrap:wrap;display:flex}.sticker-tray__chip[data-v-9a64b78a]{border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;width:56px;height:56px;transition:background var(--duration-fast), border-color var(--duration-fast);justify-content:center;align-items:center;display:flex}.sticker-tray__chip[data-v-9a64b78a]:active{background:var(--color-surface-2);border-color:var(--color-primary)}.sticker-tray__emoji[data-v-9a64b78a]{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:32px;line-height:1}.sticker-tray__img[data-v-9a64b78a]{object-fit:contain;pointer-events:none;width:40px;height:40px}.sticker-tray__emoji-input[data-v-9a64b78a]{width:100%;min-height:var(--touch-min);padding:0 var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:18px}.sticker-tray__emoji-input[data-v-9a64b78a]:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary)}.sticker-canvas[data-v-23d2647e]{background:#111;flex-direction:column;flex:1;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.sticker-canvas[data-v-23d2647e] .konvajs-content{flex-shrink:0}.sticker-canvas__delete-handle[data-v-23d2647e]{cursor:pointer;color:#fff;z-index:10;touch-action:none;background:#c81e1ef2;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;margin:0;padding:0;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 6px #0006}.sticker-canvas__bar[data-v-23d2647e]{align-items:center;gap:var(--space-3);height:72px;padding:0 var(--space-4);background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;position:absolute;bottom:0;left:0;right:0}.sticker-canvas__add-btn[data-v-23d2647e]{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1.5px solid var(--color-border);color:var(--color-text);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;background:0 0;font-weight:600;display:flex}.sticker-canvas__next-btn[data-v-23d2647e]{min-width:96px;margin-left:auto}.upload-view[data-v-83d73c7a]{z-index:100;background:var(--color-bg);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex;position:fixed;inset:0}.upload-view__header[data-v-83d73c7a]{height:56px;padding:0 var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;display:flex;position:relative}.upload-view__back[data-v-83d73c7a]{cursor:pointer;width:40px;height:40px;color:var(--color-text);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:-8px;display:flex}.upload-view__step-label[data-v-83d73c7a]{font-size:var(--text-base);color:var(--color-text);font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.upload-view__skip[data-v-83d73c7a]{font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;padding:var(--space-2) 0;background:0 0;border:none;margin-left:auto;font-weight:600}.upload-view__stage[data-v-83d73c7a]{flex:1;min-height:0}.upload-view__done[data-v-83d73c7a]{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-6) var(--space-5);text-align:center;flex-direction:column;flex:1;display:flex}.upload-view__done-icon[data-v-83d73c7a]{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:64px;line-height:1}.upload-view__done-title[data-v-83d73c7a]{font-size:var(--text-xl);font-weight:700}.upload-view__done-sub[data-v-83d73c7a]{font-size:var(--text-sm);color:var(--color-text-muted);max-width:260px;line-height:1.5}.upload-view__done-btn[data-v-83d73c7a]{width:100%;max-width:320px}