@banbox/chat 1.0.8 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/index.cjs +1166 -202
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +11 -1
  4. package/dist/index.d.ts +11 -1
  5. package/dist/index.js +1090 -127
  6. package/dist/index.js.map +1 -1
  7. package/package.json +1 -1
  8. package/src/chat/InboxPopup.tsx +30 -19
  9. package/src/chat/SinglePopup.tsx +59 -14
  10. package/src/icons/index.tsx +55 -0
  11. package/src/index.ts +14 -12
  12. package/src/modals/ChatAddressModal.tsx +844 -0
  13. package/src/modals/{chat/ChatConfirmModal.tsx → ChatConfirmModal.tsx} +2 -2
  14. package/src/modals/ChatTranslateSettingsModal.tsx +182 -0
  15. package/src/styles/index.build.css +15 -0
  16. package/src/styles/index.css +10 -2
  17. package/src/ui/{chat/AttachmentPreviewStrip.tsx → AttachmentPreviewStrip.tsx} +2 -2
  18. package/src/ui/{chat/ChatComposerBar.tsx → ChatComposerBar.tsx} +2 -2
  19. package/src/ui/{chat/ChatFooter.tsx → ChatFooter.tsx} +102 -8
  20. package/src/ui/{chat/ChatIdentity.tsx → ChatIdentity.tsx} +2 -2
  21. package/src/ui/{chat/ChatInquiryBar.tsx → ChatInquiryBar.tsx} +1 -1
  22. package/src/ui/ChatKebabMenu.tsx +125 -0
  23. package/src/ui/{chat/ChatListHeader.tsx → ChatListHeader.tsx} +1 -1
  24. package/src/ui/{chat/ChatMessageItem.tsx → ChatMessageItem.tsx} +1 -1
  25. package/src/ui/{chat/ChatScroll.tsx → ChatScroll.tsx} +1 -1
  26. package/src/ui/{chat/ChatSpinner.tsx → ChatSpinner.tsx} +1 -1
  27. package/src/ui/{chat/ChatThreadItem.tsx → ChatThreadItem.tsx} +1 -1
  28. package/src/ui/{chat/MessageHoverActions.tsx → MessageHoverActions.tsx} +2 -2
  29. package/src/ui/{chat/ReplyCard.tsx → ReplyCard.tsx} +2 -2
  30. package/src/ui/{chat/TypingIndicator.tsx → TypingIndicator.tsx} +1 -1
  31. package/src/ui/{chat/drop-up → drop-up}/BusinessCardDropup.tsx +15 -3
  32. package/src/ui/{chat/drop-up → drop-up}/EmojiDropup.tsx +1 -1
  33. package/src/ui/{chat/message-items → message-items}/ChatAddressCard.tsx +4 -4
  34. package/src/ui/{chat/message-items → message-items}/ChatBubbleFiles.tsx +1 -1
  35. package/src/ui/{chat/message-items → message-items}/ChatBubbleImages.tsx +2 -2
  36. package/src/ui/{chat/message-items → message-items}/ChatBusinessCard.tsx +1 -1
  37. package/src/ui/{chat/scrollToMessage.ts → scrollToMessage.ts} +1 -1
  38. package/src/ui/{chat/types.ts → types.ts} +2 -2
  39. package/src/modals/chat/ChatTranslateSettingsModal.tsx +0 -180
  40. /package/src/ui/{chat/ChatHeader.tsx → ChatHeader.tsx} +0 -0
  41. /package/src/ui/{chat/message-items → message-items}/ChatBubbleAudio.tsx +0 -0
  42. /package/src/ui/{chat/message-items → message-items}/ChatBubbleText.tsx +0 -0
package/dist/index.cjs CHANGED
@@ -2,16 +2,16 @@
2
2
 
3
3
  var framerMotion = require('framer-motion');
4
4
  var reactDom = require('react-dom');
5
- var React10 = require('react');
5
+ var React16 = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
- var clsx18 = require('clsx');
7
+ var clsx3 = require('clsx');
8
8
  var tailwindMerge = require('tailwind-merge');
9
9
  var _Lottie = require('lottie-react');
10
10
 
11
11
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
12
 
13
- var React10__default = /*#__PURE__*/_interopDefault(React10);
14
- var clsx18__default = /*#__PURE__*/_interopDefault(clsx18);
13
+ var React16__default = /*#__PURE__*/_interopDefault(React16);
14
+ var clsx3__default = /*#__PURE__*/_interopDefault(clsx3);
15
15
  var _Lottie__default = /*#__PURE__*/_interopDefault(_Lottie);
16
16
 
17
17
  // #style-inject:#style-inject
@@ -37,17 +37,17 @@ function styleInject(css, { insertAt } = {}) {
37
37
  }
38
38
 
39
39
  // src/styles/index.css
