qt-ui-kit 1.0.112 → 1.0.114

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.mjs CHANGED
@@ -15485,27 +15485,27 @@ function InsightsIcon2({
15485
15485
  return {
15486
15486
  viewBox: "0 0 16 16",
15487
15487
  path: /* @__PURE__ */ jsxs14(Fragment10, { children: [
15488
- /* @__PURE__ */ jsx19("path", { d: "M7.57056 8.23242C8.09352 9.12376 8.86065 9.86065 9.78247 10.3662C8.86107 10.8715 8.09453 11.6084 7.57153 12.499C7.04828 11.608 6.28062 10.8715 5.35864 10.3662C6.28064 9.86068 7.04747 9.12371 7.57056 8.23242Z", fill: "#4F3ED0", stroke: "#4F3ED0", "stroke-width": "1.5" }),
15489
- /* @__PURE__ */ jsx19("path", { d: "M10.1426 4.60156C10.3709 4.92296 10.6514 5.20403 10.9727 5.43262C10.6514 5.66102 10.371 5.94244 10.1426 6.26367C9.91394 5.94224 9.63309 5.66111 9.31152 5.43262C9.63308 5.20398 9.91402 4.92318 10.1426 4.60156Z", fill: "#4F3ED0", stroke: "#4F3ED0", "stroke-width": "1.3" }),
15490
- /* @__PURE__ */ jsx19("path", { d: "M6.28516 3.18848C6.43792 3.38705 6.61599 3.56487 6.81445 3.71777C6.61598 3.87054 6.438 4.04864 6.28516 4.24707C6.13225 4.04861 5.95444 3.87053 5.75586 3.71777C5.95443 3.56487 6.1323 3.38705 6.28516 3.18848Z", fill: "#4F3ED0", stroke: "#4F3ED0", "stroke-width": "1.2" })
15488
+ /* @__PURE__ */ jsx19("path", { d: "M7.57056 8.23242C8.09352 9.12376 8.86065 9.86065 9.78247 10.3662C8.86107 10.8715 8.09453 11.6084 7.57153 12.499C7.04828 11.608 6.28062 10.8715 5.35864 10.3662C6.28064 9.86068 7.04747 9.12371 7.57056 8.23242Z", fill: "#4F3ED0", stroke: "#4F3ED0", strokeWidth: "1.5" }),
15489
+ /* @__PURE__ */ jsx19("path", { d: "M10.1426 4.60156C10.3709 4.92296 10.6514 5.20403 10.9727 5.43262C10.6514 5.66102 10.371 5.94244 10.1426 6.26367C9.91394 5.94224 9.63309 5.66111 9.31152 5.43262C9.63308 5.20398 9.91402 4.92318 10.1426 4.60156Z", fill: "#4F3ED0", stroke: "#4F3ED0", strokeWidth: "1.3" }),
15490
+ /* @__PURE__ */ jsx19("path", { d: "M6.28516 3.18848C6.43792 3.38705 6.61599 3.56487 6.81445 3.71777C6.61598 3.87054 6.438 4.04864 6.28516 4.24707C6.13225 4.04861 5.95444 3.87053 5.75586 3.71777C5.95443 3.56487 6.1323 3.38705 6.28516 3.18848Z", fill: "#4F3ED0", stroke: "#4F3ED0", strokeWidth: "1.2" })
15491
15491
  ] })
15492
15492
  };
15493
15493
  case 20:
15494
15494
  return {
15495
15495
  viewBox: "0 0 20 20",
15496
15496
  path: /* @__PURE__ */ jsxs14(Fragment10, { children: [
15497
- /* @__PURE__ */ jsx19("path", { d: "M14.999 14.248C16.2754 17.6222 19.0787 20.2871 22.6006 21.5205C19.0788 22.7541 16.2762 25.4195 15 28.793C13.7231 25.4191 10.9201 22.7539 7.39746 21.5205C10.9195 20.2871 13.7226 17.6216 14.999 14.248Z", fill: "#4F3ED0", stroke: "#4F3ED0", "stroke-width": "1.5" }),
15497
+ /* @__PURE__ */ jsx19("path", { d: "M14.999 14.248C16.2754 17.6222 19.0787 20.2871 22.6006 21.5205C19.0788 22.7541 16.2762 25.4195 15 28.793C13.7231 25.4191 10.9201 22.7539 7.39746 21.5205C10.9195 20.2871 13.7226 17.6216 14.999 14.248Z", fill: "#4F3ED0", stroke: "#4F3ED0", strokeWidth: "1.5" }),
15498
15498
  /* @__PURE__ */ jsx19("path", { d: "M21 6.3418C21.7345 7.96846 23.0424 9.27714 24.6689 10.0117C23.0433 10.7457 21.7336 12.0531 20.999 13.6787C20.2642 12.0536 18.9559 10.7456 17.3301 10.0117C18.9568 9.27716 20.2657 7.96871 21 6.3418Z", fill: "#4F3ED0", stroke: "#4F3ED0", "stroke-width": "1.3" }),
15499
- /* @__PURE__ */ jsx19("path", { d: "M12 3.25977C12.5821 4.45668 13.5524 5.42629 14.749 6.00879C13.5529 6.59057 12.5825 7.5608 12 8.75684C11.4177 7.56091 10.4473 6.59157 9.25098 6.00977C10.4479 5.42726 11.4177 4.45653 12 3.25977Z", fill: "#4F3ED0", stroke: "#4F3ED0", "stroke-width": "1.2" })
15499
+ /* @__PURE__ */ jsx19("path", { d: "M12 3.25977C12.5821 4.45668 13.5524 5.42629 14.749 6.00879C13.5529 6.59057 12.5825 7.5608 12 8.75684C11.4177 7.56091 10.4473 6.59157 9.25098 6.00977C10.4479 5.42726 11.4177 4.45653 12 3.25977Z", fill: "#4F3ED0", stroke: "#4F3ED0", strokeWidth: "1.2" })
15500
15500
  ] })
15501
15501
  };
15502
15502
  case 24:
15503
15503
  return {
15504
15504
  viewBox: "0 0 24 24",
15505
15505
  path: /* @__PURE__ */ jsxs14(Fragment10, { children: [
15506
- /* @__PURE__ */ jsx19("path", { d: "M14.999 14.248C16.2754 17.6222 19.0787 20.2871 22.6006 21.5205C19.0788 22.7541 16.2762 25.4195 15 28.793C13.7231 25.4191 10.9201 22.7539 7.39746 21.5205C10.9195 20.2871 13.7226 17.6216 14.999 14.248Z", fill: "#4F3ED0", stroke: "#4F3ED0", "stroke-width": "1.5" }),
15507
- /* @__PURE__ */ jsx19("path", { d: "M21 6.3418C21.7345 7.96846 23.0424 9.27714 24.6689 10.0117C23.0433 10.7457 21.7336 12.0531 20.999 13.6787C20.2642 12.0536 18.9559 10.7456 17.3301 10.0117C18.9568 9.27716 20.2657 7.96871 21 6.3418Z", fill: "#4F3ED0", stroke: "#4F3ED0", "stroke-width": "1.3" }),
15508
- /* @__PURE__ */ jsx19("path", { d: "M12 3.25977C12.5821 4.45668 13.5524 5.42629 14.749 6.00879C13.5529 6.59057 12.5825 7.5608 12 8.75684C11.4177 7.56091 10.4473 6.59157 9.25098 6.00977C10.4479 5.42726 11.4177 4.45653 12 3.25977Z", fill: "#4F3ED0", stroke: "#4F3ED0", "stroke-width": "1.2" })
15506
+ /* @__PURE__ */ jsx19("path", { d: "M14.999 14.248C16.2754 17.6222 19.0787 20.2871 22.6006 21.5205C19.0788 22.7541 16.2762 25.4195 15 28.793C13.7231 25.4191 10.9201 22.7539 7.39746 21.5205C10.9195 20.2871 13.7226 17.6216 14.999 14.248Z", fill: "#4F3ED0", stroke: "#4F3ED0", strokeWidth: "1.5" }),
15507
+ /* @__PURE__ */ jsx19("path", { d: "M21 6.3418C21.7345 7.96846 23.0424 9.27714 24.6689 10.0117C23.0433 10.7457 21.7336 12.0531 20.999 13.6787C20.2642 12.0536 18.9559 10.7456 17.3301 10.0117C18.9568 9.27716 20.2657 7.96871 21 6.3418Z", fill: "#4F3ED0", stroke: "#4F3ED0", strokeWidth: "1.3" }),
15508
+ /* @__PURE__ */ jsx19("path", { d: "M12 3.25977C12.5821 4.45668 13.5524 5.42629 14.749 6.00879C13.5529 6.59057 12.5825 7.5608 12 8.75684C11.4177 7.56091 10.4473 6.59157 9.25098 6.00977C10.4479 5.42726 11.4177 4.45653 12 3.25977Z", fill: "#4F3ED0", stroke: "#4F3ED0", strokeWidth: "1.2" })
15509
15509
  ] })
15510
15510
  };
15511
15511
  case 36:
@@ -16404,7 +16404,7 @@ function EmailBody({
16404
16404
  }
16405
16405
  const isHtmlContent = body && isHtml(body);
16406
16406
  const safeText = isHtmlContent ? DOMPurify.sanitize(body) : DOMPurify.sanitize(body?.replace(/\n/g, "<br>") || "");
16407
- return /* @__PURE__ */ jsxs25("div", { className: "flex flex-col gap-4 bg-white p-4 rounded-b-2xl overflow-auto", children: [
16407
+ return /* @__PURE__ */ jsxs25("div", { className: "flex flex-col gap-4 bg-white p-4 rounded-b-2xl overflow-y-auto overflow-x-hidden", children: [
16408
16408
  /* @__PURE__ */ jsxs25("div", { className: "flex flex-col gap-0.5", children: [
16409
16409
  /* @__PURE__ */ jsx32(MetadataRow, { metadata: [`Subject: ${subjectLine}`] }),
16410
16410
  /* @__PURE__ */ jsx32(MetadataRow, { metadata: [`To: ${to}`] }),
@@ -16415,27 +16415,35 @@ function EmailBody({
16415
16415
  /* @__PURE__ */ jsx32(MetadataRow, { metadata: [`Attachments: ${attachments}`] })
16416
16416
  ] }),
16417
16417
  /* @__PURE__ */ jsx32("hr", { className: "text-qtneutral-500" }),
16418
- /* @__PURE__ */ jsx32("div", { className: "body-small break-all whitespace-pre-line flex", children: body && /* @__PURE__ */ jsx32(
16418
+ /* @__PURE__ */ jsx32("div", { className: "body-small break-words whitespace-pre-line w-full overflow-x-hidden", children: body && /* @__PURE__ */ jsx32(
16419
16419
  "iframe",
16420
16420
  {
16421
16421
  srcDoc: `<!DOCTYPE html>
16422
16422
  <html>
16423
16423
  <head>
16424
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
16424
16425
  <link href="https://fonts.googleapis.com/css2?family=Inter&display=swap" rel="stylesheet">
16425
16426
  <style>
16427
+ html, body { max-width: 100%; overflow-x: hidden; }
16426
16428
  body {
16427
16429
  font-family: 'Inter', sans-serif;
16428
16430
  padding: 0;
16429
16431
  margin: 0;
16430
16432
  font-size: 14px;
16431
- word-break: break-all;
16433
+ line-height: 1.5;
16434
+ word-break: break-word;
16432
16435
  }
16436
+ img, svg, video, canvas { max-width: 100%; height: auto; }
16437
+ table { width: 100% !important; table-layout: fixed; border-collapse: collapse; }
16438
+ td, th { word-break: break-word; }
16439
+ pre, code { white-space: pre-wrap; word-break: break-word; overflow-wrap: anywhere; max-width: 100%; overflow-x: auto; }
16440
+ a { word-break: break-all; }
16433
16441
  </style>
16434
16442
  </head>
16435
16443
  <body>${safeText}</body>
16436
16444
  </html>`,
16437
16445
  sandbox: "allow-popups",
16438
- style: { border: 0, width: "100%", height: "500px" },
16446
+ style: { border: 0, width: "100%", height: "500px", display: "block" },
16439
16447
  title: "Email Content"
16440
16448
  }
16441
16449
  ) })
@@ -17236,18 +17244,27 @@ function PlusLarge({
17236
17244
  // src/components/molecules/buttons/nav_button/filter_nav_button/filter_nav_button.tsx
17237
17245
  import clsx11 from "clsx";
17238
17246
  import { jsx as jsx44, jsxs as jsxs31 } from "react/jsx-runtime";
17239
- function FilterNavButton({ icon, label, active, onClick }) {
17247
+ function FilterNavButton({ icon, label, active, onClick, totalItems }) {
17248
+ const formatTotalItems = (count) => {
17249
+ if (typeof count === "number" && count > 99) {
17250
+ return "99+";
17251
+ }
17252
+ return count;
17253
+ };
17254
+ const displayCount = formatTotalItems(totalItems);
17255
+ const shouldShowBadge = !!(displayCount && (typeof displayCount === "number" ? displayCount !== 0 : displayCount !== "0"));
17240
17256
  return /* @__PURE__ */ jsxs31(
17241
17257
  "div",
17242
17258
  {
17243
- className: "w-min h-min flex flex-none flex-col place-items-center gap-2",
17259
+ className: "w-min h-min flex flex-none flex-col place-items-center gap-0 relative pt-[15px]",
17244
17260
  onClick,
17245
17261
  children: [
17262
+ shouldShowBadge && /* @__PURE__ */ jsx44("div", { className: "w-[24px] h-[24px] rounded-full flex items-center justify-center bg-[#545454] text-white text-[8px] leading-none absolute right-[-7px] top-[2px] z-999 border-2 border-white", children: displayCount }),
17246
17263
  /* @__PURE__ */ jsx44(
17247
17264
  "div",
17248
17265
  {
17249
17266
  className: clsx11(
17250
- "w-[44px] h-[44px] flex flex-none flex-col place-items-center place-content-center rounded-xl hover:bg-qtneutral-200 hover:border-2 hover:border-qtneutral-500"
17267
+ "w-[44px] h-[44px] flex flex-none flex-col place-items-center place-content-center rounded-xl hover:bg-qtneutral-200 hover:border-2 hover:border-qtneutral-500 p-[0]"
17251
17268
  ),
17252
17269
  children: icon
17253
17270
  }
@@ -17272,7 +17289,8 @@ function FilterBar({ buttons }) {
17272
17289
  }
17273
17290
  ),
17274
17291
  label: "Fires",
17275
- onClick: buttons?.fires?.onClick
17292
+ onClick: buttons?.fires?.onClick,
17293
+ totalItems: buttons?.fires?.count
17276
17294
  }
17277
17295
  ),
17278
17296
  !buttons?.insights?.disabled && /* @__PURE__ */ jsx45(
@@ -17285,7 +17303,8 @@ function FilterBar({ buttons }) {
17285
17303
  }
17286
17304
  ),
17287
17305
  label: "Q Insights",
17288
- onClick: buttons?.insights?.onClick
17306
+ onClick: buttons?.insights?.onClick,
17307
+ totalItems: buttons?.insights?.count
17289
17308
  }
17290
17309
  ),
17291
17310
  !buttons?.unread?.disabled && /* @__PURE__ */ jsx45(
@@ -17299,7 +17318,8 @@ function FilterBar({ buttons }) {
17299
17318
  }
17300
17319
  ),
17301
17320
  label: "Unread",
17302
- onClick: buttons?.unread?.onClick
17321
+ onClick: buttons?.unread?.onClick,
17322
+ totalItems: buttons?.unread?.count
17303
17323
  }
17304
17324
  ),
17305
17325
  !buttons?.done?.disabled && /* @__PURE__ */ jsx45(
@@ -17314,11 +17334,12 @@ function FilterBar({ buttons }) {
17314
17334
  }
17315
17335
  ),
17316
17336
  label: "Done",
17317
- onClick: buttons?.done?.onClick
17337
+ onClick: buttons?.done?.onClick,
17338
+ totalItems: buttons?.done?.count
17318
17339
  }
17319
17340
  ),
17320
17341
  /* @__PURE__ */ jsx45("hr", { className: "w-full border-0.5 text-qtneutral-700" }),
17321
- /* @__PURE__ */ jsxs32("div", { className: "flex-1 min-h-0 w-full overflow-y-auto flex flex-col gap-4 overscroll-contain [scrollbar-gutter:stable] pl-1", children: [
17342
+ /* @__PURE__ */ jsxs32("div", { className: "flex-1 min-h-0 w-full overflow-y-auto flex flex-col gap-4 overscroll-contain items-center min-w-[58px]", children: [
17322
17343
  !buttons?.slack?.disabled && /* @__PURE__ */ jsx45(
17323
17344
  FilterNavButton,
17324
17345
  {
@@ -17413,6 +17434,238 @@ function FilterBar({ buttons }) {
17413
17434
  ] });
17414
17435
  }
17415
17436
 
17437
+ // src/components/molecules/modal/modal.tsx
17438
+ import { useEffect as useEffect4, useRef as useRef2 } from "react";
17439
+ import { createPortal } from "react-dom";
17440
+ import clsx12 from "clsx";
17441
+ import { jsx as jsx46 } from "react/jsx-runtime";
17442
+ function Modal({
17443
+ isOpen,
17444
+ onClose,
17445
+ children,
17446
+ className,
17447
+ disableBackdropClick = false,
17448
+ disableEscapeKey = false
17449
+ }) {
17450
+ const modalRef = useRef2(null);
17451
+ const previousActiveElement = useRef2(null);
17452
+ useEffect4(() => {
17453
+ if (!isOpen || disableEscapeKey) return;
17454
+ const handleKeyDown = (e) => {
17455
+ if (e.key === "Escape") onClose();
17456
+ };
17457
+ document.addEventListener("keydown", handleKeyDown);
17458
+ return () => document.removeEventListener("keydown", handleKeyDown);
17459
+ }, [isOpen, onClose, disableEscapeKey]);
17460
+ useEffect4(() => {
17461
+ if (!isOpen) return;
17462
+ const originalOverflow = document.body.style.overflow;
17463
+ document.body.style.overflow = "hidden";
17464
+ previousActiveElement.current = document.activeElement;
17465
+ setTimeout(() => {
17466
+ const focusable = modalRef.current?.querySelectorAll(
17467
+ 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
17468
+ );
17469
+ if (focusable && focusable.length > 0) {
17470
+ focusable[0].focus();
17471
+ }
17472
+ }, 0);
17473
+ return () => {
17474
+ document.body.style.overflow = originalOverflow;
17475
+ previousActiveElement.current?.focus();
17476
+ };
17477
+ }, [isOpen]);
17478
+ if (!isOpen) return null;
17479
+ const handleBackdropClick = () => {
17480
+ if (!disableBackdropClick) onClose();
17481
+ };
17482
+ return createPortal(
17483
+ /* @__PURE__ */ jsx46(
17484
+ "div",
17485
+ {
17486
+ className: "fixed inset-0 z-50 flex items-center justify-center bg-qtneutral-900/50 animate-fade-in",
17487
+ onClick: handleBackdropClick,
17488
+ "aria-modal": "true",
17489
+ role: "dialog",
17490
+ children: /* @__PURE__ */ jsx46(
17491
+ "div",
17492
+ {
17493
+ ref: modalRef,
17494
+ className: clsx12(
17495
+ "bg-white rounded-2xl p-6 max-w-[480px] w-full mx-4 modal-shadow animate-modal-scale",
17496
+ className
17497
+ ),
17498
+ onClick: (e) => e.stopPropagation(),
17499
+ role: "document",
17500
+ children
17501
+ }
17502
+ )
17503
+ }
17504
+ ),
17505
+ document.body
17506
+ );
17507
+ }
17508
+
17509
+ // src/components/molecules/modal/confirmation_modal.tsx
17510
+ import clsx13 from "clsx";
17511
+ import { jsx as jsx47, jsxs as jsxs33 } from "react/jsx-runtime";
17512
+ var variantStyles = {
17513
+ danger: {
17514
+ confirm: "bg-qtred-500 text-white hover:bg-qtred-400",
17515
+ cancel: "bg-white text-qtpurple-500 border-2 border-qtpurple-500 hover:bg-qtpurple-200"
17516
+ },
17517
+ primary: {
17518
+ confirm: "bg-qtpurple-500 text-white hover:bg-qtpurple-600",
17519
+ cancel: "bg-white text-qtpurple-500 border-2 border-qtpurple-500 hover:bg-qtpurple-200"
17520
+ },
17521
+ warning: {
17522
+ confirm: "bg-qtorange-400 text-qtneutral-900 hover:bg-qtorange-300",
17523
+ cancel: "bg-white text-qtpurple-500 border-2 border-qtpurple-500 hover:bg-qtpurple-200"
17524
+ }
17525
+ };
17526
+ function ConfirmationModal({
17527
+ isOpen,
17528
+ onClose,
17529
+ onConfirm,
17530
+ title,
17531
+ message: message2,
17532
+ confirmLabel = "Confirm",
17533
+ cancelLabel = "Cancel",
17534
+ variant = "primary",
17535
+ children
17536
+ }) {
17537
+ const buttonBase = "px-4 py-2.5 rounded-lg label-1-bold transition-colors";
17538
+ const styles = variantStyles[variant];
17539
+ return /* @__PURE__ */ jsx47(Modal, { isOpen, onClose, children: /* @__PURE__ */ jsxs33("div", { className: "flex flex-col gap-6", children: [
17540
+ /* @__PURE__ */ jsx47("h2", { className: "label-1-bold text-qtneutral-900", children: title }),
17541
+ message2 && /* @__PURE__ */ jsx47("div", { className: "body-small text-qtneutral-800 whitespace-pre-line", children: typeof message2 === "string" ? /* @__PURE__ */ jsx47("p", { children: message2 }) : message2 }),
17542
+ children,
17543
+ /* @__PURE__ */ jsxs33("div", { className: "flex gap-4 justify-end", children: [
17544
+ /* @__PURE__ */ jsx47(
17545
+ "button",
17546
+ {
17547
+ onClick: onConfirm,
17548
+ className: clsx13(buttonBase, styles.confirm),
17549
+ children: confirmLabel
17550
+ }
17551
+ ),
17552
+ /* @__PURE__ */ jsx47(
17553
+ "button",
17554
+ {
17555
+ onClick: onClose,
17556
+ className: clsx13(buttonBase, styles.cancel, "px-8"),
17557
+ children: cancelLabel
17558
+ }
17559
+ )
17560
+ ] })
17561
+ ] }) });
17562
+ }
17563
+
17564
+ // src/components/organisms/account/info/account_info_field.tsx
17565
+ import { jsx as jsx48, jsxs as jsxs34 } from "react/jsx-runtime";
17566
+ function AccountInfoField({
17567
+ label,
17568
+ value,
17569
+ className = ""
17570
+ }) {
17571
+ return /* @__PURE__ */ jsxs34("div", { className: `flex-1 flex flex-col flex-wrap gap-2 ${className}`, children: [
17572
+ /* @__PURE__ */ jsx48("label", { className: "body-bold text-qtneutral-900", children: label }),
17573
+ /* @__PURE__ */ jsx48("p", { className: "body text-qtneutral-900", children: value || "-" })
17574
+ ] });
17575
+ }
17576
+
17577
+ // src/components/organisms/account/info/account_info_section.tsx
17578
+ import { jsx as jsx49, jsxs as jsxs35 } from "react/jsx-runtime";
17579
+ function AccountInfoSection({
17580
+ title,
17581
+ children
17582
+ }) {
17583
+ return /* @__PURE__ */ jsxs35("div", { className: "flex flex-col flex-wrap gap-4 pt-6 pb-6", children: [
17584
+ title && /* @__PURE__ */ jsx49("div", { className: "body-bold text-qtneutral-900", children: title }),
17585
+ /* @__PURE__ */ jsx49("div", { className: "user-data-row", children })
17586
+ ] });
17587
+ }
17588
+
17589
+ // src/components/organisms/account/integrations/account_integration_card.tsx
17590
+ import React2 from "react";
17591
+ import clsx14 from "clsx";
17592
+ import { jsx as jsx50, jsxs as jsxs36 } from "react/jsx-runtime";
17593
+ var AccountIntegrationCard = React2.memo(function AccountIntegrationCard2({
17594
+ integrationName,
17595
+ children,
17596
+ onConnect,
17597
+ disabled,
17598
+ ready,
17599
+ icon,
17600
+ limit
17601
+ }) {
17602
+ const count = Array.isArray(children) ? children.length : children ? 1 : 0;
17603
+ const isLimitReached = count >= limit;
17604
+ return /* @__PURE__ */ jsxs36("div", { className: "card-your-apps flex flex-col items-center gap-4 rounded-lg border-2 border-qtneutral-400 bg-white p-4", children: [
17605
+ /* @__PURE__ */ jsxs36("div", { className: "flex w-full items-center justify-between", children: [
17606
+ /* @__PURE__ */ jsxs36("div", { className: "flex items-center gap-3", children: [
17607
+ /* @__PURE__ */ jsx50(
17608
+ "div",
17609
+ {
17610
+ className: clsx14(
17611
+ "w-[44px] h-[44px] flex items-center justify-center transition-opacity border-none bg-transparent p-0",
17612
+ !ready && "opacity-50 cursor-not-allowed",
17613
+ disabled && "grayscale border-2 border-green-700 bg-green-100"
17614
+ ),
17615
+ "aria-label": `Integrate with ${integrationName}`,
17616
+ children: icon
17617
+ }
17618
+ ),
17619
+ /* @__PURE__ */ jsxs36("div", { className: "flex flex-col gap-1.5", children: [
17620
+ /* @__PURE__ */ jsx50("span", { className: "text-sm font-bold", children: integrationName }),
17621
+ /* @__PURE__ */ jsx50("span", { className: "body-small text-qtneutral-800", children: count > 0 ? `${count} of ${limit} connected` : "No accounts connected" })
17622
+ ] })
17623
+ ] }),
17624
+ !isLimitReached && ready && /* @__PURE__ */ jsx50(
17625
+ "button",
17626
+ {
17627
+ onClick: onConnect,
17628
+ disabled: disabled || !ready,
17629
+ className: clsx14(
17630
+ "label-1-bold text-qtpurple-600 bg-transparent border-none p-0 cursor-pointer hover:text-qtpurple-500",
17631
+ (disabled || !ready) && "opacity-50 cursor-not-allowed pointer-events-none"
17632
+ ),
17633
+ children: count > 0 ? `+ Connect Another` : `+ Connect`
17634
+ }
17635
+ )
17636
+ ] }),
17637
+ count > 0 && /* @__PURE__ */ jsx50("div", { className: "flex w-full flex-col gap-2.5", children })
17638
+ ] });
17639
+ });
17640
+ var account_integration_card_default = AccountIntegrationCard;
17641
+
17642
+ // src/components/organisms/account/integrations/account_integration_card_item.tsx
17643
+ import React3 from "react";
17644
+ import { jsx as jsx51, jsxs as jsxs37 } from "react/jsx-runtime";
17645
+ var AccountIntegrationCardItem = React3.memo(
17646
+ function AccountIntegrationCardItem2({
17647
+ name,
17648
+ onDisconnect
17649
+ }) {
17650
+ return /* @__PURE__ */ jsxs37("div", { className: "flex flex-row flex-nowrap justify-between items-center bg-qtneutral-100 p-4 border border-qtpurple-500 rounded-lg", children: [
17651
+ /* @__PURE__ */ jsx51("div", { className: "label-1-bold text-qtneutral-900", children: name }),
17652
+ /* @__PURE__ */ jsx51(
17653
+ "button",
17654
+ {
17655
+ type: "button",
17656
+ className: "label-2 text-qtred-500 underline bg-transparent border-none p-0 cursor-pointer hover:text-qtred-400",
17657
+ onClick: (e) => {
17658
+ e.stopPropagation();
17659
+ onDisconnect();
17660
+ },
17661
+ children: "Disconnect"
17662
+ }
17663
+ )
17664
+ ] });
17665
+ }
17666
+ );
17667
+ var account_integration_card_item_default = AccountIntegrationCardItem;
17668
+
17416
17669
  // src/types/events.ts
17417
17670
  var EventState = /* @__PURE__ */ ((EventState2) => {
17418
17671
  EventState2["NEW"] = "new";
@@ -17522,16 +17775,22 @@ This is a *markdown* **example**.
17522
17775
  }
17523
17776
  ];
17524
17777
  export {
17778
+ AccountInfoField,
17779
+ AccountInfoSection,
17780
+ account_integration_card_default as AccountIntegrationCard,
17781
+ account_integration_card_item_default as AccountIntegrationCardItem,
17525
17782
  BaseIconName,
17526
17783
  BrandIcon,
17527
17784
  ChatBody,
17528
17785
  ColorVariants,
17786
+ ConfirmationModal,
17529
17787
  EmailBody,
17530
17788
  EventCard,
17531
17789
  EventState,
17532
17790
  EventType,
17533
17791
  FilterBar,
17534
17792
  IntegrationService,
17793
+ Modal,
17535
17794
  NavBar,
17536
17795
  PreviewCard,
17537
17796
  SearchBar,