@cellarnode/ui 0.213.0 → 0.216.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.
Files changed (87) hide show
  1. package/dist/components/branch-resolution-modal.d.ts.map +1 -1
  2. package/dist/components/branch-resolution-modal.js +14 -3
  3. package/dist/components/branch-resolution-modal.js.map +1 -1
  4. package/dist/components/confirmation/confirmation-card.d.ts.map +1 -1
  5. package/dist/components/confirmation/confirmation-card.js +5 -5
  6. package/dist/components/confirmation/confirmation-card.js.map +1 -1
  7. package/dist/components/extraction-phase-stepper.js +2 -2
  8. package/dist/components/extraction-phase-stepper.js.map +1 -1
  9. package/dist/components/image-carousel.d.ts +2 -2
  10. package/dist/components/image-carousel.d.ts.map +1 -1
  11. package/dist/components/image-carousel.js +21 -32
  12. package/dist/components/image-carousel.js.map +1 -1
  13. package/dist/nav/app-shell.d.ts.map +1 -1
  14. package/dist/nav/app-shell.js +18 -3
  15. package/dist/nav/app-shell.js.map +1 -1
  16. package/dist/nav/app-sidebar.js +1 -1
  17. package/dist/nav/app-sidebar.js.map +1 -1
  18. package/dist/nav/sidebar-nav-group.d.ts.map +1 -1
  19. package/dist/nav/sidebar-nav-group.js +1 -1
  20. package/dist/nav/sidebar-nav-group.js.map +1 -1
  21. package/dist/portfolio/edit-portfolio-dialog.d.ts.map +1 -1
  22. package/dist/portfolio/edit-portfolio-dialog.js +81 -12
  23. package/dist/portfolio/edit-portfolio-dialog.js.map +1 -1
  24. package/dist/portfolio/portfolio-folder-card.d.ts.map +1 -1
  25. package/dist/portfolio/portfolio-folder-card.js +13 -1
  26. package/dist/portfolio/portfolio-folder-card.js.map +1 -1
  27. package/dist/portfolio/product-kebab-menu.d.ts.map +1 -1
  28. package/dist/portfolio/product-kebab-menu.js +18 -2
  29. package/dist/portfolio/product-kebab-menu.js.map +1 -1
  30. package/dist/portfolio-import/bottle-photos-history.d.ts.map +1 -1
  31. package/dist/portfolio-import/bottle-photos-history.js +8 -6
  32. package/dist/portfolio-import/bottle-photos-history.js.map +1 -1
  33. package/dist/portfolio-import/bottle-photos-status.d.ts.map +1 -1
  34. package/dist/portfolio-import/bottle-photos-status.js +8 -7
  35. package/dist/portfolio-import/bottle-photos-status.js.map +1 -1
  36. package/dist/portfolio-import/confirmations-panel.d.ts.map +1 -1
  37. package/dist/portfolio-import/confirmations-panel.js +15 -4
  38. package/dist/portfolio-import/confirmations-panel.js.map +1 -1
  39. package/dist/portfolio-import/extraction-activity-stream.js +6 -6
  40. package/dist/portfolio-import/extraction-activity-stream.js.map +1 -1
  41. package/dist/portfolio-import/import-document-pane.d.ts.map +1 -1
  42. package/dist/portfolio-import/import-document-pane.js +2 -2
  43. package/dist/portfolio-import/import-document-pane.js.map +1 -1
  44. package/dist/portfolio-import/import-job-detail-view.d.ts.map +1 -1
  45. package/dist/portfolio-import/import-job-detail-view.js +5 -3
  46. package/dist/portfolio-import/import-job-detail-view.js.map +1 -1
  47. package/dist/portfolio-import/import-job-panels.js +6 -6
  48. package/dist/portfolio-import/import-job-panels.js.map +1 -1
  49. package/dist/portfolio-import/import-job-row.d.ts.map +1 -1
  50. package/dist/portfolio-import/import-job-row.js +3 -2
  51. package/dist/portfolio-import/import-job-row.js.map +1 -1
  52. package/dist/portfolio-import/import-product-progress.js +1 -1
  53. package/dist/portfolio-import/import-product-progress.js.map +1 -1
  54. package/dist/portfolio-import/import-products-dialog.d.ts.map +1 -1
  55. package/dist/portfolio-import/import-products-dialog.js +2 -2
  56. package/dist/portfolio-import/import-products-dialog.js.map +1 -1
  57. package/dist/portfolio-import/imports-filter-bar.js +1 -1
  58. package/dist/portfolio-import/imports-filter-bar.js.map +1 -1
  59. package/dist/portfolio-import/imports-hub-shell.js +1 -1
  60. package/dist/portfolio-import/imports-hub-shell.js.map +1 -1
  61. package/dist/portfolio-import/imports-page-header.js +2 -2
  62. package/dist/portfolio-import/imports-page-header.js.map +1 -1
  63. package/dist/portfolio-import/imports-tab-strip.d.ts.map +1 -1
  64. package/dist/portfolio-import/imports-tab-strip.js +8 -13
  65. package/dist/portfolio-import/imports-tab-strip.js.map +1 -1
  66. package/dist/portfolio-import/product-gallery.js +4 -4
  67. package/dist/portfolio-import/product-gallery.js.map +1 -1
  68. package/dist/portfolio-import/review-queue-panel.js +1 -1
  69. package/dist/portfolio-import/review-queue-panel.js.map +1 -1
  70. package/dist/portfolio-import/session/import-job.d.ts.map +1 -1
  71. package/dist/portfolio-import/session/import-job.js +25 -6
  72. package/dist/portfolio-import/session/import-job.js.map +1 -1
  73. package/dist/portfolio-import/session/import-keys.d.ts +2 -2
  74. package/dist/portfolio-import/session/import-keys.d.ts.map +1 -1
  75. package/dist/portfolio-import/session/import-keys.js +2 -2
  76. package/dist/portfolio-import/session/import-keys.js.map +1 -1
  77. package/dist/portfolio-import/session/import-start.d.ts.map +1 -1
  78. package/dist/portfolio-import/session/import-start.js +10 -9
  79. package/dist/portfolio-import/session/import-start.js.map +1 -1
  80. package/dist/portfolio-import/session/use-import-detail-recovery.d.ts +3 -0
  81. package/dist/portfolio-import/session/use-import-detail-recovery.d.ts.map +1 -0
  82. package/dist/portfolio-import/session/use-import-detail-recovery.js +118 -0
  83. package/dist/portfolio-import/session/use-import-detail-recovery.js.map +1 -0
  84. package/dist/product-editor/tabs/product-gallery-tab.d.ts.map +1 -1
  85. package/dist/product-editor/tabs/product-gallery-tab.js +20 -19
  86. package/dist/product-editor/tabs/product-gallery-tab.js.map +1 -1
  87. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"app-sidebar.js","sourceRoot":"","sources":["../../src/nav/app-sidebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-sidebar.js","sourceRoot":"","sources":["../../src/nav/app-sidebar.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar-nav-group.d.ts","sourceRoot":"","sources":["../../src/nav/sidebar-nav-group.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAEtE,UAAU,oBAAoB;IAC5B,KAAK,EAAE,wBAAwB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,YAAY,CAAC;CAC1B;AAQD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,OAAO,EACP,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,UAAU,GACX,EAAE,oBAAoB,2CAuItB"}
1
+ {"version":3,"file":"sidebar-nav-group.d.ts","sourceRoot":"","sources":["../../src/nav/sidebar-nav-group.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAEtE,UAAU,oBAAoB;IAC5B,KAAK,EAAE,wBAAwB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,YAAY,CAAC;CAC1B;AAQD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,OAAO,EACP,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,UAAU,GACX,EAAE,oBAAoB,2CAoItB"}
@@ -28,7 +28,7 @@ export function SidebarNavGroup({ group, panelId, open, collapsed, isActive, bes
28
28
  }
29
29
  return (_jsxs("li", { children: [_jsxs("button", { type: "button", onClick: onToggle, "aria-expanded": open, "aria-controls": panelId, className: cn("group flex h-9 w-full items-center gap-x-2.5 rounded-md px-2.5 text-sm/6 transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-sidebar-ring", anyChildActive
30
30
  ? "text-sidebar-foreground font-semibold"
31
- : "text-sidebar-foreground/80 font-medium hover:bg-sidebar-accent/60 hover:text-sidebar-foreground"), children: [_jsx(Icon, { "aria-hidden": "true", className: cn("size-4 shrink-0 transition-opacity", anyChildActive ? "opacity-100" : "opacity-80 group-hover:opacity-100") }), _jsx("span", { className: "font-display truncate", children: group.title }), _jsx(ChevronDown, { "aria-hidden": "true", className: cn("ml-auto size-3.5 shrink-0 opacity-60 transition-transform group-hover:opacity-80", open && "rotate-180") })] }), _jsx(AnimatePresence, { initial: false, children: open && (_jsx(motion.div, { id: panelId, className: "overflow-hidden", initial: { height: 0, opacity: 0 }, animate: { height: "auto", opacity: 1 }, exit: { height: 0, opacity: 0 }, transition: { duration: shouldAnimate ? 0.18 : 0, ease: [0.2, 0, 0, 1] }, children: _jsx("ul", { role: "list", className: "mt-1 ml-4 flex flex-col gap-1 border-l border-sidebar-border pl-2.5", children: group.children.map((child) => {
31
+ : "text-sidebar-foreground/80 font-medium hover:bg-sidebar-accent/60 hover:text-sidebar-foreground"), children: [_jsx(Icon, { "aria-hidden": "true", className: cn("size-4 shrink-0 transition-opacity", anyChildActive ? "opacity-100" : "opacity-80 group-hover:opacity-100") }), _jsx("span", { className: "font-display truncate", children: group.title }), _jsx(ChevronDown, { "aria-hidden": "true", className: cn("ml-auto size-3.5 shrink-0 opacity-60 transition-transform group-hover:opacity-80", open && "rotate-180") })] }), _jsx(AnimatePresence, { initial: false, children: open && (_jsx(motion.div, { id: panelId, className: "overflow-hidden", initial: { height: 0, opacity: 0 }, animate: { height: "auto", opacity: 1 }, exit: { height: 0, opacity: 0 }, transition: { duration: shouldAnimate ? 0.18 : 0, ease: [0.2, 0, 0, 1] }, children: _jsx("ul", { role: "list", className: "mt-1 ml-4 flex flex-col gap-1 pl-2.5", children: group.children.map((child) => {
32
32
  // Exact winner only (not prefix `isActive`) so one child highlights;
33
33
  // `anyChildActive` keeps prefix-match for group open/header. (CEL-983)
34
34
  const active = child.href === bestActiveHref;
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar-nav-group.js","sourceRoot":"","sources":["../../src/nav/sidebar-nav-group.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAyBnD,MAAM,UAAU,GACd,gLAAgL,CAAC;AACnL,MAAM,YAAY,GAAG,8CAA8C,CAAC;AACpE,MAAM,cAAc,GAClB,iGAAiG,CAAC;AAEpG,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,OAAO,EACP,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,UAAU,GACW;IACrB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IAEzC,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CACL,aACE,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,SAAS,EAAE,EAAE,CACX,iDAAiD,EACjD,cAAc,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,4BAA4B,CAC1E,YAED,KAAC,IAAI,mBAAa,MAAM,EAAC,SAAS,EAAC,4BAA4B,GAAG,GAC/D,CACN,CAAC;QACJ,CAAC;QACD,OAAO,CACL,uBACG,UAAU,CAAC;gBACV,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,YAAY,EAAE,KAAK,CAAC,KAAK;gBACzB,SAAS,EAAE,EAAE,CACX,2JAA2J,EAC3J,cAAc;oBACZ,CAAC,CAAC,6EAA6E;oBAC/E,CAAC,CAAC,qFAAqF,CAC1F;gBACD,QAAQ,EAAE,KAAC,IAAI,mBAAa,MAAM,EAAC,SAAS,EAAC,iBAAiB,GAAG;aAClE,CAAC,GACC,CACN,CAAC;IACJ,CAAC;IAED,OAAO,CACL,yBACE,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,mBACF,IAAI,mBACJ,OAAO,EACtB,SAAS,EAAE,EAAE,CACX,8KAA8K,EAC9K,cAAc;oBACZ,CAAC,CAAC,uCAAuC;oBACzC,CAAC,CAAC,iGAAiG,CACtG,aAED,KAAC,IAAI,mBACS,MAAM,EAClB,SAAS,EAAE,EAAE,CACX,oCAAoC,EACpC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,oCAAoC,CACtE,GACD,EACF,eAAM,SAAS,EAAC,uBAAuB,YAAE,KAAK,CAAC,KAAK,GAAQ,EAC5D,KAAC,WAAW,mBACE,MAAM,EAClB,SAAS,EAAE,EAAE,CACX,kFAAkF,EAClF,IAAI,IAAI,YAAY,CACrB,GACD,IACK,EACT,KAAC,eAAe,IAAC,OAAO,EAAE,KAAK,YAC5B,IAAI,IAAI,CACP,KAAC,MAAM,CAAC,GAAG,IACT,EAAE,EAAE,OAAO,EACX,SAAS,EAAC,iBAAiB,EAC3B,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAClC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,EACvC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAC/B,UAAU,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,YAExE,aACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,qEAAqE,YAE9E,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;4BAC5B,qEAAqE;4BACrE,uEAAuE;4BACvE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC;4BAC7C,MAAM,KAAK,GACT,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;4BAC7E,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;4BAC7B,OAAO,CACL,uBACG,UAAU,CAAC;oCACV,IAAI,EAAE,KAAK,CAAC,IAAI;oCAChB,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;oCAC3C,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;oCACjE,QAAQ,EAAE,CACR,8BACG,MAAM,IAAI,KAAC,aAAa,IAAC,aAAa,EAAE,aAAa,GAAI,EAC1D,gBAAM,SAAS,EAAC,0DAA0D,aACvE,SAAS,IAAI,CACZ,KAAC,SAAS,mBACI,MAAM,EAClB,SAAS,EAAE,EAAE,CACX,oCAAoC,EACpC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,oCAAoC,CAC9D,GACD,CACH,EACD,eAAM,SAAS,EAAC,uBAAuB,YAAE,KAAK,CAAC,KAAK,GAAQ,EAC3D,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CACf,8BACc,MAAM,EAClB,SAAS,EAAE,EAAE,CACX,kEAAkE,EAClE,MAAM;4DACJ,CAAC,CAAC,yDAAyD;4DAC3D,CAAC,CAAC,qDAAqD,CAC1D,YAEA,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GACtB,CACR,CAAC,CAAC,CAAC,IAAI,IACH,IACN,CACJ;iCACF,CAAC,IAnCK,KAAK,CAAC,IAAI,CAoCd,CACN,CAAC;wBACJ,CAAC,CAAC,GACC,GACM,CACd,GACe,IACf,CACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sidebar-nav-group.js","sourceRoot":"","sources":["../../src/nav/sidebar-nav-group.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"edit-portfolio-dialog.d.ts","sourceRoot":"","sources":["../../src/portfolio/edit-portfolio-dialog.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE7D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,aAAa,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,CAAC,CAAC,EAAE,WAAW,CAAC;CACjB;AAUD,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,UAAU,EACV,aAAa,EACb,YAAoB,EACpB,cAAsB,EACtB,KAAY,EACZ,CAAY,GACb,EAAE,wBAAwB,2CAkT1B"}
1
+ {"version":3,"file":"edit-portfolio-dialog.d.ts","sourceRoot":"","sources":["../../src/portfolio/edit-portfolio-dialog.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE7D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,aAAa,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,CAAC,CAAC,EAAE,WAAW,CAAC;CACjB;AAWD,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,UAAU,EACV,aAAa,EACb,YAAoB,EACpB,cAAsB,EACtB,KAAY,EACZ,CAAY,GACb,EAAE,wBAAwB,2CAmZ1B"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useRef, useState } from "react";
2
+ import { useLayoutEffect, useRef, useState } from "react";
3
3
  import { Upload, Trash } from "lucide-react";
4
4
  import { ImageCropDialog } from "../image-upload/image-crop-dialog.js";
5
5
  import { Dialog, DialogActions, DialogBody, DialogDescription, DialogTitle, } from "../components/dialog.js";
@@ -7,6 +7,7 @@ import { Button } from "../components/button.js";
7
7
  import { Input } from "../components/input.js";
8
8
  import { Textarea } from "../components/textarea.js";
9
9
  import { Description, ErrorMessage, Field, Label } from "../components/fieldset.js";
10
+ import { loadImage } from "../image-upload/use-image-crop.js";
10
11
  import { CROP_OUTPUT, PORTFOLIO_COVER_ASPECT, PORTFOLIO_COVER_PLACEMENTS, croppedBlobToFile, } from "../image-upload/portfolio-config.js";
11
12
  const MAX_NAME_LENGTH = 255;
12
13
  const MAX_DESCRIPTION_LENGTH = 2000;
@@ -19,13 +20,29 @@ export function EditPortfolioDialog({ open, onClose, portfolio, onSubmit, onSetC
19
20
  const [fieldErrors, setFieldErrors] = useState({});
20
21
  const [localFormError, setLocalFormError] = useState(null);
21
22
  const [coverLoadFailed, setCoverLoadFailed] = useState(false);
22
- const [cropFile, setCropFile] = useState(null);
23
+ const [cropSession, setCropSession] = useState(null);
24
+ const [isPreparingCover, setIsPreparingCover] = useState(false);
25
+ const [resumeCoverFocus, setResumeCoverFocus] = useState(false);
23
26
  const fileInputRef = useRef(null);
24
27
  const nameInputRef = useRef(null);
28
+ const coverControlRef = useRef(null);
29
+ const portfolioId = portfolio?.id ?? null;
30
+ const operationGenerationRef = useRef(0);
31
+ const currentDialogRef = useRef({ open, portfolioId });
32
+ useLayoutEffect(() => {
33
+ currentDialogRef.current = { open, portfolioId };
34
+ operationGenerationRef.current += 1;
35
+ return () => {
36
+ operationGenerationRef.current += 1;
37
+ };
38
+ }, [open, portfolioId]);
25
39
  const [lastSeedKey, setLastSeedKey] = useState(null);
26
40
  const seedKey = open && portfolio ? portfolio.id : null;
27
41
  if (seedKey !== lastSeedKey) {
28
42
  setLastSeedKey(seedKey);
43
+ setCropSession(null);
44
+ setIsPreparingCover(false);
45
+ setResumeCoverFocus(false);
29
46
  if (portfolio && seedKey) {
30
47
  setName(portfolio.name);
31
48
  setDescription(portfolio.description ?? "");
@@ -38,6 +55,20 @@ export function EditPortfolioDialog({ open, onClose, portfolio, onSubmit, onSetC
38
55
  const coverImage = portfolio?.coverUrl
39
56
  ? { url: portfolio.coverUrl, altText: portfolio.coverAltText }
40
57
  : null;
58
+ const invalidateCoverOperation = () => {
59
+ operationGenerationRef.current += 1;
60
+ setCropSession(null);
61
+ setIsPreparingCover(false);
62
+ };
63
+ const handleClose = () => {
64
+ if (isSubmitting || isCoverPending)
65
+ return;
66
+ invalidateCoverOperation();
67
+ onClose();
68
+ };
69
+ const isCurrentCoverOperation = (generation, portfolioId) => operationGenerationRef.current === generation &&
70
+ currentDialogRef.current.open &&
71
+ currentDialogRef.current.portfolioId === portfolioId;
41
72
  const handleSave = async () => {
42
73
  if (!portfolio)
43
74
  return;
@@ -65,27 +96,65 @@ export function EditPortfolioDialog({ open, onClose, portfolio, onSubmit, onSetC
65
96
  const nameChanged = trimmedName !== portfolio.name;
66
97
  const descChanged = trimmedDesc !== (portfolio.description ?? "");
67
98
  if (!nameChanged && !descChanged) {
68
- onClose();
99
+ handleClose();
69
100
  return;
70
101
  }
71
102
  setFieldErrors({});
72
103
  setLocalFormError(null);
73
104
  await onSubmit({ name: trimmedName, description: trimmedDesc });
74
105
  };
75
- const handleFileSelect = (e) => {
106
+ const handleFileSelect = async (e) => {
76
107
  const file = e.target.files?.[0];
77
108
  if (fileInputRef.current)
78
109
  fileInputRef.current.value = "";
79
110
  if (!file || !portfolio)
80
111
  return;
81
- setCropFile(file);
112
+ const portfolioId = portfolio.id;
113
+ const generation = operationGenerationRef.current + 1;
114
+ operationGenerationRef.current = generation;
115
+ setCropSession(null);
116
+ setIsPreparingCover(true);
117
+ setLocalFormError(null);
118
+ let loadedImage = null;
119
+ try {
120
+ loadedImage = await loadImage(file);
121
+ if (!isCurrentCoverOperation(generation, portfolioId))
122
+ return;
123
+ if (!Number.isFinite(loadedImage.width) ||
124
+ !Number.isFinite(loadedImage.height) ||
125
+ loadedImage.width <= 0 ||
126
+ loadedImage.height <= 0) {
127
+ setLocalFormError(t("portfolio.folders.edit.invalidCoverImage", "This file could not be opened as an image. Choose a valid image file and try again."));
128
+ setIsPreparingCover(false);
129
+ return;
130
+ }
131
+ coverControlRef.current?.focus();
132
+ setResumeCoverFocus(true);
133
+ setCropSession({ file, generation, portfolioId });
134
+ setIsPreparingCover(false);
135
+ }
136
+ catch {
137
+ if (!isCurrentCoverOperation(generation, portfolioId))
138
+ return;
139
+ setLocalFormError(t("portfolio.folders.edit.invalidCoverImage", "This file could not be opened as an image. Choose a valid image file and try again."));
140
+ setIsPreparingCover(false);
141
+ }
142
+ finally {
143
+ const source = loadedImage?.source;
144
+ source?.close?.();
145
+ }
82
146
  };
83
- const handleCropConfirm = ({ blob }) => {
84
- const file = croppedBlobToFile(blob, cropFile?.name);
147
+ const handleCropConfirm = ({ blob }, session) => {
148
+ if (!session || !isCurrentCoverOperation(session.generation, session.portfolioId))
149
+ return;
150
+ const file = croppedBlobToFile(blob, session.file.name);
85
151
  const altText = coverAltText.trim();
86
152
  void onSetCover({ file, ...(altText ? { altText } : {}) });
87
153
  setCoverLoadFailed(false);
88
- setCropFile(null);
154
+ invalidateCoverOperation();
155
+ };
156
+ const handleCropCancel = () => {
157
+ invalidateCoverOperation();
89
158
  };
90
159
  const handleRemoveCover = () => {
91
160
  if (window.confirm(t("portfolio.folders.edit.confirmRemoveCover", "Are you sure you want to remove the cover image?"))) {
@@ -94,7 +163,7 @@ export function EditPortfolioDialog({ open, onClose, portfolio, onSubmit, onSetC
94
163
  };
95
164
  const isBusy = isSubmitting || isCoverPending;
96
165
  const displayError = localFormError || error;
97
- return (_jsxs(Dialog, { open: open, onClose: onClose, size: "lg", children: [_jsx(DialogTitle, { children: t("portfolio.folders.edit.title", "Edit Collection") }), _jsx(DialogDescription, { children: t("portfolio.folders.edit.description", "Update the collection name, description, or cover image.") }), _jsx(DialogBody, { children: _jsxs("div", { className: "flex flex-col gap-5", children: [displayError ? (_jsx("p", { role: "alert", className: "rounded-lg bg-[var(--tone-danger-soft)] px-3 py-2 text-sm text-[var(--tone-danger-fg)]", children: displayError })) : null, _jsxs("div", { className: "flex flex-col gap-2", children: [_jsxs(Field, { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "edit-portfolio-cover-alt-text", children: t("portfolio.folders.edit.nextCoverAltTextLabel", "Next cover image description") }), _jsx(Input, { id: "edit-portfolio-cover-alt-text", value: coverAltText, maxLength: MAX_COVER_ALT_LENGTH, "aria-describedby": "edit-portfolio-cover-alt-text-hint", onChange: (event) => setCoverAltText(event.target.value), disabled: isBusy }), _jsx(Description, { id: "edit-portfolio-cover-alt-text-hint", children: t("portfolio.folders.edit.nextCoverAltTextHint", "Enter this before choosing or replacing the cover. Save cover in the crop step to include it. Save changes updates only the collection name and description; it does not save this text. Leave empty if decorative.") })] }), _jsx("p", { className: "text-sm font-medium text-foreground", children: t("portfolio.folders.edit.coverLabel", "Cover image") }), _jsxs("div", { className: "flex items-start gap-4", children: [_jsxs("div", { className: "relative size-28 shrink-0 overflow-hidden rounded-xl border border-border/60 bg-muted", children: [coverImage && !coverLoadFailed ? (_jsx("img", { src: coverImage.url, alt: coverImage.altText ?? "", className: "size-full object-cover", onError: () => setCoverLoadFailed(true) })) : (_jsx("div", { className: "flex size-full items-center justify-center bg-muted text-xs text-muted-foreground", children: t("portfolio.folders.edit.coverNone", "No cover") })), isCoverPending && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-background/60 backdrop-blur-sm", children: _jsx("div", { className: "size-6 animate-spin rounded-full border-2 border-primary border-t-transparent motion-reduce:animate-none" }) }))] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", className: "hidden", onChange: handleFileSelect, disabled: isBusy }), _jsxs(Button, { outline: true, type: "button", onClick: () => fileInputRef.current?.click(), disabled: isBusy, children: [_jsx(Upload, { className: "size-4 mr-2" }), coverImage
166
+ return (_jsxs(Dialog, { open: open, onClose: handleClose, initialFocus: resumeCoverFocus ? coverControlRef : nameInputRef, size: "lg", children: [_jsx(DialogTitle, { children: t("portfolio.folders.edit.title", "Edit Collection") }), _jsx(DialogDescription, { children: t("portfolio.folders.edit.description", "Update the collection name, description, or cover image.") }), _jsx(DialogBody, { children: _jsxs("div", { className: "flex flex-col gap-5", children: [displayError ? (_jsx("p", { role: "alert", className: "rounded-lg bg-[var(--tone-danger-soft)] px-3 py-2 text-sm text-[var(--tone-danger-fg)]", children: displayError })) : null, isPreparingCover ? (_jsx("p", { role: "status", className: "text-sm text-muted-foreground", "aria-live": "polite", children: t("portfolio.folders.edit.preparingCover", "Preparing image…") })) : null, _jsxs("div", { className: "flex flex-col gap-2", children: [_jsxs(Field, { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "edit-portfolio-cover-alt-text", children: t("portfolio.folders.edit.nextCoverAltTextLabel", "Next cover image description") }), _jsx(Input, { id: "edit-portfolio-cover-alt-text", value: coverAltText, maxLength: MAX_COVER_ALT_LENGTH, "aria-describedby": "edit-portfolio-cover-alt-text-hint", onChange: (event) => setCoverAltText(event.target.value), disabled: isBusy }), _jsx(Description, { id: "edit-portfolio-cover-alt-text-hint", children: t("portfolio.folders.edit.nextCoverAltTextHint", "Enter this before choosing or replacing the cover. Save cover in the crop step to include it. Save changes updates only the collection name and description; it does not save this text. Leave empty if decorative.") })] }), _jsx("p", { className: "text-sm font-medium text-foreground", children: t("portfolio.folders.edit.coverLabel", "Cover image") }), _jsxs("div", { className: "flex items-start gap-4", children: [_jsxs("div", { className: "relative size-28 shrink-0 overflow-hidden rounded-xl border border-border/60 bg-muted", children: [coverImage && !coverLoadFailed ? (_jsx("img", { src: coverImage.url, alt: coverImage.altText ?? "", className: "size-full object-cover", onError: () => setCoverLoadFailed(true) })) : (_jsx("div", { className: "flex size-full items-center justify-center bg-muted text-xs text-muted-foreground", children: t("portfolio.folders.edit.coverNone", "No cover") })), isCoverPending && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-background/60 backdrop-blur-sm", children: _jsx("div", { className: "size-6 animate-spin rounded-full border-2 border-primary border-t-transparent motion-reduce:animate-none" }) }))] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", className: "hidden", onChange: handleFileSelect, disabled: isBusy }), _jsxs(Button, { ref: coverControlRef, outline: true, type: "button", onClick: () => fileInputRef.current?.click(), disabled: isBusy, children: [_jsx(Upload, { className: "size-4 mr-2" }), coverImage
98
167
  ? t("portfolio.folders.edit.coverReplace", "Replace cover")
99
168
  : t("portfolio.folders.edit.coverUpload", "Upload cover")] }), coverImage && (_jsxs(Button, { plain: true, type: "button", onClick: handleRemoveCover, disabled: isBusy, className: "text-destructive", children: [_jsx(Trash, { className: "size-4 mr-2" }), t("portfolio.folders.edit.coverRemove", "Remove cover")] }))] })] })] }), _jsxs(Field, { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "edit-portfolio-name", children: t("portfolio.folders.edit.nameLabel", "Name") }), _jsx(Input, { id: "edit-portfolio-name", ref: nameInputRef, value: name, invalid: Boolean(fieldErrors.name), "aria-invalid": fieldErrors.name ? true : undefined, "aria-required": "true", "aria-describedby": fieldErrors.name ? "edit-portfolio-name-error" : undefined, onChange: (event) => {
100
169
  setName(event.target.value);
@@ -104,9 +173,9 @@ export function EditPortfolioDialog({ open, onClose, portfolio, onSubmit, onSetC
104
173
  setDescription(event.target.value);
105
174
  setFieldErrors((current) => ({ ...current, description: undefined }));
106
175
  setLocalFormError(null);
107
- }, placeholder: t("portfolio.folders.edit.descriptionPlaceholder", "Brief description of this collection"), rows: 3, disabled: isBusy }), fieldErrors.description ? (_jsx(ErrorMessage, { id: "edit-portfolio-description-error", children: fieldErrors.description })) : null] })] }) }), _jsxs(DialogActions, { children: [_jsx(Button, { plain: true, onClick: onClose, disabled: isBusy, children: t("portfolio.folders.edit.cancel", "Cancel") }), _jsx(Button, { color: "emerald", onClick: () => void handleSave(), disabled: isBusy, children: isSubmitting
176
+ }, placeholder: t("portfolio.folders.edit.descriptionPlaceholder", "Brief description of this collection"), rows: 3, disabled: isBusy }), fieldErrors.description ? (_jsx(ErrorMessage, { id: "edit-portfolio-description-error", children: fieldErrors.description })) : null] })] }) }), _jsxs(DialogActions, { children: [_jsx(Button, { plain: true, onClick: handleClose, disabled: isBusy, children: t("portfolio.folders.edit.cancel", "Cancel") }), _jsx(Button, { color: "emerald", onClick: () => void handleSave(), disabled: isBusy, children: isSubmitting
108
177
  ? t("portfolio.folders.edit.saving", "Saving...")
109
- : t("portfolio.folders.edit.save", "Save changes") })] }), cropFile && (_jsx(ImageCropDialog, { open: true, file: cropFile, aspect: PORTFOLIO_COVER_ASPECT, placements: PORTFOLIO_COVER_PLACEMENTS, output: CROP_OUTPUT, labels: {
178
+ : t("portfolio.folders.edit.save", "Save changes") })] }), cropSession && (_jsx(ImageCropDialog, { open: true, file: cropSession.file, aspect: PORTFOLIO_COVER_ASPECT, placements: PORTFOLIO_COVER_PLACEMENTS, output: CROP_OUTPUT, labels: {
110
179
  title: t("portfolio.folders.edit.coverCropTitle", "Crop cover image"),
111
180
  description: t("portfolio.folders.edit.coverCropDescription", "Drag to reposition and zoom. You will see how the cover appears on the collection card and thumbnail."),
112
181
  zoom: t("portfolio.folders.edit.coverCropZoom", "Zoom"),
@@ -114,6 +183,6 @@ export function EditPortfolioDialog({ open, onClose, portfolio, onSubmit, onSetC
114
183
  cancel: t("portfolio.folders.edit.cancel", "Cancel"),
115
184
  confirm: t("portfolio.folders.edit.coverCropConfirm", "Save cover"),
116
185
  close: t("portfolio.folders.edit.close", "Close"),
117
- }, onConfirm: handleCropConfirm, onCancel: () => setCropFile(null) }))] }));
186
+ }, onConfirm: (payload) => handleCropConfirm(payload, cropSession), onCancel: handleCropCancel }))] }));
118
187
  }
119
188
  //# sourceMappingURL=edit-portfolio-dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit-portfolio-dialog.js","sourceRoot":"","sources":["../../src/portfolio/edit-portfolio-dialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit-portfolio-dialog.js","sourceRoot":"","sources":["../../src/portfolio/edit-portfolio-dialog.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EACL,MAAM,EACN,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,kCAAkC,CAAC;AAmB1C,MAAM,eAAe,GAAG,GAAG,CAAC;AAC5B,MAAM,sBAAsB,GAAG,IAAI,CAAC;AACpC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC,MAAM,QAAQ,GAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,GAAG,CAAC;AAEjE,MAAM,UAAU,mBAAmB,CAAC,EAClC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,UAAU,EACV,aAAa,EACb,YAAY,GAAG,KAAK,EACpB,cAAc,GAAG,KAAK,EACtB,KAAK,GAAG,IAAI,EACZ,CAAC,GAAG,QAAQ,GACa;IACzB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAc,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC1E,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IACzE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,MAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,SAAS,EAAE,EAAE,IAAI,IAAI,CAAC;IAC1C,MAAM,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAEvD,eAAe,CAAC,GAAG,EAAE;QACnB,gBAAgB,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QACjD,sBAAsB,CAAC,OAAO,IAAI,CAAC,CAAC;QACpC,OAAO,GAAG,EAAE;YACV,sBAAsB,CAAC,OAAO,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAExB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAExD,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,cAAc,CAAC,OAAO,CAAC,CAAC;QACxB,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3B,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACxB,cAAc,CAAC,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;YAC5C,eAAe,CAAC,EAAE,CAAC,CAAC;YACpB,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC1B,cAAc,CAAC,EAAE,CAAC,CAAC;YACnB,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,EAAE,QAAQ;QACpC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE;QAC9D,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,wBAAwB,GAAG,GAAG,EAAE;QACpC,sBAAsB,CAAC,OAAO,IAAI,CAAC,CAAC;QACpC,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,YAAY,IAAI,cAAc;YAAE,OAAO;QAC3C,wBAAwB,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,CAAC,UAAkB,EAAE,WAAmB,EAAE,EAAE,CAC1E,sBAAsB,CAAC,OAAO,KAAK,UAAU;QAC7C,gBAAgB,CAAC,OAAO,CAAC,IAAI;QAC7B,gBAAgB,CAAC,OAAO,CAAC,WAAW,KAAK,WAAW,CAAC;IAEvD,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,MAAM,GAAgB,EAAE,CAAC;QAE/B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,uCAAuC,EAAE,kBAAkB,CAAC,CAAC;QAC/E,CAAC;aAAM,IAAI,WAAW,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YAChD,MAAM,CAAC,IAAI,GAAG,CAAC,CACb,oCAAoC,EACpC,uCAAuC,CACxC,CAAC;QACJ,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;YAChD,MAAM,CAAC,WAAW,GAAG,CAAC,CACpB,2CAA2C,EAC3C,+CAA+C,CAChD,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,cAAc,CAAC,MAAM,CAAC,CAAC;YACvB,iBAAiB,CACf,CAAC,CAAC,qCAAqC,EAAE,8CAA8C,CAAC,CACzF,CAAC;YACF,IAAI,MAAM,CAAC,IAAI;gBAAE,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;;gBAC1C,QAAQ,CAAC,cAAc,CAAC,4BAA4B,CAAC,EAAE,KAAK,EAAE,CAAC;YACpE,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC;QACnD,MAAM,WAAW,GAAG,WAAW,KAAK,CAAC,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,WAAW,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxB,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,EAAE,CAAsC,EAAE,EAAE;QACxE,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,YAAY,CAAC,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;QAC1D,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAChC,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,GAAG,CAAC,CAAC;QACtD,sBAAsB,CAAC,OAAO,GAAG,UAAU,CAAC;QAC5C,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1B,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAExB,IAAI,WAAW,GAAiD,IAAI,CAAC;QACrE,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,WAAW,CAAC;gBAAE,OAAO;YAE9D,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;gBACnC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;gBACpC,WAAW,CAAC,KAAK,IAAI,CAAC;gBACtB,WAAW,CAAC,MAAM,IAAI,CAAC,EACvB,CAAC;gBACD,iBAAiB,CACf,CAAC,CACC,0CAA0C,EAC1C,qFAAqF,CACtF,CACF,CAAC;gBACF,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YACjC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC1B,cAAc,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;YAClD,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,WAAW,CAAC;gBAAE,OAAO;YAC9D,iBAAiB,CACf,CAAC,CACC,0CAA0C,EAC1C,qFAAqF,CACtF,CACF,CAAC;YACF,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,GAAG,WAAW,EAAE,MAEf,CAAC;YACd,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,EAAE,IAAI,EAAkB,EAAE,OAA2B,EAAE,EAAE;QAClF,IAAI,CAAC,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC;YAAE,OAAO;QAC1F,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QACpC,KAAK,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3D,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1B,wBAAwB,EAAE,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,wBAAwB,EAAE,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,IACE,MAAM,CAAC,OAAO,CACZ,CAAC,CACC,2CAA2C,EAC3C,kDAAkD,CACnD,CACF,EACD,CAAC;YACD,KAAK,aAAa,EAAE,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,IAAI,cAAc,CAAC;IAC9C,MAAM,YAAY,GAAG,cAAc,IAAI,KAAK,CAAC;IAE7C,OAAO,CACL,MAAC,MAAM,IACL,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,EAC/D,IAAI,EAAC,IAAI,aAET,KAAC,WAAW,cAAE,CAAC,CAAC,8BAA8B,EAAE,iBAAiB,CAAC,GAAe,EACjF,KAAC,iBAAiB,cACf,CAAC,CACA,oCAAoC,EACpC,0DAA0D,CAC3D,GACiB,EAEpB,KAAC,UAAU,cACT,eAAK,SAAS,EAAC,qBAAqB,aACjC,YAAY,CAAC,CAAC,CAAC,CACd,YACE,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,wFAAwF,YAEjG,YAAY,GACX,CACL,CAAC,CAAC,CAAC,IAAI,EAEP,gBAAgB,CAAC,CAAC,CAAC,CAClB,YAAG,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,+BAA+B,eAAW,QAAQ,YAC1E,CAAC,CAAC,uCAAuC,EAAE,kBAAkB,CAAC,GAC7D,CACL,CAAC,CAAC,CAAC,IAAI,EAER,eAAK,SAAS,EAAC,qBAAqB,aAClC,MAAC,KAAK,IAAC,SAAS,EAAC,qBAAqB,aACpC,KAAC,KAAK,IAAC,OAAO,EAAC,+BAA+B,YAC3C,CAAC,CAAC,8CAA8C,EAAE,8BAA8B,CAAC,GAC5E,EACR,KAAC,KAAK,IACJ,EAAE,EAAC,+BAA+B,EAClC,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,oBAAoB,sBACd,oCAAoC,EACrD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACxD,QAAQ,EAAE,MAAM,GAChB,EACF,KAAC,WAAW,IAAC,EAAE,EAAC,oCAAoC,YACjD,CAAC,CACA,6CAA6C,EAC7C,qNAAqN,CACtN,GACW,IACR,EAER,YAAG,SAAS,EAAC,qCAAqC,YAC/C,CAAC,CAAC,mCAAmC,EAAE,aAAa,CAAC,GACpD,EACJ,eAAK,SAAS,EAAC,wBAAwB,aACrC,eAAK,SAAS,EAAC,uFAAuF,aACnG,UAAU,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAChC,cACE,GAAG,EAAE,UAAU,CAAC,GAAG,EACnB,GAAG,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE,EAC7B,SAAS,EAAC,wBAAwB,EAClC,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,GACvC,CACH,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,mFAAmF,YAC/F,CAAC,CAAC,kCAAkC,EAAE,UAAU,CAAC,GAC9C,CACP,EACA,cAAc,IAAI,CACjB,cAAK,SAAS,EAAC,qFAAqF,YAClG,cAAK,SAAS,EAAC,0GAA0G,GAAG,GACxH,CACP,IACG,EACN,eAAK,SAAS,EAAC,qBAAqB,aAClC,gBACE,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,SAAS,EAChB,SAAS,EAAC,QAAQ,EAClB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,MAAM,GAChB,EACF,MAAC,MAAM,IACL,GAAG,EAAE,eAAe,EACpB,OAAO,QACP,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,EAC5C,QAAQ,EAAE,MAAM,aAEhB,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,GAAG,EACjC,UAAU;4DACT,CAAC,CAAC,CAAC,CAAC,qCAAqC,EAAE,eAAe,CAAC;4DAC3D,CAAC,CAAC,CAAC,CAAC,oCAAoC,EAAE,cAAc,CAAC,IACpD,EACR,UAAU,IAAI,CACb,MAAC,MAAM,IACL,KAAK,QACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAC,kBAAkB,aAE5B,KAAC,KAAK,IAAC,SAAS,EAAC,aAAa,GAAG,EAChC,CAAC,CAAC,oCAAoC,EAAE,cAAc,CAAC,IACjD,CACV,IACG,IACF,IACF,EAGN,MAAC,KAAK,IAAC,SAAS,EAAC,qBAAqB,aACpC,KAAC,KAAK,IAAC,OAAO,EAAC,qBAAqB,YACjC,CAAC,CAAC,kCAAkC,EAAE,MAAM,CAAC,GACxC,EACR,KAAC,KAAK,IACJ,EAAE,EAAC,qBAAqB,EACxB,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,IAAI,EACX,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,kBACpB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,mBACnC,MAAM,sBACF,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,EAC5E,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wCAClB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wCAC5B,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;wCAC/D,iBAAiB,CAAC,IAAI,CAAC,CAAC;oCAC1B,CAAC,EACD,WAAW,EAAE,CAAC,CACZ,wCAAwC,EACxC,gCAAgC,CACjC,EACD,QAAQ,EAAE,MAAM,GAChB,EACD,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAClB,KAAC,YAAY,IAAC,EAAE,EAAC,2BAA2B,YAAE,WAAW,CAAC,IAAI,GAAgB,CAC/E,CAAC,CAAC,CAAC,IAAI,IACF,EAGR,MAAC,KAAK,IAAC,SAAS,EAAC,qBAAqB,aACpC,KAAC,KAAK,IAAC,OAAO,EAAC,4BAA4B,YACxC,CAAC,CAAC,yCAAyC,EAAE,aAAa,CAAC,GACtD,EACR,KAAC,QAAQ,IACP,EAAE,EAAC,4BAA4B,EAC/B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,kBAC3B,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,sBAEtD,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,SAAS,EAE1E,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wCAClB,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wCACnC,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;wCACtE,iBAAiB,CAAC,IAAI,CAAC,CAAC;oCAC1B,CAAC,EACD,WAAW,EAAE,CAAC,CACZ,+CAA+C,EAC/C,sCAAsC,CACvC,EACD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,MAAM,GAChB,EACD,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CACzB,KAAC,YAAY,IAAC,EAAE,EAAC,kCAAkC,YAChD,WAAW,CAAC,WAAW,GACX,CAChB,CAAC,CAAC,CAAC,IAAI,IACF,IACJ,GACK,EAEb,MAAC,aAAa,eACZ,KAAC,MAAM,IAAC,KAAK,QAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YACjD,CAAC,CAAC,+BAA+B,EAAE,QAAQ,CAAC,GACtC,EACT,KAAC,MAAM,IAAC,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,YACvE,YAAY;4BACX,CAAC,CAAC,CAAC,CAAC,+BAA+B,EAAE,WAAW,CAAC;4BACjD,CAAC,CAAC,CAAC,CAAC,6BAA6B,EAAE,cAAc,CAAC,GAC7C,IACK,EAEf,WAAW,IAAI,CACd,KAAC,eAAe,IACd,IAAI,QACJ,IAAI,EAAE,WAAW,CAAC,IAAI,EACtB,MAAM,EAAE,sBAAsB,EAC9B,UAAU,EAAE,0BAA0B,EACtC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE;oBACN,KAAK,EAAE,CAAC,CAAC,uCAAuC,EAAE,kBAAkB,CAAC;oBACrE,WAAW,EAAE,CAAC,CACZ,6CAA6C,EAC7C,uGAAuG,CACxG;oBACD,IAAI,EAAE,CAAC,CAAC,sCAAsC,EAAE,MAAM,CAAC;oBACvD,cAAc,EAAE,CAAC,CAAC,gDAAgD,EAAE,SAAS,CAAC;oBAC9E,MAAM,EAAE,CAAC,CAAC,+BAA+B,EAAE,QAAQ,CAAC;oBACpD,OAAO,EAAE,CAAC,CAAC,yCAAyC,EAAE,YAAY,CAAC;oBACnE,KAAK,EAAE,CAAC,CAAC,8BAA8B,EAAE,OAAO,CAAC;iBAClD,EACD,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,EAC/D,QAAQ,EAAE,gBAAgB,GAC1B,CACH,IACM,CACV,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"portfolio-folder-card.d.ts","sourceRoot":"","sources":["../../src/portfolio/portfolio-folder-card.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEpF,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,gBAAgB,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACnD,oDAAoD;IACpD,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,qEAAqE;IACrE,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC;IACnD,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,eAAe,EACf,eAAe,EACf,CAAC,EACD,SAAS,GACV,EAAE,wBAAwB,2CA+I1B"}
1
+ {"version":3,"file":"portfolio-folder-card.d.ts","sourceRoot":"","sources":["../../src/portfolio/portfolio-folder-card.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEpF,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,gBAAgB,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACnD,oDAAoD;IACpD,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,qEAAqE;IACrE,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC;IACnD,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,eAAe,EACf,eAAe,EACf,CAAC,EACD,SAAS,GACV,EAAE,wBAAwB,2CA8J1B"}
@@ -58,12 +58,24 @@ export function PortfolioFolderCard({ portfolio, href, onOpen, onAction, kebabSl
58
58
  }
59
59
  })();
60
60
  const isLink = typeof href === "string" && href.length > 0;
61
+ const actionsTriggerRef = React.useRef(null);
62
+ const pendingEditPortfolioIdRef = React.useRef(null);
63
+ const handleMenuCloseAutoFocus = (event) => {
64
+ const pendingEditPortfolioId = pendingEditPortfolioIdRef.current;
65
+ pendingEditPortfolioIdRef.current = null;
66
+ const trigger = actionsTriggerRef.current;
67
+ if (pendingEditPortfolioId !== portfolio.id || !trigger?.isConnected)
68
+ return;
69
+ event.preventDefault();
70
+ trigger.focus();
71
+ onAction?.("edit");
72
+ };
61
73
  // Stretched primary action: covers the whole card via after:inset-0 at z-10;
62
74
  // the kebab layer sits at z-20 above it.
63
75
  const primaryActionClassName = "block line-clamp-2 text-left break-words outline-hidden after:absolute after:inset-0 after:z-10 after:rounded-xl focus-visible:after:outline-2 focus-visible:after:outline-offset-2 focus-visible:after:outline-ring";
64
76
  const title = isLink ? (_jsx("a", { href: href, className: primaryActionClassName, children: portfolio.name })) : typeof onOpen === "function" ? (_jsx("button", { type: "button", onClick: onOpen, className: primaryActionClassName, children: portfolio.name })) : (portfolio.name);
65
77
  const kebab = kebabSlot ??
66
- (onAction ? (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(CardActionsTrigger, { size: 32, className: "border border-border bg-card/95 text-card-foreground shadow-sm hover:bg-card", "aria-label": tt("folderCard.actionsLabel", "Collection actions") }) }), _jsxs(DropdownMenuContent, { align: "end", children: [_jsx(DropdownMenuItem, { onSelect: () => onAction("edit"), children: tt("folderCard.edit", "Edit details") }), _jsx(DropdownMenuItem, { onSelect: () => onAction(portfolio.isDefault ? "remove-default" : "set-default"), children: portfolio.isDefault
78
+ (onAction ? (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(CardActionsTrigger, { ref: actionsTriggerRef, size: 32, className: "border border-border bg-card/95 text-card-foreground shadow-sm hover:bg-card", "aria-label": tt("folderCard.actionsLabel", "Collection actions") }) }), _jsxs(DropdownMenuContent, { align: "end", onCloseAutoFocus: handleMenuCloseAutoFocus, children: [_jsx(DropdownMenuItem, { onSelect: () => (pendingEditPortfolioIdRef.current = portfolio.id), children: tt("folderCard.edit", "Edit details") }), _jsx(DropdownMenuItem, { onSelect: () => onAction(portfolio.isDefault ? "remove-default" : "set-default"), children: portfolio.isDefault
67
79
  ? tt("folderCard.removeDefault", "Remove default")
68
80
  : tt("folderCard.setDefault", "Set as default") }), _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { variant: "destructive", onSelect: () => onAction("delete"), children: tt("folderCard.delete", "Delete collection") })] })] })) : null);
69
81
  return (_jsxs("div", { className: cn("group relative flex h-full flex-col overflow-hidden rounded-xl border border-border bg-card transition-transform duration-[var(--duration-standard)] ease-[var(--ease-emphasized)] hover:-translate-y-0.5 hover:border-primary/35 hover:shadow-soft", className), children: [_jsxs("div", { className: "relative overflow-hidden rounded-t-xl", children: [_jsx("div", { className: "relative aspect-[16/10] bg-muted", children: showCover && coverUrl ? (_jsx("img", { src: coverUrl, alt: portfolio.coverAltText ?? "", width: portfolio.coverWidth != null ? Number(portfolio.coverWidth) : undefined, height: portfolio.coverHeight != null ? Number(portfolio.coverHeight) : undefined, className: "size-full object-cover transition-transform duration-[var(--duration-standard)] ease-[var(--ease-emphasized)] group-hover:scale-[1.03]", loading: "lazy", onError: () => setCoverLoadFailed(true) })) : (_jsx("div", { className: "size-full transition-transform duration-[var(--duration-standard)] ease-[var(--ease-emphasized)] group-hover:scale-[1.02]", children: placeholderSlot ?? (_jsx(PortfolioCoverPlaceholder, { entityId: portfolio.id, name: portfolio.name })) })) }), countLabel && (_jsx("div", { className: "absolute bottom-3 left-3 rounded-full border border-border bg-card/95 px-3 py-1.5 text-xs font-semibold text-card-foreground shadow-sm", children: countLabel })), portfolio.isDefault && (_jsx("div", { className: "absolute left-3 top-3 rounded-full border border-border bg-card/95 px-2.5 py-1 text-xs font-semibold uppercase tracking-[0.1em] text-primary shadow-sm", children: tt("folderCard.defaultLabel", "Default") })), kebab && (_jsx("div", { className: "absolute right-3 top-3 z-20 translate-x-1 scale-90 opacity-0 transition-[transform,opacity] duration-[var(--duration-micro)] ease-[var(--ease-emphasized)] focus-within:translate-x-0 focus-within:scale-100 focus-within:opacity-100 group-hover:translate-x-0 group-hover:scale-100 group-hover:opacity-100 [@media(hover:none)]:translate-x-0 [@media(hover:none)]:scale-100 [@media(hover:none)]:opacity-100", children: kebab }))] }), _jsxs("div", { className: "flex flex-1 flex-col px-4 pb-4 pt-3", children: [_jsx("h3", { className: "font-display text-lg/6 font-semibold tracking-tight text-foreground", children: title }), portfolio.description && (_jsx("p", { className: "mt-1 line-clamp-2 text-sm/5 text-muted-foreground", children: portfolio.description })), updatedLabel && (_jsx("div", { className: "mt-auto pt-3 text-xs/4 text-muted-foreground", children: interpolate(tt("folderCard.updatedAt", "Updated {{when}}"), { when: updatedLabel }) }))] })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"portfolio-folder-card.js","sourceRoot":"","sources":["../../src/portfolio/portfolio-folder-card.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portfolio-folder-card.js","sourceRoot":"","sources":["../../src/portfolio/portfolio-folder-card.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"product-kebab-menu.d.ts","sourceRoot":"","sources":["../../src/portfolio/product-kebab-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AASpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEpE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC/C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,MAAc,EACd,IAAI,EACJ,UAAU,EACV,KAAa,EACb,SAAS,GACV,EAAE,qBAAqB,2CA8CvB"}
1
+ {"version":3,"file":"product-kebab-menu.d.ts","sourceRoot":"","sources":["../../src/portfolio/product-kebab-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAUpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEpE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC/C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,MAAc,EACd,IAAI,EACJ,UAAU,EACV,KAAa,EACb,SAAS,GACV,EAAE,qBAAqB,2CAsEvB"}
@@ -1,15 +1,31 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useRef } from "react";
2
3
  import { CardActionsTrigger } from "../components/card-actions-trigger.js";
3
4
  import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "../components/dropdown-menu.js";
4
5
  export function ProductKebabMenu({ onAction, isWine = false, copy, extraItems, align = "end", className, }) {
6
+ const actionsTriggerRef = useRef(null);
7
+ const pendingMoveRef = useRef(false);
8
+ const handleMenuCloseAutoFocus = (event) => {
9
+ if (!pendingMoveRef.current)
10
+ return;
11
+ pendingMoveRef.current = false;
12
+ const trigger = actionsTriggerRef.current;
13
+ if (!trigger?.isConnected)
14
+ return;
15
+ event.preventDefault();
16
+ trigger.focus();
17
+ onAction("move");
18
+ };
5
19
  const addVariantLabel = isWine
6
20
  ? (copy?.addVintage ?? "Add another vintage")
7
21
  : (copy?.addVariant ?? "Add another option");
8
- return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(CardActionsTrigger, { size: 28, className: className, onClick: (e) => {
22
+ return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(CardActionsTrigger, { ref: actionsTriggerRef, size: 28, className: className, onClick: (e) => {
9
23
  // The kebab sits inside clickable/linked cards; keep the card
10
24
  // navigation from firing when the menu is toggled.
11
25
  e.preventDefault();
12
26
  e.stopPropagation();
13
- }, "aria-label": copy?.actionsLabel ?? "Product actions" }) }), _jsxs(DropdownMenuContent, { align: align, onClick: (e) => e.stopPropagation(), children: [_jsx(DropdownMenuItem, { onSelect: () => onAction("edit"), children: copy?.edit ?? "Edit product" }), _jsx(DropdownMenuItem, { onSelect: () => onAction("add-vintage"), children: addVariantLabel }), _jsx(DropdownMenuItem, { onSelect: () => onAction("add-size"), children: copy?.addSize ?? "Add another size" }), _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { onSelect: () => onAction("move"), children: copy?.move ?? "Move to portfolio…" }), extraItems != null ? (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), extraItems] })) : null, _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { variant: "destructive", onSelect: () => onAction("delete"), children: copy?.delete ?? "Delete" })] })] }));
27
+ }, "aria-label": copy?.actionsLabel ?? "Product actions" }) }), _jsxs(DropdownMenuContent, { align: align, onClick: (e) => e.stopPropagation(), onCloseAutoFocus: handleMenuCloseAutoFocus, children: [_jsx(DropdownMenuItem, { onSelect: () => onAction("edit"), children: copy?.edit ?? "Edit product" }), _jsx(DropdownMenuItem, { onSelect: () => onAction("add-vintage"), children: addVariantLabel }), _jsx(DropdownMenuItem, { onSelect: () => onAction("add-size"), children: copy?.addSize ?? "Add another size" }), _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { onSelect: () => {
28
+ pendingMoveRef.current = true;
29
+ }, children: copy?.move ?? "Move to portfolio…" }), extraItems != null ? (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), extraItems] })) : null, _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { variant: "destructive", onSelect: () => onAction("delete"), children: copy?.delete ?? "Delete" })] })] }));
14
30
  }
15
31
  //# sourceMappingURL=product-kebab-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"product-kebab-menu.js","sourceRoot":"","sources":["../../src/portfolio/product-kebab-menu.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAmCrC,MAAM,UAAU,gBAAgB,CAAC,EAC/B,QAAQ,EACR,MAAM,GAAG,KAAK,EACd,IAAI,EACJ,UAAU,EACV,KAAK,GAAG,KAAK,EACb,SAAS,GACa;IACtB,MAAM,eAAe,GAAG,MAAM;QAC5B,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,IAAI,qBAAqB,CAAC;QAC7C,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,IAAI,oBAAoB,CAAC,CAAC;IAC/C,OAAO,CACL,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,KAAC,kBAAkB,IACjB,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;wBACb,8DAA8D;wBAC9D,mDAAmD;wBACnD,CAAC,CAAC,cAAc,EAAE,CAAC;wBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;oBACtB,CAAC,gBACW,IAAI,EAAE,YAAY,IAAI,iBAAiB,GACnD,GACkB,EACtB,MAAC,mBAAmB,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,aACpE,KAAC,gBAAgB,IAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,YAC/C,IAAI,EAAE,IAAI,IAAI,cAAc,GACZ,EACnB,KAAC,gBAAgB,IAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,YACtD,eAAe,GACC,EACnB,KAAC,gBAAgB,IAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,YACnD,IAAI,EAAE,OAAO,IAAI,kBAAkB,GACnB,EACnB,KAAC,qBAAqB,KAAG,EACzB,KAAC,gBAAgB,IAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,YAC/C,IAAI,EAAE,IAAI,IAAI,oBAAoB,GAClB,EAClB,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CACpB,8BACE,KAAC,qBAAqB,KAAG,EACxB,UAAU,IACV,CACJ,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,qBAAqB,KAAG,EACzB,KAAC,gBAAgB,IAAC,OAAO,EAAC,aAAa,EAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,YACvE,IAAI,EAAE,MAAM,IAAI,QAAQ,GACR,IACC,IACT,CAChB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"product-kebab-menu.js","sourceRoot":"","sources":["../../src/portfolio/product-kebab-menu.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bottle-photos-history.d.ts","sourceRoot":"","sources":["../../src/portfolio-import/bottle-photos-history.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,kEAAkE;IAClE,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,eAAe,EACf,SAAiB,EACjB,KAAK,EACL,CAAC,EACD,SAAS,GACV,EAAE,wBAAwB,2CA4E1B"}
1
+ {"version":3,"file":"bottle-photos-history.d.ts","sourceRoot":"","sources":["../../src/portfolio-import/bottle-photos-history.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,kEAAkE;IAClE,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,eAAe,EACf,SAAiB,EACjB,KAAK,EACL,CAAC,EACD,SAAS,GACV,EAAE,wBAAwB,2CAmF1B"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId } from "react";
2
3
  import { motion } from "motion/react";
3
4
  import { cn } from "../lib/utils.js";
4
5
  import { interpolate } from "../portfolio/interpolate.js";
@@ -11,15 +12,16 @@ import { interpolate } from "../portfolio/interpolate.js";
11
12
  */
12
13
  export function BottlePhotosHistory({ items, monthlyJobCount, isLoading = false, error, t, className, }) {
13
14
  const tt = t ?? ((k, fb) => fb ?? k);
15
+ const titleId = useId();
14
16
  if (error) {
15
- return (_jsx("div", { className: cn("rounded-sm border border-[var(--tone-danger-border)]/40 bg-[var(--tone-danger-soft)] p-3 text-sm text-[var(--tone-danger-fg)]", className), children: tt("history.error_load", "Couldn't load bottle extraction jobs. The extraction service may be down; please retry in a moment.") }));
17
+ return (_jsx("div", { role: "alert", className: cn("rounded-sm border border-[var(--tone-danger-border)]/40 bg-[var(--tone-danger-soft)] p-3 text-sm text-[var(--tone-danger-fg)]", className), children: tt("history.error_load", "Couldn't load bottle extraction jobs. The extraction service may be down; please retry in a moment.") }));
16
18
  }
17
19
  if (isLoading) {
18
20
  return (_jsx("p", { className: cn("text-sm text-muted-foreground", className), children: tt("detail.loading", "Loading…") }));
19
21
  }
20
- return (_jsxs("section", { className: className, children: [_jsx("p", { className: "mb-4 text-sm text-muted-foreground", children: interpolate(tt("history.monthly_counter", "Bottle extractions this month: {{count}}"), {
21
- count: monthlyJobCount,
22
- }) }), items.length === 0 ? (_jsxs(motion.div
22
+ return (_jsxs("section", { "aria-labelledby": titleId, className: className, children: [_jsxs("header", { className: "mb-4 flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between", children: [_jsx("h2", { id: titleId, className: "text-base/6 font-semibold tracking-tight text-foreground", children: tt("history.title", "Bottle extraction history") }), _jsx("p", { className: "text-sm/5 text-muted-foreground", children: interpolate(tt("history.monthly_counter", "Bottle extractions this month: {{count}}"), {
23
+ count: monthlyJobCount,
24
+ }) })] }), items.length === 0 ? (_jsxs(motion.div
23
25
  // Transform-only entrance (the producer used an app-local delayed
24
26
  // fade; opacity tweens on first paint trip the strict axe
25
27
  // color-contrast gate, so the lib rises instead of fading).
@@ -27,7 +29,7 @@ export function BottlePhotosHistory({ items, monthlyJobCount, isLoading = false,
27
29
  // Transform-only entrance (the producer used an app-local delayed
28
30
  // fade; opacity tweens on first paint trip the strict axe
29
31
  // color-contrast gate, so the lib rises instead of fading).
30
- initial: { y: 8 }, animate: { y: 0 }, transition: { duration: 0.35, delay: 0.1, ease: "easeOut" }, className: "rounded-sm border border-dashed border-border p-10 text-center", children: [_jsx("h3", { className: "text-lg font-semibold", children: tt("history.empty", "No bottle extractions yet") }), _jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: tt("history.empty_body", "When you upload a product photo and enable AI extract, we'll cut out the bottle here. Start from any product's gallery.") })] })) : (_jsx("ul", { className: "flex flex-col gap-3", children: items.map((job) => (_jsxs("li", { className: "rounded-sm border border-border p-3 flex items-center gap-3", children: [_jsx(StatusPill, { status: job.status, t: tt }), _jsxs("div", { className: "flex-1", children: [_jsx("p", { className: "text-sm", children: interpolate(tt("history.jobLabel", "Job {{id}}"), { id: job.id.slice(0, 8) }) }), _jsx("p", { className: "text-xs text-muted-foreground", children: new Date(job.createdAt).toLocaleString() })] })] }, job.id))) }))] }));
32
+ initial: { y: 8 }, animate: { y: 0 }, transition: { duration: 0.35, delay: 0.1, ease: "easeOut" }, className: "rounded-sm border border-dashed border-border p-10 text-center", children: [_jsx("h3", { className: "text-lg font-semibold", children: tt("history.empty", "No bottle extractions yet") }), _jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: tt("history.empty_body", "When you upload a product photo and enable AI extract, we'll cut out the bottle here. Start from any product's gallery.") })] })) : (_jsx("ul", { className: "flex flex-col gap-3", children: items.map((job) => (_jsxs("li", { className: "flex min-w-0 flex-col items-start gap-2.5 rounded-xl border border-border/60 bg-card/60 p-3 sm:flex-row sm:items-center sm:gap-3", children: [_jsx(StatusPill, { status: job.status, t: tt }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("p", { className: "truncate text-sm/5 font-medium text-foreground", children: interpolate(tt("history.jobLabel", "Job {{id}}"), { id: job.id.slice(0, 8) }) }), _jsx("p", { className: "text-xs text-muted-foreground", children: _jsx("time", { dateTime: job.createdAt, children: new Date(job.createdAt).toLocaleString() }) })] })] }, job.id))) }))] }));
31
33
  }
32
34
  // ─── StatusPill (folded in from the producer route's local component) ──────
33
35
  /** Known wire statuses → English fallback copy (producer `bottle-photos` locale). */
@@ -49,6 +51,6 @@ function StatusPill({ status, t }) {
49
51
  // CEL-1116: localize BottleJobStatus; unknown wire values fall back to raw.
50
52
  const fallback = STATUS_FALLBACKS[status];
51
53
  const label = fallback === undefined ? status : t(`history.status.${status}`, fallback);
52
- return _jsx("span", { className: `text-xs rounded-xs px-2 py-0.5 ${color}`, children: label });
54
+ return (_jsx("span", { className: `max-w-full min-w-0 break-words rounded-full px-2 py-1 text-xs/4 ${color}`, children: label }));
53
55
  }
54
56
  //# sourceMappingURL=bottle-photos-history.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bottle-photos-history.js","sourceRoot":"","sources":["../../src/portfolio-import/bottle-photos-history.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AA0BvD;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,KAAK,EACL,eAAe,EACf,SAAS,GAAG,KAAK,EACjB,KAAK,EACL,CAAC,EACD,SAAS,GACgB;IACzB,MAAM,EAAE,GAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAElD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CACX,+HAA+H,EAC/H,SAAS,CACV,YAEA,EAAE,CACD,oBAAoB,EACpB,qGAAqG,CACtG,GACG,CACP,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,YAAG,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,YACzD,EAAE,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAC/B,CACL,CAAC;IACJ,CAAC;IAED,OAAO,CACL,mBAAS,SAAS,EAAE,SAAS,aAC3B,YAAG,SAAS,EAAC,oCAAoC,YAC9C,WAAW,CAAC,EAAE,CAAC,yBAAyB,EAAE,0CAA0C,CAAC,EAAE;oBACtF,KAAK,EAAE,eAAe;iBACvB,CAAC,GACA,EACH,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACpB,MAAC,MAAM,CAAC,GAAG;YACT,kEAAkE;YAClE,0DAA0D;YAC1D,4DAA4D;;gBAF5D,kEAAkE;gBAClE,0DAA0D;gBAC1D,4DAA4D;gBAC5D,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EACjB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EACjB,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAC3D,SAAS,EAAC,gEAAgE,aAE1E,aAAI,SAAS,EAAC,uBAAuB,YAClC,EAAE,CAAC,eAAe,EAAE,2BAA2B,CAAC,GAC9C,EACL,YAAG,SAAS,EAAC,oCAAoC,YAC9C,EAAE,CACD,oBAAoB,EACpB,yHAAyH,CAC1H,GACC,IACO,CACd,CAAC,CAAC,CAAC,CACF,aAAI,SAAS,EAAC,qBAAqB,YAChC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAClB,cAEE,SAAS,EAAC,6DAA6D,aAEvE,KAAC,UAAU,IAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,GAAI,EACzC,eAAK,SAAS,EAAC,QAAQ,aACrB,YAAG,SAAS,EAAC,SAAS,YACnB,WAAW,CAAC,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAC5E,EACJ,YAAG,SAAS,EAAC,+BAA+B,YACzC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,GACvC,IACA,KAXD,GAAG,CAAC,EAAE,CAYR,CACN,CAAC,GACC,CACN,IACO,CACX,CAAC;AACJ,CAAC;AAED,8EAA8E;AAE9E,qFAAqF;AACrF,MAAM,gBAAgB,GAA2B;IAC/C,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,iBAAiB,EAAE,cAAc;CAClC,CAAC;AAEF,SAAS,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,EAAsC;IACnE,4EAA4E;IAC5E,MAAM,KAAK,GACT,MAAM,KAAK,WAAW;QACpB,CAAC,CAAC,6DAA6D;QAC/D,CAAC,CAAC,MAAM,KAAK,QAAQ;YACnB,CAAC,CAAC,2DAA2D;YAC7D,CAAC,CAAC,6DAA6D,CAAC;IACtE,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;IACxF,OAAO,eAAM,SAAS,EAAE,kCAAkC,KAAK,EAAE,YAAG,KAAK,GAAQ,CAAC;AACpF,CAAC"}
1
+ {"version":3,"file":"bottle-photos-history.js","sourceRoot":"","sources":["../../src/portfolio-import/bottle-photos-history.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bottle-photos-status.d.ts","sourceRoot":"","sources":["../../src/portfolio-import/bottle-photos-status.tsx"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAStD,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,SAAS,CAAC;AA2EjB,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;IAC/D,4EAA4E;IAC5E,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,8EAA8E;IAC9E,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;IACvD;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACnE;AAED,wBAAgB,kBAAkB,CAAC,EACjC,GAAG,EACH,UAAU,EACV,CAAY,EACZ,MAAa,EACb,gBAAgB,EAChB,UAAU,GACX,EAAE,uBAAuB,kDAgDzB"}
1
+ {"version":3,"file":"bottle-photos-status.d.ts","sourceRoot":"","sources":["../../src/portfolio-import/bottle-photos-status.tsx"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAStD,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,SAAS,CAAC;AA2EjB,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;IAC/D,4EAA4E;IAC5E,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,8EAA8E;IAC9E,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;IACvD;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACnE;AAED,wBAAgB,kBAAkB,CAAC,EACjC,GAAG,EACH,UAAU,EACV,CAAY,EACZ,MAAa,EACb,gBAAgB,EAChB,UAAU,GACX,EAAE,uBAAuB,kDAiDzB"}
@@ -32,7 +32,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
32
32
  * never SP3 / beverage / variant / cutout.
33
33
  */
34
34
  import { AlertTriangle, Camera, CheckCircle2, Clock, Info, RefreshCw } from "lucide-react";
35
- import { useEffect, useState } from "react";
35
+ import { useEffect, useId, useState } from "react";
36
36
  import { interpolate } from "../portfolio/interpolate.js";
37
37
  import { BOTTLE_VERDICT_PROBE_ATTEMPTS, BOTTLE_VERDICT_PROBE_INTERVAL_MS, deriveBottlePhotosState, groupSkippedProducts, skippedReasonKey, } from "./bottle-photos.js";
38
38
  import { readBottleExtractionVerdict, readImageExtractionEnabled, } from "./types.js";
@@ -79,12 +79,12 @@ const SKIP_BREAKDOWN_FALLBACKS = {
79
79
  "Couldn't find the right pages for {{count}} products",
80
80
  ],
81
81
  missing_beverage_id: [
82
- "Couldn't match {{count}} product to your portfolio",
83
- "Couldn't match {{count}} products to your portfolio",
82
+ "Couldn't match {{count}} product to your collection",
83
+ "Couldn't match {{count}} products to your collection",
84
84
  ],
85
85
  missing_both: [
86
- "Couldn't place {{count}} product in the document or your portfolio",
87
- "Couldn't place {{count}} products in the document or your portfolio",
86
+ "Couldn't place {{count}} product in the document or your collection",
87
+ "Couldn't place {{count}} products in the document or your collection",
88
88
  ],
89
89
  not_paginated: [
90
90
  "{{count}} product came from a file without pages",
@@ -92,6 +92,7 @@ const SKIP_BREAKDOWN_FALLBACKS = {
92
92
  ],
93
93
  };
94
94
  export function BottlePhotosStatus({ job, refetchJob, t = defaultT, sp3Job = null, bottlePhotosHref, onNavigate, }) {
95
+ const titleId = useId();
95
96
  const requested = readImageExtractionEnabled(job.input);
96
97
  const verdict = readBottleExtractionVerdict(job.result);
97
98
  const probeActive = requested && job.status === "completed" && !verdict;
@@ -110,7 +111,7 @@ export function BottlePhotosStatus({ job, refetchJob, t = defaultT, sp3Job = nul
110
111
  : state.kind === "failed"
111
112
  ? "border-[var(--tone-warning-border)]/40"
112
113
  : "border-border/60";
113
- return (_jsxs("section", { "aria-label": t("bottlePhotos.aria_label", "Bottle photos"), role: "status", "aria-live": "polite", "data-state": state.kind, className: `mb-6 rounded-md border bg-card/60 px-4 py-3 ${toneBorder}`, children: [_jsx("p", { className: "text-eyebrow-xs text-muted-foreground/80", children: t("bottlePhotos.eyebrow", "Bottle photos") }), _jsxs("div", { className: "mt-2 flex items-start gap-2.5", children: [_jsx(StateIcon, { kind: state.kind }), _jsx("div", { className: "min-w-0 flex-1", children: _jsx(StateBody, { state: state, t: t, bottlePhotosHref: bottlePhotosHref, onNavigate: onNavigate }) })] })] }));
114
+ return (_jsxs("section", { "aria-labelledby": titleId, role: "status", "aria-live": "polite", "data-state": state.kind, className: `mb-6 rounded-2xl border bg-card/60 px-4 py-4 shadow-xs sm:px-5 ${toneBorder}`, children: [_jsx("h3", { id: titleId, className: "text-base/6 font-semibold tracking-tight text-foreground", children: t("bottlePhotos.aria_label", "Bottle photos") }), _jsxs("div", { className: "mt-2 flex items-start gap-3", children: [_jsx(StateIcon, { kind: state.kind }), _jsx("div", { className: "min-w-0 flex-1", children: _jsx(StateBody, { state: state, t: t, bottlePhotosHref: bottlePhotosHref, onNavigate: onNavigate }) })] })] }));
114
115
  }
115
116
  function StateIcon({ kind }) {
116
117
  if (kind === "done") {
@@ -148,7 +149,7 @@ function StateBody({ state, t, bottlePhotosHref, onNavigate, }) {
148
149
  case "done":
149
150
  return (_jsxs(_Fragment, { children: [_jsx("p", { className: "text-sm/6 font-medium text-foreground", children: t("bottlePhotos.done_title", "Bottle photos are ready") }), _jsxs("p", { className: "mt-0.5 text-xs text-muted-foreground", children: [state.verdict.eligibleCount > 0
150
151
  ? plural(t, "bottlePhotos.done_note", state.verdict.eligibleCount, "We extracted photos for {{count}} product.", "We extracted photos for {{count}} products.")
151
- : t("bottlePhotos.done_note_plain", "Find them in your product galleries."), state.verdict.skippedCount > 0 ? (_jsxs(_Fragment, { children: [" ", plural(t, "bottlePhotos.done_partial", state.verdict.skippedCount, "{{count}} product didn't get photos this time.", "{{count}} products didn't get photos this time.")] })) : null] }), bottlePhotosHref ? (_jsxs("a", { href: bottlePhotosHref, onClick: onNavigate, className: "mt-2 inline-flex items-center gap-1.5 rounded-full border border-border bg-card px-3 py-1 text-xs font-medium text-foreground/80 transition hover:bg-muted active:scale-[0.98] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring", children: [_jsx(Camera, { className: "size-3.5", "aria-hidden": "true" }), t("bottlePhotos.done_cta", "View your product galleries")] })) : null] }));
152
+ : t("bottlePhotos.done_note_plain", "Find them in your product galleries."), state.verdict.skippedCount > 0 ? (_jsxs(_Fragment, { children: [" ", plural(t, "bottlePhotos.done_partial", state.verdict.skippedCount, "{{count}} product didn't get photos this time.", "{{count}} products didn't get photos this time.")] })) : null] }), bottlePhotosHref ? (_jsxs("a", { href: bottlePhotosHref, onClick: onNavigate, className: "mt-2 inline-flex items-center gap-1.5 rounded-full border border-border bg-card px-3 py-1 text-xs font-medium text-foreground/80 transition hover:bg-muted active:scale-[0.98] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring", children: [_jsx(Camera, { className: "size-3.5", "aria-hidden": "true" }), t("bottlePhotos.done_cta", "View bottle photos")] })) : null] }));
152
153
  case "skipped": {
153
154
  const breakdown = groupSkippedProducts(state.verdict);
154
155
  const reasonKey = skippedReasonKey(state.verdict.reason);