{"version":3,"sources":["../src/components/base-ai-textarea/use-add-branding-css.tsx"],"sourcesContent":["import { useEffect } from \"react\";\n\nexport function useAddBrandingCss(\n  suggestionStyleAugmented: React.CSSProperties,\n  disableBranding: boolean | undefined,\n) {\n  const cssSelector = \".ai-textarea.with-branding\";\n  useEffect(() => {\n    if (disableBranding) {\n      return;\n    }\n\n    // ---\n    // 1: Add the CSS to the DOM\n    const styleEl = document.createElement(\"style\");\n    styleEl.id = \"dynamic-styles\";\n\n    // Build the CSS string dynamically\n    let dynamicStyles = Object.entries(suggestionStyleAugmented)\n      .map(([key, value]) => {\n        const kebabCaseKey = key.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, \"$1-$2\").toLowerCase();\n        return `${kebabCaseKey}: ${value};`;\n      })\n      .join(\" \");\n\n    // Append overrides for italics and font-size\n    dynamicStyles += `font-style: normal; font-size: x-small;`;\n    dynamicStyles += `content: \"VN SDK\";`;\n    dynamicStyles += `bottom: 6px;`;\n    dynamicStyles += `right: 6px;`;\n    dynamicStyles += `pointer-events: none;`;\n    dynamicStyles += `font-weight: 200;`;\n    dynamicStyles += `padding: 0;`;\n    dynamicStyles += `margin: 0;`;\n    dynamicStyles += `border: 0;`;\n    dynamicStyles += `line-height: 1;`;\n    dynamicStyles += `position: absolute;`;\n\n    // Append it to the ::after class\n    styleEl.innerHTML = `\n      ${cssSelector}::after {\n        ${dynamicStyles}\n      }\n    `;\n\n    document.head.appendChild(styleEl);\n\n    // ---\n    // 2: Add the scroll listener (to keep the branding in the bottom right as the textarea scrolls)\n    const textarea = document.querySelector(cssSelector);\n    const handleScroll = () => {\n      const styleEl = document.getElementById(\"dynamic-styles\");\n      if (styleEl && textarea) {\n        const offsetFromBottom = -textarea.scrollTop + 6;\n        const offsetFromRight = -textarea.scrollLeft + 6;\n        styleEl.innerHTML = `\n          ${cssSelector}::after {\n            ${dynamicStyles}\n            bottom: ${offsetFromBottom}px;\n            right: ${offsetFromRight}px;\n          }\n        `;\n      }\n    };\n\n    textarea?.addEventListener(\"scroll\", handleScroll);\n\n    // Cleanup\n    return () => {\n      document.getElementById(\"dynamic-styles\")?.remove();\n      textarea?.removeEventListener(\"scroll\", handleScroll);\n    };\n  }, [disableBranding, suggestionStyleAugmented]);\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAEnB,SAAS,kBACd,0BACA,iBACA;AACA,QAAM,cAAc;AACpB,YAAU,MAAM;AACd,QAAI,iBAAiB;AACnB;AAAA,IACF;AAIA,UAAM,UAAU,SAAS,cAAc,OAAO;AAC9C,YAAQ,KAAK;AAGb,QAAI,gBAAgB,OAAO,QAAQ,wBAAwB,EACxD,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACrB,YAAM,eAAe,IAAI,QAAQ,gCAAgC,OAAO,EAAE,YAAY;AACtF,aAAO,GAAG,iBAAiB;AAAA,IAC7B,CAAC,EACA,KAAK,GAAG;AAGX,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AAGjB,YAAQ,YAAY;AAAA,QAChB;AAAA,UACE;AAAA;AAAA;AAIN,aAAS,KAAK,YAAY,OAAO;AAIjC,UAAM,WAAW,SAAS,cAAc,WAAW;AACnD,UAAM,eAAe,MAAM;AACzB,YAAMA,WAAU,SAAS,eAAe,gBAAgB;AACxD,UAAIA,YAAW,UAAU;AACvB,cAAM,mBAAmB,CAAC,SAAS,YAAY;AAC/C,cAAM,kBAAkB,CAAC,SAAS,aAAa;AAC/C,QAAAA,SAAQ,YAAY;AAAA,YAChB;AAAA,cACE;AAAA,sBACQ;AAAA,qBACD;AAAA;AAAA;AAAA,MAGf;AAAA,IACF;AAEA,yCAAU,iBAAiB,UAAU;AAGrC,WAAO,MAAM;AApEjB;AAqEM,qBAAS,eAAe,gBAAgB,MAAxC,mBAA2C;AAC3C,2CAAU,oBAAoB,UAAU;AAAA,IAC1C;AAAA,EACF,GAAG,CAAC,iBAAiB,wBAAwB,CAAC;AAChD;","names":["styleEl"]}