@scaleflex/asset-picker 0.2.4 → 0.2.6

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 (32) hide show
  1. package/.claude/settings.local.json +38 -22
  2. package/dist/{asset-picker-Z_6-Ac0_.js → asset-picker-Cc1NFvo6.js} +696 -589
  3. package/dist/{asset-picker-D4Tqus2q.cjs → asset-picker-D62afrSd.cjs} +290 -197
  4. package/dist/components/filters/ap-filter-color.d.ts.map +1 -1
  5. package/dist/components/filters/ap-filter-image.d.ts.map +1 -1
  6. package/dist/components/filters/ap-filter-labels.d.ts.map +1 -1
  7. package/dist/components/filters/ap-filter-metadata.d.ts.map +1 -1
  8. package/dist/components/filters/ap-filter-product-ref.d.ts.map +1 -1
  9. package/dist/components/filters/ap-filter-tags.d.ts.map +1 -1
  10. package/dist/components/filters/shared/filter-styles.d.ts.map +1 -1
  11. package/dist/components/header/ap-header.d.ts.map +1 -1
  12. package/dist/components/navigation/ap-breadcrumb.d.ts.map +1 -1
  13. package/dist/components/preview/ap-preview-panel.d.ts.map +1 -1
  14. package/dist/components/selection/ap-selection-bar.d.ts.map +1 -1
  15. package/dist/components/shared/ap-badge.d.ts.map +1 -1
  16. package/dist/components/shared/ap-checkbox.d.ts.map +1 -1
  17. package/dist/components/shared/ap-dropdown.d.ts.map +1 -1
  18. package/dist/components/shared/ap-icon.d.ts.map +1 -1
  19. package/dist/components/shared/ap-radio-group.d.ts.map +1 -1
  20. package/dist/components/views/ap-asset-card.d.ts.map +1 -1
  21. package/dist/components/views/ap-asset-row.d.ts.map +1 -1
  22. package/dist/components/views/ap-folder-card.d.ts.map +1 -1
  23. package/dist/components/views/ap-folder-row.d.ts.map +1 -1
  24. package/dist/controllers/marquee.controller.d.ts +1 -0
  25. package/dist/controllers/marquee.controller.d.ts.map +1 -1
  26. package/dist/define.cjs +1 -1
  27. package/dist/define.js +1 -1
  28. package/dist/index.cjs +1 -1
  29. package/dist/index.js +1 -1
  30. package/dist/types/asset.types.d.ts +1 -0
  31. package/dist/types/asset.types.d.ts.map +1 -1
  32. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
