@qtalo/qt-ui-library 0.1.29 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -326,25 +326,25 @@ var html$1 = freeze(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.a
326
326
  function createDOMPurify() {
327
327
  let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal(), t = (e) => createDOMPurify(e);
328
328
  if (t.version = "3.3.1", t.removed = [], !e || !e.document || e.document.nodeType !== NODE_TYPE.document || !e.Element) return t.isSupported = !1, t;
329
- let { document: n } = e, r = n, i = r.currentScript, { DocumentFragment: a, HTMLTemplateElement: o, Node: s, Element: c, NodeFilter: l, NamedNodeMap: u = e.NamedNodeMap || e.MozNamedAttrMap, HTMLFormElement: f, DOMParser: p, trustedTypes: h } = e, Zo = c.prototype, g = lookupGetter(Zo, "cloneNode"), O = lookupGetter(Zo, "remove"), Qo = lookupGetter(Zo, "nextSibling"), $o = lookupGetter(Zo, "childNodes"), es = lookupGetter(Zo, "parentNode");
329
+ let { document: n } = e, r = n, i = r.currentScript, { DocumentFragment: a, HTMLTemplateElement: o, Node: s, Element: c, NodeFilter: l, NamedNodeMap: u = e.NamedNodeMap || e.MozNamedAttrMap, HTMLFormElement: f, DOMParser: p, trustedTypes: h } = e, g = c.prototype, O = lookupGetter(g, "cloneNode"), A = lookupGetter(g, "remove"), Ws = lookupGetter(g, "nextSibling"), Gs = lookupGetter(g, "childNodes"), Ks = lookupGetter(g, "parentNode");
330
330
  if (typeof o == "function") {
331
331
  let e = n.createElement("template");
332
332
  e.content && e.content.ownerDocument && (n = e.content.ownerDocument);
333
333
  }
334
- let A, R = "", { implementation: ts, createNodeIterator: ns, createDocumentFragment: rs, getElementsByTagName: is } = n, { importNode: as } = r, B = _createHooksMap();
335
- t.isSupported = typeof entries == "function" && typeof es == "function" && ts && ts.createHTMLDocument !== void 0;
336
- let { MUSTACHE_EXPR: os, ERB_EXPR: ss, TMPLIT_EXPR: cs, DATA_ATTR: ls, ARIA_ATTR: us, IS_SCRIPT_OR_DATA: ds, ATTR_WHITESPACE: fs, CUSTOM_ELEMENT: ps } = EXPRESSIONS, { IS_ALLOWED_URI: ms } = EXPRESSIONS, V = null, hs = addToSet({}, [
334
+ let R, B = "", { implementation: V, createNodeIterator: qs, createDocumentFragment: Js, getElementsByTagName: Ys } = n, { importNode: Xs } = r, H = _createHooksMap();
335
+ t.isSupported = typeof entries == "function" && typeof Ks == "function" && V && V.createHTMLDocument !== void 0;
336
+ let { MUSTACHE_EXPR: Zs, ERB_EXPR: Qs, TMPLIT_EXPR: $s, DATA_ATTR: ec, ARIA_ATTR: tc, IS_SCRIPT_OR_DATA: nc, ATTR_WHITESPACE: rc, CUSTOM_ELEMENT: ic } = EXPRESSIONS, { IS_ALLOWED_URI: ac } = EXPRESSIONS, oc = null, sc = addToSet({}, [
337
337
  ...html$1,
338
338
  ...svg$1,
339
339
  ...svgFilters,
340
340
  ...mathMl$1,
341
341
  ...text
342
- ]), gs = null, _s = addToSet({}, [
342
+ ]), cc = null, lc = addToSet({}, [
343
343
  ...html,
344
344
  ...svg,
345
345
  ...mathMl,
346
346
  ...xml
347
- ]), H = Object.seal(create(null, {
347
+ ]), Y = Object.seal(create(null, {
348
348
  tagNameCheck: {
349
349
  writable: !0,
350
350
  configurable: !1,
@@ -363,7 +363,7 @@ function createDOMPurify() {
363
363
  enumerable: !0,
364
364
  value: !1
365
365
  }
366
- })), vs = null, ys = null, bs = Object.seal(create(null, {
366
+ })), uc = null, dc = null, fc = Object.seal(create(null, {
367
367
  tagCheck: {
368
368
  writable: !0,
369
369
  configurable: !1,
@@ -376,7 +376,7 @@ function createDOMPurify() {
376
376
  enumerable: !0,
377
377
  value: null
378
378
  }
379
- })), xs = !0, Ss = !0, Cs = !1, ws = !0, Ts = !1, Es = !0, Ds = !1, Os = !1, ks = !1, As = !1, js = !1, Ms = !1, Ns = !0, Ps = !1, Fs = !0, Is = !1, Ls = {}, Rs = null, zs = addToSet({}, [
379
+ })), pc = !0, mc = !0, hc = !1, gc = !0, _c = !1, vc = !0, yc = !1, bc = !1, xc = !1, Sc = !1, Cc = !1, wc = !1, Tc = !0, Ec = !1, Dc = !0, Oc = !1, kc = {}, Ac = null, jc = addToSet({}, [
380
380
  "annotation-xml",
381
381
  "audio",
382
382
  "colgroup",
@@ -402,14 +402,14 @@ function createDOMPurify() {
402
402
  "title",
403
403
  "video",
404
404
  "xmp"
405
- ]), Bs = null, Vs = addToSet({}, [
405
+ ]), Mc = null, Nc = addToSet({}, [
406
406
  "audio",
407
407
  "video",
408
408
  "img",
409
409
  "source",
410
410
  "image",
411
411
  "track"
412
- ]), Hs = null, Us = addToSet({}, [
412
+ ]), Pc = null, Fc = addToSet({}, [
413
413
  "alt",
414
414
  "class",
415
415
  "for",
@@ -424,58 +424,58 @@ function createDOMPurify() {
424
424
  "value",
425
425
  "style",
426
426
  "xmlns"
427
- ]), Ws = "http://www.w3.org/1998/Math/MathML", Gs = "http://www.w3.org/2000/svg", Ks = "http://www.w3.org/1999/xhtml", qs = Ks, Js = !1, Ys = null, Xs = addToSet({}, [
428
- Ws,
429
- Gs,
430
- Ks
431
- ], stringToString), Zs = addToSet({}, [
427
+ ]), Ic = "http://www.w3.org/1998/Math/MathML", Lc = "http://www.w3.org/2000/svg", Rc = "http://www.w3.org/1999/xhtml", zc = Rc, Bc = !1, Vc = null, Hc = addToSet({}, [
428
+ Ic,
429
+ Lc,
430
+ Rc
431
+ ], stringToString), Uc = addToSet({}, [
432
432
  "mi",
433
433
  "mo",
434
434
  "mn",
435
435
  "ms",
436
436
  "mtext"
437
- ]), Qs = addToSet({}, ["annotation-xml"]), $s = addToSet({}, [
437
+ ]), Wc = addToSet({}, ["annotation-xml"]), Gc = addToSet({}, [
438
438
  "title",
439
439
  "style",
440
440
  "font",
441
441
  "a",
442
442
  "script"
443
- ]), ec = null, tc = ["application/xhtml+xml", "text/html"], Y = null, nc = null, rc = n.createElement("form"), ic = function(e) {
443
+ ]), Kc = null, qc = ["application/xhtml+xml", "text/html"], Jc = null, Yc = null, Xc = n.createElement("form"), Zc = function(e) {
444
444
  return e instanceof RegExp || e instanceof Function;
445
- }, ac = function() {
445
+ }, Qc = function() {
446
446
  let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
447
- if (!(nc && nc === e)) {
448
- if ((!e || typeof e != "object") && (e = {}), e = clone(e), ec = tc.indexOf(e.PARSER_MEDIA_TYPE) === -1 ? "text/html" : e.PARSER_MEDIA_TYPE, Y = ec === "application/xhtml+xml" ? stringToString : stringToLowerCase, V = objectHasOwnProperty(e, "ALLOWED_TAGS") ? addToSet({}, e.ALLOWED_TAGS, Y) : hs, gs = objectHasOwnProperty(e, "ALLOWED_ATTR") ? addToSet({}, e.ALLOWED_ATTR, Y) : _s, Ys = objectHasOwnProperty(e, "ALLOWED_NAMESPACES") ? addToSet({}, e.ALLOWED_NAMESPACES, stringToString) : Xs, Hs = objectHasOwnProperty(e, "ADD_URI_SAFE_ATTR") ? addToSet(clone(Us), e.ADD_URI_SAFE_ATTR, Y) : Us, Bs = objectHasOwnProperty(e, "ADD_DATA_URI_TAGS") ? addToSet(clone(Vs), e.ADD_DATA_URI_TAGS, Y) : Vs, Rs = objectHasOwnProperty(e, "FORBID_CONTENTS") ? addToSet({}, e.FORBID_CONTENTS, Y) : zs, vs = objectHasOwnProperty(e, "FORBID_TAGS") ? addToSet({}, e.FORBID_TAGS, Y) : clone({}), ys = objectHasOwnProperty(e, "FORBID_ATTR") ? addToSet({}, e.FORBID_ATTR, Y) : clone({}), Ls = objectHasOwnProperty(e, "USE_PROFILES") ? e.USE_PROFILES : !1, xs = e.ALLOW_ARIA_ATTR !== !1, Ss = e.ALLOW_DATA_ATTR !== !1, Cs = e.ALLOW_UNKNOWN_PROTOCOLS || !1, ws = e.ALLOW_SELF_CLOSE_IN_ATTR !== !1, Ts = e.SAFE_FOR_TEMPLATES || !1, Es = e.SAFE_FOR_XML !== !1, Ds = e.WHOLE_DOCUMENT || !1, As = e.RETURN_DOM || !1, js = e.RETURN_DOM_FRAGMENT || !1, Ms = e.RETURN_TRUSTED_TYPE || !1, ks = e.FORCE_BODY || !1, Ns = e.SANITIZE_DOM !== !1, Ps = e.SANITIZE_NAMED_PROPS || !1, Fs = e.KEEP_CONTENT !== !1, Is = e.IN_PLACE || !1, ms = e.ALLOWED_URI_REGEXP || IS_ALLOWED_URI, qs = e.NAMESPACE || Ks, Zs = e.MATHML_TEXT_INTEGRATION_POINTS || Zs, Qs = e.HTML_INTEGRATION_POINTS || Qs, H = e.CUSTOM_ELEMENT_HANDLING || {}, e.CUSTOM_ELEMENT_HANDLING && ic(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (H.tagNameCheck = e.CUSTOM_ELEMENT_HANDLING.tagNameCheck), e.CUSTOM_ELEMENT_HANDLING && ic(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (H.attributeNameCheck = e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), e.CUSTOM_ELEMENT_HANDLING && typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && (H.allowCustomizedBuiltInElements = e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), Ts && (Ss = !1), js && (As = !0), Ls && (V = addToSet({}, text), gs = [], Ls.html === !0 && (addToSet(V, html$1), addToSet(gs, html)), Ls.svg === !0 && (addToSet(V, svg$1), addToSet(gs, svg), addToSet(gs, xml)), Ls.svgFilters === !0 && (addToSet(V, svgFilters), addToSet(gs, svg), addToSet(gs, xml)), Ls.mathMl === !0 && (addToSet(V, mathMl$1), addToSet(gs, mathMl), addToSet(gs, xml))), e.ADD_TAGS && (typeof e.ADD_TAGS == "function" ? bs.tagCheck = e.ADD_TAGS : (V === hs && (V = clone(V)), addToSet(V, e.ADD_TAGS, Y))), e.ADD_ATTR && (typeof e.ADD_ATTR == "function" ? bs.attributeCheck = e.ADD_ATTR : (gs === _s && (gs = clone(gs)), addToSet(gs, e.ADD_ATTR, Y))), e.ADD_URI_SAFE_ATTR && addToSet(Hs, e.ADD_URI_SAFE_ATTR, Y), e.FORBID_CONTENTS && (Rs === zs && (Rs = clone(Rs)), addToSet(Rs, e.FORBID_CONTENTS, Y)), e.ADD_FORBID_CONTENTS && (Rs === zs && (Rs = clone(Rs)), addToSet(Rs, e.ADD_FORBID_CONTENTS, Y)), Fs && (V["#text"] = !0), Ds && addToSet(V, [
447
+ if (!(Yc && Yc === e)) {
448
+ if ((!e || typeof e != "object") && (e = {}), e = clone(e), Kc = qc.indexOf(e.PARSER_MEDIA_TYPE) === -1 ? "text/html" : e.PARSER_MEDIA_TYPE, Jc = Kc === "application/xhtml+xml" ? stringToString : stringToLowerCase, oc = objectHasOwnProperty(e, "ALLOWED_TAGS") ? addToSet({}, e.ALLOWED_TAGS, Jc) : sc, cc = objectHasOwnProperty(e, "ALLOWED_ATTR") ? addToSet({}, e.ALLOWED_ATTR, Jc) : lc, Vc = objectHasOwnProperty(e, "ALLOWED_NAMESPACES") ? addToSet({}, e.ALLOWED_NAMESPACES, stringToString) : Hc, Pc = objectHasOwnProperty(e, "ADD_URI_SAFE_ATTR") ? addToSet(clone(Fc), e.ADD_URI_SAFE_ATTR, Jc) : Fc, Mc = objectHasOwnProperty(e, "ADD_DATA_URI_TAGS") ? addToSet(clone(Nc), e.ADD_DATA_URI_TAGS, Jc) : Nc, Ac = objectHasOwnProperty(e, "FORBID_CONTENTS") ? addToSet({}, e.FORBID_CONTENTS, Jc) : jc, uc = objectHasOwnProperty(e, "FORBID_TAGS") ? addToSet({}, e.FORBID_TAGS, Jc) : clone({}), dc = objectHasOwnProperty(e, "FORBID_ATTR") ? addToSet({}, e.FORBID_ATTR, Jc) : clone({}), kc = objectHasOwnProperty(e, "USE_PROFILES") ? e.USE_PROFILES : !1, pc = e.ALLOW_ARIA_ATTR !== !1, mc = e.ALLOW_DATA_ATTR !== !1, hc = e.ALLOW_UNKNOWN_PROTOCOLS || !1, gc = e.ALLOW_SELF_CLOSE_IN_ATTR !== !1, _c = e.SAFE_FOR_TEMPLATES || !1, vc = e.SAFE_FOR_XML !== !1, yc = e.WHOLE_DOCUMENT || !1, Sc = e.RETURN_DOM || !1, Cc = e.RETURN_DOM_FRAGMENT || !1, wc = e.RETURN_TRUSTED_TYPE || !1, xc = e.FORCE_BODY || !1, Tc = e.SANITIZE_DOM !== !1, Ec = e.SANITIZE_NAMED_PROPS || !1, Dc = e.KEEP_CONTENT !== !1, Oc = e.IN_PLACE || !1, ac = e.ALLOWED_URI_REGEXP || IS_ALLOWED_URI, zc = e.NAMESPACE || Rc, Uc = e.MATHML_TEXT_INTEGRATION_POINTS || Uc, Wc = e.HTML_INTEGRATION_POINTS || Wc, Y = e.CUSTOM_ELEMENT_HANDLING || {}, e.CUSTOM_ELEMENT_HANDLING && Zc(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (Y.tagNameCheck = e.CUSTOM_ELEMENT_HANDLING.tagNameCheck), e.CUSTOM_ELEMENT_HANDLING && Zc(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (Y.attributeNameCheck = e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), e.CUSTOM_ELEMENT_HANDLING && typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && (Y.allowCustomizedBuiltInElements = e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), _c && (mc = !1), Cc && (Sc = !0), kc && (oc = addToSet({}, text), cc = [], kc.html === !0 && (addToSet(oc, html$1), addToSet(cc, html)), kc.svg === !0 && (addToSet(oc, svg$1), addToSet(cc, svg), addToSet(cc, xml)), kc.svgFilters === !0 && (addToSet(oc, svgFilters), addToSet(cc, svg), addToSet(cc, xml)), kc.mathMl === !0 && (addToSet(oc, mathMl$1), addToSet(cc, mathMl), addToSet(cc, xml))), e.ADD_TAGS && (typeof e.ADD_TAGS == "function" ? fc.tagCheck = e.ADD_TAGS : (oc === sc && (oc = clone(oc)), addToSet(oc, e.ADD_TAGS, Jc))), e.ADD_ATTR && (typeof e.ADD_ATTR == "function" ? fc.attributeCheck = e.ADD_ATTR : (cc === lc && (cc = clone(cc)), addToSet(cc, e.ADD_ATTR, Jc))), e.ADD_URI_SAFE_ATTR && addToSet(Pc, e.ADD_URI_SAFE_ATTR, Jc), e.FORBID_CONTENTS && (Ac === jc && (Ac = clone(Ac)), addToSet(Ac, e.FORBID_CONTENTS, Jc)), e.ADD_FORBID_CONTENTS && (Ac === jc && (Ac = clone(Ac)), addToSet(Ac, e.ADD_FORBID_CONTENTS, Jc)), Dc && (oc["#text"] = !0), yc && addToSet(oc, [
449
449
  "html",
450
450
  "head",
451
451
  "body"
452
- ]), V.table && (addToSet(V, ["tbody"]), delete vs.tbody), e.TRUSTED_TYPES_POLICY) {
452
+ ]), oc.table && (addToSet(oc, ["tbody"]), delete uc.tbody), e.TRUSTED_TYPES_POLICY) {
453
453
  if (typeof e.TRUSTED_TYPES_POLICY.createHTML != "function") throw typeErrorCreate("TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.");
454
454
  if (typeof e.TRUSTED_TYPES_POLICY.createScriptURL != "function") throw typeErrorCreate("TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.");
455
- A = e.TRUSTED_TYPES_POLICY, R = A.createHTML("");
456
- } else A === void 0 && (A = _createTrustedTypesPolicy(h, i)), A !== null && typeof R == "string" && (R = A.createHTML(""));
457
- freeze && freeze(e), nc = e;
455
+ R = e.TRUSTED_TYPES_POLICY, B = R.createHTML("");
456
+ } else R === void 0 && (R = _createTrustedTypesPolicy(h, i)), R !== null && typeof B == "string" && (B = R.createHTML(""));
457
+ freeze && freeze(e), Yc = e;
458
458
  }
459
- }, oc = addToSet({}, [
459
+ }, $c = addToSet({}, [
460
460
  ...svg$1,
461
461
  ...svgFilters,
462
462
  ...svgDisallowed
463
- ]), sc = addToSet({}, [...mathMl$1, ...mathMlDisallowed]), cc = function(e) {
464
- let t = es(e);
463
+ ]), el = addToSet({}, [...mathMl$1, ...mathMlDisallowed]), tl = function(e) {
464
+ let t = Ks(e);
465
465
  (!t || !t.tagName) && (t = {
466
- namespaceURI: qs,
466
+ namespaceURI: zc,
467
467
  tagName: "template"
468
468
  });
469
469
  let n = stringToLowerCase(e.tagName), r = stringToLowerCase(t.tagName);
470
- return Ys[e.namespaceURI] ? e.namespaceURI === Gs ? t.namespaceURI === Ks ? n === "svg" : t.namespaceURI === Ws ? n === "svg" && (r === "annotation-xml" || Zs[r]) : !!oc[n] : e.namespaceURI === Ws ? t.namespaceURI === Ks ? n === "math" : t.namespaceURI === Gs ? n === "math" && Qs[r] : !!sc[n] : e.namespaceURI === Ks ? t.namespaceURI === Gs && !Qs[r] || t.namespaceURI === Ws && !Zs[r] ? !1 : !sc[n] && ($s[n] || !oc[n]) : !!(ec === "application/xhtml+xml" && Ys[e.namespaceURI]) : !1;
471
- }, lc = function(e) {
470
+ return Vc[e.namespaceURI] ? e.namespaceURI === Lc ? t.namespaceURI === Rc ? n === "svg" : t.namespaceURI === Ic ? n === "svg" && (r === "annotation-xml" || Uc[r]) : !!$c[n] : e.namespaceURI === Ic ? t.namespaceURI === Rc ? n === "math" : t.namespaceURI === Lc ? n === "math" && Wc[r] : !!el[n] : e.namespaceURI === Rc ? t.namespaceURI === Lc && !Wc[r] || t.namespaceURI === Ic && !Uc[r] ? !1 : !el[n] && (Gc[n] || !$c[n]) : !!(Kc === "application/xhtml+xml" && Vc[e.namespaceURI]) : !1;
471
+ }, nl = function(e) {
472
472
  arrayPush(t.removed, { element: e });
473
473
  try {
474
- es(e).removeChild(e);
474
+ Ks(e).removeChild(e);
475
475
  } catch {
476
- O(e);
476
+ A(e);
477
477
  }
478
- }, uc = function(e, n) {
478
+ }, rl = function(e, n) {
479
479
  try {
480
480
  arrayPush(t.removed, {
481
481
  attribute: n.getAttributeNode(e),
@@ -487,196 +487,196 @@ function createDOMPurify() {
487
487
  from: n
488
488
  });
489
489
  }
490
- if (n.removeAttribute(e), e === "is") if (As || js) try {
491
- lc(n);
490
+ if (n.removeAttribute(e), e === "is") if (Sc || Cc) try {
491
+ nl(n);
492
492
  } catch {}
493
493
  else try {
494
494
  n.setAttribute(e, "");
495
495
  } catch {}
496
- }, dc = function(e) {
496
+ }, il = function(e) {
497
497
  let t = null, r = null;
498
- if (ks) e = "<remove></remove>" + e;
498
+ if (xc) e = "<remove></remove>" + e;
499
499
  else {
500
500
  let t = stringMatch(e, /^[\r\n\t ]+/);
501
501
  r = t && t[0];
502
502
  }
503
- ec === "application/xhtml+xml" && qs === Ks && (e = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>" + e + "</body></html>");
504
- let i = A ? A.createHTML(e) : e;
505
- if (qs === Ks) try {
506
- t = new p().parseFromString(i, ec);
503
+ Kc === "application/xhtml+xml" && zc === Rc && (e = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>" + e + "</body></html>");
504
+ let i = R ? R.createHTML(e) : e;
505
+ if (zc === Rc) try {
506
+ t = new p().parseFromString(i, Kc);
507
507
  } catch {}
508
508
  if (!t || !t.documentElement) {
509
- t = ts.createDocument(qs, "template", null);
509
+ t = V.createDocument(zc, "template", null);
510
510
  try {
511
- t.documentElement.innerHTML = Js ? R : i;
511
+ t.documentElement.innerHTML = Bc ? B : i;
512
512
  } catch {}
513
513
  }
514
514
  let a = t.body || t.documentElement;
515
- return e && r && a.insertBefore(n.createTextNode(r), a.childNodes[0] || null), qs === Ks ? is.call(t, Ds ? "html" : "body")[0] : Ds ? t.documentElement : a;
516
- }, fc = function(e) {
517
- return ns.call(e.ownerDocument || e, e, l.SHOW_ELEMENT | l.SHOW_COMMENT | l.SHOW_TEXT | l.SHOW_PROCESSING_INSTRUCTION | l.SHOW_CDATA_SECTION, null);
518
- }, pc = function(e) {
515
+ return e && r && a.insertBefore(n.createTextNode(r), a.childNodes[0] || null), zc === Rc ? Ys.call(t, yc ? "html" : "body")[0] : yc ? t.documentElement : a;
516
+ }, al = function(e) {
517
+ return qs.call(e.ownerDocument || e, e, l.SHOW_ELEMENT | l.SHOW_COMMENT | l.SHOW_TEXT | l.SHOW_PROCESSING_INSTRUCTION | l.SHOW_CDATA_SECTION, null);
518
+ }, ol = function(e) {
519
519
  return e instanceof f && (typeof e.nodeName != "string" || typeof e.textContent != "string" || typeof e.removeChild != "function" || !(e.attributes instanceof u) || typeof e.removeAttribute != "function" || typeof e.setAttribute != "function" || typeof e.namespaceURI != "string" || typeof e.insertBefore != "function" || typeof e.hasChildNodes != "function");
520
- }, mc = function(e) {
520
+ }, sl = function(e) {
521
521
  return typeof s == "function" && e instanceof s;
522
522
  };
523
- function hc(e, n, r) {
523
+ function cl(e, n, r) {
524
524
  arrayForEach(e, (e) => {
525
- e.call(t, n, r, nc);
525
+ e.call(t, n, r, Yc);
526
526
  });
527
527
  }
528
- let gc = function(e) {
528
+ let ll = function(e) {
529
529
  let n = null;
530
- if (hc(B.beforeSanitizeElements, e, null), pc(e)) return lc(e), !0;
531
- let r = Y(e.nodeName);
532
- if (hc(B.uponSanitizeElement, e, {
530
+ if (cl(H.beforeSanitizeElements, e, null), ol(e)) return nl(e), !0;
531
+ let r = Jc(e.nodeName);
532
+ if (cl(H.uponSanitizeElement, e, {
533
533
  tagName: r,
534
- allowedTags: V
535
- }), Es && e.hasChildNodes() && !mc(e.firstElementChild) && regExpTest(/<[/\w!]/g, e.innerHTML) && regExpTest(/<[/\w!]/g, e.textContent) || e.nodeType === NODE_TYPE.progressingInstruction || Es && e.nodeType === NODE_TYPE.comment && regExpTest(/<[/\w]/g, e.data)) return lc(e), !0;
536
- if (!(bs.tagCheck instanceof Function && bs.tagCheck(r)) && (!V[r] || vs[r])) {
537
- if (!vs[r] && vc(r) && (H.tagNameCheck instanceof RegExp && regExpTest(H.tagNameCheck, r) || H.tagNameCheck instanceof Function && H.tagNameCheck(r))) return !1;
538
- if (Fs && !Rs[r]) {
539
- let t = es(e) || e.parentNode, n = $o(e) || e.childNodes;
534
+ allowedTags: oc
535
+ }), vc && e.hasChildNodes() && !sl(e.firstElementChild) && regExpTest(/<[/\w!]/g, e.innerHTML) && regExpTest(/<[/\w!]/g, e.textContent) || e.nodeType === NODE_TYPE.progressingInstruction || vc && e.nodeType === NODE_TYPE.comment && regExpTest(/<[/\w]/g, e.data)) return nl(e), !0;
536
+ if (!(fc.tagCheck instanceof Function && fc.tagCheck(r)) && (!oc[r] || uc[r])) {
537
+ if (!uc[r] && dl(r) && (Y.tagNameCheck instanceof RegExp && regExpTest(Y.tagNameCheck, r) || Y.tagNameCheck instanceof Function && Y.tagNameCheck(r))) return !1;
538
+ if (Dc && !Ac[r]) {
539
+ let t = Ks(e) || e.parentNode, n = Gs(e) || e.childNodes;
540
540
  if (n && t) {
541
541
  let r = n.length;
542
542
  for (let i = r - 1; i >= 0; --i) {
543
- let r = g(n[i], !0);
544
- r.__removalCount = (e.__removalCount || 0) + 1, t.insertBefore(r, Qo(e));
543
+ let r = O(n[i], !0);
544
+ r.__removalCount = (e.__removalCount || 0) + 1, t.insertBefore(r, Ws(e));
545
545
  }
546
546
  }
547
547
  }
548
- return lc(e), !0;
548
+ return nl(e), !0;
549
549
  }
550
- return e instanceof c && !cc(e) || (r === "noscript" || r === "noembed" || r === "noframes") && regExpTest(/<\/no(script|embed|frames)/i, e.innerHTML) ? (lc(e), !0) : (Ts && e.nodeType === NODE_TYPE.text && (n = e.textContent, arrayForEach([
551
- os,
552
- ss,
553
- cs
550
+ return e instanceof c && !tl(e) || (r === "noscript" || r === "noembed" || r === "noframes") && regExpTest(/<\/no(script|embed|frames)/i, e.innerHTML) ? (nl(e), !0) : (_c && e.nodeType === NODE_TYPE.text && (n = e.textContent, arrayForEach([
551
+ Zs,
552
+ Qs,
553
+ $s
554
554
  ], (e) => {
555
555
  n = stringReplace(n, e, " ");
556
- }), e.textContent !== n && (arrayPush(t.removed, { element: e.cloneNode() }), e.textContent = n)), hc(B.afterSanitizeElements, e, null), !1);
557
- }, _c = function(e, t, r) {
558
- if (Ns && (t === "id" || t === "name") && (r in n || r in rc)) return !1;
559
- if (!(Ss && !ys[t] && regExpTest(ls, t)) && !(xs && regExpTest(us, t)) && !(bs.attributeCheck instanceof Function && bs.attributeCheck(t, e))) {
560
- if (!gs[t] || ys[t]) {
561
- if (!(vc(e) && (H.tagNameCheck instanceof RegExp && regExpTest(H.tagNameCheck, e) || H.tagNameCheck instanceof Function && H.tagNameCheck(e)) && (H.attributeNameCheck instanceof RegExp && regExpTest(H.attributeNameCheck, t) || H.attributeNameCheck instanceof Function && H.attributeNameCheck(t, e)) || t === "is" && H.allowCustomizedBuiltInElements && (H.tagNameCheck instanceof RegExp && regExpTest(H.tagNameCheck, r) || H.tagNameCheck instanceof Function && H.tagNameCheck(r)))) return !1;
562
- } else if (!Hs[t] && !regExpTest(ms, stringReplace(r, fs, "")) && !((t === "src" || t === "xlink:href" || t === "href") && e !== "script" && stringIndexOf(r, "data:") === 0 && Bs[e]) && !(Cs && !regExpTest(ds, stringReplace(r, fs, ""))) && r) return !1;
556
+ }), e.textContent !== n && (arrayPush(t.removed, { element: e.cloneNode() }), e.textContent = n)), cl(H.afterSanitizeElements, e, null), !1);
557
+ }, ul = function(e, t, r) {
558
+ if (Tc && (t === "id" || t === "name") && (r in n || r in Xc)) return !1;
559
+ if (!(mc && !dc[t] && regExpTest(ec, t)) && !(pc && regExpTest(tc, t)) && !(fc.attributeCheck instanceof Function && fc.attributeCheck(t, e))) {
560
+ if (!cc[t] || dc[t]) {
561
+ if (!(dl(e) && (Y.tagNameCheck instanceof RegExp && regExpTest(Y.tagNameCheck, e) || Y.tagNameCheck instanceof Function && Y.tagNameCheck(e)) && (Y.attributeNameCheck instanceof RegExp && regExpTest(Y.attributeNameCheck, t) || Y.attributeNameCheck instanceof Function && Y.attributeNameCheck(t, e)) || t === "is" && Y.allowCustomizedBuiltInElements && (Y.tagNameCheck instanceof RegExp && regExpTest(Y.tagNameCheck, r) || Y.tagNameCheck instanceof Function && Y.tagNameCheck(r)))) return !1;
562
+ } else if (!Pc[t] && !regExpTest(ac, stringReplace(r, rc, "")) && !((t === "src" || t === "xlink:href" || t === "href") && e !== "script" && stringIndexOf(r, "data:") === 0 && Mc[e]) && !(hc && !regExpTest(nc, stringReplace(r, rc, ""))) && r) return !1;
563
563
  }
564
564
  return !0;
565
- }, vc = function(e) {
566
- return e !== "annotation-xml" && stringMatch(e, ps);
567
- }, yc = function(e) {
568
- hc(B.beforeSanitizeAttributes, e, null);
565
+ }, dl = function(e) {
566
+ return e !== "annotation-xml" && stringMatch(e, ic);
567
+ }, fl = function(e) {
568
+ cl(H.beforeSanitizeAttributes, e, null);
569
569
  let { attributes: n } = e;
570
- if (!n || pc(e)) return;
570
+ if (!n || ol(e)) return;
571
571
  let r = {
572
572
  attrName: "",
573
573
  attrValue: "",
574
574
  keepAttr: !0,
575
- allowedAttributes: gs,
575
+ allowedAttributes: cc,
576
576
  forceKeepAttr: void 0
577
577
  }, i = n.length;
578
578
  for (; i--;) {
579
- let { name: a, namespaceURI: o, value: s } = n[i], c = Y(a), l = s, u = a === "value" ? l : stringTrim(l);
580
- if (r.attrName = c, r.attrValue = u, r.keepAttr = !0, r.forceKeepAttr = void 0, hc(B.uponSanitizeAttribute, e, r), u = r.attrValue, Ps && (c === "id" || c === "name") && (uc(a, e), u = "user-content-" + u), Es && regExpTest(/((--!?|])>)|<\/(style|title|textarea)/i, u)) {
581
- uc(a, e);
579
+ let { name: a, namespaceURI: o, value: s } = n[i], c = Jc(a), l = s, u = a === "value" ? l : stringTrim(l);
580
+ if (r.attrName = c, r.attrValue = u, r.keepAttr = !0, r.forceKeepAttr = void 0, cl(H.uponSanitizeAttribute, e, r), u = r.attrValue, Ec && (c === "id" || c === "name") && (rl(a, e), u = "user-content-" + u), vc && regExpTest(/((--!?|])>)|<\/(style|title|textarea)/i, u)) {
581
+ rl(a, e);
582
582
  continue;
583
583
  }
584
584
  if (c === "attributename" && stringMatch(u, "href")) {
585
- uc(a, e);
585
+ rl(a, e);
586
586
  continue;
587
587
  }
588
588
  if (r.forceKeepAttr) continue;
589
589
  if (!r.keepAttr) {
590
- uc(a, e);
590
+ rl(a, e);
591
591
  continue;
592
592
  }
593
- if (!ws && regExpTest(/\/>/i, u)) {
594
- uc(a, e);
593
+ if (!gc && regExpTest(/\/>/i, u)) {
594
+ rl(a, e);
595
595
  continue;
596
596
  }
597
- Ts && arrayForEach([
598
- os,
599
- ss,
600
- cs
597
+ _c && arrayForEach([
598
+ Zs,
599
+ Qs,
600
+ $s
601
601
  ], (e) => {
602
602
  u = stringReplace(u, e, " ");
603
603
  });
604
- let f = Y(e.nodeName);
605
- if (!_c(f, c, u)) {
606
- uc(a, e);
604
+ let f = Jc(e.nodeName);
605
+ if (!ul(f, c, u)) {
606
+ rl(a, e);
607
607
  continue;
608
608
  }
609
- if (A && typeof h == "object" && typeof h.getAttributeType == "function" && !o) switch (h.getAttributeType(f, c)) {
609
+ if (R && typeof h == "object" && typeof h.getAttributeType == "function" && !o) switch (h.getAttributeType(f, c)) {
610
610
  case "TrustedHTML":
611
- u = A.createHTML(u);
611
+ u = R.createHTML(u);
612
612
  break;
613
613
  case "TrustedScriptURL":
614
- u = A.createScriptURL(u);
614
+ u = R.createScriptURL(u);
615
615
  break;
616
616
  }
617
617
  if (u !== l) try {
618
- o ? e.setAttributeNS(o, a, u) : e.setAttribute(a, u), pc(e) ? lc(e) : arrayPop(t.removed);
618
+ o ? e.setAttributeNS(o, a, u) : e.setAttribute(a, u), ol(e) ? nl(e) : arrayPop(t.removed);
619
619
  } catch {
620
- uc(a, e);
620
+ rl(a, e);
621
621
  }
622
622
  }
623
- hc(B.afterSanitizeAttributes, e, null);
624
- }, bc = function e(t) {
625
- let n = null, r = fc(t);
626
- for (hc(B.beforeSanitizeShadowDOM, t, null); n = r.nextNode();) hc(B.uponSanitizeShadowNode, n, null), gc(n), yc(n), n.content instanceof a && e(n.content);
627
- hc(B.afterSanitizeShadowDOM, t, null);
623
+ cl(H.afterSanitizeAttributes, e, null);
624
+ }, pl = function e(t) {
625
+ let n = null, r = al(t);
626
+ for (cl(H.beforeSanitizeShadowDOM, t, null); n = r.nextNode();) cl(H.uponSanitizeShadowNode, n, null), ll(n), fl(n), n.content instanceof a && e(n.content);
627
+ cl(H.afterSanitizeShadowDOM, t, null);
628
628
  };
629
629
  return t.sanitize = function(e) {
630
630
  let n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, i = null, o = null, c = null, l = null;
631
- if (Js = !e, Js && (e = "<!-->"), typeof e != "string" && !mc(e)) if (typeof e.toString == "function") {
631
+ if (Bc = !e, Bc && (e = "<!-->"), typeof e != "string" && !sl(e)) if (typeof e.toString == "function") {
632
632
  if (e = e.toString(), typeof e != "string") throw typeErrorCreate("dirty is not a string, aborting");
633
633
  } else throw typeErrorCreate("toString is not a function");
634
634
  if (!t.isSupported) return e;
635
- if (Os || ac(n), t.removed = [], typeof e == "string" && (Is = !1), Is) {
635
+ if (bc || Qc(n), t.removed = [], typeof e == "string" && (Oc = !1), Oc) {
636
636
  if (e.nodeName) {
637
- let t = Y(e.nodeName);
638
- if (!V[t] || vs[t]) throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place");
637
+ let t = Jc(e.nodeName);
638
+ if (!oc[t] || uc[t]) throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place");
639
639
  }
640
- } else if (e instanceof s) i = dc("<!---->"), o = i.ownerDocument.importNode(e, !0), o.nodeType === NODE_TYPE.element && o.nodeName === "BODY" || o.nodeName === "HTML" ? i = o : i.appendChild(o);
640
+ } else if (e instanceof s) i = il("<!---->"), o = i.ownerDocument.importNode(e, !0), o.nodeType === NODE_TYPE.element && o.nodeName === "BODY" || o.nodeName === "HTML" ? i = o : i.appendChild(o);
641
641
  else {
642
- if (!As && !Ts && !Ds && e.indexOf("<") === -1) return A && Ms ? A.createHTML(e) : e;
643
- if (i = dc(e), !i) return As ? null : Ms ? R : "";
642
+ if (!Sc && !_c && !yc && e.indexOf("<") === -1) return R && wc ? R.createHTML(e) : e;
643
+ if (i = il(e), !i) return Sc ? null : wc ? B : "";
644
644
  }
645
- i && ks && lc(i.firstChild);
646
- let u = fc(Is ? e : i);
647
- for (; c = u.nextNode();) gc(c), yc(c), c.content instanceof a && bc(c.content);
648
- if (Is) return e;
649
- if (As) {
650
- if (js) for (l = rs.call(i.ownerDocument); i.firstChild;) l.appendChild(i.firstChild);
645
+ i && xc && nl(i.firstChild);
646
+ let u = al(Oc ? e : i);
647
+ for (; c = u.nextNode();) ll(c), fl(c), c.content instanceof a && pl(c.content);
648
+ if (Oc) return e;
649
+ if (Sc) {
650
+ if (Cc) for (l = Js.call(i.ownerDocument); i.firstChild;) l.appendChild(i.firstChild);
651
651
  else l = i;
652
- return (gs.shadowroot || gs.shadowrootmode) && (l = as.call(r, l, !0)), l;
652
+ return (cc.shadowroot || cc.shadowrootmode) && (l = Xs.call(r, l, !0)), l;
653
653
  }
654
- let f = Ds ? i.outerHTML : i.innerHTML;
655
- return Ds && V["!doctype"] && i.ownerDocument && i.ownerDocument.doctype && i.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, i.ownerDocument.doctype.name) && (f = "<!DOCTYPE " + i.ownerDocument.doctype.name + ">\n" + f), Ts && arrayForEach([
656
- os,
657
- ss,
658
- cs
654
+ let f = yc ? i.outerHTML : i.innerHTML;
655
+ return yc && oc["!doctype"] && i.ownerDocument && i.ownerDocument.doctype && i.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, i.ownerDocument.doctype.name) && (f = "<!DOCTYPE " + i.ownerDocument.doctype.name + ">\n" + f), _c && arrayForEach([
656
+ Zs,
657
+ Qs,
658
+ $s
659
659
  ], (e) => {
660
660
  f = stringReplace(f, e, " ");
661
- }), A && Ms ? A.createHTML(f) : f;
661
+ }), R && wc ? R.createHTML(f) : f;
662
662
  }, t.setConfig = function() {
663
- ac(arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}), Os = !0;
663
+ Qc(arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}), bc = !0;
664
664
  }, t.clearConfig = function() {
665
- nc = null, Os = !1;
665
+ Yc = null, bc = !1;
666
666
  }, t.isValidAttribute = function(e, t, n) {
667
- return nc || ac({}), _c(Y(e), Y(t), n);
667
+ return Yc || Qc({}), ul(Jc(e), Jc(t), n);
668
668
  }, t.addHook = function(e, t) {
669
- typeof t == "function" && arrayPush(B[e], t);
669
+ typeof t == "function" && arrayPush(H[e], t);
670
670
  }, t.removeHook = function(e, t) {
671
671
  if (t !== void 0) {
672
- let n = arrayLastIndexOf(B[e], t);
673
- return n === -1 ? void 0 : arraySplice(B[e], n, 1)[0];
672
+ let n = arrayLastIndexOf(H[e], t);
673
+ return n === -1 ? void 0 : arraySplice(H[e], n, 1)[0];
674
674
  }
675
- return arrayPop(B[e]);
675
+ return arrayPop(H[e]);
676
676
  }, t.removeHooks = function(e) {
677
- B[e] = [];
677
+ H[e] = [];
678
678
  }, t.removeAllHooks = function() {
679
- B = _createHooksMap();
679
+ H = _createHooksMap();
680
680
  }, t;
681
681
  }
682
682
  var purify = createDOMPurify();
@@ -21328,11 +21328,11 @@ function Button({ className: e, children: t, ...n }) {
21328
21328
  });
21329
21329
  }
21330
21330
  function Checkbox({ checked: e, defaultChecked: t, icon: n, indeterminate: r, indeterminateIcon: i, onChange: a, disabled: o, children: s, className: c }) {
21331
- let u = useRef(null), [f, p] = useState(t ?? !1), g = e ?? f;
21331
+ let u = useRef(null), [f, p] = useState(t ?? !1), O = e ?? f;
21332
21332
  useEffect(() => {
21333
21333
  u.current && (u.current.indeterminate = !!r);
21334
21334
  }, [r]);
21335
- function O(t) {
21335
+ function A(t) {
21336
21336
  let n = t.target.checked;
21337
21337
  e === void 0 && p(n), a?.(n);
21338
21338
  }
@@ -21344,17 +21344,17 @@ function Checkbox({ checked: e, defaultChecked: t, icon: n, indeterminate: r, in
21344
21344
  type: "checkbox",
21345
21345
  className: cn("p-0 absolute h-px w-px overflow-hidden whitespace-nowrap", "[clip-path:inset(50%)]", "border-0"),
21346
21346
  disabled: o,
21347
- onChange: O,
21347
+ onChange: A,
21348
21348
  ...e === void 0 ? { defaultChecked: t } : { checked: e }
21349
21349
  }),
21350
21350
  /* @__PURE__ */ jsx("span", {
21351
21351
  role: "checkbox",
21352
- "aria-checked": r ? "mixed" : g,
21352
+ "aria-checked": r ? "mixed" : O,
21353
21353
  tabIndex: -1,
21354
- "data-state": r ? "indeterminate" : g ? "checked" : "unchecked",
21354
+ "data-state": r ? "indeterminate" : O ? "checked" : "unchecked",
21355
21355
  className: "checkbox-box inline-flex items-center justify-center",
21356
21356
  children: /* @__PURE__ */ jsx("span", {
21357
- className: cn("checkbox-icon", !(g || r) && "opacity-0"),
21357
+ className: cn("checkbox-icon", !(O || r) && "opacity-0"),
21358
21358
  children: r ? i ?? "—" : n ?? "✓"
21359
21359
  })
21360
21360
  }),
@@ -21372,18 +21372,18 @@ function useDropdown() {
21372
21372
  return e;
21373
21373
  }
21374
21374
  function Dropdown({ trigger: e, children: t, align: n = "start", side: r = "bottom", offsetX: i = 0, offsetY: a = 0, disabled: o = !1, openOnHover: c = !0, open: u, onOpenChange: p }) {
21375
- let g = u !== void 0, [O, A] = useState(!1), R = g ? u : O, ts = useCallback((e) => {
21376
- e !== R && (g || A(e), p?.(e));
21375
+ let O = u !== void 0, [A, R] = useState(!1), B = O ? u : A, V = useCallback((e) => {
21376
+ e !== B && (O || R(e), p?.(e));
21377
21377
  }, [
21378
- R,
21379
- g,
21378
+ B,
21379
+ O,
21380
21380
  p
21381
- ]), ns = useRef(null), rs = useRef(null), is = useRef(null), [as, B] = useState(null), os = useCallback(() => {
21382
- if (!ns.current || !rs.current) return;
21383
- let e = ns.current.getBoundingClientRect(), t = rs.current.getBoundingClientRect(), o = e.left;
21381
+ ]), qs = useRef(null), Js = useRef(null), Ys = useRef(null), [Xs, H] = useState(null), Zs = useCallback(() => {
21382
+ if (!qs.current || !Js.current) return;
21383
+ let e = qs.current.getBoundingClientRect(), t = Js.current.getBoundingClientRect(), o = e.left;
21384
21384
  n === "end" ? o = e.right - t.width : n === "center" && (o = e.left + (e.width - t.width) / 2), o += i;
21385
21385
  let s;
21386
- s = r === "bottom" ? e.bottom + a : e.top - t.height + a, queueMicrotask(() => B({
21386
+ s = r === "bottom" ? e.bottom + a : e.top - t.height + a, queueMicrotask(() => H({
21387
21387
  top: s,
21388
21388
  left: o
21389
21389
  }));
@@ -21394,52 +21394,52 @@ function Dropdown({ trigger: e, children: t, align: n = "start", side: r = "bott
21394
21394
  a
21395
21395
  ]);
21396
21396
  useLayoutEffect(() => {
21397
- R && os();
21398
- }, [R, os]), useEffect(() => {
21399
- if (!R) return;
21400
- let e = () => os();
21397
+ B && Zs();
21398
+ }, [B, Zs]), useEffect(() => {
21399
+ if (!B) return;
21400
+ let e = () => Zs();
21401
21401
  return window.addEventListener("resize", e), window.addEventListener("scroll", e, !0), () => {
21402
21402
  window.removeEventListener("resize", e), window.removeEventListener("scroll", e, !0);
21403
21403
  };
21404
- }, [R, os]);
21405
- let ss = useCallback(() => {
21406
- is.current &&= (clearTimeout(is.current), null), ts(!0);
21407
- }, [ts]), cs = useCallback(() => {
21408
- is.current = window.setTimeout(() => {
21409
- ts(!1);
21404
+ }, [B, Zs]);
21405
+ let Qs = useCallback(() => {
21406
+ Ys.current &&= (clearTimeout(Ys.current), null), V(!0);
21407
+ }, [V]), $s = useCallback(() => {
21408
+ Ys.current = window.setTimeout(() => {
21409
+ V(!1);
21410
21410
  }, 120);
21411
- }, [ts]);
21411
+ }, [V]);
21412
21412
  return useEffect(() => {
21413
21413
  function e(e) {
21414
21414
  let t = e.target;
21415
- ns.current?.contains(t) || rs.current?.contains(t) || ts(!1);
21415
+ qs.current?.contains(t) || Js.current?.contains(t) || V(!1);
21416
21416
  }
21417
21417
  return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
21418
- }, [ts]), useEffect(() => () => {
21419
- is.current && clearTimeout(is.current);
21418
+ }, [V]), useEffect(() => () => {
21419
+ Ys.current && clearTimeout(Ys.current);
21420
21420
  }, []), /* @__PURE__ */ jsxs(DropdownContext.Provider, {
21421
21421
  value: {
21422
- close: () => ts(!1),
21423
- open: ss
21422
+ close: () => V(!1),
21423
+ open: Qs
21424
21424
  },
21425
21425
  children: [/* @__PURE__ */ jsx("div", {
21426
- ref: ns,
21426
+ ref: qs,
21427
21427
  className: "inline-flex",
21428
- onMouseEnter: c ? ss : void 0,
21429
- onMouseLeave: c ? cs : void 0,
21430
- onClick: () => ts(!R),
21428
+ onMouseEnter: c ? Qs : void 0,
21429
+ onMouseLeave: c ? $s : void 0,
21430
+ onClick: () => V(!B),
21431
21431
  "aria-haspopup": "menu",
21432
- "aria-expanded": R,
21432
+ "aria-expanded": B,
21433
21433
  children: e
21434
- }), R && !o && createPortal(/* @__PURE__ */ jsx("div", {
21435
- ref: rs,
21436
- onMouseEnter: c ? ss : void 0,
21437
- onMouseLeave: c ? cs : void 0,
21434
+ }), B && !o && createPortal(/* @__PURE__ */ jsx("div", {
21435
+ ref: Js,
21436
+ onMouseEnter: c ? Qs : void 0,
21437
+ onMouseLeave: c ? $s : void 0,
21438
21438
  style: {
21439
21439
  position: "fixed",
21440
- top: as?.top ?? 0,
21441
- left: as?.left ?? 0,
21442
- visibility: as ? "visible" : "hidden",
21440
+ top: Xs?.top ?? 0,
21441
+ left: Xs?.left ?? 0,
21442
+ visibility: Xs ? "visible" : "hidden",
21443
21443
  zIndex: 1e3
21444
21444
  },
21445
21445
  children: t
@@ -21452,7 +21452,7 @@ function Input({ type: e = "text", value: t, defaultValue: n, disabled: r = !1,
21452
21452
  let t = e.target.value;
21453
21453
  f || u(t), o?.(t);
21454
21454
  }
21455
- function g(e) {
21455
+ function O(e) {
21456
21456
  s?.(e);
21457
21457
  }
21458
21458
  return /* @__PURE__ */ jsx("input", {
@@ -21463,7 +21463,7 @@ function Input({ type: e = "text", value: t, defaultValue: n, disabled: r = !1,
21463
21463
  "aria-disabled": r || void 0,
21464
21464
  "aria-invalid": i || void 0,
21465
21465
  onChange: h,
21466
- onKeyDown: g,
21466
+ onKeyDown: O,
21467
21467
  className: cn("bg-transparent outline-none", r && "pointer-events-none", c)
21468
21468
  });
21469
21469
  }
@@ -21501,17 +21501,17 @@ function getVerticalAlign(e, t, n) {
21501
21501
  return n === "start" ? e.top : n === "end" ? e.bottom - t.height : e.top + e.height / 2 - t.height / 2;
21502
21502
  }
21503
21503
  function Tooltip({ children: e, content: t, position: n = "top", delay: r = 120, className: i }) {
21504
- let a = useRef(null), o = useRef(null), s = useRef(null), [c, u] = useState(!1), [p, g] = useState(null), A = () => {
21504
+ let a = useRef(null), o = useRef(null), s = useRef(null), [c, u] = useState(!1), [p, O] = useState(null), R = () => {
21505
21505
  s.current &&= (clearTimeout(s.current), null), s.current = window.setTimeout(() => {
21506
21506
  u(!0);
21507
21507
  }, r);
21508
- }, R = () => {
21508
+ }, B = () => {
21509
21509
  s.current &&= (clearTimeout(s.current), null), u(!1);
21510
21510
  };
21511
21511
  return useLayoutEffect(() => {
21512
21512
  if (!c || !a.current || !o.current) return;
21513
21513
  let e = a.current.getBoundingClientRect(), t = o.current.getBoundingClientRect(), [r, i] = n.split("-"), s = i ?? "center", l = 0, u = 0;
21514
- r === "top" || r === "bottom" ? (l = r === "top" ? e.top - t.height - 4 : e.bottom + 4, u = getHorizontalAlign(e, t, s)) : (u = r === "left" ? e.left - t.width - 4 : e.right + 4, l = getVerticalAlign(e, t, s)), g((e) => e && e.top === l && e.left === u ? e : {
21514
+ r === "top" || r === "bottom" ? (l = r === "top" ? e.top - t.height - 4 : e.bottom + 4, u = getHorizontalAlign(e, t, s)) : (u = r === "left" ? e.left - t.width - 4 : e.right + 4, l = getVerticalAlign(e, t, s)), O((e) => e && e.top === l && e.left === u ? e : {
21515
21515
  top: l,
21516
21516
  left: u
21517
21517
  });
@@ -21520,10 +21520,10 @@ function Tooltip({ children: e, content: t, position: n = "top", delay: r = 120,
21520
21520
  }, []), /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
21521
21521
  ref: a,
21522
21522
  className: "inline-flex",
21523
- onMouseEnter: A,
21524
- onMouseLeave: R,
21525
- onFocus: A,
21526
- onBlur: R,
21523
+ onMouseEnter: R,
21524
+ onMouseLeave: B,
21525
+ onFocus: R,
21526
+ onBlur: B,
21527
21527
  children: e
21528
21528
  }), c && createPortal(/* @__PURE__ */ jsx("div", {
21529
21529
  ref: o,
@@ -22353,6 +22353,17 @@ function TeamsIcon(e) {
22353
22353
  })] })]
22354
22354
  });
22355
22355
  }
22356
+ function CheckIcon({ pathProps: e, ...t }) {
22357
+ return /* @__PURE__ */ jsx(Icon, {
22358
+ viewBox: "0 0 24 24",
22359
+ ...t,
22360
+ children: /* @__PURE__ */ jsx("path", {
22361
+ d: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z",
22362
+ fill: "currentColor",
22363
+ ...e
22364
+ })
22365
+ });
22366
+ }
22356
22367
  function CheckboxIcon({ pathProps: e, ...t }) {
22357
22368
  return /* @__PURE__ */ jsx(Icon, {
22358
22369
  viewBox: "0 0 16 16",
@@ -22391,6 +22402,17 @@ function CheckCircleIcon({ pathProps: e, ...t }) {
22391
22402
  })
22392
22403
  });
22393
22404
  }
22405
+ function EyeFillIcon({ pathProps: e, ...t }) {
22406
+ return /* @__PURE__ */ jsx(Icon, {
22407
+ viewBox: "0 0 24 24",
22408
+ ...t,
22409
+ children: /* @__PURE__ */ jsx("path", {
22410
+ d: "M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z",
22411
+ fill: "currentColor",
22412
+ ...e
22413
+ })
22414
+ });
22415
+ }
22394
22416
  function FireFillIcon({ pathProps: e, ...t }) {
22395
22417
  return /* @__PURE__ */ jsx(Icon, {
22396
22418
  viewBox: "0 0 20 20",
@@ -22413,6 +22435,17 @@ function FireIcon({ pathProps: e, ...t }) {
22413
22435
  })
22414
22436
  });
22415
22437
  }
22438
+ function HomeFillIcon({ pathProps: e, ...t }) {
22439
+ return /* @__PURE__ */ jsx(Icon, {
22440
+ viewBox: "0 0 24 24",
22441
+ ...t,
22442
+ children: /* @__PURE__ */ jsx("path", {
22443
+ d: "M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z",
22444
+ fill: "currentColor",
22445
+ ...e
22446
+ })
22447
+ });
22448
+ }
22416
22449
  function InsightFillIcon({ pathProps: e, ...t }) {
22417
22450
  return /* @__PURE__ */ jsxs(Icon, {
22418
22451
  viewBox: "0 0 20 20",
@@ -22492,6 +22525,17 @@ function NotFireIcon({ pathProps: e, ...t }) {
22492
22525
  })]
22493
22526
  });
22494
22527
  }
22528
+ function PatternIcon({ pathProps: e, ...t }) {
22529
+ return /* @__PURE__ */ jsx(Icon, {
22530
+ viewBox: "0 0 24 24",
22531
+ ...t,
22532
+ children: /* @__PURE__ */ jsx("path", {
22533
+ d: "M20 8h-2.81c-.45-.78-1.07-1.45-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z",
22534
+ fill: "currentColor",
22535
+ ...e
22536
+ })
22537
+ });
22538
+ }
22495
22539
  function ReadIcon({ pathProps: e, ...t }) {
22496
22540
  return /* @__PURE__ */ jsx(Icon, {
22497
22541
  viewBox: "0 0 20 20",
@@ -22514,6 +22558,17 @@ function UnreadIcon({ pathProps: e, ...t }) {
22514
22558
  })
22515
22559
  });
22516
22560
  }
22561
+ function WarningIcon({ pathProps: e, ...t }) {
22562
+ return /* @__PURE__ */ jsx(Icon, {
22563
+ viewBox: "0 0 24 24",
22564
+ ...t,
22565
+ children: /* @__PURE__ */ jsx("path", {
22566
+ d: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z",
22567
+ fill: "currentColor",
22568
+ ...e
22569
+ })
22570
+ });
22571
+ }
22517
22572
  function AccountIcon({ pathProps: e, ...t }) {
22518
22573
  return /* @__PURE__ */ jsx(Icon, {
22519
22574
  viewBox: "0 0 24 24",
@@ -22525,6 +22580,25 @@ function AccountIcon({ pathProps: e, ...t }) {
22525
22580
  })
22526
22581
  });
22527
22582
  }
22583
+ function AccountOutlineIcon({ pathProps: e, ...t }) {
22584
+ return /* @__PURE__ */ jsxs(Icon, {
22585
+ viewBox: "0 0 24 24",
22586
+ ...t,
22587
+ children: [/* @__PURE__ */ jsx("circle", {
22588
+ cx: "12",
22589
+ cy: "8",
22590
+ r: "4",
22591
+ stroke: "currentColor",
22592
+ strokeWidth: "2"
22593
+ }), /* @__PURE__ */ jsx("path", {
22594
+ d: "M4 20c0-4 4-6 8-6s8 2 8 6",
22595
+ stroke: "currentColor",
22596
+ strokeWidth: "2",
22597
+ strokeLinecap: "round",
22598
+ ...e
22599
+ })]
22600
+ });
22601
+ }
22528
22602
  function AddCircleIcon({ pathProps: e, ...t }) {
22529
22603
  return /* @__PURE__ */ jsx(Icon, {
22530
22604
  viewBox: "0 0 24 24",
@@ -22568,6 +22642,47 @@ function ArrowIcon({ direction: e = "down", className: t, pathProps: n, ...r })
22568
22642
  })
22569
22643
  });
22570
22644
  }
22645
+ function BuildingIcon({ pathProps: e, ...t }) {
22646
+ return /* @__PURE__ */ jsx(Icon, {
22647
+ viewBox: "0 0 24 24",
22648
+ ...t,
22649
+ children: /* @__PURE__ */ jsx("path", {
22650
+ d: "M5 21V4C5 3.45 5.196 2.979 5.588 2.587C5.98 2.195 6.45 1.999 7 1.999H13C13.55 1.999 14.021 2.195 14.413 2.587C14.805 2.979 15.001 3.45 15.001 4V21H19.001V10H17.001V8H19.001C19.55 8 20.021 8.196 20.413 8.588C20.805 8.98 21.001 9.45 21.001 10V21H23.001V23H1V21H3V4C3 3.45 3.196 2.979 3.588 2.587C3.98 2.195 4.45 1.999 5 1.999V21ZM7 8H9V6H7V8ZM7 12H9V10H7V12ZM7 16H9V14H7V16ZM11 8H13V6H11V8ZM11 12H13V10H11V12ZM11 16H13V14H11V16Z",
22651
+ fill: "currentColor",
22652
+ ...e
22653
+ })
22654
+ });
22655
+ }
22656
+ function BuildingOutlineIcon({ pathProps: e, ...t }) {
22657
+ return /* @__PURE__ */ jsxs(Icon, {
22658
+ viewBox: "0 0 24 24",
22659
+ ...t,
22660
+ children: [
22661
+ /* @__PURE__ */ jsx("rect", {
22662
+ x: "4",
22663
+ y: "3",
22664
+ width: "16",
22665
+ height: "18",
22666
+ rx: "1",
22667
+ stroke: "currentColor",
22668
+ strokeWidth: "2"
22669
+ }),
22670
+ /* @__PURE__ */ jsx("path", {
22671
+ d: "M9 21v-4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4",
22672
+ stroke: "currentColor",
22673
+ strokeWidth: "2",
22674
+ ...e
22675
+ }),
22676
+ /* @__PURE__ */ jsx("path", {
22677
+ d: "M8 7h.01M12 7h.01M16 7h.01M8 11h.01M12 11h.01M16 11h.01",
22678
+ stroke: "currentColor",
22679
+ strokeWidth: "2",
22680
+ strokeLinecap: "round",
22681
+ ...e
22682
+ })
22683
+ ]
22684
+ });
22685
+ }
22571
22686
  function CalendarIcon({ pathProps: e, ...t }) {
22572
22687
  return /* @__PURE__ */ jsx(Icon, {
22573
22688
  viewBox: "0 0 24 24",
@@ -22590,6 +22705,20 @@ function CheckSquareIcon({ pathProps: e, ...t }) {
22590
22705
  })
22591
22706
  });
22592
22707
  }
22708
+ function CloseBoldIcon({ pathProps: e, ...t }) {
22709
+ return /* @__PURE__ */ jsx(Icon, {
22710
+ viewBox: "0 0 16 16",
22711
+ ...t,
22712
+ children: /* @__PURE__ */ jsx("path", {
22713
+ d: "M12 4L4 12M4 4L12 12",
22714
+ stroke: "currentColor",
22715
+ strokeWidth: "2",
22716
+ strokeLinecap: "round",
22717
+ strokeLinejoin: "round",
22718
+ ...e
22719
+ })
22720
+ });
22721
+ }
22593
22722
  function CloseIcon({ pathProps: e, ...t }) {
22594
22723
  return /* @__PURE__ */ jsx(Icon, {
22595
22724
  viewBox: "0 0 24 24",
@@ -23003,36 +23132,36 @@ function OnboardingEngine({ steps: e, context: t, storageKey: n, isEnabled: r =
23003
23132
  e,
23004
23133
  o,
23005
23134
  t
23006
- ]), g = h?.step ?? null, $o = h?.index ?? null, es = useCallback((e) => {
23135
+ ]), O = h?.step ?? null, Gs = h?.index ?? null, Ks = useCallback((e) => {
23007
23136
  c((t) => {
23008
23137
  if (t.has(e)) return t;
23009
23138
  let n = new Set(t);
23010
23139
  return n.add(e), n;
23011
23140
  });
23012
- }, []), A = useCallback(() => {
23141
+ }, []), R = useCallback(() => {
23013
23142
  c((n) => {
23014
23143
  let r = findActiveStep(e, n, t);
23015
23144
  if (r == null || n.has(r.step.id)) return n;
23016
23145
  let i = new Set(n);
23017
23146
  return i.add(r.step.id), i;
23018
23147
  });
23019
- }, [e, t]), R = useCallback(() => {
23148
+ }, [e, t]), B = useCallback(() => {
23020
23149
  c(new Set(e.map((e) => e.id)));
23021
23150
  }, [e]);
23022
23151
  return /* @__PURE__ */ jsx(Fragment$1, { children: i({
23023
23152
  context: t,
23024
- currentStep: g,
23025
- currentStepIndex: $o,
23153
+ currentStep: O,
23154
+ currentStepIndex: Gs,
23026
23155
  dismissedStepIds: o,
23027
23156
  actions: useMemo(() => ({
23028
- dismissCurrentStep: A,
23029
- dismissStep: es,
23030
- skipAll: R,
23031
- close: R
23157
+ dismissCurrentStep: R,
23158
+ dismissStep: Ks,
23159
+ skipAll: B,
23160
+ close: B
23032
23161
  }), [
23033
- A,
23034
- es,
23035
- R
23162
+ R,
23163
+ Ks,
23164
+ B
23036
23165
  ])
23037
23166
  }) });
23038
23167
  }
@@ -23204,7 +23333,7 @@ function useToastTimers(e, t) {
23204
23333
  isPaused: !0
23205
23334
  });
23206
23335
  }), a.current &&= (clearInterval(a.current), null);
23207
- }, []), g = useCallback(() => {
23336
+ }, []), O = useCallback(() => {
23208
23337
  o.current && (o.current = !1, i.current.forEach((t, n) => {
23209
23338
  if (t.isPaused && t.remainingTime > 0) {
23210
23339
  let r = e.find((e) => e.id === n);
@@ -23215,7 +23344,7 @@ function useToastTimers(e, t) {
23215
23344
  e,
23216
23345
  u,
23217
23346
  f
23218
- ]), O = useCallback((e) => {
23347
+ ]), A = useCallback((e) => {
23219
23348
  i.current.delete(e), r((t) => {
23220
23349
  let n = new Map(t);
23221
23350
  return n.delete(e), n;
@@ -23236,22 +23365,22 @@ function useToastTimers(e, t) {
23236
23365
  }, []), {
23237
23366
  remainingTimes: n,
23238
23367
  pauseAll: p,
23239
- resumeAll: g,
23240
- cleanupTimer: O
23368
+ resumeAll: O,
23369
+ cleanupTimer: A
23241
23370
  };
23242
23371
  }
23243
23372
  function Toaster() {
23244
23373
  let [e, t] = useState([]), [n, r] = useState([]), i = useRef(/* @__PURE__ */ new Set()), a = useRef(/* @__PURE__ */ new Map()), o = useRef([]), { remainingTimes: c, pauseAll: u, resumeAll: f, cleanupTimer: p } = useToastTimers(e, a);
23245
23374
  useEffect(() => toastStore.subscribe(t), []);
23246
- let A = useSyncExternalStore(subscribeNoop$1, getClientSnapshot$1, getServerSnapshot$1), R = useCallback((e) => {
23375
+ let R = useSyncExternalStore(subscribeNoop$1, getClientSnapshot$1, getServerSnapshot$1), B = useCallback((e) => {
23247
23376
  e.callbacks?.onOpen?.();
23248
- }, []), ts = useCallback((e, t) => {
23377
+ }, []), V = useCallback((e, t) => {
23249
23378
  t === "manual" ? e.callbacks?.onClose?.() : (t === "timeout" || t === "replaced") && e.callbacks?.onAutoClose?.(), e.callbacks?.onDismiss?.(t);
23250
23379
  }, []);
23251
23380
  useEffect(() => {
23252
23381
  let t = new Set(e.map((e) => e.id)), n = new Map(e.map((e) => [e.id, e])), s = i.current;
23253
23382
  o.current.filter((e) => !t.has(e.id) && e.animationState !== "exiting").forEach((e) => {
23254
- ts(e, a.current.get(e.id) ?? toastStore.consumePendingDismissReason(e.id) ?? "timeout"), a.current.delete(e.id);
23383
+ V(e, a.current.get(e.id) ?? toastStore.consumePendingDismissReason(e.id) ?? "timeout"), a.current.delete(e.id);
23255
23384
  }), r((r) => {
23256
23385
  let i = r.map((e) => {
23257
23386
  let t = n.get(e.id);
@@ -23260,7 +23389,7 @@ function Toaster() {
23260
23389
  content: t.content,
23261
23390
  duration: t.duration
23262
23391
  } : e;
23263
- }).map((e) => markAsExiting(e, !t.has(e.id))).map(updateAnimationState), a = [...e.filter((e) => !s.has(e.id)).map((e) => (R(e), {
23392
+ }).map((e) => markAsExiting(e, !t.has(e.id))).map(updateAnimationState), a = [...e.filter((e) => !s.has(e.id)).map((e) => (B(e), {
23264
23393
  ...e,
23265
23394
  animationState: "entering"
23266
23395
  })), ...i];
@@ -23268,20 +23397,20 @@ function Toaster() {
23268
23397
  }), i.current = t;
23269
23398
  }, [
23270
23399
  e,
23271
- R,
23272
- ts
23400
+ B,
23401
+ V
23273
23402
  ]);
23274
- let ns = useCallback((e) => {
23403
+ let qs = useCallback((e) => {
23275
23404
  r((t) => {
23276
23405
  let n = t.filter((t) => t.id !== e);
23277
23406
  return o.current = n, n;
23278
23407
  }), p(e), toastStore.cleanup(e);
23279
- }, [p]), rs = useCallback((e) => {
23408
+ }, [p]), Js = useCallback((e) => {
23280
23409
  a.current.set(e, "manual"), toastStore.remove(e);
23281
23410
  }, []);
23282
- if (!A) return null;
23283
- let is = groupByPosition(n);
23284
- return createPortal(/* @__PURE__ */ jsx(Fragment$1, { children: Object.entries(is).map(([e, t]) => {
23411
+ if (!R) return null;
23412
+ let Ys = groupByPosition(n);
23413
+ return createPortal(/* @__PURE__ */ jsx(Fragment$1, { children: Object.entries(Ys).map(([e, t]) => {
23285
23414
  let n = t.filter((e) => e.singleSlot), r = t.filter((e) => !e.singleSlot), i = n.length > 0 ? /* @__PURE__ */ jsx("div", {
23286
23415
  className: cn("isolate inline-grid max-w-[min(100vw,100%)] grid-cols-1 grid-rows-1", SINGLE_SLOT_PLACE[e]),
23287
23416
  children: n.map((e, t) => /* @__PURE__ */ jsx("div", {
@@ -23290,8 +23419,8 @@ function Toaster() {
23290
23419
  children: /* @__PURE__ */ jsx(ToastWrapper, {
23291
23420
  toast: e,
23292
23421
  remainingTime: c.get(e.id) ?? e.duration,
23293
- onExitComplete: ns,
23294
- onClose: rs,
23422
+ onExitComplete: qs,
23423
+ onClose: Js,
23295
23424
  onHoverStart: u,
23296
23425
  onHoverEnd: f
23297
23426
  })
@@ -23299,8 +23428,8 @@ function Toaster() {
23299
23428
  }) : null, a = r.map((e) => /* @__PURE__ */ jsx(ToastWrapper, {
23300
23429
  toast: e,
23301
23430
  remainingTime: c.get(e.id) ?? e.duration,
23302
- onExitComplete: ns,
23303
- onClose: rs,
23431
+ onExitComplete: qs,
23432
+ onClose: Js,
23304
23433
  onHoverStart: u,
23305
23434
  onHoverEnd: f
23306
23435
  }, e.id));
@@ -23479,6 +23608,18 @@ function StatusBadge({ className: e, label: t, status: n, onAction: r, density:
23479
23608
  onMouseLeave: s ? () => o(!1) : void 0
23480
23609
  });
23481
23610
  }
23611
+ function BetaResizeHandle({ onPointerDown: e, onKeyDown: t, isResizing: n = !1, className: r }) {
23612
+ return /* @__PURE__ */ jsx("div", {
23613
+ role: "separator",
23614
+ "aria-orientation": "vertical",
23615
+ "aria-label": "Resize panel",
23616
+ tabIndex: 0,
23617
+ onPointerDown: e,
23618
+ onKeyDown: t,
23619
+ className: cn("flex w-2 shrink-0 cursor-col-resize items-center justify-center transition-colors max-md:hidden", n ? "bg-primary-500/20" : "bg-neutral-100 hover:bg-primary-500/20", r),
23620
+ children: /* @__PURE__ */ jsx("div", { className: cn("h-8 w-px rounded-full transition-colors", n ? "bg-primary-500" : "bg-resize-handle-grip") })
23621
+ });
23622
+ }
23482
23623
  function BulkActionsSkeleton({ className: e }) {
23483
23624
  return /* @__PURE__ */ jsxs("div", {
23484
23625
  className: cn("gap-4 grid grid-cols-[minmax(0,1fr)_auto_auto] items-center", e),
@@ -23515,10 +23656,10 @@ function BulkActions({ totalItems: e = 0, selectedItems: t = 0, onSelectAll: n,
23515
23656
  let s = e > 0, c = s && t === e, l = s && t > 0 && t < e, u = c ? `All (${e})` : l ? `${t}/${e} selected` : `Select all (${e})`, [f, p] = useState(i ?? "normal"), h = () => {
23516
23657
  n(!c);
23517
23658
  };
23518
- function g(e) {
23659
+ function O(e) {
23519
23660
  p(e), a?.(e);
23520
23661
  }
23521
- let es = {
23662
+ let Ks = {
23522
23663
  fire: [{
23523
23664
  id: "fire",
23524
23665
  tooltip: "Mark as fire",
@@ -23570,7 +23711,7 @@ function BulkActions({ totalItems: e = 0, selectedItems: t = 0, onSelectAll: n,
23570
23711
  }),
23571
23712
  onClick: r.read.off
23572
23713
  }]
23573
- }, A = [{
23714
+ }, R = [{
23574
23715
  value: "normal",
23575
23716
  tooltip: "Normal density",
23576
23717
  icon: /* @__PURE__ */ jsx(NormalDensityIcon, { size: 20 })
@@ -23599,7 +23740,7 @@ function BulkActions({ totalItems: e = 0, selectedItems: t = 0, onSelectAll: n,
23599
23740
  }),
23600
23741
  /* @__PURE__ */ jsx("div", {
23601
23742
  className: "flex items-center divide-x divide-neutral-400-variant-1",
23602
- children: t > 0 && /* @__PURE__ */ jsx(Fragment$1, { children: Object.entries(es).map(([e, t]) => /* @__PURE__ */ jsx("div", {
23743
+ children: t > 0 && /* @__PURE__ */ jsx(Fragment$1, { children: Object.entries(Ks).map(([e, t]) => /* @__PURE__ */ jsx("div", {
23603
23744
  className: "gap-2 px-1 flex items-center",
23604
23745
  children: t.map((e) => /* @__PURE__ */ jsx(InfoTooltip, {
23605
23746
  content: e.tooltip,
@@ -23614,13 +23755,13 @@ function BulkActions({ totalItems: e = 0, selectedItems: t = 0, onSelectAll: n,
23614
23755
  }),
23615
23756
  /* @__PURE__ */ jsx("div", {
23616
23757
  className: "gap-2 flex items-center",
23617
- children: A.map(({ value: e, tooltip: t, icon: n }) => {
23758
+ children: R.map(({ value: e, tooltip: t, icon: n }) => {
23618
23759
  let r = f === e;
23619
23760
  return /* @__PURE__ */ jsx(InfoTooltip, {
23620
23761
  content: t,
23621
23762
  children: /* @__PURE__ */ jsx(IconButton, {
23622
23763
  className: cn("h-7 w-7 p-0 text-neutral-900", r && "bg-white-variant-4"),
23623
- onClick: () => g(e),
23764
+ onClick: () => O(e),
23624
23765
  icon: n,
23625
23766
  "aria-pressed": r
23626
23767
  })
@@ -23871,20 +24012,20 @@ function ToggleControlPortal({ isPressed: e, isPortalHovered: t, portalPosition:
23871
24012
  })
23872
24013
  }), document.body);
23873
24014
  }
23874
- function IconCountButton({ icon: e, label: t, count: n, variant: r = "primary", orientation: i = "vertical", status: a = "active", alwaysShowCount: o = !1, showToggleControl: s = !1, pressed: c, defaultPressed: l = !1, onPressedChange: u, classNames: p, ...g }) {
23875
- let O = iconCountButtonStyles({
24015
+ function IconCountButton({ icon: e, label: t, count: n, variant: r = "primary", orientation: i = "vertical", status: a = "active", alwaysShowCount: o = !1, showToggleControl: s = !1, pressed: c, defaultPressed: l = !1, onPressedChange: u, classNames: p, ...O }) {
24016
+ let A = iconCountButtonStyles({
23876
24017
  variant: r,
23877
24018
  orientation: i,
23878
24019
  status: a
23879
- }), es = useRef(null), [A, R] = useState(!1), [ts, ns] = useState(!1), [rs, is] = useState(l), [as, B] = useState(null), os = c ?? rs, ss = s && (A || ts || os), cs = typeof n == "number" && n > 0 && (o || a === "active");
23880
- function ls(e) {
23881
- c === void 0 && is(e), u?.(e);
24020
+ }), Ks = useRef(null), [R, B] = useState(!1), [V, qs] = useState(!1), [Js, Ys] = useState(l), [Xs, H] = useState(null), Zs = c ?? Js, Qs = s && (R || V || Zs), $s = typeof n == "number" && n > 0 && (o || a === "active");
24021
+ function ec(e) {
24022
+ c === void 0 && Ys(e), u?.(e);
23882
24023
  }
23883
24024
  return useLayoutEffect(() => {
23884
- if (!ss || !es.current) return;
24025
+ if (!Qs || !Ks.current) return;
23885
24026
  function e() {
23886
- let e = es.current?.getBoundingClientRect();
23887
- e && B({
24027
+ let e = Ks.current?.getBoundingClientRect();
24028
+ e && H({
23888
24029
  top: e.top - 8,
23889
24030
  left: e.right - 12
23890
24031
  });
@@ -23892,30 +24033,30 @@ function IconCountButton({ icon: e, label: t, count: n, variant: r = "primary",
23892
24033
  return e(), window.addEventListener("resize", e), window.addEventListener("scroll", e, !0), () => {
23893
24034
  window.removeEventListener("resize", e), window.removeEventListener("scroll", e, !0);
23894
24035
  };
23895
- }, [ss]), /* @__PURE__ */ jsxs(Button, {
23896
- ...g,
23897
- className: cn(O.root(), p?.root),
23898
- onMouseEnter: () => R(!0),
23899
- onMouseLeave: () => R(!1),
24036
+ }, [Qs]), /* @__PURE__ */ jsxs(Button, {
24037
+ ...O,
24038
+ className: cn(A.root(), p?.root),
24039
+ onMouseEnter: () => B(!0),
24040
+ onMouseLeave: () => B(!1),
23900
24041
  children: [/* @__PURE__ */ jsxs("div", {
23901
24042
  className: "relative",
23902
24043
  children: [/* @__PURE__ */ jsx("div", {
23903
- ref: es,
23904
- className: cn(O.bubble(), p?.bubble),
23905
- children: renderIcon(e, O.icon())
23906
- }), ss && as && typeof document < "u" && ToggleControlPortal({
23907
- isPressed: os,
23908
- isPortalHovered: ts,
23909
- portalPosition: as,
23910
- onMouseEnter: () => ns(!0),
23911
- onMouseLeave: () => ns(!1),
23912
- onToggle: () => ls(!os)
24044
+ ref: Ks,
24045
+ className: cn(A.bubble(), p?.bubble),
24046
+ children: renderIcon(e, A.icon())
24047
+ }), Qs && Xs && typeof document < "u" && ToggleControlPortal({
24048
+ isPressed: Zs,
24049
+ isPortalHovered: V,
24050
+ portalPosition: Xs,
24051
+ onMouseEnter: () => qs(!0),
24052
+ onMouseLeave: () => qs(!1),
24053
+ onToggle: () => ec(!Zs)
23913
24054
  })]
23914
24055
  }), /* @__PURE__ */ jsxs("div", {
23915
- className: cn(O.label(), p?.label),
23916
- children: [/* @__PURE__ */ jsx("span", { children: t }), cs && /* @__PURE__ */ jsxs("span", {
24056
+ className: cn(A.label(), p?.label),
24057
+ children: [/* @__PURE__ */ jsx("span", { children: t }), $s && /* @__PURE__ */ jsxs("span", {
23917
24058
  "aria-label": `${n} items`,
23918
- className: cn(O.count(), p?.count),
24059
+ className: cn(A.count(), p?.count),
23919
24060
  children: [
23920
24061
  "(",
23921
24062
  formatCount(n),
@@ -23947,7 +24088,7 @@ function ActionMenu({ trigger: e, children: t, className: n, ...r }) {
23947
24088
  });
23948
24089
  }
23949
24090
  function CalendarPanel({ mode: e, selectedDate: t, selectedRange: n, onDateSelect: r, onRangeSelect: i }) {
23950
- let { close: a } = useDropdown(), o = useMemo(() => /* @__PURE__ */ new Date(), []), [s, c] = useState(null), u = useRef(t), f = useRef(n), [g, O] = useState(() => {
24091
+ let { close: a } = useDropdown(), o = useMemo(() => /* @__PURE__ */ new Date(), []), [s, c] = useState(null), u = useRef(t), f = useRef(n), [O, A] = useState(() => {
23951
24092
  let r = e === "single" ? t ?? o : n.startDate ?? n.endDate ?? o;
23952
24093
  return {
23953
24094
  year: r.getFullYear(),
@@ -23956,13 +24097,13 @@ function CalendarPanel({ mode: e, selectedDate: t, selectedRange: n, onDateSelec
23956
24097
  });
23957
24098
  useEffect(() => {
23958
24099
  (e === "single" && t && (!u.current || t.getTime() !== u.current.getTime()) || e === "range" && (n.startDate?.getTime() !== f.current.startDate?.getTime() || n.endDate?.getTime() !== f.current.endDate?.getTime())) && queueMicrotask(() => {
23959
- if (e === "single" && t) O({
24100
+ if (e === "single" && t) A({
23960
24101
  year: t.getFullYear(),
23961
24102
  month: t.getMonth()
23962
24103
  });
23963
24104
  else if (e === "range") {
23964
24105
  let e = n.startDate ?? n.endDate;
23965
- e && O({
24106
+ e && A({
23966
24107
  year: e.getFullYear(),
23967
24108
  month: e.getMonth()
23968
24109
  });
@@ -23973,10 +24114,10 @@ function CalendarPanel({ mode: e, selectedDate: t, selectedRange: n, onDateSelec
23973
24114
  t,
23974
24115
  n
23975
24116
  ]);
23976
- let es = useMemo(() => generateCalendarDays(g.year, g.month), [g.year, g.month]);
23977
- function A(t) {
24117
+ let Ks = useMemo(() => generateCalendarDays(O.year, O.month), [O.year, O.month]);
24118
+ function R(t) {
23978
24119
  let o = t.getMonth(), s = t.getFullYear();
23979
- if ((o !== g.month || s !== g.year) && O({
24120
+ if ((o !== O.month || s !== O.year) && A({
23980
24121
  year: s,
23981
24122
  month: o
23982
24123
  }), e === "single") r(t), a();
@@ -23991,8 +24132,8 @@ function CalendarPanel({ mode: e, selectedDate: t, selectedRange: n, onDateSelec
23991
24132
  }), a());
23992
24133
  }
23993
24134
  }
23994
- function R() {
23995
- O((e) => e.month === 0 ? {
24135
+ function B() {
24136
+ A((e) => e.month === 0 ? {
23996
24137
  year: e.year - 1,
23997
24138
  month: 11
23998
24139
  } : {
@@ -24000,8 +24141,8 @@ function CalendarPanel({ mode: e, selectedDate: t, selectedRange: n, onDateSelec
24000
24141
  month: e.month - 1
24001
24142
  });
24002
24143
  }
24003
- function ts() {
24004
- O((e) => e.month === 11 ? {
24144
+ function V() {
24145
+ A((e) => e.month === 11 ? {
24005
24146
  year: e.year + 1,
24006
24147
  month: 0
24007
24148
  } : {
@@ -24009,7 +24150,7 @@ function CalendarPanel({ mode: e, selectedDate: t, selectedRange: n, onDateSelec
24009
24150
  month: e.month + 1
24010
24151
  });
24011
24152
  }
24012
- let ns = getWeekdays();
24153
+ let qs = getWeekdays();
24013
24154
  return /* @__PURE__ */ jsxs("div", {
24014
24155
  className: "mt-1 rounded-lg p-2 shadow-lg w-fit border border-neutral-400 bg-white",
24015
24156
  children: [
@@ -24021,16 +24162,16 @@ function CalendarPanel({ mode: e, selectedDate: t, selectedRange: n, onDateSelec
24021
24162
  direction: "left",
24022
24163
  size: 20
24023
24164
  }),
24024
- onClick: R,
24165
+ onClick: B,
24025
24166
  className: "hover:opacity-60",
24026
24167
  "aria-label": "Previous month"
24027
24168
  }),
24028
24169
  /* @__PURE__ */ jsxs("div", {
24029
24170
  className: "font-bold text-[10px] text-neutral-900",
24030
24171
  children: [
24031
- getMonthName(g.month),
24172
+ getMonthName(O.month),
24032
24173
  " ",
24033
- g.year
24174
+ O.year
24034
24175
  ]
24035
24176
  }),
24036
24177
  /* @__PURE__ */ jsx(IconButton, {
@@ -24038,7 +24179,7 @@ function CalendarPanel({ mode: e, selectedDate: t, selectedRange: n, onDateSelec
24038
24179
  direction: "right",
24039
24180
  size: 20
24040
24181
  }),
24041
- onClick: ts,
24182
+ onClick: V,
24042
24183
  className: "hover:opacity-60",
24043
24184
  "aria-label": "Next month"
24044
24185
  })
@@ -24046,20 +24187,20 @@ function CalendarPanel({ mode: e, selectedDate: t, selectedRange: n, onDateSelec
24046
24187
  }),
24047
24188
  /* @__PURE__ */ jsx("div", {
24048
24189
  className: "mb-2 grid grid-cols-7",
24049
- children: ns.map((e) => /* @__PURE__ */ jsx("div", {
24190
+ children: qs.map((e) => /* @__PURE__ */ jsx("div", {
24050
24191
  className: "p-0.5 font-bold flex items-center justify-center text-[9px] text-neutral-900",
24051
24192
  children: e
24052
24193
  }, e))
24053
24194
  }),
24054
24195
  /* @__PURE__ */ jsx("div", {
24055
24196
  className: "grid grid-cols-7",
24056
- children: es.map(({ day: r, date: i, isCurrentMonth: a }) => {
24057
- let o = isToday(i), l = e === "single" && t && isSameDay(i, t), { startDate: u, endDate: f } = n, p = u && isSameDay(i, u), h = f && isSameDay(i, f), Zo = u, g = s;
24058
- e === "range" && u && !f && s && !isDateBefore(s, u) ? (Zo = u, g = s) : (Zo = null, g = null);
24059
- let O = e === "range" && (isDateInRange(i, u, f) || isDateInRange(i, Zo, g)), $o = l || p || h;
24197
+ children: Ks.map(({ day: r, date: i, isCurrentMonth: a }) => {
24198
+ let o = isToday(i), l = e === "single" && t && isSameDay(i, t), { startDate: u, endDate: f } = n, p = u && isSameDay(i, u), h = f && isSameDay(i, f), g = u, O = s;
24199
+ e === "range" && u && !f && s && !isDateBefore(s, u) ? (g = u, O = s) : (g = null, O = null);
24200
+ let A = e === "range" && (isDateInRange(i, u, f) || isDateInRange(i, g, O)), Gs = l || p || h;
24060
24201
  return /* @__PURE__ */ jsx(Button, {
24061
24202
  type: "button",
24062
- onClick: () => A(i),
24203
+ onClick: () => R(i),
24063
24204
  onMouseEnter: () => {
24064
24205
  e === "range" && u && !f && !isDateBefore(i, u) && c(i);
24065
24206
  },
@@ -24068,9 +24209,9 @@ function CalendarPanel({ mode: e, selectedDate: t, selectedRange: n, onDateSelec
24068
24209
  },
24069
24210
  className: "p-0.5",
24070
24211
  "aria-label": `Select ${formatDate(i)}`,
24071
- "aria-selected": $o || void 0,
24212
+ "aria-selected": Gs || void 0,
24072
24213
  children: /* @__PURE__ */ jsx("div", {
24073
- className: cn("rounded flex h-[26px] w-[26px] items-center justify-center text-[9px] transition-colors", $o && "font-semibold bg-primary-500 text-white-variant-1 hover:bg-primary-500", O && !$o && "font-normal bg-primary-500/20 text-neutral-900 hover:bg-primary-500/30", o && !$o && !O && "font-bold border border-primary-500 bg-primary-500/15 hover:bg-primary-500 hover:text-white", !$o && !O && (a ? "text-neutral-900 hover:bg-neutral-300" : "text-neutral-600 hover:bg-neutral-200")),
24214
+ className: cn("rounded flex h-[26px] w-[26px] items-center justify-center text-[9px] transition-colors", Gs && "font-semibold bg-primary-500 text-white-variant-1 hover:bg-primary-500", A && !Gs && "font-normal bg-primary-500/20 text-neutral-900 hover:bg-primary-500/30", o && !Gs && !A && "font-bold border border-primary-500 bg-primary-500/15 hover:bg-primary-500 hover:text-white", !Gs && !A && (a ? "text-neutral-900 hover:bg-neutral-300" : "text-neutral-600 hover:bg-neutral-200")),
24074
24215
  children: r
24075
24216
  })
24076
24217
  }, `${i.getFullYear()}-${i.getMonth()}-${r}`);
@@ -24135,11 +24276,11 @@ function DatePicker({ mode: e = "single", value: t, defaultValue: n, onChange: r
24135
24276
  function h(t) {
24136
24277
  e === "single" && (u || s(t), r?.(t));
24137
24278
  }
24138
- function g(t) {
24279
+ function O(t) {
24139
24280
  e === "range" && (u || l(t), r?.(t));
24140
24281
  }
24141
- function $o() {
24142
- e === "single" ? h(null) : g({
24282
+ function Gs() {
24283
+ e === "single" ? h(null) : O({
24143
24284
  startDate: null,
24144
24285
  endDate: null
24145
24286
  });
@@ -24149,7 +24290,7 @@ function DatePicker({ mode: e = "single", value: t, defaultValue: n, onChange: r
24149
24290
  displayText: e === "single" ? formatDate(f) : formatDateRange(p.startDate, p.endDate),
24150
24291
  disabled: i,
24151
24292
  className: a,
24152
- onClear: $o
24293
+ onClear: Gs
24153
24294
  }),
24154
24295
  disabled: i,
24155
24296
  children: /* @__PURE__ */ jsx(CalendarPanel, {
@@ -24157,7 +24298,7 @@ function DatePicker({ mode: e = "single", value: t, defaultValue: n, onChange: r
24157
24298
  selectedDate: f,
24158
24299
  selectedRange: p,
24159
24300
  onDateSelect: h,
24160
- onRangeSelect: g
24301
+ onRangeSelect: O
24161
24302
  })
24162
24303
  }) });
24163
24304
  }
@@ -24363,18 +24504,18 @@ function EventActionsList({ actions: e, className: t }) {
24363
24504
  }) })
24364
24505
  });
24365
24506
  }
24366
- function EventCard({ icon: e, service: t, sender: n, title: r, content: i, timestamp: a, timestampTooltip: o, workspace: s, read: c = !1, selected: l = !1, onSelect: u, checked: f = !1, onCheckedChange: p, statusBadges: h = {}, actions: Zo = {}, density: g = "normal", className: O, style: es, isPriority: A, isDone: R }) {
24507
+ function EventCard({ icon: e, service: t, sender: n, title: r, content: i, timestamp: a, timestampTooltip: o, workspace: s, read: c = !1, selected: l = !1, onSelect: u, checked: f = !1, onCheckedChange: p, statusBadges: h = {}, actions: g = {}, density: O = "normal", className: A, style: Ks, isPriority: R, isDone: B }) {
24367
24508
  return /* @__PURE__ */ jsx(Card, {
24368
24509
  as: Pressable,
24369
24510
  onPress: u,
24370
24511
  className: cn(eventCardStyles({
24371
- tone: A ? "priority" : R ? "done" : "default",
24512
+ tone: R ? "priority" : B ? "done" : "default",
24372
24513
  state: l ? "selected" : c ? "read" : "unread",
24373
- density: g
24374
- }), O),
24375
- style: es,
24514
+ density: O
24515
+ }), A),
24516
+ style: Ks,
24376
24517
  "data-service": t,
24377
- children: g === "normal" ? /* @__PURE__ */ jsxs(CardLayout, {
24518
+ children: O === "normal" ? /* @__PURE__ */ jsxs(CardLayout, {
24378
24519
  className: "gap-x-2 gap-y-1",
24379
24520
  children: [
24380
24521
  /* @__PURE__ */ jsx(CardSidebar, { children: /* @__PURE__ */ jsx(EventCheckbox, {
@@ -24410,7 +24551,7 @@ function EventCard({ icon: e, service: t, sender: n, title: r, content: i, times
24410
24551
  /* @__PURE__ */ jsxs(CardFooter, {
24411
24552
  className: "mt-3 gap-1 grid grid-cols-[minmax(0,1fr)_auto] items-center",
24412
24553
  children: [/* @__PURE__ */ jsx(EventStatusesList, { statusBadges: h }), /* @__PURE__ */ jsx(EventActionsList, {
24413
- actions: Zo,
24554
+ actions: g,
24414
24555
  className: "col-start-2 justify-self-end"
24415
24556
  })]
24416
24557
  })
@@ -24429,7 +24570,7 @@ function EventCard({ icon: e, service: t, sender: n, title: r, content: i, times
24429
24570
  e,
24430
24571
  /* @__PURE__ */ jsx(EventStatusesList, {
24431
24572
  statusBadges: h,
24432
- density: g
24573
+ density: O
24433
24574
  }),
24434
24575
  /* @__PURE__ */ jsxs("div", {
24435
24576
  className: cn("min-w-0 gap-2 text-sm font-bold flex items-center whitespace-nowrap text-neutral-900", c && "font-medium"),
@@ -24449,7 +24590,7 @@ function EventCard({ icon: e, service: t, sender: n, title: r, content: i, times
24449
24590
  ]
24450
24591
  }),
24451
24592
  /* @__PURE__ */ jsx("div", { className: "flex-1" }),
24452
- /* @__PURE__ */ jsx(EventActionsList, { actions: Zo }),
24593
+ /* @__PURE__ */ jsx(EventActionsList, { actions: g }),
24453
24594
  /* @__PURE__ */ jsx(InfoTooltip, {
24454
24595
  content: o,
24455
24596
  children: /* @__PURE__ */ jsx("span", {
@@ -24694,11 +24835,11 @@ function EventSummaryFireButton({ active: e, onClick: t }) {
24694
24835
  }) });
24695
24836
  }
24696
24837
  function EventSummaryCard({ icon: e, service: t, sender: n, title: r, content: i, timestamp: a, workspace: o, selected: s = !1, onSelect: c, actions: l, className: u }) {
24697
- let { fire: f, insight: p, link: h } = l, Zo = p?.label ?? null;
24838
+ let { fire: f, insight: p, link: h } = l, g = p?.label ?? null;
24698
24839
  return /* @__PURE__ */ jsxs(Pressable, {
24699
24840
  onPress: c,
24700
24841
  className: cn(eventSummaryCardStyles({
24701
- tone: f.active ? "priority" : insightLabelVisible(Zo) ? "insight" : "default",
24842
+ tone: f.active ? "priority" : insightLabelVisible(g) ? "insight" : "default",
24702
24843
  state: s ? "selected" : "normal"
24703
24844
  }), EVENT_SUMMARY_CARD_HEIGHT_SIZE.style, u),
24704
24845
  "data-service": t,
@@ -24722,7 +24863,7 @@ function EventSummaryCard({ icon: e, service: t, sender: n, title: r, content: i
24722
24863
  className: "text-xs leading-tight font-semibold tracking-wide flex-1 text-right whitespace-nowrap text-neutral-800",
24723
24864
  children: a
24724
24865
  }),
24725
- insightLabelVisible(Zo) && /* @__PURE__ */ jsx(EventSummaryInsightChip, { label: Zo }),
24866
+ insightLabelVisible(g) && /* @__PURE__ */ jsx(EventSummaryInsightChip, { label: g }),
24726
24867
  f.onClick && /* @__PURE__ */ jsx(EventSummaryFireButton, {
24727
24868
  active: f.active,
24728
24869
  onClick: f.onClick
@@ -24754,9 +24895,9 @@ function EventSummaryCard({ icon: e, service: t, sender: n, title: r, content: i
24754
24895
  ]
24755
24896
  });
24756
24897
  }
24757
- function DateSeparator({ timestamp: e }) {
24898
+ function DateSeparator({ timestamp: e, mode: t }) {
24758
24899
  return /* @__PURE__ */ jsxs("div", {
24759
- className: "gap-4 flex items-center",
24900
+ className: cn("gap-4 flex items-center px-4 py-2 -mx-4", t === "insight" && "bg-primary-light border-l-[3px] border-primary-500", t === "fire" && "bg-tertiary-50-alpha-50 border-l-[3px] border-tertiary-500"),
24760
24901
  children: [
24761
24902
  /* @__PURE__ */ jsx("div", { className: "h-px flex-1 bg-neutral-300-variant-2" }),
24762
24903
  /* @__PURE__ */ jsx("span", {
@@ -24972,7 +25113,10 @@ function PriorityGroup({ group: e, children: t, onPreviousPriority: n, onNextPri
24972
25113
  function MessageGroup({ group: e, onPreviousPriority: t, onNextPriority: n }) {
24973
25114
  return /* @__PURE__ */ jsxs("div", {
24974
25115
  className: "gap-4 flex flex-col",
24975
- children: [/* @__PURE__ */ jsx(DateSeparator, { timestamp: e.timestamp }), /* @__PURE__ */ jsx(PriorityGroup, {
25116
+ children: [/* @__PURE__ */ jsx(DateSeparator, {
25117
+ timestamp: e.timestamp,
25118
+ mode: e.separatorMode
25119
+ }), /* @__PURE__ */ jsx(PriorityGroup, {
24976
25120
  group: e,
24977
25121
  onPreviousPriority: t,
24978
25122
  onNextPriority: n,
@@ -24985,13 +25129,22 @@ function MessageGroup({ group: e, onPreviousPriority: t, onNextPriority: n }) {
24985
25129
  });
24986
25130
  }
24987
25131
  function EventDetailContentMessage({ detail: { groups: e, summary: t, priorityText: n, followUpTitle: r, followUpSubtitle: i }, className: a }) {
24988
- let o = e.filter((e) => e.isPriority).length, c = e.filter((e) => !e.isPriority && e.isInsight).length, u = useRef(null), f = useRef(null), p = useRef(!1);
25132
+ let o = e.filter((e) => e.isPriority).length, c = e.filter((e) => !e.isPriority && e.isInsight), u = c.reduce((e, t) => {
25133
+ let n = t.insightBadgeId ?? t.id;
25134
+ return e.includes(n) || e.push(n), e;
25135
+ }, []), f = u.length, p = new Map(c.map((e) => {
25136
+ let t = e.insightBadgeId ?? e.id, n = u.indexOf(t);
25137
+ return [e.id, f - n];
25138
+ })), g = /* @__PURE__ */ new Set(), O = new Set(c.reduce((e, t) => {
25139
+ let n = t.insightBadgeId ?? t.id;
25140
+ return g.has(n) || (g.add(n), e.push(t.id)), e;
25141
+ }, [])), A = useRef(null), Ks = useRef(null), R = useRef(!1);
24989
25142
  useEffect(() => {
24990
- if (e.length === 0 || p.current) return;
24991
- p.current = !0;
25143
+ if (e.length === 0 || R.current) return;
25144
+ R.current = !0;
24992
25145
  let t = [...e].reverse().find((e) => e.isPriority), n = [...e].reverse().find((e) => !e.isPriority && e.isInsight), r = t ?? n;
24993
- if (r && u.current) {
24994
- let e = u.current.querySelector(`[data-group-id="${r.id}"]`);
25146
+ if (r && A.current) {
25147
+ let e = A.current.querySelector(`[data-group-id="${r.id}"]`);
24995
25148
  if (e) {
24996
25149
  e.scrollIntoView({
24997
25150
  behavior: "smooth",
@@ -25000,11 +25153,11 @@ function EventDetailContentMessage({ detail: { groups: e, summary: t, priorityTe
25000
25153
  return;
25001
25154
  }
25002
25155
  }
25003
- f.current?.scrollIntoView({ behavior: "smooth" });
25156
+ Ks.current?.scrollIntoView({ behavior: "smooth" });
25004
25157
  }, [e]);
25005
- let Zo = o, g = c, O = useCallback((t, n) => {
25006
- if (!u.current) return;
25007
- let r = Array.from(u.current.querySelectorAll("[data-group-id][class*=\"scroll-mt\"]")), i = n === "fire" ? o : c, a = r.filter((t) => {
25158
+ let B = o, V = useCallback((t, n) => {
25159
+ if (!A.current) return;
25160
+ let r = Array.from(A.current.querySelectorAll("[data-group-id][class*=\"scroll-mt\"]")), i = n === "fire" ? o : f, a = r.filter((t) => {
25008
25161
  let r = t.getAttribute("data-group-id");
25009
25162
  if (!r) return !1;
25010
25163
  let i = e.find((e) => e.id === r);
@@ -25017,7 +25170,7 @@ function EventDetailContentMessage({ detail: { groups: e, summary: t, priorityTe
25017
25170
  }, [
25018
25171
  e,
25019
25172
  o,
25020
- c
25173
+ f
25021
25174
  ]);
25022
25175
  return /* @__PURE__ */ jsx(EventDetailContentHeader, {
25023
25176
  summary: t,
@@ -25026,27 +25179,29 @@ function EventDetailContentMessage({ detail: { groups: e, summary: t, priorityTe
25026
25179
  followUpSubtitle: i,
25027
25180
  className: a,
25028
25181
  children: /* @__PURE__ */ jsxs("div", {
25029
- ref: u,
25182
+ ref: A,
25030
25183
  className: "gap-4 flex flex-col",
25031
25184
  children: [e.map((e) => {
25032
- let t = e.isPriority ? "fire" : e.isInsight ? "insight" : null, n = e.isPriority ? Zo-- : e.isInsight ? g-- : 0, r = e.isPriority ? o : e.isInsight ? c : 0, i = n && t ? () => {
25185
+ let t = e.isPriority ? "fire" : e.isInsight ? "insight" : null, n = e.isPriority ? B-- : e.isInsight ? p.get(e.id) ?? 0 : 0, r = e.isPriority ? o : e.isInsight ? f : 0, i = n && t ? () => {
25033
25186
  let e = n + 1;
25034
- e <= r && O(e, t);
25187
+ e <= r && V(e, t);
25035
25188
  } : void 0, a = n && t ? () => {
25036
25189
  let e = n - 1;
25037
- e >= 1 && O(e, t);
25038
- } : void 0;
25190
+ e >= 1 && V(e, t);
25191
+ } : void 0, s = e.isInsight && !e.isPriority && !O.has(e.id);
25039
25192
  return /* @__PURE__ */ jsx(MessageGroup, {
25040
25193
  group: {
25041
25194
  ...e,
25042
25195
  priorityIndex: n,
25043
- totalPriorityGroups: r
25196
+ totalPriorityGroups: r,
25197
+ insightText: s ? void 0 : e.insightText,
25198
+ separatorMode: s ? "insight" : void 0
25044
25199
  },
25045
25200
  onPreviousPriority: i,
25046
25201
  onNextPriority: a
25047
25202
  }, e.id);
25048
25203
  }), /* @__PURE__ */ jsx("div", {
25049
- ref: f,
25204
+ ref: Ks,
25050
25205
  "aria-hidden": "true"
25051
25206
  })]
25052
25207
  })
@@ -25104,13 +25259,13 @@ function EventDetailContentTicketDetails({ issue: e, notification: t, project: n
25104
25259
  ]
25105
25260
  })] });
25106
25261
  }
25107
- function EventDetailContentTicket({ detail: { summary: e, body: t, priorityText: n, followUpTitle: r, followUpSubtitle: i, issue: a, notification: o, project: s, task: c, dueDate: l, startDate: u, assignees: f, reporter: p, team: h, location: Zo, related: g }, className: O }) {
25262
+ function EventDetailContentTicket({ detail: { summary: e, body: t, priorityText: n, followUpTitle: r, followUpSubtitle: i, issue: a, notification: o, project: s, task: c, dueDate: l, startDate: u, assignees: f, reporter: p, team: h, location: g, related: O }, className: A }) {
25108
25263
  return /* @__PURE__ */ jsxs(EventDetailContentHeader, {
25109
25264
  summary: e,
25110
25265
  priorityText: n,
25111
25266
  followUpTitle: r,
25112
25267
  followUpSubtitle: i,
25113
- className: O,
25268
+ className: A,
25114
25269
  children: [
25115
25270
  /* @__PURE__ */ jsx(EventDetailContentTicketDetails, {
25116
25271
  issue: a,
@@ -25122,8 +25277,8 @@ function EventDetailContentTicket({ detail: { summary: e, body: t, priorityText:
25122
25277
  assignees: f,
25123
25278
  reporter: p,
25124
25279
  team: h,
25125
- location: Zo,
25126
- related: g
25280
+ location: g,
25281
+ related: O
25127
25282
  }),
25128
25283
  /* @__PURE__ */ jsx("h2", {
25129
25284
  className: "px-4 text-sm font-bold text-neutral-900",
@@ -25371,6 +25526,277 @@ function EventSummaryCardSkeleton({ className: e, style: t }) {
25371
25526
  ]
25372
25527
  });
25373
25528
  }
25529
+ var roleBadgeStyles = tv({
25530
+ base: "rounded-full border px-1.5 py-px text-[9px] font-bold tracking-wide uppercase",
25531
+ variants: { role: {
25532
+ client: "border-amber-200 bg-amber-50 text-amber-700",
25533
+ team: "border-blue-200 bg-blue-50 text-blue-700"
25534
+ } }
25535
+ }), ROLE_LABEL = {
25536
+ client: "Client",
25537
+ team: "Your team"
25538
+ };
25539
+ function RoleBadge({ role: e, className: t, ...n }) {
25540
+ return /* @__PURE__ */ jsx("span", {
25541
+ className: cn(roleBadgeStyles({ role: e }), t),
25542
+ ...n,
25543
+ children: ROLE_LABEL[e]
25544
+ });
25545
+ }
25546
+ function SourceIcon({ sourceType: e }) {
25547
+ return e === "gmail" ? /* @__PURE__ */ jsx(GmailIcon, { size: 18 }) : e === "slack" ? /* @__PURE__ */ jsx(SlackIcon, { size: 18 }) : null;
25548
+ }
25549
+ function DetailPill({ children: e }) {
25550
+ return /* @__PURE__ */ jsx("span", {
25551
+ className: "min-w-0 shrink-0 truncate rounded-full border border-neutral-300 bg-neutral-100 px-2 py-px text-[10px] font-medium text-neutral-700-variant-1",
25552
+ children: e
25553
+ });
25554
+ }
25555
+ function OpenInIcon() {
25556
+ return /* @__PURE__ */ jsxs("svg", {
25557
+ width: "10",
25558
+ height: "10",
25559
+ viewBox: "0 0 24 24",
25560
+ fill: "none",
25561
+ stroke: "currentColor",
25562
+ strokeWidth: "2.5",
25563
+ strokeLinecap: "round",
25564
+ strokeLinejoin: "round",
25565
+ children: [
25566
+ /* @__PURE__ */ jsx("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }),
25567
+ /* @__PURE__ */ jsx("polyline", { points: "15 3 21 3 21 9" }),
25568
+ /* @__PURE__ */ jsx("line", {
25569
+ x1: "10",
25570
+ y1: "14",
25571
+ x2: "21",
25572
+ y2: "3"
25573
+ })
25574
+ ]
25575
+ });
25576
+ }
25577
+ var ABSENCE_BUBBLE_STYLES = {
25578
+ fire: {
25579
+ bg: "bg-red-50",
25580
+ border: "border-red-200",
25581
+ title: "text-red-700"
25582
+ },
25583
+ review: {
25584
+ bg: "bg-amber-50",
25585
+ border: "border-amber-200",
25586
+ title: "text-amber-700"
25587
+ },
25588
+ neutral: {
25589
+ bg: "bg-neutral-100",
25590
+ border: "border-neutral-300",
25591
+ title: "text-neutral-700-variant-1"
25592
+ }
25593
+ };
25594
+ function TimelineConnector({ isFirst: e, isLast: t, variant: n }) {
25595
+ return /* @__PURE__ */ jsxs("div", {
25596
+ className: "flex w-[7px] flex-col items-center",
25597
+ children: [
25598
+ /* @__PURE__ */ jsx("div", { className: cn(n === "message" ? "h-[17px]" : "h-3.5", "w-px", !e && "bg-neutral-300") }),
25599
+ /* @__PURE__ */ jsx("div", {
25600
+ className: "relative z-10 h-[7px] w-[7px] shrink-0",
25601
+ children: n === "absence" ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", { className: "absolute inset-0 animate-ping rounded-full border border-red-500" }), /* @__PURE__ */ jsx("div", { className: "h-[7px] w-[7px] rounded-full border-[1.5px] border-red-500 bg-white" })] }) : /* @__PURE__ */ jsx("div", { className: cn("h-[7px] w-[7px] rounded-full", n === "message" ? "bg-blue-500" : "bg-neutral-400") })
25602
+ }),
25603
+ !t && /* @__PURE__ */ jsx("div", { className: "w-px flex-1 bg-neutral-300" })
25604
+ ]
25605
+ });
25606
+ }
25607
+ function TimelineItem({ item: e, isFirst: t, isLast: n, tone: r }) {
25608
+ if (e.absence) {
25609
+ let i = ABSENCE_BUBBLE_STYLES[r];
25610
+ return /* @__PURE__ */ jsxs("div", {
25611
+ className: "flex items-stretch gap-3",
25612
+ children: [/* @__PURE__ */ jsx(TimelineConnector, {
25613
+ isFirst: t,
25614
+ isLast: n,
25615
+ variant: "absence"
25616
+ }), /* @__PURE__ */ jsxs("div", {
25617
+ className: cn("mb-2 min-w-0 flex-1 rounded-lg border px-3 py-2.5", i.bg, i.border),
25618
+ children: [/* @__PURE__ */ jsxs("p", {
25619
+ className: cn("text-[10px] font-bold uppercase", i.title),
25620
+ children: ["QTalo · ", e.stageLabel]
25621
+ }), /* @__PURE__ */ jsx("p", {
25622
+ className: "mt-1 text-[13px] break-words text-neutral-800",
25623
+ children: e.summary
25624
+ })]
25625
+ })]
25626
+ });
25627
+ }
25628
+ if (e.type === "source_message") {
25629
+ let r = e.direction === "internal_outbound" ? "team" : "client";
25630
+ return /* @__PURE__ */ jsxs("div", {
25631
+ className: "flex items-stretch gap-3",
25632
+ children: [/* @__PURE__ */ jsx(TimelineConnector, {
25633
+ isFirst: t,
25634
+ isLast: n,
25635
+ variant: "message"
25636
+ }), /* @__PURE__ */ jsxs("div", {
25637
+ className: "mb-2 min-w-0 flex-1 rounded-xl border border-neutral-200-variant-1 bg-white-variant-8 px-4 py-3",
25638
+ children: [/* @__PURE__ */ jsxs("div", {
25639
+ className: "mb-1 flex flex-wrap items-center gap-1.5",
25640
+ children: [
25641
+ /* @__PURE__ */ jsx("span", {
25642
+ className: "text-[11px] font-semibold text-blue-700 uppercase tracking-wide",
25643
+ children: e.stageLabel
25644
+ }),
25645
+ e.senderName && /* @__PURE__ */ jsx("span", {
25646
+ className: "text-[12px] font-semibold text-neutral-900",
25647
+ children: e.senderName
25648
+ }),
25649
+ /* @__PURE__ */ jsx(RoleBadge, { role: r }),
25650
+ /* @__PURE__ */ jsx("span", {
25651
+ className: "text-[11px] text-neutral-700-variant-1",
25652
+ children: e.timestampDisplay
25653
+ }),
25654
+ /* @__PURE__ */ jsx("span", {
25655
+ className: "ml-auto",
25656
+ children: /* @__PURE__ */ jsx(SourceIcon, { sourceType: e.sourceType })
25657
+ })
25658
+ ]
25659
+ }), /* @__PURE__ */ jsx("p", {
25660
+ className: "text-[13px] break-words text-neutral-800",
25661
+ children: e.summary
25662
+ })]
25663
+ })]
25664
+ });
25665
+ }
25666
+ return /* @__PURE__ */ jsxs("div", {
25667
+ className: "flex items-stretch gap-3",
25668
+ children: [/* @__PURE__ */ jsx(TimelineConnector, {
25669
+ isFirst: t,
25670
+ isLast: n,
25671
+ variant: "check"
25672
+ }), /* @__PURE__ */ jsxs("div", {
25673
+ className: "mb-2 min-w-0 flex-1 rounded-lg border border-neutral-200-variant-1 bg-white-variant-8 px-3 py-2.5",
25674
+ children: [/* @__PURE__ */ jsxs("p", {
25675
+ className: "text-[10px] font-semibold text-neutral-800 uppercase",
25676
+ children: ["QTalo · ", e.stageLabel]
25677
+ }), /* @__PURE__ */ jsx("p", {
25678
+ className: "mt-1 text-[13px] break-words text-neutral-700-variant-1",
25679
+ children: e.summary
25680
+ })]
25681
+ })]
25682
+ });
25683
+ }
25684
+ function EvidenceTimeline({ items: e, canExpandThread: t = !1, tone: n = "fire", threadTitle: r, clientCompany: i, contactName: a, teamCompanyName: o, recipientLabel: s, className: c, ...l }) {
25685
+ let [u, f] = useState(!0), p = e.filter((e) => e.type === "source_message");
25686
+ return /* @__PURE__ */ jsxs("div", {
25687
+ className: cn("flex flex-col", c),
25688
+ ...l,
25689
+ children: [e.map((t, r) => /* @__PURE__ */ jsx(TimelineItem, {
25690
+ item: t,
25691
+ isFirst: r === 0,
25692
+ isLast: r === e.length - 1,
25693
+ tone: n
25694
+ }, t.id)), t && p.length > 0 && /* @__PURE__ */ jsxs("div", {
25695
+ className: "mt-1 border-t border-neutral-200-variant-1 pt-2",
25696
+ children: [/* @__PURE__ */ jsxs("button", {
25697
+ type: "button",
25698
+ onClick: () => f((e) => !e),
25699
+ className: "inline-flex items-center gap-1.5 text-xs font-medium text-neutral-700-variant-1 transition-colors hover:text-neutral-900",
25700
+ children: [/* @__PURE__ */ jsx("svg", {
25701
+ width: "11",
25702
+ height: "11",
25703
+ viewBox: "0 0 24 24",
25704
+ fill: "none",
25705
+ stroke: "currentColor",
25706
+ strokeWidth: "2",
25707
+ strokeLinecap: "round",
25708
+ strokeLinejoin: "round",
25709
+ children: u ? /* @__PURE__ */ jsx("polyline", { points: "18 15 12 9 6 15" }) : /* @__PURE__ */ jsx("polyline", { points: "6 9 12 15 18 9" })
25710
+ }), u ? "Hide full thread" : "View full thread"]
25711
+ }), u && /* @__PURE__ */ jsxs("div", {
25712
+ className: "mt-2 overflow-hidden rounded-xl border border-neutral-200-variant-1",
25713
+ children: [/* @__PURE__ */ jsxs("div", {
25714
+ className: "flex items-center justify-between gap-2 border-b border-neutral-200-variant-1 bg-neutral-100 px-4 py-3",
25715
+ children: [/* @__PURE__ */ jsxs("div", {
25716
+ className: "flex min-w-0 items-center gap-2",
25717
+ children: [/* @__PURE__ */ jsx(SourceIcon, { sourceType: p[0]?.sourceType }), /* @__PURE__ */ jsx("span", {
25718
+ className: "truncate text-xs font-semibold text-neutral-800",
25719
+ children: r
25720
+ })]
25721
+ }), /* @__PURE__ */ jsxs("span", {
25722
+ className: "shrink-0 text-[11px] font-medium text-neutral-700-variant-1",
25723
+ children: [p.length, " messages"]
25724
+ })]
25725
+ }), /* @__PURE__ */ jsx("div", {
25726
+ className: "flex flex-col gap-3 bg-neutral-50 px-4 py-4",
25727
+ children: p.map((e) => {
25728
+ let t = e.direction === "internal_outbound", n = e.senderName ?? a ?? "", r = t ? o : i, c = t ? [a, i].filter(Boolean) : [o, s].filter(Boolean), l = t ? "team" : "client", u = t ? "client" : "team";
25729
+ return /* @__PURE__ */ jsx("div", {
25730
+ className: cn("rounded-xl border px-4 py-3", t ? "border-blue-200 bg-blue-50" : "border-neutral-200-variant-1 bg-white-variant-8"),
25731
+ children: /* @__PURE__ */ jsxs("div", {
25732
+ className: "flex gap-3",
25733
+ children: [/* @__PURE__ */ jsx("div", {
25734
+ className: cn("flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-[13px] font-bold", t ? "bg-blue-200 text-blue-800" : "bg-neutral-200 text-neutral-700-variant-1"),
25735
+ children: n.charAt(0).toUpperCase()
25736
+ }), /* @__PURE__ */ jsxs("div", {
25737
+ className: "min-w-0 flex-1",
25738
+ children: [
25739
+ /* @__PURE__ */ jsxs("div", {
25740
+ className: "flex items-start justify-between gap-2",
25741
+ children: [/* @__PURE__ */ jsxs("div", {
25742
+ className: "flex min-w-0 flex-1 flex-col gap-1",
25743
+ children: [/* @__PURE__ */ jsxs("div", {
25744
+ className: "flex min-w-0 items-center gap-1.5",
25745
+ children: [
25746
+ /* @__PURE__ */ jsx("span", {
25747
+ className: "w-9 shrink-0 text-[10px] font-bold tracking-wide text-neutral-700-variant-1 uppercase",
25748
+ children: "From"
25749
+ }),
25750
+ /* @__PURE__ */ jsx("span", {
25751
+ className: "truncate text-[13px] font-bold text-neutral-900",
25752
+ children: n
25753
+ }),
25754
+ r && /* @__PURE__ */ jsx(DetailPill, { children: r }),
25755
+ /* @__PURE__ */ jsx(RoleBadge, { role: l })
25756
+ ]
25757
+ }), c.length > 0 && /* @__PURE__ */ jsxs("div", {
25758
+ className: "flex min-w-0 flex-wrap items-center gap-1.5",
25759
+ children: [
25760
+ /* @__PURE__ */ jsx("span", {
25761
+ className: "w-9 shrink-0 text-[10px] font-bold tracking-wide text-neutral-700-variant-1 uppercase",
25762
+ children: "To"
25763
+ }),
25764
+ c.map((e) => /* @__PURE__ */ jsx(DetailPill, { children: e }, e)),
25765
+ /* @__PURE__ */ jsx(RoleBadge, { role: u })
25766
+ ]
25767
+ })]
25768
+ }), /* @__PURE__ */ jsxs("div", {
25769
+ className: "flex shrink-0 items-center gap-1.5",
25770
+ children: [/* @__PURE__ */ jsx(SourceIcon, { sourceType: e.sourceType }), /* @__PURE__ */ jsx("span", {
25771
+ className: "text-[11px] font-medium text-neutral-700-variant-1",
25772
+ children: e.timestampDisplay
25773
+ })]
25774
+ })]
25775
+ }),
25776
+ /* @__PURE__ */ jsx("p", {
25777
+ className: "mt-2 border-t border-neutral-200-variant-1 pt-2.5 text-sm break-words text-neutral-800",
25778
+ children: e.summary
25779
+ }),
25780
+ e.link && /* @__PURE__ */ jsx("div", {
25781
+ className: "mt-2.5 border-t border-neutral-200-variant-1 pt-2",
25782
+ children: /* @__PURE__ */ jsxs("a", {
25783
+ href: e.link,
25784
+ target: "_blank",
25785
+ rel: "noopener noreferrer",
25786
+ className: "inline-flex items-center gap-1 text-[11px] font-medium text-neutral-700-variant-1 transition-colors hover:text-neutral-900 hover:underline",
25787
+ children: [e.sourceType === "gmail" ? "Open in Gmail" : "Open in Slack", /* @__PURE__ */ jsx(OpenInIcon, {})]
25788
+ })
25789
+ })
25790
+ ]
25791
+ })]
25792
+ })
25793
+ }, e.id);
25794
+ })
25795
+ })]
25796
+ })]
25797
+ })]
25798
+ });
25799
+ }
25374
25800
  function FilterBarSkeleton({ itemCount: e = 3, className: t }) {
25375
25801
  return /* @__PURE__ */ jsx("div", {
25376
25802
  className: cn("gap-2 flex flex-wrap items-center", t),
@@ -25647,16 +26073,16 @@ function OnboardingCard({ stepLabel: e, title: t, description: n, titleAccessory
25647
26073
  children: [i, a]
25648
26074
  })
25649
26075
  ]
25650
- }), Zo = wrapArrow(/* @__PURE__ */ jsx(OnboardingCardArrow, {
26076
+ }), g = wrapArrow(/* @__PURE__ */ jsx(OnboardingCardArrow, {
25651
26077
  layout: o,
25652
26078
  placement: s
25653
- }), c, l), g = s === "before" ? /* @__PURE__ */ jsxs(Fragment$1, { children: [Zo, h] }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [h, Zo] });
26079
+ }), c, l), O = s === "before" ? /* @__PURE__ */ jsxs(Fragment$1, { children: [g, h] }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [h, g] });
25654
26080
  return o === "horizontal" ? /* @__PURE__ */ jsx("div", {
25655
26081
  className: cn("flex items-center", u),
25656
- children: g
26082
+ children: O
25657
26083
  }) : /* @__PURE__ */ jsx("div", {
25658
26084
  className: cn("flex flex-col items-center", u),
25659
- children: g
26085
+ children: O
25660
26086
  });
25661
26087
  }
25662
26088
  var subscribeNoop = () => () => {}, getClientSnapshot = () => !0, getServerSnapshot = () => !1, PRIMARY_BTN = "rounded-lg bg-white px-4 py-1.5 text-xs font-semibold text-primary-500 transition-opacity hover:opacity-90", GHOST_BTN = "text-xs font-semibold text-white/70 transition-colors hover:text-white";
@@ -25704,7 +26130,7 @@ function OnboardingPortal({ currentStep: e, currentStepIndex: t, actions: n, ste
25704
26130
  let p = e.layout === "vertical" && o.mode === "vertical" ? {
25705
26131
  marginLeft: o.arrowMarginLeft,
25706
26132
  ...e.arrowWrapperStyle
25707
- } : e.arrowWrapperStyle, O = /* @__PURE__ */ jsx(OnboardingCard, {
26133
+ } : e.arrowWrapperStyle, A = /* @__PURE__ */ jsx(OnboardingCard, {
25708
26134
  stepLabel: e.stepLabel ?? (t == null ? void 0 : `${t + 1} / ${r.length}`),
25709
26135
  title: e.title,
25710
26136
  description: e.description,
@@ -25743,7 +26169,7 @@ function OnboardingPortal({ currentStep: e, currentStepIndex: t, actions: n, ste
25743
26169
  left: o.left
25744
26170
  }
25745
26171
  },
25746
- children: O
26172
+ children: A
25747
26173
  }), document.body);
25748
26174
  }
25749
26175
  function Onboarding({ steps: e, context: t, storageKey: n, onFinish: r, isEnabled: i = !0 }) {
@@ -25759,12 +26185,143 @@ function Onboarding({ steps: e, context: t, storageKey: n, onFinish: r, isEnable
25759
26185
  })
25760
26186
  });
25761
26187
  }
26188
+ var pulseFilterChipStyles = tv({
26189
+ slots: {
26190
+ root: "inline-flex shrink-0 items-center gap-1 rounded-full border bg-white px-2.5 py-1 text-[11px] transition-colors",
26191
+ content: "inline-flex items-center",
26192
+ dot: "h-1.5 w-1.5 shrink-0 rounded-full",
26193
+ count: "inline-flex h-[14px] min-w-[14px] items-center justify-center rounded-full px-1 text-[9px] font-bold"
26194
+ },
26195
+ variants: {
26196
+ tone: {
26197
+ fire: {
26198
+ root: "font-medium",
26199
+ content: "gap-1.5",
26200
+ dot: "bg-red-500"
26201
+ },
26202
+ review: {
26203
+ root: "font-medium",
26204
+ content: "gap-1.5",
26205
+ dot: "bg-amber-400"
26206
+ },
26207
+ neutral: {
26208
+ root: "font-medium",
26209
+ content: "gap-1.5",
26210
+ dot: "bg-neutral-500"
26211
+ },
26212
+ brand: {
26213
+ root: "font-semibold",
26214
+ content: "gap-1",
26215
+ dot: "hidden"
26216
+ }
26217
+ },
26218
+ selected: {
26219
+ true: { count: "bg-white-variant-1/20 text-white-variant-1" },
26220
+ false: { count: "bg-neutral-100 text-neutral-700" }
26221
+ },
26222
+ disabled: {
26223
+ true: { root: "cursor-default border-neutral-200 bg-neutral-50 text-neutral-600 opacity-60" },
26224
+ false: {}
26225
+ }
26226
+ },
26227
+ compoundVariants: [
26228
+ {
26229
+ tone: "fire",
26230
+ selected: !1,
26231
+ disabled: !1,
26232
+ class: { root: "border-red-200 text-red-700 hover:border-red-400" }
26233
+ },
26234
+ {
26235
+ tone: "fire",
26236
+ selected: !0,
26237
+ disabled: !1,
26238
+ class: { root: "bg-red-600 border-red-600 text-white-variant-1" }
26239
+ },
26240
+ {
26241
+ tone: "review",
26242
+ selected: !1,
26243
+ disabled: !1,
26244
+ class: { root: "border-amber-200 text-amber-700 hover:border-amber-400" }
26245
+ },
26246
+ {
26247
+ tone: "review",
26248
+ selected: !0,
26249
+ disabled: !1,
26250
+ class: { root: "bg-amber-500 border-amber-500 text-white-variant-1" }
26251
+ },
26252
+ {
26253
+ tone: "neutral",
26254
+ selected: !1,
26255
+ disabled: !1,
26256
+ class: { root: "border-neutral-300 text-neutral-700 hover:border-neutral-500" }
26257
+ },
26258
+ {
26259
+ tone: "neutral",
26260
+ selected: !0,
26261
+ disabled: !1,
26262
+ class: { root: "bg-pulse-chip-neutral-active-bg border-pulse-chip-neutral-active-bg text-pulse-chip-neutral-active-text" }
26263
+ },
26264
+ {
26265
+ tone: "brand",
26266
+ selected: !1,
26267
+ disabled: !1,
26268
+ class: { root: "border-neutral-300 text-neutral-900 hover:border-neutral-600" }
26269
+ },
26270
+ {
26271
+ tone: "brand",
26272
+ selected: !0,
26273
+ disabled: !1,
26274
+ class: { root: "bg-primary-500 border-primary-500 text-white-variant-1" }
26275
+ }
26276
+ ],
26277
+ defaultVariants: {
26278
+ tone: "neutral",
26279
+ selected: !1,
26280
+ disabled: !1
26281
+ }
26282
+ });
26283
+ function PulseFilterChip({ label: e, count: t, tone: n = "neutral", icon: r, selected: i = !1, disabled: a = !1, onClick: o, onRemove: s, className: c }) {
26284
+ let l = pulseFilterChipStyles({
26285
+ tone: n,
26286
+ selected: i,
26287
+ disabled: a
26288
+ });
26289
+ return /* @__PURE__ */ jsxs("span", {
26290
+ className: cn(l.root(), c),
26291
+ children: [/* @__PURE__ */ jsxs(Pressable, {
26292
+ as: "span",
26293
+ onPress: a ? void 0 : o,
26294
+ disabled: a,
26295
+ className: l.content(),
26296
+ children: [
26297
+ r ?? /* @__PURE__ */ jsx("span", { className: l.dot() }),
26298
+ /* @__PURE__ */ jsx("span", { children: e }),
26299
+ typeof t == "number" && /* @__PURE__ */ jsx("span", {
26300
+ className: l.count(),
26301
+ children: t
26302
+ })
26303
+ ]
26304
+ }), s && /* @__PURE__ */ jsx(Pressable, {
26305
+ as: "span",
26306
+ onPress: s,
26307
+ "aria-label": `Clear ${e}`,
26308
+ className: "inline-flex shrink-0 items-center justify-center rounded-full opacity-80 hover:opacity-100 focus-visible:ring-2 focus-visible:ring-current",
26309
+ children: /* @__PURE__ */ jsx(CloseIcon, { size: 12 })
26310
+ })]
26311
+ });
26312
+ }
26313
+ function PulseFilterChipSkeleton({ labelWidthClassName: e = "w-16", className: t }) {
26314
+ return /* @__PURE__ */ jsxs("span", {
26315
+ className: cn("inline-flex shrink-0 items-center gap-1.5 rounded-full border border-neutral-300 bg-white px-2.5 py-1", t),
26316
+ children: [/* @__PURE__ */ jsx("div", { className: "size-3 shrink-0 rounded-full bg-neutral-300-variant-3" }), /* @__PURE__ */ jsx(Skeleton, { className: cn("h-3", e) })]
26317
+ });
26318
+ }
25762
26319
  function SearchInput({ value: e, defaultValue: t, placeholder: n = "Search...", onChange: r, onKeyDown: i, onClear: a, disabled: o = !1, className: s }) {
25763
26320
  let [c, l] = useState(t ?? ""), u = typeof e == "string", f = u ? e : c, p = f.length > 0;
25764
26321
  function h(e) {
25765
26322
  u || l(e), r?.(e);
25766
26323
  }
25767
- function g() {
26324
+ function O() {
25768
26325
  u || l(""), r?.(""), a?.();
25769
26326
  }
25770
26327
  return /* @__PURE__ */ jsxs("fieldset", {
@@ -25790,13 +26347,856 @@ function SearchInput({ value: e, defaultValue: t, placeholder: n = "Search...",
25790
26347
  size: 16,
25791
26348
  className: "text-neutral-700"
25792
26349
  }),
25793
- onClick: g,
26350
+ onClick: O,
25794
26351
  "aria-label": "Clear search",
25795
26352
  className: "rounded p-0 transition-opacity hover:opacity-70"
25796
26353
  })
25797
26354
  ]
25798
26355
  });
25799
26356
  }
26357
+ var chipStyles = tv({
26358
+ slots: {
26359
+ root: "inline-flex h-5 min-w-0 items-center gap-1 rounded-full py-0.5 pr-1 pl-2 text-[11px] font-semibold",
26360
+ close: "flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded-full opacity-80 hover:opacity-100 focus-visible:ring-2 focus-visible:ring-current"
26361
+ },
26362
+ variants: { type: {
26363
+ client: { root: "bg-search-suggestion-client-bg text-search-suggestion-client-text" },
26364
+ member: { root: "bg-search-suggestion-member-bg text-search-suggestion-member-text" }
26365
+ } }
26366
+ });
26367
+ function SelectedChip({ suggestion: e, onClear: t }) {
26368
+ let n = chipStyles({ type: e.type });
26369
+ return /* @__PURE__ */ jsxs("span", {
26370
+ className: n.root(),
26371
+ children: [/* @__PURE__ */ jsx("span", {
26372
+ className: "truncate",
26373
+ children: e.label
26374
+ }), /* @__PURE__ */ jsx(StopPropagation, { children: /* @__PURE__ */ jsx(Pressable, {
26375
+ as: "span",
26376
+ onPress: t,
26377
+ "aria-label": `Clear ${e.label}`,
26378
+ className: n.close(),
26379
+ children: /* @__PURE__ */ jsx(CloseBoldIcon, { size: 10 })
26380
+ }) })]
26381
+ });
26382
+ }
26383
+ function SuggestionRow({ suggestion: e, onSelect: t }) {
26384
+ return /* @__PURE__ */ jsxs("button", {
26385
+ type: "button",
26386
+ onMouseDown: (n) => {
26387
+ n.preventDefault(), t(e);
26388
+ },
26389
+ className: "hover:bg-neutral-50 flex w-full items-center gap-2 px-3 py-2 text-left text-[12px] text-neutral-800",
26390
+ children: [e.type === "client" ? /* @__PURE__ */ jsx(BuildingOutlineIcon, {
26391
+ size: 12,
26392
+ className: "text-neutral-600"
26393
+ }) : /* @__PURE__ */ jsx(AccountOutlineIcon, {
26394
+ size: 12,
26395
+ className: "text-neutral-600"
26396
+ }), e.label]
26397
+ });
26398
+ }
26399
+ function SearchWithSuggestions({ value: e, onChange: t, suggestions: n, selected: r, onSelect: i, onClear: a, placeholder: o = "Search...", className: s }) {
26400
+ let [c, l] = useState(!1), u = n.filter((e) => e.type === "client"), f = n.filter((e) => e.type === "member"), p = c && !e && !r && n.length > 0;
26401
+ function h(e) {
26402
+ e.key === "Escape" && l(!1);
26403
+ }
26404
+ return /* @__PURE__ */ jsx(Dropdown, {
26405
+ open: p,
26406
+ onOpenChange: () => {},
26407
+ openOnHover: !1,
26408
+ align: "start",
26409
+ side: "bottom",
26410
+ offsetY: 4,
26411
+ trigger: /* @__PURE__ */ jsxs("div", {
26412
+ onFocus: () => l(!0),
26413
+ onBlur: () => l(!1),
26414
+ className: cn("border-neutral-500-variant-3 focus-within:border-primary-500 flex h-8 min-w-0 items-center gap-1.5 rounded-full border bg-white px-2 py-1", s),
26415
+ children: [/* @__PURE__ */ jsx(SearchIcon, {
26416
+ size: 20,
26417
+ className: "text-neutral-700"
26418
+ }), r ? /* @__PURE__ */ jsx(SelectedChip, {
26419
+ suggestion: r,
26420
+ onClear: a
26421
+ }) : /* @__PURE__ */ jsx(Input, {
26422
+ type: "text",
26423
+ value: e,
26424
+ placeholder: o,
26425
+ onChange: t,
26426
+ onKeyDown: h,
26427
+ className: "text-neutral-800 placeholder:text-neutral-700-alpha-60 m-0 h-5 min-w-0 flex-1 border-0 bg-transparent p-0 text-xs outline-none"
26428
+ })]
26429
+ }),
26430
+ children: /* @__PURE__ */ jsxs("div", {
26431
+ className: "border-neutral-200 w-[260px] overflow-hidden rounded-xl border bg-white shadow-lg",
26432
+ children: [
26433
+ u.length > 0 && /* @__PURE__ */ jsxs("div", {
26434
+ className: "pb-1",
26435
+ children: [/* @__PURE__ */ jsx("p", {
26436
+ className: "text-neutral-600 px-3 pt-2.5 pb-1 text-[10px] font-bold tracking-widest uppercase",
26437
+ children: "Clients"
26438
+ }), u.map((e) => /* @__PURE__ */ jsx(SuggestionRow, {
26439
+ suggestion: e,
26440
+ onSelect: i
26441
+ }, e.label))]
26442
+ }),
26443
+ u.length > 0 && f.length > 0 && /* @__PURE__ */ jsx("div", { className: "border-neutral-200 mt-1 border-t-2" }),
26444
+ f.length > 0 && /* @__PURE__ */ jsxs("div", {
26445
+ className: "pb-1",
26446
+ children: [/* @__PURE__ */ jsx("p", {
26447
+ className: "text-neutral-600 px-3 pt-2.5 pb-1 text-[10px] font-bold tracking-widest uppercase",
26448
+ children: "Members"
26449
+ }), f.map((e) => /* @__PURE__ */ jsx(SuggestionRow, {
26450
+ suggestion: e,
26451
+ onSelect: i
26452
+ }, e.label))]
26453
+ }),
26454
+ /* @__PURE__ */ jsx("div", {
26455
+ className: "border-neutral-200 mt-1 border-t-2 px-3 py-2",
26456
+ children: /* @__PURE__ */ jsx("p", {
26457
+ className: "text-neutral-600 text-[11px] font-medium",
26458
+ children: "Type to search all signals"
26459
+ })
26460
+ })
26461
+ ]
26462
+ })
26463
+ });
26464
+ }
26465
+ var SEVERITY_CONFIG$1 = {
26466
+ fire: {
26467
+ icon: FireFillIcon,
26468
+ text: "text-tertiary-500-variant-2"
26469
+ },
26470
+ spark: {
26471
+ icon: InsightFillIcon,
26472
+ text: "text-primary-500"
26473
+ },
26474
+ watching: {
26475
+ icon: EyeFillIcon,
26476
+ text: "text-neutral-700-variant-1"
26477
+ },
26478
+ healthy: {
26479
+ icon: CheckIcon,
26480
+ text: "text-success-base"
26481
+ }
26482
+ }, signalCardStyles = tv({
26483
+ base: "relative h-full w-full text-left transition-colors focus:outline-none",
26484
+ variants: {
26485
+ layout: {
26486
+ home: "rounded-lg border-[1.5px] p-4",
26487
+ row: "border-b border-l-[3px] px-4 py-3.5"
26488
+ },
26489
+ status: {
26490
+ needs_response: "",
26491
+ needs_review: "",
26492
+ resolved: ""
26493
+ },
26494
+ selected: {
26495
+ true: "",
26496
+ false: ""
26497
+ }
26498
+ },
26499
+ compoundVariants: [
26500
+ {
26501
+ layout: "home",
26502
+ status: "needs_response",
26503
+ selected: !1,
26504
+ class: "border-tertiary-500-variant-3 bg-white-variant-8 hover:bg-tertiary-500-variant-4"
26505
+ },
26506
+ {
26507
+ layout: "home",
26508
+ status: "needs_response",
26509
+ selected: !0,
26510
+ class: "border-tertiary-500-variant-2 bg-tertiary-500-variant-4"
26511
+ },
26512
+ {
26513
+ layout: "home",
26514
+ status: "needs_review",
26515
+ selected: !1,
26516
+ class: "border-amber-200 bg-white-variant-8 hover:bg-amber-50"
26517
+ },
26518
+ {
26519
+ layout: "home",
26520
+ status: "needs_review",
26521
+ selected: !0,
26522
+ class: "border-amber-400 bg-amber-50"
26523
+ },
26524
+ {
26525
+ layout: "home",
26526
+ status: "resolved",
26527
+ selected: !1,
26528
+ class: "border-green-200 bg-white-variant-8 hover:bg-green-50"
26529
+ },
26530
+ {
26531
+ layout: "home",
26532
+ status: "resolved",
26533
+ selected: !0,
26534
+ class: "border-green-500 bg-green-50"
26535
+ },
26536
+ {
26537
+ layout: "row",
26538
+ status: "needs_response",
26539
+ selected: !1,
26540
+ class: "border-neutral-200 border-l-transparent hover:bg-neutral-50"
26541
+ },
26542
+ {
26543
+ layout: "row",
26544
+ status: "needs_response",
26545
+ selected: !0,
26546
+ class: "border-neutral-200 border-l-red-500 bg-neutral-50"
26547
+ },
26548
+ {
26549
+ layout: "row",
26550
+ status: "needs_review",
26551
+ selected: !1,
26552
+ class: "border-neutral-200 border-l-transparent hover:bg-neutral-50"
26553
+ },
26554
+ {
26555
+ layout: "row",
26556
+ status: "needs_review",
26557
+ selected: !0,
26558
+ class: "border-neutral-200 border-l-amber-400 bg-neutral-50"
26559
+ },
26560
+ {
26561
+ layout: "row",
26562
+ status: "resolved",
26563
+ selected: !1,
26564
+ class: "border-neutral-200 border-l-transparent hover:bg-neutral-50"
26565
+ },
26566
+ {
26567
+ layout: "row",
26568
+ status: "resolved",
26569
+ selected: !0,
26570
+ class: "border-neutral-200 border-l-green-500 bg-neutral-50"
26571
+ }
26572
+ ]
26573
+ });
26574
+ function SourceIcons({ sourceTypes: e }) {
26575
+ return /* @__PURE__ */ jsxs("span", {
26576
+ className: "absolute top-3.5 right-3 flex items-center gap-1",
26577
+ children: [e.includes("gmail") && /* @__PURE__ */ jsx(GmailIcon, { size: 16 }), e.includes("slack") && /* @__PURE__ */ jsx(SlackIcon, { size: 18 })]
26578
+ });
26579
+ }
26580
+ function SignalCard({ title: e, clientName: t, requesterName: n, explanation: r, severity: i, status: a, slaLabel: o, slaStatusLabel: s, sourceTypes: c, patternContext: l, variant: u = "home", selected: f = !1, onClick: p, className: h }) {
26581
+ let g = SEVERITY_CONFIG$1[i];
26582
+ return /* @__PURE__ */ jsxs(Pressable, {
26583
+ onPress: p,
26584
+ className: cn(signalCardStyles({
26585
+ layout: u,
26586
+ status: a,
26587
+ selected: f
26588
+ }), h),
26589
+ children: [
26590
+ /* @__PURE__ */ jsx(SourceIcons, { sourceTypes: c }),
26591
+ /* @__PURE__ */ jsxs("div", {
26592
+ className: "mb-1 flex items-center gap-1.5 pr-10",
26593
+ children: [/* @__PURE__ */ jsx(InfoTooltip, {
26594
+ content: s,
26595
+ children: /* @__PURE__ */ jsx("span", {
26596
+ className: cn("shrink-0", g.text),
26597
+ children: /* @__PURE__ */ jsx(g.icon, { size: 16 })
26598
+ })
26599
+ }), /* @__PURE__ */ jsx("span", {
26600
+ className: cn("text-[12px] font-semibold", g.text),
26601
+ children: o
26602
+ })]
26603
+ }),
26604
+ /* @__PURE__ */ jsx("p", {
26605
+ className: "mb-1 line-clamp-1 pr-10 text-[13px] leading-snug font-semibold text-neutral-900",
26606
+ children: e
26607
+ }),
26608
+ r && /* @__PURE__ */ jsx("p", {
26609
+ className: "mb-1 line-clamp-1 pr-10 text-[11px] leading-snug text-neutral-700-variant-1",
26610
+ children: r
26611
+ }),
26612
+ (t || n) && /* @__PURE__ */ jsx("p", {
26613
+ className: "line-clamp-1 pr-10 text-[11px] font-medium text-neutral-700-variant-1",
26614
+ children: [t, n].filter(Boolean).join(" · ")
26615
+ }),
26616
+ l && /* @__PURE__ */ jsx("p", {
26617
+ className: "mt-1 pr-10 text-[10px] font-medium text-primary-500",
26618
+ children: l
26619
+ })
26620
+ ]
26621
+ });
26622
+ }
26623
+ function SignalCardSkeleton({ variant: e = "home", className: t }) {
26624
+ return /* @__PURE__ */ jsxs("div", {
26625
+ className: cn("relative h-full w-full", e === "home" ? "rounded-lg border-[1.5px] border-neutral-200-variant-1 bg-white-variant-8 p-4" : "border-b border-neutral-200-variant-1 px-4 py-3.5", t),
26626
+ children: [
26627
+ /* @__PURE__ */ jsx("div", { className: "absolute top-3.5 right-3 size-4 rounded-md bg-neutral-300-variant-3" }),
26628
+ /* @__PURE__ */ jsxs("div", {
26629
+ className: "mb-1 flex items-center gap-2 pr-10",
26630
+ children: [/* @__PURE__ */ jsx("div", { className: "size-4 shrink-0 rounded-md bg-neutral-300-variant-3" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-3.5 w-28" })]
26631
+ }),
26632
+ /* @__PURE__ */ jsx(Skeleton, { className: "mb-1 h-4.5 w-8/12" }),
26633
+ /* @__PURE__ */ jsx(Skeleton, { className: "mb-1 h-4 w-10/12" }),
26634
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-6/12" })
26635
+ ]
26636
+ });
26637
+ }
26638
+ function SignalClusterCard({ title: e, body: t, ctaQuestion: n, destinationLabel: r, signalCount: i, onClick: a, className: o }) {
26639
+ return /* @__PURE__ */ jsxs(Pressable, {
26640
+ onPress: a,
26641
+ className: cn("h-full w-full rounded-lg border-[1.5px] border-neutral-400-variant-4 bg-white-variant-8 p-4 text-left transition-colors hover:border-neutral-500-variant-4 hover:bg-neutral-200-variant-1", o),
26642
+ children: [
26643
+ /* @__PURE__ */ jsxs("div", {
26644
+ className: "mb-1.5 flex items-start justify-between gap-2",
26645
+ children: [/* @__PURE__ */ jsx("p", {
26646
+ className: "text-[13px] leading-snug font-semibold text-neutral-800",
26647
+ children: e
26648
+ }), /* @__PURE__ */ jsxs("span", {
26649
+ className: "mt-0.5 shrink-0 text-[10px] font-medium text-neutral-600-variant-2",
26650
+ children: [
26651
+ i,
26652
+ " signal",
26653
+ i === 1 ? "" : "s"
26654
+ ]
26655
+ })]
26656
+ }),
26657
+ /* @__PURE__ */ jsx("p", {
26658
+ className: "mb-1.5 text-[11px] leading-snug text-neutral-700-variant-1",
26659
+ children: t
26660
+ }),
26661
+ /* @__PURE__ */ jsx("p", {
26662
+ className: "mb-3 text-[11px] leading-snug text-neutral-700-variant-1",
26663
+ children: n
26664
+ }),
26665
+ /* @__PURE__ */ jsxs("div", {
26666
+ className: "text-primary-500 flex items-center gap-1 text-[11px] font-medium",
26667
+ children: [/* @__PURE__ */ jsx("span", { children: r }), /* @__PURE__ */ jsx(ArrowIcon, {
26668
+ direction: "right",
26669
+ size: 10
26670
+ })]
26671
+ })
26672
+ ]
26673
+ });
26674
+ }
26675
+ function SignalClusterCardSkeleton({ className: e }) {
26676
+ return /* @__PURE__ */ jsxs("div", {
26677
+ className: cn("h-full w-full rounded-lg border-[1.5px] border-neutral-200-variant-1 bg-white-variant-8 p-4", e),
26678
+ children: [
26679
+ /* @__PURE__ */ jsxs("div", {
26680
+ className: "mb-1.5 flex items-start justify-between gap-2",
26681
+ children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-7/12" }), /* @__PURE__ */ jsx(Skeleton, { className: "mt-0.5 h-3 w-12 shrink-0" })]
26682
+ }),
26683
+ /* @__PURE__ */ jsx(Skeleton, { className: "mb-1.5 h-3 w-11/12" }),
26684
+ /* @__PURE__ */ jsx(Skeleton, { className: "mb-3 h-3 w-9/12" }),
26685
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-5/12" })
26686
+ ]
26687
+ });
26688
+ }
26689
+ var barStyles = tv({
26690
+ base: "h-full rounded-full",
26691
+ variants: { status: {
26692
+ met: "bg-green-400",
26693
+ on_track: "bg-green-400",
26694
+ approaching: "bg-yellow-300",
26695
+ overdue: "bg-amber-400",
26696
+ way_overdue: "bg-red-500"
26697
+ } }
26698
+ }), badgeStyles = tv({
26699
+ base: "rounded-full px-2 py-0.5 text-[10px] font-semibold",
26700
+ variants: { status: {
26701
+ met: "bg-green-50 text-green-700",
26702
+ on_track: "bg-green-50 text-green-700",
26703
+ approaching: "bg-yellow-50 text-yellow-700",
26704
+ overdue: "bg-amber-50 text-amber-700",
26705
+ way_overdue: "bg-red-50 text-red-700"
26706
+ } }
26707
+ });
26708
+ function SlaProgressBar({ policyLabel: e, statusLabel: t, status: n, actualLabel: r, windowLabel: i, percentUsed: a, className: o, ...s }) {
26709
+ let c = Math.min(a, 100);
26710
+ return /* @__PURE__ */ jsxs("div", {
26711
+ className: cn("flex flex-col gap-2", o),
26712
+ ...s,
26713
+ children: [
26714
+ /* @__PURE__ */ jsxs("div", {
26715
+ className: "flex items-center justify-between",
26716
+ children: [/* @__PURE__ */ jsx("p", {
26717
+ className: "text-[10px] font-bold tracking-widest text-neutral-900 uppercase",
26718
+ children: e
26719
+ }), /* @__PURE__ */ jsx("span", {
26720
+ className: badgeStyles({ status: n }),
26721
+ children: t
26722
+ })]
26723
+ }),
26724
+ /* @__PURE__ */ jsx("div", {
26725
+ className: "h-1.5 overflow-hidden rounded-full bg-neutral-200",
26726
+ children: /* @__PURE__ */ jsx("div", {
26727
+ className: barStyles({ status: n }),
26728
+ style: { width: `${c}%` }
26729
+ })
26730
+ }),
26731
+ /* @__PURE__ */ jsxs("div", {
26732
+ className: "flex items-center justify-between text-[11px] text-neutral-700",
26733
+ children: [/* @__PURE__ */ jsxs("span", { children: [
26734
+ "Actual:",
26735
+ " ",
26736
+ /* @__PURE__ */ jsx("span", {
26737
+ className: "font-semibold text-neutral-800",
26738
+ children: r
26739
+ })
26740
+ ] }), /* @__PURE__ */ jsxs("span", { children: [
26741
+ "Window:",
26742
+ " ",
26743
+ /* @__PURE__ */ jsx("span", {
26744
+ className: "font-semibold text-neutral-800",
26745
+ children: i
26746
+ })
26747
+ ] })]
26748
+ })
26749
+ ]
26750
+ });
26751
+ }
26752
+ var SEVERITY_CONFIG = {
26753
+ fire: {
26754
+ icon: FireFillIcon,
26755
+ text: "text-tertiary-500-variant-2",
26756
+ label: "Fire"
26757
+ },
26758
+ spark: {
26759
+ icon: InsightFillIcon,
26760
+ text: "text-primary-500",
26761
+ label: "Spark"
26762
+ },
26763
+ watching: {
26764
+ icon: void 0,
26765
+ text: "text-neutral-700-variant-1",
26766
+ label: "Watching"
26767
+ }
26768
+ }, STATUS_BADGE_STYLES = {
26769
+ fire: {
26770
+ badge: "bg-red-50 text-red-700 border-red-200",
26771
+ dot: "bg-red-500",
26772
+ accentBar: "border-l-[3px] border-l-red-500"
26773
+ },
26774
+ review: {
26775
+ badge: "bg-amber-50 text-amber-700 border-amber-200",
26776
+ dot: "bg-amber-400",
26777
+ accentBar: "border-l-[3px] border-l-amber-400"
26778
+ },
26779
+ neutral: {
26780
+ badge: "bg-neutral-100 text-neutral-700 border-neutral-300",
26781
+ dot: "bg-neutral-400",
26782
+ accentBar: "border-l-[3px] border-l-neutral-400"
26783
+ }
26784
+ };
26785
+ function SectionCard({ title: e, titleAdornment: t, children: n }) {
26786
+ return /* @__PURE__ */ jsxs("div", {
26787
+ className: "rounded-xl border border-neutral-200-variant-1 bg-white-variant-8 px-4 py-3.5",
26788
+ children: [/* @__PURE__ */ jsxs("div", {
26789
+ className: "mb-2 flex items-center gap-1.5",
26790
+ children: [/* @__PURE__ */ jsx("p", {
26791
+ className: "text-[10px] font-bold tracking-widest text-neutral-900 uppercase",
26792
+ children: e
26793
+ }), t]
26794
+ }), n]
26795
+ });
26796
+ }
26797
+ function OpenSourceIcon() {
26798
+ return /* @__PURE__ */ jsxs("svg", {
26799
+ width: "11",
26800
+ height: "11",
26801
+ viewBox: "0 0 24 24",
26802
+ fill: "none",
26803
+ stroke: "currentColor",
26804
+ strokeWidth: "2",
26805
+ strokeLinecap: "round",
26806
+ strokeLinejoin: "round",
26807
+ children: [
26808
+ /* @__PURE__ */ jsx("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }),
26809
+ /* @__PURE__ */ jsx("polyline", { points: "15 3 21 3 21 9" }),
26810
+ /* @__PURE__ */ jsx("line", {
26811
+ x1: "10",
26812
+ y1: "14",
26813
+ x2: "21",
26814
+ y2: "3"
26815
+ })
26816
+ ]
26817
+ });
26818
+ }
26819
+ function CheckActionIcon() {
26820
+ return /* @__PURE__ */ jsx("svg", {
26821
+ width: "11",
26822
+ height: "11",
26823
+ viewBox: "0 0 24 24",
26824
+ fill: "none",
26825
+ stroke: "currentColor",
26826
+ strokeWidth: "2.5",
26827
+ strokeLinecap: "round",
26828
+ strokeLinejoin: "round",
26829
+ children: /* @__PURE__ */ jsx("path", { d: "M20 6 9 17l-5-5" })
26830
+ });
26831
+ }
26832
+ function DismissActionIcon() {
26833
+ return /* @__PURE__ */ jsx("svg", {
26834
+ width: "11",
26835
+ height: "11",
26836
+ viewBox: "0 0 24 24",
26837
+ fill: "none",
26838
+ stroke: "currentColor",
26839
+ strokeWidth: "2.5",
26840
+ strokeLinecap: "round",
26841
+ strokeLinejoin: "round",
26842
+ children: /* @__PURE__ */ jsx("path", { d: "M18 6 6 18M6 6l12 12" })
26843
+ });
26844
+ }
26845
+ function CopyActionIcon() {
26846
+ return /* @__PURE__ */ jsxs("svg", {
26847
+ width: "11",
26848
+ height: "11",
26849
+ viewBox: "0 0 24 24",
26850
+ fill: "none",
26851
+ stroke: "currentColor",
26852
+ strokeWidth: "2",
26853
+ strokeLinecap: "round",
26854
+ strokeLinejoin: "round",
26855
+ children: [/* @__PURE__ */ jsx("rect", {
26856
+ x: "9",
26857
+ y: "9",
26858
+ width: "13",
26859
+ height: "13",
26860
+ rx: "2",
26861
+ ry: "2"
26862
+ }), /* @__PURE__ */ jsx("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })]
26863
+ });
26864
+ }
26865
+ function GuardrailTooltip({ text: e }) {
26866
+ return /* @__PURE__ */ jsx(InfoTooltip, {
26867
+ content: e,
26868
+ children: /* @__PURE__ */ jsx("span", {
26869
+ className: "flex text-neutral-600 transition-colors hover:text-neutral-900",
26870
+ children: /* @__PURE__ */ jsx("svg", {
26871
+ width: "13",
26872
+ height: "13",
26873
+ viewBox: "0 0 24 24",
26874
+ fill: "currentColor",
26875
+ "aria-hidden": "true",
26876
+ children: /* @__PURE__ */ jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" })
26877
+ })
26878
+ })
26879
+ });
26880
+ }
26881
+ function SignalDetailPanel({ title: e, severity: t, slaDurationLabel: n, statusLabel: r, statusTone: i, sourceType: a, sourceLink: o, clientCompany: s, contactName: c, teamCompanyName: l, recipientLabel: u, sla: f, claim: p, sameThreadGuardrail: h, evidenceItems: O, nextStep: A, actionRationale: Ks, rankingRationale: R, dismissOptions: B, onClose: V, onResolve: qs, onDismiss: Js, className: Ys, ...Xs }) {
26882
+ let H = SEVERITY_CONFIG[t], [Zs, Qs] = useState(!1), [$s, ec] = useState(null), [tc, nc] = useState(!1), rc = () => {
26883
+ let t = [
26884
+ e,
26885
+ "",
26886
+ p,
26887
+ "",
26888
+ h
26889
+ ];
26890
+ navigator.clipboard.writeText(t.join("\n")).catch(() => {}), nc(!0), setTimeout(() => nc(!1), 2e3);
26891
+ }, ic = () => {
26892
+ Js?.($s ?? void 0), Qs(!1), ec(null);
26893
+ };
26894
+ return /* @__PURE__ */ jsxs("div", {
26895
+ className: cn("flex h-full flex-col overflow-y-auto bg-white-variant-8", STATUS_BADGE_STYLES[i].accentBar, Ys),
26896
+ ...Xs,
26897
+ children: [/* @__PURE__ */ jsxs("div", {
26898
+ className: "sticky top-0 z-20 shrink-0 border-b border-neutral-200-variant-1 bg-white-variant-8 px-4 pt-5 pb-4",
26899
+ children: [/* @__PURE__ */ jsxs("div", {
26900
+ className: "flex items-start justify-between gap-3",
26901
+ children: [/* @__PURE__ */ jsxs("div", {
26902
+ className: "flex min-w-0 flex-1 flex-wrap items-center gap-2.5",
26903
+ children: [
26904
+ /* @__PURE__ */ jsx("h2", {
26905
+ className: "truncate text-[15px] leading-snug font-semibold text-neutral-900",
26906
+ children: e
26907
+ }),
26908
+ /* @__PURE__ */ jsxs("span", {
26909
+ className: cn("inline-flex shrink-0 items-center gap-1 text-[12px] font-semibold", H.text),
26910
+ children: [
26911
+ H.icon && /* @__PURE__ */ jsx(H.icon, { size: 16 }),
26912
+ H.label,
26913
+ n && ` · ${n}`
26914
+ ]
26915
+ }),
26916
+ /* @__PURE__ */ jsxs("span", {
26917
+ className: cn("inline-flex shrink-0 items-center gap-1.5 rounded-full border px-2 py-0.5 text-[11px] font-medium", STATUS_BADGE_STYLES[i].badge),
26918
+ children: [/* @__PURE__ */ jsx("span", { className: cn("h-1.5 w-1.5 shrink-0 rounded-full", STATUS_BADGE_STYLES[i].dot) }), r]
26919
+ })
26920
+ ]
26921
+ }), V && /* @__PURE__ */ jsx("button", {
26922
+ type: "button",
26923
+ onClick: V,
26924
+ "aria-label": "Close",
26925
+ className: "flex h-7 w-7 shrink-0 items-center justify-center rounded-lg hover:bg-neutral-100",
26926
+ children: /* @__PURE__ */ jsx("svg", {
26927
+ width: "14",
26928
+ height: "14",
26929
+ viewBox: "0 0 24 24",
26930
+ fill: "none",
26931
+ stroke: "currentColor",
26932
+ strokeWidth: "2",
26933
+ children: /* @__PURE__ */ jsx("path", {
26934
+ d: "M18 6 6 18M6 6l12 12",
26935
+ strokeLinecap: "round"
26936
+ })
26937
+ })
26938
+ })]
26939
+ }), (c || l || u) && /* @__PURE__ */ jsxs("div", {
26940
+ className: "mt-2 flex flex-col gap-1.5 rounded-lg border border-neutral-200-variant-1 bg-neutral-50 px-3 py-2.5",
26941
+ children: [c && /* @__PURE__ */ jsxs("div", {
26942
+ className: "flex items-center gap-2 min-w-0",
26943
+ children: [
26944
+ /* @__PURE__ */ jsx("span", {
26945
+ className: "w-9 shrink-0 text-[10px] font-semibold tracking-wide text-neutral-700-variant-1 uppercase",
26946
+ children: "From"
26947
+ }),
26948
+ /* @__PURE__ */ jsx("span", {
26949
+ className: "flex h-[18px] w-[18px] shrink-0 items-center justify-center rounded-full bg-neutral-200 text-[9px] font-bold text-neutral-700-variant-1",
26950
+ children: c.charAt(0).toUpperCase()
26951
+ }),
26952
+ /* @__PURE__ */ jsx("span", {
26953
+ className: "truncate text-[12px] font-semibold text-neutral-900",
26954
+ children: c
26955
+ }),
26956
+ s && /* @__PURE__ */ jsx("span", {
26957
+ className: "shrink-0 truncate rounded-full border border-neutral-300 bg-white px-2 py-px text-[10px] font-medium text-neutral-700-variant-1",
26958
+ children: s
26959
+ }),
26960
+ /* @__PURE__ */ jsx(RoleBadge, { role: "client" })
26961
+ ]
26962
+ }), (l || u) && /* @__PURE__ */ jsxs("div", {
26963
+ className: "flex items-center gap-2 min-w-0",
26964
+ children: [
26965
+ /* @__PURE__ */ jsx("span", {
26966
+ className: "w-9 shrink-0 text-[10px] font-semibold tracking-wide text-neutral-700-variant-1 uppercase",
26967
+ children: "To"
26968
+ }),
26969
+ /* @__PURE__ */ jsx("span", {
26970
+ className: "flex h-[18px] w-[18px] shrink-0 items-center justify-center",
26971
+ children: jsx(a === "gmail" ? GmailIcon : SlackIcon, { size: 15 })
26972
+ }),
26973
+ l && /* @__PURE__ */ jsx("span", {
26974
+ className: "truncate text-[12px] font-semibold text-neutral-900",
26975
+ children: l
26976
+ }),
26977
+ u && /* @__PURE__ */ jsx("span", {
26978
+ className: "shrink-0 truncate rounded-full border border-neutral-300 bg-white px-2 py-px text-[10px] font-medium text-neutral-700-variant-1",
26979
+ children: u
26980
+ }),
26981
+ /* @__PURE__ */ jsx(RoleBadge, { role: "team" })
26982
+ ]
26983
+ })]
26984
+ })]
26985
+ }), /* @__PURE__ */ jsxs("div", {
26986
+ className: "flex flex-col gap-3 p-4",
26987
+ children: [
26988
+ f ? /* @__PURE__ */ jsxs("div", {
26989
+ className: "grid grid-cols-1 items-stretch gap-3 xl:grid-cols-2",
26990
+ children: [/* @__PURE__ */ jsx("div", {
26991
+ className: "rounded-xl border border-neutral-200-variant-1 bg-white-variant-8 px-4 py-3.5",
26992
+ children: /* @__PURE__ */ jsx(SlaProgressBar, { ...f })
26993
+ }), /* @__PURE__ */ jsx(SectionCard, {
26994
+ title: "What QTalo found",
26995
+ titleAdornment: /* @__PURE__ */ jsx(GuardrailTooltip, { text: h }),
26996
+ children: /* @__PURE__ */ jsx("p", {
26997
+ className: "text-sm leading-snug text-neutral-800",
26998
+ children: p
26999
+ })
27000
+ })]
27001
+ }) : /* @__PURE__ */ jsx(SectionCard, {
27002
+ title: "What QTalo found",
27003
+ titleAdornment: /* @__PURE__ */ jsx(GuardrailTooltip, { text: h }),
27004
+ children: /* @__PURE__ */ jsx("p", {
27005
+ className: "text-sm leading-snug text-neutral-800",
27006
+ children: p
27007
+ })
27008
+ }),
27009
+ /* @__PURE__ */ jsx(SectionCard, {
27010
+ title: "Evidence analysis",
27011
+ children: /* @__PURE__ */ jsx(EvidenceTimeline, {
27012
+ items: O,
27013
+ canExpandThread: !0,
27014
+ tone: i,
27015
+ threadTitle: e,
27016
+ clientCompany: s,
27017
+ contactName: c,
27018
+ teamCompanyName: l,
27019
+ recipientLabel: u
27020
+ })
27021
+ }),
27022
+ A && /* @__PURE__ */ jsxs(SectionCard, {
27023
+ title: "Next step",
27024
+ children: [/* @__PURE__ */ jsx("p", {
27025
+ className: "text-sm font-semibold text-neutral-900",
27026
+ children: A
27027
+ }), Ks && /* @__PURE__ */ jsx("p", {
27028
+ className: "mt-1 text-sm text-neutral-700",
27029
+ children: Ks
27030
+ })]
27031
+ }),
27032
+ R && /* @__PURE__ */ jsxs("div", {
27033
+ className: "rounded-xl border border-neutral-200-variant-1 bg-neutral-50 px-4 py-3.5",
27034
+ children: [/* @__PURE__ */ jsx("p", {
27035
+ className: "mb-2 text-[10px] font-bold tracking-widest text-neutral-900 uppercase",
27036
+ children: "Why ranked first"
27037
+ }), /* @__PURE__ */ jsx("p", {
27038
+ className: "text-sm text-neutral-800",
27039
+ children: R
27040
+ })]
27041
+ }),
27042
+ /* @__PURE__ */ jsx(SectionCard, {
27043
+ title: "What do you want to do?",
27044
+ children: Zs ? /* @__PURE__ */ jsxs("div", {
27045
+ className: "flex flex-col gap-2",
27046
+ children: [
27047
+ /* @__PURE__ */ jsx("p", {
27048
+ className: "text-[12px] text-neutral-700-variant-1",
27049
+ children: "Why isn't this useful?"
27050
+ }),
27051
+ /* @__PURE__ */ jsx("div", {
27052
+ className: "flex flex-wrap gap-1.5",
27053
+ children: B.map((e) => /* @__PURE__ */ jsx("button", {
27054
+ type: "button",
27055
+ onClick: () => ec((t) => t === e.id ? null : e.id),
27056
+ className: $s === e.id ? "rounded-full bg-neutral-800 px-2.5 py-1 text-[11px] font-medium text-white" : "rounded-full border border-neutral-300 bg-white px-2.5 py-1 text-[11px] font-medium text-neutral-700 hover:border-neutral-500",
27057
+ children: e.label
27058
+ }, e.id))
27059
+ }),
27060
+ /* @__PURE__ */ jsxs("div", {
27061
+ className: "mt-1 flex items-center gap-3",
27062
+ children: [
27063
+ /* @__PURE__ */ jsx("button", {
27064
+ type: "button",
27065
+ onClick: ic,
27066
+ className: "rounded-lg bg-neutral-800 px-3 py-1.5 text-xs font-semibold text-white",
27067
+ children: "Confirm"
27068
+ }),
27069
+ /* @__PURE__ */ jsx("button", {
27070
+ type: "button",
27071
+ onClick: () => {
27072
+ Qs(!1), ec(null);
27073
+ },
27074
+ className: "text-xs font-medium text-neutral-700-variant-1 hover:underline",
27075
+ children: "Cancel"
27076
+ }),
27077
+ /* @__PURE__ */ jsx("button", {
27078
+ type: "button",
27079
+ onClick: qs,
27080
+ className: "ml-auto text-xs font-medium text-primary-500 hover:underline",
27081
+ children: "Mark handled instead"
27082
+ })
27083
+ ]
27084
+ })
27085
+ ]
27086
+ }) : /* @__PURE__ */ jsxs("div", {
27087
+ className: "flex flex-wrap items-center gap-2",
27088
+ children: [
27089
+ o && /* @__PURE__ */ jsxs("a", {
27090
+ href: o,
27091
+ target: "_blank",
27092
+ rel: "noopener noreferrer",
27093
+ className: "inline-flex items-center gap-1.5 rounded-lg border border-neutral-300 bg-neutral-100 px-3 py-1.5 text-xs font-semibold text-neutral-700 transition-colors hover:bg-neutral-200",
27094
+ children: [/* @__PURE__ */ jsx(OpenSourceIcon, {}), "Open source"]
27095
+ }),
27096
+ /* @__PURE__ */ jsxs("button", {
27097
+ type: "button",
27098
+ onClick: qs,
27099
+ className: "inline-flex items-center gap-1.5 rounded-lg border border-green-400 bg-green-50 px-3 py-1.5 text-xs font-semibold text-green-800 transition-colors hover:bg-green-100",
27100
+ children: [/* @__PURE__ */ jsx(CheckActionIcon, {}), "Mark handled"]
27101
+ }),
27102
+ /* @__PURE__ */ jsxs("button", {
27103
+ type: "button",
27104
+ onClick: () => Qs(!0),
27105
+ className: "inline-flex items-center gap-1.5 rounded-lg border border-neutral-300 bg-neutral-100 px-3 py-1.5 text-xs font-semibold text-neutral-700 transition-colors hover:bg-neutral-200",
27106
+ children: [/* @__PURE__ */ jsx(DismissActionIcon, {}), "Mark not useful"]
27107
+ }),
27108
+ /* @__PURE__ */ jsxs("button", {
27109
+ type: "button",
27110
+ onClick: rc,
27111
+ className: tc ? "inline-flex items-center gap-1.5 rounded-lg border border-green-400 bg-green-50 px-3 py-1.5 text-xs font-semibold text-green-800 transition-colors" : "inline-flex items-center gap-1.5 rounded-lg border border-neutral-300 bg-neutral-100 px-3 py-1.5 text-xs font-semibold text-neutral-700 transition-colors hover:bg-neutral-200",
27112
+ children: [jsx(tc ? CheckActionIcon : CopyActionIcon, {}), tc ? "Copied" : "Copy evidence"]
27113
+ })
27114
+ ]
27115
+ })
27116
+ })
27117
+ ]
27118
+ })]
27119
+ });
27120
+ }
27121
+ function SignalDetailPanelSkeleton({ className: e }) {
27122
+ return /* @__PURE__ */ jsxs("div", {
27123
+ className: cn("flex h-full flex-col overflow-y-auto bg-white-variant-8", e),
27124
+ children: [/* @__PURE__ */ jsxs("div", {
27125
+ className: "shrink-0 border-b border-neutral-200-variant-1 px-4 pt-5 pb-4",
27126
+ children: [/* @__PURE__ */ jsxs("div", {
27127
+ className: "flex items-start justify-between gap-3",
27128
+ children: [/* @__PURE__ */ jsxs("div", {
27129
+ className: "flex min-w-0 flex-1 items-center gap-2.5",
27130
+ children: [
27131
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-7/12" }),
27132
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-24 shrink-0" }),
27133
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-20 shrink-0 rounded-full" })
27134
+ ]
27135
+ }), /* @__PURE__ */ jsx(Skeleton, { className: "size-7 shrink-0 rounded-lg" })]
27136
+ }), /* @__PURE__ */ jsxs("div", {
27137
+ className: "mt-2 flex flex-col gap-1.5 rounded-lg border border-neutral-200-variant-1 bg-neutral-50 px-3 py-2.5",
27138
+ children: [/* @__PURE__ */ jsxs("div", {
27139
+ className: "flex items-center gap-2",
27140
+ children: [
27141
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-9" }),
27142
+ /* @__PURE__ */ jsx(Skeleton, { className: "size-[18px] rounded-full" }),
27143
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-24" })
27144
+ ]
27145
+ }), /* @__PURE__ */ jsxs("div", {
27146
+ className: "flex items-center gap-2",
27147
+ children: [
27148
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-9" }),
27149
+ /* @__PURE__ */ jsx(Skeleton, { className: "size-[18px] rounded-full" }),
27150
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-24" })
27151
+ ]
27152
+ })]
27153
+ })]
27154
+ }), /* @__PURE__ */ jsxs("div", {
27155
+ className: "flex flex-col gap-3 p-4",
27156
+ children: [
27157
+ /* @__PURE__ */ jsxs("div", {
27158
+ className: "grid grid-cols-1 gap-3 xl:grid-cols-2",
27159
+ children: [/* @__PURE__ */ jsxs("div", {
27160
+ className: "rounded-xl border border-neutral-200-variant-1 bg-white-variant-8 px-4 py-3.5",
27161
+ children: [
27162
+ /* @__PURE__ */ jsx(Skeleton, { className: "mb-3 h-3 w-8/12" }),
27163
+ /* @__PURE__ */ jsx(Skeleton, { className: "mb-2.5 h-1.5 w-full rounded-full" }),
27164
+ /* @__PURE__ */ jsxs("div", {
27165
+ className: "flex items-center justify-between",
27166
+ children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-16" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-16" })]
27167
+ })
27168
+ ]
27169
+ }), /* @__PURE__ */ jsxs("div", {
27170
+ className: "rounded-xl border border-neutral-200-variant-1 bg-white-variant-8 px-4 py-3.5",
27171
+ children: [/* @__PURE__ */ jsx(Skeleton, { className: "mb-2 h-3 w-8/12" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-full" })]
27172
+ })]
27173
+ }),
27174
+ /* @__PURE__ */ jsxs("div", {
27175
+ className: "rounded-xl border border-neutral-200-variant-1 bg-white-variant-8 px-4 py-3.5",
27176
+ children: [/* @__PURE__ */ jsx(Skeleton, { className: "mb-3 h-3 w-6/12" }), /* @__PURE__ */ jsxs("div", {
27177
+ className: "flex flex-col gap-2",
27178
+ children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-14 w-full rounded-xl" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-12 w-full rounded-lg" })]
27179
+ })]
27180
+ }),
27181
+ /* @__PURE__ */ jsxs("div", {
27182
+ className: "rounded-xl border border-neutral-200-variant-1 bg-white-variant-8 px-4 py-3.5",
27183
+ children: [/* @__PURE__ */ jsx(Skeleton, { className: "mb-2 h-3 w-4/12" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-9/12" })]
27184
+ }),
27185
+ /* @__PURE__ */ jsxs("div", {
27186
+ className: "rounded-xl border border-neutral-200-variant-1 bg-white-variant-8 px-4 py-3.5",
27187
+ children: [/* @__PURE__ */ jsx(Skeleton, { className: "mb-3 h-3 w-8/12" }), /* @__PURE__ */ jsxs("div", {
27188
+ className: "flex items-center gap-2",
27189
+ children: [
27190
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-24 rounded-lg" }),
27191
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-24 rounded-lg" }),
27192
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-24 rounded-lg" })
27193
+ ]
27194
+ })]
27195
+ })
27196
+ ]
27197
+ })]
27198
+ });
27199
+ }
25800
27200
  var DEFAULT_DURATION = 4e3, DEFAULT_POSITION = "bottom-right";
25801
27201
  function buildCallbacks({ onOpen: e, onClose: t, onAutoClose: n, onDismiss: r }) {
25802
27202
  return e || t || n || r ? {
@@ -26020,6 +27420,6 @@ function QtaloBlueImage({ size: e = 40, className: t, ...n }) {
26020
27420
  }) })]
26021
27421
  });
26022
27422
  }
26023
- export { AVATAR_COLOR, AVATAR_COLOR_KEYS, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AccountIcon, AccountInfo, ActionMenu, ActionMenuItem, AddCircleIcon, AddIcon, ArrowIcon, AsanaIcon, Avatar, Badge, BulkActions, BulkActionsSkeleton, Button, CalendarIcon, Card, CardContent, CardFooter, CardHeader, CardLayout, CardSidebar, CardTitle, CheckCircleEmptyIcon, CheckCircleIcon, CheckSquareIcon, Checkbox, CheckboxIcon, ClickUpIcon, CloseIcon, CompactDensityIcon, CopyIcon, DarkIcon, DatePicker, Divider, Dropdown, DropdownContext, DropdownMenu, DropdownMenuItem, EVENT_CARD_HEIGHT_SIZE, EVENT_SUMMARY_CARD_HEIGHT_SIZE, EmptyBoxIcon, EventCard, EventCardSkeleton, EventDetail, EventDetailContentCalendar, EventDetailContentEmail, EventDetailContentHeader, EventDetailContentMessage, EventDetailContentTicket, EventDetailFollowUp, EventDetailHeader, EventDetailPriority, EventDetailSkeleton, EventDetailSummary, EventEmptyState, EventSummaryCard, EventSummaryCardSkeleton, EventSummaryFireButton, ExternalLinkIcon, EyeIcon, FilterBar, FilterBarSkeleton, FilterButton, FireFillIcon, FireIcon, GmailIcon, GoogleCalendarIcon, HelpPanel, HelpPanelEngine, HomeIcon, Icon, IconButton, IconCountButton, IconCountButtonSkeleton, InboxIcon, InfoTooltip, Input, InsightFillIcon, InsightIcon, IntegrationBar, IntegrationBarSkeleton, IntegrationItem, IntegrationItemSkeleton, IntegrationsCard, JiraIcon, LightIcon, LogoIcon, MailIcon, MinusIcon, MoreIcon, NoEyeIcon, NormalDensityIcon, NotFireIcon, ONBOARDING_DISMISSED_STORAGE_KEY, Onboarding, OnboardingCard, OnboardingEngine, OutlookCalendarIcon, OutlookIcon, Pressable, QtaloBlueImage, QtaloImage, ReadIcon, ReplyIoIcon, RichContent, SearchIcon, SearchInput, SignOutIcon, Skeleton, SlackIcon, StatusBadge, StopPropagation, SummaryIcon, SystemIcon, TeamsIcon, Toaster, Tooltip, UnreadIcon, capitalize, cn, colors, formatDate, formatDateRange, formatTimestamp, generateCalendarDays, getDaysInMonth, getFirstDayOfMonth, getInitials, getMonthName, getWeekdays, isDateBefore, isDateInRange, isSameDay, isToday, normalizeContent, parseDate, pickColorFromPalette, stringHash, toMondayBased, toast, toastStore, useAccordion, useDropdown, useLongPress };
27423
+ export { AVATAR_COLOR, AVATAR_COLOR_KEYS, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AccountIcon, AccountInfo, AccountOutlineIcon, ActionMenu, ActionMenuItem, AddCircleIcon, AddIcon, ArrowIcon, AsanaIcon, Avatar, Badge, BetaResizeHandle, BuildingIcon, BuildingOutlineIcon, BulkActions, BulkActionsSkeleton, Button, CalendarIcon, Card, CardContent, CardFooter, CardHeader, CardLayout, CardSidebar, CardTitle, CheckCircleEmptyIcon, CheckCircleIcon, CheckIcon, CheckSquareIcon, Checkbox, CheckboxIcon, ClickUpIcon, CloseBoldIcon, CloseIcon, CompactDensityIcon, CopyIcon, DarkIcon, DatePicker, Divider, Dropdown, DropdownContext, DropdownMenu, DropdownMenuItem, EVENT_CARD_HEIGHT_SIZE, EVENT_SUMMARY_CARD_HEIGHT_SIZE, EmptyBoxIcon, EventCard, EventCardSkeleton, EventDetail, EventDetailContentCalendar, EventDetailContentEmail, EventDetailContentHeader, EventDetailContentMessage, EventDetailContentTicket, EventDetailFollowUp, EventDetailHeader, EventDetailPriority, EventDetailSkeleton, EventDetailSummary, EventEmptyState, EventSummaryCard, EventSummaryCardSkeleton, EventSummaryFireButton, EvidenceTimeline, ExternalLinkIcon, EyeFillIcon, EyeIcon, FilterBar, FilterBarSkeleton, FilterButton, FireFillIcon, FireIcon, GmailIcon, GoogleCalendarIcon, HelpPanel, HelpPanelEngine, HomeFillIcon, HomeIcon, Icon, IconButton, IconCountButton, IconCountButtonSkeleton, InboxIcon, InfoTooltip, Input, InsightFillIcon, InsightIcon, IntegrationBar, IntegrationBarSkeleton, IntegrationItem, IntegrationItemSkeleton, IntegrationsCard, JiraIcon, LightIcon, LogoIcon, MailIcon, MinusIcon, MoreIcon, NoEyeIcon, NormalDensityIcon, NotFireIcon, ONBOARDING_DISMISSED_STORAGE_KEY, Onboarding, OnboardingCard, OnboardingEngine, OutlookCalendarIcon, OutlookIcon, PatternIcon, Pressable, PulseFilterChip, PulseFilterChipSkeleton, QtaloBlueImage, QtaloImage, ReadIcon, ReplyIoIcon, RichContent, RoleBadge, SearchIcon, SearchInput, SearchWithSuggestions, SignOutIcon, SignalCard, SignalCardSkeleton, SignalClusterCard, SignalClusterCardSkeleton, SignalDetailPanel, SignalDetailPanelSkeleton, Skeleton, SlaProgressBar, SlackIcon, StatusBadge, StopPropagation, SummaryIcon, SystemIcon, TeamsIcon, Toaster, Tooltip, UnreadIcon, WarningIcon, capitalize, cn, colors, formatDate, formatDateRange, formatTimestamp, generateCalendarDays, getDaysInMonth, getFirstDayOfMonth, getInitials, getMonthName, getWeekdays, isDateBefore, isDateInRange, isSameDay, isToday, normalizeContent, parseDate, pickColorFromPalette, stringHash, toMondayBased, toast, toastStore, useAccordion, useDropdown, useLongPress };
26024
27424
 
26025
27425
  //# sourceMappingURL=index.js.map