40
- styleInject('/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root,\n :host {\n --font-sans:\n ui-sans-serif,\n system-ui,\n sans-serif,\n "Apple Color Emoji",\n "Segoe UI Emoji",\n "Segoe UI Symbol",\n "Noto Color Emoji";\n --font-mono:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --tracking-wide: 0.025em;\n --leading-relaxed: 1.625;\n --radius-xs: 0.125rem;\n --radius-sm: 0.25rem;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n }\n}\n@layer base {\n *,\n ::after,\n ::before,\n ::backdrop,\n ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html,\n :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b,\n strong {\n font-weight: bolder;\n }\n code,\n kbd,\n samp,\n pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub,\n sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol,\n ul,\n menu {\n list-style: none;\n }\n img,\n svg,\n video,\n canvas,\n audio,\n iframe,\n embed,\n object {\n display: block;\n vertical-align: middle;\n }\n img,\n video {\n max-width: 100%;\n height: auto;\n }\n button,\n input,\n select,\n optgroup,\n textarea,\n ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit,\n ::-webkit-datetime-edit-year-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button,\n input:where([type=button], [type=reset], [type=submit]),\n ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=until-found])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .visible {\n visibility: visible;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .inset-x-0 {\n inset-inline: calc(var(--spacing) * 0);\n }\n .inset-y-0 {\n inset-block: calc(var(--spacing) * 0);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .top-\\[-4px\\] {\n top: -4px;\n }\n .top-full {\n top: 100%;\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-3 {\n right: calc(var(--spacing) * 3);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\n }\n .right-6 {\n right: calc(var(--spacing) * 6);\n }\n .right-\\[-63px\\] {\n right: -63px;\n }\n .right-full {\n right: 100%;\n }\n .-bottom-2 {\n bottom: calc(var(--spacing) * -2);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n }\n .bottom-6 {\n bottom: calc(var(--spacing) * 6);\n }\n .bottom-\\[-13px\\] {\n bottom: -13px;\n }\n .bottom-full {\n bottom: 100%;\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1 / 2 * 100%);\n }\n .left-6 {\n left: calc(var(--spacing) * 6);\n }\n .left-\\[30px\\] {\n left: 30px;\n }\n .left-full {\n left: 100%;\n }\n .z-10 {\n z-index: 10;\n }\n .z-50 {\n z-index: 50;\n }\n .z-70 {\n z-index: 70;\n }\n .z-71 {\n z-index: 71;\n }\n .z-999 {\n z-index: 999;\n }\n .z-9999 {\n z-index: 9999;\n }\n .z-10000 {\n z-index: 10000;\n }\n .z-\\[10002\\] {\n z-index: 10002;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .mx-auto {\n margin-inline: auto;\n }\n .ms-1 {\n margin-inline-start: calc(var(--spacing) * 1);\n }\n .ms-\\[3px\\] {\n margin-inline-start: 3px;\n }\n .ms-\\[12px\\] {\n margin-inline-start: 12px;\n }\n .me-1 {\n margin-inline-end: calc(var(--spacing) * 1);\n }\n .mt-0\\.5 {\n margin-top: calc(var(--spacing) * 0.5);\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n .mt-\\[2px\\] {\n margin-top: 2px;\n }\n .mt-\\[6px\\] {\n margin-top: 6px;\n }\n .mr-2 {\n margin-right: calc(var(--spacing) * 2);\n }\n .mr-auto {\n margin-right: auto;\n }\n .mb-0 {\n margin-bottom: calc(var(--spacing) * 0);\n }\n .mb-0\\.5 {\n margin-bottom: calc(var(--spacing) * 0.5);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-1\\.5 {\n margin-bottom: calc(var(--spacing) * 1.5);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-5 {\n margin-bottom: calc(var(--spacing) * 5);\n }\n .mb-10 {\n margin-bottom: calc(var(--spacing) * 10);\n }\n .mb-\\[24px\\] {\n margin-bottom: 24px;\n }\n .-ml-\\[5px\\] {\n margin-left: calc(5px * -1);\n }\n .ml-\\[2px\\] {\n margin-left: 2px;\n }\n .ml-\\[4px\\] {\n margin-left: 4px;\n }\n .ml-auto {\n margin-left: auto;\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .inline-flex {\n display: inline-flex;\n }\n .h-0 {\n height: calc(var(--spacing) * 0);\n }\n .h-2\\.5 {\n height: calc(var(--spacing) * 2.5);\n }\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n .h-7 {\n height: calc(var(--spacing) * 7);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-9 {\n height: calc(var(--spacing) * 9);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-\\[1\\.17px\\] {\n height: 1.17px;\n }\n .h-\\[4px\\] {\n height: 4px;\n }\n .h-\\[5\\.5px\\] {\n height: 5.5px;\n }\n .h-\\[11\\.25px\\] {\n height: 11.25px;\n }\n .h-\\[14px\\] {\n height: 14px;\n }\n .h-\\[17\\.5px\\] {\n height: 17.5px;\n }\n .h-\\[18px\\] {\n height: 18px;\n }\n .h-\\[21px\\] {\n height: 21px;\n }\n .h-\\[22px\\] {\n height: 22px;\n }\n .h-\\[26px\\] {\n height: 26px;\n }\n .h-\\[28px\\] {\n height: 28px;\n }\n .h-\\[30px\\] {\n height: 30px;\n }\n .h-\\[32px\\] {\n height: 32px;\n }\n .h-\\[34px\\] {\n height: 34px;\n }\n .h-\\[36px\\] {\n height: 36px;\n }\n .h-\\[40px\\] {\n height: 40px;\n }\n .h-\\[41px\\] {\n height: 41px;\n }\n .h-\\[44px\\] {\n height: 44px;\n }\n .h-\\[46px\\] {\n height: 46px;\n }\n .h-\\[52px\\] {\n height: 52px;\n }\n .h-\\[64px\\] {\n height: 64px;\n }\n .h-\\[65px\\] {\n height: 65px;\n }\n .h-\\[75px\\] {\n height: 75px;\n }\n .h-\\[100px\\] {\n height: 100px;\n }\n .h-\\[208px\\] {\n height: 208px;\n }\n .h-\\[650px\\] {\n height: 650px;\n }\n .h-full {\n height: 100%;\n }\n .h-px {\n height: 1px;\n }\n .max-h-\\[200px\\] {\n max-height: 200px;\n }\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n .min-h-\\[50px\\] {\n min-height: 50px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .w-0 {\n width: calc(var(--spacing) * 0);\n }\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n .w-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n }\n .w-3 {\n width: calc(var(--spacing) * 3);\n }\n .w-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-9 {\n width: calc(var(--spacing) * 9);\n }\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n .w-\\[5\\.5px\\] {\n width: 5.5px;\n }\n .w-\\[11\\.25px\\] {\n width: 11.25px;\n }\n .w-\\[14px\\] {\n width: 14px;\n }\n .w-\\[18\\.08px\\] {\n width: 18.08px;\n }\n .w-\\[18px\\] {\n width: 18px;\n }\n .w-\\[22px\\] {\n width: 22px;\n }\n .w-\\[26px\\] {\n width: 26px;\n }\n .w-\\[28px\\] {\n width: 28px;\n }\n .w-\\[34px\\] {\n width: 34px;\n }\n .w-\\[36px\\] {\n width: 36px;\n }\n .w-\\[40px\\] {\n width: 40px;\n }\n .w-\\[44px\\] {\n width: 44px;\n }\n .w-\\[46px\\] {\n width: 46px;\n }\n .w-\\[65px\\] {\n width: 65px;\n }\n .w-\\[105px\\] {\n width: 105px;\n }\n .w-\\[130px\\] {\n width: 130px;\n }\n .w-\\[186px\\] {\n width: 186px;\n }\n .w-\\[340px\\] {\n width: 340px;\n }\n .w-\\[355px\\] {\n width: 355px;\n }\n .w-\\[420px\\] {\n width: 420px;\n }\n .w-\\[450px\\] {\n width: 450px;\n }\n .w-\\[500px\\] {\n width: 500px;\n }\n .w-fit {\n width: fit-content;\n }\n .w-full {\n width: 100%;\n }\n .w-px {\n width: 1px;\n }\n .max-w-\\[95vw\\] {\n max-width: 95vw;\n }\n .max-w-\\[110px\\] {\n max-width: 110px;\n }\n .max-w-\\[151px\\] {\n max-width: 151px;\n }\n .max-w-\\[185px\\] {\n max-width: 185px;\n }\n .max-w-\\[200px\\] {\n max-width: 200px;\n }\n .max-w-\\[260px\\] {\n max-width: 260px;\n }\n .max-w-\\[289px\\] {\n max-width: 289px;\n }\n .max-w-\\[300px\\] {\n max-width: 300px;\n }\n .max-w-\\[410px\\] {\n max-width: 410px;\n }\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n .flex-1 {\n flex: 1;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .-translate-x-1\\.5 {\n --tw-translate-x: calc(var(--spacing) * -1.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-1\\.5 {\n --tw-translate-x: calc(var(--spacing) * 1.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .rotate-45 {\n rotate: 45deg;\n }\n .rotate-180 {\n rotate: 180deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .cursor-auto\\! {\n cursor: auto !important;\n }\n .cursor-default {\n cursor: default;\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .cursor-zoom-in {\n cursor: zoom-in;\n }\n .resize {\n resize: both;\n }\n .resize-none {\n resize: none;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-cols-7 {\n grid-template-columns: repeat(7, minmax(0, 1fr));\n }\n .grid-cols-\\[1fr_350px\\] {\n grid-template-columns: 1fr 350px;\n }\n .grid-cols-\\[18px_120px_1fr\\] {\n grid-template-columns: 18px 120px 1fr;\n }\n .grid-cols-\\[125px_125px\\] {\n grid-template-columns: 125px 125px;\n }\n .flex-col {\n flex-direction: column;\n }\n .place-items-center {\n place-items: center;\n }\n .items-center {\n align-items: center;\n }\n .items-end {\n align-items: flex-end;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .gap-0 {\n gap: calc(var(--spacing) * 0);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .space-y-1\\.5 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-\\[2px\\] {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(2px * var(--tw-space-y-reverse));\n margin-block-end: calc(2px * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-visible {\n overflow: visible;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-\\[2\\.33px\\] {\n border-radius: 2.33px;\n }\n .rounded-\\[3\\.5px\\] {\n border-radius: 3.5px;\n }\n .rounded-\\[3px\\] {\n border-radius: 3px;\n }\n .rounded-\\[4px\\] {\n border-radius: 4px;\n }\n .rounded-\\[6px\\] {\n border-radius: 6px;\n }\n .rounded-\\[12px\\] {\n border-radius: 12px;\n }\n .rounded-\\[14px\\] {\n border-radius: 14px;\n }\n .rounded-\\[18px\\] {\n border-radius: 18px;\n }\n .rounded-\\[20px\\] {\n border-radius: 20px;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .rounded-md {\n border-radius: var(--radius-md);\n }\n .rounded-sm {\n border-radius: var(--radius-sm);\n }\n .rounded-xs {\n border-radius: var(--radius-xs);\n }\n .rounded-t-md {\n border-top-left-radius: var(--radius-md);\n border-top-right-radius: var(--radius-md);\n }\n .rounded-tl-\\[3px\\] {\n border-top-left-radius: 3px;\n }\n .rounded-tl-md {\n border-top-left-radius: var(--radius-md);\n }\n .rounded-tr-\\[3px\\] {\n border-top-right-radius: 3px;\n }\n .rounded-tr-\\[6px\\] {\n border-top-right-radius: 6px;\n }\n .rounded-b-md {\n border-bottom-right-radius: var(--radius-md);\n border-bottom-left-radius: var(--radius-md);\n }\n .rounded-br-\\[3px\\] {\n border-bottom-right-radius: 3px;\n }\n .rounded-bl-\\[3px\\] {\n border-bottom-left-radius: 3px;\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-\\[0\\.7px\\] {\n border-style: var(--tw-border-style);\n border-width: 0.7px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-t-16 {\n border-top-style: var(--tw-border-style);\n border-top-width: 16px;\n }\n .border-t-\\[5px\\] {\n border-top-style: var(--tw-border-style);\n border-top-width: 5px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-r-\\[5px\\] {\n border-right-style: var(--tw-border-style);\n border-right-width: 5px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-l-2 {\n border-left-style: var(--tw-border-style);\n border-left-width: 2px;\n }\n .border-l-16 {\n border-left-style: var(--tw-border-style);\n border-left-width: 16px;\n }\n .border-l-\\[5px\\] {\n border-left-style: var(--tw-border-style);\n border-left-width: 5px;\n }\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n .border-\\[\\#00b8d4\\] {\n border-color: #00b8d4;\n }\n .border-\\[\\#3D3D3D\\] {\n border-color: #3D3D3D;\n }\n .border-\\[\\#3d3d3d\\] {\n border-color: #3d3d3d;\n }\n .border-\\[\\#3d6b42\\] {\n border-color: #3d6b42;\n }\n .border-\\[\\#6A6A6A\\] {\n border-color: #6A6A6A;\n }\n .border-\\[\\#9BBCCF\\] {\n border-color: #9BBCCF;\n }\n .border-\\[\\#005694\\] {\n border-color: #005694;\n }\n .border-\\[\\#086600\\] {\n border-color: #086600;\n }\n .border-\\[\\#CCCCCC\\] {\n border-color: #CCCCCC;\n }\n .border-\\[\\#D8D8D8\\] {\n border-color: #D8D8D8;\n }\n .border-\\[\\#E5E5E5\\] {\n border-color: #E5E5E5;\n }\n .border-\\[\\#EFEFEF\\] {\n border-color: #EFEFEF;\n }\n .border-\\[\\#F1F1F1\\] {\n border-color: #F1F1F1;\n }\n .border-\\[\\#FF5300\\] {\n border-color: #FF5300;\n }\n .border-\\[\\#cacaca\\] {\n border-color: #cacaca;\n }\n .border-\\[\\#e1e1e1\\] {\n border-color: #e1e1e1;\n }\n .border-\\[\\#ededed\\] {\n border-color: #ededed;\n }\n .border-\\[\\#ef4444\\] {\n border-color: #ef4444;\n }\n .border-\\[\\#f1f1f1\\] {\n border-color: #f1f1f1;\n }\n .border-\\[\\#f8f8f8\\] {\n border-color: #f8f8f8;\n }\n .border-\\[\\#f59e0b\\] {\n border-color: #f59e0b;\n }\n .border-transparent {\n border-color: transparent;\n }\n .border-t-\\[\\#636363\\] {\n border-top-color: #636363;\n }\n .border-t-\\[\\#FFD2BD\\] {\n border-top-color: #FFD2BD;\n }\n .border-t-transparent {\n border-top-color: transparent;\n }\n .border-r-transparent {\n border-right-color: transparent;\n }\n .border-l-transparent {\n border-left-color: transparent;\n }\n .\\!bg-\\[\\#636363\\] {\n background-color: #636363 !important;\n }\n .bg-\\[\\#00b8d4\\] {\n background-color: #00b8d4;\n }\n .bg-\\[\\#00b8d4\\]\\/10 {\n background-color: color-mix(in oklab, #00b8d4 10%, transparent);\n }\n .bg-\\[\\#1E8E3E\\] {\n background-color: #1E8E3E;\n }\n .bg-\\[\\#3D3D3D\\] {\n background-color: #3D3D3D;\n }\n .bg-\\[\\#3D3D3D\\]\\/10 {\n background-color: color-mix(in oklab, #3D3D3D 10%, transparent);\n }\n .bg-\\[\\#3d3d3d\\] {\n background-color: #3d3d3d;\n }\n .bg-\\[\\#3d6b42\\] {\n background-color: #3d6b42;\n }\n .bg-\\[\\#3d6b42\\]\\/10 {\n background-color: color-mix(in oklab, #3d6b42 10%, transparent);\n }\n .bg-\\[\\#005694\\] {\n background-color: #005694;\n }\n .bg-\\[\\#086600\\] {\n background-color: #086600;\n }\n .bg-\\[\\#328545\\] {\n background-color: #328545;\n }\n .bg-\\[\\#636363\\] {\n background-color: #636363;\n }\n .bg-\\[\\#747474\\] {\n background-color: #747474;\n }\n .bg-\\[\\#BDBDBD\\] {\n background-color: #BDBDBD;\n }\n .bg-\\[\\#E0EFF8\\] {\n background-color: #E0EFF8;\n }\n .bg-\\[\\#E6F5E6\\] {\n background-color: #E6F5E6;\n }\n .bg-\\[\\#E7E7E7\\] {\n background-color: #E7E7E7;\n }\n .bg-\\[\\#F1F1F1\\] {\n background-color: #F1F1F1;\n }\n .bg-\\[\\#F5F7FA\\] {\n background-color: #F5F7FA;\n }\n .bg-\\[\\#F7F7F7\\] {\n background-color: #F7F7F7;\n }\n .bg-\\[\\#FF5300\\] {\n background-color: #FF5300;\n }\n .bg-\\[\\#FFDBCF\\] {\n background-color: #FFDBCF;\n }\n .bg-\\[\\#FFE9DB\\] {\n background-color: #FFE9DB;\n }\n .bg-\\[\\#FFEAE0\\] {\n background-color: #FFEAE0;\n }\n .bg-\\[\\#cacaca\\] {\n background-color: #cacaca;\n }\n .bg-\\[\\#e1e1e1\\] {\n background-color: #e1e1e1;\n }\n .bg-\\[\\#eb2127\\] {\n background-color: #eb2127;\n }\n .bg-\\[\\#ececec\\] {\n background-color: #ececec;\n }\n .bg-\\[\\#ef4444\\] {\n background-color: #ef4444;\n }\n .bg-\\[\\#ef4444\\]\\/10 {\n background-color: color-mix(in oklab, #ef4444 10%, transparent);\n }\n .bg-\\[\\#f1f1f1\\] {\n background-color: #f1f1f1;\n }\n .bg-\\[\\#f8f8f8\\] {\n background-color: #f8f8f8;\n }\n .bg-\\[\\#f59e0b\\] {\n background-color: #f59e0b;\n }\n .bg-\\[\\#f59e0b\\]\\/10 {\n background-color: color-mix(in oklab, #f59e0b 10%, transparent);\n }\n .bg-\\[\\#ff5200\\] {\n background-color: #ff5200;\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-black\\/5 {\n background-color: color-mix(in srgb, #000 5%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 5%, transparent);\n }\n }\n .bg-black\\/30 {\n background-color: color-mix(in srgb, #000 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 30%, transparent);\n }\n }\n .bg-black\\/35 {\n background-color: color-mix(in srgb, #000 35%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 35%, transparent);\n }\n }\n .bg-black\\/40 {\n background-color: color-mix(in srgb, #000 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 40%, transparent);\n }\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-cover {\n background-size: cover;\n }\n .bg-no-repeat {\n background-repeat: no-repeat;\n }\n .object-contain {\n object-fit: contain;\n }\n .object-cover {\n object-fit: cover;\n }\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-3\\.5 {\n padding: calc(var(--spacing) * 3.5);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-\\[1\\.75px\\] {\n padding: 1.75px;\n }\n .p-\\[2px\\] {\n padding: 2px;\n }\n .p-\\[3px\\] {\n padding: 3px;\n }\n .p-\\[7px\\] {\n padding: 7px;\n }\n .p-px {\n padding: 1px;\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-2\\.5 {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-5 {\n padding-inline: calc(var(--spacing) * 5);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .px-\\[3px\\] {\n padding-inline: 3px;\n }\n .px-\\[4px\\] {\n padding-inline: 4px;\n }\n .px-\\[10px\\] {\n padding-inline: 10px;\n }\n .px-\\[12px\\] {\n padding-inline: 12px;\n }\n .px-\\[14px\\] {\n padding-inline: 14px;\n }\n .px-\\[16px\\] {\n padding-inline: 16px;\n }\n .px-\\[18px\\] {\n padding-inline: 18px;\n }\n .px-\\[20px\\] {\n padding-inline: 20px;\n }\n .py-0 {\n padding-block: calc(var(--spacing) * 0);\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-2\\.5 {\n padding-block: calc(var(--spacing) * 2.5);\n }\n .py-6 {\n padding-block: calc(var(--spacing) * 6);\n }\n .py-\\[2px\\] {\n padding-block: 2px;\n }\n .py-\\[3px\\] {\n padding-block: 3px;\n }\n .py-\\[7px\\] {\n padding-block: 7px;\n }\n .ps-\\[16px\\] {\n padding-inline-start: 16px;\n }\n .pe-\\[4px\\] {\n padding-inline-end: 4px;\n }\n .pe-\\[30px\\] {\n padding-inline-end: 30px;\n }\n .pt-1 {\n padding-top: calc(var(--spacing) * 1);\n }\n .pt-2\\.5 {\n padding-top: calc(var(--spacing) * 2.5);\n }\n .pt-\\[2px\\] {\n padding-top: 2px;\n }\n .pt-\\[24px\\] {\n padding-top: 24px;\n }\n .pr-1\\.5 {\n padding-right: calc(var(--spacing) * 1.5);\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n .pb-1 {\n padding-bottom: calc(var(--spacing) * 1);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-10 {\n padding-bottom: calc(var(--spacing) * 10);\n }\n .pb-\\[2px\\] {\n padding-bottom: 2px;\n }\n .text-left {\n text-align: left;\n }\n .text-right {\n text-align: right;\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-\\[10px\\] {\n font-size: 10px;\n }\n .text-\\[12px\\] {\n font-size: 12px;\n }\n .text-\\[13px\\] {\n font-size: 13px;\n }\n .text-\\[14px\\] {\n font-size: 14px;\n }\n .text-\\[15px\\] {\n font-size: 15px;\n }\n .text-\\[16px\\] {\n font-size: 16px;\n }\n .text-\\[20px\\] {\n font-size: 20px;\n }\n .text-\\[22px\\] {\n font-size: 22px;\n }\n .leading-4 {\n --tw-leading: calc(var(--spacing) * 4);\n line-height: calc(var(--spacing) * 4);\n }\n .leading-relaxed {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n .font-light {\n --tw-font-weight: var(--font-weight-light);\n font-weight: var(--font-weight-light);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-\\[0\\.4px\\] {\n --tw-tracking: 0.4px;\n letter-spacing: 0.4px;\n }\n .tracking-wide {\n --tw-tracking: var(--tracking-wide);\n letter-spacing: var(--tracking-wide);\n }\n .break-words {\n overflow-wrap: break-word;\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .text-\\[\\#0D5EA8\\] {\n color: #0D5EA8;\n }\n .text-\\[\\#0F0F0F\\] {\n color: #0F0F0F;\n }\n .text-\\[\\#00b8d4\\] {\n color: #00b8d4;\n }\n .text-\\[\\#1E9E6A\\] {\n color: #1E9E6A;\n }\n .text-\\[\\#2B579A\\] {\n color: #2B579A;\n }\n .text-\\[\\#2c2c2c\\] {\n color: #2c2c2c;\n }\n .text-\\[\\#3D3D3D\\] {\n color: #3D3D3D;\n }\n .text-\\[\\#3d6b42\\] {\n color: #3d6b42;\n }\n .text-\\[\\#004F4F\\] {\n color: #004F4F;\n }\n .text-\\[\\#6B7280\\] {\n color: #6B7280;\n }\n .text-\\[\\#9AA1A9\\] {\n color: #9AA1A9;\n }\n .text-\\[\\#9C9C9C\\] {\n color: #9C9C9C;\n }\n .text-\\[\\#9ca3af\\] {\n color: #9ca3af;\n }\n .text-\\[\\#00486F\\] {\n color: #00486F;\n }\n .text-\\[\\#005694\\] {\n color: #005694;\n }\n .text-\\[\\#086600\\] {\n color: #086600;\n }\n .text-\\[\\#636363\\] {\n color: #636363;\n }\n .text-\\[\\#747474\\] {\n color: #747474;\n }\n .text-\\[\\#929292\\] {\n color: #929292;\n }\n .text-\\[\\#B7B7B7\\] {\n color: #B7B7B7;\n }\n .text-\\[\\#B9C3D4\\] {\n color: #B9C3D4;\n }\n .text-\\[\\#D93025\\] {\n color: #D93025;\n }\n .text-\\[\\#E63946\\] {\n color: #E63946;\n }\n .text-\\[\\#E69138\\] {\n color: #E69138;\n }\n .text-\\[\\#EA580C\\] {\n color: #EA580C;\n }\n .text-\\[\\#FF5300\\] {\n color: #FF5300;\n }\n .text-\\[\\#ef4444\\] {\n color: #ef4444;\n }\n .text-\\[\\#f59e0b\\] {\n color: #f59e0b;\n }\n .text-\\[\\#ff5301\\] {\n color: #ff5301;\n }\n .text-black {\n color: var(--color-black);\n }\n .text-white {\n color: var(--color-white);\n }\n .uppercase {\n text-transform: uppercase;\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-30 {\n opacity: 30%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow-\\[-3px_0px_6px_0px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\] {\n --tw-shadow: -3px 0px 6px 0px var(--tw-shadow-color, rgba(0,0,0,0.1));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0_1px_2px_rgba\\(0\\,0\\,0\\,0\\.04\\)\\] {\n --tw-shadow: 0 1px 2px var(--tw-shadow-color, rgba(0,0,0,0.04));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0_1px_3px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\] {\n --tw-shadow: 0 1px 3px var(--tw-shadow-color, rgba(0,0,0,0.08));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0_2px_8px_rgba\\(0\\,0\\,0\\,0\\.15\\)\\] {\n --tw-shadow: 0 2px 8px var(--tw-shadow-color, rgba(0,0,0,0.15));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0_2px_12px_rgba\\(59\\,51\\,51\\,0\\.1\\)\\] {\n --tw-shadow: 0 2px 12px var(--tw-shadow-color, rgba(59,51,51,0.1));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0_4px_16px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\] {\n --tw-shadow: 0 4px 16px var(--tw-shadow-color, rgba(0,0,0,0.08));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0_8px_24px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\] {\n --tw-shadow: 0 8px 24px var(--tw-shadow-color, rgba(0,0,0,0.12));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0_12px_30px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\] {\n --tw-shadow: 0 12px 30px var(--tw-shadow-color, rgba(0,0,0,0.18));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0px_2px_2px_rgba\\(47\\,47\\,47\\,0\\.08\\)\\] {\n --tw-shadow: 0px 2px 2px var(--tw-shadow-color, rgba(47,47,47,0.08));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0px_2px_4px_0px_\\#A5A3AE4D\\] {\n --tw-shadow: 0px 2px 4px 0px var(--tw-shadow-color, #A5A3AE4D);\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[3px_0px_6px_0px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\] {\n --tw-shadow: 3px 0px 6px 0px var(--tw-shadow-color, rgba(0,0,0,0.1));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .ring-\\[\\#2F80ED\\]\\/40 {\n --tw-ring-color: color-mix(in oklab, #2F80ED 40%, transparent);\n }\n .ring-white {\n --tw-ring-color: var(--color-white);\n }\n .backdrop-blur-\\[2px\\] {\n --tw-backdrop-blur: blur(2px);\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n }\n .transition {\n transition-property:\n color,\n background-color,\n border-color,\n outline-color,\n text-decoration-color,\n fill,\n stroke,\n --tw-gradient-from,\n --tw-gradient-via,\n --tw-gradient-to,\n opacity,\n box-shadow,\n transform,\n translate,\n scale,\n rotate,\n filter,\n -webkit-backdrop-filter,\n backdrop-filter,\n display,\n content-visibility,\n overlay,\n pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[background\\] {\n transition-property: background;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n outline-color,\n text-decoration-color,\n fill,\n stroke,\n --tw-gradient-from,\n --tw-gradient-via,\n --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property:\n transform,\n translate,\n scale,\n rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-150 {\n --tw-duration: 150ms;\n transition-duration: 150ms;\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n .group-hover\\:opacity-0 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n opacity: 0%;\n }\n }\n }\n .group-hover\\:opacity-100 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-hover\\/message\\:opacity-100 {\n &:is(:where(.group\\/message):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-hover\\/replay\\:opacity-100 {\n &:is(:where(.group\\/replay):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-hover\\/translate\\:opacity-100 {\n &:is(:where(.group\\/translate):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .placeholder\\:text-\\[\\#9C9C9C\\] {\n &::placeholder {\n color: #9C9C9C;\n }\n }\n .hover\\:border-\\[\\#777\\] {\n &:hover {\n @media (hover: hover) {\n border-color: #777;\n }\n }\n }\n .hover\\:border-\\[\\#e04a00\\] {\n &:hover {\n @media (hover: hover) {\n border-color: #e04a00;\n }\n }\n }\n .hover\\:bg-\\[\\#2e5939\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #2e5939;\n }\n }\n }\n .hover\\:bg-\\[\\#009db3\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #009db3;\n }\n }\n }\n .hover\\:bg-\\[\\#28A745\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #28A745;\n }\n }\n }\n .hover\\:bg-\\[\\#00375E\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #00375E;\n }\n }\n }\n .hover\\:bg-\\[\\#646464\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #646464;\n }\n }\n }\n .hover\\:bg-\\[\\#F4F6F8\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #F4F6F8;\n }\n }\n }\n .hover\\:bg-\\[\\#c91b20\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #c91b20;\n }\n }\n }\n .hover\\:bg-\\[\\#d97706\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #d97706;\n }\n }\n }\n .hover\\:bg-\\[\\#e04a00\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #e04a00;\n }\n }\n }\n .hover\\:bg-\\[\\#e64a00\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #e64a00;\n }\n }\n }\n .hover\\:bg-\\[\\#f1f1f1\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #f1f1f1;\n }\n }\n }\n .hover\\:bg-\\[\\#f8f8f8\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #f8f8f8;\n }\n }\n }\n .hover\\:bg-black\\/5 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #000 5%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 5%, transparent);\n }\n }\n }\n }\n .hover\\:bg-black\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #000 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-gray-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-50);\n }\n }\n }\n .hover\\:text-\\[\\#FF5300\\] {\n &:hover {\n @media (hover: hover) {\n color: #FF5300;\n }\n }\n }\n .hover\\:text-\\[\\#ff5301\\] {\n &:hover {\n @media (hover: hover) {\n color: #ff5301;\n }\n }\n }\n .hover\\:text-\\[var\\(--color-banbox-warning\\)\\] {\n &:hover {\n @media (hover: hover) {\n color: var(--color-banbox-warning);\n }\n }\n }\n .hover\\:brightness-95 {\n &:hover {\n @media (hover: hover) {\n --tw-brightness: brightness(95%);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n}\n.banbox-chat-root {\n --color-banbox-primary: #ff5300;\n --color-banbox-primary-active: #dc4c07;\n --color-banbox-secondary: #2079b0;\n --color-banbox-tertiary: #74a380;\n --color-banbox-primary-container: #f9d2c4;\n --color-banbox-on-primary-container: #9e3505;\n --color-banbox-secondary-container: #b2e0fc;\n --color-banbox-on-secondary-container: #17547b;\n --color-banbox-tertiary-container: #ceefd6;\n --color-banbox-on-tertiary-container: #3b7249;\n --color-banbox-surface-dim: #f1f1f1;\n --color-banbox-surface: #f2f3f7;\n --color-banbox-surface-bright: #fffcfa;\n --color-banbox-surface-container-lowest: #ffffff;\n --color-banbox-surface-container-low: #fff1ec;\n --color-banbox-surface-container: #fceae5;\n --color-banbox-surface-container-high: #f7e4df;\n --color-banbox-surface-container-highest: #f1dfd9;\n --color-banbox-on-surface: #2c2c2c;\n --color-banbox-text-dynamic: #636363;\n --color-banbox-outline: #e0d6cf;\n --color-banbox-outline-variant: #a89e97;\n --color-banbox-blue: #0d99ff;\n --color-banbox-blue-deep: #1078d8;\n --color-banbox-blue-dim-deep: #006fd6;\n --color-banbox-blue-h: #0a7acc;\n --color-banbox-red: #eb2127;\n --color-banbox-link: #005694;\n --color-banbox-link-h: #004576;\n --color-banbox-review: #fcb532;\n --color-banbox-green: #28c76f;\n --color-banbox-deep-green: #097000;\n --color-banbox-warning: #ff5301;\n --color-banbox-error: #eb2127;\n --color-banbox-ed: #ededed;\n --color-banbox-f8: #f8f8f8;\n --color-banbox-e1: #e1e1e1;\n --color-banbox-fc: #fcfcfc;\n --color-banbox-ca: #cacaca;\n --color-banbox-e5: #e5e5e5;\n --color-banbox-92: #929292;\n --color-banbox-63: #636363;\n --color-banbox-2c: #2c2c2c;\n --color-banbox-f1: #f1f1f1;\n --border-banbox-primary: #636363;\n --border-banbox-e1: #e1e1e1;\n --border-banbox-dark: #374151;\n --radius-banbox-sm: 4px;\n --radius-banbox-md: 6px;\n --radius-lg: 12px;\n --radius-full: 100px;\n --shadow-banbox-modal-primary: 0px 2px 12px 0px #3b33331a;\n --shadow-banbox-card-primary: 0px 6px 12px 0px #3b33331a;\n --shadow-banbox-card-secondary: 0px 2px 2px 0px #2f2f2f14;\n --shadow-banbox-footer-primary: 0px -2px 4px 0px #0000000a;\n}\n.banbox-chat-root[data-theme=marketplace] {\n --color-banbox-primary: #ff5300;\n --color-banbox-primary-active: #dc4c07;\n --color-banbox-surface-container-low: #fff1ec;\n --color-banbox-surface-container: #fceae5;\n}\n.banbox-chat-root[data-theme=admin] {\n --color-banbox-primary: #1a1a1a;\n --color-banbox-primary-active: #000000;\n --color-banbox-secondary: #374151;\n --color-banbox-surface-container-lowest: #ffffff;\n --color-banbox-surface-container-low: #f5f5f5;\n --color-banbox-surface-container: #eeeeee;\n --color-banbox-surface-container-high: #e8e8e8;\n --color-banbox-surface-container-highest: #e0e0e0;\n --color-banbox-outline: #d4d4d4;\n --color-banbox-outline-variant: #9e9e9e;\n}\n.banbox-chat-root .custom-scroll,\n.banbox-chat-root .custom-scroll-hidden {\n --sb-size: 6px;\n --sb-track: #f1f1f1;\n --sb-thumb: #c1c1c1;\n --sb-thumb-hover: #898989;\n overflow-y: auto;\n overscroll-behavior: contain;\n scrollbar-width: thin;\n scrollbar-color: #c1c1c1 #f1f1f1;\n}\n.banbox-chat-root .custom-scroll::-webkit-scrollbar,\n.banbox-chat-root .custom-scroll-hidden::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n display: block;\n}\n.banbox-chat-root .custom-scroll::-webkit-scrollbar-track,\n.banbox-chat-root .custom-scroll-hidden::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 9999px;\n}\n.banbox-chat-root .custom-scroll::-webkit-scrollbar-thumb,\n.banbox-chat-root .custom-scroll-hidden::-webkit-scrollbar-thumb {\n background-color: #c1c1c1;\n border-radius: 9999px;\n border: 1px solid #f1f1f1;\n min-height: 40px;\n}\n.banbox-chat-root .custom-scroll::-webkit-scrollbar-thumb:hover,\n.banbox-chat-root .custom-scroll-hidden::-webkit-scrollbar-thumb:hover {\n background-color: #898989;\n}\n.banbox-chat-root .custom-scroll-hidden {\n scrollbar-width: none;\n}\n.banbox-chat-root .custom-scroll-hidden::-webkit-scrollbar {\n display: none;\n}\n.banbox-chat-root .no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n}\n.banbox-chat-root .no-scrollbar::-webkit-scrollbar {\n display: none;\n}\n@keyframes banbox-chat-fade-in {\n from {\n opacity: 0;\n transform: translateY(6px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n.banbox-chat-root .animate-fade-in {\n animation: banbox-chat-fade-in 0.2s ease-out forwards;\n}\n.banbox-chat-root .chat-bubble-mine {\n background-color: var(--color-banbox-primary);\n color: #fff;\n}\n.banbox-chat-root .chat-thread-active {\n background-color: var(--color-banbox-surface-container-low);\n}\n.banbox-chat-root .chat-btn-send {\n background-color: var(--color-banbox-primary);\n color: #fff;\n}\n.banbox-chat-root .chat-btn-send:hover {\n background-color: var(--color-banbox-primary-active);\n}\n.banbox-chat-root .chat-badge-unread {\n background-color: var(--color-banbox-primary);\n color: #fff;\n}\n@layer utilities {\n .banbox-chat-root * {\n box-sizing: border-box;\n }\n}\n@property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-rotate-x { syntax: "*"; inherits: false; }\n@property --tw-rotate-y { syntax: "*"; inherits: false; }\n@property --tw-rotate-z { syntax: "*"; inherits: false; }\n@property --tw-skew-x { syntax: "*"; inherits: false; }\n@property --tw-skew-y { syntax: "*"; inherits: false; }\n@property --tw-space-y-reverse { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }\n@property --tw-leading { syntax: "*"; inherits: false; }\n@property --tw-font-weight { syntax: "*"; inherits: false; }\n@property --tw-tracking { syntax: "*"; inherits: false; }\n@property --tw-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-inset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-inset-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-inset-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-ring-color { syntax: "*"; inherits: false; }\n@property --tw-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-inset-ring-color { syntax: "*"; inherits: false; }\n@property --tw-inset-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-ring-inset { syntax: "*"; inherits: false; }\n@property --tw-ring-offset-width { syntax: "<length>"; inherits: false; initial-value: 0px; }\n@property --tw-ring-offset-color { syntax: "*"; inherits: false; initial-value: #fff; }\n@property --tw-ring-offset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-backdrop-blur { syntax: "*"; inherits: false; }\n@property --tw-backdrop-brightness { syntax: "*"; inherits: false; }\n@property --tw-backdrop-contrast { syntax: "*"; inherits: false; }\n@property --tw-backdrop-grayscale { syntax: "*"; inherits: false; }\n@property --tw-backdrop-hue-rotate { syntax: "*"; inherits: false; }\n@property --tw-backdrop-invert { syntax: "*"; inherits: false; }\n@property --tw-backdrop-opacity { syntax: "*"; inherits: false; }\n@property --tw-backdrop-saturate { syntax: "*"; inherits: false; }\n@property --tw-backdrop-sepia { syntax: "*"; inherits: false; }\n@property --tw-duration { syntax: "*"; inherits: false; }\n@property --tw-ease { syntax: "*"; inherits: false; }\n@property --tw-blur { syntax: "*"; inherits: false; }\n@property --tw-brightness { syntax: "*"; inherits: false; }\n@property --tw-contrast { syntax: "*"; inherits: false; }\n@property --tw-grayscale { syntax: "*"; inherits: false; }\n@property --tw-hue-rotate { syntax: "*"; inherits: false; }\n@property --tw-invert { syntax: "*"; inherits: false; }\n@property --tw-opacity { syntax: "*"; inherits: false; }\n@property --tw-saturate { syntax: "*"; inherits: false; }\n@property --tw-sepia { syntax: "*"; inherits: false; }\n@property --tw-drop-shadow { syntax: "*"; inherits: false; }\n@property --tw-drop-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-drop-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-drop-shadow-size { syntax: "*"; inherits: false; }\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *,\n ::before,\n ::after,\n ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n }\n }\n}\n');
41
- var ChatUIContext = React10.createContext(null);
40
+ styleInject('/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root,\n :host {\n --font-sans:\n ui-sans-serif,\n system-ui,\n sans-serif,\n "Apple Color Emoji",\n "Segoe UI Emoji",\n "Segoe UI Symbol",\n "Noto Color Emoji";\n --font-mono:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-4xl: 2.25rem;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --tracking-wide: 0.025em;\n --leading-normal: 1.5;\n --radius-xs: 0.125rem;\n --radius-sm: 0.25rem;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n }\n}\n@layer base {\n *,\n ::after,\n ::before,\n ::backdrop,\n ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html,\n :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b,\n strong {\n font-weight: bolder;\n }\n code,\n kbd,\n samp,\n pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub,\n sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol,\n ul,\n menu {\n list-style: none;\n }\n img,\n svg,\n video,\n canvas,\n audio,\n iframe,\n embed,\n object {\n display: block;\n vertical-align: middle;\n }\n img,\n video {\n max-width: 100%;\n height: auto;\n }\n button,\n input,\n select,\n optgroup,\n textarea,\n ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit,\n ::-webkit-datetime-edit-year-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button,\n input:where([type=button], [type=reset], [type=submit]),\n ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=until-found])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .visible {\n visibility: visible;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .inset-x-0 {\n inset-inline: calc(var(--spacing) * 0);\n }\n .inset-y-0 {\n inset-block: calc(var(--spacing) * 0);\n }\n .-top-\\[6px\\] {\n top: calc(6px * -1);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .top-\\[-4px\\] {\n top: -4px;\n }\n .top-full {\n top: 100%;\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-3 {\n right: calc(var(--spacing) * 3);\n }\n .right-4 {\n right: calc(var(--spacing) * 4);\n }\n .right-6 {\n right: calc(var(--spacing) * 6);\n }\n .right-\\[-63px\\] {\n right: -63px;\n }\n .right-full {\n right: 100%;\n }\n .-bottom-2 {\n bottom: calc(var(--spacing) * -2);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n }\n .bottom-6 {\n bottom: calc(var(--spacing) * 6);\n }\n .bottom-\\[-13px\\] {\n bottom: -13px;\n }\n .bottom-\\[12px\\] {\n bottom: 12px;\n }\n .bottom-full {\n bottom: 100%;\n }\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n .left-1\\/2 {\n left: calc(1 / 2 * 100%);\n }\n .left-6 {\n left: calc(var(--spacing) * 6);\n }\n .left-\\[30px\\] {\n left: 30px;\n }\n .left-full {\n left: 100%;\n }\n .-z-\\[1\\] {\n z-index: calc(1 * -1);\n }\n .z-10 {\n z-index: 10;\n }\n .z-50 {\n z-index: 50;\n }\n .z-70 {\n z-index: 70;\n }\n .z-71 {\n z-index: 71;\n }\n .z-999 {\n z-index: 999;\n }\n .z-9999 {\n z-index: 9999;\n }\n .z-10002 {\n z-index: 10002;\n }\n .z-\\[70\\] {\n z-index: 70;\n }\n .z-\\[9999\\] {\n z-index: 9999;\n }\n .z-\\[10002\\] {\n z-index: 10002;\n }\n .z-\\[10003\\] {\n z-index: 10003;\n }\n .z-\\[10004\\] {\n z-index: 10004;\n }\n .z-\\[10010\\] {\n z-index: 10010;\n }\n .z-\\[10011\\] {\n z-index: 10011;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .mx-auto {\n margin-inline: auto;\n }\n .ms-1 {\n margin-inline-start: calc(var(--spacing) * 1);\n }\n .ms-\\[3px\\] {\n margin-inline-start: 3px;\n }\n .ms-\\[12px\\] {\n margin-inline-start: 12px;\n }\n .me-1 {\n margin-inline-end: calc(var(--spacing) * 1);\n }\n .mt-0\\.5 {\n margin-top: calc(var(--spacing) * 0.5);\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n .mt-\\[2px\\] {\n margin-top: 2px;\n }\n .mt-\\[6px\\] {\n margin-top: 6px;\n }\n .mr-2 {\n margin-right: calc(var(--spacing) * 2);\n }\n .mr-auto {\n margin-right: auto;\n }\n .mb-0 {\n margin-bottom: calc(var(--spacing) * 0);\n }\n .mb-0\\.5 {\n margin-bottom: calc(var(--spacing) * 0.5);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-1\\.5 {\n margin-bottom: calc(var(--spacing) * 1.5);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-5 {\n margin-bottom: calc(var(--spacing) * 5);\n }\n .mb-10 {\n margin-bottom: calc(var(--spacing) * 10);\n }\n .mb-\\[24px\\] {\n margin-bottom: 24px;\n }\n .-ml-\\[5px\\] {\n margin-left: calc(5px * -1);\n }\n .ml-0\\.5 {\n margin-left: calc(var(--spacing) * 0.5);\n }\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n .ml-1\\.5 {\n margin-left: calc(var(--spacing) * 1.5);\n }\n .ml-\\[2px\\] {\n margin-left: 2px;\n }\n .ml-\\[4px\\] {\n margin-left: 4px;\n }\n .ml-auto {\n margin-left: auto;\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline {\n display: inline;\n }\n .inline-block {\n display: inline-block;\n }\n .inline-flex {\n display: inline-flex;\n }\n .h-0 {\n height: calc(var(--spacing) * 0);\n }\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n .h-2\\.5 {\n height: calc(var(--spacing) * 2.5);\n }\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n .h-7 {\n height: calc(var(--spacing) * 7);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-9 {\n height: calc(var(--spacing) * 9);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-\\[1\\.17px\\] {\n height: 1.17px;\n }\n .h-\\[4px\\] {\n height: 4px;\n }\n .h-\\[5\\.5px\\] {\n height: 5.5px;\n }\n .h-\\[11\\.25px\\] {\n height: 11.25px;\n }\n .h-\\[14px\\] {\n height: 14px;\n }\n .h-\\[16px\\] {\n height: 16px;\n }\n .h-\\[17\\.5px\\] {\n height: 17.5px;\n }\n .h-\\[18px\\] {\n height: 18px;\n }\n .h-\\[21px\\] {\n height: 21px;\n }\n .h-\\[22px\\] {\n height: 22px;\n }\n .h-\\[26px\\] {\n height: 26px;\n }\n .h-\\[28px\\] {\n height: 28px;\n }\n .h-\\[30px\\] {\n height: 30px;\n }\n .h-\\[32px\\] {\n height: 32px;\n }\n .h-\\[34px\\] {\n height: 34px;\n }\n .h-\\[36px\\] {\n height: 36px;\n }\n .h-\\[40px\\] {\n height: 40px;\n }\n .h-\\[41px\\] {\n height: 41px;\n }\n .h-\\[44px\\] {\n height: 44px;\n }\n .h-\\[46px\\] {\n height: 46px;\n }\n .h-\\[52px\\] {\n height: 52px;\n }\n .h-\\[64px\\] {\n height: 64px;\n }\n .h-\\[65px\\] {\n height: 65px;\n }\n .h-\\[75px\\] {\n height: 75px;\n }\n .h-\\[100px\\] {\n height: 100px;\n }\n .h-\\[208px\\] {\n height: 208px;\n }\n .h-\\[446px\\] {\n height: 446px;\n }\n .h-\\[650px\\] {\n height: 650px;\n }\n .h-full {\n height: 100%;\n }\n .h-px {\n height: 1px;\n }\n .max-h-\\[200px\\] {\n max-height: 200px;\n }\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n .min-h-\\[50px\\] {\n min-height: 50px;\n }\n .min-h-full {\n min-height: 100%;\n }\n .w-0 {\n width: calc(var(--spacing) * 0);\n }\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n .w-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n }\n .w-3 {\n width: calc(var(--spacing) * 3);\n }\n .w-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-9 {\n width: calc(var(--spacing) * 9);\n }\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n .w-44 {\n width: calc(var(--spacing) * 44);\n }\n .w-\\[5\\.5px\\] {\n width: 5.5px;\n }\n .w-\\[11\\.25px\\] {\n width: 11.25px;\n }\n .w-\\[14px\\] {\n width: 14px;\n }\n .w-\\[16px\\] {\n width: 16px;\n }\n .w-\\[18\\.08px\\] {\n width: 18.08px;\n }\n .w-\\[18px\\] {\n width: 18px;\n }\n .w-\\[22px\\] {\n width: 22px;\n }\n .w-\\[26px\\] {\n width: 26px;\n }\n .w-\\[28px\\] {\n width: 28px;\n }\n .w-\\[30px\\] {\n width: 30px;\n }\n .w-\\[34px\\] {\n width: 34px;\n }\n .w-\\[36px\\] {\n width: 36px;\n }\n .w-\\[40px\\] {\n width: 40px;\n }\n .w-\\[44px\\] {\n width: 44px;\n }\n .w-\\[46px\\] {\n width: 46px;\n }\n .w-\\[65px\\] {\n width: 65px;\n }\n .w-\\[105px\\] {\n width: 105px;\n }\n .w-\\[130px\\] {\n width: 130px;\n }\n .w-\\[186px\\] {\n width: 186px;\n }\n .w-\\[340px\\] {\n width: 340px;\n }\n .w-\\[355px\\] {\n width: 355px;\n }\n .w-\\[420px\\] {\n width: 420px;\n }\n .w-\\[450px\\] {\n width: 450px;\n }\n .w-\\[460px\\] {\n width: 460px;\n }\n .w-\\[480px\\] {\n width: 480px;\n }\n .w-\\[700px\\] {\n width: 700px;\n }\n .w-fit {\n width: fit-content;\n }\n .w-full {\n width: 100%;\n }\n .w-px {\n width: 1px;\n }\n .max-w-\\[80\\%\\] {\n max-width: 80%;\n }\n .max-w-\\[95\\%\\] {\n max-width: 95%;\n }\n .max-w-\\[95vw\\] {\n max-width: 95vw;\n }\n .max-w-\\[110px\\] {\n max-width: 110px;\n }\n .max-w-\\[151px\\] {\n max-width: 151px;\n }\n .max-w-\\[185px\\] {\n max-width: 185px;\n }\n .max-w-\\[200px\\] {\n max-width: 200px;\n }\n .max-w-\\[260px\\] {\n max-width: 260px;\n }\n .max-w-\\[289px\\] {\n max-width: 289px;\n }\n .max-w-\\[300px\\] {\n max-width: 300px;\n }\n .max-w-\\[410px\\] {\n max-width: 410px;\n }\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n .min-w-\\[100px\\] {\n min-width: 100px;\n }\n .min-w-\\[106px\\] {\n min-width: 106px;\n }\n .flex-1 {\n flex: 1;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .-translate-x-1\\.5 {\n --tw-translate-x: calc(var(--spacing) * -1.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-x-1\\.5 {\n --tw-translate-x: calc(var(--spacing) * 1.5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .rotate-45 {\n rotate: 45deg;\n }\n .rotate-180 {\n rotate: 180deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .cursor-auto\\! {\n cursor: auto !important;\n }\n .cursor-default {\n cursor: default;\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .cursor-zoom-in {\n cursor: zoom-in;\n }\n .resize {\n resize: both;\n }\n .resize-none {\n resize: none;\n }\n .appearance-none {\n appearance: none;\n }\n .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-cols-7 {\n grid-template-columns: repeat(7, minmax(0, 1fr));\n }\n .grid-cols-\\[1fr_350px\\] {\n grid-template-columns: 1fr 350px;\n }\n .grid-cols-\\[18px_120px_1fr\\] {\n grid-template-columns: 18px 120px 1fr;\n }\n .grid-cols-\\[125px_125px\\] {\n grid-template-columns: 125px 125px;\n }\n .flex-col {\n flex-direction: column;\n }\n .place-items-center {\n place-items: center;\n }\n .items-center {\n align-items: center;\n }\n .items-end {\n align-items: flex-end;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-stretch {\n align-items: stretch;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .gap-0 {\n gap: calc(var(--spacing) * 0);\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n .gap-\\[6px\\] {\n gap: 6px;\n }\n .gap-\\[17px\\] {\n gap: 17px;\n }\n .gap-\\[18px\\] {\n gap: 18px;\n }\n .gap-\\[24px\\] {\n gap: 24px;\n }\n .space-y-1 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-1\\.5 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-3 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-\\[2px\\] {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(2px * var(--tw-space-y-reverse));\n margin-block-end: calc(2px * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .gap-y-1\\.5 {\n row-gap: calc(var(--spacing) * 1.5);\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .overflow-clip {\n overflow: clip;\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-auto {\n overflow-x: auto;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-\\[2\\.33px\\] {\n border-radius: 2.33px;\n }\n .rounded-\\[3\\.5px\\] {\n border-radius: 3.5px;\n }\n .rounded-\\[3px\\] {\n border-radius: 3px;\n }\n .rounded-\\[4px\\] {\n border-radius: 4px;\n }\n .rounded-\\[6px\\] {\n border-radius: 6px;\n }\n .rounded-\\[12px\\] {\n border-radius: 12px;\n }\n .rounded-\\[14px\\] {\n border-radius: 14px;\n }\n .rounded-\\[18px\\] {\n border-radius: 18px;\n }\n .rounded-\\[20px\\] {\n border-radius: 20px;\n }\n .rounded-\\[inherit\\] {\n border-radius: inherit;\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .rounded-md {\n border-radius: var(--radius-md);\n }\n .rounded-sm {\n border-radius: var(--radius-sm);\n }\n .rounded-xs {\n border-radius: var(--radius-xs);\n }\n .rounded-t-\\[6px\\] {\n border-top-left-radius: 6px;\n border-top-right-radius: 6px;\n }\n .rounded-t-md {\n border-top-left-radius: var(--radius-md);\n border-top-right-radius: var(--radius-md);\n }\n .rounded-tl-\\[3px\\] {\n border-top-left-radius: 3px;\n }\n .rounded-tl-md {\n border-top-left-radius: var(--radius-md);\n }\n .rounded-tr-\\[3px\\] {\n border-top-right-radius: 3px;\n }\n .rounded-tr-\\[6px\\] {\n border-top-right-radius: 6px;\n }\n .rounded-b-\\[6px\\] {\n border-bottom-right-radius: 6px;\n border-bottom-left-radius: 6px;\n }\n .rounded-br-\\[3px\\] {\n border-bottom-right-radius: 3px;\n }\n .rounded-bl-\\[3px\\] {\n border-bottom-left-radius: 3px;\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-\\[0\\.7px\\] {\n border-style: var(--tw-border-style);\n border-width: 0.7px;\n }\n .border-\\[1\\.5px\\] {\n border-style: var(--tw-border-style);\n border-width: 1.5px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-t-16 {\n border-top-style: var(--tw-border-style);\n border-top-width: 16px;\n }\n .border-t-\\[5px\\] {\n border-top-style: var(--tw-border-style);\n border-top-width: 5px;\n }\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n .border-r-\\[5px\\] {\n border-right-style: var(--tw-border-style);\n border-right-width: 5px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n .border-l-2 {\n border-left-style: var(--tw-border-style);\n border-left-width: 2px;\n }\n .border-l-16 {\n border-left-style: var(--tw-border-style);\n border-left-width: 16px;\n }\n .border-l-\\[5px\\] {\n border-left-style: var(--tw-border-style);\n border-left-width: 5px;\n }\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n .border-\\[\\#00b8d4\\] {\n border-color: #00b8d4;\n }\n .border-\\[\\#3D3D3D\\] {\n border-color: #3D3D3D;\n }\n .border-\\[\\#3d3d3d\\] {\n border-color: #3d3d3d;\n }\n .border-\\[\\#3d6b42\\] {\n border-color: #3d6b42;\n }\n .border-\\[\\#6A6A6A\\] {\n border-color: #6A6A6A;\n }\n .border-\\[\\#9BBCCF\\] {\n border-color: #9BBCCF;\n }\n .border-\\[\\#005694\\] {\n border-color: #005694;\n }\n .border-\\[\\#086600\\] {\n border-color: #086600;\n }\n .border-\\[\\#636363\\] {\n border-color: #636363;\n }\n .border-\\[\\#CCCCCC\\] {\n border-color: #CCCCCC;\n }\n .border-\\[\\#D8D8D8\\] {\n border-color: #D8D8D8;\n }\n .border-\\[\\#E5E5E5\\] {\n border-color: #E5E5E5;\n }\n .border-\\[\\#EFEFEF\\] {\n border-color: #EFEFEF;\n }\n .border-\\[\\#F1F1F1\\] {\n border-color: #F1F1F1;\n }\n .border-\\[\\#F8F8F8\\] {\n border-color: #F8F8F8;\n }\n .border-\\[\\#FF5300\\] {\n border-color: #FF5300;\n }\n .border-\\[\\#cacaca\\] {\n border-color: #cacaca;\n }\n .border-\\[\\#d1d5db\\] {\n border-color: #d1d5db;\n }\n .border-\\[\\#e1e1e1\\] {\n border-color: #e1e1e1;\n }\n .border-\\[\\#ededed\\] {\n border-color: #ededed;\n }\n .border-\\[\\#ef4444\\] {\n border-color: #ef4444;\n }\n .border-\\[\\#f1f1f1\\] {\n border-color: #f1f1f1;\n }\n .border-\\[\\#f8f8f8\\] {\n border-color: #f8f8f8;\n }\n .border-\\[\\#f59e0b\\] {\n border-color: #f59e0b;\n }\n .border-black {\n border-color: var(--color-black);\n }\n .border-transparent {\n border-color: transparent;\n }\n .border-t-\\[\\#636363\\] {\n border-top-color: #636363;\n }\n .border-t-\\[\\#FFD2BD\\] {\n border-top-color: #FFD2BD;\n }\n .border-t-transparent {\n border-top-color: transparent;\n }\n .border-r-transparent {\n border-right-color: transparent;\n }\n .border-l-transparent {\n border-left-color: transparent;\n }\n .\\!bg-\\[\\#636363\\] {\n background-color: #636363 !important;\n }\n .bg-\\[\\#00b8d4\\] {\n background-color: #00b8d4;\n }\n .bg-\\[\\#00b8d4\\]\\/10 {\n background-color: color-mix(in oklab, #00b8d4 10%, transparent);\n }\n .bg-\\[\\#1E8E3E\\] {\n background-color: #1E8E3E;\n }\n .bg-\\[\\#3D3D3D\\] {\n background-color: #3D3D3D;\n }\n .bg-\\[\\#3D3D3D\\]\\/10 {\n background-color: color-mix(in oklab, #3D3D3D 10%, transparent);\n }\n .bg-\\[\\#3d3d3d\\] {\n background-color: #3d3d3d;\n }\n .bg-\\[\\#3d6b42\\] {\n background-color: #3d6b42;\n }\n .bg-\\[\\#3d6b42\\]\\/10 {\n background-color: color-mix(in oklab, #3d6b42 10%, transparent);\n }\n .bg-\\[\\#005694\\] {\n background-color: #005694;\n }\n .bg-\\[\\#086600\\] {\n background-color: #086600;\n }\n .bg-\\[\\#328545\\] {\n background-color: #328545;\n }\n .bg-\\[\\#636363\\] {\n background-color: #636363;\n }\n .bg-\\[\\#747474\\] {\n background-color: #747474;\n }\n .bg-\\[\\#BDBDBD\\] {\n background-color: #BDBDBD;\n }\n .bg-\\[\\#E0EFF8\\] {\n background-color: #E0EFF8;\n }\n .bg-\\[\\#E6F5E6\\] {\n background-color: #E6F5E6;\n }\n .bg-\\[\\#E7E7E7\\] {\n background-color: #E7E7E7;\n }\n .bg-\\[\\#F1F1F1\\] {\n background-color: #F1F1F1;\n }\n .bg-\\[\\#F5F7FA\\] {\n background-color: #F5F7FA;\n }\n .bg-\\[\\#F7F7F7\\] {\n background-color: #F7F7F7;\n }\n .bg-\\[\\#F8F8F8\\] {\n background-color: #F8F8F8;\n }\n .bg-\\[\\#FF5300\\] {\n background-color: #FF5300;\n }\n .bg-\\[\\#FFDBCF\\] {\n background-color: #FFDBCF;\n }\n .bg-\\[\\#FFE9DB\\] {\n background-color: #FFE9DB;\n }\n .bg-\\[\\#FFEAE0\\] {\n background-color: #FFEAE0;\n }\n .bg-\\[\\#cacaca\\] {\n background-color: #cacaca;\n }\n .bg-\\[\\#e1e1e1\\] {\n background-color: #e1e1e1;\n }\n .bg-\\[\\#eb2127\\] {\n background-color: #eb2127;\n }\n .bg-\\[\\#ececec\\] {\n background-color: #ececec;\n }\n .bg-\\[\\#ef4444\\] {\n background-color: #ef4444;\n }\n .bg-\\[\\#ef4444\\]\\/10 {\n background-color: color-mix(in oklab, #ef4444 10%, transparent);\n }\n .bg-\\[\\#f0f4ff\\] {\n background-color: #f0f4ff;\n }\n .bg-\\[\\#f1f1f1\\] {\n background-color: #f1f1f1;\n }\n .bg-\\[\\#f8f8f8\\] {\n background-color: #f8f8f8;\n }\n .bg-\\[\\#f59e0b\\] {\n background-color: #f59e0b;\n }\n .bg-\\[\\#f59e0b\\]\\/10 {\n background-color: color-mix(in oklab, #f59e0b 10%, transparent);\n }\n .bg-\\[\\#ff5200\\] {\n background-color: #ff5200;\n }\n .bg-\\[var\\(--color-banbox-f8\\,\\#f8f8f8\\)\\] {\n background-color: var(--color-banbox-f8,#f8f8f8);\n }\n .bg-\\[var\\(--color-banbox-primary-container\\,\\#f0f4ff\\)\\] {\n background-color: var(--color-banbox-primary-container,#f0f4ff);\n }\n .bg-black {\n background-color: var(--color-black);\n }\n .bg-black\\/5 {\n background-color: color-mix(in srgb, #000 5%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 5%, transparent);\n }\n }\n .bg-black\\/30 {\n background-color: color-mix(in srgb, #000 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 30%, transparent);\n }\n }\n .bg-black\\/35 {\n background-color: color-mix(in srgb, #000 35%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 35%, transparent);\n }\n }\n .bg-black\\/40 {\n background-color: color-mix(in srgb, #000 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 40%, transparent);\n }\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-cover {\n background-size: cover;\n }\n .bg-no-repeat {\n background-repeat: no-repeat;\n }\n .object-contain {\n object-fit: contain;\n }\n .object-cover {\n object-fit: cover;\n }\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-3\\.5 {\n padding: calc(var(--spacing) * 3.5);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .p-\\[1\\.75px\\] {\n padding: 1.75px;\n }\n .p-\\[2px\\] {\n padding: 2px;\n }\n .p-\\[3px\\] {\n padding: 3px;\n }\n .p-\\[7px\\] {\n padding: 7px;\n }\n .p-px {\n padding: 1px;\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-2\\.5 {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-5 {\n padding-inline: calc(var(--spacing) * 5);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .px-8 {\n padding-inline: calc(var(--spacing) * 8);\n }\n .px-\\[3px\\] {\n padding-inline: 3px;\n }\n .px-\\[4px\\] {\n padding-inline: 4px;\n }\n .px-\\[10px\\] {\n padding-inline: 10px;\n }\n .px-\\[12px\\] {\n padding-inline: 12px;\n }\n .px-\\[14px\\] {\n padding-inline: 14px;\n }\n .px-\\[16px\\] {\n padding-inline: 16px;\n }\n .px-\\[18px\\] {\n padding-inline: 18px;\n }\n .px-\\[20px\\] {\n padding-inline: 20px;\n }\n .py-0 {\n padding-block: calc(var(--spacing) * 0);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-2\\.5 {\n padding-block: calc(var(--spacing) * 2.5);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n .py-6 {\n padding-block: calc(var(--spacing) * 6);\n }\n .py-\\[2px\\] {\n padding-block: 2px;\n }\n .py-\\[3px\\] {\n padding-block: 3px;\n }\n .py-\\[7px\\] {\n padding-block: 7px;\n }\n .py-\\[9px\\] {\n padding-block: 9px;\n }\n .ps-\\[16px\\] {\n padding-inline-start: 16px;\n }\n .pe-\\[4px\\] {\n padding-inline-end: 4px;\n }\n .pe-\\[30px\\] {\n padding-inline-end: 30px;\n }\n .pt-1 {\n padding-top: calc(var(--spacing) * 1);\n }\n .pt-2\\.5 {\n padding-top: calc(var(--spacing) * 2.5);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pt-\\[2px\\] {\n padding-top: 2px;\n }\n .pt-\\[24px\\] {\n padding-top: 24px;\n }\n .pr-1\\.5 {\n padding-right: calc(var(--spacing) * 1.5);\n }\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n .pb-1 {\n padding-bottom: calc(var(--spacing) * 1);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pb-6 {\n padding-bottom: calc(var(--spacing) * 6);\n }\n .pb-10 {\n padding-bottom: calc(var(--spacing) * 10);\n }\n .pb-\\[2px\\] {\n padding-bottom: 2px;\n }\n .text-left {\n text-align: left;\n }\n .text-right {\n text-align: right;\n }\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n .text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-\\[10px\\] {\n font-size: 10px;\n }\n .text-\\[12px\\] {\n font-size: 12px;\n }\n .text-\\[13px\\] {\n font-size: 13px;\n }\n .text-\\[14px\\] {\n font-size: 14px;\n }\n .text-\\[15px\\] {\n font-size: 15px;\n }\n .text-\\[16px\\] {\n font-size: 16px;\n }\n .text-\\[20px\\] {\n font-size: 20px;\n }\n .text-\\[22px\\] {\n font-size: 22px;\n }\n .leading-4 {\n --tw-leading: calc(var(--spacing) * 4);\n line-height: calc(var(--spacing) * 4);\n }\n .leading-normal {\n --tw-leading: var(--leading-normal);\n line-height: var(--leading-normal);\n }\n .font-light {\n --tw-font-weight: var(--font-weight-light);\n font-weight: var(--font-weight-light);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-\\[0\\.4px\\] {\n --tw-tracking: 0.4px;\n letter-spacing: 0.4px;\n }\n .tracking-\\[0\\.5px\\] {\n --tw-tracking: 0.5px;\n letter-spacing: 0.5px;\n }\n .tracking-\\[0\\.25px\\] {\n --tw-tracking: 0.25px;\n letter-spacing: 0.25px;\n }\n .tracking-wide {\n --tw-tracking: var(--tracking-wide);\n letter-spacing: var(--tracking-wide);\n }\n .break-words {\n overflow-wrap: break-word;\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .text-\\[\\#0D5EA8\\] {\n color: #0D5EA8;\n }\n .text-\\[\\#0F0F0F\\] {\n color: #0F0F0F;\n }\n .text-\\[\\#00b8d4\\] {\n color: #00b8d4;\n }\n .text-\\[\\#1E9E6A\\] {\n color: #1E9E6A;\n }\n .text-\\[\\#2B579A\\] {\n color: #2B579A;\n }\n .text-\\[\\#2C2C2C\\] {\n color: #2C2C2C;\n }\n .text-\\[\\#2c2c2c\\] {\n color: #2c2c2c;\n }\n .text-\\[\\#3D3D3D\\] {\n color: #3D3D3D;\n }\n .text-\\[\\#3d6b42\\] {\n color: #3d6b42;\n }\n .text-\\[\\#004F4F\\] {\n color: #004F4F;\n }\n .text-\\[\\#6B7280\\] {\n color: #6B7280;\n }\n .text-\\[\\#6b7280\\] {\n color: #6b7280;\n }\n .text-\\[\\#9AA1A9\\] {\n color: #9AA1A9;\n }\n .text-\\[\\#9C9C9C\\] {\n color: #9C9C9C;\n }\n .text-\\[\\#9ca3af\\] {\n color: #9ca3af;\n }\n .text-\\[\\#00486F\\] {\n color: #00486F;\n }\n .text-\\[\\#005694\\] {\n color: #005694;\n }\n .text-\\[\\#086600\\] {\n color: #086600;\n }\n .text-\\[\\#161616\\] {\n color: #161616;\n }\n .text-\\[\\#374151\\] {\n color: #374151;\n }\n .text-\\[\\#636363\\] {\n color: #636363;\n }\n .text-\\[\\#747474\\] {\n color: #747474;\n }\n .text-\\[\\#929292\\] {\n color: #929292;\n }\n .text-\\[\\#B7B7B7\\] {\n color: #B7B7B7;\n }\n .text-\\[\\#B9C3D4\\] {\n color: #B9C3D4;\n }\n .text-\\[\\#D93025\\] {\n color: #D93025;\n }\n .text-\\[\\#E63946\\] {\n color: #E63946;\n }\n .text-\\[\\#E69138\\] {\n color: #E69138;\n }\n .text-\\[\\#EA580C\\] {\n color: #EA580C;\n }\n .text-\\[\\#FF5300\\] {\n color: #FF5300;\n }\n .text-\\[\\#ef4444\\] {\n color: #ef4444;\n }\n .text-\\[\\#f59e0b\\] {\n color: #f59e0b;\n }\n .text-\\[\\#ff5200\\] {\n color: #ff5200;\n }\n .text-\\[\\#ff5301\\] {\n color: #ff5301;\n }\n .text-black {\n color: var(--color-black);\n }\n .text-white {\n color: var(--color-white);\n }\n .capitalize {\n text-transform: capitalize;\n }\n .uppercase {\n text-transform: uppercase;\n }\n .underline {\n text-decoration-line: underline;\n }\n .underline-offset-4 {\n text-underline-offset: 4px;\n }\n .placeholder-\\[\\#9ca3af\\] {\n &::placeholder {\n color: #9ca3af;\n }\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-30 {\n opacity: 30%;\n }\n .opacity-50 {\n opacity: 50%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow-\\[-3px_0px_6px_0px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\] {\n --tw-shadow: -3px 0px 6px 0px var(--tw-shadow-color, rgba(0,0,0,0.1));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0_1px_2px_rgba\\(0\\,0\\,0\\,0\\.04\\)\\] {\n --tw-shadow: 0 1px 2px var(--tw-shadow-color, rgba(0,0,0,0.04));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0_1px_3px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\] {\n --tw-shadow: 0 1px 3px var(--tw-shadow-color, rgba(0,0,0,0.08));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0_2px_8px_rgba\\(0\\,0\\,0\\,0\\.15\\)\\] {\n --tw-shadow: 0 2px 8px var(--tw-shadow-color, rgba(0,0,0,0.15));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0_2px_12px_rgba\\(59\\,51\\,51\\,0\\.1\\)\\] {\n --tw-shadow: 0 2px 12px var(--tw-shadow-color, rgba(59,51,51,0.1));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0_4px_16px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\] {\n --tw-shadow: 0 4px 16px var(--tw-shadow-color, rgba(0,0,0,0.08));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0_8px_24px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\] {\n --tw-shadow: 0 8px 24px var(--tw-shadow-color, rgba(0,0,0,0.12));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0_12px_30px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\] {\n --tw-shadow: 0 12px 30px var(--tw-shadow-color, rgba(0,0,0,0.18));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0px_2px_2px_0px_rgba\\(47\\,47\\,47\\,0\\.08\\)\\] {\n --tw-shadow: 0px 2px 2px 0px var(--tw-shadow-color, rgba(47,47,47,0.08));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0px_2px_4px_0px_\\#A5A3AE4D\\] {\n --tw-shadow: 0px 2px 4px 0px var(--tw-shadow-color, #A5A3AE4D);\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[0px_2px_12px_0px_rgba\\(59\\,51\\,51\\,0\\.1\\)\\] {\n --tw-shadow: 0px 2px 12px 0px var(--tw-shadow-color, rgba(59,51,51,0.1));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-\\[3px_0px_6px_0px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\] {\n --tw-shadow: 3px 0px 6px 0px var(--tw-shadow-color, rgba(0,0,0,0.1));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .ring-\\[\\#2F80ED\\]\\/40 {\n --tw-ring-color: color-mix(in oklab, #2F80ED 40%, transparent);\n }\n .ring-white {\n --tw-ring-color: var(--color-white);\n }\n .backdrop-blur-\\[2px\\] {\n --tw-backdrop-blur: blur(2px);\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n }\n .transition {\n transition-property:\n color,\n background-color,\n border-color,\n outline-color,\n text-decoration-color,\n fill,\n stroke,\n --tw-gradient-from,\n --tw-gradient-via,\n --tw-gradient-to,\n opacity,\n box-shadow,\n transform,\n translate,\n scale,\n rotate,\n filter,\n -webkit-backdrop-filter,\n backdrop-filter,\n display,\n content-visibility,\n overlay,\n pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-\\[background\\] {\n transition-property: background;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n outline-color,\n text-decoration-color,\n fill,\n stroke,\n --tw-gradient-from,\n --tw-gradient-via,\n --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-transform {\n transition-property:\n transform,\n translate,\n scale,\n rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-150 {\n --tw-duration: 150ms;\n transition-duration: 150ms;\n }\n .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .ease-out {\n --tw-ease: var(--ease-out);\n transition-timing-function: var(--ease-out);\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n .group-hover\\:h-\\[6px\\] {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n height: 6px;\n }\n }\n }\n .group-hover\\:w-\\[6px\\] {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n width: 6px;\n }\n }\n }\n .group-hover\\:border-2 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n }\n }\n .group-hover\\:opacity-0 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n opacity: 0%;\n }\n }\n }\n .group-hover\\:opacity-100 {\n &:is(:where(.group):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-hover\\/message\\:opacity-100 {\n &:is(:where(.group\\/message):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-hover\\/replay\\:opacity-100 {\n &:is(:where(.group\\/replay):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .group-hover\\/translate\\:opacity-100 {\n &:is(:where(.group\\/translate):hover *) {\n @media (hover: hover) {\n opacity: 100%;\n }\n }\n }\n .placeholder\\:text-\\[\\#9C9C9C\\] {\n &::placeholder {\n color: #9C9C9C;\n }\n }\n .hover\\:border-\\[\\#777\\] {\n &:hover {\n @media (hover: hover) {\n border-color: #777;\n }\n }\n }\n .hover\\:border-\\[\\#636363\\] {\n &:hover {\n @media (hover: hover) {\n border-color: #636363;\n }\n }\n }\n .hover\\:border-\\[\\#e04a00\\] {\n &:hover {\n @media (hover: hover) {\n border-color: #e04a00;\n }\n }\n }\n .hover\\:bg-\\[\\#2e5939\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #2e5939;\n }\n }\n }\n .hover\\:bg-\\[\\#009db3\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #009db3;\n }\n }\n }\n .hover\\:bg-\\[\\#28A745\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #28A745;\n }\n }\n }\n .hover\\:bg-\\[\\#00375E\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #00375E;\n }\n }\n }\n .hover\\:bg-\\[\\#646464\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #646464;\n }\n }\n }\n .hover\\:bg-\\[\\#F4F6F8\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #F4F6F8;\n }\n }\n }\n .hover\\:bg-\\[\\#c91b20\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #c91b20;\n }\n }\n }\n .hover\\:bg-\\[\\#d97706\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #d97706;\n }\n }\n }\n .hover\\:bg-\\[\\#e04a00\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #e04a00;\n }\n }\n }\n .hover\\:bg-\\[\\#e64a00\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #e64a00;\n }\n }\n }\n .hover\\:bg-\\[\\#f1f1f1\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #f1f1f1;\n }\n }\n }\n .hover\\:bg-\\[\\#f8f8f8\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #f8f8f8;\n }\n }\n }\n .hover\\:bg-\\[\\#f9fafb\\] {\n &:hover {\n @media (hover: hover) {\n background-color: #f9fafb;\n }\n }\n }\n .hover\\:bg-black\\/5 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #000 5%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 5%, transparent);\n }\n }\n }\n }\n .hover\\:bg-black\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #000 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 10%, transparent);\n }\n }\n }\n }\n .hover\\:bg-gray-50 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-50);\n }\n }\n }\n .hover\\:text-\\[\\#FF5300\\] {\n &:hover {\n @media (hover: hover) {\n color: #FF5300;\n }\n }\n }\n .hover\\:text-\\[\\#ff5200\\] {\n &:hover {\n @media (hover: hover) {\n color: #ff5200;\n }\n }\n }\n .hover\\:text-\\[\\#ff5301\\] {\n &:hover {\n @media (hover: hover) {\n color: #ff5301;\n }\n }\n }\n .hover\\:text-\\[var\\(--color-banbox-warning\\)\\] {\n &:hover {\n @media (hover: hover) {\n color: var(--color-banbox-warning);\n }\n }\n }\n .hover\\:brightness-95 {\n &:hover {\n @media (hover: hover) {\n --tw-brightness: brightness(95%);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n }\n }\n .focus\\:border-\\[\\#2753fb\\] {\n &:focus {\n border-color: #2753fb;\n }\n }\n .focus\\:border-\\[\\#ff5200\\] {\n &:focus {\n border-color: #ff5200;\n }\n }\n .focus\\:ring-1 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n }\n .focus\\:ring-\\[\\#2753fb\\]\\/20 {\n &:focus {\n --tw-ring-color: color-mix(in oklab, #2753fb 20%, transparent);\n }\n }\n .focus\\:ring-\\[\\#ff5200\\]\\/30 {\n &:focus {\n --tw-ring-color: color-mix(in oklab, #ff5200 30%, transparent);\n }\n }\n .focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .disabled\\:opacity-50 {\n &:disabled {\n opacity: 50%;\n }\n }\n}\n.banbox-chat-root {\n --color-banbox-primary: #ff5300;\n --color-banbox-primary-active: #dc4c07;\n --color-banbox-secondary: #2079b0;\n --color-banbox-tertiary: #74a380;\n --color-banbox-primary-container: #f9d2c4;\n --color-banbox-on-primary-container: #9e3505;\n --color-banbox-secondary-container: #b2e0fc;\n --color-banbox-on-secondary-container: #17547b;\n --color-banbox-tertiary-container: #ceefd6;\n --color-banbox-on-tertiary-container: #3b7249;\n --color-banbox-surface-dim: #f1f1f1;\n --color-banbox-surface: #f2f3f7;\n --color-banbox-surface-bright: #fffcfa;\n --color-banbox-surface-container-lowest: #ffffff;\n --color-banbox-surface-container-low: #fff1ec;\n --color-banbox-surface-container: #fceae5;\n --color-banbox-surface-container-high: #f7e4df;\n --color-banbox-surface-container-highest: #f1dfd9;\n --color-banbox-on-surface: #2c2c2c;\n --color-banbox-text-dynamic: #636363;\n --color-banbox-outline: #e0d6cf;\n --color-banbox-outline-variant: #a89e97;\n --color-banbox-blue: #0d99ff;\n --color-banbox-blue-deep: #1078d8;\n --color-banbox-blue-dim-deep: #006fd6;\n --color-banbox-blue-h: #0a7acc;\n --color-banbox-red: #eb2127;\n --color-banbox-link: #005694;\n --color-banbox-link-h: #004576;\n --color-banbox-review: #fcb532;\n --color-banbox-green: #28c76f;\n --color-banbox-deep-green: #097000;\n --color-banbox-warning: #ff5301;\n --color-banbox-error: #eb2127;\n --color-banbox-ed: #ededed;\n --color-banbox-f8: #f8f8f8;\n --color-banbox-e1: #e1e1e1;\n --color-banbox-fc: #fcfcfc;\n --color-banbox-ca: #cacaca;\n --color-banbox-e5: #e5e5e5;\n --color-banbox-92: #929292;\n --color-banbox-63: #636363;\n --color-banbox-2c: #2c2c2c;\n --color-banbox-f1: #f1f1f1;\n --border-banbox-primary: #636363;\n --border-banbox-e1: #e1e1e1;\n --border-banbox-dark: #374151;\n --radius-banbox-sm: 4px;\n --radius-banbox-md: 6px;\n --radius-lg: 12px;\n --radius-full: 100px;\n --shadow-banbox-modal-primary: 0px 2px 12px 0px #3b33331a;\n --shadow-banbox-card-primary: 0px 6px 12px 0px #3b33331a;\n --shadow-banbox-card-secondary: 0px 2px 2px 0px #2f2f2f14;\n --shadow-banbox-footer-primary: 0px -2px 4px 0px #0000000a;\n}\n.banbox-chat-root[data-theme=marketplace] {\n --color-banbox-primary: #ff5300;\n --color-banbox-primary-active: #dc4c07;\n --color-banbox-surface-container-low: #fff1ec;\n --color-banbox-surface-container: #fceae5;\n}\n.banbox-chat-root[data-theme=admin] {\n --color-banbox-primary: #1a1a1a;\n --color-banbox-primary-active: #000000;\n --color-banbox-secondary: #374151;\n --color-banbox-surface-container-lowest: #ffffff;\n --color-banbox-surface-container-low: #f5f5f5;\n --color-banbox-surface-container: #eeeeee;\n --color-banbox-surface-container-high: #e8e8e8;\n --color-banbox-surface-container-highest: #e0e0e0;\n --color-banbox-outline: #d4d4d4;\n --color-banbox-outline-variant: #9e9e9e;\n}\n.banbox-chat-root .custom-scroll,\n.banbox-chat-root .custom-scroll-hidden {\n --sb-size: 6px;\n --sb-track: #f1f1f1;\n --sb-thumb: #c1c1c1;\n --sb-thumb-hover: #898989;\n overflow-y: auto;\n overscroll-behavior: contain;\n scrollbar-width: thin;\n scrollbar-color: #c1c1c1 #f1f1f1;\n}\n.banbox-chat-root .custom-scroll::-webkit-scrollbar,\n.banbox-chat-root .custom-scroll-hidden::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n display: block;\n}\n.banbox-chat-root .custom-scroll::-webkit-scrollbar-track,\n.banbox-chat-root .custom-scroll-hidden::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 9999px;\n}\n.banbox-chat-root .custom-scroll::-webkit-scrollbar-thumb,\n.banbox-chat-root .custom-scroll-hidden::-webkit-scrollbar-thumb {\n background-color: #c1c1c1;\n border-radius: 9999px;\n border: 1px solid #f1f1f1;\n min-height: 40px;\n}\n.banbox-chat-root .custom-scroll::-webkit-scrollbar-thumb:hover,\n.banbox-chat-root .custom-scroll-hidden::-webkit-scrollbar-thumb:hover {\n background-color: #898989;\n}\n.banbox-chat-root .custom-scroll-hidden {\n scrollbar-width: none;\n}\n.banbox-chat-root .custom-scroll-hidden::-webkit-scrollbar {\n display: none;\n}\n.banbox-chat-root .no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n}\n.banbox-chat-root .no-scrollbar::-webkit-scrollbar {\n display: none;\n}\n@keyframes banbox-chat-fade-in {\n from {\n opacity: 0;\n transform: translateY(6px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n.banbox-chat-root .animate-fade-in {\n animation: banbox-chat-fade-in 0.2s ease-out forwards;\n}\n.banbox-chat-root .chat-bubble-mine {\n background-color: var(--color-banbox-primary);\n color: #fff;\n}\n.banbox-chat-root .chat-thread-active {\n background-color: var(--color-banbox-surface-container-low);\n}\n.banbox-chat-root .chat-btn-send {\n background-color: var(--color-banbox-primary);\n color: #fff;\n}\n.banbox-chat-root .chat-btn-send:hover {\n background-color: var(--color-banbox-primary-active);\n}\n.banbox-chat-root .chat-badge-unread {\n background-color: var(--color-banbox-primary);\n color: #fff;\n}\n@layer utilities {\n .banbox-chat-root * {\n box-sizing: border-box;\n }\n}\n@property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-rotate-x { syntax: "*"; inherits: false; }\n@property --tw-rotate-y { syntax: "*"; inherits: false; }\n@property --tw-rotate-z { syntax: "*"; inherits: false; }\n@property --tw-skew-x { syntax: "*"; inherits: false; }\n@property --tw-skew-y { syntax: "*"; inherits: false; }\n@property --tw-space-y-reverse { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }\n@property --tw-leading { syntax: "*"; inherits: false; }\n@property --tw-font-weight { syntax: "*"; inherits: false; }\n@property --tw-tracking { syntax: "*"; inherits: false; }\n@property --tw-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-inset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-inset-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-inset-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-ring-color { syntax: "*"; inherits: false; }\n@property --tw-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-inset-ring-color { syntax: "*"; inherits: false; }\n@property --tw-inset-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-ring-inset { syntax: "*"; inherits: false; }\n@property --tw-ring-offset-width { syntax: "<length>"; inherits: false; initial-value: 0px; }\n@property --tw-ring-offset-color { syntax: "*"; inherits: false; initial-value: #fff; }\n@property --tw-ring-offset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-backdrop-blur { syntax: "*"; inherits: false; }\n@property --tw-backdrop-brightness { syntax: "*"; inherits: false; }\n@property --tw-backdrop-contrast { syntax: "*"; inherits: false; }\n@property --tw-backdrop-grayscale { syntax: "*"; inherits: false; }\n@property --tw-backdrop-hue-rotate { syntax: "*"; inherits: false; }\n@property --tw-backdrop-invert { syntax: "*"; inherits: false; }\n@property --tw-backdrop-opacity { syntax: "*"; inherits: false; }\n@property --tw-backdrop-saturate { syntax: "*"; inherits: false; }\n@property --tw-backdrop-sepia { syntax: "*"; inherits: false; }\n@property --tw-duration { syntax: "*"; inherits: false; }\n@property --tw-ease { syntax: "*"; inherits: false; }\n@property --tw-blur { syntax: "*"; inherits: false; }\n@property --tw-brightness { syntax: "*"; inherits: false; }\n@property --tw-contrast { syntax: "*"; inherits: false; }\n@property --tw-grayscale { syntax: "*"; inherits: false; }\n@property --tw-hue-rotate { syntax: "*"; inherits: false; }\n@property --tw-invert { syntax: "*"; inherits: false; }\n@property --tw-opacity { syntax: "*"; inherits: false; }\n@property --tw-saturate { syntax: "*"; inherits: false; }\n@property --tw-sepia { syntax: "*"; inherits: false; }\n@property --tw-drop-shadow { syntax: "*"; inherits: false; }\n@property --tw-drop-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-drop-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-drop-shadow-size { syntax: "*"; inherits: false; }\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *,\n ::before,\n ::after,\n ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n }\n }\n}\n');
41
+ var ChatUIContext = React16.createContext(null);
42
42
  function useChatUI() {
43
- const ctx = React10.useContext(ChatUIContext);
43
+ const ctx = React16.useContext(ChatUIContext);
44
44
  if (!ctx) {
45
45
  throw new Error("useChatUI must be used within ChatUIProvider");
46
46
  }
47
47
  return ctx;
48
48
  }