- import { css as $, LitElement as k, html as n, nothing as f, svg as ce } from "lit";
2
- import { property as h, query as Se, customElement as S, state as y } from "lit/decorators.js";
1
+ import { css as $, LitElement as S, html as n, nothing as f, svg as ce } from "lit";
2
+ import { property as h, query as Se, customElement as C, state as y } from "lit/decorators.js";
3
3
  class Ma {
4
4
  constructor(e) {
5
5
  this.listeners = /* @__PURE__ */ new Set(), this._notifying = !1, this._pendingState = null, this.state = e;
@@ -160,7 +160,7 @@ class Ia {
160
160
  const Gt = 5, Te = 40, Yt = 15;
161
161
  class Da {
162
162
  constructor(e, a) {
163
- this.startX = 0, this.startY = 0, this.startClientX = 0, this.startClientY = 0, this.preMarqueeSelection = /* @__PURE__ */ new Map(), this._dragging = !1, this._scrollRAF = null, this._lastMouseEvent = null, this.isActive = !1, this.rect = { x: 0, y: 0, width: 0, height: 0 }, this.handleMouseDown = (s) => this.onMouseDown(s), this.handleMouseMove = (s) => this.onMouseMove(s), this.handleMouseUp = () => this.onMouseUp(), this.host = e, this.store = a, e.addController(this);
163
+ this.startX = 0, this.startY = 0, this.startClientX = 0, this.startClientY = 0, this.preMarqueeSelection = /* @__PURE__ */ new Map(), this._dragging = !1, this._scrollRAF = null, this._lastMouseEvent = null, this.isActive = !1, this.rect = { x: 0, y: 0, width: 0, height: 0 }, this.handleMouseDown = (s) => this.onMouseDown(s), this.handleMouseMove = (s) => this.onMouseMove(s), this.handleMouseUp = () => this.onMouseUp(), this.preventSelect = (s) => s.preventDefault(), this.host = e, this.store = a, e.addController(this);
164
164
  }
165
165
  hostConnected() {
166
166
  }
@@ -171,7 +171,7 @@ class Da {
171
171
  this.detach(), this.container = e, e.addEventListener("mousedown", this.handleMouseDown);
172
172
  }
173
173
  detach() {
174
- this.container && this.container.removeEventListener("mousedown", this.handleMouseDown), document.removeEventListener("mousemove", this.handleMouseMove), document.removeEventListener("mouseup", this.handleMouseUp), this.stopAutoScroll(), this._lastMouseEvent = null;
174
+ this.container && this.container.removeEventListener("mousedown", this.handleMouseDown), document.removeEventListener("mousemove", this.handleMouseMove), document.removeEventListener("mouseup", this.handleMouseUp), document.removeEventListener("selectstart", this.preventSelect), this.stopAutoScroll(), this._lastMouseEvent = null;
175
175
  }
176
176
  isInteractiveTarget(e) {
177
177
  return e.composedPath().some((s) => {
@@ -187,11 +187,12 @@ class Da {
187
187
  this.startX = e.clientX - a.left + this.container.scrollLeft, this.startY = e.clientY - a.top + this.container.scrollTop, this.startClientX = e.clientX, this.startClientY = e.clientY, this._dragging = !1, this.isActive = !1, document.addEventListener("mousemove", this.handleMouseMove), document.addEventListener("mouseup", this.handleMouseUp);
188
188
  }
189
189
  onMouseMove(e) {
190
+ var a;
190
191
  if (this.container) {
191
192
  if (!this._dragging) {
192
- const a = Math.abs(e.clientX - this.startClientX), s = Math.abs(e.clientY - this.startClientY);
193
- if (a < Gt && s < Gt) return;
194
- this._dragging = !0, this.isActive = !0, this.preMarqueeSelection = new Map(this.store.getState().selectedAssets);
193
+ const s = Math.abs(e.clientX - this.startClientX), i = Math.abs(e.clientY - this.startClientY);
194
+ if (s < Gt && i < Gt) return;
195
+ this._dragging = !0, this.isActive = !0, document.addEventListener("selectstart", this.preventSelect), (a = window.getSelection()) == null || a.removeAllRanges(), this.preMarqueeSelection = new Map(this.store.getState().selectedAssets);
195
196
  }
196
197
  this._lastMouseEvent = e, this.updateMarqueeRect(e), this.startAutoScroll(e);
197
198
  }
@@ -221,7 +222,7 @@ class Da {
221
222
  this._scrollRAF && (cancelAnimationFrame(this._scrollRAF), this._scrollRAF = null);
222
223
  }
223
224
  onMouseUp() {
224
- document.removeEventListener("mousemove", this.handleMouseMove), document.removeEventListener("mouseup", this.handleMouseUp), this.stopAutoScroll(), this._lastMouseEvent = null, this._dragging && (this.isActive = !1, this._dragging = !1, this.rect = { x: 0, y: 0, width: 0, height: 0 }, this.host.requestUpdate());
225
+ document.removeEventListener("mousemove", this.handleMouseMove), document.removeEventListener("mouseup", this.handleMouseUp), document.removeEventListener("selectstart", this.preventSelect), this.stopAutoScroll(), this._lastMouseEvent = null, this._dragging && (this.isActive = !1, this._dragging = !1, this.rect = { x: 0, y: 0, width: 0, height: 0 }, this.host.requestUpdate());
225
226
  }
226
227
  queryCards() {
227
228
  for (const e of Array.from(this.container.children))
@@ -379,10 +380,10 @@ async function ja(t, e) {
379
380
  { folders: e }
380
381
  )).folders || {};
381
382
  }
382
- async function Ba(t) {
383
+ async function Ua(t) {
383
384
  return await t.request("/labels");
384
385
  }
385
- async function Ua(t) {
386
+ async function Ba(t) {
386
387
  return ((await t.request("/tags")).tags || []).map((s) => ({
387
388
  ...s,
388
389
  label: s.names.en || Object.values(s.names)[0] || ""
@@ -407,7 +408,7 @@ const m = {
407
408
  PRODUCT_REF: "product_ref",
408
409
  FACES: "faces",
409
410
  COLOR: "color"
410
- }, U = {
411
+ }, B = {
411
412
  STATUS: "approval_status",
412
413
  APPROVER: "task_approver",
413
414
  REQUESTOR: "task_requester",
@@ -455,7 +456,7 @@ const m = {
455
456
  Object.fromEntries(
456
457
  Object.entries(mt).map(([t, e]) => [e, t])
457
458
  );
458
- const ra = Object.values(mt), Be = {
459
+ const ra = Object.values(mt), Ue = {
459
460
  PRESET: "preset",
460
461
  AFTER: "after",
461
462
  BEFORE: "before",
@@ -597,7 +598,7 @@ const ra = Object.values(mt), Be = {
597
598
  { label: "Is", value: w.IS_EXACT },
598
599
  { label: "Contains", value: w.IS },
599
600
  { label: "Does not contain", value: w.IS_NOT }
600
- ], Ft = [
601
+ ], Et = [
601
602
  { label: "Is", value: w.IS },
602
603
  { label: "Greater than", value: w.GREATER_THAN_OR_EQUAL },
603
604
  { label: "Is not", value: w.IS_NOT },
@@ -617,7 +618,7 @@ const ra = Object.values(mt), Be = {
617
618
  ], ye = [
618
619
  { label: "Empty", value: K },
619
620
  { label: "Not empty", value: G }
620
- ], Et = [
621
+ ], Ft = [
621
622
  ...ye,
622
623
  { label: "Specific", value: be }
623
624
  ], ss = [
@@ -655,7 +656,7 @@ const ra = Object.values(mt), Be = {
655
656
  [x.INTEGER_LIST]: "attachment"
656
657
  };
657
658
  async function rs(t) {
658
- var b, E;
659
+ var b, k;
659
660
  const e = await t.request("/settings"), a = e.settings ?? e, s = (a == null ? void 0 : a.metadata) ?? e.metadata, r = ((s == null ? void 0 : s.model) ?? [])[Ha], o = s == null ? void 0 : s.store, c = ((o == null ? void 0 : o.regional_variants_groups) ?? []).map((_) => ({
660
661
  uuid: _.uuid,
661
662
  label: _.label ?? _.name ?? "",
@@ -667,13 +668,13 @@ async function rs(t) {
667
668
  })).filter((_) => _.variants.length > 1), p = {};
668
669
  for (const _ of c)
669
670
  p[_.uuid] = ((b = _.variants[0]) == null ? void 0 : b.api_value) ?? "";
670
- const u = (a == null ? void 0 : a.project_branding) ?? ((E = e.settings) == null ? void 0 : E.project_branding), v = u == null ? void 0 : u.brandColor;
671
+ const u = (a == null ? void 0 : a.project_branding) ?? ((k = e.settings) == null ? void 0 : k.project_branding), v = u == null ? void 0 : u.brandColor;
671
672
  if (!r) return { fields: [], regionalVariantGroups: c, regionalFilters: p, brandColor: v };
672
673
  const d = r.groups ?? [], g = [];
673
674
  for (const _ of d) {
674
675
  const A = _.name || "Root fields";
675
676
  for (const F of _.fields ?? []) {
676
- const I = F.possible_values, H = I == null ? void 0 : I.map((T) => ({
677
+ const P = F.possible_values, H = P == null ? void 0 : P.map((T) => ({
677
678
  api_value: T.api_value ?? T.value ?? "",
678
679
  internal_unique_value: T.internal_unique_value ?? T.api_value ?? "",
679
680
  label: T.label ?? T.name ?? T.api_value ?? ""
@@ -799,7 +800,7 @@ function ds(t, e) {
799
800
  }
800
801
  function ua(t, e) {
801
802
  const a = e.field || "created";
802
- if (e.kind === Be.PRESET && e.preset) {
803
+ if (e.kind === Ue.PRESET && e.preset) {
803
804
  if (e.preset === Wt.EMPTY)
804
805
  return [`${a}:"empty"`];
805
806
  if (e.preset === Wt.NOT_EMPTY)
@@ -807,11 +808,11 @@ function ua(t, e) {
807
808
  const s = ha(e.preset);
808
809
  return s ? s.to === null ? [`${a}>"${s.from}"`] : [`${a}:"${s.from}..${s.to}"`] : [];
809
810
  }
810
- if (e.kind === Be.AFTER && e.from)
811
+ if (e.kind === Ue.AFTER && e.from)
811
812
  return [`${a}:>"${e.from}"`];
812
- if (e.kind === Be.BEFORE && e.to)
813
+ if (e.kind === Ue.BEFORE && e.to)
813
814
  return [`${a}:<"${e.to}"`];
814
- if (e.kind === Be.BETWEEN) {
815
+ if (e.kind === Ue.BETWEEN) {
815
816
  if (e.from && e.to)
816
817
  return [`${a}:"${e.from}..${e.to}"`];
817
818
  if (e.from && !e.to)
@@ -819,7 +820,7 @@ function ua(t, e) {
819
820
  if (!e.from && e.to)
820
821
  return [`${a}:<"${e.to}"`];
821
822
  }
822
- return e.kind === Be.SPECIFIC && e.from ? [`${a}:"${e.from}"`] : [];
823
+ return e.kind === Ue.SPECIFIC && e.from ? [`${a}:"${e.from}"`] : [];
823
824
  }
824
825
  function ps(t, e, a) {
825
826
  return e.length === 0 ? [] : [`${t}:"${e.join(a)}"`];
@@ -899,9 +900,9 @@ function ta(t) {
899
900
  const _s = /* @__PURE__ */ new Set([
900
901
  m.DATE,
901
902
  m.LICENSE_EXPIRY,
902
- U.DUE_DATE
903
+ B.DUE_DATE
903
904
  ]);
904
- function Ue(t) {
905
+ function Be(t) {
905
906
  if (!t) return {};
906
907
  const e = {};
907
908
  for (const [a, s] of Object.entries(t))
@@ -980,14 +981,14 @@ function Cs(t) {
980
981
  } catch {
981
982
  }
982
983
  }
983
- function Fs() {
984
+ function Es() {
984
985
  try {
985
986
  return localStorage.getItem(ma);
986
987
  } catch {
987
988
  return null;
988
989
  }
989
990
  }
990
- function Es(t) {
991
+ function Fs(t) {
991
992
  try {
992
993
  localStorage.setItem(ba, t);
993
994
  } catch {
@@ -1009,9 +1010,9 @@ function At(t) {
1009
1010
  return t <= 0.04045 ? t / 12.92 : Math.pow((t + 0.055) / 1.055, 2.4);
1010
1011
  }
1011
1012
  function Ms(t, e, a) {
1012
- const s = At(t), i = At(e), r = At(a), o = 0.4122214708 * s + 0.5363325363 * i + 0.0514459929 * r, l = 0.2119034982 * s + 0.6806995451 * i + 0.1073969566 * r, c = 0.0883024619 * s + 0.2817188376 * i + 0.6299787005 * r, p = Math.cbrt(o), u = Math.cbrt(l), v = Math.cbrt(c), d = 0.2104542553 * p + 0.793617785 * u - 0.0040720468 * v, g = 1.9779984951 * p - 2.428592205 * u + 0.4505937099 * v, b = 0.0259040371 * p + 0.7827717662 * u - 0.808675766 * v, E = Math.sqrt(g * g + b * b);
1013
+ const s = At(t), i = At(e), r = At(a), o = 0.4122214708 * s + 0.5363325363 * i + 0.0514459929 * r, l = 0.2119034982 * s + 0.6806995451 * i + 0.1073969566 * r, c = 0.0883024619 * s + 0.2817188376 * i + 0.6299787005 * r, p = Math.cbrt(o), u = Math.cbrt(l), v = Math.cbrt(c), d = 0.2104542553 * p + 0.793617785 * u - 0.0040720468 * v, g = 1.9779984951 * p - 2.428592205 * u + 0.4505937099 * v, b = 0.0259040371 * p + 0.7827717662 * u - 0.808675766 * v, k = Math.sqrt(g * g + b * b);
1013
1014
  let _ = Math.atan2(b, g) * (180 / Math.PI);
1014
- return _ < 0 && (_ += 360), [d, E, _];
1015
+ return _ < 0 && (_ += 360), [d, k, _];
1015
1016
  }
1016
1017
  function Os(t) {
1017
1018
  return t > 0.7;
@@ -1056,7 +1057,7 @@ var Ds = Object.defineProperty, zs = Object.getOwnPropertyDescriptor, zt = (t, e
1056
1057
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
1057
1058
  return s && i && Ds(e, a, i), i;
1058
1059
  };
1059
- let qe = class extends k {
1060
+ let qe = class extends S {
1060
1061
  constructor() {
1061
1062
  super(...arguments), this.open = !1;
1062
1063
  }
@@ -1184,7 +1185,7 @@ zt([
1184
1185
  Se("dialog")
1185
1186
  ], qe.prototype, "dialog", 2);
1186
1187
  qe = zt([
1187
- S("ap-modal")
1188
+ C("ap-modal")
1188
1189
  ], qe);
1189
1190
  function Rs(t, e) {
1190
1191
  let a;
@@ -1203,7 +1204,7 @@ var Ns = Object.defineProperty, js = Object.getOwnPropertyDescriptor, bt = (t, e
1203
1204
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
1204
1205
  return s && i && Ns(e, a, i), i;
1205
1206
  };
1206
- let Pe = class extends k {
1207
+ let Pe = class extends S {
1207
1208
  constructor() {
1208
1209
  super(...arguments), this.groups = [], this.selectedFilters = {}, this._open = !1, this._handleOutsideClick = (t) => {
1209
1210
  this._open && !t.composedPath().includes(this) && (this._open = !1);
@@ -1357,18 +1358,18 @@ bt([
1357
1358
  y()
1358
1359
  ], Pe.prototype, "_open", 2);
1359
1360
  Pe = bt([
1360
- S("ap-regional-settings")
1361
+ C("ap-regional-settings")
1361
1362
  ], Pe);
1362
- var Bs = Object.defineProperty, Us = Object.getOwnPropertyDescriptor, re = (t, e, a, s) => {
1363
- for (var i = s > 1 ? void 0 : s ? Us(e, a) : e, r = t.length - 1, o; r >= 0; r--)
1363
+ var Us = Object.defineProperty, Bs = Object.getOwnPropertyDescriptor, re = (t, e, a, s) => {
1364
+ for (var i = s > 1 ? void 0 : s ? Bs(e, a) : e, r = t.length - 1, o; r >= 0; r--)
1364
1365
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
1365
- return s && i && Bs(e, a, i), i;
1366
+ return s && i && Us(e, a, i), i;
1366
1367
  };
1367
1368
  const Vs = [
1368
1369
  { value: "assets", label: "Assets", icon: "gallery-vertical-end" },
1369
1370
  { value: "folders", label: "Folders", icon: "folder-open" }
1370
1371
  ];
1371
- let W = class extends k {
1372
+ let W = class extends S {
1372
1373
  constructor() {
1373
1374
  super(...arguments), this.activeTab = "assets", this.tabs = ["assets", "folders"], this.viewMode = "grid", this.searchQuery = "", this.regionalGroups = [], this.regionalFilters = {}, this.hideClose = !1, this._localSearch = "", this._debouncedSearch = Rs((t) => {
1374
1375
  (t.length === 0 || t.length >= 3) && this.dispatchEvent(new CustomEvent("search-change", { detail: { value: t }, bubbles: !0, composed: !0 }));
@@ -1418,7 +1419,7 @@ let W = class extends k {
1418
1419
  <ap-icon class="search-icon" name="search" .size=${16}></ap-icon>
1419
1420
  <input
1420
1421
  type="text"
1421
- placeholder="Search assets..."
1422
+ placeholder="Search assets"
1422
1423
  .value=${this.searchQuery}
1423
1424
  @input=${this._handleInput}
1424
1425
  />
@@ -1490,6 +1491,9 @@ W.styles = [ie, $`
1490
1491
  background: var(--ap-background, oklch(1 0 0));
1491
1492
  outline: none;
1492
1493
  }
1494
+ input:hover {
1495
+ border-color: var(--ap-secondary-foreground-50, oklch(53.03% 0.039 249.89 / 0.5));
1496
+ }
1493
1497
  input:focus {
1494
1498
  border-color: var(--ap-ring, oklch(0.578 0.198 268.129 / 0.7));
1495
1499
  box-shadow: 0 0 0 2px var(--ap-primary-10, oklch(0.578 0.198 268.129 / 0.1));
@@ -1499,6 +1503,7 @@ W.styles = [ie, $`
1499
1503
  }
1500
1504
  input::placeholder {
1501
1505
  color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
1506
+ font-weight: 400;
1502
1507
  }
1503
1508
  .clear-btn {
1504
1509
  position: absolute;
@@ -1585,14 +1590,14 @@ re([
1585
1590
  y()
1586
1591
  ], W.prototype, "_localSearch", 2);
1587
1592
  W = re([
1588
- S("ap-header")
1593
+ C("ap-header")
1589
1594
  ], W);
1590
1595
  var qs = Object.defineProperty, Hs = Object.getOwnPropertyDescriptor, _a = (t, e, a, s) => {
1591
1596
  for (var i = s > 1 ? void 0 : s ? Hs(e, a) : e, r = t.length - 1, o; r >= 0; r--)
1592
1597
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
1593
1598
  return s && i && qs(e, a, i), i;
1594
1599
  };
1595
- let nt = class extends k {
1600
+ let nt = class extends S {
1596
1601
  constructor() {
1597
1602
  super(...arguments), this.items = [];
1598
1603
  }
@@ -1616,7 +1621,7 @@ let nt = class extends k {
1616
1621
  nt.styles = $`
1617
1622
  :host {
1618
1623
  display: block;
1619
- padding: 8px 20px;
1624
+ padding: 4px 20px 12px;
1620
1625
  }
1621
1626
  .breadcrumb {
1622
1627
  display: flex;
@@ -1634,6 +1639,9 @@ nt.styles = $`
1634
1639
  font-family: var(--ap-font-family, system-ui, sans-serif);
1635
1640
  font-size: var(--ap-font-size-sm, 0.875rem);
1636
1641
  }
1642
+ button:first-child {
1643
+ margin-left: -6px;
1644
+ }
1637
1645
  button:hover {
1638
1646
  background: var(--ap-muted, oklch(0.974 0.006 239.819));
1639
1647
  color: var(--ap-foreground, oklch(0.37 0.022 248.413));
@@ -1651,14 +1659,14 @@ _a([
1651
1659
  h({ type: Array })
1652
1660
  ], nt.prototype, "items", 2);
1653
1661
  nt = _a([
1654
- S("ap-breadcrumb")
1662
+ C("ap-breadcrumb")
1655
1663
  ], nt);
1656
1664
  var Ks = Object.defineProperty, Gs = Object.getOwnPropertyDescriptor, Rt = (t, e, a, s) => {
1657
1665
  for (var i = s > 1 ? void 0 : s ? Gs(e, a) : e, r = t.length - 1, o; r >= 0; r--)
1658
1666
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
1659
1667
  return s && i && Ks(e, a, i), i;
1660
1668
  };
1661
- let He = class extends k {
1669
+ let He = class extends S {
1662
1670
  constructor() {
1663
1671
  super(...arguments), this.title = "", this.open = !1;
1664
1672
  }
@@ -1704,14 +1712,14 @@ Rt([
1704
1712
  h({ type: Boolean })
1705
1713
  ], He.prototype, "open", 2);
1706
1714
  He = Rt([
1707
- S("ap-filter-popover")
1715
+ C("ap-filter-popover")
1708
1716
  ], He);
1709
1717
  var Ys = Object.defineProperty, Xs = Object.getOwnPropertyDescriptor, ya = (t, e, a, s) => {
1710
1718
  for (var i = s > 1 ? void 0 : s ? Xs(e, a) : e, r = t.length - 1, o; r >= 0; r--)
1711
1719
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
1712
1720
  return s && i && Ys(e, a, i), i;
1713
1721
  };
1714
- let lt = class extends k {
1722
+ let lt = class extends S {
1715
1723
  constructor() {
1716
1724
  super(...arguments), this.selected = [];
1717
1725
  }
@@ -1803,7 +1811,7 @@ ya([
1803
1811
  h({ type: Array })
1804
1812
  ], lt.prototype, "selected", 2);
1805
1813
  lt = ya([
1806
- S("ap-filter-type")
1814
+ C("ap-filter-type")
1807
1815
  ], lt);
1808
1816
  const oe = $`
1809
1817
  :host {
@@ -1922,6 +1930,7 @@ const oe = $`
1922
1930
  }
1923
1931
  .filter-input::placeholder {
1924
1932
  color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
1933
+ font-weight: 400;
1925
1934
  }
1926
1935
 
1927
1936
  /* ── Date input: Lucide calendar icon ── */
@@ -1942,10 +1951,6 @@ const oe = $`
1942
1951
  background-size: 16px 16px;
1943
1952
  padding-right: 32px;
1944
1953
  }
1945
- .input-label:has(+ .filter-input[type="date"]) {
1946
- font-weight: 400;
1947
- color: var(--ap-secondary-foreground, oklch(53.03% 0.039 249.89));
1948
- }
1949
1954
 
1950
1955
  textarea.filter-input {
1951
1956
  min-height: 60px;
@@ -1955,9 +1960,9 @@ const oe = $`
1955
1960
  /* ── Input label ── */
1956
1961
  .input-label {
1957
1962
  display: block;
1958
- font-size: var(--ap-font-size-sm, 0.875rem);
1959
- font-weight: 500;
1960
- color: var(--ap-foreground, oklch(0.37 0.022 248.413));
1963
+ font-size: 0.75rem;
1964
+ font-weight: 400;
1965
+ color: var(--ap-secondary-foreground, oklch(53.03% 0.039 249.89));
1961
1966
  margin-bottom: 4px;
1962
1967
  }
1963
1968
  .input-label[aria-disabled="true"] {
@@ -2031,9 +2036,17 @@ const oe = $`
2031
2036
  background: var(--ap-card, oklch(1 0 0));
2032
2037
  margin: -10px -8px 10px;
2033
2038
  }
2039
+ .search-wrapper .search-icon {
2040
+ position: absolute;
2041
+ left: 10px;
2042
+ top: 50%;
2043
+ transform: translateY(-50%);
2044
+ color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
2045
+ pointer-events: none;
2046
+ }
2034
2047
  .search-input {
2035
2048
  width: 100%;
2036
- padding: 8px 32px 8px 10px;
2049
+ padding: 8px 32px 8px 32px;
2037
2050
  border: none;
2038
2051
  border-bottom: 1px solid var(--ap-border, oklch(92.86% 0.009 247.92));
2039
2052
  border-radius: 0;
@@ -2045,6 +2058,7 @@ const oe = $`
2045
2058
  }
2046
2059
  .search-input::placeholder {
2047
2060
  color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
2061
+ font-weight: 400;
2048
2062
  }
2049
2063
  .search-clear {
2050
2064
  position: absolute;
@@ -2091,7 +2105,7 @@ var Ws = Object.defineProperty, Qs = Object.getOwnPropertyDescriptor, Ce = (t, e
2091
2105
  function Tt(t) {
2092
2106
  return t.toISOString().split("T")[0];
2093
2107
  }
2094
- let te = class extends k {
2108
+ let te = class extends S {
2095
2109
  constructor() {
2096
2110
  super(...arguments), this.filterKey = m.DATE, this.field = "created", this.kind = null, this.preset = "", this.from = "", this.to = "";
2097
2111
  }
@@ -2287,14 +2301,14 @@ Ce([
2287
2301
  h()
2288
2302
  ], te.prototype, "to", 2);
2289
2303
  te = Ce([
2290
- S("ap-filter-date")
2304
+ C("ap-filter-date")
2291
2305
  ], te);
2292
2306
  var Zs = Object.defineProperty, Js = Object.getOwnPropertyDescriptor, ze = (t, e, a, s) => {
2293
2307
  for (var i = s > 1 ? void 0 : s ? Js(e, a) : e, r = t.length - 1, o; r >= 0; r--)
2294
2308
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
2295
2309
  return s && i && Zs(e, a, i), i;
2296
2310
  };
2297
- let de = class extends k {
2311
+ let de = class extends S {
2298
2312
  constructor() {
2299
2313
  super(...arguments), this.tags = [], this.selected = [], this.filterKey = m.TAGS, this._search = "";
2300
2314
  }
@@ -2386,10 +2400,11 @@ let de = class extends k {
2386
2400
  return n`
2387
2401
  <div class="filter-content">
2388
2402
  <div class="filter-header">
2403
+ <ap-icon class="search-icon" name="search" .size=${14}></ap-icon>
2389
2404
  <input
2390
2405
  class="tag-search"
2391
2406
  type="text"
2392
- placeholder="Search tags..."
2407
+ placeholder="Search tags"
2393
2408
  .value=${this._search}
2394
2409
  @input=${this._onSearchInput}
2395
2410
  />
@@ -2545,9 +2560,18 @@ de.styles = [ie, oe, $`
2545
2560
  margin: -10px -8px 10px;
2546
2561
  }
2547
2562
 
2563
+ .filter-header .search-icon {
2564
+ position: absolute;
2565
+ left: 10px;
2566
+ top: 50%;
2567
+ transform: translateY(-50%);
2568
+ color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
2569
+ pointer-events: none;
2570
+ }
2571
+
2548
2572
  .tag-search {
2549
2573
  width: 100%;
2550
- padding: 8px 10px;
2574
+ padding: 8px 32px 8px 32px;
2551
2575
  border: none;
2552
2576
  border-bottom: 1px solid var(--ap-border, oklch(92.86% 0.009 247.92));
2553
2577
  font-size: var(--ap-font-size-sm, 0.875rem);
@@ -2559,6 +2583,7 @@ de.styles = [ie, oe, $`
2559
2583
 
2560
2584
  .tag-search::placeholder {
2561
2585
  color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
2586
+ font-weight: 400;
2562
2587
  }
2563
2588
 
2564
2589
  .search-clear {
@@ -2587,14 +2612,14 @@ ze([
2587
2612
  y()
2588
2613
  ], de.prototype, "_search", 2);
2589
2614
  de = ze([
2590
- S("ap-filter-tags")
2615
+ C("ap-filter-tags")
2591
2616
  ], de);
2592
2617
  var ei = Object.defineProperty, ti = Object.getOwnPropertyDescriptor, Qe = (t, e, a, s) => {
2593
2618
  for (var i = s > 1 ? void 0 : s ? ti(e, a) : e, r = t.length - 1, o; r >= 0; r--)
2594
2619
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
2595
2620
  return s && i && ei(e, a, i), i;
2596
2621
  };
2597
- let we = class extends k {
2622
+ let we = class extends S {
2598
2623
  constructor() {
2599
2624
  super(...arguments), this.labels = [], this.selected = [], this._search = "";
2600
2625
  }
@@ -2687,10 +2712,11 @@ let we = class extends k {
2687
2712
  <div class="filter-content">
2688
2713
  <!-- Search input -->
2689
2714
  <div class="search-wrapper">
2715
+ <ap-icon class="search-icon" name="search" .size=${14}></ap-icon>
2690
2716
  <input
2691
2717
  class="search-input"
2692
2718
  type="text"
2693
- placeholder="Search labels..."
2719
+ placeholder="Search labels"
2694
2720
  .value=${this._search}
2695
2721
  @input=${this._onSearchInput}
2696
2722
  />
@@ -2812,7 +2838,7 @@ Qe([
2812
2838
  y()
2813
2839
  ], we.prototype, "_search", 2);
2814
2840
  we = Qe([
2815
- S("ap-filter-labels")
2841
+ C("ap-filter-labels")
2816
2842
  ], we);
2817
2843
  var ai = Object.defineProperty, si = Object.getOwnPropertyDescriptor, Re = (t, e, a, s) => {
2818
2844
  for (var i = s > 1 ? void 0 : s ? si(e, a) : e, r = t.length - 1, o; r >= 0; r--)
@@ -2828,7 +2854,7 @@ function ii(t) {
2828
2854
  coverage: e[3] || it
2829
2855
  };
2830
2856
  }
2831
- let pe = class extends k {
2857
+ let pe = class extends S {
2832
2858
  constructor() {
2833
2859
  super(...arguments), this.values = [], this._colors = [], this._advanced = !1, this._showPalette = !1, this._initialized = !1;
2834
2860
  }
@@ -3053,8 +3079,8 @@ pe.styles = [ie, oe, $`
3053
3079
  /* ── Palette ── */
3054
3080
  .palette {
3055
3081
  display: grid;
3056
- grid-template-columns: repeat(7, 1fr);
3057
- gap: 8px;
3082
+ grid-template-columns: repeat(8, 1fr);
3083
+ gap: 12px;
3058
3084
  justify-items: center;
3059
3085
  }
3060
3086
 
@@ -3202,16 +3228,21 @@ pe.styles = [ie, oe, $`
3202
3228
  display: grid;
3203
3229
  grid-template-columns: 1.4fr 1fr 1fr auto;
3204
3230
  align-items: end;
3205
- gap: 6px;
3231
+ gap: 8px;
3206
3232
  }
3207
3233
 
3208
3234
  .adv-field {
3209
3235
  display: flex;
3210
3236
  flex-direction: column;
3211
- gap: 2px;
3237
+ gap: 6px;
3212
3238
  min-width: 0;
3213
3239
  }
3214
3240
 
3241
+ .adv-field ap-dropdown {
3242
+ display: block;
3243
+ width: 100%;
3244
+ }
3245
+
3215
3246
  .adv-field-label {
3216
3247
  font-size: 0.6875rem;
3217
3248
  color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
@@ -3268,20 +3299,18 @@ pe.styles = [ie, oe, $`
3268
3299
  display: inline-flex;
3269
3300
  align-items: center;
3270
3301
  gap: 4px;
3271
- padding: 6px 12px;
3272
- border: 1px dashed var(--ap-border, oklch(92.86% 0.009 247.92));
3273
- border-radius: var(--ap-radius-sm, 6px);
3302
+ padding: 6px 0;
3303
+ border: none;
3274
3304
  background: none;
3275
3305
  font-size: var(--ap-font-size-sm, 0.875rem);
3276
3306
  font-family: inherit;
3277
- color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
3307
+ color: var(--ap-primary, oklch(0.578 0.198 268.129));
3278
3308
  cursor: pointer;
3279
- transition: border-color 150ms, color 150ms;
3309
+ transition: opacity 150ms;
3280
3310
  }
3281
3311
 
3282
3312
  .add-color-btn:hover {
3283
- border-color: var(--ap-primary, oklch(0.578 0.198 268.129));
3284
- color: var(--ap-primary, oklch(0.578 0.198 268.129));
3313
+ opacity: 0.8;
3285
3314
  }
3286
3315
  `];
3287
3316
  Re([
@@ -3300,9 +3329,9 @@ Re([
3300
3329
  y()
3301
3330
  ], pe.prototype, "_initialized", 2);
3302
3331
  pe = Re([
3303
- S("ap-filter-color")
3332
+ C("ap-filter-color")
3304
3333
  ], pe);
3305
- var ri = Object.defineProperty, oi = Object.getOwnPropertyDescriptor, Fe = (t, e, a, s) => {
3334
+ var ri = Object.defineProperty, oi = Object.getOwnPropertyDescriptor, Ee = (t, e, a, s) => {
3306
3335
  for (var i = s > 1 ? void 0 : s ? oi(e, a) : e, r = t.length - 1, o; r >= 0; r--)
3307
3336
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
3308
3337
  return s && i && ri(e, a, i), i;
@@ -3316,7 +3345,7 @@ const ni = {
3316
3345
  { value: "MB", label: "MB" },
3317
3346
  { value: "GB", label: "GB" }
3318
3347
  ];
3319
- let ae = class extends k {
3348
+ let ae = class extends S {
3320
3349
  constructor() {
3321
3350
  super(...arguments), this.min = 0, this.max = 0, this._minVal = "", this._maxVal = "", this._unit = "MB", this._initialized = !1;
3322
3351
  }
@@ -3444,26 +3473,26 @@ ae.styles = [
3444
3473
  }
3445
3474
  `
3446
3475
  ];
3447
- Fe([
3476
+ Ee([
3448
3477
  h({ type: Number })
3449
3478
  ], ae.prototype, "min", 2);
3450
- Fe([
3479
+ Ee([
3451
3480
  h({ type: Number })
3452
3481
  ], ae.prototype, "max", 2);
3453
- Fe([
3482
+ Ee([
3454
3483
  y()
3455
3484
  ], ae.prototype, "_minVal", 2);
3456
- Fe([
3485
+ Ee([
3457
3486
  y()
3458
3487
  ], ae.prototype, "_maxVal", 2);
3459
- Fe([
3488
+ Ee([
3460
3489
  y()
3461
3490
  ], ae.prototype, "_unit", 2);
3462
- Fe([
3491
+ Ee([
3463
3492
  y()
3464
3493
  ], ae.prototype, "_initialized", 2);
3465
- ae = Fe([
3466
- S("ap-filter-size")
3494
+ ae = Ee([
3495
+ C("ap-filter-size")
3467
3496
  ], ae);
3468
3497
  var ci = Object.defineProperty, di = Object.getOwnPropertyDescriptor, _t = (t, e, a, s) => {
3469
3498
  for (var i = s > 1 ? void 0 : s ? di(e, a) : e, r = t.length - 1, o; r >= 0; r--)
@@ -3502,7 +3531,7 @@ const pi = ce`
3502
3531
  square: ui,
3503
3532
  panorama: gi
3504
3533
  };
3505
- let Le = class extends k {
3534
+ let Le = class extends S {
3506
3535
  constructor() {
3507
3536
  super(...arguments), this.selectedResolution = [], this.selectedOrientation = [], this.selectedFaces = [];
3508
3537
  }
@@ -3615,6 +3644,9 @@ Le.styles = [oe, $`
3615
3644
  flex-direction: column;
3616
3645
  gap: 12px;
3617
3646
  }
3647
+ .options-vertical ap-checkbox {
3648
+ --ap-checkbox-gap: 12px;
3649
+ }
3618
3650
  .orientation-label {
3619
3651
  display: inline-flex;
3620
3652
  align-items: center;
@@ -3634,17 +3666,17 @@ _t([
3634
3666
  h({ type: Array })
3635
3667
  ], Le.prototype, "selectedFaces", 2);
3636
3668
  Le = _t([
3637
- S("ap-filter-image")
3669
+ C("ap-filter-image")
3638
3670
  ], Le);
3639
- var vi = Object.defineProperty, mi = Object.getOwnPropertyDescriptor, L = (t, e, a, s) => {
3671
+ var vi = Object.defineProperty, mi = Object.getOwnPropertyDescriptor, I = (t, e, a, s) => {
3640
3672
  for (var i = s > 1 ? void 0 : s ? mi(e, a) : e, r = t.length - 1, o; r >= 0; r--)
3641
3673
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
3642
3674
  return s && i && vi(e, a, i), i;
3643
3675
  };
3644
- function C(t) {
3676
+ function E(t) {
3645
3677
  return `${mt[t.type] || ""}${t.key}`;
3646
3678
  }
3647
- let P = class extends k {
3679
+ let L = class extends S {
3648
3680
  constructor() {
3649
3681
  super(...arguments), this.fields = [], this.appliedFilters = {}, this.visibleFields = [], this.mode = "full", this.activeFieldKey = "", this.pinnedFields = [], this.appliedMetadata = {}, this._showFieldSelection = !1, this._fieldSearch = "", this._collapsedFields = /* @__PURE__ */ new Set(), this._tagInputs = {}, this._tagSuggestions = {}, this._tagLoading = {}, this._datePresets = {}, this._dateFroms = {}, this._dateTos = {}, this._specificModeFields = /* @__PURE__ */ new Set(), this._selectSearches = {}, this._tagDebounceTimers = {};
3650
3682
  }
@@ -3665,7 +3697,7 @@ let P = class extends k {
3665
3697
  return this.visibleFields.length >= at;
3666
3698
  }
3667
3699
  _getField(t) {
3668
- return this.fields.find((e) => C(e) === t);
3700
+ return this.fields.find((e) => E(e) === t);
3669
3701
  }
3670
3702
  _getUIType(t) {
3671
3703
  return is[t.type];
@@ -3684,7 +3716,7 @@ let P = class extends k {
3684
3716
  }
3685
3717
  // ── Event dispatchers ────────────────────────────────────────────
3686
3718
  _emitFilterChange(t, e, a) {
3687
- const s = C(t);
3719
+ const s = E(t);
3688
3720
  this.dispatchEvent(
3689
3721
  new CustomEvent("metadata-filter-change", {
3690
3722
  detail: {
@@ -3699,7 +3731,7 @@ let P = class extends k {
3699
3731
  );
3700
3732
  }
3701
3733
  _emitFieldToggle(t, e) {
3702
- const a = C(t);
3734
+ const a = E(t);
3703
3735
  this.dispatchEvent(
3704
3736
  new CustomEvent("metadata-field-toggle", {
3705
3737
  detail: { fieldKey: a, visible: e },
@@ -3709,7 +3741,7 @@ let P = class extends k {
3709
3741
  );
3710
3742
  }
3711
3743
  _emitFieldSelect(t) {
3712
- const e = C(t);
3744
+ const e = E(t);
3713
3745
  !this.visibleFields.includes(e) && this._atFieldLimit || (this.visibleFields.includes(e) || this._emitFieldToggle(t, !0), this.dispatchEvent(
3714
3746
  new CustomEvent("metadata-field-select", {
3715
3747
  detail: { fieldKey: e },
@@ -3736,7 +3768,7 @@ let P = class extends k {
3736
3768
  }
3737
3769
  _addField(t) {
3738
3770
  if (this._atFieldLimit) return;
3739
- const e = C(t);
3771
+ const e = E(t);
3740
3772
  this.visibleFields.includes(e) || this._emitFieldToggle(t, !0);
3741
3773
  }
3742
3774
  _removeField(t) {
@@ -3748,12 +3780,12 @@ let P = class extends k {
3748
3780
  }
3749
3781
  // ── Operator change (via radio group) ─────────────────────────────
3750
3782
  _onOperatorChange(t, e) {
3751
- const s = this._getApplied(C(t)).values || [];
3783
+ const s = this._getApplied(E(t)).values || [];
3752
3784
  this._emitFilterChange(t, e, s);
3753
3785
  }
3754
3786
  // ── Content mode change ─────────────────────────────────────────
3755
3787
  _onContentModeChange(t, e) {
3756
- const a = C(t);
3788
+ const a = E(t);
3757
3789
  if (e === be) {
3758
3790
  const s = new Set(this._specificModeFields);
3759
3791
  s.add(a), this._specificModeFields = s;
@@ -3769,7 +3801,7 @@ let P = class extends k {
3769
3801
  }
3770
3802
  // ── Clear field filter ──────────────────────────────────────────
3771
3803
  _clearFieldFilter(t) {
3772
- const e = C(t);
3804
+ const e = E(t);
3773
3805
  if (this._specificModeFields.has(e)) {
3774
3806
  const d = new Set(this._specificModeFields);
3775
3807
  d.delete(e), this._specificModeFields = d;
@@ -3787,12 +3819,12 @@ let P = class extends k {
3787
3819
  }
3788
3820
  // ── Text filter ──────────────────────────────────────────────────
3789
3821
  _onTextInput(t, e) {
3790
- const a = e.target.value, i = this._getApplied(C(t)).operator || St[0].value;
3822
+ const a = e.target.value, i = this._getApplied(E(t)).operator || St[0].value;
3791
3823
  this._emitFilterChange(t, i, a ? [a] : []);
3792
3824
  }
3793
3825
  // ── Number filter ────────────────────────────────────────────────
3794
3826
  _onNumberInput(t, e, a) {
3795
- const s = e.target.value, i = C(t), r = this._getApplied(i), o = r.operator || Ft[0].value, l = [...r.values || []];
3827
+ const s = e.target.value, i = E(t), r = this._getApplied(i), o = r.operator || Et[0].value, l = [...r.values || []];
3796
3828
  a === 0 ? l[0] = s : l[1] = s;
3797
3829
  const c = l.filter((p) => p !== "" && p !== void 0);
3798
3830
  if (c.length > 0) {
@@ -3806,22 +3838,22 @@ let P = class extends k {
3806
3838
  // ── Boolean filter ───────────────────────────────────────────────
3807
3839
  _onBooleanSelect(t, e) {
3808
3840
  var i;
3809
- const a = this._getApplied(C(t));
3841
+ const a = this._getApplied(E(t));
3810
3842
  ((i = a.values) == null ? void 0 : i[0]) === e ? this._emitFilterChange(t, void 0, []) : this._emitFilterChange(t, a.operator, [e]);
3811
3843
  }
3812
3844
  // ── Select-one filter ────────────────────────────────────────────
3813
3845
  _onSelectOneToggle(t, e) {
3814
- const a = C(t), s = this._getApplied(a), i = s.operator || ee[0].value, r = s.values || [];
3846
+ const a = E(t), s = this._getApplied(a), i = s.operator || ee[0].value, r = s.values || [];
3815
3847
  r.length === 1 && r[0] === e ? this._emitFilterChange(t, i, []) : this._emitFilterChange(t, i, [e]);
3816
3848
  }
3817
3849
  // ── Multi-select filter ──────────────────────────────────────────
3818
3850
  _onMultiSelectToggle(t, e) {
3819
- const a = C(t), s = this._getApplied(a), i = s.operator || Ct[0].value, r = s.values || [], o = r.includes(e) ? r.filter((l) => l !== e) : [...r, e];
3851
+ const a = E(t), s = this._getApplied(a), i = s.operator || Ct[0].value, r = s.values || [], o = r.includes(e) ? r.filter((l) => l !== e) : [...r, e];
3820
3852
  this._emitFilterChange(t, i, o);
3821
3853
  }
3822
3854
  // ── Tags filter ──────────────────────────────────────────────────
3823
3855
  _onTagKeydown(t, e) {
3824
- const a = C(t);
3856
+ const a = E(t);
3825
3857
  (e.key === "Enter" || e.key === ",") && (e.preventDefault(), this._commitTagInput(t, a));
3826
3858
  }
3827
3859
  _onTagInput(t, e, a) {
@@ -3834,7 +3866,7 @@ let P = class extends k {
3834
3866
  this._tagInputs = { ...this._tagInputs, [e]: s }, this._fetchTagSuggestions(t, e, s.trim());
3835
3867
  }
3836
3868
  _selectTagSuggestion(t, e) {
3837
- const a = C(t), s = this._getApplied(a), i = s.operator || ee[0].value, r = s.values || [];
3869
+ const a = E(t), s = this._getApplied(a), i = s.operator || ee[0].value, r = s.values || [];
3838
3870
  r.includes(e) || this._emitFilterChange(t, i, [...r, e]), this._tagInputs = { ...this._tagInputs, [a]: "" }, this._tagSuggestions = { ...this._tagSuggestions, [a]: [] };
3839
3871
  }
3840
3872
  _fetchTagSuggestions(t, e, a) {
@@ -3867,7 +3899,7 @@ let P = class extends k {
3867
3899
  r.includes(a) || this._emitFilterChange(t, i, [...r, a]), this._tagInputs = { ...this._tagInputs, [e]: "" }, this._tagSuggestions = { ...this._tagSuggestions, [e]: [] };
3868
3900
  }
3869
3901
  _removeTag(t, e) {
3870
- const a = C(t), s = this._getApplied(a), i = s.operator || ee[0].value, r = s.values || [];
3902
+ const a = E(t), s = this._getApplied(a), i = s.operator || ee[0].value, r = s.values || [];
3871
3903
  this._emitFilterChange(
3872
3904
  t,
3873
3905
  i,
@@ -3875,12 +3907,12 @@ let P = class extends k {
3875
3907
  );
3876
3908
  }
3877
3909
  _onTagOperatorChange(t, e) {
3878
- const a = C(t), i = this._getApplied(a).values || [];
3910
+ const a = E(t), i = this._getApplied(a).values || [];
3879
3911
  this._emitFilterChange(t, e, i);
3880
3912
  }
3881
3913
  // ── Date filter ──────────────────────────────────────────────────
3882
3914
  _onDatePreset(t, e) {
3883
- const a = C(t);
3915
+ const a = E(t);
3884
3916
  if (this._datePresets = { ...this._datePresets, [a]: e }, ["before", "after", "between"].includes(e)) {
3885
3917
  this._dateFroms = { ...this._dateFroms, [a]: "" }, this._dateTos = { ...this._dateTos, [a]: "" };
3886
3918
  return;
@@ -3918,7 +3950,7 @@ let P = class extends k {
3918
3950
  i && r && (this._dateFroms = { ...this._dateFroms, [a]: i }, this._dateTos = { ...this._dateTos, [a]: r }, this._emitFilterChange(t, "..", [i, r]));
3919
3951
  }
3920
3952
  _onDateInput(t, e, a) {
3921
- const s = a.target.value, i = C(t), r = this._datePresets[i] || "", o = s ? (/* @__PURE__ */ new Date(s + "T00:00:00")).toISOString() : "";
3953
+ const s = a.target.value, i = E(t), r = this._datePresets[i] || "", o = s ? (/* @__PURE__ */ new Date(s + "T00:00:00")).toISOString() : "";
3922
3954
  e === "from" ? this._dateFroms = { ...this._dateFroms, [i]: o } : this._dateTos = { ...this._dateTos, [i]: o };
3923
3955
  let l = this._dateFroms[i] || "", c = this._dateTos[i] || "";
3924
3956
  r === "after" && l && (c = (/* @__PURE__ */ new Date()).toISOString(), this._dateTos = { ...this._dateTos, [i]: c }), r === "before" && c && (l = (/* @__PURE__ */ new Date(0)).toISOString(), this._dateFroms = { ...this._dateFroms, [i]: l }), l && c && this._emitFilterChange(t, "..", [l, c]);
@@ -3926,7 +3958,7 @@ let P = class extends k {
3926
3958
  // ── Geo filter ───────────────────────────────────────────────────
3927
3959
  _onGeoLocationInput(t, e) {
3928
3960
  var v;
3929
- const a = e.target.value.trim(), s = C(t), i = (v = this.shadowRoot) == null ? void 0 : v.querySelector(
3961
+ const a = e.target.value.trim(), s = E(t), i = (v = this.shadowRoot) == null ? void 0 : v.querySelector(
3930
3962
  `[data-geo-radius="${s}"]`
3931
3963
  ), r = (i == null ? void 0 : i.value) || "";
3932
3964
  if (!a) {
@@ -3942,7 +3974,7 @@ let P = class extends k {
3942
3974
  }
3943
3975
  _onGeoRadiusInput(t, e) {
3944
3976
  var c;
3945
- const a = e.target.value, s = C(t), i = this._getApplied(s);
3977
+ const a = e.target.value, s = E(t), i = this._getApplied(s);
3946
3978
  if (!((c = i.values) != null && c[0])) return;
3947
3979
  const r = i.values[0], [o] = r.split("..");
3948
3980
  let l = o;
@@ -3951,7 +3983,7 @@ let P = class extends k {
3951
3983
  // ── Empty/non-empty option click ─────────────────────────────────
3952
3984
  _onEmptyOption(t, e) {
3953
3985
  var i;
3954
- const a = this._getApplied(C(t));
3986
+ const a = this._getApplied(E(t));
3955
3987
  ((i = a.values) == null ? void 0 : i[0]) === e ? this._emitFilterChange(t, a.operator, []) : this._emitFilterChange(t, a.operator, [e]);
3956
3988
  }
3957
3989
  // ── Render: Field selection panel ────────────────────────────────
@@ -3969,7 +4001,7 @@ let P = class extends k {
3969
4001
  ), a = this._getGroupedFields(e), s = (i, r) => r.length === 0 ? f : n`
3970
4002
  <div class="field-group-label">${i}</div>
3971
4003
  ${r.map((o) => {
3972
- const l = C(o), c = this.visibleFields.includes(l), p = !c && this._atFieldLimit;
4004
+ const l = E(o), c = this.visibleFields.includes(l), p = !c && this._atFieldLimit;
3973
4005
  return n`
3974
4006
  <div
3975
4007
  class="field-item ${c ? "selected" : ""} ${p ? "disabled" : ""}"
@@ -3992,15 +4024,18 @@ let P = class extends k {
3992
4024
  <ap-icon name="close" .size=${16}></ap-icon>
3993
4025
  </button>
3994
4026
  </div>
3995
- <input
3996
- class="field-search"
3997
- type="text"
3998
- placeholder="Search fields..."
3999
- .value=${this._fieldSearch}
4000
- @input=${(i) => {
4027
+ <div class="field-search-wrapper">
4028
+ <ap-icon class="search-icon" name="search" .size=${14}></ap-icon>
4029
+ <input
4030
+ class="field-search"
4031
+ type="text"
4032
+ placeholder="Search fields"
4033
+ .value=${this._fieldSearch}
4034
+ @input=${(i) => {
4001
4035
  this._fieldSearch = i.target.value;
4002
4036
  }}
4003
- />
4037
+ />
4038
+ </div>
4004
4039
  <div class="field-list">
4005
4040
  ${e.length === 0 ? n`<div class="empty-msg">No fields found</div>` : n`${[...a.entries()].map(
4006
4041
  ([i, r]) => s(i, r)
@@ -4012,7 +4047,7 @@ let P = class extends k {
4012
4047
  // ── Render: Text filter ──────────────────────────────────────────
4013
4048
  _renderTextFilter(t) {
4014
4049
  var p, u;
4015
- const e = C(t), a = this._getApplied(e), i = this._isSpecialValue(a.values) ? "" : ((p = a.values) == null ? void 0 : p[0]) || "", r = this._getContentMode(e), o = r === K || r === G, l = a.operator || St[0].value, c = t.type === x.TEXT_AREA;
4050
+ const e = E(t), a = this._getApplied(e), i = this._isSpecialValue(a.values) ? "" : ((p = a.values) == null ? void 0 : p[0]) || "", r = this._getContentMode(e), o = r === K || r === G, l = a.operator || St[0].value, c = t.type === x.TEXT_AREA;
4016
4051
  return n`
4017
4052
  <div class="filter-content" style="position: relative;">
4018
4053
  <button
@@ -4035,7 +4070,7 @@ let P = class extends k {
4035
4070
  <div class="filter-section">
4036
4071
  <span class="section-label">Content</span>
4037
4072
  <ap-radio-group
4038
- .options=${Et}
4073
+ .options=${Ft}
4039
4074
  .value=${r}
4040
4075
  @ap-change=${(v) => this._onContentModeChange(t, v.detail.value)}
4041
4076
  ></ap-radio-group>
@@ -4047,7 +4082,7 @@ let P = class extends k {
4047
4082
  ${c ? n`
4048
4083
  <textarea
4049
4084
  class="filter-input"
4050
- placeholder="Enter value..."
4085
+ placeholder="Enter value"
4051
4086
  .value=${i}
4052
4087
  @change=${(v) => this._onTextInput(t, v)}
4053
4088
  ></textarea>
@@ -4055,7 +4090,7 @@ let P = class extends k {
4055
4090
  <input
4056
4091
  class="filter-input"
4057
4092
  type="text"
4058
- placeholder="Enter value..."
4093
+ placeholder="Enter value"
4059
4094
  .value=${i}
4060
4095
  @change=${(v) => this._onTextInput(t, v)}
4061
4096
  @keydown=${(v) => {
@@ -4070,8 +4105,8 @@ let P = class extends k {
4070
4105
  }
4071
4106
  // ── Render: Number filter ────────────────────────────────────────
4072
4107
  _renderNumberFilter(t) {
4073
- var F, I, H;
4074
- const e = C(t), a = this._getApplied(e), s = a.operator || Ft[0].value, i = this._isSpecialValue(a.values), r = this._getContentMode(e), o = r === K || r === G, l = s === w.RANGE, c = s === w.GREATER_THAN_OR_EQUAL, p = s === w.LESS_THAN_OR_EQUAL, u = t.type === x.DECIMAL2, v = u ? "0.01" : "1", d = u ? "0.00" : "0", g = i ? "" : ((F = a.values) == null ? void 0 : F[0]) || "", b = i ? "" : ((I = a.values) == null ? void 0 : I[1]) || "", E = l || c || p, _ = l || c || p ? "Min" : "Value";
4108
+ var F, P, H;
4109
+ const e = E(t), a = this._getApplied(e), s = a.operator || Et[0].value, i = this._isSpecialValue(a.values), r = this._getContentMode(e), o = r === K || r === G, l = s === w.RANGE, c = s === w.GREATER_THAN_OR_EQUAL, p = s === w.LESS_THAN_OR_EQUAL, u = t.type === x.DECIMAL2, v = u ? "0.01" : "1", d = u ? "0.00" : "0", g = i ? "" : ((F = a.values) == null ? void 0 : F[0]) || "", b = i ? "" : ((P = a.values) == null ? void 0 : P[1]) || "", k = l || c || p, _ = l || c || p ? "Min" : "Value";
4075
4110
  return n`
4076
4111
  <div class="filter-content" style="position: relative;">
4077
4112
  <button
@@ -4084,7 +4119,7 @@ let P = class extends k {
4084
4119
  <span class="section-label">Condition</span>
4085
4120
  <ap-radio-group
4086
4121
  columns="2"
4087
- .options=${Ft}
4122
+ .options=${Et}
4088
4123
  .value=${s}
4089
4124
  ?disabled=${o}
4090
4125
  @ap-change=${(T) => this._onOperatorChange(t, T.detail.value)}
@@ -4094,7 +4129,7 @@ let P = class extends k {
4094
4129
  <div class="filter-section">
4095
4130
  <span class="section-label">Content</span>
4096
4131
  <ap-radio-group
4097
- .options=${Et}
4132
+ .options=${Ft}
4098
4133
  .value=${r}
4099
4134
  @ap-change=${(T) => this._onContentModeChange(t, T.detail.value)}
4100
4135
  ></ap-radio-group>
@@ -4115,7 +4150,7 @@ let P = class extends k {
4115
4150
  @change=${(T) => this._onNumberInput(t, T, 0)}
4116
4151
  />
4117
4152
  </div>
4118
- ${E ? n`
4153
+ ${k ? n`
4119
4154
  <div>
4120
4155
  <span class="input-label" aria-disabled=${c ? "true" : f}>${"Max"}</span>
4121
4156
  <input
@@ -4138,7 +4173,7 @@ let P = class extends k {
4138
4173
  // ── Render: Boolean filter ───────────────────────────────────────
4139
4174
  _renderBooleanFilter(t) {
4140
4175
  var s, i;
4141
- const e = this._getApplied(C(t)), a = ((s = e.values) == null ? void 0 : s[0]) || "";
4176
+ const e = this._getApplied(E(t)), a = ((s = e.values) == null ? void 0 : s[0]) || "";
4142
4177
  return n`
4143
4178
  <div class="filter-content" style="position: relative;">
4144
4179
  <button
@@ -4160,15 +4195,16 @@ let P = class extends k {
4160
4195
  }
4161
4196
  // ── Render: Select-one filter ────────────────────────────────────
4162
4197
  _renderSelectOneFilter(t) {
4163
- const e = C(t), a = this._getApplied(e), s = this._isSpecialValue(a.values), i = s ? [] : a.values || [], r = t.possible_values || [], o = a.operator || ee[0].value, l = (this._selectSearches[e] || "").toLowerCase(), c = l.length > 0, p = i.length > 0 || s, u = l ? r.filter((d) => d.label.toLowerCase().includes(l)) : r, v = i.length >= at;
4198
+ const e = E(t), a = this._getApplied(e), s = this._isSpecialValue(a.values), i = s ? [] : a.values || [], r = t.possible_values || [], o = a.operator || ee[0].value, l = (this._selectSearches[e] || "").toLowerCase(), c = l.length > 0, p = i.length > 0 || s, u = l ? r.filter((d) => d.label.toLowerCase().includes(l)) : r, v = i.length >= at;
4164
4199
  return n`
4165
4200
  <div class="filter-content">
4166
4201
  <!-- Search input -->
4167
4202
  <div class="search-wrapper">
4203
+ <ap-icon class="search-icon" name="search" .size=${14}></ap-icon>
4168
4204
  <input
4169
4205
  class="search-input"
4170
4206
  type="text"
4171
- placeholder="Search options..."
4207
+ placeholder="Search options"
4172
4208
  .value=${this._selectSearches[e] || ""}
4173
4209
  @input=${(d) => {
4174
4210
  this._selectSearches = {
@@ -4279,15 +4315,16 @@ let P = class extends k {
4279
4315
  }
4280
4316
  // ── Render: Multi-select filter ──────────────────────────────────
4281
4317
  _renderMultiSelectFilter(t) {
4282
- const e = C(t), a = this._getApplied(e), s = this._isSpecialValue(a.values), i = s ? [] : a.values || [], r = t.possible_values || [], o = a.operator || Ct[0].value, l = (this._selectSearches[e] || "").toLowerCase(), c = l.length > 0, p = i.length > 0 || s, u = l ? r.filter((d) => d.label.toLowerCase().includes(l)) : r, v = i.length >= at;
4318
+ const e = E(t), a = this._getApplied(e), s = this._isSpecialValue(a.values), i = s ? [] : a.values || [], r = t.possible_values || [], o = a.operator || Ct[0].value, l = (this._selectSearches[e] || "").toLowerCase(), c = l.length > 0, p = i.length > 0 || s, u = l ? r.filter((d) => d.label.toLowerCase().includes(l)) : r, v = i.length >= at;
4283
4319
  return n`
4284
4320
  <div class="filter-content">
4285
4321
  <!-- Search input -->
4286
4322
  <div class="search-wrapper">
4323
+ <ap-icon class="search-icon" name="search" .size=${14}></ap-icon>
4287
4324
  <input
4288
4325
  class="search-input"
4289
4326
  type="text"
4290
- placeholder="Search options..."
4327
+ placeholder="Search options"
4291
4328
  .value=${this._selectSearches[e] || ""}
4292
4329
  @input=${(d) => {
4293
4330
  this._selectSearches = {
@@ -4398,15 +4435,16 @@ let P = class extends k {
4398
4435
  }
4399
4436
  // ── Render: Tags filter ──────────────────────────────────────────
4400
4437
  _renderTagsFilter(t) {
4401
- const e = C(t), a = this._getApplied(e), s = this._isSpecialValue(a.values), i = s ? [] : a.values || [], r = this._tagInputs[e] || "", o = a.operator || ee[0].value, l = i.length > 0 || s, c = this._tagSuggestions[e] || [], p = this._tagLoading[e] || !1, u = r.trim().length > 0, v = i.length >= at;
4438
+ const e = E(t), a = this._getApplied(e), s = this._isSpecialValue(a.values), i = s ? [] : a.values || [], r = this._tagInputs[e] || "", o = a.operator || ee[0].value, l = i.length > 0 || s, c = this._tagSuggestions[e] || [], p = this._tagLoading[e] || !1, u = r.trim().length > 0, v = i.length >= at;
4402
4439
  return n`
4403
4440
  <div class="filter-content">
4404
4441
  <!-- Search input -->
4405
4442
  <div class="search-wrapper">
4443
+ <ap-icon class="search-icon" name="search" .size=${14}></ap-icon>
4406
4444
  <input
4407
4445
  class="search-input"
4408
4446
  type="text"
4409
- placeholder="Search tags..."
4447
+ placeholder="Search tags"
4410
4448
  .value=${r}
4411
4449
  @input=${(d) => this._onTagInput(t, e, d)}
4412
4450
  @keydown=${(d) => this._onTagKeydown(t, d)}
@@ -4516,7 +4554,7 @@ let P = class extends k {
4516
4554
  // ── Render: Date filter ──────────────────────────────────────────
4517
4555
  _renderDateFilter(t) {
4518
4556
  var u, v;
4519
- const e = C(t), a = this._datePresets[e] || "", s = this._getApplied(e), r = this._isSpecialValue(s.values) ? ((u = s.values) == null ? void 0 : u[0]) || "" : a, o = [
4557
+ const e = E(t), a = this._datePresets[e] || "", s = this._getApplied(e), r = this._isSpecialValue(s.values) ? ((u = s.values) == null ? void 0 : u[0]) || "" : a, o = [
4520
4558
  { value: "empty", label: "Empty" },
4521
4559
  { value: "non-empty", label: "Not empty" }
4522
4560
  ], l = this._dateFroms[e] ? new Date(this._dateFroms[e]).toISOString().split("T")[0] : "", c = this._dateTos[e] ? new Date(this._dateTos[e]).toISOString().split("T")[0] : "", p = ["before", "after", "between"].includes(r);
@@ -4597,7 +4635,7 @@ let P = class extends k {
4597
4635
  // ── Render: Geo filter ───────────────────────────────────────────
4598
4636
  _renderGeoFilter(t) {
4599
4637
  var u, v;
4600
- const e = C(t), a = this._getApplied(e), s = this._isSpecialValue(a.values), i = this._getContentMode(e);
4638
+ const e = E(t), a = this._getApplied(e), s = this._isSpecialValue(a.values), i = this._getContentMode(e);
4601
4639
  let r = "", o = "";
4602
4640
  if (!s && ((u = a.values) != null && u[0])) {
4603
4641
  const d = a.values[0], [g, b] = d.split("..");
@@ -4615,7 +4653,7 @@ let P = class extends k {
4615
4653
  <div class="filter-section">
4616
4654
  <span class="section-label">Content</span>
4617
4655
  <ap-radio-group
4618
- .options=${Et}
4656
+ .options=${Ft}
4619
4657
  .value=${i}
4620
4658
  @ap-change=${(d) => this._onContentModeChange(t, d.detail.value)}
4621
4659
  ></ap-radio-group>
@@ -4655,7 +4693,7 @@ let P = class extends k {
4655
4693
  // ── Render: Attachment filter ────────────────────────────────────
4656
4694
  _renderAttachmentFilter(t) {
4657
4695
  var s, i;
4658
- const e = this._getApplied(C(t)), a = ((s = e.values) == null ? void 0 : s[0]) || "";
4696
+ const e = this._getApplied(E(t)), a = ((s = e.values) == null ? void 0 : s[0]) || "";
4659
4697
  return n`
4660
4698
  <div class="filter-content" style="position: relative;">
4661
4699
  <button
@@ -4676,7 +4714,7 @@ let P = class extends k {
4676
4714
  }
4677
4715
  // ── Render: Face matcher (integer-list with slug face_matcher) ──
4678
4716
  _renderFaceMatcherFilter(t) {
4679
- const e = C(t), a = this._getApplied(e), s = a.values || [], i = a.operator || w.IS;
4717
+ const e = E(t), a = this._getApplied(e), s = a.values || [], i = a.operator || w.IS;
4680
4718
  return n`
4681
4719
  <div class="filter-content" style="position: relative;">
4682
4720
  <button
@@ -4696,7 +4734,7 @@ let P = class extends k {
4696
4734
  <input
4697
4735
  class="filter-input"
4698
4736
  type="text"
4699
- placeholder="Search faces..."
4737
+ placeholder="Search faces"
4700
4738
  .value=${s.join(", ")}
4701
4739
  @change=${(r) => {
4702
4740
  const l = r.target.value.split(",").map((c) => c.trim()).filter(Boolean);
@@ -4777,7 +4815,7 @@ let P = class extends k {
4777
4815
  ), a = this._getGroupedFields(e), s = (i, r) => r.length === 0 ? f : n`
4778
4816
  <div class="field-group-label">${i}</div>
4779
4817
  ${r.map((o) => {
4780
- const l = C(o), c = this.visibleFields.includes(l), p = !!this.appliedMetadata[l] || !!this.appliedFilters[l], u = this.pinnedFields.includes(l), v = !c && this._atFieldLimit;
4818
+ const l = E(o), c = this.visibleFields.includes(l), p = !!this.appliedMetadata[l] || !!this.appliedFilters[l], u = this.pinnedFields.includes(l), v = !c && this._atFieldLimit;
4781
4819
  return n`
4782
4820
  <div
4783
4821
  class="field-item ${p ? "has-filter" : ""} ${v ? "disabled" : ""}"
@@ -4801,15 +4839,18 @@ let P = class extends k {
4801
4839
  `;
4802
4840
  return n`
4803
4841
  <div class="selector-wrap">
4804
- <input
4805
- class="field-search"
4806
- type="text"
4807
- placeholder="Search fields..."
4808
- .value=${this._fieldSearch}
4809
- @input=${(i) => {
4842
+ <div class="field-search-wrapper">
4843
+ <ap-icon class="search-icon" name="search" .size=${14}></ap-icon>
4844
+ <input
4845
+ class="field-search"
4846
+ type="text"
4847
+ placeholder="Search fields"
4848
+ .value=${this._fieldSearch}
4849
+ @input=${(i) => {
4810
4850
  this._fieldSearch = i.target.value;
4811
4851
  }}
4812
- />
4852
+ />
4853
+ </div>
4813
4854
  <div class="field-list">
4814
4855
  ${e.length === 0 ? n`<div class="empty-msg">No fields found</div>` : n`${[...a.entries()].map(
4815
4856
  ([i, r]) => s(i, r)
@@ -4852,7 +4893,7 @@ let P = class extends k {
4852
4893
  `;
4853
4894
  }
4854
4895
  };
4855
- P.styles = [ie, oe, $`
4896
+ L.styles = [ie, oe, $`
4856
4897
  /* ── Field selection panel ─────────────────────────────── */
4857
4898
 
4858
4899
  .add-field-btn {
@@ -4915,13 +4956,25 @@ P.styles = [ie, oe, $`
4915
4956
  margin: 0;
4916
4957
  }
4917
4958
 
4918
- .field-search {
4959
+ .field-search-wrapper {
4919
4960
  position: sticky;
4920
4961
  top: 0;
4921
4962
  z-index: 2;
4963
+ }
4964
+
4965
+ .field-search-wrapper .search-icon {
4966
+ position: absolute;
4967
+ left: 10px;
4968
+ top: 50%;
4969
+ transform: translateY(-50%);
4970
+ color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
4971
+ pointer-events: none;
4972
+ }
4973
+
4974
+ .field-search {
4922
4975
  width: 100%;
4923
4976
  height: 34px;
4924
- padding: 0 20px;
4977
+ padding: 0 20px 0 32px;
4925
4978
  box-sizing: border-box;
4926
4979
  border: none;
4927
4980
  border-bottom: 1px solid var(--ap-border, oklch(92.86% 0.009 247.92));
@@ -4934,6 +4987,7 @@ P.styles = [ie, oe, $`
4934
4987
 
4935
4988
  .field-search::placeholder {
4936
4989
  color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
4990
+ font-weight: 400;
4937
4991
  }
4938
4992
 
4939
4993
  .field-list {
@@ -5217,72 +5271,72 @@ P.styles = [ie, oe, $`
5217
5271
  background: var(--ap-primary-10, oklch(0.578 0.198 268.129 / 0.1));
5218
5272
  }
5219
5273
  `];
5220
- L([
5274
+ I([
5221
5275
  h({ type: Array })
5222
- ], P.prototype, "fields", 2);
5223
- L([
5276
+ ], L.prototype, "fields", 2);
5277
+ I([
5224
5278
  h({ type: Object })
5225
- ], P.prototype, "appliedFilters", 2);
5226
- L([
5279
+ ], L.prototype, "appliedFilters", 2);
5280
+ I([
5227
5281
  h({ type: Array })
5228
- ], P.prototype, "visibleFields", 2);
5229
- L([
5282
+ ], L.prototype, "visibleFields", 2);
5283
+ I([
5230
5284
  h()
5231
- ], P.prototype, "mode", 2);
5232
- L([
5285
+ ], L.prototype, "mode", 2);
5286
+ I([
5233
5287
  h()
5234
- ], P.prototype, "activeFieldKey", 2);
5235
- L([
5288
+ ], L.prototype, "activeFieldKey", 2);
5289
+ I([
5236
5290
  h({ type: Array })
5237
- ], P.prototype, "pinnedFields", 2);
5238
- L([
5291
+ ], L.prototype, "pinnedFields", 2);
5292
+ I([
5239
5293
  h({ type: Object })
5240
- ], P.prototype, "appliedMetadata", 2);
5241
- L([
5294
+ ], L.prototype, "appliedMetadata", 2);
5295
+ I([
5242
5296
  h({ attribute: !1 })
5243
- ], P.prototype, "apiClient", 2);
5244
- L([
5297
+ ], L.prototype, "apiClient", 2);
5298
+ I([
5245
5299
  y()
5246
- ], P.prototype, "_showFieldSelection", 2);
5247
- L([
5300
+ ], L.prototype, "_showFieldSelection", 2);
5301
+ I([
5248
5302
  y()
5249
- ], P.prototype, "_fieldSearch", 2);
5250
- L([
5303
+ ], L.prototype, "_fieldSearch", 2);
5304
+ I([
5251
5305
  y()
5252
- ], P.prototype, "_collapsedFields", 2);
5253
- L([
5306
+ ], L.prototype, "_collapsedFields", 2);
5307
+ I([
5254
5308
  y()
5255
- ], P.prototype, "_tagInputs", 2);
5256
- L([
5309
+ ], L.prototype, "_tagInputs", 2);
5310
+ I([
5257
5311
  y()
5258
- ], P.prototype, "_tagSuggestions", 2);
5259
- L([
5312
+ ], L.prototype, "_tagSuggestions", 2);
5313
+ I([
5260
5314
  y()
5261
- ], P.prototype, "_tagLoading", 2);
5262
- L([
5315
+ ], L.prototype, "_tagLoading", 2);
5316
+ I([
5263
5317
  y()
5264
- ], P.prototype, "_datePresets", 2);
5265
- L([
5318
+ ], L.prototype, "_datePresets", 2);
5319
+ I([
5266
5320
  y()
5267
- ], P.prototype, "_dateFroms", 2);
5268
- L([
5321
+ ], L.prototype, "_dateFroms", 2);
5322
+ I([
5269
5323
  y()
5270
- ], P.prototype, "_dateTos", 2);
5271
- L([
5324
+ ], L.prototype, "_dateTos", 2);
5325
+ I([
5272
5326
  y()
5273
- ], P.prototype, "_specificModeFields", 2);
5274
- L([
5327
+ ], L.prototype, "_specificModeFields", 2);
5328
+ I([
5275
5329
  y()
5276
- ], P.prototype, "_selectSearches", 2);
5277
- P = L([
5278
- S("ap-filter-metadata")
5279
- ], P);
5330
+ ], L.prototype, "_selectSearches", 2);
5331
+ L = I([
5332
+ C("ap-filter-metadata")
5333
+ ], L);
5280
5334
  var bi = Object.defineProperty, _i = Object.getOwnPropertyDescriptor, Z = (t, e, a, s) => {
5281
5335
  for (var i = s > 1 ? void 0 : s ? _i(e, a) : e, r = t.length - 1, o; r >= 0; r--)
5282
5336
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
5283
5337
  return s && i && bi(e, a, i), i;
5284
5338
  };
5285
- let Y = class extends k {
5339
+ let Y = class extends S {
5286
5340
  constructor() {
5287
5341
  super(...arguments), this.selectedStatus = [], this.statusOperator = ":=", this.approverValue = "", this.approverOperator = "~", this.requesterValue = "", this.requesterOperator = "~", this.dueDatePreset = "", this.dueDateFrom = "", this.dueDateTo = "";
5288
5342
  }
@@ -5304,43 +5358,43 @@ let Y = class extends k {
5304
5358
  // ── Status handlers ────────────────────────────────────────────────
5305
5359
  _toggleStatus(t) {
5306
5360
  const e = this.selectedStatus.includes(t) ? this.selectedStatus.filter((a) => a !== t) : [...this.selectedStatus, t];
5307
- this._emitChange(U.STATUS, e, this.statusOperator);
5361
+ this._emitChange(B.STATUS, e, this.statusOperator);
5308
5362
  }
5309
5363
  _handleStatusOperator(t) {
5310
5364
  const e = t.detail.value;
5311
- this._emitChange(U.STATUS, this.selectedStatus, e);
5365
+ this._emitChange(B.STATUS, this.selectedStatus, e);
5312
5366
  }
5313
5367
  _clearStatus() {
5314
- this._emitChange(U.STATUS, [], this.statusOperator);
5368
+ this._emitChange(B.STATUS, [], this.statusOperator);
5315
5369
  }
5316
5370
  // ── Approver handlers ──────────────────────────────────────────────
5317
5371
  _handleApproverInput(t) {
5318
5372
  const e = t.target.value;
5319
- this._emitChange(U.APPROVER, e ? [e] : [], this.approverOperator);
5373
+ this._emitChange(B.APPROVER, e ? [e] : [], this.approverOperator);
5320
5374
  }
5321
5375
  _handleApproverOperator(t) {
5322
5376
  const e = t.detail.value;
5323
- this._emitChange(U.APPROVER, this.approverValue ? [this.approverValue] : [], e);
5377
+ this._emitChange(B.APPROVER, this.approverValue ? [this.approverValue] : [], e);
5324
5378
  }
5325
5379
  _clearApprover() {
5326
- this._emitChange(U.APPROVER, [], this.approverOperator);
5380
+ this._emitChange(B.APPROVER, [], this.approverOperator);
5327
5381
  }
5328
5382
  // ── Requester handlers ─────────────────────────────────────────────
5329
5383
  _handleRequesterInput(t) {
5330
5384
  const e = t.target.value;
5331
- this._emitChange(U.REQUESTOR, e ? [e] : [], this.requesterOperator);
5385
+ this._emitChange(B.REQUESTOR, e ? [e] : [], this.requesterOperator);
5332
5386
  }
5333
5387
  _handleRequesterOperator(t) {
5334
5388
  const e = t.detail.value;
5335
- this._emitChange(U.REQUESTOR, this.requesterValue ? [this.requesterValue] : [], e);
5389
+ this._emitChange(B.REQUESTOR, this.requesterValue ? [this.requesterValue] : [], e);
5336
5390
  }
5337
5391
  _clearRequester() {
5338
- this._emitChange(U.REQUESTOR, [], this.requesterOperator);
5392
+ this._emitChange(B.REQUESTOR, [], this.requesterOperator);
5339
5393
  }
5340
5394
  // ── Due Date handlers ──────────────────────────────────────────────
5341
5395
  _handleDueDatePreset(t) {
5342
5396
  const e = t.detail.value, a = this.dueDatePreset === e ? "" : e;
5343
- this._emitChange(U.DUE_DATE, a ? [a] : [], ":");
5397
+ this._emitChange(B.DUE_DATE, a ? [a] : [], ":");
5344
5398
  }
5345
5399
  _handleDueDateFrom(t) {
5346
5400
  const e = t.target.value;
@@ -5353,7 +5407,7 @@ let Y = class extends k {
5353
5407
  _clearDueDate() {
5354
5408
  this.dispatchEvent(new CustomEvent("filter-change", {
5355
5409
  detail: {
5356
- key: U.DUE_DATE,
5410
+ key: B.DUE_DATE,
5357
5411
  values: [],
5358
5412
  operator: ":"
5359
5413
  },
@@ -5365,7 +5419,7 @@ let Y = class extends k {
5365
5419
  const a = [];
5366
5420
  t && a.push(t), e && a.push(e), this.dispatchEvent(new CustomEvent("filter-change", {
5367
5421
  detail: {
5368
- key: U.DUE_DATE,
5422
+ key: B.DUE_DATE,
5369
5423
  values: a,
5370
5424
  operator: t && e ? ".." : t ? ">=" : "<="
5371
5425
  },
@@ -5461,7 +5515,7 @@ let Y = class extends k {
5461
5515
  <input
5462
5516
  class="filter-input mt-12"
5463
5517
  type="text"
5464
- placeholder="Enter approver name..."
5518
+ placeholder="Enter approver name"
5465
5519
  .value=${this.approverValue}
5466
5520
  @input=${this._handleApproverInput}
5467
5521
  />
@@ -5492,7 +5546,7 @@ let Y = class extends k {
5492
5546
  <input
5493
5547
  class="filter-input mt-12"
5494
5548
  type="text"
5495
- placeholder="Enter requester name..."
5549
+ placeholder="Enter requester name"
5496
5550
  .value=${this.requesterValue}
5497
5551
  @input=${this._handleRequesterInput}
5498
5552
  />
@@ -5586,7 +5640,7 @@ Y.styles = [ie, oe, $`
5586
5640
  }
5587
5641
  .condition-label {
5588
5642
  font-weight: 500;
5589
- margin-bottom: 6px;
5643
+ margin-bottom: 8px;
5590
5644
  }
5591
5645
  .mt-12 {
5592
5646
  margin-top: 12px;
@@ -5620,7 +5674,7 @@ Z([
5620
5674
  h()
5621
5675
  ], Y.prototype, "dueDateTo", 2);
5622
5676
  Y = Z([
5623
- S("ap-filter-approval")
5677
+ C("ap-filter-approval")
5624
5678
  ], Y);
5625
5679
  var yi = Object.defineProperty, xi = Object.getOwnPropertyDescriptor, J = (t, e, a, s) => {
5626
5680
  for (var i = s > 1 ? void 0 : s ? xi(e, a) : e, r = t.length - 1, o; r >= 0; r--)
@@ -5635,7 +5689,7 @@ function $i(t) {
5635
5689
  )
5636
5690
  );
5637
5691
  }
5638
- let X = class extends k {
5692
+ let X = class extends S {
5639
5693
  constructor() {
5640
5694
  super(...arguments), this.selected = [], this._search = "", this._debouncedSearch = "", this._products = [], this._isLoading = !1, this._showAddList = !1, this._addListText = "";
5641
5695
  }
@@ -5739,6 +5793,7 @@ let X = class extends k {
5739
5793
  return n`
5740
5794
  <div class="filter-content">
5741
5795
  <div class="filter-header">
5796
+ <ap-icon class="search-icon" name="search" .size=${14}></ap-icon>
5742
5797
  <input
5743
5798
  class="product-search"
5744
5799
  type="text"
@@ -5887,9 +5942,18 @@ X.styles = [ie, oe, $`
5887
5942
  margin: -10px -8px 10px;
5888
5943
  }
5889
5944
 
5945
+ .filter-header .search-icon {
5946
+ position: absolute;
5947
+ left: 10px;
5948
+ top: 50%;
5949
+ transform: translateY(-50%);
5950
+ color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
5951
+ pointer-events: none;
5952
+ }
5953
+
5890
5954
  .product-search {
5891
5955
  width: 100%;
5892
- padding: 8px 10px;
5956
+ padding: 8px 32px 8px 32px;
5893
5957
  border: none;
5894
5958
  border-bottom: 1px solid var(--ap-border, oklch(92.86% 0.009 247.92));
5895
5959
  font-size: var(--ap-font-size-sm, 0.875rem);
@@ -5901,6 +5965,7 @@ X.styles = [ie, oe, $`
5901
5965
 
5902
5966
  .product-search::placeholder {
5903
5967
  color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
5968
+ font-weight: 400;
5904
5969
  }
5905
5970
 
5906
5971
  .search-clear {
@@ -6111,14 +6176,14 @@ J([
6111
6176
  y()
6112
6177
  ], X.prototype, "_addListText", 2);
6113
6178
  X = J([
6114
- S("ap-filter-product-ref")
6179
+ C("ap-filter-product-ref")
6115
6180
  ], X);
6116
6181
  var ki = Object.defineProperty, Si = Object.getOwnPropertyDescriptor, O = (t, e, a, s) => {
6117
6182
  for (var i = s > 1 ? void 0 : s ? Si(e, a) : e, r = t.length - 1, o; r >= 0; r--)
6118
6183
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
6119
6184
  return s && i && ki(e, a, i), i;
6120
6185
  };
6121
- let M = class extends k {
6186
+ let M = class extends S {
6122
6187
  constructor() {
6123
6188
  super(...arguments), this.totalCount = 0, this.totalFolderCount = 0, this.isLoading = !1, this.showUpload = !1, this.sortBy = "created_at", this.sortDirection = "desc", this.sortOptions = Dt, this.filters = {
6124
6189
  metadata: { pinned: [], visible: [], applied: {} },
@@ -6562,7 +6627,7 @@ M.styles = $`
6562
6627
  .controls {
6563
6628
  display: flex;
6564
6629
  align-items: center;
6565
- gap: 4px;
6630
+ gap: 0;
6566
6631
  }
6567
6632
 
6568
6633
  /* Filter dropdown trigger */
@@ -6929,14 +6994,14 @@ O([
6929
6994
  y()
6930
6995
  ], M.prototype, "_externalTop", 2);
6931
6996
  M = O([
6932
- S("ap-content-toolbar")
6997
+ C("ap-content-toolbar")
6933
6998
  ], M);
6934
- var Ci = Object.defineProperty, Fi = Object.getOwnPropertyDescriptor, V = (t, e, a, s) => {
6935
- for (var i = s > 1 ? void 0 : s ? Fi(e, a) : e, r = t.length - 1, o; r >= 0; r--)
6999
+ var Ci = Object.defineProperty, Ei = Object.getOwnPropertyDescriptor, V = (t, e, a, s) => {
7000
+ for (var i = s > 1 ? void 0 : s ? Ei(e, a) : e, r = t.length - 1, o; r >= 0; r--)
6936
7001
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
6937
7002
  return s && i && Ci(e, a, i), i;
6938
7003
  };
6939
- let N = class extends k {
7004
+ let N = class extends S {
6940
7005
  constructor() {
6941
7006
  super(...arguments), this.appliedFilters = {}, this.appliedMetadata = {}, this.forcedFilters = {}, this.metadataFields = [], this.pinnedFilters = [], this.pinnedMetadataFields = [], this.tags = [], this.labels = [], this.activeFilter = null, this.activeMetadataField = null, this.pendingFilter = null, this.pendingMetadataField = null;
6942
7007
  }
@@ -7129,7 +7194,7 @@ let N = class extends k {
7129
7194
  `;
7130
7195
  }
7131
7196
  render() {
7132
- const t = Ue(this.forcedFilters), e = new Set(Object.keys(t)), a = Object.keys(this.appliedFilters).filter((g) => !e.has(g)), s = Object.keys(this.appliedMetadata), i = new Set(this.pinnedFilters), r = new Set(this.pinnedMetadataFields), o = this.pinnedFilters.filter((g) => !e.has(g)), l = a.filter((g) => !i.has(g)), c = s.filter((g) => !r.has(g)), p = this.pendingFilter && !i.has(this.pendingFilter) && !(this.pendingFilter in this.appliedFilters), u = this.pendingMetadataField && !r.has(this.pendingMetadataField) && !(this.pendingMetadataField in this.appliedMetadata), v = a.length + s.length > 0;
7197
+ const t = Be(this.forcedFilters), e = new Set(Object.keys(t)), a = Object.keys(this.appliedFilters).filter((g) => !e.has(g)), s = Object.keys(this.appliedMetadata), i = new Set(this.pinnedFilters), r = new Set(this.pinnedMetadataFields), o = this.pinnedFilters.filter((g) => !e.has(g)), l = a.filter((g) => !i.has(g)), c = s.filter((g) => !r.has(g)), p = this.pendingFilter && !i.has(this.pendingFilter) && !(this.pendingFilter in this.appliedFilters), u = this.pendingMetadataField && !r.has(this.pendingMetadataField) && !(this.pendingMetadataField in this.appliedMetadata), v = a.length + s.length > 0;
7133
7198
  return e.size + o.length + this.pinnedMetadataFields.length + l.length + c.length + (p ? 1 : 0) + (u ? 1 : 0) === 0 ? f : n`
7134
7199
  <div class="chips-row">
7135
7200
  <div class="chips">
@@ -7184,7 +7249,7 @@ N.styles = $`
7184
7249
  .chips {
7185
7250
  display: flex;
7186
7251
  align-items: center;
7187
- gap: 8px;
7252
+ gap: 12px;
7188
7253
  overflow-x: auto;
7189
7254
  scrollbar-width: none;
7190
7255
  min-width: 0;
@@ -7353,15 +7418,15 @@ V([
7353
7418
  h()
7354
7419
  ], N.prototype, "pendingMetadataField", 2);
7355
7420
  N = V([
7356
- S("ap-filters-bar")
7421
+ C("ap-filters-bar")
7357
7422
  ], N);
7358
- var Ei = Object.defineProperty, Ai = Object.getOwnPropertyDescriptor, Ee = (t, e, a, s) => {
7423
+ var Fi = Object.defineProperty, Ai = Object.getOwnPropertyDescriptor, Fe = (t, e, a, s) => {
7359
7424
  for (var i = s > 1 ? void 0 : s ? Ai(e, a) : e, r = t.length - 1, o; r >= 0; r--)
7360
7425
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
7361
- return s && i && Ei(e, a, i), i;
7426
+ return s && i && Fi(e, a, i), i;
7362
7427
  };
7363
7428
  const Ti = 6;
7364
- let se = class extends k {
7429
+ let se = class extends S {
7365
7430
  constructor() {
7366
7431
  super(...arguments), this.assets = [], this.folders = [], this.folderPreviews = {}, this.selectedIds = [], this.isLoading = !1, this.multiSelect = !0, this._prevCount = 0;
7367
7432
  }
@@ -7416,7 +7481,7 @@ se.styles = $`
7416
7481
  .grid {
7417
7482
  display: grid;
7418
7483
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
7419
- gap: 20px 24px;
7484
+ gap: 24px;
7420
7485
  }
7421
7486
  .ghost-card {
7422
7487
  aspect-ratio: 6/4;
@@ -7438,26 +7503,26 @@ se.styles = $`
7438
7503
  .ghost-card { animation: none; }
7439
7504
  }
7440
7505
  `;
7441
- Ee([
7506
+ Fe([
7442
7507
  h({ type: Array })
7443
7508
  ], se.prototype, "assets", 2);
7444
- Ee([
7509
+ Fe([
7445
7510
  h({ type: Array })
7446
7511
  ], se.prototype, "folders", 2);
7447
- Ee([
7512
+ Fe([
7448
7513
  h({ type: Object })
7449
7514
  ], se.prototype, "folderPreviews", 2);
7450
- Ee([
7515
+ Fe([
7451
7516
  h({ type: Array })
7452
7517
  ], se.prototype, "selectedIds", 2);
7453
- Ee([
7518
+ Fe([
7454
7519
  h({ type: Boolean })
7455
7520
  ], se.prototype, "isLoading", 2);
7456
- Ee([
7521
+ Fe([
7457
7522
  h({ type: Boolean })
7458
7523
  ], se.prototype, "multiSelect", 2);
7459
- se = Ee([
7460
- S("ap-grid-view")
7524
+ se = Fe([
7525
+ C("ap-grid-view")
7461
7526
  ], se);
7462
7527
  var Mi = Object.defineProperty, Oi = Object.getOwnPropertyDescriptor, ge = (t, e, a, s) => {
7463
7528
  for (var i = s > 1 ? void 0 : s ? Oi(e, a) : e, r = t.length - 1, o; r >= 0; r--)
@@ -7465,7 +7530,7 @@ var Mi = Object.defineProperty, Oi = Object.getOwnPropertyDescriptor, ge = (t, e
7465
7530
  return s && i && Mi(e, a, i), i;
7466
7531
  };
7467
7532
  const Pi = 5;
7468
- let Q = class extends k {
7533
+ let Q = class extends S {
7469
7534
  constructor() {
7470
7535
  super(...arguments), this.assets = [], this.folders = [], this.selectedIds = [], this.isLoading = !1, this.multiSelect = !0, this.totalCount = 0, this.isSelectingAll = !1;
7471
7536
  }
@@ -7539,7 +7604,7 @@ Q.styles = $`
7539
7604
  padding: 8px 12px;
7540
7605
  font-size: 14px;
7541
7606
  font-weight: 400;
7542
- color: var(--ap-secondary-foreground, oklch(53.03% 0.039 249.89));
7607
+ color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
7543
7608
  border-bottom: 1px solid var(--ap-border, oklch(92.86% 0.009 247.92));
7544
7609
  }
7545
7610
  .list-header:not(.has-checkbox) {
@@ -7625,7 +7690,7 @@ ge([
7625
7690
  h({ type: Boolean })
7626
7691
  ], Q.prototype, "isSelectingAll", 2);
7627
7692
  Q = ge([
7628
- S("ap-list-view")
7693
+ C("ap-list-view")
7629
7694
  ], Q);
7630
7695
  function ct(t) {
7631
7696
  var s;
@@ -7794,7 +7859,7 @@ function Ot(t) {
7794
7859
  return e.length > 1 ? e[1] : e[0];
7795
7860
  }
7796
7861
  const zi = /* @__PURE__ */ new Set(["png", "svg", "webp", "gif", "avif"]);
7797
- function Bt(t) {
7862
+ function Ut(t) {
7798
7863
  const e = (t == null ? void 0 : t.toLowerCase().replace(".", "")) || "";
7799
7864
  return zi.has(e);
7800
7865
  }
@@ -7803,7 +7868,7 @@ var Ri = Object.defineProperty, Ni = Object.getOwnPropertyDescriptor, Ze = (t, e
7803
7868
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
7804
7869
  return s && i && Ri(e, a, i), i;
7805
7870
  };
7806
- let $e = class extends k {
7871
+ let $e = class extends S {
7807
7872
  constructor() {
7808
7873
  super(...arguments), this.index = 0, this.selected = !1, this.multiSelect = !0;
7809
7874
  }
@@ -7830,7 +7895,7 @@ let $e = class extends k {
7830
7895
  }
7831
7896
  _formatDuration(t) {
7832
7897
  const e = Math.floor(t / 3600), a = Math.floor(t % 3600 / 60), s = Math.floor(t % 60), i = (r) => String(r).padStart(2, "0");
7833
- return e > 0 ? `${e}:${i(a)}:${i(s)}` : `${a}:${i(s)}`;
7898
+ return e > 0 ? `${e}:${i(a)}:${i(s)}` : `${i(a)}:${i(s)}`;
7834
7899
  }
7835
7900
  _handleQuickSelect(t) {
7836
7901
  t.stopPropagation(), this.dispatchEvent(new CustomEvent("asset-quick-select", {
@@ -7839,13 +7904,13 @@ let $e = class extends k {
7839
7904
  }));
7840
7905
  }
7841
7906
  render() {
7842
- var c, p, u, v;
7907
+ var c, p, u, v, d;
7843
7908
  const t = this.asset;
7844
7909
  if (!t) return n``;
7845
7910
  const a = Oe(t.type) === "video", s = ((c = t.extension) == null ? void 0 : c.toLowerCase()) === "pdf", i = $a(t.extension || "");
7846
7911
  let r = "";
7847
7912
  a ? r = xa(t) : s ? r = Nt(t) : i && (r = ct(t));
7848
- const o = yt(t.extension || ""), l = Bt(t.extension || "");
7913
+ const o = yt(t.extension || ""), l = Ut(t.extension || "");
7849
7914
  return n`
7850
7915
  <div class="card" @click=${this._handleSelect}>
7851
7916
  <div class="thumbnail ${l && r ? "chess" : ""}">
@@ -7854,20 +7919,20 @@ let $e = class extends k {
7854
7919
  alt=${t.name}
7855
7920
  loading="lazy"
7856
7921
  class="thumb-img ${l ? "transparent-asset" : ""}"
7857
- @error=${(d) => {
7858
- const g = d.target, b = Ke();
7859
- g.src !== o && g.src !== b ? (g.src = o, g.classList.add("icon-fallback")) : g.src !== b && (g.src = b);
7922
+ @error=${(g) => {
7923
+ const b = g.target, k = Ke();
7924
+ b.src !== o && b.src !== k ? (b.src = o, b.classList.add("icon-fallback")) : b.src !== k && (b.src = k);
7860
7925
  }}
7861
7926
  />` : n`<img
7862
7927
  src=${o}
7863
7928
  alt=${t.name}
7864
7929
  class="thumb-img icon-fallback"
7865
- @error=${(d) => {
7866
- const g = d.target, b = Ke();
7867
- g.src !== b && (g.src = b);
7930
+ @error=${(g) => {
7931
+ const b = g.target, k = Ke();
7932
+ b.src !== k && (b.src = k);
7868
7933
  }}
7869
7934
  />`}
7870
- ${a && ((p = t.info) != null && p.duration) ? n`<span class="duration">${this._formatDuration(t.info.duration)}</span>` : f}
7935
+ ${a && (((p = t.info) == null ? void 0 : p.video_duration) ?? ((u = t.info) == null ? void 0 : u.duration)) != null ? n`<span class="duration">${this._formatDuration(t.info.video_duration ?? t.info.duration)}</span>` : f}
7871
7936
  <div class="overlay">
7872
7937
  <button class="overlay-btn" @click=${this._handlePreview} aria-label="Preview">
7873
7938
  <ap-icon name="preview" .size=${16}></ap-icon>
@@ -7890,11 +7955,11 @@ let $e = class extends k {
7890
7955
  </div>
7891
7956
  <div class="info">
7892
7957
  <div class="name" title=${t.name}>${t.name}</div>
7893
- <div class="meta">${(u = t.extension) == null ? void 0 : u.toUpperCase()}${(() => {
7894
- var E, _, A, F;
7895
- const d = ((E = t.info) == null ? void 0 : E.img_w) || ((_ = t.info) == null ? void 0 : _.video_w), g = ((A = t.info) == null ? void 0 : A.img_h) || ((F = t.info) == null ? void 0 : F.video_h), b = wa(d, g);
7896
- return b ? ` · ${b}` : "";
7897
- })()} · ${jt(((v = t.size) == null ? void 0 : v.bytes) || 0)}</div>
7958
+ <div class="meta">${(v = t.extension) == null ? void 0 : v.toUpperCase()}${(() => {
7959
+ var _, A, F, P;
7960
+ const g = ((_ = t.info) == null ? void 0 : _.img_w) || ((A = t.info) == null ? void 0 : A.video_w), b = ((F = t.info) == null ? void 0 : F.img_h) || ((P = t.info) == null ? void 0 : P.video_h), k = wa(g, b);
7961
+ return k ? ` · ${k}` : "";
7962
+ })()} · ${jt(((d = t.size) == null ? void 0 : d.bytes) || 0)}</div>
7898
7963
  </div>
7899
7964
  </div>
7900
7965
  `;
@@ -8006,7 +8071,7 @@ $e.styles = $`
8006
8071
  }
8007
8072
  .name {
8008
8073
  font-size: var(--ap-font-size-sm, 0.875rem);
8009
- font-weight: 500;
8074
+ font-weight: 400;
8010
8075
  color: var(--ap-foreground, oklch(0.37 0.022 248.413));
8011
8076
  white-space: nowrap;
8012
8077
  overflow: hidden;
@@ -8035,6 +8100,9 @@ $e.styles = $`
8035
8100
  transition: all 150ms;
8036
8101
  background: var(--ap-background, oklch(1 0 0));
8037
8102
  }
8103
+ .check:hover .check-box {
8104
+ border-color: var(--ap-secondary-foreground-50, oklch(53.03% 0.039 249.89 / 0.5));
8105
+ }
8038
8106
  :host([selected]) .check-box {
8039
8107
  background: var(--ap-primary, oklch(0.578 0.198 268.129));
8040
8108
  border-color: var(--ap-primary, oklch(0.578 0.198 268.129));
@@ -8060,8 +8128,8 @@ $e.styles = $`
8060
8128
  }
8061
8129
  .duration {
8062
8130
  position: absolute;
8063
- bottom: 6px;
8064
- left: 6px;
8131
+ bottom: 8px;
8132
+ right: 12px;
8065
8133
  z-index: 1;
8066
8134
  padding: 2px 6px;
8067
8135
  border-radius: 4px;
@@ -8090,14 +8158,14 @@ Ze([
8090
8158
  h({ type: Boolean })
8091
8159
  ], $e.prototype, "multiSelect", 2);
8092
8160
  $e = Ze([
8093
- S("ap-asset-card")
8161
+ C("ap-asset-card")
8094
8162
  ], $e);
8095
- var ji = Object.defineProperty, Bi = Object.getOwnPropertyDescriptor, Je = (t, e, a, s) => {
8096
- for (var i = s > 1 ? void 0 : s ? Bi(e, a) : e, r = t.length - 1, o; r >= 0; r--)
8163
+ var ji = Object.defineProperty, Ui = Object.getOwnPropertyDescriptor, Je = (t, e, a, s) => {
8164
+ for (var i = s > 1 ? void 0 : s ? Ui(e, a) : e, r = t.length - 1, o; r >= 0; r--)
8097
8165
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
8098
8166
  return s && i && ji(e, a, i), i;
8099
8167
  };
8100
- let ke = class extends k {
8168
+ let ke = class extends S {
8101
8169
  constructor() {
8102
8170
  super(...arguments), this.index = 0, this.selected = !1, this.multiSelect = !0;
8103
8171
  }
@@ -8129,7 +8197,7 @@ let ke = class extends k {
8129
8197
  const a = Oe(t.type) === "video", s = ((c = t.extension) == null ? void 0 : c.toLowerCase()) === "pdf", i = $a(t.extension || "");
8130
8198
  let r = "";
8131
8199
  a ? r = xa(t) : s ? r = Nt(t) : i && (r = ct(t));
8132
- const o = yt(t.extension || ""), l = Bt(t.extension || "");
8200
+ const o = yt(t.extension || ""), l = Ut(t.extension || "");
8133
8201
  return n`
8134
8202
  <div class="row" @click=${this._handleSelect}>
8135
8203
  ${this.multiSelect ? n`
@@ -8221,7 +8289,7 @@ ke.styles = $`
8221
8289
  }
8222
8290
  .name {
8223
8291
  font-size: var(--ap-font-size-sm, 0.875rem);
8224
- font-weight: 500;
8292
+ font-weight: 400;
8225
8293
  color: var(--ap-foreground, oklch(0.37 0.022 248.413));
8226
8294
  white-space: nowrap;
8227
8295
  overflow: hidden;
@@ -8229,14 +8297,14 @@ ke.styles = $`
8229
8297
  }
8230
8298
  .type {
8231
8299
  font-size: 0.8125rem;
8232
- color: var(--ap-foreground, oklch(0.37 0.022 248.413));
8300
+ color: var(--ap-secondary-foreground, oklch(53.03% 0.039 249.89));
8233
8301
  white-space: nowrap;
8234
8302
  overflow: hidden;
8235
8303
  text-overflow: ellipsis;
8236
8304
  }
8237
8305
  .desc, .date {
8238
8306
  font-size: 0.8125rem;
8239
- color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
8307
+ color: var(--ap-secondary-foreground, oklch(53.03% 0.039 249.89));
8240
8308
  white-space: nowrap;
8241
8309
  overflow: hidden;
8242
8310
  text-overflow: ellipsis;
@@ -8288,6 +8356,9 @@ ke.styles = $`
8288
8356
  transition: all 150ms;
8289
8357
  background: var(--ap-background, oklch(1 0 0));
8290
8358
  }
8359
+ .check:hover .check-box {
8360
+ border-color: var(--ap-secondary-foreground-50, oklch(53.03% 0.039 249.89 / 0.5));
8361
+ }
8291
8362
  :host([selected]) .check-box {
8292
8363
  background: var(--ap-primary, oklch(0.578 0.198 268.129));
8293
8364
  border-color: var(--ap-primary, oklch(0.578 0.198 268.129));
@@ -8313,14 +8384,14 @@ Je([
8313
8384
  h({ type: Boolean })
8314
8385
  ], ke.prototype, "multiSelect", 2);
8315
8386
  ke = Je([
8316
- S("ap-asset-row")
8387
+ C("ap-asset-row")
8317
8388
  ], ke);
8318
- var Ui = Object.defineProperty, Vi = Object.getOwnPropertyDescriptor, Ut = (t, e, a, s) => {
8389
+ var Bi = Object.defineProperty, Vi = Object.getOwnPropertyDescriptor, Bt = (t, e, a, s) => {
8319
8390
  for (var i = s > 1 ? void 0 : s ? Vi(e, a) : e, r = t.length - 1, o; r >= 0; r--)
8320
8391
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
8321
- return s && i && Ui(e, a, i), i;
8392
+ return s && i && Bi(e, a, i), i;
8322
8393
  };
8323
- let Ge = class extends k {
8394
+ let Ge = class extends S {
8324
8395
  constructor() {
8325
8396
  super(...arguments), this.previews = [];
8326
8397
  }
@@ -8367,7 +8438,7 @@ let Ge = class extends k {
8367
8438
  }
8368
8439
  _renderPreviews() {
8369
8440
  if (this.previews.length === 0)
8370
- return n`<div class="empty-preview"><ap-icon name="folder" .size=${48}></ap-icon></div>`;
8441
+ return n`<div class="empty-preview"><ap-icon name="inbox" .size=${64}></ap-icon></div>`;
8371
8442
  const t = this.previews.slice(0, 3);
8372
8443
  return t.length === 1 ? n`<div class="preview-left">${this._renderPreviewImg(t[0])}</div>` : n`
8373
8444
  <div class="preview-grid">
@@ -8391,14 +8462,10 @@ let Ge = class extends k {
8391
8462
  <path d="M 3,0 L 30,0 L 43.5,0 Q 45,0 46.5,3 L 51,12 L 97,12 Q 100,12 100,15 L 100,97 Q 100,100 97,100 L 3,100 Q 0,100 0,97 L 0,3 Q 0,0 3,0 Z"
8392
8463
  fill="#E3E8ED" rx="3" ry="3" />
8393
8464
  </svg>
8394
- <!-- Hover overlay with same folder shape -->
8395
- <svg class="hover-overlay" viewBox="0 0 100 100" preserveAspectRatio="none">
8396
- <path d="M 3,0 L 30,0 L 43.5,0 Q 45,0 46.5,3 L 51,12 L 97,12 Q 100,12 100,15 L 100,97 Q 100,100 97,100 L 3,100 Q 0,100 0,97 L 0,3 Q 0,0 3,0 Z"
8397
- fill="#F3F7FA" />
8398
- </svg>
8399
8465
  <div class="card-content">
8400
8466
  <!-- Preview images -->
8401
8467
  <div class="preview-container">
8468
+ <div class="preview-overlay"></div>
8402
8469
  ${this._renderPreviews()}
8403
8470
  </div>
8404
8471
  <!-- Info section inside the card shape -->
@@ -8423,9 +8490,6 @@ Ge.styles = [ie, $`
8423
8490
  aspect-ratio: 4/3;
8424
8491
  cursor: pointer;
8425
8492
  }
8426
- .card:hover .hover-overlay {
8427
- opacity: 0.9;
8428
- }
8429
8493
  /* Folder shape SVG fills card */
8430
8494
  .folder-svg {
8431
8495
  position: absolute;
@@ -8433,27 +8497,32 @@ Ge.styles = [ie, $`
8433
8497
  width: 100%;
8434
8498
  height: 100%;
8435
8499
  }
8436
- .hover-overlay {
8500
+ .preview-overlay {
8437
8501
  position: absolute;
8438
8502
  inset: 0;
8439
- width: 100%;
8440
- height: 100%;
8441
8503
  z-index: 2;
8504
+ background: rgba(0, 0, 0, 0.4);
8505
+ border-radius: 4px;
8442
8506
  opacity: 0;
8443
- transition: opacity 200ms;
8507
+ transition: opacity 150ms;
8444
8508
  pointer-events: none;
8445
8509
  }
8510
+ .card:hover .preview-overlay {
8511
+ opacity: 1;
8512
+ }
8446
8513
  .card-content {
8447
8514
  position: absolute;
8448
8515
  top: 16%;
8449
8516
  left: 3.5%;
8450
8517
  width: 93%;
8451
- bottom: 3%;
8518
+ bottom: 0;
8452
8519
  z-index: 1;
8453
8520
  display: flex;
8454
8521
  flex-direction: column;
8522
+ padding-bottom: 12px;
8455
8523
  }
8456
8524
  .preview-container {
8525
+ position: relative;
8457
8526
  flex: 1;
8458
8527
  min-height: 0;
8459
8528
  display: flex;
@@ -8519,7 +8588,9 @@ Ge.styles = [ie, $`
8519
8588
  justify-content: center;
8520
8589
  width: 100%;
8521
8590
  height: 100%;
8522
- color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
8591
+ background: var(--ap-muted, oklch(0.974 0.006 239.819));
8592
+ border-radius: 4px;
8593
+ color: var(--ap-input, oklch(0.871 0.016 241.798));
8523
8594
  }
8524
8595
  .info {
8525
8596
  flex-shrink: 0;
@@ -8537,25 +8608,25 @@ Ge.styles = [ie, $`
8537
8608
  display: flex;
8538
8609
  justify-content: space-between;
8539
8610
  font-size: 0.75rem;
8540
- color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
8541
- margin-top: 2px;
8611
+ color: var(--ap-secondary-foreground, oklch(53.03% 0.039 249.89));
8612
+ margin-top: 6px;
8542
8613
  }
8543
8614
  `];
8544
- Ut([
8615
+ Bt([
8545
8616
  h({ type: Object })
8546
8617
  ], Ge.prototype, "folder", 2);
8547
- Ut([
8618
+ Bt([
8548
8619
  h({ type: Array })
8549
8620
  ], Ge.prototype, "previews", 2);
8550
- Ge = Ut([
8551
- S("ap-folder-card")
8621
+ Ge = Bt([
8622
+ C("ap-folder-card")
8552
8623
  ], Ge);
8553
8624
  var qi = Object.defineProperty, Hi = Object.getOwnPropertyDescriptor, Sa = (t, e, a, s) => {
8554
8625
  for (var i = s > 1 ? void 0 : s ? Hi(e, a) : e, r = t.length - 1, o; r >= 0; r--)
8555
8626
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
8556
8627
  return s && i && qi(e, a, i), i;
8557
8628
  };
8558
- let pt = class extends k {
8629
+ let pt = class extends S {
8559
8630
  _handleOpen() {
8560
8631
  this.dispatchEvent(new CustomEvent("folder-open", {
8561
8632
  detail: { folder: this.folder },
@@ -8568,6 +8639,7 @@ let pt = class extends k {
8568
8639
  const t = this.folder;
8569
8640
  return t ? n`
8570
8641
  <div class="row" @click=${this._handleOpen}>
8642
+ <div></div>
8571
8643
  <div class="icon"><ap-icon name="folder" .size=${22}></ap-icon></div>
8572
8644
  <div class="name">${t.name}</div>
8573
8645
  <div class="meta">Folder</div>
@@ -8584,7 +8656,7 @@ pt.styles = $`
8584
8656
  }
8585
8657
  .row {
8586
8658
  display: grid;
8587
- grid-template-columns: 48px 1fr 100px 200px 120px 60px;
8659
+ grid-template-columns: 32px 48px 1fr 100px 200px 120px 60px;
8588
8660
  gap: 12px;
8589
8661
  padding: 8px 12px;
8590
8662
  align-items: center;
@@ -8596,33 +8668,33 @@ pt.styles = $`
8596
8668
  background: var(--ap-muted, oklch(0.974 0.006 239.819));
8597
8669
  }
8598
8670
  .icon {
8599
- color: var(--ap-primary, oklch(0.578 0.198 268.129));
8671
+ color: var(--ap-input, oklch(0.871 0.016 241.798));
8600
8672
  display: flex;
8601
8673
  align-items: center;
8602
8674
  justify-content: center;
8603
8675
  }
8604
8676
  .name {
8605
8677
  font-size: var(--ap-font-size-sm, 0.875rem);
8606
- font-weight: 500;
8678
+ font-weight: 400;
8607
8679
  color: var(--ap-foreground, oklch(0.37 0.022 248.413));
8608
8680
  }
8609
8681
  .meta {
8610
8682
  font-size: 0.8125rem;
8611
- color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
8683
+ color: var(--ap-secondary-foreground, oklch(53.03% 0.039 249.89));
8612
8684
  }
8613
8685
  `;
8614
8686
  Sa([
8615
8687
  h({ type: Object })
8616
8688
  ], pt.prototype, "folder", 2);
8617
8689
  pt = Sa([
8618
- S("ap-folder-row")
8690
+ C("ap-folder-row")
8619
8691
  ], pt);
8620
8692
  var Ki = Object.defineProperty, Gi = Object.getOwnPropertyDescriptor, Ca = (t, e, a, s) => {
8621
8693
  for (var i = s > 1 ? void 0 : s ? Gi(e, a) : e, r = t.length - 1, o; r >= 0; r--)
8622
8694
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
8623
8695
  return s && i && Ki(e, a, i), i;
8624
8696
  };
8625
- let ht = class extends k {
8697
+ let ht = class extends S {
8626
8698
  constructor() {
8627
8699
  super(...arguments), this.variant = "grid";
8628
8700
  }
@@ -8654,7 +8726,7 @@ ht.styles = $`
8654
8726
  .grid-skeleton {
8655
8727
  display: grid;
8656
8728
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
8657
- gap: 20px 24px;
8729
+ gap: 24px;
8658
8730
  }
8659
8731
  .card-skel {
8660
8732
  aspect-ratio: 6/4;
@@ -8673,7 +8745,7 @@ Ca([
8673
8745
  h()
8674
8746
  ], ht.prototype, "variant", 2);
8675
8747
  ht = Ca([
8676
- S("ap-skeleton")
8748
+ C("ap-skeleton")
8677
8749
  ], ht);
8678
8750
  function Yi(t) {
8679
8751
  var i, r;
@@ -8687,7 +8759,7 @@ var Xi = Object.defineProperty, Wi = Object.getOwnPropertyDescriptor, z = (t, e,
8687
8759
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
8688
8760
  return s && i && Xi(e, a, i), i;
8689
8761
  };
8690
- let D = class extends k {
8762
+ let D = class extends S {
8691
8763
  constructor() {
8692
8764
  super(...arguments), this.asset = null, this.assets = [], this.selectedIds = [], this.containerToken = "", this.showMetadata = !0, this.metadataFields = [], this.labels = [], this.regionalFilters = {}, this.multiSelect = !0, this._isFullscreen = !1, this._fsImageLoaded = !1, this._previewLoading = !1, this._openSections = /* @__PURE__ */ new Set(["file-info", "metadata"]), this._hls = null;
8693
8765
  }
@@ -8923,9 +8995,9 @@ let D = class extends k {
8923
8995
  `;
8924
8996
  }
8925
8997
  _getFileInfoRows(t) {
8926
- var a, s, i, r, o;
8998
+ var a, s, i, r, o, l;
8927
8999
  const e = [];
8928
- return e.push({ label: "File name", value: t.name }), t.extension && e.push({ label: "Type", value: t.extension.toUpperCase() }), (a = t.size) != null && a.bytes && e.push({ label: "Size", value: jt(t.size.bytes) }), (s = t.info) != null && s.img_w && e.push({ label: "Dimensions", value: wa(t.info.img_w, t.info.img_h) }), (i = t.info) != null && i.video_w && e.push({ label: "Video resolution", value: `${t.info.video_w} x ${t.info.video_h}` }), (r = t.info) != null && r.duration && e.push({ label: "Duration", value: `${Math.round(t.info.duration)}s` }), (o = t.info) != null && o.color_space && e.push({ label: "Color space", value: t.info.color_space }), t.created_at && e.push({ label: "Created", value: dt(t.created_at) }), t.modified_at && e.push({ label: "Modified", value: dt(t.modified_at) }), e;
9000
+ return e.push({ label: "File name", value: t.name }), t.extension && e.push({ label: "Type", value: t.extension.toUpperCase() }), (a = t.size) != null && a.bytes && e.push({ label: "Size", value: jt(t.size.bytes) }), (s = t.info) != null && s.img_w && e.push({ label: "Dimensions", value: wa(t.info.img_w, t.info.img_h) }), (i = t.info) != null && i.video_w && e.push({ label: "Video resolution", value: `${t.info.video_w} x ${t.info.video_h}` }), (((r = t.info) == null ? void 0 : r.video_duration) ?? ((o = t.info) == null ? void 0 : o.duration)) != null && e.push({ label: "Duration", value: `${Math.round(t.info.video_duration ?? t.info.duration)}s` }), (l = t.info) != null && l.color_space && e.push({ label: "Color space", value: t.info.color_space }), t.created_at && e.push({ label: "Created", value: dt(t.created_at) }), t.modified_at && e.push({ label: "Modified", value: dt(t.modified_at) }), e;
8929
9001
  }
8930
9002
  /**
8931
9003
  * Build a lookup map from metadata field key → field definition.
@@ -9048,7 +9120,7 @@ let D = class extends k {
9048
9120
  _renderTagsRow(t) {
9049
9121
  const e = this._getTagEntries(t.tags);
9050
9122
  return e.length === 0 ? f : n`
9051
- <div class="meta-row" style="flex-direction:column;gap:6px">
9123
+ <div class="meta-row">
9052
9124
  <span class="meta-label">Tags</span>
9053
9125
  <div class="tags-list">
9054
9126
  ${e.map((a) => n`
@@ -9059,21 +9131,22 @@ let D = class extends k {
9059
9131
  `;
9060
9132
  }
9061
9133
  render() {
9062
- var H, T, R, B, ne, fe, Ae, et;
9134
+ var H, T, R, U, ne, fe, Ae, et;
9063
9135
  const t = this.asset;
9064
9136
  if (!t) return f;
9065
- const e = Oe(t.type), a = e === "image", s = e === "video", i = e === "audio", r = ((H = t.extension) == null ? void 0 : H.toLowerCase()) === "pdf", o = yt(t.extension || ""), l = Bt(t.extension || ""), c = ((T = t.extension) == null ? void 0 : T.toLowerCase()) === "svg", p = ct(t), u = a ? c ? ((R = t.url) == null ? void 0 : R.cdn) || "" : p || Ie(((B = t.url) == null ? void 0 : B.cdn) || "", this.containerToken) : "", v = a ? this._getFullscreenImageUrl(t) : "", d = a && !c ? this._getBlurDimensions(t) : null, g = s && ((ne = t.url) == null ? void 0 : ne.cdn) || "", b = s && (((fe = t.info) == null ? void 0 : fe.video_thumbnail) || ((Ae = t.info) == null ? void 0 : Ae.preview)) || "", E = r && !a ? Nt(t) : "", _ = this._getCurrentIndex(), A = _ > 0 && this._findNavTarget(_, -1) >= 0, F = _ >= 0 && this._findNavTarget(_, 1) >= 0, I = this.assets.length > 1;
9137
+ const e = Oe(t.type), a = e === "image", s = e === "video", i = e === "audio", r = ((H = t.extension) == null ? void 0 : H.toLowerCase()) === "pdf", o = yt(t.extension || ""), l = Ut(t.extension || ""), c = ((T = t.extension) == null ? void 0 : T.toLowerCase()) === "svg", p = ct(t), u = a ? c ? ((R = t.url) == null ? void 0 : R.cdn) || "" : p || Ie(((U = t.url) == null ? void 0 : U.cdn) || "", this.containerToken) : "", v = a ? this._getFullscreenImageUrl(t) : "", d = a && !c ? this._getBlurDimensions(t) : null, g = s && ((ne = t.url) == null ? void 0 : ne.cdn) || "", b = s && (((fe = t.info) == null ? void 0 : fe.video_thumbnail) || ((Ae = t.info) == null ? void 0 : Ae.preview)) || "", k = r && !a ? Nt(t) : "", _ = this._getCurrentIndex(), A = _ > 0 && this._findNavTarget(_, -1) >= 0, F = _ >= 0 && this._findNavTarget(_, 1) >= 0, P = this.assets.length > 1;
9066
9138
  return n`
9067
9139
  <div class="panel">
9068
9140
  <div class="panel-header">
9069
9141
  <span class="panel-title" title=${t.name}>${t.name}</span>
9070
9142
  <div class="header-actions">
9071
- <button class="icon-btn" @click=${this._fullscreen} ?disabled=${!a && !s && !i && !r} aria-label="Fullscreen">
9143
+ <button class="icon-btn" @click=${this._fullscreen} ?disabled=${!a && !s && !i && !r} aria-label="Fullscreen" title="Full screen">
9072
9144
  <ap-icon name="fullscreen" .size=${16}></ap-icon>
9073
9145
  </button>
9074
- <button class="icon-btn ${this.asset && this.selectedIds.includes(this.asset.uuid) ? "selected" : ""}" @click=${this._select} aria-label="Select">
9146
+ <button class="icon-btn ${this.asset && this.selectedIds.includes(this.asset.uuid) ? "selected" : ""}" @click=${this._select} aria-label="Select" title="Select the asset">
9075
9147
  <ap-icon name="select" .size=${16}></ap-icon>
9076
9148
  </button>
9149
+ <div class="header-divider"></div>
9077
9150
  <button class="icon-btn" @click=${this._close} aria-label="Close">
9078
9151
  <ap-icon name="close" .size=${16}></ap-icon>
9079
9152
  </button>
@@ -9081,7 +9154,7 @@ let D = class extends k {
9081
9154
  </div>
9082
9155
 
9083
9156
  <div class="preview-area ${a && l ? "chess" : ""}">
9084
- ${I ? n`
9157
+ ${P ? n`
9085
9158
  <button class="nav-btn prev" @click=${this._prev} ?disabled=${!A} aria-label="Previous">
9086
9159
  <ap-icon name="chevron-left" .size=${16}></ap-icon>
9087
9160
  </button>
@@ -9125,7 +9198,7 @@ let D = class extends k {
9125
9198
  />
9126
9199
  </div>
9127
9200
  ` : f}
9128
- ${s ? n`<video src=${g} poster=${b || f} controls @loadeddata=${() => {
9201
+ ${s ? n`<video src=${g} poster=${b || f} controls controlsList="nofullscreen" @loadeddata=${() => {
9129
9202
  this._previewLoading = !1;
9130
9203
  }} @error=${() => {
9131
9204
  this._previewLoading = !1;
@@ -9133,9 +9206,9 @@ let D = class extends k {
9133
9206
  ${i ? n`<audio src=${((et = t.url) == null ? void 0 : et.cdn) || ""} controls></audio>` : f}
9134
9207
  ${r && !a ? n`
9135
9208
  <img
9136
- src=${E || o}
9209
+ src=${k || o}
9137
9210
  alt=${t.name}
9138
- class=${E ? "" : "icon-fallback"}
9211
+ class=${k ? "" : "icon-fallback"}
9139
9212
  @error=${(ve) => {
9140
9213
  const me = ve.target;
9141
9214
  me.src !== o && (me.src = o, me.classList.add("icon-fallback"));
@@ -9178,11 +9251,13 @@ D.styles = $`
9178
9251
  display: flex;
9179
9252
  align-items: center;
9180
9253
  justify-content: space-between;
9181
- padding: 16px;
9182
- border-bottom: 1px solid var(--ap-border, oklch(92.86% 0.009 247.92));
9254
+ gap: 12px;
9255
+ height: 50px;
9256
+ min-height: 50px;
9257
+ padding: 0 16px;
9183
9258
  }
9184
9259
  .panel-title {
9185
- font-size: var(--ap-font-size-base, 1rem);
9260
+ font-size: 14px;
9186
9261
  font-weight: 600;
9187
9262
  color: var(--ap-foreground, oklch(0.37 0.022 248.413));
9188
9263
  white-space: nowrap;
@@ -9192,8 +9267,15 @@ D.styles = $`
9192
9267
  }
9193
9268
  .header-actions {
9194
9269
  display: flex;
9270
+ align-items: center;
9195
9271
  gap: 4px;
9196
9272
  }
9273
+ .header-divider {
9274
+ width: 1px;
9275
+ height: 16px;
9276
+ background: var(--ap-border, oklch(92.86% 0.009 247.92));
9277
+ margin: 0 2px;
9278
+ }
9197
9279
  .icon-btn {
9198
9280
  display: flex;
9199
9281
  align-items: center;
@@ -9388,7 +9470,7 @@ D.styles = $`
9388
9470
  .tags-list {
9389
9471
  display: flex;
9390
9472
  flex-wrap: wrap;
9391
- gap: 4px;
9473
+ gap: 8px;
9392
9474
  }
9393
9475
  .tag-link {
9394
9476
  cursor: pointer;
@@ -9398,9 +9480,6 @@ D.styles = $`
9398
9480
  opacity: 0.75;
9399
9481
  }
9400
9482
  /* Accordion styles */
9401
- .accordion {
9402
- border-top: 1px solid var(--ap-border, oklch(92.86% 0.009 247.92));
9403
- }
9404
9483
  .accordion-trigger {
9405
9484
  display: flex;
9406
9485
  align-items: center;
@@ -9437,10 +9516,6 @@ D.styles = $`
9437
9516
  display: flex;
9438
9517
  gap: 12px;
9439
9518
  padding: 6px 0;
9440
- border-bottom: 1px solid var(--ap-border, oklch(92.86% 0.009 247.92));
9441
- }
9442
- .meta-row:last-child {
9443
- border-bottom: none;
9444
9519
  }
9445
9520
  .meta-label {
9446
9521
  font-size: 0.8125rem;
@@ -9509,207 +9584,24 @@ z([
9509
9584
  y()
9510
9585
  ], D.prototype, "_openSections", 2);
9511
9586
  D = z([
9512
- S("ap-preview-panel")
9587
+ C("ap-preview-panel")
9513
9588
  ], D);
9514
- var Qi = Object.defineProperty, Zi = Object.getOwnPropertyDescriptor, Ne = (t, e, a, s) => {
9589
+ var Qi = Object.defineProperty, Zi = Object.getOwnPropertyDescriptor, Vt = (t, e, a, s) => {
9515
9590
  for (var i = s > 1 ? void 0 : s ? Zi(e, a) : e, r = t.length - 1, o; r >= 0; r--)
9516
9591
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
9517
9592
  return s && i && Qi(e, a, i), i;
9518
9593
  };
9519
- let he = class extends k {
9520
- constructor() {
9521
- super(...arguments), this.selectedAssets = [], this.totalCount = 0, this.isSelectingAll = !1, this.multiSelect = !0;
9522
- }
9523
- _confirm() {
9524
- this.dispatchEvent(new CustomEvent("selection-confirm", {
9525
- detail: { assets: this.selectedAssets },
9526
- bubbles: !0,
9527
- composed: !0
9528
- }));
9529
- }
9530
- _clear() {
9531
- this.dispatchEvent(new CustomEvent("selection-clear", { bubbles: !0, composed: !0 }));
9532
- }
9533
- _selectAll() {
9534
- this.dispatchEvent(new CustomEvent("select-all", { bubbles: !0, composed: !0 }));
9535
- }
9536
- render() {
9537
- return this.selectedAssets.length === 0 ? f : n`
9538
- <div class="bar">
9539
- <span class="count">${this.selectedAssets.length} selected</span>
9540
- <span class="select-label">Select:</span>
9541
- ${this.multiSelect && this.selectedAssets.length < this.totalCount && (!this.maxSelections || this.selectedAssets.length < this.maxSelections) ? n`<button
9542
- class="bar-link"
9543
- ?disabled=${this.isSelectingAll}
9544
- @click=${this._selectAll}
9545
- >${this.isSelectingAll ? "Selecting..." : this.maxSelections && this.maxSelections < this.totalCount ? `First ${this.maxSelections}` : "All assets"}</button>` : f}
9546
- <button class="bar-link" @click=${this._clear}>None</button>
9547
- ${this.maxSelections && this.selectedAssets.length >= this.maxSelections ? n`<span class="limit-notice">Max ${this.maxSelections} allowed</span>` : f}
9548
- <div class="spacer"></div>
9549
- <div class="actions">
9550
- <button class="btn btn-primary" @click=${this._confirm}>Confirm</button>
9551
- </div>
9552
- </div>
9553
- `;
9554
- }
9555
- };
9556
- he.styles = $`
9557
- :host {
9558
- display: block;
9559
- }
9560
- .bar {
9561
- display: flex;
9562
- align-items: center;
9563
- padding: 12px 20px;
9564
- background: var(--ap-primary, oklch(0.578 0.198 268.129));
9565
- animation: ap-bar-in 250ms ease-out;
9566
- }
9567
- @keyframes ap-bar-in {
9568
- from { transform: translateY(100%); }
9569
- to { transform: translateY(0); }
9570
- }
9571
- .count {
9572
- font-size: var(--ap-font-size-sm, 0.875rem);
9573
- font-weight: 400;
9574
- color: var(--ap-primary-foreground, oklch(1 0 0));
9575
- white-space: nowrap;
9576
- }
9577
- .select-label {
9578
- font-size: var(--ap-font-size-sm, 0.875rem);
9579
- color: oklch(1 0 0 / 0.7);
9580
- margin-left: 24px;
9581
- white-space: nowrap;
9582
- }
9583
- .bar-link {
9584
- font-size: var(--ap-font-size-sm, 0.875rem);
9585
- color: var(--ap-primary-foreground, oklch(1 0 0));
9586
- background: none;
9587
- border: none;
9588
- cursor: pointer;
9589
- padding: 0;
9590
- margin-left: 8px;
9591
- font-weight: 600;
9592
- font-family: var(--ap-font-family, system-ui, sans-serif);
9593
- white-space: nowrap;
9594
- }
9595
- .bar-link:hover {
9596
- text-decoration: underline;
9597
- }
9598
- .bar-link:disabled {
9599
- opacity: 0.5;
9600
- cursor: default;
9601
- text-decoration: none;
9602
- }
9603
- .limit-notice {
9604
- font-size: var(--ap-font-size-xs, 0.75rem);
9605
- color: oklch(1 0 0 / 0.7);
9606
- margin-left: 8px;
9607
- white-space: nowrap;
9608
- }
9609
- .spacer {
9610
- flex: 1;
9611
- }
9612
- .actions {
9613
- display: flex;
9614
- gap: 8px;
9615
- }
9616
- .btn {
9617
- padding: 8px 20px;
9618
- border: none;
9619
- border-radius: var(--ap-radius-sm, 6px);
9620
- font-size: var(--ap-font-size-sm, 0.875rem);
9621
- font-weight: 500;
9622
- cursor: pointer;
9623
- transition: opacity 100ms;
9624
- font-family: var(--ap-font-family, system-ui, sans-serif);
9625
- }
9626
- .btn:hover {
9627
- opacity: 0.9;
9628
- }
9629
- .btn-primary {
9630
- background: transparent;
9631
- color: var(--ap-primary-foreground, oklch(1 0 0));
9632
- border: 1px solid var(--ap-primary-foreground, oklch(1 0 0));
9633
- }
9634
- @media (prefers-reduced-motion: reduce) {
9635
- .bar { animation: none; }
9636
- }
9637
- `;
9638
- Ne([
9639
- h({ type: Array })
9640
- ], he.prototype, "selectedAssets", 2);
9641
- Ne([
9642
- h({ type: Number })
9643
- ], he.prototype, "totalCount", 2);
9644
- Ne([
9645
- h({ type: Boolean })
9646
- ], he.prototype, "isSelectingAll", 2);
9647
- Ne([
9648
- h({ type: Boolean })
9649
- ], he.prototype, "multiSelect", 2);
9650
- Ne([
9651
- h({ type: Number })
9652
- ], he.prototype, "maxSelections", 2);
9653
- he = Ne([
9654
- S("ap-selection-bar")
9655
- ], he);
9656
- var Ji = Object.defineProperty, er = Object.getOwnPropertyDescriptor, Vt = (t, e, a, s) => {
9657
- for (var i = s > 1 ? void 0 : s ? er(e, a) : e, r = t.length - 1, o; r >= 0; r--)
9658
- (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
9659
- return s && i && Ji(e, a, i), i;
9660
- };
9661
- let Ye = class extends k {
9662
- constructor() {
9663
- super(...arguments), this.active = !1, this.rect = { x: 0, y: 0, width: 0, height: 0 };
9664
- }
9665
- render() {
9666
- return !this.active || this.rect.width < 5 || this.rect.height < 5 ? f : n`
9667
- <div
9668
- class="marquee"
9669
- style="left:${this.rect.x}px;top:${this.rect.y}px;width:${this.rect.width}px;height:${this.rect.height}px"
9670
- ></div>
9671
- `;
9672
- }
9673
- };
9674
- Ye.styles = $`
9675
- :host {
9676
- display: block;
9677
- position: absolute;
9678
- top: 0;
9679
- left: 0;
9680
- width: 100%;
9681
- min-height: 100%;
9682
- pointer-events: none;
9683
- z-index: 10;
9684
- }
9685
- .marquee {
9686
- position: absolute;
9687
- border: 2px solid var(--ap-primary, oklch(0.578 0.198 268.129));
9688
- background: var(--ap-primary-10, oklch(0.578 0.198 268.129 / 0.1));
9689
- border-radius: 2px;
9690
- }
9691
- `;
9692
- Vt([
9693
- h({ type: Boolean })
9694
- ], Ye.prototype, "active", 2);
9695
- Vt([
9696
- h({ type: Object })
9697
- ], Ye.prototype, "rect", 2);
9698
- Ye = Vt([
9699
- S("ap-marquee-overlay")
9700
- ], Ye);
9701
- var tr = Object.defineProperty, ar = Object.getOwnPropertyDescriptor, qt = (t, e, a, s) => {
9702
- for (var i = s > 1 ? void 0 : s ? ar(e, a) : e, r = t.length - 1, o; r >= 0; r--)
9703
- (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
9704
- return s && i && tr(e, a, i), i;
9705
- };
9706
- const sr = {
9594
+ const Ji = {
9707
9595
  // ── Navigation & Actions ────────────────────────────────────────────
9708
9596
  search: [
9709
9597
  { tag: "circle", attrs: { cx: "11", cy: "11", r: "8" } },
9710
9598
  { tag: "path", attrs: { d: "m21 21-4.3-4.3" } }
9711
9599
  ],
9712
9600
  check: "M20 6 9 17l-5-5",
9601
+ "check-check": [
9602
+ { tag: "path", attrs: { d: "M18 6 7 17l-5-5" } },
9603
+ { tag: "path", attrs: { d: "m22 10-7.5 7.5L13 16" } }
9604
+ ],
9713
9605
  close: [
9714
9606
  { tag: "path", attrs: { d: "M18 6 6 18" } },
9715
9607
  { tag: "path", attrs: { d: "m6 6 12 12" } }
@@ -9860,6 +9752,10 @@ const sr = {
9860
9752
  // ── Folders ─────────────────────────────────────────────────────────
9861
9753
  folder: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",
9862
9754
  "folder-open": "m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",
9755
+ inbox: [
9756
+ { tag: "path", attrs: { d: "M22 12L16 12L14 15L10 15L8 12L2 12" } },
9757
+ { tag: "path", attrs: { d: "M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z" } }
9758
+ ],
9863
9759
  // ── Labels & Tags ──────────────────────────────────────────────────
9864
9760
  tags: [
9865
9761
  { tag: "path", attrs: { d: "M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z" } },
@@ -10026,6 +9922,11 @@ const sr = {
10026
9922
  { tag: "path", attrs: { d: "M4 9h2" } },
10027
9923
  { tag: "path", attrs: { d: "M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02" } }
10028
9924
  ],
9925
+ // ── Plus ───────────────────────────────────────────────────────────
9926
+ plus: [
9927
+ { tag: "path", attrs: { d: "M5 12h14" } },
9928
+ { tag: "path", attrs: { d: "M12 5v14" } }
9929
+ ],
10029
9930
  // ── Misc ────────────────────────────────────────────────────────────
10030
9931
  component: [
10031
9932
  { tag: "path", attrs: { d: "M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z" } },
@@ -10034,12 +9935,12 @@ const sr = {
10034
9935
  { tag: "path", attrs: { d: "M8.916 4.674a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z" } }
10035
9936
  ]
10036
9937
  };
10037
- let Xe = class extends k {
9938
+ let Ye = class extends S {
10038
9939
  constructor() {
10039
9940
  super(...arguments), this.name = "", this.size = 20;
10040
9941
  }
10041
9942
  render() {
10042
- const t = sr[this.name];
9943
+ const t = Ji[this.name];
10043
9944
  if (!t) return f;
10044
9945
  const e = typeof t == "string" ? ce`<path d=${t}></path>` : t.map((a) => {
10045
9946
  const { tag: s, attrs: i } = a;
@@ -10060,7 +9961,7 @@ let Xe = class extends k {
10060
9961
  `;
10061
9962
  }
10062
9963
  };
10063
- Xe.styles = [
9964
+ Ye.styles = [
10064
9965
  $`
10065
9966
  :host {
10066
9967
  display: inline-flex;
@@ -10073,21 +9974,213 @@ Xe.styles = [
10073
9974
  }
10074
9975
  `
10075
9976
  ];
10076
- qt([
9977
+ Vt([
10077
9978
  h()
10078
- ], Xe.prototype, "name", 2);
10079
- qt([
9979
+ ], Ye.prototype, "name", 2);
9980
+ Vt([
10080
9981
  h({ type: Number })
10081
- ], Xe.prototype, "size", 2);
9982
+ ], Ye.prototype, "size", 2);
9983
+ Ye = Vt([
9984
+ C("ap-icon")
9985
+ ], Ye);
9986
+ var er = Object.defineProperty, tr = Object.getOwnPropertyDescriptor, Ne = (t, e, a, s) => {
9987
+ for (var i = s > 1 ? void 0 : s ? tr(e, a) : e, r = t.length - 1, o; r >= 0; r--)
9988
+ (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
9989
+ return s && i && er(e, a, i), i;
9990
+ };
9991
+ let he = class extends S {
9992
+ constructor() {
9993
+ super(...arguments), this.selectedAssets = [], this.totalCount = 0, this.isSelectingAll = !1, this.multiSelect = !0;
9994
+ }
9995
+ _confirm() {
9996
+ this.dispatchEvent(new CustomEvent("selection-confirm", {
9997
+ detail: { assets: this.selectedAssets },
9998
+ bubbles: !0,
9999
+ composed: !0
10000
+ }));
10001
+ }
10002
+ _clear() {
10003
+ this.dispatchEvent(new CustomEvent("selection-clear", { bubbles: !0, composed: !0 }));
10004
+ }
10005
+ _selectAll() {
10006
+ this.dispatchEvent(new CustomEvent("select-all", { bubbles: !0, composed: !0 }));
10007
+ }
10008
+ render() {
10009
+ return this.selectedAssets.length === 0 ? f : n`
10010
+ <div class="bar">
10011
+ <span class="count">${this.selectedAssets.length} selected</span>
10012
+ <span class="divider"></span>
10013
+ <span class="select-label">Select:</span>
10014
+ ${this.multiSelect && this.selectedAssets.length < this.totalCount && (!this.maxSelections || this.selectedAssets.length < this.maxSelections) ? n`<button
10015
+ class="bar-btn"
10016
+ ?disabled=${this.isSelectingAll}
10017
+ @click=${this._selectAll}
10018
+ ><ap-icon name="check-check" .size=${14}></ap-icon>${this.isSelectingAll ? "Selecting..." : this.maxSelections && this.maxSelections < this.totalCount ? `First ${this.maxSelections}` : "Select all"}</button>` : f}
10019
+ <button class="bar-btn" @click=${this._clear}><ap-icon name="close" .size=${14}></ap-icon>Deselect all</button>
10020
+ ${this.maxSelections && this.selectedAssets.length >= this.maxSelections ? n`<span class="limit-notice">Max ${this.maxSelections} allowed</span>` : f}
10021
+ <div class="spacer"></div>
10022
+ <button class="btn-confirm" @click=${this._confirm}>Confirm</button>
10023
+ </div>
10024
+ `;
10025
+ }
10026
+ };
10027
+ he.styles = $`
10028
+ :host {
10029
+ display: block;
10030
+ padding: 0 8px 8px;
10031
+ }
10032
+ .bar {
10033
+ display: flex;
10034
+ align-items: center;
10035
+ padding: 12px 20px;
10036
+ background: var(--ap-primary, oklch(0.578 0.198 268.129));
10037
+ border-radius: var(--ap-radius-lg, 12px);
10038
+ animation: ap-bar-in 250ms ease-out;
10039
+ }
10040
+ @keyframes ap-bar-in {
10041
+ from { transform: translateY(100%); }
10042
+ to { transform: translateY(0); }
10043
+ }
10044
+ .count {
10045
+ font-size: var(--ap-font-size-sm, 0.875rem);
10046
+ font-weight: 400;
10047
+ color: var(--ap-primary-foreground, oklch(1 0 0));
10048
+ white-space: nowrap;
10049
+ }
10050
+ .divider {
10051
+ width: 1px;
10052
+ height: 20px;
10053
+ background: oklch(1 0 0 / 0.3);
10054
+ margin: 0 16px;
10055
+ flex-shrink: 0;
10056
+ }
10057
+ .select-label {
10058
+ font-size: var(--ap-font-size-sm, 0.875rem);
10059
+ color: oklch(1 0 0 / 0.7);
10060
+ white-space: nowrap;
10061
+ }
10062
+ .bar-btn {
10063
+ display: inline-flex;
10064
+ align-items: center;
10065
+ gap: 6px;
10066
+ height: 32px;
10067
+ font-size: var(--ap-font-size-sm, 0.875rem);
10068
+ color: var(--ap-primary-foreground, oklch(1 0 0));
10069
+ background: none;
10070
+ border: none;
10071
+ cursor: pointer;
10072
+ padding: 0 14px;
10073
+ margin-left: 8px;
10074
+ font-weight: 500;
10075
+ font-family: var(--ap-font-family, system-ui, sans-serif);
10076
+ white-space: nowrap;
10077
+ border-radius: var(--ap-radius-sm, 6px);
10078
+ transition: background 100ms;
10079
+ }
10080
+ .bar-btn:hover {
10081
+ background: oklch(1 0 0 / 0.1);
10082
+ }
10083
+ .bar-btn:disabled {
10084
+ opacity: 0.5;
10085
+ cursor: default;
10086
+ }
10087
+ .limit-notice {
10088
+ font-size: var(--ap-font-size-xs, 0.75rem);
10089
+ color: oklch(1 0 0 / 0.7);
10090
+ margin-left: 8px;
10091
+ white-space: nowrap;
10092
+ }
10093
+ .spacer {
10094
+ flex: 1;
10095
+ }
10096
+ .btn-confirm {
10097
+ padding: 8px 24px;
10098
+ border: 1.5px solid var(--ap-primary-foreground, oklch(1 0 0));
10099
+ border-radius: var(--ap-radius-sm, 6px);
10100
+ font-size: var(--ap-font-size-sm, 0.875rem);
10101
+ font-weight: 500;
10102
+ cursor: pointer;
10103
+ transition: background 100ms;
10104
+ font-family: var(--ap-font-family, system-ui, sans-serif);
10105
+ background: transparent;
10106
+ color: var(--ap-primary-foreground, oklch(1 0 0));
10107
+ }
10108
+ .btn-confirm:hover {
10109
+ background: oklch(1 0 0 / 0.1);
10110
+ }
10111
+ @media (prefers-reduced-motion: reduce) {
10112
+ .bar { animation: none; }
10113
+ }
10114
+ `;
10115
+ Ne([
10116
+ h({ type: Array })
10117
+ ], he.prototype, "selectedAssets", 2);
10118
+ Ne([
10119
+ h({ type: Number })
10120
+ ], he.prototype, "totalCount", 2);
10121
+ Ne([
10122
+ h({ type: Boolean })
10123
+ ], he.prototype, "isSelectingAll", 2);
10124
+ Ne([
10125
+ h({ type: Boolean })
10126
+ ], he.prototype, "multiSelect", 2);
10127
+ Ne([
10128
+ h({ type: Number })
10129
+ ], he.prototype, "maxSelections", 2);
10130
+ he = Ne([
10131
+ C("ap-selection-bar")
10132
+ ], he);
10133
+ var ar = Object.defineProperty, sr = Object.getOwnPropertyDescriptor, qt = (t, e, a, s) => {
10134
+ for (var i = s > 1 ? void 0 : s ? sr(e, a) : e, r = t.length - 1, o; r >= 0; r--)
10135
+ (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
10136
+ return s && i && ar(e, a, i), i;
10137
+ };
10138
+ let Xe = class extends S {
10139
+ constructor() {
10140
+ super(...arguments), this.active = !1, this.rect = { x: 0, y: 0, width: 0, height: 0 };
10141
+ }
10142
+ render() {
10143
+ return !this.active || this.rect.width < 5 || this.rect.height < 5 ? f : n`
10144
+ <div
10145
+ class="marquee"
10146
+ style="left:${this.rect.x}px;top:${this.rect.y}px;width:${this.rect.width}px;height:${this.rect.height}px"
10147
+ ></div>
10148
+ `;
10149
+ }
10150
+ };
10151
+ Xe.styles = $`
10152
+ :host {
10153
+ display: block;
10154
+ position: absolute;
10155
+ top: 0;
10156
+ left: 0;
10157
+ width: 100%;
10158
+ min-height: 100%;
10159
+ pointer-events: none;
10160
+ z-index: 10;
10161
+ }
10162
+ .marquee {
10163
+ position: absolute;
10164
+ border: 2px solid var(--ap-primary, oklch(0.578 0.198 268.129));
10165
+ background: var(--ap-primary-10, oklch(0.578 0.198 268.129 / 0.1));
10166
+ border-radius: 2px;
10167
+ }
10168
+ `;
10169
+ qt([
10170
+ h({ type: Boolean })
10171
+ ], Xe.prototype, "active", 2);
10172
+ qt([
10173
+ h({ type: Object })
10174
+ ], Xe.prototype, "rect", 2);
10082
10175
  Xe = qt([
10083
- S("ap-icon")
10176
+ C("ap-marquee-overlay")
10084
10177
  ], Xe);
10085
- var ir = Object.defineProperty, rr = Object.getOwnPropertyDescriptor, Fa = (t, e, a, s) => {
10178
+ var ir = Object.defineProperty, rr = Object.getOwnPropertyDescriptor, Ea = (t, e, a, s) => {
10086
10179
  for (var i = s > 1 ? void 0 : s ? rr(e, a) : e, r = t.length - 1, o; r >= 0; r--)
10087
10180
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
10088
10181
  return s && i && ir(e, a, i), i;
10089
10182
  };
10090
- let ut = class extends k {
10183
+ let ut = class extends S {
10091
10184
  constructor() {
10092
10185
  super(...arguments), this.size = 24;
10093
10186
  }
@@ -10111,18 +10204,18 @@ ut.styles = [
10111
10204
  }
10112
10205
  `
10113
10206
  ];
10114
- Fa([
10207
+ Ea([
10115
10208
  h({ type: Number })
10116
10209
  ], ut.prototype, "size", 2);
10117
- ut = Fa([
10118
- S("ap-spinner")
10210
+ ut = Ea([
10211
+ C("ap-spinner")
10119
10212
  ], ut);
10120
10213
  var or = Object.defineProperty, nr = Object.getOwnPropertyDescriptor, xt = (t, e, a, s) => {
10121
10214
  for (var i = s > 1 ? void 0 : s ? nr(e, a) : e, r = t.length - 1, o; r >= 0; r--)
10122
10215
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
10123
10216
  return s && i && or(e, a, i), i;
10124
10217
  };
10125
- let De = class extends k {
10218
+ let De = class extends S {
10126
10219
  constructor() {
10127
10220
  super(...arguments), this.checked = !1, this.indeterminate = !1, this.disabled = !1, this._hasLabel = !1, this._handleHostClick = () => {
10128
10221
  this.dispatchEvent(new CustomEvent("ap-toggle", {
@@ -10174,6 +10267,9 @@ De.styles = [
10174
10267
  transition: all 150ms;
10175
10268
  background: var(--ap-background, oklch(1 0 0));
10176
10269
  }
10270
+ :host(:hover) .box {
10271
+ border-color: var(--ap-secondary-foreground-50, oklch(53.03% 0.039 249.89 / 0.5));
10272
+ }
10177
10273
  :host([checked]) .box {
10178
10274
  background: var(--ap-primary, oklch(0.578 0.198 268.129));
10179
10275
  border-color: var(--ap-primary, oklch(0.578 0.198 268.129));
@@ -10204,9 +10300,14 @@ De.styles = [
10204
10300
  pointer-events: none;
10205
10301
  }
10206
10302
  .label {
10207
- margin-left: 8px;
10303
+ margin-left: var(--ap-checkbox-gap, 8px);
10208
10304
  font-size: var(--ap-font-size-sm, 0.875rem);
10209
10305
  color: var(--ap-foreground, oklch(0.37 0.022 248.413));
10306
+ display: inline-flex;
10307
+ align-items: center;
10308
+ }
10309
+ .label[hidden] {
10310
+ display: none;
10210
10311
  }
10211
10312
  `
10212
10313
  ];
@@ -10220,14 +10321,14 @@ xt([
10220
10321
  h({ type: Boolean, reflect: !0 })
10221
10322
  ], De.prototype, "disabled", 2);
10222
10323
  De = xt([
10223
- S("ap-checkbox")
10324
+ C("ap-checkbox")
10224
10325
  ], De);
10225
- var lr = Object.defineProperty, cr = Object.getOwnPropertyDescriptor, Ea = (t, e, a, s) => {
10326
+ var lr = Object.defineProperty, cr = Object.getOwnPropertyDescriptor, Fa = (t, e, a, s) => {
10226
10327
  for (var i = s > 1 ? void 0 : s ? cr(e, a) : e, r = t.length - 1, o; r >= 0; r--)
10227
10328
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
10228
10329
  return s && i && lr(e, a, i), i;
10229
10330
  };
10230
- let gt = class extends k {
10331
+ let gt = class extends S {
10231
10332
  constructor() {
10232
10333
  super(...arguments), this.open = !1, this._handleOutsideClick = (t) => {
10233
10334
  this.open && !t.composedPath().includes(this) && (this.open = !1);
@@ -10272,18 +10373,18 @@ gt.styles = [
10272
10373
  }
10273
10374
  `
10274
10375
  ];
10275
- Ea([
10376
+ Fa([
10276
10377
  y()
10277
10378
  ], gt.prototype, "open", 2);
10278
- gt = Ea([
10279
- S("ap-popover")
10379
+ gt = Fa([
10380
+ C("ap-popover")
10280
10381
  ], gt);
10281
10382
  var dr = Object.defineProperty, pr = Object.getOwnPropertyDescriptor, q = (t, e, a, s) => {
10282
10383
  for (var i = s > 1 ? void 0 : s ? pr(e, a) : e, r = t.length - 1, o; r >= 0; r--)
10283
10384
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
10284
10385
  return s && i && dr(e, a, i), i;
10285
10386
  };
10286
- let j = class extends k {
10387
+ let j = class extends S {
10287
10388
  constructor() {
10288
10389
  super(...arguments), this.value = "", this.label = "", this.variant = "default", this.options = [], this._open = !1, this._focusedIndex = -1, this._menuPosition = "below", this._menuAlign = "align-left", this._menuTop = 0, this._menuBottom = 0, this._menuLeft = 0, this._menuRight = 0, this._handleOutsideClick = (t) => {
10289
10390
  t.composedPath().includes(this) || (this._open = !1, document.removeEventListener("click", this._handleOutsideClick));
@@ -10401,8 +10502,10 @@ j.styles = [
10401
10502
  display: flex;
10402
10503
  align-items: center;
10403
10504
  gap: 8px;
10505
+ width: 100%;
10404
10506
  height: 36px;
10405
10507
  padding: 0 12px;
10508
+ box-sizing: border-box;
10406
10509
  border: 1px solid var(--ap-input, oklch(0.871 0.016 241.798));
10407
10510
  border-radius: var(--ap-radius-sm, 6px);
10408
10511
  background: var(--ap-background, oklch(1 0 0));
@@ -10509,14 +10612,14 @@ q([
10509
10612
  y()
10510
10613
  ], j.prototype, "_menuRight", 2);
10511
10614
  j = q([
10512
- S("ap-dropdown")
10615
+ C("ap-dropdown")
10513
10616
  ], j);
10514
10617
  var hr = Object.defineProperty, ur = Object.getOwnPropertyDescriptor, Aa = (t, e, a, s) => {
10515
10618
  for (var i = s > 1 ? void 0 : s ? ur(e, a) : e, r = t.length - 1, o; r >= 0; r--)
10516
10619
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
10517
10620
  return s && i && hr(e, a, i), i;
10518
10621
  };
10519
- let ft = class extends k {
10622
+ let ft = class extends S {
10520
10623
  constructor() {
10521
10624
  super(...arguments), this.variant = "default";
10522
10625
  }
@@ -10532,12 +10635,13 @@ ft.styles = [
10532
10635
  .badge {
10533
10636
  display: inline-flex;
10534
10637
  align-items: center;
10535
- padding: 2px 8px;
10638
+ height: 24px;
10639
+ padding: 0 8px;
10536
10640
  font-size: 0.75rem;
10537
10641
  font-weight: 500;
10538
10642
  border-radius: 9999px;
10539
10643
  background: var(--ap-muted, oklch(0.974 0.006 239.819));
10540
- color: var(--ap-muted-foreground, oklch(0.685 0.033 249.82));
10644
+ color: var(--ap-secondary-foreground, oklch(53.03% 0.039 249.89));
10541
10645
  }
10542
10646
  :host([variant="primary"]) .badge {
10543
10647
  background: var(--ap-primary-10, oklch(0.578 0.198 268.129 / 0.1));
@@ -10549,14 +10653,14 @@ Aa([
10549
10653
  h({ reflect: !0 })
10550
10654
  ], ft.prototype, "variant", 2);
10551
10655
  ft = Aa([
10552
- S("ap-badge")
10656
+ C("ap-badge")
10553
10657
  ], ft);
10554
10658
  var gr = Object.defineProperty, fr = Object.getOwnPropertyDescriptor, Ta = (t, e, a, s) => {
10555
10659
  for (var i = s > 1 ? void 0 : s ? fr(e, a) : e, r = t.length - 1, o; r >= 0; r--)
10556
10660
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
10557
10661
  return s && i && gr(e, a, i), i;
10558
10662
  };
10559
- let vt = class extends k {
10663
+ let vt = class extends S {
10560
10664
  constructor() {
10561
10665
  super(...arguments), this.text = "";
10562
10666
  }
@@ -10597,14 +10701,14 @@ Ta([
10597
10701
  h()
10598
10702
  ], vt.prototype, "text", 2);
10599
10703
  vt = Ta([
10600
- S("ap-tooltip")
10704
+ C("ap-tooltip")
10601
10705
  ], vt);
10602
10706
  var vr = Object.defineProperty, mr = Object.getOwnPropertyDescriptor, je = (t, e, a, s) => {
10603
10707
  for (var i = s > 1 ? void 0 : s ? mr(e, a) : e, r = t.length - 1, o; r >= 0; r--)
10604
10708
  (o = t[r]) && (i = (s ? o(e, a, i) : o(i)) || i);
10605
10709
  return s && i && vr(e, a, i), i;
10606
10710
  };
10607
- let ue = class extends k {
10711
+ let ue = class extends S {
10608
10712
  constructor() {
10609
10713
  super(...arguments), this.value = "", this.options = [], this.disabled = !1, this.direction = "vertical", this._onKeydown = (t) => {
10610
10714
  const e = this.options.filter(
@@ -10715,6 +10819,9 @@ ue.styles = [
10715
10819
  background: transparent;
10716
10820
  transition: background 150ms;
10717
10821
  }
10822
+ .option:hover .radio {
10823
+ border-color: var(--ap-secondary-foreground-50, oklch(53.03% 0.039 249.89 / 0.5));
10824
+ }
10718
10825
  .option[aria-checked="true"] .radio {
10719
10826
  border-color: var(--ap-primary, oklch(0.578 0.198 268.129));
10720
10827
  }
@@ -10745,14 +10852,14 @@ je([
10745
10852
  h({ reflect: !0 })
10746
10853
  ], ue.prototype, "columns", 2);
10747
10854
  ue = je([
10748
- S("ap-radio-group")
10855
+ C("ap-radio-group")
10749
10856
  ], ue);
10750
10857
  var br = Object.defineProperty, Ht = (t, e, a, s) => {
10751
10858
  for (var i = void 0, r = t.length - 1, o; r >= 0; r--)
10752
10859
  (o = t[r]) && (i = o(e, a, i) || i);
10753
10860
  return i && br(e, a, i), i;
10754
10861
  };
10755
- const Kt = class Kt extends k {
10862
+ const Kt = class Kt extends S {
10756
10863
  constructor() {
10757
10864
  super(), this._initFailed = !1, this._loadId = 0, this._loadMoreId = 0, this._loadDataTimer = null, this._pendingFilter = null, this._pendingMetadataField = null, this._uploaderEl = null, this._uploaderImportPromise = null, this._dragCounter = 0, this._isDragOver = !1, this._isUploaderOpen = !1, this._onDragEnter = (e) => {
10758
10865
  var a;
@@ -10802,7 +10909,7 @@ const Kt = class Kt extends k {
10802
10909
  this.store.setState({
10803
10910
  config: e,
10804
10911
  projectToken: e.auth.projectToken,
10805
- viewMode: e.rememberLastView && Fs() || e.defaultViewMode || "grid",
10912
+ viewMode: e.rememberLastView && Es() || e.defaultViewMode || "grid",
10806
10913
  sortBy: s,
10807
10914
  sortDirection: i,
10808
10915
  currentFolder: null,
@@ -10815,16 +10922,16 @@ const Kt = class Kt extends k {
10815
10922
  }
10816
10923
  const [r, o, l] = await Promise.allSettled([
10817
10924
  rs(this.apiClient),
10818
- Ba(this.apiClient),
10819
- Ua(this.apiClient)
10925
+ Ua(this.apiClient),
10926
+ Ba(this.apiClient)
10820
10927
  ]);
10821
10928
  if (r.status === "fulfilled") {
10822
- const { fields: d, regionalVariantGroups: g, regionalFilters: b, brandColor: E } = r.value;
10929
+ const { fields: d, regionalVariantGroups: g, regionalFilters: b, brandColor: k } = r.value;
10823
10930
  this.store.setState({
10824
10931
  metadataFields: d,
10825
10932
  regionalVariantGroups: g,
10826
10933
  regionalFilters: b,
10827
- ...E ? { brandColor: E } : {}
10934
+ ...k ? { brandColor: k } : {}
10828
10935
  });
10829
10936
  }
10830
10937
  o.status === "fulfilled" && this.store.setState({ labels: o.value.labels || [] }), l.status === "fulfilled" && this.store.setState({ tags: l.value });
@@ -10932,8 +11039,8 @@ const Kt = class Kt extends k {
10932
11039
  return !!((s = (a = e.dataTransfer) == null ? void 0 : a.types) != null && s.includes("Files"));
10933
11040
  }
10934
11041
  async open() {
10935
- var u, v, d, g, b, E, _;
10936
- const e = this.store.getState(), a = Ue((u = this.config) == null ? void 0 : u.forcedFilters), s = new Set(Object.keys(a)), i = {}, r = Ue((v = this.config) == null ? void 0 : v.defaultFilters);
11042
+ var u, v, d, g, b, k, _;
11043
+ const e = this.store.getState(), a = Be((u = this.config) == null ? void 0 : u.forcedFilters), s = new Set(Object.keys(a)), i = {}, r = Be((v = this.config) == null ? void 0 : v.defaultFilters);
10937
11044
  for (const [A, F] of Object.entries(r))
10938
11045
  s.has(A) || (i[A] = F);
10939
11046
  const o = Object.keys(i), l = ((d = this.config) == null ? void 0 : d.tabs) ?? ["assets", "folders"], c = (g = this.config) != null && g.rememberLastTab ? As() : null, p = (c && l.includes(c) ? c : null) ?? ((b = this.config) != null && b.defaultTab && l.includes(this.config.defaultTab) ? this.config.defaultTab : null) ?? l[0] ?? "assets";
@@ -10955,7 +11062,7 @@ const Kt = class Kt extends k {
10955
11062
  assets: [],
10956
11063
  folders: [],
10957
11064
  currentFolder: null,
10958
- currentFolderPath: ((E = this.config) == null ? void 0 : E.rememberLastFolder) && Ss() || ((_ = this.config) == null ? void 0 : _.rootFolderPath) || "/",
11065
+ currentFolderPath: ((k = this.config) == null ? void 0 : k.rememberLastFolder) && Ss() || ((_ = this.config) == null ? void 0 : _.rootFolderPath) || "/",
10959
11066
  breadcrumb: [],
10960
11067
  selectedAssets: /* @__PURE__ */ new Map(),
10961
11068
  folderPreviews: {},
@@ -10977,15 +11084,15 @@ const Kt = class Kt extends k {
10977
11084
  (e = this.renderRoot.querySelector(".main-content")) == null || e.scrollTo({ top: 0 });
10978
11085
  }
10979
11086
  async _loadData() {
10980
- var s, i, r, o, l, c, p, u, v, d, g, b, E, _;
11087
+ var s, i, r, o, l, c, p, u, v, d, g, b, k, _;
10981
11088
  if (!this.apiClient) return;
10982
11089
  const e = ++this._loadId, a = this.store.getState();
10983
11090
  this._scrollToTop(), this.store.setState({ isLoading: !0 });
10984
11091
  try {
10985
11092
  const A = a.activeTab;
10986
11093
  if (A === "assets") {
10987
- const F = this._buildSearchNotation(), I = a.currentFolderPath || "/", H = tt(this.apiClient, {
10988
- folder: I,
11094
+ const F = this._buildSearchNotation(), P = a.currentFolderPath || "/", H = tt(this.apiClient, {
11095
+ folder: P,
10989
11096
  offset: 0,
10990
11097
  limit: a.limit,
10991
11098
  sort_by: a.sortBy,
@@ -10994,13 +11101,13 @@ const Kt = class Kt extends k {
10994
11101
  q: F || void 0,
10995
11102
  recursive: 1
10996
11103
  }), T = Xt(this.apiClient, {
10997
- folder: I,
11104
+ folder: P,
10998
11105
  q: F || void 0,
10999
11106
  search: a.searchQuery || void 0,
11000
11107
  recursive: 1
11001
- }).catch(() => null), [R, B] = await Promise.all([H, T]);
11108
+ }).catch(() => null), [R, U] = await Promise.all([H, T]);
11002
11109
  if (e !== this._loadId) return;
11003
- const ne = ((s = R.files) == null ? void 0 : s.length) ?? 0, fe = ne >= a.limit, Ae = ((i = B == null ? void 0 : B.stats) == null ? void 0 : i.approx_files_count) ?? ((r = B == null ? void 0 : B.info) == null ? void 0 : r.total_files_count) ?? ((o = R.info) == null ? void 0 : o.total_files_count) ?? ((c = (l = R.base) == null ? void 0 : l.count) == null ? void 0 : c.files_recursive) ?? ((u = (p = R.base) == null ? void 0 : p.count) == null ? void 0 : u.files_direct) ?? ne;
11110
+ const ne = ((s = R.files) == null ? void 0 : s.length) ?? 0, fe = ne >= a.limit, Ae = ((i = U == null ? void 0 : U.stats) == null ? void 0 : i.approx_files_count) ?? ((r = U == null ? void 0 : U.info) == null ? void 0 : r.total_files_count) ?? ((o = R.info) == null ? void 0 : o.total_files_count) ?? ((c = (l = R.base) == null ? void 0 : l.count) == null ? void 0 : c.files_recursive) ?? ((u = (p = R.base) == null ? void 0 : p.count) == null ? void 0 : u.files_direct) ?? ne;
11004
11111
  this.store.setState({
11005
11112
  assets: R.files || [],
11006
11113
  folders: [],
@@ -11011,7 +11118,7 @@ const Kt = class Kt extends k {
11011
11118
  isLoading: !1
11012
11119
  });
11013
11120
  } else if (A === "folders") {
11014
- const F = this._buildSearchNotation(), I = a.currentFolderPath || "/", [H, T, R] = await Promise.all([
11121
+ const F = this._buildSearchNotation(), P = a.currentFolderPath || "/", [H, T, R] = await Promise.all([
11015
11122
  Na(this.apiClient, {
11016
11123
  folderPath: a.currentFolderPath,
11017
11124
  q: a.searchQuery || void 0,
@@ -11020,7 +11127,7 @@ const Kt = class Kt extends k {
11020
11127
  sort_direction: a.sortDirection
11021
11128
  }),
11022
11129
  tt(this.apiClient, {
11023
- folder: I,
11130
+ folder: P,
11024
11131
  offset: 0,
11025
11132
  limit: a.limit,
11026
11133
  sort_by: a.sortBy,
@@ -11030,28 +11137,28 @@ const Kt = class Kt extends k {
11030
11137
  recursive: 0
11031
11138
  }),
11032
11139
  Xt(this.apiClient, {
11033
- folder: I,
11140
+ folder: P,
11034
11141
  q: F || void 0,
11035
11142
  search: a.searchQuery || void 0,
11036
11143
  recursive: 0
11037
11144
  }).catch(() => null)
11038
11145
  ]);
11039
11146
  if (e !== this._loadId) return;
11040
- const B = H.folders || [];
11147
+ const U = H.folders || [];
11041
11148
  let ne = {};
11042
- if (B.length > 0)
11149
+ if (U.length > 0)
11043
11150
  try {
11044
- ne = await ja(this.apiClient, B.map((ve) => ve.uuid));
11151
+ ne = await ja(this.apiClient, U.map((ve) => ve.uuid));
11045
11152
  } catch {
11046
11153
  }
11047
11154
  if (e !== this._loadId) return;
11048
- const fe = ((v = T.files) == null ? void 0 : v.length) ?? 0, Ae = fe >= a.limit, et = ((d = R == null ? void 0 : R.stats) == null ? void 0 : d.approx_files_count) ?? ((g = R == null ? void 0 : R.info) == null ? void 0 : g.total_files_count) ?? ((b = T.info) == null ? void 0 : b.total_files_count) ?? ((_ = (E = T.base) == null ? void 0 : E.count) == null ? void 0 : _.files_direct) ?? fe;
11155
+ const fe = ((v = T.files) == null ? void 0 : v.length) ?? 0, Ae = fe >= a.limit, et = ((d = R == null ? void 0 : R.stats) == null ? void 0 : d.approx_files_count) ?? ((g = R == null ? void 0 : R.info) == null ? void 0 : g.total_files_count) ?? ((b = T.info) == null ? void 0 : b.total_files_count) ?? ((_ = (k = T.base) == null ? void 0 : k.count) == null ? void 0 : _.files_direct) ?? fe;
11049
11156
  this.store.setState({
11050
11157
  assets: T.files || [],
11051
- folders: B,
11158
+ folders: U,
11052
11159
  folderPreviews: ne,
11053
11160
  totalCount: et,
11054
- totalFolderCount: H.total ?? B.length,
11161
+ totalFolderCount: H.total ?? U.length,
11055
11162
  offset: 0,
11056
11163
  hasMore: Ae,
11057
11164
  isLoading: !1
@@ -11143,7 +11250,7 @@ const Kt = class Kt extends k {
11143
11250
  _handleTabChange(e) {
11144
11251
  var s, i;
11145
11252
  const a = e.detail.tab;
11146
- (s = this.config) != null && s.rememberLastTab && Es(a), this.store.setState({
11253
+ (s = this.config) != null && s.rememberLastTab && Fs(a), this.store.setState({
11147
11254
  activeTab: a,
11148
11255
  currentFolder: null,
11149
11256
  currentFolderPath: ((i = this.config) == null ? void 0 : i.rootFolderPath) ?? "/",
@@ -11228,9 +11335,9 @@ const Kt = class Kt extends k {
11228
11335
  for (let _ = 0; _ < u.length; _ += v) {
11229
11336
  const A = u.slice(_, _ + v), F = await Promise.all(
11230
11337
  A.map(
11231
- (I) => tt(this.apiClient, {
11338
+ (P) => tt(this.apiClient, {
11232
11339
  folder: r,
11233
- offset: I,
11340
+ offset: P,
11234
11341
  limit: o,
11235
11342
  sort_by: e.sortBy,
11236
11343
  sort_direction: e.sortDirection,
@@ -11240,16 +11347,16 @@ const Kt = class Kt extends k {
11240
11347
  })
11241
11348
  )
11242
11349
  );
11243
- for (const I of F)
11244
- I.files && d.push(...I.files);
11350
+ for (const P of F)
11351
+ P.files && d.push(...P.files);
11245
11352
  }
11246
- const g = new Set(l.map((_) => _.uuid)), b = d.filter((_) => g.has(_.uuid) ? !1 : (g.add(_.uuid), !0)), E = [...l, ...b];
11353
+ const g = new Set(l.map((_) => _.uuid)), b = d.filter((_) => g.has(_.uuid) ? !1 : (g.add(_.uuid), !0)), k = [...l, ...b];
11247
11354
  this.store.setState({
11248
- assets: E,
11249
- offset: Math.max(0, E.length - o),
11355
+ assets: k,
11356
+ offset: Math.max(0, k.length - o),
11250
11357
  hasMore: !1,
11251
11358
  isSelectingAll: !1
11252
- }), this.selectionCtrl.selectAll(E);
11359
+ }), this.selectionCtrl.selectAll(k);
11253
11360
  } catch (i) {
11254
11361
  this.store.setState({ isSelectingAll: !1 }), this.dispatchEvent(new CustomEvent("ap-error", {
11255
11362
  detail: { error: i, context: "selectAll" },
@@ -11268,7 +11375,7 @@ const Kt = class Kt extends k {
11268
11375
  }
11269
11376
  // ── Filter Handlers ──────────────────────────────────────────────────
11270
11377
  _isDateFilterKey(e) {
11271
- return e === m.DATE || e === m.LICENSE_EXPIRY || e === U.DUE_DATE;
11378
+ return e === m.DATE || e === m.LICENSE_EXPIRY || e === B.DUE_DATE;
11272
11379
  }
11273
11380
  _handleFilterUpdate(e) {
11274
11381
  const { key: a, values: s, operator: i } = e.detail, o = { ...this.store.getState().filters };
@@ -11338,8 +11445,8 @@ const Kt = class Kt extends k {
11338
11445
  s ? (this._pendingMetadataField = s, i.pendingMetadataField = s) : a && (this._pendingFilter = a, i.pendingFilter = a), await i.updateComplete;
11339
11446
  let o = i.renderRoot.querySelector(".chip.pending");
11340
11447
  if (!o) {
11341
- const E = i.renderRoot.querySelectorAll(".chip.pinned-empty"), _ = s ? (d = i._getMetadataLabel) == null ? void 0 : d.call(i, s) : void 0;
11342
- for (const A of E) {
11448
+ const k = i.renderRoot.querySelectorAll(".chip.pinned-empty"), _ = s ? (d = i._getMetadataLabel) == null ? void 0 : d.call(i, s) : void 0;
11449
+ for (const A of k) {
11343
11450
  const F = (b = (g = A.querySelector(".chip-label")) == null ? void 0 : g.textContent) == null ? void 0 : b.trim();
11344
11451
  if (s && F === _) {
11345
11452
  o = A;
@@ -11448,11 +11555,11 @@ const Kt = class Kt extends k {
11448
11555
  // ── Search Notation Builder ──────────────────────────────────────────
11449
11556
  _buildSearchNotation() {
11450
11557
  var i;
11451
- const e = this.store.getState(), a = { ...Ue((i = this.config) == null ? void 0 : i.forcedFilters), ...e.filters.applied };
11558
+ const e = this.store.getState(), a = { ...Be((i = this.config) == null ? void 0 : i.forcedFilters), ...e.filters.applied };
11452
11559
  return ls(a, e.filters.metadata.applied).join(" ");
11453
11560
  }
11454
11561
  render() {
11455
- var p, u, v, d, g, b, E, _;
11562
+ var p, u, v, d, g, b, k, _;
11456
11563
  const e = this.storeCtrl.state, a = Array.from(e.selectedAssets.keys()), s = this.selectionCtrl.getSelectedAssets(), i = n`
11457
11564
  <ap-header
11458
11565
  .activeTab=${e.activeTab}
@@ -11484,11 +11591,6 @@ const Kt = class Kt extends k {
11484
11591
  </div>
11485
11592
  ` : f}
11486
11593
  <div class="main-content">
11487
- ${e.breadcrumb.length > 0 ? n`<ap-breadcrumb
11488
- .items=${e.breadcrumb}
11489
- @breadcrumb-navigate=${this._handleBreadcrumbNavigate}
11490
- ></ap-breadcrumb>` : f}
11491
-
11492
11594
  <div class="toolbar-filters-wrapper">
11493
11595
  <ap-content-toolbar
11494
11596
  .isLoading=${e.isLoading}
@@ -11504,7 +11606,7 @@ const Kt = class Kt extends k {
11504
11606
  .metadataFields=${e.metadataFields}
11505
11607
  .pinnedFilters=${e.filters.pinned}
11506
11608
  .apiClient=${this.apiClient}
11507
- .forcedFilterKeys=${Object.keys(Ue((v = this.config) == null ? void 0 : v.forcedFilters))}
11609
+ .forcedFilterKeys=${Object.keys(Be((v = this.config) == null ? void 0 : v.forcedFilters))}
11508
11610
  @sort-change=${this._handleSortChange}
11509
11611
  @sort-direction-change=${this._handleSortDirectionChange}
11510
11612
  @filter-update=${this._handleFilterUpdate}
@@ -11536,6 +11638,11 @@ const Kt = class Kt extends k {
11536
11638
  @filters-clear-all=${this._handleFiltersClearAll}
11537
11639
  @filters-set=${this._handleFiltersSet}
11538
11640
  ></ap-filters-bar>
11641
+
11642
+ ${e.breadcrumb.length > 0 ? n`<ap-breadcrumb
11643
+ .items=${e.breadcrumb}
11644
+ @breadcrumb-navigate=${this._handleBreadcrumbNavigate}
11645
+ ></ap-breadcrumb>` : f}
11539
11646
  </div>
11540
11647
 
11541
11648
  ${e.isLoading && e.assets.length === 0 && e.folders.length === 0 ? n`<ap-skeleton .variant=${e.viewMode}></ap-skeleton>` : this._renderContent(e, a)}
@@ -11565,7 +11672,7 @@ const Kt = class Kt extends k {
11565
11672
  .selectedAssets=${s}
11566
11673
  .totalCount=${e.totalCount}
11567
11674
  .isSelectingAll=${e.isSelectingAll}
11568
- .multiSelect=${((E = this.config) == null ? void 0 : E.multiSelect) ?? !0}
11675
+ .multiSelect=${((k = this.config) == null ? void 0 : k.multiSelect) ?? !0}
11569
11676
  .maxSelections=${(_ = this.config) == null ? void 0 : _.maxSelections}
11570
11677
  @selection-confirm=${this._handleSelectionConfirm}
11571
11678
  @selection-clear=${this._handleSelectionClear}