49
49
  function useDisableBodyScroll(active) {
50
- React10.useEffect(() => {
50
+ React16.useEffect(() => {
51
51
  if (!active) return;
52
52
  const original = document.body.style.overflow;
53
53
  document.body.style.overflow = "hidden";
@@ -56,11 +56,11 @@ function useDisableBodyScroll(active) {
56
56
  };
57
57
  }, [active]);
58
58
  }
59
- var GalleryContext = React10.createContext(
59
+ var GalleryContext = React16.createContext(
60
60
  void 0
61
61
  );
62
62
  var useGallery = () => {
63
- const context = React10.useContext(GalleryContext);
63
+ const context = React16.useContext(GalleryContext);
64
64
  if (!context) {
65
65
  throw new Error("useGallery must be used within a GalleryProvider");
66
66
  }
@@ -74,17 +74,17 @@ var INITIAL_STATE = {
74
74
  showDots: false
75
75
  };
76
76
  var GalleryProvider = ({ children }) => {
77
- const [state, setState] = React10.useState(INITIAL_STATE);
78
- const setImages = React10.useCallback((images) => {
77
+ const [state, setState] = React16.useState(INITIAL_STATE);
78
+ const setImages = React16.useCallback((images) => {
79
79
  setState((prev2) => ({ ...prev2, images }));
80
80
  }, []);
81
- const setCurrentIndex = React10.useCallback((currentIndex) => {
81
+ const setCurrentIndex = React16.useCallback((currentIndex) => {
82
82
  setState((prev2) => ({ ...prev2, currentIndex }));
83
83
  }, []);
84
- const setUploadDate = React10.useCallback((uploadDate) => {
84
+ const setUploadDate = React16.useCallback((uploadDate) => {
85
85
  setState((prev2) => ({ ...prev2, uploadDate }));
86
86
  }, []);
87
- const openGallery = React10.useCallback(
87
+ const openGallery = React16.useCallback(
88
88
  (imgs, startIndex = 0, date = null, dots = false) => {
89
89
  setState({
90
90
  images: imgs,
@@ -96,17 +96,17 @@ var GalleryProvider = ({ children }) => {
96
96
  },
97
97
  []
98
98
  );
99
- const closeGallery = React10.useCallback(() => {
99
+ const closeGallery = React16.useCallback(() => {
100
100
  setState((prev2) => ({ ...prev2, isOpen: false, currentIndex: null }));
101
101
  }, []);
102
- const next = React10.useCallback(() => {
102
+ const next = React16.useCallback(() => {
103
103
  setState((prev2) => {
104
104
  if (prev2.currentIndex === null || prev2.images.length === 0) return prev2;
105
105
  const newIndex = prev2.currentIndex < prev2.images.length - 1 ? prev2.currentIndex + 1 : 0;
106
106
  return { ...prev2, currentIndex: newIndex, uploadDate: prev2.images[newIndex]?.uploadDate ?? null };
107
107
  });
108
108
  }, []);
109
- const prev = React10.useCallback(() => {
109
+ const prev = React16.useCallback(() => {
110
110
  setState((prev2) => {
111
111
  if (prev2.currentIndex === null || prev2.images.length === 0) return prev2;
112
112
  const newIndex = prev2.currentIndex > 0 ? prev2.currentIndex - 1 : prev2.images.length - 1;
@@ -130,7 +130,7 @@ var GalleryProvider = ({ children }) => {
130
130
  return /* @__PURE__ */ jsxRuntime.jsx(GalleryContext.Provider, { value, children });
131
131
  };
132
132
  function cn(...inputs) {
133
- return tailwindMerge.twMerge(clsx18.clsx(inputs));
133
+ return tailwindMerge.twMerge(clsx3.clsx(inputs));
134
134
  }
135
135
  var sizeClasses = {
136
136
  "26": "h-[26px] px-[10px] text-[12px] rounded-[4px] gap-1",
@@ -153,7 +153,7 @@ var colorMap = {
153
153
  green: { bg: "bg-[#086600]", hover: "hover:bg-[#28A745]", text: "text-[#086600]", border: "border-[#086600]", lightBg: "bg-[#E6F5E6]" },
154
154
  blue: { bg: "bg-[#005694]", hover: "hover:bg-[#00375E]", text: "text-[#005694]", border: "border-[#005694]", lightBg: "bg-[#E0EFF8]" }
155
155
  };
156
- var Button = React10__default.default.forwardRef(
156
+ var Button = React16__default.default.forwardRef(
157
157
  ({ variant = "filled", color = "primary", size = "40", leftIcon, rightIcon, iconOnly = false, children, className, disabled, ...props }, ref) => {
158
158
  const c = colorMap[color];
159
159
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -192,7 +192,7 @@ function ChatConfirmModal({
192
192
  onClose,
193
193
  className
194
194
  }) {
195
- React10__default.default.useEffect(() => {
195
+ React16__default.default.useEffect(() => {
196
196
  if (!open) return;
197
197
  const onKey = (e) => e.key === "Escape" && onClose();
198
198
  window.addEventListener("keydown", onKey);
@@ -389,11 +389,56 @@ var MapPinIcon = ({ className = "" }) => /* @__PURE__ */ jsxRuntime.jsxs("svg",
389
389
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M5.9974 2.66797V11.3346", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round" }),
390
390
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9.9974 10V13.3333", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round" })
391
391
  ] });
392
+ var MapIcon2 = ({ className = "" }) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", className, children: [
393
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7.9987 1.33203C5.41203 1.33203 3.33203 3.41203 3.33203 5.9987C3.33203 9.4987 7.9987 14.6654 7.9987 14.6654C7.9987 14.6654 12.6654 9.4987 12.6654 5.9987C12.6654 3.41203 10.5854 1.33203 7.9987 1.33203Z", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round" }),
394
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "8", cy: "6", r: "1.5", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round" })
395
+ ] });
396
+ var MenuIcon = ({ className }) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "24", height: "24", className, viewBox: "0 0 24 24", fill: "currentColor", children: [
397
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "5", r: "2" }),
398
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "2" }),
399
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "19", r: "2" })
400
+ ] });
401
+ var PinIcon = ({ className }) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { className, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
402
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12.5007 3.75L9.16732 7.08333L5.83398 8.33333L4.58398 9.58333L10.4173 15.4167L11.6673 14.1667L12.9173 10.8333L16.2507 7.5", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }),
403
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7.5 12.5L3.75 16.25", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }),
404
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12.084 3.33594L16.6673 7.91927", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" })
405
+ ] });
406
+ var PinOffIcon = ({ className }) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { className, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
407
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12.5007 3.75L9.16732 7.08333L5.83398 8.33333L4.58398 9.58333L10.4173 15.4167L11.6673 14.1667L12.9173 10.8333L16.2507 7.5", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }),
408
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7.5 12.5L3.75 16.25", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }),
409
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12.084 3.33594L16.6673 7.91927", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }),
410
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 3L17 17", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" })
411
+ ] });
412
+ var EditIcon = ({ className = "" }) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className, children: [
413
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 7H6C4.89543 7 4 7.89543 4 9V18C4 19.1046 4.89543 20 6 20H15C16.1046 20 17 19.1046 17 18V15", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }),
414
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 15H12L20.5 6.49998C21.3284 5.67156 21.3284 4.32841 20.5 3.49998C19.6716 2.67156 18.3284 2.67156 17.5 3.49998L9 12V15", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }),
415
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16 5L19 8", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" })
416
+ ] });
417
+ var TrashIcon = ({ className }) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", className, children: [
418
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3.3335 5.83464H16.6668", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
419
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8.33317 9.16797V14.168", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
420
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M11.6667 9.16797V14.168", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
421
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4.1665 5.83203L4.99984 15.832C4.99984 16.7525 5.74603 17.4987 6.6665 17.4987H13.3332C14.2536 17.4987 14.9998 16.7525 14.9998 15.832L15.8332 5.83203", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
422
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7.5 5.83333V3.33333C7.5 2.8731 7.8731 2.5 8.33333 2.5H11.6667C12.1269 2.5 12.5 2.8731 12.5 3.33333V5.83333", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
423
+ ] });
424
+ var EmailIcon = ({ className = "" }) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "18", height: "18", viewBox: "0 0 18 18", fill: "none", xmlns: "http://www.w3.org/2000/svg", className, children: [
425
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 3H15C15.825 3 16.5 3.675 16.5 4.5V13.5C16.5 14.325 15.825 15 15 15H3C2.175 15 1.5 14.325 1.5 13.5V4.5C1.5 3.675 2.175 3 3 3Z", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
426
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16.5 4.5L9 9.75L1.5 4.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
427
+ ] });
428
+ var BadgeHomeAddrIcon = ({ className = "" }) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "12", height: "12", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", className, children: [
429
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M2.91667 7H1.75L7 1.75L12.25 7H11.0833", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round" }),
430
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M2.91406 7V11.0833C2.91406 11.7277 3.4364 12.25 4.08073 12.25H9.91406C10.5584 12.25 11.0807 11.7277 11.0807 11.0833V7", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round" }),
431
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "5.83594", y: "7", width: "2.33333", height: "2.33333", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round" })
432
+ ] });
433
+ var CheckboxFilledIcon = ({ className = "" }) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", className, children: [
434
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { width: "16", height: "16", rx: "4", fill: "currentColor" }),
435
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M14.8161 1C13.1423 2.42824 11.7356 4.37456 10.6806 6.51692C9.68193 8.56126 8.99268 10.8016 8.69729 13H4.81498V12.972L3.12701 8.56126L2.4659 6.83897L2.18457 6.09685L3.83033 6.05484C4.26639 6.05484 4.66025 6.30688 4.75871 6.68495L5.72929 8.63127L6.517 10.1995L6.728 10.6196C6.91086 10.2415 7.09372 9.87748 7.29065 9.51342C8.34563 7.49708 9.49907 5.67678 10.8635 4.13652C11.6512 3.25438 12.5093 2.45624 13.4658 1.77013C13.8456 1.50408 14.2254 1.25204 14.6333 1.014H14.8161V1Z", fill: "white" })
436
+ ] });
392
437
  var Select = ({ options, value, onChange, placeholder = "Select...", size = 36, className, disabled }) => {
393
- const [open, setOpen] = React10.useState(false);
394
- const ref = React10.useRef(null);
438
+ const [open, setOpen] = React16.useState(false);
439
+ const ref = React16.useRef(null);
395
440
  const selected = options.find((o) => o.value === value);
396
- React10.useEffect(() => {
441
+ React16.useEffect(() => {
397
442
  if (!open) return;
398
443
  const onDoc = (e) => {
399
444
  if (ref.current && !ref.current.contains(e.target)) setOpen(false);
@@ -463,10 +508,10 @@ var ChatTranslateSettingsModal = ({
463
508
  className,
464
509
  variant = "group"
465
510
  }) => {
466
- const [incomingTarget, setIncomingTarget] = React10.useState(
511
+ const [incomingTarget, setIncomingTarget] = React16.useState(
467
512
  initial?.incomingTarget ?? ""
468
513
  );
469
- React10__default.default.useEffect(() => {
514
+ React16__default.default.useEffect(() => {
470
515
  if (!open) return;
471
516
  const onKey = (e) => {
472
517
  if (e.key === "Escape") onClose();
@@ -475,7 +520,6 @@ var ChatTranslateSettingsModal = ({
475
520
  return () => window.removeEventListener("keydown", onKey);
476
521
  }, [open, onClose]);
477
522
  if (!open) return null;
478
- const isSingle = variant === "single";
479
523
  const handleSave = () => {
480
524
  onSave({
481
525
  incomingTarget,
@@ -485,15 +529,19 @@ var ChatTranslateSettingsModal = ({
485
529
  outgoingTo: "Bangla"
486
530
  });
487
531
  };
488
- const content = /* @__PURE__ */ jsxRuntime.jsxs(
532
+ return /* @__PURE__ */ jsxRuntime.jsxs(
489
533
  "div",
490
534
  {
491
- className: clsx18__default.default(
492
- isSingle ? "fixed inset-0 z-9999 flex" : "absolute inset-0 z-50 flex items-center justify-center"
535
+ className: clsx3__default.default(
536
+ "absolute inset-0 z-[9999] flex items-center justify-center",
537
+ variant === "single" && "rounded-[inherit]"
493
538
  ),
494
- onClick: () => onClose(),
539
+ onClick: (e) => {
540
+ e.stopPropagation();
541
+ onClose();
542
+ },
495
543
  children: [
496
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: isSingle ? "fixed inset-0 bg-black/30" : "absolute inset-0 bg-black/30" }),
544
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 bg-black/30 rounded-[inherit]" }),
497
545
  /* @__PURE__ */ jsxRuntime.jsxs(
498
546
  "div",
499
547
  {
@@ -501,23 +549,23 @@ var ChatTranslateSettingsModal = ({
501
549
  "aria-modal": "true",
502
550
  "aria-labelledby": "translate-settings-title",
503
551
  onClick: (e) => e.stopPropagation(),
504
- className: clsx18__default.default(
505
- isSingle ? "fixed bottom-6 right-6 w-[500px] max-w-[95vw]" : "relative w-[500px] max-w-[95vw]",
506
- "z-10000 overflow-visible rounded-md bg-white shadow-[0_12px_30px_rgba(0,0,0,0.18)]",
552
+ className: clsx3__default.default(
553
+ "relative w-[460px] max-w-[95%]",
554
+ "overflow-clip rounded-[6px] bg-white shadow-[0px_2px_12px_0px_rgba(59,51,51,0.1)]",
507
555
  className
508
556
  ),
509
557
  children: [
510
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-[44px] w-full items-center rounded-t-md bg-[#f8f8f8] px-6 py-[7px] shadow-[0px_2px_2px_rgba(47,47,47,0.08)]", children: /* @__PURE__ */ jsxRuntime.jsx(
558
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-[44px] px-6 py-2 flex items-center w-full shadow-[0px_2px_2px_0px_rgba(47,47,47,0.08)] bg-[#f8f8f8] rounded-t-[6px]", children: /* @__PURE__ */ jsxRuntime.jsx(
511
559
  "h2",
512
560
  {
513
561
  id: "translate-settings-title",
514
- className: "w-full text-[20px] font-semibold text-black",
562
+ className: "text-[20px] font-semibold text-black capitalize tracking-[0.5px] truncate leading-normal",
515
563
  children: "Translation Settings"
516
564
  }
517
565
  ) }),
518
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4", children: [
519
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-2", children: [
520
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[12px] font-medium text-black", children: "Translate message into" }),
566
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-6 pt-4 pb-6", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-[24px]", children: [
567
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-[6px]", children: [
568
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[12px] font-medium text-black tracking-[0.25px] leading-normal", children: "Translate message into" }),
521
569
  /* @__PURE__ */ jsxRuntime.jsx(
522
570
  Select_default,
523
571
  {
@@ -525,16 +573,16 @@ var ChatTranslateSettingsModal = ({
525
573
  value: incomingTarget,
526
574
  onChange: setIncomingTarget,
527
575
  placeholder: "Select Language",
528
- size: 36
576
+ size: 34
529
577
  }
530
578
  )
531
579
  ] }),
532
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-6 flex items-start gap-1.5 text-[#FF5300]", children: [
533
- /* @__PURE__ */ jsxRuntime.jsx(ChatInfoIcon, { className: "h-4 w-4 shrink-0" }),
534
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs leading-relaxed", children: "Automatically translate incoming messages. The language you save here will be used to display all incoming messages. You can choose from Spanish, Russian, French, Arabic, Portuguese, Turkish, Bangla, and among others." })
580
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-[6px] items-start text-[#ff5200]", children: [
581
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pt-[2px] shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(ChatInfoIcon, { className: "w-4 h-4" }) }),
582
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] font-normal tracking-[0.25px] leading-normal", children: "Automatically translate incoming messages. The language you save here will be used to display all incoming messages. You can choose from Spanish, Russian, French, Arabic, Portuguese, Turkish, Bangla, and among others." })
535
583
  ] })
536
- ] }),
537
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-[52px] items-center justify-end rounded-b-md bg-[#f8f8f8] px-6", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
584
+ ] }) }),
585
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-6 py-[9px] bg-[#f0f4ff] flex items-center justify-end rounded-b-[6px]", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-6", children: [
538
586
  /* @__PURE__ */ jsxRuntime.jsx(
539
587
  Button_default,
540
588
  {
@@ -562,12 +610,679 @@ var ChatTranslateSettingsModal = ({
562
610
  ]
563
611
  }
564
612
  );
565
- if (isSingle) {
566
- return reactDom.createPortal(content, document.body);
567
- }
568
- return content;
569
613
  };
570
614
  var ChatTranslateSettingsModal_default = ChatTranslateSettingsModal;
615
+ var MOCK_ADDRESSES = [
616
+ {
617
+ id: "ca-1",
618
+ isDefault: false,
619
+ addressLabel: "Office",
620
+ businessName: "Oceanget",
621
+ firstName: "Ariful",
622
+ lastName: "Islam",
623
+ mobileNumber: "+11712345678",
624
+ email: "ariful.ca@example.com",
625
+ country: "Canada",
626
+ postalCode: "M5V 3K2",
627
+ addressLine: "1001 Birchwood Ave, Apt 12",
628
+ landMark: "Near Harbourfront",
629
+ district: null,
630
+ policeStation: null,
631
+ state: "Ontario",
632
+ city: "Toronto"
633
+ },
634
+ {
635
+ id: "bd-1",
636
+ isDefault: true,
637
+ addressLabel: "Home",
638
+ firstName: "Ariful",
639
+ lastName: "Islam",
640
+ mobileNumber: "+8801712345678",
641
+ email: null,
642
+ country: "Bangladesh",
643
+ postalCode: "1212",
644
+ addressLine: "House 12, Road 34, Gulshan 2",
645
+ landMark: "N/A",
646
+ district: "Dhaka",
647
+ policeStation: "Gulshan",
648
+ state: null,
649
+ city: null
650
+ },
651
+ {
652
+ id: "bd-2",
653
+ isDefault: false,
654
+ addressLabel: "Office",
655
+ businessName: "Oceanget",
656
+ firstName: "Ariful",
657
+ lastName: "Islam",
658
+ mobileNumber: "+8801712345678",
659
+ email: null,
660
+ country: "Bangladesh",
661
+ postalCode: "1212",
662
+ addressLine: "House 12, Road 34, Gulshan 2",
663
+ landMark: "N/A",
664
+ district: "Dhaka",
665
+ policeStation: "Gulshan",
666
+ state: null,
667
+ city: null
668
+ }
669
+ ];
670
+ var toAddressCard = (a) => ({
671
+ name: `${a.firstName ?? ""} ${a.lastName ?? ""}`.trim(),
672
+ label: a.addressLabel ?? (a.isDefault ? "Home" : void 0),
673
+ businessName: a.businessName ?? void 0,
674
+ mobileNumber: a.mobileNumber,
675
+ country: a.country,
676
+ district: a.district ?? null,
677
+ policeStation: a.policeStation ?? null,
678
+ state: a.state ?? null,
679
+ city: a.city ?? null,
680
+ postalCode: a.postalCode ?? void 0,
681
+ addressLine: a.addressLine,
682
+ landMark: a.landMark ?? null
683
+ });
684
+ var FieldRow = ({ icon, label, value, highlight = false, isAction = true }) => {
685
+ if (value === null || value === void 0) return null;
686
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 text-xs tracking-[0.25px]", children: [
687
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx3__default.default("flex items-center justify-center text-black", isAction ? "w-4 h-4" : "w-3.5 h-3.5"), children: icon }),
688
+ /* @__PURE__ */ jsxRuntime.jsx("strong", { className: clsx3__default.default("text-[12px] font-medium text-black", isAction ? "min-w-[106px]" : "min-w-[100px]"), children: label }),
689
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx3__default.default("font-normal", highlight ? "text-black" : "text-[#636363]"), children: value ?? "N/A" })
690
+ ] });
691
+ };
692
+ var BadgeLabel = ({ label, icon }) => /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1 rounded-xs bg-[#FFDBCF] px-2 py-[3px] text-[#FF5300] select-none", children: [
693
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex", children: icon }),
694
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium tracking-[0.5px]", children: label })
695
+ ] });
696
+ var RadioPill = ({ name, value, label, checked, onChange }) => /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "group inline-flex h-[30px] select-none overflow-hidden rounded-xs bg-[#F8F8F8] cursor-pointer", children: [
697
+ /* @__PURE__ */ jsxRuntime.jsx(
698
+ "input",
699
+ {
700
+ type: "radio",
701
+ name,
702
+ value,
703
+ checked,
704
+ onChange: () => onChange(value),
705
+ className: "sr-only"
706
+ }
707
+ ),
708
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex h-[30px] w-[30px] items-center justify-center rounded-xs border border-[#F8F8F8] bg-white", children: /* @__PURE__ */ jsxRuntime.jsx(
709
+ "span",
710
+ {
711
+ className: clsx3__default.default(
712
+ "flex h-3.5 w-3.5 items-center justify-center rounded-full border-[1.5px] transition-all duration-200 ease-out group-hover:border-2",
713
+ checked ? "border-[#3D3D3D]" : ""
714
+ ),
715
+ children: /* @__PURE__ */ jsxRuntime.jsx(
716
+ "span",
717
+ {
718
+ className: clsx3__default.default(
719
+ "rounded-full bg-[#3D3D3D] transition-all duration-200 ease-out",
720
+ checked ? "h-2 w-2 opacity-100" : "h-2 w-2 opacity-0",
721
+ "group-hover:h-[6px] group-hover:w-[6px]"
722
+ )
723
+ }
724
+ )
725
+ }
726
+ ) }),
727
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex h-full items-center px-4 text-sm font-medium tracking-[0.25px] text-[#2C2C2C]", children: label })
728
+ ] });
729
+ var CustomerAddressCard = ({ addr, isSelected, onSelect, onEdit, onDelete }) => {
730
+ const fullName = [addr.firstName, addr.lastName].filter(Boolean).join(" ");
731
+ const addressParts = [
732
+ addr.landMark,
733
+ addr.addressLine,
734
+ addr.policeStation,
735
+ addr.district,
736
+ addr.state,
737
+ addr.city,
738
+ addr.postalCode,
739
+ addr.country
740
+ ].filter((part) => part && String(part).trim().length > 0);
741
+ const combinedAddress = addressParts.length ? addressParts.join(", ") : void 0;
742
+ return /* @__PURE__ */ jsxRuntime.jsx(
743
+ "div",
744
+ {
745
+ className: clsx3__default.default(
746
+ "border rounded-sm p-3 relative cursor-pointer hover:border-[#636363] flex gap-3",
747
+ isSelected ? "text-black border-[#636363]" : "border-[#ededed]"
748
+ ),
749
+ onClick: onSelect,
750
+ onKeyDown: (e) => {
751
+ if (e.key === "Enter" || e.key === " ") {
752
+ e.preventDefault();
753
+ onSelect();
754
+ }
755
+ },
756
+ role: "radio",
757
+ "aria-checked": isSelected,
758
+ tabIndex: 0,
759
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
760
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between items-center h-[30px]", children: [
761
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-[18px]", children: [
762
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-semibold tracking-[0.5px] text-black", children: fullName || "Recipient" }),
763
+ addr.addressLabel && /* @__PURE__ */ jsxRuntime.jsx(
764
+ BadgeLabel,
765
+ {
766
+ label: addr.addressLabel,
767
+ icon: addr.addressLabel === "Home" ? /* @__PURE__ */ jsxRuntime.jsx(BadgeHomeAddrIcon, { className: "w-3 h-3" }) : /* @__PURE__ */ jsxRuntime.jsx(BadgeOfficeIcon, { className: "w-3 h-3" })
768
+ }
769
+ )
770
+ ] }),
771
+ addr.isDefault && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center text-[14px] font-medium tracking-[0.5px] text-[#636363]", children: [
772
+ /* @__PURE__ */ jsxRuntime.jsx(CheckboxFilledIcon, { className: "h-[16px] w-[16px]" }),
773
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1.5", children: "Default" })
774
+ ] })
775
+ ] }),
776
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 text-sm mt-3 max-w-[80%] gap-y-1.5", children: [
777
+ addr.businessName && /* @__PURE__ */ jsxRuntime.jsx(
778
+ FieldRow,
779
+ {
780
+ icon: /* @__PURE__ */ jsxRuntime.jsx(BadgeOfficeIcon, { className: "w-4 h-4" }),
781
+ label: "Business Name",
782
+ value: addr.businessName,
783
+ highlight: true
784
+ }
785
+ ),
786
+ /* @__PURE__ */ jsxRuntime.jsx(
787
+ FieldRow,
788
+ {
789
+ icon: /* @__PURE__ */ jsxRuntime.jsx(MapIcon2, { className: "w-4 h-4" }),
790
+ label: "Mobile Number",
791
+ value: addr.mobileNumber,
792
+ highlight: true
793
+ }
794
+ ),
795
+ addr.email !== null && addr.email !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(
796
+ FieldRow,
797
+ {
798
+ icon: /* @__PURE__ */ jsxRuntime.jsx(EmailIcon, { className: "w-4 h-4" }),
799
+ label: "Email",
800
+ value: addr.email
801
+ }
802
+ ),
803
+ /* @__PURE__ */ jsxRuntime.jsx(
804
+ FieldRow,
805
+ {
806
+ icon: /* @__PURE__ */ jsxRuntime.jsx(MapIcon2, { className: "w-4 h-4" }),
807
+ label: "Address",
808
+ value: combinedAddress
809
+ }
810
+ )
811
+ ] }),
812
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute flex justify-end bottom-[12px] right-3 gap-3", children: [
813
+ /* @__PURE__ */ jsxRuntime.jsx(
814
+ "button",
815
+ {
816
+ type: "button",
817
+ className: "text-[#2C2C2C] hover:bg-black/10 rounded-full cursor-pointer w-9 h-9 flex items-center justify-center",
818
+ "aria-label": "Edit address",
819
+ onClick: (e) => {
820
+ e.stopPropagation();
821
+ onEdit();
822
+ },
823
+ children: /* @__PURE__ */ jsxRuntime.jsx(EditIcon, { className: "w-5 h-5 text-black" })
824
+ }
825
+ ),
826
+ /* @__PURE__ */ jsxRuntime.jsx(
827
+ "button",
828
+ {
829
+ type: "button",
830
+ className: "text-[#2C2C2C] hover:bg-black/10 rounded-full cursor-pointer w-9 h-9 flex items-center justify-center",
831
+ "aria-label": "Delete address",
832
+ onClick: (e) => {
833
+ e.stopPropagation();
834
+ onDelete();
835
+ },
836
+ children: /* @__PURE__ */ jsxRuntime.jsx(TrashIcon, { className: "w-5 h-5 text-[#ff5200]" })
837
+ }
838
+ )
839
+ ] })
840
+ ] })
841
+ }
842
+ );
843
+ };
844
+ var Field = ({ label, required, optional, children }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [
845
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "text-[12px] font-medium text-[#374151] tracking-[0.25px]", children: [
846
+ label,
847
+ required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-0.5 text-[#ff5200]", children: "*" }),
848
+ optional && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1 text-[#9ca3af] font-normal", children: "(Optional)" })
849
+ ] }),
850
+ children
851
+ ] });
852
+ var Input = (props) => /* @__PURE__ */ jsxRuntime.jsx(
853
+ "input",
854
+ {
855
+ ...props,
856
+ className: clsx3__default.default(
857
+ "rounded-sm border border-[#ededed] px-3 py-0 text-sm text-black placeholder-[#9ca3af]",
858
+ "outline-none focus:border-[#2753fb] focus:ring-1 focus:ring-[#2753fb]/20",
859
+ "h-[34px] w-full",
860
+ props.className
861
+ )
862
+ }
863
+ );
864
+ var SelectInput = ({ value, onChange, options, placeholder, disabled }) => /* @__PURE__ */ jsxRuntime.jsxs(
865
+ "select",
866
+ {
867
+ value,
868
+ onChange: (e) => onChange(e.target.value),
869
+ disabled,
870
+ className: clsx3__default.default(
871
+ "rounded-sm border border-[#ededed] px-3 py-0 text-sm text-black bg-white",
872
+ "outline-none focus:border-[#2753fb] focus:ring-1 focus:ring-[#2753fb]/20",
873
+ "h-[34px] w-full appearance-none",
874
+ !value && "text-[#9ca3af]",
875
+ disabled && "opacity-50 cursor-not-allowed"
876
+ ),
877
+ children: [
878
+ /* @__PURE__ */ jsxRuntime.jsx("option", { value: "", disabled: true, children: placeholder }),
879
+ options.map((o) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: o, children: o }, o))
880
+ ]
881
+ }
882
+ );
883
+ var BANGLADESH_DISTRICTS = [
884
+ "Dhaka",
885
+ "Chittagong",
886
+ "Sylhet",
887
+ "Rajshahi",
888
+ "Khulna",
889
+ "Barisal",
890
+ "Rangpur",
891
+ "Mymensingh",
892
+ "Gazipur",
893
+ "Narayanganj",
894
+ "Tangail",
895
+ "Faridpur",
896
+ "Comilla",
897
+ "Noakhali",
898
+ "Cox's Bazar"
899
+ ];
900
+ var COUNTRIES = ["Bangladesh", "India", "United States", "United Kingdom", "Canada", "Australia", "Germany", "France", "Saudi Arabia", "UAE"];
901
+ var AddressForm = ({ initial, onSave, onBack, mode }) => {
902
+ const [form, setForm] = React16.useState(
903
+ initial ?? { country: "Bangladesh", isDefault: false }
904
+ );
905
+ const [addressLabel, setAddressLabel] = React16.useState(
906
+ initial?.addressLabel?.toLowerCase() === "home" ? "home" : initial?.addressLabel?.toLowerCase() === "office" ? "office" : null
907
+ );
908
+ const [isDefault, setIsDefault] = React16.useState(Boolean(initial?.isDefault));
909
+ const set = (k, v) => setForm((prev) => ({ ...prev, [k]: v }));
910
+ const isBD = (form.country ?? "").toLowerCase() === "bangladesh";
911
+ const handleSave = () => {
912
+ onSave({
913
+ id: initial?.id ?? `addr-${Date.now()}`,
914
+ ...form,
915
+ isDefault,
916
+ addressLabel: addressLabel === "home" ? "Home" : addressLabel === "office" ? "Office" : void 0
917
+ });
918
+ };
919
+ return /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: (e) => {
920
+ e.preventDefault();
921
+ handleSave();
922
+ }, className: "space-y-4", children: [
923
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
924
+ /* @__PURE__ */ jsxRuntime.jsx(Field, { label: "First Name", required: true, children: /* @__PURE__ */ jsxRuntime.jsx(Input, { value: form.firstName ?? "", onChange: (e) => set("firstName", e.target.value), placeholder: "First Name" }) }),
925
+ /* @__PURE__ */ jsxRuntime.jsx(Field, { label: "Last Name", children: /* @__PURE__ */ jsxRuntime.jsx(Input, { value: form.lastName ?? "", onChange: (e) => set("lastName", e.target.value), placeholder: "Last Name" }) })
926
+ ] }),
927
+ /* @__PURE__ */ jsxRuntime.jsx(Field, { label: "Mobile Number", required: true, children: /* @__PURE__ */ jsxRuntime.jsx(Input, { value: form.mobileNumber ?? "", onChange: (e) => set("mobileNumber", e.target.value), placeholder: "+880..." }) }),
928
+ /* @__PURE__ */ jsxRuntime.jsx(Field, { label: "Email", children: /* @__PURE__ */ jsxRuntime.jsx(Input, { type: "email", value: form.email ?? "", onChange: (e) => set("email", e.target.value), placeholder: "name@example.com" }) }),
929
+ /* @__PURE__ */ jsxRuntime.jsx(Field, { label: isBD ? "Country" : "Country / Region", required: true, children: /* @__PURE__ */ jsxRuntime.jsx(
930
+ SelectInput,
931
+ {
932
+ value: form.country ?? "",
933
+ onChange: (v) => {
934
+ set("country", v);
935
+ set("district", "");
936
+ set("policeStation", "");
937
+ set("state", "");
938
+ set("city", "");
939
+ },
940
+ options: COUNTRIES,
941
+ placeholder: "Select country"
942
+ }
943
+ ) }),
944
+ isBD ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
945
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
946
+ /* @__PURE__ */ jsxRuntime.jsx(Field, { label: "District", required: true, children: /* @__PURE__ */ jsxRuntime.jsx(
947
+ SelectInput,
948
+ {
949
+ value: form.district ?? "",
950
+ onChange: (v) => {
951
+ set("district", v);
952
+ set("policeStation", "");
953
+ },
954
+ options: BANGLADESH_DISTRICTS,
955
+ placeholder: "District",
956
+ disabled: !form.country
957
+ }
958
+ ) }),
959
+ /* @__PURE__ */ jsxRuntime.jsx(Field, { label: "Police Station", required: true, children: /* @__PURE__ */ jsxRuntime.jsx(Input, { value: form.policeStation ?? "", onChange: (e) => set("policeStation", e.target.value), placeholder: "Police Station" }) })
960
+ ] }),
961
+ /* @__PURE__ */ jsxRuntime.jsx(Field, { label: "Postal Code", optional: true, children: /* @__PURE__ */ jsxRuntime.jsx(Input, { value: form.postalCode ?? "", onChange: (e) => set("postalCode", e.target.value), placeholder: "Postal Code" }) })
962
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
963
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
964
+ /* @__PURE__ */ jsxRuntime.jsx(Field, { label: "State", required: true, children: /* @__PURE__ */ jsxRuntime.jsx(Input, { value: form.state ?? "", onChange: (e) => set("state", e.target.value), placeholder: "State" }) }),
965
+ /* @__PURE__ */ jsxRuntime.jsx(Field, { label: "City", required: true, children: /* @__PURE__ */ jsxRuntime.jsx(Input, { value: form.city ?? "", onChange: (e) => set("city", e.target.value), placeholder: "City" }) })
966
+ ] }),
967
+ /* @__PURE__ */ jsxRuntime.jsx(Field, { label: "Postal Code", required: true, children: /* @__PURE__ */ jsxRuntime.jsx(Input, { value: form.postalCode ?? "", onChange: (e) => set("postalCode", e.target.value), placeholder: "Postal Code" }) })
968
+ ] }),
969
+ /* @__PURE__ */ jsxRuntime.jsx(Field, { label: "Address Line", required: true, children: /* @__PURE__ */ jsxRuntime.jsx(
970
+ Input,
971
+ {
972
+ value: form.addressLine ?? "",
973
+ onChange: (e) => set("addressLine", e.target.value),
974
+ placeholder: isBD ? "House/Road/Block/Sector" : "Street, Apt, Suite, etc."
975
+ }
976
+ ) }),
977
+ /* @__PURE__ */ jsxRuntime.jsx(Field, { label: "Land Mark", optional: true, children: /* @__PURE__ */ jsxRuntime.jsx(Input, { value: form.landMark ?? "", onChange: (e) => set("landMark", e.target.value), placeholder: "Nearby landmark" }) }),
978
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
979
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1.5 cursor-pointer w-fit select-none text-sm text-[#2C2C2C] font-normal", children: [
980
+ /* @__PURE__ */ jsxRuntime.jsx(
981
+ "input",
982
+ {
983
+ type: "checkbox",
984
+ checked: isDefault,
985
+ onChange: (e) => setIsDefault(e.target.checked),
986
+ className: "sr-only"
987
+ }
988
+ ),
989
+ /* @__PURE__ */ jsxRuntime.jsx(
990
+ "span",
991
+ {
992
+ className: clsx3__default.default(
993
+ "flex h-4 w-4 items-center justify-center rounded border transition-colors",
994
+ isDefault ? "bg-black border-black" : "border-[#d1d5db] bg-white"
995
+ ),
996
+ children: isDefault && /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 10 8", className: "h-3 w-3 text-white", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M1 4L3.5 6.5L9 1", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) })
997
+ }
998
+ ),
999
+ "Set as default delivery address"
1000
+ ] }),
1001
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-[17px]", children: [
1002
+ /* @__PURE__ */ jsxRuntime.jsx(RadioPill, { name: "addr-label", value: "home", checked: addressLabel === "home", label: "Home", onChange: (v) => setAddressLabel(v) }),
1003
+ /* @__PURE__ */ jsxRuntime.jsx(RadioPill, { name: "addr-label", value: "office", checked: addressLabel === "office", label: "Office", onChange: (v) => setAddressLabel(v) })
1004
+ ] })
1005
+ ] }),
1006
+ /* @__PURE__ */ jsxRuntime.jsx("button", { type: "submit", className: "sr-only", id: "addr-form-submit", children: "Submit" })
1007
+ ] });
1008
+ };
1009
+ var DeleteConfirm = ({ onConfirm, onCancel }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed inset-0 z-[10010] flex items-center justify-center", onClick: onCancel, children: [
1010
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-0 bg-black/40" }),
1011
+ /* @__PURE__ */ jsxRuntime.jsxs(
1012
+ "div",
1013
+ {
1014
+ role: "dialog",
1015
+ "aria-modal": "true",
1016
+ className: "relative z-[10011] w-[420px] max-w-[95vw] rounded-md bg-white shadow-[0_12px_30px_rgba(0,0,0,0.18)] overflow-hidden",
1017
+ onClick: (e) => e.stopPropagation(),
1018
+ children: [
1019
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-[44px] items-center bg-[#f8f8f8] px-6", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-semibold text-black", children: "Delete Address" }) }),
1020
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-6 py-4 space-y-1", children: [
1021
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium text-black", children: "Are you sure you want to delete this address?" }),
1022
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-[#636363]", children: "The address is permanently removed. This action cannot be undone." })
1023
+ ] }),
1024
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-[52px] items-center justify-end gap-3 bg-[#f0f4ff] px-6", children: [
1025
+ /* @__PURE__ */ jsxRuntime.jsx(
1026
+ "button",
1027
+ {
1028
+ type: "button",
1029
+ onClick: onCancel,
1030
+ className: "h-[34px] cursor-pointer rounded-[4px] border border-[#d1d5db] bg-white px-4 text-[13px] font-medium text-black hover:bg-[#f9fafb]",
1031
+ children: "Cancel"
1032
+ }
1033
+ ),
1034
+ /* @__PURE__ */ jsxRuntime.jsx(
1035
+ "button",
1036
+ {
1037
+ type: "button",
1038
+ onClick: onConfirm,
1039
+ className: "h-[34px] cursor-pointer rounded-[4px] border-none bg-[#ff5200] px-4 text-[13px] font-medium text-white hover:bg-[#e64a00]",
1040
+ children: "Delete"
1041
+ }
1042
+ )
1043
+ ] })
1044
+ ]
1045
+ }
1046
+ )
1047
+ ] });
1048
+ var ChatAddressModal = ({
1049
+ open,
1050
+ onClose,
1051
+ onSend,
1052
+ initialId,
1053
+ className,
1054
+ variant = "group"
1055
+ }) => {
1056
+ const panelRef = React16.useRef(null);
1057
+ const bodyRef = React16.useRef(null);
1058
+ React16.useRef(null);
1059
+ const [mode, setMode] = React16.useState("list");
1060
+ const [addresses, setAddresses] = React16.useState(MOCK_ADDRESSES);
1061
+ const [editData, setEditData] = React16.useState(null);
1062
+ const [deleteTarget, setDeleteTarget] = React16.useState(null);
1063
+ const [formKey, setFormKey] = React16.useState(0);
1064
+ const defaultId = initialId ?? addresses.find((a) => a.isDefault)?.id ?? addresses[0]?.id;
1065
+ const [selectedId, setSelectedId] = React16.useState(defaultId || "");
1066
+ const selectedAddress = React16.useMemo(
1067
+ () => addresses.find((a) => a.id === selectedId) || null,
1068
+ [addresses, selectedId]
1069
+ );
1070
+ React16.useEffect(() => {
1071
+ bodyRef.current?.scrollTo({ top: 0, behavior: "auto" });
1072
+ }, [mode]);
1073
+ React16.useEffect(() => {
1074
+ if (!open) return;
1075
+ const onEsc = (e) => e.key === "Escape" && onClose();
1076
+ window.addEventListener("keydown", onEsc);
1077
+ return () => window.removeEventListener("keydown", onEsc);
1078
+ }, [open, onClose]);
1079
+ React16.useEffect(() => {
1080
+ if (open) setMode("list");
1081
+ }, [open]);
1082
+ if (!open) return null;
1083
+ const isSingle = variant === "single";
1084
+ const handleSave = (data) => {
1085
+ setAddresses((prev) => {
1086
+ const idx = prev.findIndex((a) => a.id === data.id);
1087
+ if (idx >= 0) {
1088
+ const next = [...prev];
1089
+ next[idx] = data;
1090
+ return next;
1091
+ }
1092
+ return [...prev, data];
1093
+ });
1094
+ setSelectedId(data.id);
1095
+ setMode("list");
1096
+ };
1097
+ const handleDelete = (id) => {
1098
+ setAddresses((prev) => prev.filter((a) => a.id !== id));
1099
+ if (selectedId === id) {
1100
+ const remaining = addresses.filter((a) => a.id !== id);
1101
+ setSelectedId(remaining[0]?.id ?? "");
1102
+ }
1103
+ setDeleteTarget(null);
1104
+ };
1105
+ const renderHeader = () => {
1106
+ if (mode === "list") {
1107
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between items-center w-full", children: [
1108
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl tracking-[0.5px] capitalize font-semibold text-black", children: "Delivery Address" }),
1109
+ /* @__PURE__ */ jsxRuntime.jsx(
1110
+ "button",
1111
+ {
1112
+ type: "button",
1113
+ onClick: () => {
1114
+ setEditData(null);
1115
+ setFormKey((k) => k + 1);
1116
+ setMode("add");
1117
+ },
1118
+ className: "text-black hover:text-[#ff5200] cursor-pointer text-sm font-medium tracking-[0.5px] underline underline-offset-4",
1119
+ children: "Add New Address"
1120
+ }
1121
+ )
1122
+ ] });
1123
+ }
1124
+ if (mode === "add") {
1125
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between items-center capitalize w-full", children: [
1126
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl tracking-[0.5px] font-semibold text-black", children: "Add New Address" }),
1127
+ /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", className: "text-[#005694] text-sm font-normal tracking-[0.25px] underline underline-offset-4 flex items-center gap-2 cursor-pointer", children: [
1128
+ /* @__PURE__ */ jsxRuntime.jsx(MapPinIcon, { className: "w-[18px] h-[18px]" }),
1129
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Use current location" })
1130
+ ] })
1131
+ ] });
1132
+ }
1133
+ if (mode === "edit") {
1134
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between items-center w-full", children: [
1135
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl tracking-[0.5px] uppercase font-semibold text-black", children: "Edit Address" }),
1136
+ /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", className: "text-[#005694] text-sm font-normal tracking-[0.25px] underline underline-offset-4 flex items-center gap-2 cursor-pointer", children: [
1137
+ /* @__PURE__ */ jsxRuntime.jsx(MapPinIcon, { className: "w-[18px] h-[18px]" }),
1138
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Use current location" })
1139
+ ] })
1140
+ ] });
1141
+ }
1142
+ return null;
1143
+ };
1144
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1145
+ /* @__PURE__ */ jsxRuntime.jsxs(
1146
+ "div",
1147
+ {
1148
+ className: clsx3__default.default(
1149
+ isSingle ? "fixed inset-0 z-[10003] flex" : "absolute inset-0 z-[70] flex items-center justify-center"
1150
+ ),
1151
+ onClick: (e) => {
1152
+ e.stopPropagation();
1153
+ onClose();
1154
+ },
1155
+ children: [
1156
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-0 bg-black/30" }),
1157
+ /* @__PURE__ */ jsxRuntime.jsxs(
1158
+ "div",
1159
+ {
1160
+ ref: panelRef,
1161
+ role: "dialog",
1162
+ "aria-modal": "true",
1163
+ "aria-labelledby": "chat-address-modal-title",
1164
+ onClick: (e) => e.stopPropagation(),
1165
+ className: clsx3__default.default(
1166
+ isSingle ? "fixed bottom-6 right-6 w-[700px] max-w-[95vw]" : "relative w-[700px] max-w-[95vw]",
1167
+ "overflow-hidden rounded-md bg-white shadow-[0_12px_30px_rgba(0,0,0,0.18)] z-[10004]",
1168
+ className
1169
+ ),
1170
+ children: [
1171
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-[44px] px-8 py-[7px] flex items-center w-full bg-[var(--color-banbox-f8,#f8f8f8)] rounded-t-md", children: renderHeader() }),
1172
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: bodyRef, className: "px-8 py-3 overflow-y-auto h-[446px] custom-scroll", children: [
1173
+ mode === "list" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: addresses.map((addr) => /* @__PURE__ */ jsxRuntime.jsx(
1174
+ CustomerAddressCard,
1175
+ {
1176
+ addr,
1177
+ isSelected: selectedId === addr.id,
1178
+ onSelect: () => setSelectedId(addr.id),
1179
+ onEdit: () => {
1180
+ setEditData(addr);
1181
+ setFormKey((k) => k + 1);
1182
+ setMode("edit");
1183
+ },
1184
+ onDelete: () => setDeleteTarget(addr)
1185
+ },
1186
+ addr.id
1187
+ )) }),
1188
+ (mode === "add" || mode === "edit") && /* @__PURE__ */ jsxRuntime.jsx(
1189
+ AddressForm,
1190
+ {
1191
+ initial: editData ?? void 0,
1192
+ onSave: handleSave,
1193
+ onBack: () => setMode("list"),
1194
+ mode
1195
+ },
1196
+ formKey
1197
+ )
1198
+ ] }),
1199
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-[52px] bg-[var(--color-banbox-primary-container,#f0f4ff)] w-full px-6 py-2 flex justify-end items-center gap-6 rounded-b-[6px]", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-3", children: [
1200
+ mode === "list" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1201
+ /* @__PURE__ */ jsxRuntime.jsx(
1202
+ "button",
1203
+ {
1204
+ type: "button",
1205
+ onClick: onClose,
1206
+ className: "h-[34px] cursor-pointer rounded-[4px] border border-[#d1d5db] bg-white px-4 text-[13px] font-medium text-black hover:bg-[#f9fafb]",
1207
+ children: "Cancel"
1208
+ }
1209
+ ),
1210
+ /* @__PURE__ */ jsxRuntime.jsx(
1211
+ "button",
1212
+ {
1213
+ type: "button",
1214
+ disabled: !selectedAddress,
1215
+ onClick: () => {
1216
+ if (!selectedAddress) return;
1217
+ onSend(toAddressCard(selectedAddress));
1218
+ onClose();
1219
+ },
1220
+ className: "h-[34px] cursor-pointer rounded-[4px] border-none bg-[#ff5200] px-4 text-[13px] font-medium text-white hover:bg-[#e64a00] disabled:opacity-50",
1221
+ children: "Send"
1222
+ }
1223
+ )
1224
+ ] }),
1225
+ mode === "add" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1226
+ /* @__PURE__ */ jsxRuntime.jsx(
1227
+ "button",
1228
+ {
1229
+ type: "button",
1230
+ onClick: () => setMode("list"),
1231
+ className: "h-[34px] cursor-pointer rounded-[4px] border border-[#d1d5db] bg-white px-4 text-[13px] font-medium text-black hover:bg-[#f9fafb]",
1232
+ children: "Back"
1233
+ }
1234
+ ),
1235
+ /* @__PURE__ */ jsxRuntime.jsx(
1236
+ "button",
1237
+ {
1238
+ type: "button",
1239
+ onClick: () => {
1240
+ document.getElementById("addr-form-submit")?.click();
1241
+ },
1242
+ className: "h-[34px] cursor-pointer rounded-[4px] border-none bg-[#ff5200] px-4 text-[13px] font-medium text-white hover:bg-[#e64a00]",
1243
+ children: "Save Address"
1244
+ }
1245
+ )
1246
+ ] }),
1247
+ mode === "edit" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1248
+ /* @__PURE__ */ jsxRuntime.jsx(
1249
+ "button",
1250
+ {
1251
+ type: "button",
1252
+ onClick: () => setMode("list"),
1253
+ className: "h-[34px] cursor-pointer rounded-[4px] border border-[#d1d5db] bg-white px-4 text-[13px] font-medium text-black hover:bg-[#f9fafb]",
1254
+ children: "Back"
1255
+ }
1256
+ ),
1257
+ /* @__PURE__ */ jsxRuntime.jsx(
1258
+ "button",
1259
+ {
1260
+ type: "button",
1261
+ onClick: () => {
1262
+ document.getElementById("addr-form-submit")?.click();
1263
+ },
1264
+ className: "h-[34px] cursor-pointer rounded-[4px] border-none bg-[#ff5200] px-4 text-[13px] font-medium text-white hover:bg-[#e64a00]",
1265
+ children: "Update"
1266
+ }
1267
+ )
1268
+ ] })
1269
+ ] }) })
1270
+ ]
1271
+ }
1272
+ )
1273
+ ]
1274
+ }
1275
+ ),
1276
+ deleteTarget && /* @__PURE__ */ jsxRuntime.jsx(
1277
+ DeleteConfirm,
1278
+ {
1279
+ onConfirm: () => handleDelete(deleteTarget.id),
1280
+ onCancel: () => setDeleteTarget(null)
1281
+ }
1282
+ )
1283
+ ] });
1284
+ };
1285
+ var ChatAddressModal_default = ChatAddressModal;
571
1286
  var extColor = (ext) => {
572
1287
  const e = ext.toLowerCase();
573
1288
  if (e === "pdf") {
@@ -584,7 +1299,7 @@ var extColor = (ext) => {
584
1299
  var FilePreviewChip = ({ name, sizeMB, ext, onRemove }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mr-2 inline-flex items-center gap-3 whitespace-nowrap rounded-sm border border-[#e1e1e1] bg-white px-3 py-2 h-[65px] max-w-[185px]", children: [
585
1300
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 items-center gap-2", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
586
1301
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
587
- /* @__PURE__ */ jsxRuntime.jsx(FileIcon, { className: clsx18__default.default("h-[18px] w-[18px]", extColor(ext)) }),
1302
+ /* @__PURE__ */ jsxRuntime.jsx(FileIcon, { className: clsx3__default.default("h-[18px] w-[18px]", extColor(ext)) }),
588
1303
  " ",
589
1304
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-sm font-normal text-black", children: name })
590
1305
  ] }),
@@ -666,8 +1381,8 @@ var ChatComposerBar = ({
666
1381
  sendAttachments,
667
1382
  fmtTime: fmtTime2
668
1383
  }) => {
669
- const composingRef = React10.useRef(false);
670
- const [isFocused, setIsFocused] = React10.useState(false);
1384
+ const composingRef = React16.useRef(false);
1385
+ const [isFocused, setIsFocused] = React16.useState(false);
671
1386
  const isActiveBorder = isFocused || recording;
672
1387
  if (!recording) {
673
1388
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex w-full items-stretch gap-2", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -735,7 +1450,7 @@ var ChatComposerBar = ({
735
1450
  {
736
1451
  type: "button",
737
1452
  onClick: sendText,
738
- className: clsx18__default.default(
1453
+ className: clsx3__default.default(
739
1454
  "ms-1 grid h-[40px] w-[40px] place-items-center rounded-full text-[#ff5301] hover:bg-[#f8f8f8]"
740
1455
  ),
741
1456
  title: hasAttachments ? "Send attachments" : "Send",
@@ -751,7 +1466,7 @@ var ChatComposerBar = ({
751
1466
  type: "button",
752
1467
  onClick: sendAttachments,
753
1468
  disabled: !hasAttachments,
754
- className: clsx18__default.default(
1469
+ className: clsx3__default.default(
755
1470
  "ms-1 grid h-[40px] w-[40px] place-items-center rounded-full hover:bg-[#f8f8f8]",
756
1471
  hasAttachments ? "text-[#ff5301]" : "text-[#B9C3D4]"
757
1472
  ),
@@ -776,7 +1491,7 @@ var ChatComposerBar = ({
776
1491
  children: /* @__PURE__ */ jsxRuntime.jsx(
777
1492
  RecordMicIcon,
778
1493
  {
779
- className: clsx18__default.default(
1494
+ className: clsx3__default.default(
780
1495
  "h-6 w-6",
781
1496
  seconds % 2 === 0 ? "text-[#929292]" : "text-[#ff5301]"
782
1497
  )
@@ -830,12 +1545,13 @@ var BusinessCardDropup = ({
830
1545
  onClose,
831
1546
  onSend,
832
1547
  anchorRef,
833
- className
1548
+ className,
1549
+ onEdit
834
1550
  }) => {
835
- const panelRef = React10.useRef(null);
836
- const [pos, setPos] = React10.useState(null);
837
- const [form] = React10.useState(defaultCard);
838
- const getPosition = React10.useCallback(() => {
1551
+ const panelRef = React16.useRef(null);
1552
+ const [pos, setPos] = React16.useState(null);
1553
+ const [form] = React16.useState(defaultCard);
1554
+ const getPosition = React16.useCallback(() => {
839
1555
  const anchor = anchorRef?.current;
840
1556
  const panel = panelRef.current;
841
1557
  if (!anchor || !panel) {
@@ -851,7 +1567,7 @@ var BusinessCardDropup = ({
851
1567
  }
852
1568
  return { left: Math.round(left - 18), top: Math.round(top) };
853
1569
  }, [anchorRef]);
854
- React10.useEffect(() => {
1570
+ React16.useEffect(() => {
855
1571
  if (!open) {
856
1572
  return;
857
1573
  }
@@ -879,7 +1595,7 @@ var BusinessCardDropup = ({
879
1595
  window.removeEventListener("resize", onResize);
880
1596
  };
881
1597
  }, [open, getPosition]);
882
- React10.useEffect(() => {
1598
+ React16.useEffect(() => {
883
1599
  if (!open) {
884
1600
  return;
885
1601
  }
@@ -900,7 +1616,7 @@ var BusinessCardDropup = ({
900
1616
  document.removeEventListener("keydown", onEsc);
901
1617
  };
902
1618
  }, [open, onClose]);
903
- const disabled = React10.useMemo(() => !form.name || !form.company || !form.email || !form.phone, [form]);
1619
+ const disabled = React16.useMemo(() => !form.name || !form.company || !form.email || !form.phone, [form]);
904
1620
  if (!open) {
905
1621
  return null;
906
1622
  }
@@ -980,19 +1696,33 @@ var BusinessCardDropup = ({
980
1696
  ] }) })
981
1697
  }
982
1698
  ) }),
983
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 flex justify-end gap-2", children: /* @__PURE__ */ jsxRuntime.jsx(
984
- "button",
985
- {
986
- type: "button",
987
- disabled,
988
- className: "h-[34px] cursor-pointer rounded-[4px] border-none bg-[#ff5200] px-4 text-[13px] font-medium text-white hover:bg-[#e64a00] disabled:opacity-50",
989
- onClick: () => {
990
- onSend(form);
991
- onClose();
992
- },
993
- children: "Send"
994
- }
995
- ) }),
1699
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 flex justify-end gap-2", children: [
1700
+ /* @__PURE__ */ jsxRuntime.jsx(
1701
+ "button",
1702
+ {
1703
+ type: "button",
1704
+ onClick: () => {
1705
+ onClose();
1706
+ onEdit?.();
1707
+ },
1708
+ className: "h-[34px] cursor-pointer rounded-[4px] border border-[#d1d5db] bg-white px-4 text-[13px] font-medium text-black hover:bg-[#f9fafb]",
1709
+ children: "Edit"
1710
+ }
1711
+ ),
1712
+ /* @__PURE__ */ jsxRuntime.jsx(
1713
+ "button",
1714
+ {
1715
+ type: "button",
1716
+ disabled,
1717
+ className: "h-[34px] cursor-pointer rounded-[4px] border-none bg-[#ff5200] px-4 text-[13px] font-medium text-white hover:bg-[#e64a00] disabled:opacity-50",
1718
+ onClick: () => {
1719
+ onSend(form);
1720
+ onClose();
1721
+ },
1722
+ children: "Send"
1723
+ }
1724
+ )
1725
+ ] }),
996
1726
  /* @__PURE__ */ jsxRuntime.jsx(
997
1727
  "div",
998
1728
  {
@@ -1014,9 +1744,9 @@ var GAP_Y2 = 1;
1014
1744
  var GAP_X = 1;
1015
1745
  var PADDING2 = 1;
1016
1746
  var EmojiDropup = ({ open, onClose, onSelect, anchorRef, className }) => {
1017
- const panelRef = React10__default.default.useRef(null);
1018
- const [pos, setPos] = React10__default.default.useState(null);
1019
- const place = React10__default.default.useCallback(() => {
1747
+ const panelRef = React16__default.default.useRef(null);
1748
+ const [pos, setPos] = React16__default.default.useState(null);
1749
+ const place = React16__default.default.useCallback(() => {
1020
1750
  const anchor = anchorRef?.current;
1021
1751
  const panel = panelRef.current;
1022
1752
  if (!anchor || !panel) {
@@ -1033,7 +1763,7 @@ var EmojiDropup = ({ open, onClose, onSelect, anchorRef, className }) => {
1033
1763
  panel.style.setProperty("--arrow-left", `${arrowLeft}px`);
1034
1764
  setPos({ left: Math.round(left), top: Math.round(top) });
1035
1765
  }, [anchorRef]);
1036
- React10.useEffect(() => {
1766
+ React16.useEffect(() => {
1037
1767
  if (!open) {
1038
1768
  return;
1039
1769
  }
@@ -1047,7 +1777,7 @@ var EmojiDropup = ({ open, onClose, onSelect, anchorRef, className }) => {
1047
1777
  window.removeEventListener("resize", onResize);
1048
1778
  };
1049
1779
  }, [open, place]);
1050
- React10.useEffect(() => {
1780
+ React16.useEffect(() => {
1051
1781
  if (!open) {
1052
1782
  return;
1053
1783
  }
@@ -1073,9 +1803,10 @@ var EmojiDropup = ({ open, onClose, onSelect, anchorRef, className }) => {
1073
1803
  ref: panelRef,
1074
1804
  role: "dialog",
1075
1805
  "aria-label": "Emoji picker",
1076
- className: clsx18__default.default("emoji-dropup", className),
1806
+ className: clsx3__default.default("emoji-dropup", className),
1077
1807
  style: {
1078
- zIndex: "9999",
1808
+ zIndex: 99999,
1809
+ // Must be above chat panel z-index (10002)
1079
1810
  width: WIDTH2,
1080
1811
  left: pos?.left ?? -9999,
1081
1812
  top: pos?.top ?? -9999,
@@ -1102,7 +1833,7 @@ var EmojiDropup = ({ open, onClose, onSelect, anchorRef, className }) => {
1102
1833
  };
1103
1834
  var EmojiDropup_default = EmojiDropup;
1104
1835
 
1105
- // src/ui/chat/scrollToMessage.ts
1836
+ // src/ui/scrollToMessage.ts
1106
1837
  function scrollToMessageById(messageId) {
1107
1838
  if (!messageId) {
1108
1839
  return;
@@ -1166,8 +1897,8 @@ var ReplyCard = ({ refMsg, onClose, compact, className, jumpOnClick }) => {
1166
1897
  const mode = hasText ? "text" : hasFiles ? "files" : hasImages ? "images" : "audio";
1167
1898
  const widthClamp = onClose ? "w-full" : "max-w-[200px] w-full";
1168
1899
  const heightClamp = compact ? "py-1.5" : "py-1.5";
1169
- const [durTxt, setDurTxt] = React10__default.default.useState(refMsg.audio?.duration ?? "0:06");
1170
- React10__default.default.useEffect(() => {
1900
+ const [durTxt, setDurTxt] = React16__default.default.useState(refMsg.audio?.duration ?? "0:06");
1901
+ React16__default.default.useEffect(() => {
1171
1902
  if (mode !== "audio" || !refMsg.audio?.src) {
1172
1903
  setDurTxt(refMsg.audio?.duration ?? "0:06");
1173
1904
  return;
@@ -1205,7 +1936,7 @@ var ReplyCard = ({ refMsg, onClose, compact, className, jumpOnClick }) => {
1205
1936
  a.removeEventListener("error", onError);
1206
1937
  };
1207
1938
  }, [mode, refMsg.audio?.src, refMsg.audio?.duration]);
1208
- const clickToJump = React10__default.default.useCallback(() => {
1939
+ const clickToJump = React16__default.default.useCallback(() => {
1209
1940
  if (!jumpOnClick) {
1210
1941
  return;
1211
1942
  }
@@ -1217,7 +1948,7 @@ var ReplyCard = ({ refMsg, onClose, compact, className, jumpOnClick }) => {
1217
1948
  "div",
1218
1949
  {
1219
1950
  onClick: clickToJump,
1220
- className: clsx18__default.default(
1951
+ className: clsx3__default.default(
1221
1952
  widthClamp,
1222
1953
  "relative rounded-md bg-[#f8f8f8] px-3",
1223
1954
  "border-l-2 border-[#FF5300]",
@@ -1315,10 +2046,11 @@ var ChatFooter = ({
1315
2046
  maxRows = 4,
1316
2047
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
1317
2048
  actions: _actions,
2049
+ hiddenActionKeys = [],
1318
2050
  replyTo,
1319
2051
  clearReply
1320
2052
  }) => {
1321
- const actionData = [
2053
+ const allActions = [
1322
2054
  { key: "attachment", title: "Attach file", icon: /* @__PURE__ */ jsxRuntime.jsx(AttachIcon, { className: "h-4 w-4" }) },
1323
2055
  { key: "emoji", title: "Add emoji", icon: /* @__PURE__ */ jsxRuntime.jsx(SmileIcon, { className: "h-4 w-4" }) },
1324
2056
  {
@@ -1326,37 +2058,48 @@ var ChatFooter = ({
1326
2058
  title: "Share business card",
1327
2059
  icon: /* @__PURE__ */ jsxRuntime.jsx(ProfileCardIcon, { className: "h-4 w-4" })
1328
2060
  },
2061
+ {
2062
+ key: "addressCard",
2063
+ title: "Share address",
2064
+ icon: /* @__PURE__ */ jsxRuntime.jsx(MapIcon2, { className: "h-4 w-4" })
2065
+ },
1329
2066
  {
1330
2067
  key: "translate",
1331
2068
  title: "Translation settings",
1332
2069
  icon: /* @__PURE__ */ jsxRuntime.jsx(NewLanguageIcon, { className: "h-4 w-4" })
1333
2070
  }
1334
2071
  ];
1335
- const textRef = React10.useRef(null);
1336
- const emojiBtnRef = React10.useRef(null);
1337
- const [text, setText] = React10.useState("");
1338
- const [showEmoji, setShowEmoji] = React10.useState(false);
1339
- const [recording, setRecording] = React10.useState(false);
1340
- const [seconds, setSeconds] = React10.useState(0);
1341
- const mediaRecRef = React10.useRef(null);
1342
- const streamRef = React10.useRef(null);
1343
- const chunksRef = React10.useRef([]);
1344
- const [micError, setMicError] = React10.useState("");
1345
- const [imgPreviews, setImgPreviews] = React10.useState([]);
1346
- const [filePreviews, setFilePreviews] = React10.useState([]);
1347
- const fileInputRef = React10.useRef(null);
1348
- const [showTranslate, setShowTranslate] = React10.useState(false);
1349
- const [translateSettings, setTranslateSettings] = React10.useState({
2072
+ const actionData = hiddenActionKeys.length ? allActions.filter((a) => !hiddenActionKeys.includes(a.key)) : allActions;
2073
+ const textRef = React16.useRef(null);
2074
+ const emojiBtnRef = React16.useRef(null);
2075
+ const [text, setText] = React16.useState("");
2076
+ const [showEmoji, setShowEmoji] = React16.useState(false);
2077
+ const [recording, setRecording] = React16.useState(false);
2078
+ const [seconds, setSeconds] = React16.useState(0);
2079
+ const mediaRecRef = React16.useRef(null);
2080
+ const streamRef = React16.useRef(null);
2081
+ const chunksRef = React16.useRef([]);
2082
+ const [micError, setMicError] = React16.useState("");
2083
+ const [imgPreviews, setImgPreviews] = React16.useState([]);
2084
+ const [filePreviews, setFilePreviews] = React16.useState([]);
2085
+ const fileInputRef = React16.useRef(null);
2086
+ const [showTranslate, setShowTranslate] = React16.useState(false);
2087
+ const [translateSettings, setTranslateSettings] = React16.useState({
1350
2088
  incomingTarget: "",
1351
2089
  autoIncoming: true,
1352
2090
  enableOutgoing: false,
1353
2091
  outgoingFrom: "English",
1354
2092
  outgoingTo: "Bangla"
1355
2093
  });
1356
- const bizBtnRef = React10.useRef(null);
1357
- const [showBiz, setShowBiz] = React10.useState(false);
1358
- const addrBtnRef = React10.useRef(null);
1359
- const [, setShowAddress] = React10.useState(false);
2094
+ const bizBtnRef = React16.useRef(null);
2095
+ const [showBiz, setShowBiz] = React16.useState(false);
2096
+ const [showBizEdit, setShowBizEdit] = React16.useState(false);
2097
+ const handleOpenBizEdit = () => {
2098
+ setShowBiz(false);
2099
+ setShowBizEdit(true);
2100
+ };
2101
+ const addrBtnRef = React16.useRef(null);
2102
+ const [showAddress, setShowAddress] = React16.useState(false);
1360
2103
  const insertEmoji = (emoji) => {
1361
2104
  const el = textRef.current;
1362
2105
  if (!el) {
@@ -1372,7 +2115,7 @@ var ChatFooter = ({
1372
2115
  el.setSelectionRange(pos, pos);
1373
2116
  });
1374
2117
  };
1375
- const handleAutoGrow = React10__default.default.useCallback(() => {
2118
+ const handleAutoGrow = React16__default.default.useCallback(() => {
1376
2119
  const el = textRef.current;
1377
2120
  if (!el) {
1378
2121
  return;
@@ -1383,10 +2126,10 @@ var ChatFooter = ({
1383
2126
  const max = lh * maxRows + parseFloat(styles.paddingTop) + parseFloat(styles.paddingBottom);
1384
2127
  el.style.height = `${Math.min(el.scrollHeight, max)}px`;
1385
2128
  }, [maxRows]);
1386
- React10.useEffect(() => {
2129
+ React16.useEffect(() => {
1387
2130
  handleAutoGrow();
1388
2131
  }, [text, handleAutoGrow]);
1389
- React10.useEffect(() => {
2132
+ React16.useEffect(() => {
1390
2133
  if (!recording) {
1391
2134
  return;
1392
2135
  }
@@ -1394,7 +2137,7 @@ var ChatFooter = ({
1394
2137
  const id = setInterval(() => setSeconds((s) => s + 1), 1e3);
1395
2138
  return () => clearInterval(id);
1396
2139
  }, [recording]);
1397
- React10.useEffect(() => {
2140
+ React16.useEffect(() => {
1398
2141
  return () => {
1399
2142
  imgPreviews.forEach((u) => u.startsWith("blob:") && URL.revokeObjectURL(u));
1400
2143
  filePreviews.forEach((f) => f.href?.startsWith("blob:") && URL.revokeObjectURL(f.href));
@@ -1409,7 +2152,7 @@ var ChatFooter = ({
1409
2152
  }, []);
1410
2153
  const isTyping = text.length > 0;
1411
2154
  const hasAttachments = imgPreviews.length > 0 || filePreviews.length > 0;
1412
- const canSendArrow = React10.useMemo(() => hasAttachments || isTyping, [hasAttachments, isTyping]);
2155
+ const canSendArrow = React16.useMemo(() => hasAttachments || isTyping, [hasAttachments, isTyping]);
1413
2156
  const onFilesPicked = (e) => {
1414
2157
  const files = Array.from(e.target.files ?? []);
1415
2158
  if (!files.length) {
@@ -1536,7 +2279,7 @@ var ChatFooter = ({
1536
2279
  }
1537
2280
  setSeconds(0);
1538
2281
  };
1539
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx18__default.default("border-t border-[#ededed] bg-white p-3.5", className), children: [
2282
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx3__default.default("border-t border-[#ededed] bg-white p-3.5", className), children: [
1540
2283
  replyTo && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2", children: /* @__PURE__ */ jsxRuntime.jsx(ReplyCard_default, { refMsg: replyTo, onClose: clearReply }) }),
1541
2284
  /* @__PURE__ */ jsxRuntime.jsx(
1542
2285
  AttachmentPreviewStrip_default,
@@ -1586,7 +2329,8 @@ var ChatFooter = ({
1586
2329
  open: showBiz,
1587
2330
  onClose: () => setShowBiz(false),
1588
2331
  anchorRef: bizBtnRef,
1589
- onSend: async (card) => {
2332
+ onEdit: handleOpenBizEdit,
2333
+ onSend: (card) => {
1590
2334
  onSend({ type: "businessCard", card, replyTo });
1591
2335
  clearReply?.();
1592
2336
  onAfterSend?.();
@@ -1630,13 +2374,92 @@ var ChatFooter = ({
1630
2374
  setShowTranslate(false);
1631
2375
  }
1632
2376
  }
2377
+ ),
2378
+ /* @__PURE__ */ jsxRuntime.jsx(
2379
+ ChatAddressModal_default,
2380
+ {
2381
+ variant,
2382
+ open: showAddress,
2383
+ onClose: () => setShowAddress(false),
2384
+ onSend: (card) => {
2385
+ onSend({ type: "addressCard", card, replyTo });
2386
+ clearReply?.();
2387
+ onAfterSend?.();
2388
+ }
2389
+ }
2390
+ ),
2391
+ showBizEdit && /* @__PURE__ */ jsxRuntime.jsxs(
2392
+ "div",
2393
+ {
2394
+ className: "fixed inset-0 z-[10003] flex items-center justify-center",
2395
+ onClick: () => setShowBizEdit(false),
2396
+ children: [
2397
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-0 bg-black/30" }),
2398
+ /* @__PURE__ */ jsxRuntime.jsxs(
2399
+ "div",
2400
+ {
2401
+ role: "dialog",
2402
+ "aria-modal": "true",
2403
+ onClick: (e) => e.stopPropagation(),
2404
+ className: "relative z-[10004] w-[480px] max-w-[95vw] overflow-hidden rounded-md bg-white shadow-[0_12px_30px_rgba(0,0,0,0.18)]",
2405
+ children: [
2406
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-[44px] items-center justify-between bg-[#f8f8f8] px-6", children: [
2407
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-semibold text-black", children: "Business Info" }),
2408
+ /* @__PURE__ */ jsxRuntime.jsx(
2409
+ "button",
2410
+ {
2411
+ type: "button",
2412
+ onClick: () => setShowBizEdit(false),
2413
+ className: "flex h-8 w-8 items-center justify-center rounded-full hover:bg-black/10 cursor-pointer",
2414
+ children: /* @__PURE__ */ jsxRuntime.jsx(ChatXIcon, { className: "h-5 w-5" })
2415
+ }
2416
+ )
2417
+ ] }),
2418
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-6 space-y-3 text-sm text-[#374151]", children: [
2419
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[#6b7280]", children: "Update your business card information below." }),
2420
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-3", children: ["First Name", "Last Name", "Business Name", "Mobile", "Email", "Website"].map((label) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [
2421
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-xs font-medium text-[#374151]", children: label }),
2422
+ /* @__PURE__ */ jsxRuntime.jsx(
2423
+ "input",
2424
+ {
2425
+ placeholder: label,
2426
+ className: "rounded-md border border-[#d1d5db] px-3 py-2 text-sm text-black placeholder-[#9ca3af] outline-none focus:border-[#ff5200] focus:ring-1 focus:ring-[#ff5200]/30"
2427
+ }
2428
+ )
2429
+ ] }, label)) })
2430
+ ] }),
2431
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-[52px] items-center justify-end gap-3 bg-[#f0f4ff] px-6", children: [
2432
+ /* @__PURE__ */ jsxRuntime.jsx(
2433
+ "button",
2434
+ {
2435
+ type: "button",
2436
+ onClick: () => setShowBizEdit(false),
2437
+ className: "h-[34px] cursor-pointer rounded-[4px] border border-[#d1d5db] bg-white px-4 text-[13px] font-medium text-black hover:bg-[#f9fafb]",
2438
+ children: "Cancel"
2439
+ }
2440
+ ),
2441
+ /* @__PURE__ */ jsxRuntime.jsx(
2442
+ "button",
2443
+ {
2444
+ type: "button",
2445
+ onClick: () => setShowBizEdit(false),
2446
+ className: "h-[34px] cursor-pointer rounded-[4px] border-none bg-[#ff5200] px-4 text-[13px] font-medium text-white hover:bg-[#e64a00]",
2447
+ children: "Save"
2448
+ }
2449
+ )
2450
+ ] })
2451
+ ]
2452
+ }
2453
+ )
2454
+ ]
2455
+ }
1633
2456
  )
1634
2457
  ] });
1635
2458
  };
1636
2459
  var ChatFooter_default = ChatFooter;
1637
2460
  function ChatHeader({ left, right, below, className }) {
1638
2461
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1639
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx18__default.default("border-b border-[#ededed] h-[64px]", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between px-4 pt-2.5", children: [
2462
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx3__default.default("border-b border-[#ededed] h-[64px]", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between px-4 pt-2.5", children: [
1640
2463
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-3", children: left }),
1641
2464
  right
1642
2465
  ] }) }),
@@ -1657,11 +2480,11 @@ var ChatIdentity = (props) => {
1657
2480
  size = 46,
1658
2481
  className
1659
2482
  } = props;
1660
- const subtitleClass = clsx18__default.default(
2483
+ const subtitleClass = clsx3__default.default(
1661
2484
  "text-[10px] font-medium",
1662
2485
  subtitleVariant === "live" ? "text-[#1E9E6A]" : "text-[#929292]"
1663
2486
  );
1664
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx18__default.default("flex items-start gap-3", className), children: [
2487
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx3__default.default("flex items-start gap-3", className), children: [
1665
2488
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", style: { width: size, height: size }, children: [
1666
2489
  props.variant === "avatar" && /* @__PURE__ */ jsxRuntime.jsx(
1667
2490
  "img",
@@ -1674,7 +2497,7 @@ var ChatIdentity = (props) => {
1674
2497
  props.variant === "initial" && /* @__PURE__ */ jsxRuntime.jsx(
1675
2498
  "div",
1676
2499
  {
1677
- className: clsx18__default.default(
2500
+ className: clsx3__default.default(
1678
2501
  "grid h-full w-full place-items-center rounded-xs text-[15px] font-semibold text-[#2c2c2c]",
1679
2502
  props.textClassName
1680
2503
  ),
@@ -1749,7 +2572,7 @@ var ChatInquiryBar = ({ id, onView, className, label, buttonLabel }) => {
1749
2572
  return /* @__PURE__ */ jsxRuntime.jsxs(
1750
2573
  "div",
1751
2574
  {
1752
- className: clsx18__default.default(
2575
+ className: clsx3__default.default(
1753
2576
  "flex items-center justify-between border-b border-[#ededed] bg-[#f8f8f8] ps-[16px] pe-[30px] h-[30px]",
1754
2577
  className
1755
2578
  ),
@@ -1788,10 +2611,10 @@ var ChatListHeader = ({
1788
2611
  onSearchChange,
1789
2612
  hideSearch = false
1790
2613
  }) => {
1791
- const [searching, setSearching] = React10__default.default.useState(false);
1792
- const [q, setQ] = React10__default.default.useState("");
1793
- const inputRef = React10__default.default.useRef(null);
1794
- React10__default.default.useEffect(() => {
2614
+ const [searching, setSearching] = React16__default.default.useState(false);
2615
+ const [q, setQ] = React16__default.default.useState("");
2616
+ const inputRef = React16__default.default.useRef(null);
2617
+ React16__default.default.useEffect(() => {
1795
2618
  const timer = searching ? setTimeout(() => {
1796
2619
  inputRef.current?.focus();
1797
2620
  }, 220) : void 0;
@@ -1799,7 +2622,7 @@ var ChatListHeader = ({
1799
2622
  clearTimeout(timer);
1800
2623
  };
1801
2624
  }, [searching]);
1802
- React10__default.default.useEffect(() => {
2625
+ React16__default.default.useEffect(() => {
1803
2626
  if (!searching) {
1804
2627
  return;
1805
2628
  }
@@ -1821,7 +2644,7 @@ var ChatListHeader = ({
1821
2644
  inFromLeft: { opacity: 1, x: 0, transition: { duration: 0.18, ease: [0.16, 1, 0.3, 1] } },
1822
2645
  outToRight: { opacity: 0, x: 24, transition: { duration: 0.16, ease: [0.4, 0, 1, 1] } }
1823
2646
  };
1824
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx18__default.default("h-[64px] border-b border-[#ededed]", className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full items-center px-[20px]", children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, mode: "wait", children: !searching ? /* @__PURE__ */ jsxRuntime.jsxs(
2647
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx3__default.default("h-[64px] border-b border-[#ededed]", className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full items-center px-[20px]", children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, mode: "wait", children: !searching ? /* @__PURE__ */ jsxRuntime.jsxs(
1825
2648
  framerMotion.motion.div,
1826
2649
  {
1827
2650
  className: "flex w-full items-center justify-between",
@@ -1956,7 +2779,7 @@ var ChatAddressCard = ({ mine, card, className }) => {
1956
2779
  return /* @__PURE__ */ jsxRuntime.jsxs(
1957
2780
  "div",
1958
2781
  {
1959
- className: clsx18__default.default(
2782
+ className: clsx3__default.default(
1960
2783
  "w-[340px] rounded-md bg-[#f8f8f8] p-2",
1961
2784
  mine ? "ml-auto" : "mr-auto",
1962
2785
  className
@@ -2004,13 +2827,13 @@ var PlayIcon = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBo
2004
2827
  var PauseIcon = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 20 20", className, fill: "currentColor", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M5 4h4v12H5V4zm6 0h4v12h-4V4z" }) });
2005
2828
  var audioRegistry = /* @__PURE__ */ new Set();
2006
2829
  var ChatBubbleAudio = ({ mine, audio }) => {
2007
- const ref = React10__default.default.useRef(null);
2008
- const trackRef = React10__default.default.useRef(null);
2009
- const [playing, setPlaying] = React10__default.default.useState(false);
2010
- const [progress, setProgress] = React10__default.default.useState(0);
2011
- const [durSec, setDurSec] = React10__default.default.useState(0);
2012
- const [remain, setRemain] = React10__default.default.useState(audio.duration ?? "0:00");
2013
- React10__default.default.useEffect(() => {
2830
+ const ref = React16__default.default.useRef(null);
2831
+ const trackRef = React16__default.default.useRef(null);
2832
+ const [playing, setPlaying] = React16__default.default.useState(false);
2833
+ const [progress, setProgress] = React16__default.default.useState(0);
2834
+ const [durSec, setDurSec] = React16__default.default.useState(0);
2835
+ const [remain, setRemain] = React16__default.default.useState(audio.duration ?? "0:00");
2836
+ React16__default.default.useEffect(() => {
2014
2837
  const a = ref.current;
2015
2838
  if (!a) {
2016
2839
  return;
@@ -2104,7 +2927,7 @@ var ChatBubbleAudio = ({ mine, audio }) => {
2104
2927
  type: "button",
2105
2928
  "aria-label": playing ? "Pause" : "Play",
2106
2929
  onClick: toggle,
2107
- className: clsx18__default.default(
2930
+ className: clsx3__default.default(
2108
2931
  "grid h-7 w-[34px] place-items-center rounded-md transition-colors",
2109
2932
  mine ? "bg-[#F1F1F1] text-[#00486F]" : "bg-[#F1F1F1] text-[#00486F]"
2110
2933
  ),
@@ -2175,7 +2998,7 @@ var extColor2 = (ext) => {
2175
2998
  var FileChip = ({ file }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-3 rounded-sm border border-[#e1e1e1] bg-white px-3 py-2", children: [
2176
2999
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 items-center gap-2", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
2177
3000
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
2178
- /* @__PURE__ */ jsxRuntime.jsx(FileIcon, { className: clsx18__default.default("h-[18px] w-[18px]", extColor2(file.ext)) }),
3001
+ /* @__PURE__ */ jsxRuntime.jsx(FileIcon, { className: clsx3__default.default("h-[18px] w-[18px]", extColor2(file.ext)) }),
2179
3002
  " ",
2180
3003
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-xs font-normal text-black", children: file.name })
2181
3004
  ] }),
@@ -2290,14 +3113,14 @@ var ChatBubbleText = ({ mine, text }) => {
2290
3113
  const color = mine ? "bg-[#f8f8f8] border-[#f1f1f1]" : "bg-white border-[#EFEFEF]";
2291
3114
  const corner = mine ? "rounded-tr-[6px]" : "rounded-tl-md";
2292
3115
  const textFormatting = "whitespace-pre-wrap break-words";
2293
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx18__default.default(base, color, corner, textFormatting), children: text });
3116
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx3__default.default(base, color, corner, textFormatting), children: text });
2294
3117
  };
2295
3118
  var ChatBubbleText_default = ChatBubbleText;
2296
3119
  var ChatBusinessCard = ({ mine, card }) => {
2297
3120
  return /* @__PURE__ */ jsxRuntime.jsx(
2298
3121
  "div",
2299
3122
  {
2300
- className: clsx18__default.default(
3123
+ className: clsx3__default.default(
2301
3124
  "relative h-[208px] w-[355px] overflow-hidden rounded-[12px] bg-white bg-cover bg-no-repeat",
2302
3125
  "shadow-[0_2px_12px_rgba(59,51,51,0.1)]",
2303
3126
  mine ? "ml-auto" : "mr-auto"
@@ -2357,13 +3180,13 @@ var MessageHoverActions = ({
2357
3180
  const showTranslate = !isItemButton || isItemButton.includes("translate");
2358
3181
  const hasAny = showReplay || showTranslate;
2359
3182
  const isActive = (k) => !!activeButtons?.includes(k);
2360
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx18__default.default("relative inline-flex group/message", className), children: [
3183
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx3__default.default("relative inline-flex group/message", className), children: [
2361
3184
  children,
2362
3185
  hasAny && /* @__PURE__ */ jsxRuntime.jsx(
2363
3186
  "div",
2364
3187
  {
2365
3188
  "aria-hidden": true,
2366
- className: clsx18__default.default(
3189
+ className: clsx3__default.default(
2367
3190
  "absolute inset-y-0 w-2",
2368
3191
  mine ? "right-full" : "left-full",
2369
3192
  "pointer-events-auto"
@@ -2373,7 +3196,7 @@ var MessageHoverActions = ({
2373
3196
  hasAny && /* @__PURE__ */ jsxRuntime.jsx(
2374
3197
  "div",
2375
3198
  {
2376
- className: clsx18__default.default(
3199
+ className: clsx3__default.default(
2377
3200
  "absolute bottom-0 pointer-events-auto transition-opacity",
2378
3201
  sidePos,
2379
3202
  railNudge,
@@ -2393,7 +3216,7 @@ var MessageHoverActions = ({
2393
3216
  e.stopPropagation();
2394
3217
  onReply?.();
2395
3218
  },
2396
- className: clsx18__default.default(
3219
+ className: clsx3__default.default(
2397
3220
  "inline-flex h-[22px] w-[22px] items-center justify-center rounded-sm bg-white text-[#2c2c2c] shadow-[0_1px_3px_rgba(0,0,0,0.08)] hover:bg-[#f8f8f8]",
2398
3221
  isActive("replay") && "bg-[#636363] text-white"
2399
3222
  ),
@@ -2414,7 +3237,7 @@ var MessageHoverActions = ({
2414
3237
  e.stopPropagation();
2415
3238
  onTranslate?.();
2416
3239
  },
2417
- className: clsx18__default.default(
3240
+ className: clsx3__default.default(
2418
3241
  "inline-flex h-[22px] w-[22px] items-center justify-center rounded-sm bg-white text-[#2c2c2c] shadow-[0_1px_3px_rgba(0,0,0,0.08)] hover:bg-[#f8f8f8]",
2419
3242
  isActive("translate") && "!bg-[#636363] text-white"
2420
3243
  ),
@@ -2463,14 +3286,14 @@ var ChatMessageItem = ({
2463
3286
  onTranslate,
2464
3287
  initialSrc
2465
3288
  }) => {
2466
- const originalTextRef = React10__default.default.useRef(text ?? "");
2467
- const [translated, setTranslated] = React10__default.default.useState(false);
3289
+ const originalTextRef = React16__default.default.useRef(text ?? "");
3290
+ const [translated, setTranslated] = React16__default.default.useState(false);
2468
3291
  const displayText = translated ? toBanglaDemo(originalTextRef.current) : originalTextRef.current;
2469
3292
  const handleTranslateClick = () => {
2470
3293
  setTranslated((v) => !v);
2471
3294
  onTranslate?.();
2472
3295
  };
2473
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx18__default.default("mb-4", className), "data-msg-id": id, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx18__default.default("flex items-end gap-3", mine && "justify-end"), children: [
3296
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx3__default.default("mb-4", className), "data-msg-id": id, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx3__default.default("flex items-end gap-3", mine && "justify-end"), children: [
2474
3297
  !mine && /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${showStatus ? "mb-5" : "mb-0"}`, children: initialSrc ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative h-10 w-10 shrink-0 rounded-full border border-[#F1F1F1]", children: [
2475
3298
  /* @__PURE__ */ jsxRuntime.jsx(
2476
3299
  "img",
@@ -2492,19 +3315,19 @@ var ChatMessageItem = ({
2492
3315
  ]
2493
3316
  }
2494
3317
  ) }),
2495
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx18__default.default("flex flex-col gap-1 w-full"), children: [
3318
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx3__default.default("flex flex-col gap-1 w-full"), children: [
2496
3319
  /* @__PURE__ */ jsxRuntime.jsx(
2497
3320
  "div",
2498
3321
  {
2499
- className: clsx18__default.default(
3322
+ className: clsx3__default.default(
2500
3323
  " text-xs font-light text-[#636363]",
2501
3324
  mine ? "text-right" : "text-left"
2502
3325
  ),
2503
3326
  children: time
2504
3327
  }
2505
3328
  ),
2506
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx18__default.default("flex flex-col gap-1 w-full", mine ? "items-end" : "items-start"), children: [
2507
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx18__default.default("flex w-full", mine ? "justify-end" : "justify-start"), children: replyTo && /* @__PURE__ */ jsxRuntime.jsx(ReplyCard_default, { jumpOnClick: true, refMsg: replyTo, compact: true, className: "mb-1" }) }),
3329
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx3__default.default("flex flex-col gap-1 w-full", mine ? "items-end" : "items-start"), children: [
3330
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx3__default.default("flex w-full", mine ? "justify-end" : "justify-start"), children: replyTo && /* @__PURE__ */ jsxRuntime.jsx(ReplyCard_default, { jumpOnClick: true, refMsg: replyTo, compact: true, className: "mb-1" }) }),
2508
3331
  businessCard ? /* @__PURE__ */ jsxRuntime.jsx(ChatBusinessCard_default, { mine, card: businessCard }) : null,
2509
3332
  addressCard ? /* @__PURE__ */ jsxRuntime.jsx(ChatAddressCard_default, { mine, card: addressCard }) : null,
2510
3333
  images?.length ? /* @__PURE__ */ jsxRuntime.jsx(MessageHoverActions_default, { mine, onReply, isItemButton: ["replay"], children: /* @__PURE__ */ jsxRuntime.jsx(ChatBubbleImages_default, { images }) }) : null,
@@ -2521,22 +3344,22 @@ var ChatMessageItem = ({
2521
3344
  children: /* @__PURE__ */ jsxRuntime.jsx(ChatBubbleText_default, { mine, text: displayText })
2522
3345
  }
2523
3346
  ) : null,
2524
- showStatus && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx18__default.default("text-xs text-[#9AA1A9]", mine ? "text-right" : "text-left"), children: status })
3347
+ showStatus && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx3__default.default("text-xs text-[#9AA1A9]", mine ? "text-right" : "text-left"), children: status })
2525
3348
  ] })
2526
3349
  ] })
2527
3350
  ] }) });
2528
3351
  };
2529
3352
  var ChatMessageItem_default = ChatMessageItem;
2530
- var ChatScroll = React10__default.default.forwardRef(function ChatScroll2({ top, children, className, bottomAlignWhenShort = false, scrollKey }, _) {
2531
- const ref = React10__default.default.useRef(null);
2532
- const scrollToBottom = React10__default.default.useCallback(() => {
3353
+ var ChatScroll = React16__default.default.forwardRef(function ChatScroll2({ top, children, className, bottomAlignWhenShort = false, scrollKey }, _) {
3354
+ const ref = React16__default.default.useRef(null);
3355
+ const scrollToBottom = React16__default.default.useCallback(() => {
2533
3356
  const el = ref.current;
2534
3357
  if (!el) {
2535
3358
  return;
2536
3359
  }
2537
3360
  el.scrollTop = el.scrollHeight;
2538
3361
  }, []);
2539
- React10__default.default.useLayoutEffect(() => {
3362
+ React16__default.default.useLayoutEffect(() => {
2540
3363
  scrollToBottom();
2541
3364
  }, [scrollKey, scrollToBottom]);
2542
3365
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -2544,14 +3367,14 @@ var ChatScroll = React10__default.default.forwardRef(function ChatScroll2({ top,
2544
3367
  {
2545
3368
  ref,
2546
3369
  "data-chat-scroll": true,
2547
- className: clsx18__default.default(
3370
+ className: clsx3__default.default(
2548
3371
  "h-full min-h-0 overflow-y-auto bg-white p-4 custom-scroll-hidden",
2549
3372
  className
2550
3373
  ),
2551
3374
  children: /* @__PURE__ */ jsxRuntime.jsxs(
2552
3375
  "div",
2553
3376
  {
2554
- className: clsx18__default.default(
3377
+ className: clsx3__default.default(
2555
3378
  "min-h-full flex flex-col",
2556
3379
  bottomAlignWhenShort ? "justify-end" : "justify-between"
2557
3380
  ),
@@ -2599,7 +3422,7 @@ var ChatThreadItem = ({
2599
3422
  "button",
2600
3423
  {
2601
3424
  onClick,
2602
- className: clsx18__default.default(
3425
+ className: clsx3__default.default(
2603
3426
  "relative w-full text-left px-5 py-2 hover:bg-[#f8f8f8] focus:outline-none h-[75px]",
2604
3427
  active && "bg-[#f8f8f8]",
2605
3428
  className
@@ -2700,8 +3523,8 @@ var TypingIndicator = ({
2700
3523
  };
2701
3524
  var TypingIndicator_default = TypingIndicator;
2702
3525
  function Portal({ children, containerId = "portal-root" }) {
2703
- const [container, setContainer] = React10.useState(null);
2704
- React10.useEffect(() => {
3526
+ const [container, setContainer] = React16.useState(null);
3527
+ React16.useEffect(() => {
2705
3528
  let node = document.getElementById(containerId);
2706
3529
  let created = false;
2707
3530
  if (!node) {
@@ -2744,20 +3567,20 @@ var ChatImagePreviewModal = ({
2744
3567
  const total = images?.length ?? 0;
2745
3568
  const hasPrev = current > 0;
2746
3569
  const hasNext = current < total - 1;
2747
- const [direction, setDirection] = React10.useState(0);
2748
- const goPrev = React10.useCallback(() => {
3570
+ const [direction, setDirection] = React16.useState(0);
3571
+ const goPrev = React16.useCallback(() => {
2749
3572
  if (current > 0) {
2750
3573
  setDirection(-1);
2751
3574
  setCurrentIndex(current - 1);
2752
3575
  }
2753
3576
  }, [current, setCurrentIndex]);
2754
- const goNext = React10.useCallback(() => {
3577
+ const goNext = React16.useCallback(() => {
2755
3578
  if (images && current < images.length - 1) {
2756
3579
  setDirection(1);
2757
3580
  setCurrentIndex(current + 1);
2758
3581
  }
2759
3582
  }, [current, images, setCurrentIndex]);
2760
- React10.useEffect(() => {
3583
+ React16.useEffect(() => {
2761
3584
  if (!isOpen) return;
2762
3585
  const handleKey = (e) => {
2763
3586
  if (e.key === "Escape") onClose();
@@ -2892,6 +3715,94 @@ var ChatImagePreviewModal = ({
2892
3715
  ) }) });
2893
3716
  };
2894
3717
  var ChatImagePreviewModal_default = ChatImagePreviewModal;
3718
+ var baseItem = "flex w-full items-center gap-3 px-3 py-2 text-sm hover:bg-black/5 cursor-pointer";
3719
+ var ChatKebabMenu = ({
3720
+ pinned,
3721
+ onPinToggle,
3722
+ onDelete,
3723
+ className
3724
+ }) => {
3725
+ const [open, setOpen] = React16.useState(false);
3726
+ const btnRef = React16.useRef(null);
3727
+ const menuId = "chat-kebab-menu";
3728
+ React16.useEffect(() => {
3729
+ if (!open) return;
3730
+ const onDoc = (e) => {
3731
+ const menu = document.getElementById(menuId);
3732
+ if (!menu || !btnRef.current) return;
3733
+ const target = e.target;
3734
+ if (menu.contains(target) || btnRef.current.contains(target)) return;
3735
+ setOpen(false);
3736
+ };
3737
+ document.addEventListener("mousedown", onDoc);
3738
+ return () => document.removeEventListener("mousedown", onDoc);
3739
+ }, [open]);
3740
+ React16.useEffect(() => {
3741
+ if (!open) return;
3742
+ const onKey = (e) => e.key === "Escape" && setOpen(false);
3743
+ document.addEventListener("keydown", onKey);
3744
+ return () => document.removeEventListener("keydown", onKey);
3745
+ }, [open]);
3746
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx3__default.default("relative", className), children: [
3747
+ /* @__PURE__ */ jsxRuntime.jsx(
3748
+ "button",
3749
+ {
3750
+ ref: btnRef,
3751
+ type: "button",
3752
+ className: "grid h-9 w-9 place-items-center rounded-full hover:bg-black/5 cursor-pointer",
3753
+ onClick: () => setOpen((v) => !v),
3754
+ "aria-haspopup": "menu",
3755
+ "aria-expanded": open,
3756
+ title: "More options",
3757
+ children: /* @__PURE__ */ jsxRuntime.jsx(MenuIcon, { className: "w-6 h-6" })
3758
+ }
3759
+ ),
3760
+ open && /* @__PURE__ */ jsxRuntime.jsxs(
3761
+ "div",
3762
+ {
3763
+ id: menuId,
3764
+ role: "menu",
3765
+ className: "absolute right-0 z-10 mt-2 w-44 rounded-xs bg-white py-1 shadow-[0_4px_16px_rgba(0,0,0,0.08)]",
3766
+ children: [
3767
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute -z-[1] -top-[6px] right-4 h-3 w-3 rotate-45 bg-white" }),
3768
+ /* @__PURE__ */ jsxRuntime.jsxs(
3769
+ "button",
3770
+ {
3771
+ role: "menuitem",
3772
+ type: "button",
3773
+ className: baseItem,
3774
+ onClick: () => {
3775
+ onPinToggle?.();
3776
+ setOpen(false);
3777
+ },
3778
+ children: [
3779
+ pinned ? /* @__PURE__ */ jsxRuntime.jsx(PinOffIcon, { className: "h-[18px] w-[18px] text-[#636363]" }) : /* @__PURE__ */ jsxRuntime.jsx(PinIcon, { className: "h-[18px] w-[18px] text-[#636363]" }),
3780
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[#161616]", children: pinned ? "Unpin" : "Pin on top" })
3781
+ ]
3782
+ }
3783
+ ),
3784
+ /* @__PURE__ */ jsxRuntime.jsxs(
3785
+ "button",
3786
+ {
3787
+ role: "menuitem",
3788
+ type: "button",
3789
+ className: baseItem,
3790
+ onClick: () => {
3791
+ onDelete?.();
3792
+ setOpen(false);
3793
+ },
3794
+ children: [
3795
+ /* @__PURE__ */ jsxRuntime.jsx(TrashIcon, { className: "h-[18px] w-[18px] text-[#636363]" }),
3796
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[#161616]", children: "Delete" })
3797
+ ]
3798
+ }
3799
+ )
3800
+ ]
3801
+ }
3802
+ )
3803
+ ] });
3804
+ };
3805
+ var ChatKebabMenu_default = ChatKebabMenu;
2895
3806
  var avatarBgByInitial = {
2896
3807
  K: "#FFE7DB",
2897
3808
  A: "#FFF1EC",
@@ -2916,12 +3827,12 @@ function getThemeVars(theme) {
2916
3827
  var InboxPopup = ({ adapter, uiCallbacks, theme }) => {
2917
3828
  const { close, selectThread, selectedThreadId, reference } = useChatUI();
2918
3829
  const { isOpen: isGalleryOpen, closeGallery } = useGallery();
2919
- const [threads, setThreads] = React10.useState(() => adapter.threads.list(reference));
2920
- const refreshThreads = React10.useCallback(
3830
+ const [threads, setThreads] = React16.useState(() => adapter.threads.list(reference));
3831
+ const refreshThreads = React16.useCallback(
2921
3832
  () => setThreads(adapter.threads.list(reference)),
2922
3833
  [adapter, reference]
2923
3834
  );
2924
- React10.useEffect(() => {
3835
+ React16.useEffect(() => {
2925
3836
  let rafId = 0;
2926
3837
  rafId = requestAnimationFrame(refreshThreads);
2927
3838
  const unsub = adapter.threads.subscribe(refreshThreads);
@@ -2930,18 +3841,18 @@ var InboxPopup = ({ adapter, uiCallbacks, theme }) => {
2930
3841
  unsub();
2931
3842
  };
2932
3843
  }, [adapter, reference, refreshThreads]);
2933
- const [rev, setRev] = React10.useState(0);
2934
- const [replyTo, setReplyTo] = React10.useState(void 0);
2935
- const [searchQuery, setSearchQuery] = React10.useState("");
3844
+ const [rev, setRev] = React16.useState(0);
3845
+ const [replyTo, setReplyTo] = React16.useState(void 0);
3846
+ const [searchQuery, setSearchQuery] = React16.useState("");
2936
3847
  const activeId = selectedThreadId ?? threads[0]?.id;
2937
3848
  const activeThread = threads.find((t) => t.id === activeId);
2938
- const [messages, setMessages] = React10.useState(
3849
+ const [messages, setMessages] = React16.useState(
2939
3850
  () => activeId ? adapter.messages.list(activeId) : []
2940
3851
  );
2941
- React10.useEffect(() => {
3852
+ React16.useEffect(() => {
2942
3853
  if (activeId) setMessages(adapter.messages.list(activeId));
2943
3854
  }, [activeId, rev, adapter]);
2944
- React10.useEffect(() => {
3855
+ React16.useEffect(() => {
2945
3856
  if (!activeId || !adapter.messages.subscribe) return;
2946
3857
  const unsub = adapter.messages.subscribe(activeId, () => {
2947
3858
  setMessages(adapter.messages.list(activeId));
@@ -2958,10 +3869,10 @@ var InboxPopup = ({ adapter, uiCallbacks, theme }) => {
2958
3869
  const idLabel = activeThread?.orderId ? "Order ID" : activeThread?.inquiryId ? "Inquiry ID" : void 0;
2959
3870
  const idButtonLabel = activeThread?.orderId ? "View Order" : activeThread?.inquiryId ? "View Inquiry" : void 0;
2960
3871
  const idValue = activeThread?.orderId ?? activeThread?.inquiryId ?? void 0;
2961
- const [showDelete, setShowDelete] = React10.useState(false);
3872
+ const [showDelete, setShowDelete] = React16.useState(false);
2962
3873
  const scrollKey = `${activeId}-${messages.length}-${rev}`;
2963
- const prevActiveIdRef = React10.useRef(activeId);
2964
- React10.useEffect(() => {
3874
+ const prevActiveIdRef = React16.useRef(activeId);
3875
+ React16.useEffect(() => {
2965
3876
  if (prevActiveIdRef.current !== activeId) {
2966
3877
  prevActiveIdRef.current = activeId;
2967
3878
  if (activeId) adapter.threads.markRead?.(activeId);
@@ -2997,7 +3908,7 @@ var InboxPopup = ({ adapter, uiCallbacks, theme }) => {
2997
3908
  const q = searchQuery.toLowerCase();
2998
3909
  return t.title.toLowerCase().includes(q) || t.last?.toLowerCase().includes(q) || t.orderId?.toLowerCase().includes(q) || t.inquiryId?.toLowerCase().includes(q);
2999
3910
  });
3000
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed bottom-4 right-4 z-[10002]", children: [
3911
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed bottom-4 right-4 z-10002", children: [
3001
3912
  /* @__PURE__ */ jsxRuntime.jsx(
3002
3913
  framerMotion.motion.button,
3003
3914
  {
@@ -3065,13 +3976,22 @@ var InboxPopup = ({ adapter, uiCallbacks, theme }) => {
3065
3976
  subtitleVariant: "muted"
3066
3977
  }
3067
3978
  ),
3068
- right: uiCallbacks?.renderKebabMenu?.({
3979
+ right: uiCallbacks?.renderKebabMenu ? uiCallbacks.renderKebabMenu({
3069
3980
  pinned: Boolean(activeThread?.pinned),
3070
3981
  onPinToggle: () => {
3071
3982
  if (activeId) adapter.threads.pin(activeId, !activeThread?.pinned);
3072
3983
  },
3073
3984
  onDelete: () => setShowDelete(true)
3074
- }) ?? null
3985
+ }) : /* @__PURE__ */ jsxRuntime.jsx(
3986
+ ChatKebabMenu_default,
3987
+ {
3988
+ pinned: Boolean(activeThread?.pinned),
3989
+ onPinToggle: () => {
3990
+ if (activeId) adapter.threads.pin(activeId, !activeThread?.pinned);
3991
+ },
3992
+ onDelete: () => setShowDelete(true)
3993
+ }
3994
+ )
3075
3995
  }
3076
3996
  ) }),
3077
3997
  idValue && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -3214,13 +4134,14 @@ function getThemeVars2(theme) {
3214
4134
  }
3215
4135
  var SinglePopup = ({ adapter, uiCallbacks, theme }) => {
3216
4136
  const { close, reference } = useChatUI();
4137
+ const { isOpen: isGalleryOpen, closeGallery } = useGallery();
3217
4138
  const threads = adapter.threads.list(reference);
3218
- const initialThreadId = React10__default.default.useMemo(
4139
+ const initialThreadId = React16__default.default.useMemo(
3219
4140
  () => coalesceThreadId(reference, threads),
3220
4141
  // eslint-disable-next-line react-hooks/exhaustive-deps
3221
4142
  [reference]
3222
4143
  );
3223
- const [activeId] = React10__default.default.useState(initialThreadId);
4144
+ const [activeId] = React16__default.default.useState(initialThreadId);
3224
4145
  const activeThread = threads.find((t) => t.id === activeId);
3225
4146
  const isVerified = activeThread?.badge === true;
3226
4147
  const meta = reference?.meta ?? {};
@@ -3228,12 +4149,13 @@ var SinglePopup = ({ adapter, uiCallbacks, theme }) => {
3228
4149
  const title = meta.title ?? activeThread?.title ?? "Unknown";
3229
4150
  const online = meta.online ?? activeThread?.online ?? true;
3230
4151
  const subtitle = meta.subtitle ?? "Customer";
3231
- const [messages, setMessages] = React10__default.default.useState(
4152
+ const [messages, setMessages] = React16__default.default.useState(
3232
4153
  () => activeId ? adapter.messages.list(activeId) : []
3233
4154
  );
3234
- const [scrollKey, setScrollKey] = React10__default.default.useState(Date.now());
3235
- const [replyTo, setReplyTo] = React10__default.default.useState(void 0);
3236
- React10__default.default.useEffect(() => {
4155
+ const [scrollKey, setScrollKey] = React16__default.default.useState(Date.now());
4156
+ const [replyTo, setReplyTo] = React16__default.default.useState(void 0);
4157
+ const [showDelete, setShowDelete] = React16__default.default.useState(false);
4158
+ React16__default.default.useEffect(() => {
3237
4159
  if (!activeId || !adapter.messages.subscribe) return;
3238
4160
  const unsub = adapter.messages.subscribe(activeId, () => {
3239
4161
  setMessages(adapter.messages.list(activeId));
@@ -3241,11 +4163,25 @@ var SinglePopup = ({ adapter, uiCallbacks, theme }) => {
3241
4163
  });
3242
4164
  return unsub;
3243
4165
  }, [activeId, adapter]);
3244
- const handleAfterSend = React10__default.default.useCallback(() => {
4166
+ const handleAfterSend = React16__default.default.useCallback(() => {
3245
4167
  setMessages(adapter.messages.list(activeId));
3246
4168
  setScrollKey(Date.now());
3247
4169
  setReplyTo(void 0);
3248
4170
  }, [activeId, adapter]);
4171
+ const handleConfirmDelete = React16__default.default.useCallback(() => {
4172
+ if (!activeId) {
4173
+ setShowDelete(false);
4174
+ return;
4175
+ }
4176
+ adapter.threads.delete(activeId);
4177
+ uiCallbacks?.showToast?.({
4178
+ type: "success",
4179
+ title: "Chat Deleted",
4180
+ message: "The chat has been deleted successfully."
4181
+ });
4182
+ setShowDelete(false);
4183
+ close();
4184
+ }, [activeId, adapter, uiCallbacks, close]);
3249
4185
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed bottom-4 right-4 z-[10002]", children: [
3250
4186
  /* @__PURE__ */ jsxRuntime.jsx(
3251
4187
  framerMotion.motion.button,
@@ -3297,15 +4233,33 @@ var SinglePopup = ({ adapter, uiCallbacks, theme }) => {
3297
4233
  subtitleVariant: "muted"
3298
4234
  }
3299
4235
  ),
3300
- right: /* @__PURE__ */ jsxRuntime.jsx(
3301
- "button",
3302
- {
3303
- type: "button",
3304
- onClick: close,
3305
- className: "flex h-[34px] w-[34px] items-center justify-center rounded-full bg-white text-black shadow-[0px_2px_4px_0px_#A5A3AE4D] hover:bg-black/5 hover:text-[var(--color-banbox-warning)] cursor-pointer border-none",
3306
- children: /* @__PURE__ */ jsxRuntime.jsx(ChatXIcon, { className: "h-6 w-6" })
3307
- }
3308
- )
4236
+ right: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
4237
+ uiCallbacks?.renderKebabMenu ? uiCallbacks.renderKebabMenu({
4238
+ pinned: Boolean(activeThread?.pinned),
4239
+ onPinToggle: () => {
4240
+ if (activeId) adapter.threads.pin(activeId, !activeThread?.pinned);
4241
+ },
4242
+ onDelete: () => setShowDelete(true)
4243
+ }) : /* @__PURE__ */ jsxRuntime.jsx(
4244
+ ChatKebabMenu_default,
4245
+ {
4246
+ pinned: Boolean(activeThread?.pinned),
4247
+ onPinToggle: () => {
4248
+ if (activeId) adapter.threads.pin(activeId, !activeThread?.pinned);
4249
+ },
4250
+ onDelete: () => setShowDelete(true)
4251
+ }
4252
+ ),
4253
+ /* @__PURE__ */ jsxRuntime.jsx(
4254
+ "button",
4255
+ {
4256
+ type: "button",
4257
+ onClick: close,
4258
+ className: "flex h-[34px] w-[34px] items-center justify-center rounded-full bg-white text-black shadow-[0px_2px_4px_0px_#A5A3AE4D] hover:bg-black/5 hover:text-[var(--color-banbox-warning)] cursor-pointer border-none",
4259
+ children: /* @__PURE__ */ jsxRuntime.jsx(ChatXIcon, { className: "h-6 w-6" })
4260
+ }
4261
+ )
4262
+ ] })
3309
4263
  }
3310
4264
  ) }),
3311
4265
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 min-h-0", children: /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3360,7 +4314,16 @@ var SinglePopup = ({ adapter, uiCallbacks, theme }) => {
3360
4314
  }
3361
4315
  )
3362
4316
  }
3363
- )
4317
+ ),
4318
+ /* @__PURE__ */ jsxRuntime.jsx(
4319
+ ChatConfirmModal,
4320
+ {
4321
+ open: showDelete,
4322
+ onClose: () => setShowDelete(false),
4323
+ onConfirm: handleConfirmDelete
4324
+ }
4325
+ ),
4326
+ /* @__PURE__ */ jsxRuntime.jsx(ChatImagePreviewModal_default, { isOpen: isGalleryOpen, onClose: closeGallery })
3364
4327
  ] });
3365
4328
  };
3366
4329
  var SinglePopup_default = SinglePopup;
@@ -3393,11 +4356,11 @@ function ChatRoot({ adapter, uiCallbacks, theme }) {
3393
4356
  );
3394
4357
  }
3395
4358
  function ChatUIProvider({ children }) {
3396
- const [isOpen, setOpen] = React10.useState(false);
3397
- const [variant, setVariant] = React10.useState("inbox");
3398
- const [reference, setReference] = React10.useState();
3399
- const [selectedThreadId, setSelected] = React10.useState(null);
3400
- const api = React10.useMemo(
4359
+ const [isOpen, setOpen] = React16.useState(false);
4360
+ const [variant, setVariant] = React16.useState("inbox");
4361
+ const [reference, setReference] = React16.useState();
4362
+ const [selectedThreadId, setSelected] = React16.useState(null);
4363
+ const api = React16.useMemo(
3401
4364
  () => ({
3402
4365
  isOpen,
3403
4366
  variant,
@@ -3463,6 +4426,7 @@ exports.ChatFooter = ChatFooter_default;
3463
4426
  exports.ChatHeader = ChatHeader;
3464
4427
  exports.ChatIdentity = ChatIdentity_default;
3465
4428
  exports.ChatInquiryBar = ChatInquiryBar_default;
4429
+ exports.ChatKebabMenu = ChatKebabMenu_default;
3466
4430
  exports.ChatListHeader = ChatListHeader_default;
3467
4431
  exports.ChatMessageItem = ChatMessageItem_default;
3468
4432
  exports.ChatRoot = ChatRoot;