Plugin Directory

Changeset 3307254


Ignore:
Timestamp:
06/05/2025 08:35:20 PM (9 months ago)
Author:
echoai
Message:

Update EchoAI plugin to version 2.2.3

Location:
echoai
Files:
158 added
18 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • echoai/trunk/build/blocks/chat/index.asset.php

    r3303250 r3307254  
    1 <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-i18n'), 'version' => 'ef255670526f95e516e8');
     1<?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-i18n'), 'version' => '82e7b6b6ad83155552a6');
  • echoai/trunk/build/blocks/chat/index.js

    r3303250 r3307254  
    1 /******/ (() => { // webpackBootstrap
    2 /******/    "use strict";
    3 /******/    var __webpack_modules__ = ({
    4 
    5 /***/ "./images/logo.svg":
    6 /*!*************************!*\
    7   !*** ./images/logo.svg ***!
    8   \*************************/
    9 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
    10 
    11 __webpack_require__.r(__webpack_exports__);
    12 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
    13 /* harmony export */   ReactComponent: () => (/* binding */ SvgLogo),
    14 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
    15 /* harmony export */ });
    16 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
    17 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
    18 var _path, _path2, _path3, _path4, _path5, _path6;
    19 function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
    20 
    21 var SvgLogo = function SvgLogo(props) {
    22   return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
    23     xmlns: "http://www.w3.org/2000/svg",
    24     width: 126,
    25     height: 32,
    26     fill: "none"
    27   }, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
    28     fill: "#BD4495",
    29     fillRule: "evenodd",
    30     d: "M14.738 29.71c8.139 0 14.737-6.65 14.737-14.855S22.877 0 14.738 0C6.598 0 0 6.65 0 14.855c0 2.066.418 4.033 1.174 5.82V32l6.845-3.92a14.6 14.6 0 0 0 6.719 1.63",
    31     clipRule: "evenodd"
    32   })), _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
    33     fill: "#fff",
    34     d: "M13.12 14.376c1.296 0 2.45-1.617 2.45-2.895V9.277c0-1.607-1.336-2.916-2.975-2.916-1.425 0-2.618.984-2.907 2.293-1.782.28-3.144 1.799-3.144 3.615q0 .248.04.504a4.23 4.23 0 0 0-.81 2.493c0 .824.173 1.572.507 2.204.503-.877 1.336-1.558 2.253-1.745a.67.67 0 0 1 .788.52.67.67 0 0 1-.52.789c-.682.138-1.336.841-1.586 1.607l.005.005q-.089.366-.09.739c0 1.38.878 2.569 2.116 3.054a3.281 3.281 0 0 1 .436-1.928.668.668 0 0 1 1.153.677 1.9 1.9 0 0 0-.173 1.563v.009a2.59 2.59 0 0 0 2.315 1.411c1.43 0 2.591-1.14 2.591-2.538v-7.066c-.659.681-1.509 1.144-2.449 1.144a.667.667 0 1 1 0-1.335m-2.987-.46a.666.666 0 0 1-.784-.525c-.231-1.157.192-3.032 2.307-3.455a.667.667 0 1 1 .258 1.31c-1.527.307-1.287 1.723-1.256 1.887a.665.665 0 0 1-.525.784m3.197 7.045a.666.666 0 1 1-1.31-.258c.299-1.496-.658-1.844-.85-1.897a.673.673 0 0 1-.472-.815.664.664 0 0 1 .802-.48c.832.208 2.28 1.197 1.83 3.45M20.356 10.533l-1.79 1.79a2.4 2.4 0 0 1-1.66.712V11.7c.27-.014.525-.13.716-.321l1.79-1.79a.664.664 0 0 1 .944 0 .664.664 0 0 1 0 .944M21.229 14.598h-4.324v1.336h4.324z"
    35   })), _path3 || (_path3 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
    36     fill: "#fff",
    37     d: "M20.467 10.813a1.781 1.781 0 1 0 0-3.562 1.781 1.781 0 0 0 0 3.562M20.356 20.943a.65.65 0 0 1-.472.196.66.66 0 0 1-.472-.196l-1.79-1.79a1.1 1.1 0 0 0-.717-.32v-1.336a2.4 2.4 0 0 1 1.661.712l1.79 1.79a.664.664 0 0 1 0 .944"
    38   })), _path4 || (_path4 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
    39     fill: "#fff",
    40     d: "M20.467 23.28a1.781 1.781 0 1 0 0-3.561 1.781 1.781 0 0 0 0 3.562M22.248 17.047a1.781 1.781 0 1 0 0-3.562 1.781 1.781 0 0 0 0 3.562"
    41   })), _path5 || (_path5 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
    42     fill: "#BD4495",
    43     d: "M125.241 6.837V24.81h-4.88V6.837zM106.595 24.811h-5.266l5.933-17.974h6.67l5.933 17.974h-5.266l-3.932-13.024h-.14zm-.983-7.091h9.9v3.65h-9.9z"
    44   })), _path6 || (_path6 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
    45     fill: "#072C59",
    46     d: "M102.038 15.824q0 3.002-1.167 5.064-1.168 2.055-3.151 3.116-1.984 1.053-4.424 1.053-2.457 0-4.44-1.062-1.976-1.07-3.143-3.124-1.158-2.063-1.158-5.047 0-3.001 1.158-5.055 1.168-2.063 3.142-3.116Q90.84 6.59 93.296 6.59q2.44 0 4.424 1.062 1.983 1.053 3.151 3.116 1.167 2.053 1.167 5.055m-5.02 0q0-1.616-.43-2.72-.422-1.116-1.255-1.686-.826-.58-2.037-.58t-2.045.58q-.825.57-1.255 1.685-.42 1.106-.421 2.721 0 1.616.421 2.73.43 1.106 1.255 1.685.834.57 2.045.57 1.212 0 2.036-.57.834-.58 1.256-1.685.43-1.114.43-2.73M67.324 24.811V6.837h4.88v7.021h6.46V6.837h4.88V24.81h-4.88V17.79h-6.46v7.021zM66.346 13.577h-4.95a3.4 3.4 0 0 0-.281-1.114 2.5 2.5 0 0 0-.615-.86 2.6 2.6 0 0 0-.939-.562 3.6 3.6 0 0 0-1.255-.202q-1.228 0-2.08.597-.843.597-1.281 1.711-.43 1.115-.43 2.677 0 1.65.438 2.765.448 1.106 1.29 1.667.843.553 2.028.553.675 0 1.211-.167.535-.175.93-.5a2.6 2.6 0 0 0 .641-.781q.255-.465.343-1.044l4.95.035q-.088 1.14-.641 2.326a7.6 7.6 0 0 1-1.571 2.176q-1.01.992-2.501 1.598-1.492.605-3.467.605-2.475 0-4.441-1.062-1.957-1.062-3.099-3.124-1.131-2.063-1.132-5.047 0-3.001 1.159-5.055 1.158-2.063 3.124-3.116 1.966-1.062 4.389-1.062 1.703 0 3.133.465a7.5 7.5 0 0 1 2.51 1.36 6.7 6.7 0 0 1 1.738 2.186q.658 1.3.799 2.975M35.425 24.811V6.837H48.38v3.932h-8.075v3.089h7.408v3.932h-7.408v3.09h8.04v3.931z"
    47   })));
    48 };
    49 
    50 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI2IiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwIDAgMTI2IDMyIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE0LjczNzYgMjkuNzEwMUMyMi44NzcgMjkuNzEwMSAyOS40NzUyIDIzLjA1OTMgMjkuNDc1MiAxNC44NTVDMjkuNDc1MiA2LjY1MDgzIDIyLjg3NyAwIDE0LjczNzYgMEM2LjU5ODI1IDAgMCA2LjY1MDgzIDAgMTQuODU1QzAgMTYuOTIwOSAwLjQxODM1MSAxOC44ODgyIDEuMTc0MzIgMjAuNjc1N1YzMkw4LjAxOTIxIDI4LjA4MDNDMTAuMDMzOCAyOS4xMjIyIDEyLjMxNzYgMjkuNzEwMSAxNC43Mzc2IDI5LjcxMDFaIiBmaWxsPSIjQkQ0NDk1Ii8+CjxwYXRoIGQ9Ik0xMy4xMjA1IDE0LjM3NTVDMTQuNDE2MiAxNC4zNzU1IDE1LjU2OTQgMTIuNzU5MiAxNS41Njk0IDExLjQ4MTNWOS4yNzczQzE1LjU2OTQgNy42Njk5MSAxNC4yMzM2IDYuMzYwODUgMTIuNTk1MSA2LjM2MDg1QzExLjE3MDIgNi4zNjA4NSA5Ljk3Njk0IDcuMzQ0ODcgOS42ODc1MiA4LjY1Mzk0QzcuOTA2NDggOC45MzQ0NSA2LjU0Mzk4IDEwLjQ1MjggNi41NDM5OCAxMi4yNjk0QzYuNTQzOTggMTIuNDM0MiA2LjU1NzM0IDEyLjYwMzQgNi41ODQwNSAxMi43NzI2QzYuMDQ5NzQgMTMuNTE2MiA1Ljc3MzY4IDE0LjM3MTEgNS43NzM2OCAxNS4yNjZDNS43NzM2OCAxNi4wODk4IDUuOTQ3MzMgMTYuODM3OCA2LjI4MTI4IDE3LjQ3MDFDNi43ODQ0MiAxNi41OTI5IDcuNjE3MDYgMTUuOTExNyA4LjUzNDI5IDE1LjcyNDdDOC44OTQ5NSAxNS42NTM0IDkuMjUxMTYgMTUuODg1IDkuMzIyNCAxNi4yNDU2QzkuMzkzNjUgMTYuNjA2MyA5LjE2MjExIDE2Ljk2MjUgOC44MDE0NSAxNy4wMzM3QzguMTIwMiAxNy4xNzE4IDcuNDY1NjcgMTcuODc1MyA3LjIxNjMyIDE4LjY0MTFMNy4yMjA3OCAxOC42NDU2QzcuMTYyODkgMTguODkwNSA3LjEzMTcyIDE5LjEzNTQgNy4xMzE3MiAxOS4zODQ3QzcuMTMxNzIgMjAuNzY1IDguMDA4ODkgMjEuOTUzOCA5LjI0NjcxIDIyLjQzOTJDOS4yMzc4IDIyLjM1MDEgOS4yMzMzNSAyMi4yNTY2IDkuMjMzMzUgMjIuMTY3NkM5LjIzMzM1IDIxLjU4NDMgOS4zODkxOSAyMS4wMTQ0IDkuNjgzMDYgMjAuNTExMkM5Ljg3NDUzIDIwLjE5MDYgMTAuMjg0MiAyMC4wODgyIDEwLjYwMDMgMjAuMjc1MkMxMC45MTY0IDIwLjQ2MjIgMTEuMDIzMyAyMC44NzE5IDEwLjgzNjMgMjEuMTg4QzEwLjY1ODIgMjEuNDg2MyAxMC41NjkxIDIxLjgyNDcgMTAuNTY5MSAyMi4xNjc2QzEwLjU2OTEgMjIuMzcyNCAxMC42MDAzIDIyLjU2ODMgMTAuNjYyNiAyMi43NTA5QzEwLjY2MjYgMjIuNzU1MyAxMC42NjI2IDIyLjc1OTggMTAuNjYyNiAyMi43NTk4QzExLjA5MDEgMjMuNjA1OCAxMS45NzYyIDI0LjE3MTIgMTIuOTc4IDI0LjE3MTJDMTQuNDA3MyAyNC4xNzEyIDE1LjU2OTQgMjMuMDMxNCAxNS41Njk0IDIxLjYzMzNWMTQuNTY3QzE0LjkxMDQgMTUuMjQ4MiAxNC4wNiAxNS43MTEzIDEzLjEyMDUgMTUuNzExM0MxMi43NTA5IDE1LjcxMTMgMTIuNDUyNiAxNS40MTMgMTIuNDUyNiAxNS4wNDM0QzEyLjQ1MjYgMTQuNjczOCAxMi43NTA5IDE0LjM3NTUgMTMuMTIwNSAxNC4zNzU1Wk0xMC4xMzI4IDEzLjkxNjlDMTAuMDkyNyAxMy45MjU4IDEwLjA0ODIgMTMuOTMwMyAxMC4wMDM3IDEzLjkzMDNDOS42OTE5NyAxMy45MzAzIDkuNDExNDYgMTMuNzEyMSA5LjM0OTEyIDEzLjM5MTVDOS4xMTc1OCAxMi4yMzM4IDkuNTQwNTggMTAuMzU5MyAxMS42NTU2IDkuOTM2MjhDMTIuMDExOCA5Ljg2NTA0IDEyLjM2OCAxMC4wOTY2IDEyLjQzOTIgMTAuNDYxN0MxMi41MTA1IDEwLjgyMjQgMTIuMjc4OSAxMS4xNzQxIDExLjkxMzggMTEuMjQ1M0MxMC4zODY2IDExLjU1MjYgMTAuNjI3IDEyLjk2ODUgMTAuNjU4MiAxMy4xMzMzQzEwLjcyOTQgMTMuNDkzOSAxMC40OTc5IDEzLjg0NTcgMTAuMTMyOCAxMy45MTY5Wk0xMy4zMjk3IDIwLjk2MDlDMTMuMjY3NCAyMS4yODE1IDEyLjk4NjkgMjEuNDk5NyAxMi42NzUyIDIxLjQ5OTdDMTIuNjMwNyAyMS40OTk3IDEyLjU4NjIgMjEuNDk1MiAxMi41NDYxIDIxLjQ4NjNDMTIuMTgxIDIxLjQxNTEgMTEuOTQ5NCAyMS4wNjMzIDEyLjAyMDcgMjAuNzAyN0MxMi4zMTkgMTkuMjA2NiAxMS4zNjE3IDE4Ljg1OTMgMTEuMTcwMiAxOC44MDU5QzEwLjgxODUgMTguNzA3OSAxMC42MDQ4IDE4LjM0MjggMTAuNjk4MyAxNy45OTFDMTAuNzkxOCAxNy42MzkzIDExLjE0MzUgMTcuNDIxMSAxMS40OTk3IDE3LjUxMDJDMTIuMzMyNCAxNy43MTk0IDEzLjc3OTUgMTguNzA3OSAxMy4zMjk3IDIwLjk2MDlaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjAuMzU1OSAxMC41MzI5TDE4LjU2NiAxMi4zMjI5QzE4LjEyMDcgMTIuNzY4MSAxNy41MzMgMTMuMDIxOSAxNi45MDUyIDEzLjAzNTNWMTEuNjk5NUMxNy4xNzY4IDExLjY4NjIgMTcuNDMwNiAxMS41NzA0IDE3LjYyMiAxMS4zNzg5TDE5LjQxMiA5LjU4ODk4QzE5LjY3NDcgOS4zMjYyOCAyMC4wOTc3IDkuMzI2MjggMjAuMzU1OSA5LjU4ODk4QzIwLjYxODYgOS44NDcyMyAyMC42MTg2IDEwLjI3MDIgMjAuMzU1OSAxMC41MzI5WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIxLjIyODYgMTQuNTk4MkgxNi45MDUyVjE1LjkzMzlIMjEuMjI4NlYxNC41OTgyWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIwLjQ2NzMgMTAuODEzNEMyMS40NTEgMTAuODEzNCAyMi4yNDg0IDEwLjAxNiAyMi4yNDg0IDkuMDMyNDFDMjIuMjQ4NCA4LjA0ODc2IDIxLjQ1MSA3LjI1MTM3IDIwLjQ2NzMgNy4yNTEzN0MxOS40ODM3IDcuMjUxMzcgMTguNjg2MyA4LjA0ODc2IDE4LjY4NjMgOS4wMzI0MUMxOC42ODYzIDEwLjAxNiAxOS40ODM3IDEwLjgxMzQgMjAuNDY3MyAxMC44MTM0WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIwLjM1NTkgMjAuOTQzMUMyMC4yMjY4IDIxLjA3NjcgMjAuMDU3NiAyMS4xMzkgMTkuODgzOSAyMS4xMzlDMTkuNzE0NyAyMS4xMzkgMTkuNTQ1NSAyMS4wNzY3IDE5LjQxMiAyMC45NDMxTDE3LjYyMiAxOS4xNTMyQzE3LjQzMDYgMTguOTYxNyAxNy4xNzY4IDE4Ljg0NTkgMTYuOTA1MiAxOC44MzI2VjE3LjQ5NjhDMTcuNTMzIDE3LjUxMDIgMTguMTIwNyAxNy43NjQgMTguNTY2IDE4LjIwOTJMMjAuMzU1OSAxOS45OTkyQzIwLjYxODYgMjAuMjYxOSAyMC42MTg2IDIwLjY4NDkgMjAuMzU1OSAyMC45NDMxWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIwLjQ2NzMgMjMuMjgwN0MyMS40NTEgMjMuMjgwNyAyMi4yNDg0IDIyLjQ4MzMgMjIuMjQ4NCAyMS40OTk3QzIyLjI0ODQgMjAuNTE2IDIxLjQ1MSAxOS43MTg2IDIwLjQ2NzMgMTkuNzE4NkMxOS40ODM3IDE5LjcxODYgMTguNjg2MyAyMC41MTYgMTguNjg2MyAyMS40OTk3QzE4LjY4NjMgMjIuNDgzMyAxOS40ODM3IDIzLjI4MDcgMjAuNDY3MyAyMy4yODA3WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIyLjI0ODMgMTcuMDQ3MUMyMy4yMzIgMTcuMDQ3MSAyNC4wMjk0IDE2LjI0OTcgMjQuMDI5NCAxNS4yNjZDMjQuMDI5NCAxNC4yODI0IDIzLjIzMiAxMy40ODUgMjIuMjQ4MyAxMy40ODVDMjEuMjY0NyAxMy40ODUgMjAuNDY3MyAxNC4yODI0IDIwLjQ2NzMgMTUuMjY2QzIwLjQ2NzMgMTYuMjQ5NyAyMS4yNjQ3IDE3LjA0NzEgMjIuMjQ4MyAxNy4wNDcxWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTEyNS4yNDEgNi44MzY1NFYyNC44MTE0SDEyMC4zNjFWNi44MzY1NEgxMjUuMjQxWiIgZmlsbD0iI0JENDQ5NSIvPgo8cGF0aCBkPSJNMTA2LjU5NSAyNC44MTE0SDEwMS4zMjlMMTA3LjI2MiA2LjgzNjU0SDExMy45MzJMMTE5Ljg2NSAyNC44MTE0SDExNC41OTlMMTEwLjY2NyAxMS43ODY3SDExMC41MjdMMTA2LjU5NSAyNC44MTE0Wk0xMDUuNjEyIDE3LjcxOThIMTE1LjUxMlYyMS4zNzA5SDEwNS42MTJWMTcuNzE5OFoiIGZpbGw9IiNCRDQ0OTUiLz4KPHBhdGggZD0iTTEwMi4wMzggMTUuODI0QzEwMi4wMzggMTcuODI1MSAxMDEuNjQ5IDE5LjUxMzIgMTAwLjg3MSAyMC44ODgyQzEwMC4wOTIgMjIuMjU3NCA5OS4wNDIxIDIzLjI5NiA5Ny43MTk4IDI0LjAwNEM5Ni4zOTc0IDI0LjcwNjEgOTQuOTIyOSAyNS4wNTcyIDkzLjI5NjMgMjUuMDU3MkM5MS42NTc5IDI1LjA1NzIgOTAuMTc3NiAyNC43MDMyIDg4Ljg1NTIgMjMuOTk1MkM4Ny41Mzg3IDIzLjI4MTMgODYuNDkxMyAyMi4yMzk4IDg1LjcxMzEgMjAuODcwNkM4NC45NDA3IDE5LjQ5NTYgODQuNTU0NiAxNy44MTM0IDg0LjU1NDYgMTUuODI0Qzg0LjU1NDYgMTMuODIyOSA4NC45NDA3IDEyLjEzNzcgODUuNzEzMSAxMC43Njg1Qzg2LjQ5MTMgOS4zOTM1MSA4Ny41Mzg3IDguMzU0OTMgODguODU1MiA3LjY1Mjc4QzkwLjE3NzYgNi45NDQ3OSA5MS42NTc5IDYuNTkwNzkgOTMuMjk2MyA2LjU5MDc5Qzk0LjkyMjkgNi41OTA3OSA5Ni4zOTc0IDYuOTQ0NzkgOTcuNzE5OCA3LjY1Mjc4Qzk5LjA0MjEgOC4zNTQ5MyAxMDAuMDkyIDkuMzkzNTEgMTAwLjg3MSAxMC43Njg1QzEwMS42NDkgMTIuMTM3NyAxMDIuMDM4IDEzLjgyMjkgMTAyLjAzOCAxNS44MjRaTTk3LjAxNzYgMTUuODI0Qzk3LjAxNzYgMTQuNzQ3NCA5Ni44NzQzIDEzLjg0MDQgOTYuNTg3NiAxMy4xMDMyQzk2LjMwNjcgMTIuMzYwMSA5NS44ODgzIDExLjc5ODQgOTUuMzMyNSAxMS40MThDOTQuNzgyNSAxMS4wMzE5IDk0LjEwMzcgMTAuODM4OCA5My4yOTYzIDEwLjgzODhDOTIuNDg4OCAxMC44Mzg4IDkxLjgwNzEgMTEuMDMxOSA5MS4yNTEzIDExLjQxOEM5MC43MDEzIDExLjc5ODQgOTAuMjgyOSAxMi4zNjAxIDg5Ljk5NjIgMTMuMTAzMkM4OS43MTUzIDEzLjg0MDQgODkuNTc0OSAxNC43NDc0IDg5LjU3NDkgMTUuODI0Qzg5LjU3NDkgMTYuOTAwNiA4OS43MTUzIDE3LjgxMDUgODkuOTk2MiAxOC41NTM2QzkwLjI4MjkgMTkuMjkwOCA5MC43MDEzIDE5Ljg1MjUgOTEuMjUxMyAyMC4yMzg3QzkxLjgwNzEgMjAuNjE5IDkyLjQ4ODggMjAuODA5MiA5My4yOTYzIDIwLjgwOTJDOTQuMTAzNyAyMC44MDkyIDk0Ljc4MjUgMjAuNjE5IDk1LjMzMjUgMjAuMjM4N0M5NS44ODgzIDE5Ljg1MjUgOTYuMzA2NyAxOS4yOTA4IDk2LjU4NzYgMTguNTUzNkM5Ni44NzQzIDE3LjgxMDUgOTcuMDE3NiAxNi45MDA2IDk3LjAxNzYgMTUuODI0WiIgZmlsbD0iIzA3MkM1OSIvPgo8cGF0aCBkPSJNNjcuMzIzOSAyNC44MTE0VjYuODM2NTRINzIuMjAzOFYxMy44NThINzguNjYzNVY2LjgzNjU0SDgzLjU0MzRWMjQuODExNEg3OC42NjM1VjE3Ljc5SDcyLjIwMzhWMjQuODExNEg2Ny4zMjM5WiIgZmlsbD0iIzA3MkM1OSIvPgo8cGF0aCBkPSJNNjYuMzQ1NyAxMy41NzcxSDYxLjM5NTZDNjEuMzYwNSAxMy4xNjc1IDYxLjI2NjkgMTIuNzk2IDYxLjExNDcgMTIuNDYyNUM2MC45Njg1IDEyLjEyOSA2MC43NjM3IDExLjg0MjIgNjAuNTAwNCAxMS42MDIzQzYwLjI0MjkgMTEuMzU2NiA1OS45Mjk5IDExLjE2OTQgNTkuNTYxMyAxMS4wNDA2QzU5LjE5MjYgMTAuOTA2IDU4Ljc3NDMgMTAuODM4OCA1OC4zMDYyIDEwLjgzODhDNTcuNDg3IDEwLjgzODggNTYuNzkzNiAxMS4wMzc3IDU2LjIyNjEgMTEuNDM1NkM1NS42NjQ0IDExLjgzMzUgNTUuMjM3MiAxMi40MDQgNTQuOTQ0NyAxMy4xNDcxQzU0LjY1NzkgMTMuODkwMiA1NC41MTQ2IDE0Ljc4MjUgNTQuNTE0NiAxNS44MjRDNTQuNTE0NiAxNi45MjQgNTQuNjYwOSAxNy44NDU2IDU0Ljk1MzQgMTguNTg4N0M1NS4yNTE4IDE5LjMyNTkgNTUuNjgxOSAxOS44ODE4IDU2LjI0MzYgMjAuMjU2M0M1Ni44MDUzIDIwLjYyNDkgNTcuNDgxMiAyMC44MDkyIDU4LjI3MTEgMjAuODA5MkM1OC43MjE2IDIwLjgwOTIgNTkuMTI1MyAyMC43NTM2IDU5LjQ4MjMgMjAuNjQyNEM1OS44MzkyIDIwLjUyNTQgNjAuMTQ5MyAyMC4zNTg3IDYwLjQxMjYgMjAuMTQyMkM2MC42NzU5IDE5LjkyNTcgNjAuODg5NSAxOS42NjUzIDYxLjA1MzMgMTkuMzYxQzYxLjIyMyAxOS4wNTA5IDYxLjMzNzEgMTguNzAyOCA2MS4zOTU2IDE4LjMxNjZMNjYuMzQ1NyAxOC4zNTE3QzY2LjI4NzIgMTkuMTEyNCA2Ni4wNzM2IDE5Ljg4NzYgNjUuNzA1IDIwLjY3NzZDNjUuMzM2NCAyMS40NjE2IDY0LjgxMjcgMjIuMTg3MiA2NC4xMzQgMjIuODU0MkM2My40NjExIDIzLjUxNTQgNjIuNjI3MyAyNC4wNDc4IDYxLjYzMjYgMjQuNDUxNkM2MC42Mzc5IDI0Ljg1NTMgNTkuNDgyMyAyNS4wNTcyIDU4LjE2NTcgMjUuMDU3MkM1Ni41MTU3IDI1LjA1NzIgNTUuMDM1MyAyNC43MDMyIDUzLjcyNDcgMjMuOTk1MkM1Mi40MTk5IDIzLjI4NzIgNTEuMzg3MSAyMi4yNDU3IDUwLjYyNjUgMjAuODcwNkM0OS44NzE3IDE5LjQ5NTYgNDkuNDk0MyAxNy44MTM0IDQ5LjQ5NDMgMTUuODI0QzQ5LjQ5NDMgMTMuODIyOSA0OS44ODA0IDEyLjEzNzcgNTAuNjUyOCAxMC43Njg1QzUxLjQyNTIgOS4zOTM1MSA1Mi40NjY3IDguMzU0OTMgNTMuNzc3MyA3LjY1Mjc4QzU1LjA4OCA2Ljk0NDc5IDU2LjU1MDggNi41OTA3OSA1OC4xNjU3IDYuNTkwNzlDNTkuMzAwOSA2LjU5MDc5IDYwLjM0NTMgNi43NDU4NSA2MS4yOTkxIDcuMDU1OTZDNjIuMjUyOCA3LjM2NjA3IDYzLjA4OTUgNy44MTk1NCA2My44MDkyIDguNDE2MzZDNjQuNTI4OSA5LjAwNzM0IDY1LjEwODIgOS43MzU4MSA2NS41NDcgMTAuNjAxOEM2NS45ODU5IDExLjQ2NzggNjYuMjUyMSAxMi40NTk1IDY2LjM0NTcgMTMuNTc3MVoiIGZpbGw9IiMwNzJDNTkiLz4KPHBhdGggZD0iTTM1LjQyNTQgMjQuODExNFYxMC43Njg1VjYuODM2NTRINDguMzhWMTAuNzY4NUg0MC4zMDUzVjEzLjg1OEg0Ny43MTI5VjE3Ljc5SDQwLjMwNTNWMjAuODc5NEg0OC4zNDQ5VjI0LjgxMTRIMzUuNDI1NFoiIGZpbGw9IiMwNzJDNTkiLz4KPC9zdmc+Cg==");
    51 
    52 /***/ }),
    53 
    54 /***/ "./src/blocks/chat/block.json":
    55 /*!************************************!*\
    56   !*** ./src/blocks/chat/block.json ***!
    57   \************************************/
    58 /***/ ((module) => {
    59 
    60 module.exports = /*#__PURE__*/JSON.parse('{"$schema":"https://json.schemastore.org/block.json","apiVersion":2,"name":"echoai/chat","title":"EchoAI Chat","category":"widgets","keywords":["ai","chat","echoai","echo","chatbot","bot","assistant"],"attributes":{"height":{"type":"number","default":450},"backgroundColor":{"type":"string","default":"#fafafa"},"assistantId":{"type":"string","default":""}},"example":{"attributes":{"height":"450"}},"editorScript":"file:./index.js"}');
    61 
    62 /***/ }),
    63 
    64 /***/ "./src/blocks/chat/edit.js":
    65 /*!*********************************!*\
    66   !*** ./src/blocks/chat/edit.js ***!
    67   \*********************************/
    68 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
    69 
    70 __webpack_require__.r(__webpack_exports__);
    71 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
    72 /* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
    73 /* harmony export */ });
    74 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
    75 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
    76 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor");
    77 /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__);
    78 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
    79 /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__);
    80 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
    81 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);
    82 /* harmony import */ var _images_logo_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../images/logo.svg */ "./images/logo.svg");
    83 
    84 
    85 
    86 
    87 
    88 
    89 // Create a variable to hold the default assistant ID
    90 // This will be updated with actual ID when the component mounts
    91 let defaultAssistantId = '';
    92 const Edit = props => {
    93   const {
    94     attributes,
    95     setAttributes
    96   } = props;
    97   const [defaultId, setDefaultId] = React.useState('');
    98   let height = attributes.height || '500';
    99   let backgroundColor = attributes.backgroundColor || '#fafafa';
    100   let assistantId = attributes.assistantId || '';
    101 
    102   // When component mounts, try to fetch the default assistant ID using wp.apiFetch
    103   React.useEffect(() => {
    104     if (wp && wp.apiFetch) {
    105       wp.apiFetch({
    106         path: '/echoai/v1/config'
    107       }).then(response => {
    108         if (response && response.assistant_id) {
    109           setDefaultId(response.assistant_id);
    110           defaultAssistantId = response.assistant_id;
    111         }
    112       }).catch(error => {
    113         console.error('Error fetching Echo AI config', error);
    114       });
    115     }
    116   }, []);
    117   const handleHeightChange = newHeight => {
    118     if (newHeight > 1000) newHeight = 1000;
    119     if (newHeight < 200) newHeight = 200;
    120     setAttributes({
    121       height: newHeight
    122     });
    123   };
    124   const handleColorChange = newColor => {
    125     setAttributes({
    126       backgroundColor: newColor
    127     });
    128   };
    129   const handleAssistantIdChange = newAssistantId => {
    130     setAttributes({
    131       assistantId: newAssistantId
    132     });
    133   };
    134   const blockProps = (0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockProps)({
    135     style: {
    136       height: height + 'px'
    137     }
    138   });
    139   return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.InspectorControls, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.PanelBody, {
    140     title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Chat Settings', 'echoai')
    141   }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.__experimentalNumberControl, {
    142     label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Height (px)', 'echoai'),
    143     value: height,
    144     onChange: handleHeightChange,
    145     min: 200,
    146     max: 1000
    147   }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.TextControl, {
    148     label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Assistant ID', 'echoai'),
    149     help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Optional. Leave empty to use the default assistant.', 'echoai'),
    150     value: assistantId,
    151     onChange: handleAssistantIdChange
    152   })), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.PanelColorSettings, {
    153     title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Color Settings', 'echoai'),
    154     initialOpen: true,
    155     colorSettings: [{
    156       value: backgroundColor,
    157       onChange: handleColorChange,
    158       label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Background Color', 'echoai')
    159     }]
    160   })), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    161     ...blockProps
    162   }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    163     className: "flex flex-col items-center justify-center h-full rounded-3xl",
    164     style: {
    165       backgroundColor: backgroundColor
    166     }
    167   }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
    168     src: _images_logo_svg__WEBPACK_IMPORTED_MODULE_4__["default"],
    169     alt: "chat"
    170   }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("p", {
    171     className: "text-stone-500 font-semibold"
    172   }, "Assistant Placeholder"), assistantId ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    173     className: "mt-2 bg-accent p-3 rounded-lg border border-accent-foreground/10 max-w-xs"
    174   }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    175     className: "flex flex-col gap-2"
    176   }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    177     className: "flex items-center"
    178   }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("strong", {
    179     className: "mr-2 text-muted-foreground whitespace-nowrap text-xs"
    180   }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Custom Assistant ID:', 'echoai')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("code", {
    181     className: "bg-input/50 p-1.5 rounded text-xs font-mono uppercase text-foreground border border-accent-foreground/10"
    182   }, assistantId)), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", {
    183     href: `${window.echoaiConfig?.platformUrl || 'http://localhost:3000'}/dashboard/assistant/${assistantId}/settings`,
    184     className: "text-xs text-blue-600 hover:underline",
    185     target: "_blank",
    186     rel: "noopener noreferrer"
    187   }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('AI Assistant settings', 'echoai')))) : defaultId ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    188     className: "mt-2 bg-accent p-3 rounded-lg border border-accent-foreground/10 max-w-xs"
    189   }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    190     className: "flex flex-col gap-2"
    191   }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
    192     className: "flex items-center"
    193   }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("strong", {
    194     className: "mr-2 text-muted-foreground whitespace-nowrap text-xs"
    195   }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Default Assistant ID:', 'echoai')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("code", {
    196     className: "bg-input/50 p-1.5 rounded text-xs font-mono uppercase text-foreground border border-accent-foreground/10"
    197   }, defaultId)), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", {
    198     href: `${window.echoaiConfig?.platformUrl || 'http://localhost:3000'}/dashboard/assistant/${defaultId}/settings`,
    199     className: "text-xs text-blue-600 hover:underline",
    200     target: "_blank",
    201     rel: "noopener noreferrer"
    202   }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('AI Assistant settings', 'echoai')))) : (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("p", {
    203     className: "mt-1 text-xs text-stone-500 text-center max-w-xs leading-relaxed px-2"
    204   }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Loading default assistant...', 'echoai')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("p", {
    205     className: "mt-3 text-xs text-stone-500 text-center max-w-xs leading-relaxed px-2"
    206   }, "You can customize this block by adjusting the height and background color in the settings panel on the right."))));
    207 };
    208 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Edit);
    209 
    210 /***/ }),
    211 
    212 /***/ "@wordpress/block-editor":
    213 /*!*************************************!*\
    214   !*** external ["wp","blockEditor"] ***!
    215   \*************************************/
    216 /***/ ((module) => {
    217 
    218 module.exports = window["wp"]["blockEditor"];
    219 
    220 /***/ }),
    221 
    222 /***/ "@wordpress/blocks":
    223 /*!********************************!*\
    224   !*** external ["wp","blocks"] ***!
    225   \********************************/
    226 /***/ ((module) => {
    227 
    228 module.exports = window["wp"]["blocks"];
    229 
    230 /***/ }),
    231 
    232 /***/ "@wordpress/components":
    233 /*!************************************!*\
    234   !*** external ["wp","components"] ***!
    235   \************************************/
    236 /***/ ((module) => {
    237 
    238 module.exports = window["wp"]["components"];
    239 
    240 /***/ }),
    241 
    242 /***/ "@wordpress/i18n":
    243 /*!******************************!*\
    244   !*** external ["wp","i18n"] ***!
    245   \******************************/
    246 /***/ ((module) => {
    247 
    248 module.exports = window["wp"]["i18n"];
    249 
    250 /***/ }),
    251 
    252 /***/ "react":
    253 /*!************************!*\
    254   !*** external "React" ***!
    255   \************************/
    256 /***/ ((module) => {
    257 
    258 module.exports = window["React"];
    259 
    260 /***/ })
    261 
    262 /******/    });
    263 /************************************************************************/
    264 /******/    // The module cache
    265 /******/    var __webpack_module_cache__ = {};
    266 /******/   
    267 /******/    // The require function
    268 /******/    function __webpack_require__(moduleId) {
    269 /******/        // Check if module is in cache
    270 /******/        var cachedModule = __webpack_module_cache__[moduleId];
    271 /******/        if (cachedModule !== undefined) {
    272 /******/            return cachedModule.exports;
    273 /******/        }
    274 /******/        // Create a new module (and put it into the cache)
    275 /******/        var module = __webpack_module_cache__[moduleId] = {
    276 /******/            // no module.id needed
    277 /******/            // no module.loaded needed
    278 /******/            exports: {}
    279 /******/        };
    280 /******/   
    281 /******/        // Execute the module function
    282 /******/        __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
    283 /******/   
    284 /******/        // Return the exports of the module
    285 /******/        return module.exports;
    286 /******/    }
    287 /******/   
    288 /************************************************************************/
    289 /******/    /* webpack/runtime/compat get default export */
    290 /******/    (() => {
    291 /******/        // getDefaultExport function for compatibility with non-harmony modules
    292 /******/        __webpack_require__.n = (module) => {
    293 /******/            var getter = module && module.__esModule ?
    294 /******/                () => (module['default']) :
    295 /******/                () => (module);
    296 /******/            __webpack_require__.d(getter, { a: getter });
    297 /******/            return getter;
    298 /******/        };
    299 /******/    })();
    300 /******/   
    301 /******/    /* webpack/runtime/define property getters */
    302 /******/    (() => {
    303 /******/        // define getter functions for harmony exports
    304 /******/        __webpack_require__.d = (exports, definition) => {
    305 /******/            for(var key in definition) {
    306 /******/                if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
    307 /******/                    Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
    308 /******/                }
    309 /******/            }
    310 /******/        };
    311 /******/    })();
    312 /******/   
    313 /******/    /* webpack/runtime/hasOwnProperty shorthand */
    314 /******/    (() => {
    315 /******/        __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
    316 /******/    })();
    317 /******/   
    318 /******/    /* webpack/runtime/make namespace object */
    319 /******/    (() => {
    320 /******/        // define __esModule on exports
    321 /******/        __webpack_require__.r = (exports) => {
    322 /******/            if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
    323 /******/                Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
    324 /******/            }
    325 /******/            Object.defineProperty(exports, '__esModule', { value: true });
    326 /******/        };
    327 /******/    })();
    328 /******/   
    329 /************************************************************************/
    330 var __webpack_exports__ = {};
    331 // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.
    332 (() => {
    333 /*!**********************************!*\
    334   !*** ./src/blocks/chat/index.js ***!
    335   \**********************************/
    336 __webpack_require__.r(__webpack_exports__);
    337 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
    338 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
    339 /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks");
    340 /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_1__);
    341 /* harmony import */ var _block_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./block.json */ "./src/blocks/chat/block.json");
    342 /* harmony import */ var _edit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./edit */ "./src/blocks/chat/edit.js");
    343 
    344 /**
    345  * WordPress dependencies
    346  */
    347 
    348 
    349 /**
    350  * Internal dependencies
    351  */
    352 
    353 
    354 const {
    355   name
    356 } = _block_json__WEBPACK_IMPORTED_MODULE_2__;
    357 (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_1__.registerBlockType)(name, {
    358   icon: {
    359     src: (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("svg", {
    360       fill: "none",
    361       viewBox: "0 0 60000 60000"
    362     }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("g", {
    363       "clip-path": "url(#a)"
    364     }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("path", {
    365       d: "M29633 55706c15261 0 27633-12470 27633-27853C57266 12470 44894 0 29633 0S2000 12470 2000 27853c0 3873 784 7562 2202 10913V60000l12834-7350a27340 27340 0 00 12597 3056Z",
    366       fill: "#BD4495",
    367       "fill-rule": "evenodd",
    368       "clip-rule": "evenodd"
    369     }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("path", {
    370       d: "M26600 26954c2430 0 4592-3030 4592-5426v-4133c0-3014-2505-5468-5577-5468-2672 0-4910 1845-5452 4300-3340 525-5894 3372-5894 6778 0 310 25 626 75 944a7936 7936 0 00-1520 4675c0 1544 326 2947 953 4133 943-1645 2504-2923 4224-3273 680-134 1347 300 1481 977 133 676-300 1344-977 1477-1278 260-2505 1578-2972 3014l8 9a6017 6017 0 00-167 1385c0 2588 1645 4818 3966 5728a5200 5200 0 01-25-510 6150 6150 0 01 843-3105 1256 1256 0 01 1720-443c592 350 793 1120 442 1712a3570 3570 0 00-500 1836c0 384 58 752 174 1094v17a4858 4858 0 00 4342 2646c2680 0 4860-2137 4860-4759V27313c-1237 1277-2830 2146-4593 2146a1250 1250 0 01-1252-1253c0-692 560-1252 1252-1252Zm-5602-860a1249 1249 0 01-1470-985c-433-2170 360-5685 4325-6478a1250 1250 0 11 484 2454c-2863 576-2412 3230-2354 3540 134 676-300 1336-985 1470Zm5994 13208a1250 1250 0 01-1470 985 1247 1247 0 01-984-1470c560-2805-1236-3456-1595-3556a1261 1261 0 01-885-1528 1244 1244 0 01 1503-900c1561 391 4274 2244 3431 6470Zm13174-19553-3356 3356a4518 4518 0 01-3114 1336v-2504c510-25 985-242 1344-602l3357-3356a1245 1245 0 01 1770 0 1245 1245 0 01 0 1770Zm1637 7623h-8107v2504h8107v-2504Z",
    371       fill: "#fff"
    372     }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("path", {
    373       d: "M40375 20275a3340 3340 0 10 0-6679 3340 3340 0 00 0 6680Zm-209 18993c-242 250-559 368-884 368-318 0-635-117-885-368l-3357-3356a2042 2042 0 00-1344-600v-2505c1177 25 2280 500 3114 1335l3356 3356a1245 1245 0 01 0 1770Z",
    374       fill: "#fff"
    375     }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("path", {
    376       d: "M40375 43651a3340 3340 0 10 0-6678 3340 3340 0 00 0 6678Zm3340-11688a3340 3340 0 10 0-6679 3340 3340 0 00 0 6680Z",
    377       fill: "#fff"
    378     })), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("defs", null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("clipPath", {
    379       id: "a"
    380     }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("path", {
    381       d: "M0 0h60000v60000H0",
    382       fill: "#fff"
    383     }))))
    384   },
    385   edit: _edit__WEBPACK_IMPORTED_MODULE_3__["default"]
    386 });
    387 })();
    388 
    389 /******/ })()
    390 ;
    391 //# sourceMappingURL=index.js.map
     1(()=>{"use strict";const M=window.React,N=window.wp.blocks,j=window.wp.blockEditor,D=window.wp.components,g=window.wp.i18n;let I="";const{UU:T}={UU:"echoai/chat"};(0,N.registerBlockType)(T,{icon:{src:(0,M.createElement)("svg",{fill:"none",viewBox:"0 0 60000 60000"},(0,M.createElement)("g",{"clip-path":"url(#a)"},(0,M.createElement)("path",{d:"M29633 55706c15261 0 27633-12470 27633-27853C57266 12470 44894 0 29633 0S2000 12470 2000 27853c0 3873 784 7562 2202 10913V60000l12834-7350a27340 27340 0 00 12597 3056Z",fill:"#BD4495","fill-rule":"evenodd","clip-rule":"evenodd"}),(0,M.createElement)("path",{d:"M26600 26954c2430 0 4592-3030 4592-5426v-4133c0-3014-2505-5468-5577-5468-2672 0-4910 1845-5452 4300-3340 525-5894 3372-5894 6778 0 310 25 626 75 944a7936 7936 0 00-1520 4675c0 1544 326 2947 953 4133 943-1645 2504-2923 4224-3273 680-134 1347 300 1481 977 133 676-300 1344-977 1477-1278 260-2505 1578-2972 3014l8 9a6017 6017 0 00-167 1385c0 2588 1645 4818 3966 5728a5200 5200 0 01-25-510 6150 6150 0 01 843-3105 1256 1256 0 01 1720-443c592 350 793 1120 442 1712a3570 3570 0 00-500 1836c0 384 58 752 174 1094v17a4858 4858 0 00 4342 2646c2680 0 4860-2137 4860-4759V27313c-1237 1277-2830 2146-4593 2146a1250 1250 0 01-1252-1253c0-692 560-1252 1252-1252Zm-5602-860a1249 1249 0 01-1470-985c-433-2170 360-5685 4325-6478a1250 1250 0 11 484 2454c-2863 576-2412 3230-2354 3540 134 676-300 1336-985 1470Zm5994 13208a1250 1250 0 01-1470 985 1247 1247 0 01-984-1470c560-2805-1236-3456-1595-3556a1261 1261 0 01-885-1528 1244 1244 0 01 1503-900c1561 391 4274 2244 3431 6470Zm13174-19553-3356 3356a4518 4518 0 01-3114 1336v-2504c510-25 985-242 1344-602l3357-3356a1245 1245 0 01 1770 0 1245 1245 0 01 0 1770Zm1637 7623h-8107v2504h8107v-2504Z",fill:"#fff"}),(0,M.createElement)("path",{d:"M40375 20275a3340 3340 0 10 0-6679 3340 3340 0 00 0 6680Zm-209 18993c-242 250-559 368-884 368-318 0-635-117-885-368l-3357-3356a2042 2042 0 00-1344-600v-2505c1177 25 2280 500 3114 1335l3356 3356a1245 1245 0 01 0 1770Z",fill:"#fff"}),(0,M.createElement)("path",{d:"M40375 43651a3340 3340 0 10 0-6678 3340 3340 0 00 0 6678Zm3340-11688a3340 3340 0 10 0-6679 3340 3340 0 00 0 6680Z",fill:"#fff"})),(0,M.createElement)("defs",null,(0,M.createElement)("clipPath",{id:"a"},(0,M.createElement)("path",{d:"M0 0h60000v60000H0",fill:"#fff"}))))},edit:N=>{const{attributes:T,setAttributes:z}=N,[e,A]=React.useState("");let x=T.height||"500",u=T.backgroundColor||"#fafafa",y=T.assistantId||"";React.useEffect((()=>{wp&&wp.apiFetch&&wp.apiFetch({path:"/echoai/v1/config"}).then((M=>{M&&M.assistant_id&&(A(M.assistant_id),I=M.assistant_id)})).catch((M=>{console.error("Error fetching Echo AI config",M)}))}),[]);const O=(0,j.useBlockProps)({style:{height:x+"px"}});return(0,M.createElement)("div",null,(0,M.createElement)(j.InspectorControls,null,(0,M.createElement)(D.PanelBody,{title:(0,g.__)("Chat Settings","echoai")},(0,M.createElement)(D.__experimentalNumberControl,{label:(0,g.__)("Height (px)","echoai"),value:x,onChange:M=>{M>1e3&&(M=1e3),M<200&&(M=200),z({height:M})},min:200,max:1e3}),(0,M.createElement)(D.TextControl,{label:(0,g.__)("Assistant ID","echoai"),help:(0,g.__)("Optional. Leave empty to use the default assistant.","echoai"),value:y,onChange:M=>{z({assistantId:M})}})),(0,M.createElement)(j.PanelColorSettings,{title:(0,g.__)("Color Settings","echoai"),initialOpen:!0,colorSettings:[{value:u,onChange:M=>{z({backgroundColor:M})},label:(0,g.__)("Background Color","echoai")}]})),(0,M.createElement)("div",{...O},(0,M.createElement)("div",{className:"flex flex-col items-center justify-center h-full rounded-3xl",style:{backgroundColor:u}},(0,M.createElement)("img",{src:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI2IiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwIDAgMTI2IDMyIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE0LjczNzYgMjkuNzEwMUMyMi44NzcgMjkuNzEwMSAyOS40NzUyIDIzLjA1OTMgMjkuNDc1MiAxNC44NTVDMjkuNDc1MiA2LjY1MDgzIDIyLjg3NyAwIDE0LjczNzYgMEM2LjU5ODI1IDAgMCA2LjY1MDgzIDAgMTQuODU1QzAgMTYuOTIwOSAwLjQxODM1MSAxOC44ODgyIDEuMTc0MzIgMjAuNjc1N1YzMkw4LjAxOTIxIDI4LjA4MDNDMTAuMDMzOCAyOS4xMjIyIDEyLjMxNzYgMjkuNzEwMSAxNC43Mzc2IDI5LjcxMDFaIiBmaWxsPSIjQkQ0NDk1Ii8+CjxwYXRoIGQ9Ik0xMy4xMjA1IDE0LjM3NTVDMTQuNDE2MiAxNC4zNzU1IDE1LjU2OTQgMTIuNzU5MiAxNS41Njk0IDExLjQ4MTNWOS4yNzczQzE1LjU2OTQgNy42Njk5MSAxNC4yMzM2IDYuMzYwODUgMTIuNTk1MSA2LjM2MDg1QzExLjE3MDIgNi4zNjA4NSA5Ljk3Njk0IDcuMzQ0ODcgOS42ODc1MiA4LjY1Mzk0QzcuOTA2NDggOC45MzQ0NSA2LjU0Mzk4IDEwLjQ1MjggNi41NDM5OCAxMi4yNjk0QzYuNTQzOTggMTIuNDM0MiA2LjU1NzM0IDEyLjYwMzQgNi41ODQwNSAxMi43NzI2QzYuMDQ5NzQgMTMuNTE2MiA1Ljc3MzY4IDE0LjM3MTEgNS43NzM2OCAxNS4yNjZDNS43NzM2OCAxNi4wODk4IDUuOTQ3MzMgMTYuODM3OCA2LjI4MTI4IDE3LjQ3MDFDNi43ODQ0MiAxNi41OTI5IDcuNjE3MDYgMTUuOTExNyA4LjUzNDI5IDE1LjcyNDdDOC44OTQ5NSAxNS42NTM0IDkuMjUxMTYgMTUuODg1IDkuMzIyNCAxNi4yNDU2QzkuMzkzNjUgMTYuNjA2MyA5LjE2MjExIDE2Ljk2MjUgOC44MDE0NSAxNy4wMzM3QzguMTIwMiAxNy4xNzE4IDcuNDY1NjcgMTcuODc1MyA3LjIxNjMyIDE4LjY0MTFMNy4yMjA3OCAxOC42NDU2QzcuMTYyODkgMTguODkwNSA3LjEzMTcyIDE5LjEzNTQgNy4xMzE3MiAxOS4zODQ3QzcuMTMxNzIgMjAuNzY1IDguMDA4ODkgMjEuOTUzOCA5LjI0NjcxIDIyLjQzOTJDOS4yMzc4IDIyLjM1MDEgOS4yMzMzNSAyMi4yNTY2IDkuMjMzMzUgMjIuMTY3NkM5LjIzMzM1IDIxLjU4NDMgOS4zODkxOSAyMS4wMTQ0IDkuNjgzMDYgMjAuNTExMkM5Ljg3NDUzIDIwLjE5MDYgMTAuMjg0MiAyMC4wODgyIDEwLjYwMDMgMjAuMjc1MkMxMC45MTY0IDIwLjQ2MjIgMTEuMDIzMyAyMC44NzE5IDEwLjgzNjMgMjEuMTg4QzEwLjY1ODIgMjEuNDg2MyAxMC41NjkxIDIxLjgyNDcgMTAuNTY5MSAyMi4xNjc2QzEwLjU2OTEgMjIuMzcyNCAxMC42MDAzIDIyLjU2ODMgMTAuNjYyNiAyMi43NTA5QzEwLjY2MjYgMjIuNzU1MyAxMC42NjI2IDIyLjc1OTggMTAuNjYyNiAyMi43NTk4QzExLjA5MDEgMjMuNjA1OCAxMS45NzYyIDI0LjE3MTIgMTIuOTc4IDI0LjE3MTJDMTQuNDA3MyAyNC4xNzEyIDE1LjU2OTQgMjMuMDMxNCAxNS41Njk0IDIxLjYzMzNWMTQuNTY3QzE0LjkxMDQgMTUuMjQ4MiAxNC4wNiAxNS43MTEzIDEzLjEyMDUgMTUuNzExM0MxMi43NTA5IDE1LjcxMTMgMTIuNDUyNiAxNS40MTMgMTIuNDUyNiAxNS4wNDM0QzEyLjQ1MjYgMTQuNjczOCAxMi43NTA5IDE0LjM3NTUgMTMuMTIwNSAxNC4zNzU1Wk0xMC4xMzI4IDEzLjkxNjlDMTAuMDkyNyAxMy45MjU4IDEwLjA0ODIgMTMuOTMwMyAxMC4wMDM3IDEzLjkzMDNDOS42OTE5NyAxMy45MzAzIDkuNDExNDYgMTMuNzEyMSA5LjM0OTEyIDEzLjM5MTVDOS4xMTc1OCAxMi4yMzM4IDkuNTQwNTggMTAuMzU5MyAxMS42NTU2IDkuOTM2MjhDMTIuMDExOCA5Ljg2NTA0IDEyLjM2OCAxMC4wOTY2IDEyLjQzOTIgMTAuNDYxN0MxMi41MTA1IDEwLjgyMjQgMTIuMjc4OSAxMS4xNzQxIDExLjkxMzggMTEuMjQ1M0MxMC4zODY2IDExLjU1MjYgMTAuNjI3IDEyLjk2ODUgMTAuNjU4MiAxMy4xMzMzQzEwLjcyOTQgMTMuNDkzOSAxMC40OTc5IDEzLjg0NTcgMTAuMTMyOCAxMy45MTY5Wk0xMy4zMjk3IDIwLjk2MDlDMTMuMjY3NCAyMS4yODE1IDEyLjk4NjkgMjEuNDk5NyAxMi42NzUyIDIxLjQ5OTdDMTIuNjMwNyAyMS40OTk3IDEyLjU4NjIgMjEuNDk1MiAxMi41NDYxIDIxLjQ4NjNDMTIuMTgxIDIxLjQxNTEgMTEuOTQ5NCAyMS4wNjMzIDEyLjAyMDcgMjAuNzAyN0MxMi4zMTkgMTkuMjA2NiAxMS4zNjE3IDE4Ljg1OTMgMTEuMTcwMiAxOC44MDU5QzEwLjgxODUgMTguNzA3OSAxMC42MDQ4IDE4LjM0MjggMTAuNjk4MyAxNy45OTFDMTAuNzkxOCAxNy42MzkzIDExLjE0MzUgMTcuNDIxMSAxMS40OTk3IDE3LjUxMDJDMTIuMzMyNCAxNy43MTk0IDEzLjc3OTUgMTguNzA3OSAxMy4zMjk3IDIwLjk2MDlaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjAuMzU1OSAxMC41MzI5TDE4LjU2NiAxMi4zMjI5QzE4LjEyMDcgMTIuNzY4MSAxNy41MzMgMTMuMDIxOSAxNi45MDUyIDEzLjAzNTNWMTEuNjk5NUMxNy4xNzY4IDExLjY4NjIgMTcuNDMwNiAxMS41NzA0IDE3LjYyMiAxMS4zNzg5TDE5LjQxMiA5LjU4ODk4QzE5LjY3NDcgOS4zMjYyOCAyMC4wOTc3IDkuMzI2MjggMjAuMzU1OSA5LjU4ODk4QzIwLjYxODYgOS44NDcyMyAyMC42MTg2IDEwLjI3MDIgMjAuMzU1OSAxMC41MzI5WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIxLjIyODYgMTQuNTk4MkgxNi45MDUyVjE1LjkzMzlIMjEuMjI4NlYxNC41OTgyWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIwLjQ2NzMgMTAuODEzNEMyMS40NTEgMTAuODEzNCAyMi4yNDg0IDEwLjAxNiAyMi4yNDg0IDkuMDMyNDFDMjIuMjQ4NCA4LjA0ODc2IDIxLjQ1MSA3LjI1MTM3IDIwLjQ2NzMgNy4yNTEzN0MxOS40ODM3IDcuMjUxMzcgMTguNjg2MyA4LjA0ODc2IDE4LjY4NjMgOS4wMzI0MUMxOC42ODYzIDEwLjAxNiAxOS40ODM3IDEwLjgxMzQgMjAuNDY3MyAxMC44MTM0WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIwLjM1NTkgMjAuOTQzMUMyMC4yMjY4IDIxLjA3NjcgMjAuMDU3NiAyMS4xMzkgMTkuODgzOSAyMS4xMzlDMTkuNzE0NyAyMS4xMzkgMTkuNTQ1NSAyMS4wNzY3IDE5LjQxMiAyMC45NDMxTDE3LjYyMiAxOS4xNTMyQzE3LjQzMDYgMTguOTYxNyAxNy4xNzY4IDE4Ljg0NTkgMTYuOTA1MiAxOC44MzI2VjE3LjQ5NjhDMTcuNTMzIDE3LjUxMDIgMTguMTIwNyAxNy43NjQgMTguNTY2IDE4LjIwOTJMMjAuMzU1OSAxOS45OTkyQzIwLjYxODYgMjAuMjYxOSAyMC42MTg2IDIwLjY4NDkgMjAuMzU1OSAyMC45NDMxWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIwLjQ2NzMgMjMuMjgwN0MyMS40NTEgMjMuMjgwNyAyMi4yNDg0IDIyLjQ4MzMgMjIuMjQ4NCAyMS40OTk3QzIyLjI0ODQgMjAuNTE2IDIxLjQ1MSAxOS43MTg2IDIwLjQ2NzMgMTkuNzE4NkMxOS40ODM3IDE5LjcxODYgMTguNjg2MyAyMC41MTYgMTguNjg2MyAyMS40OTk3QzE4LjY4NjMgMjIuNDgzMyAxOS40ODM3IDIzLjI4MDcgMjAuNDY3MyAyMy4yODA3WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIyLjI0ODMgMTcuMDQ3MUMyMy4yMzIgMTcuMDQ3MSAyNC4wMjk0IDE2LjI0OTcgMjQuMDI5NCAxNS4yNjZDMjQuMDI5NCAxNC4yODI0IDIzLjIzMiAxMy40ODUgMjIuMjQ4MyAxMy40ODVDMjEuMjY0NyAxMy40ODUgMjAuNDY3MyAxNC4yODI0IDIwLjQ2NzMgMTUuMjY2QzIwLjQ2NzMgMTYuMjQ5NyAyMS4yNjQ3IDE3LjA0NzEgMjIuMjQ4MyAxNy4wNDcxWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTEyNS4yNDEgNi44MzY1NFYyNC44MTE0SDEyMC4zNjFWNi44MzY1NEgxMjUuMjQxWiIgZmlsbD0iI0JENDQ5NSIvPgo8cGF0aCBkPSJNMTA2LjU5NSAyNC44MTE0SDEwMS4zMjlMMTA3LjI2MiA2LjgzNjU0SDExMy45MzJMMTE5Ljg2NSAyNC44MTE0SDExNC41OTlMMTEwLjY2NyAxMS43ODY3SDExMC41MjdMMTA2LjU5NSAyNC44MTE0Wk0xMDUuNjEyIDE3LjcxOThIMTE1LjUxMlYyMS4zNzA5SDEwNS42MTJWMTcuNzE5OFoiIGZpbGw9IiNCRDQ0OTUiLz4KPHBhdGggZD0iTTEwMi4wMzggMTUuODI0QzEwMi4wMzggMTcuODI1MSAxMDEuNjQ5IDE5LjUxMzIgMTAwLjg3MSAyMC44ODgyQzEwMC4wOTIgMjIuMjU3NCA5OS4wNDIxIDIzLjI5NiA5Ny43MTk4IDI0LjAwNEM5Ni4zOTc0IDI0LjcwNjEgOTQuOTIyOSAyNS4wNTcyIDkzLjI5NjMgMjUuMDU3MkM5MS42NTc5IDI1LjA1NzIgOTAuMTc3NiAyNC43MDMyIDg4Ljg1NTIgMjMuOTk1MkM4Ny41Mzg3IDIzLjI4MTMgODYuNDkxMyAyMi4yMzk4IDg1LjcxMzEgMjAuODcwNkM4NC45NDA3IDE5LjQ5NTYgODQuNTU0NiAxNy44MTM0IDg0LjU1NDYgMTUuODI0Qzg0LjU1NDYgMTMuODIyOSA4NC45NDA3IDEyLjEzNzcgODUuNzEzMSAxMC43Njg1Qzg2LjQ5MTMgOS4zOTM1MSA4Ny41Mzg3IDguMzU0OTMgODguODU1MiA3LjY1Mjc4QzkwLjE3NzYgNi45NDQ3OSA5MS42NTc5IDYuNTkwNzkgOTMuMjk2MyA2LjU5MDc5Qzk0LjkyMjkgNi41OTA3OSA5Ni4zOTc0IDYuOTQ0NzkgOTcuNzE5OCA3LjY1Mjc4Qzk5LjA0MjEgOC4zNTQ5MyAxMDAuMDkyIDkuMzkzNTEgMTAwLjg3MSAxMC43Njg1QzEwMS42NDkgMTIuMTM3NyAxMDIuMDM4IDEzLjgyMjkgMTAyLjAzOCAxNS44MjRaTTk3LjAxNzYgMTUuODI0Qzk3LjAxNzYgMTQuNzQ3NCA5Ni44NzQzIDEzLjg0MDQgOTYuNTg3NiAxMy4xMDMyQzk2LjMwNjcgMTIuMzYwMSA5NS44ODgzIDExLjc5ODQgOTUuMzMyNSAxMS40MThDOTQuNzgyNSAxMS4wMzE5IDk0LjEwMzcgMTAuODM4OCA5My4yOTYzIDEwLjgzODhDOTIuNDg4OCAxMC44Mzg4IDkxLjgwNzEgMTEuMDMxOSA5MS4yNTEzIDExLjQxOEM5MC43MDEzIDExLjc5ODQgOTAuMjgyOSAxMi4zNjAxIDg5Ljk5NjIgMTMuMTAzMkM4OS43MTUzIDEzLjg0MDQgODkuNTc0OSAxNC43NDc0IDg5LjU3NDkgMTUuODI0Qzg5LjU3NDkgMTYuOTAwNiA4OS43MTUzIDE3LjgxMDUgODkuOTk2MiAxOC41NTM2QzkwLjI4MjkgMTkuMjkwOCA5MC43MDEzIDE5Ljg1MjUgOTEuMjUxMyAyMC4yMzg3QzkxLjgwNzEgMjAuNjE5IDkyLjQ4ODggMjAuODA5MiA5My4yOTYzIDIwLjgwOTJDOTQuMTAzNyAyMC44MDkyIDk0Ljc4MjUgMjAuNjE5IDk1LjMzMjUgMjAuMjM4N0M5NS44ODgzIDE5Ljg1MjUgOTYuMzA2NyAxOS4yOTA4IDk2LjU4NzYgMTguNTUzNkM5Ni44NzQzIDE3LjgxMDUgOTcuMDE3NiAxNi45MDA2IDk3LjAxNzYgMTUuODI0WiIgZmlsbD0iIzA3MkM1OSIvPgo8cGF0aCBkPSJNNjcuMzIzOSAyNC44MTE0VjYuODM2NTRINzIuMjAzOFYxMy44NThINzguNjYzNVY2LjgzNjU0SDgzLjU0MzRWMjQuODExNEg3OC42NjM1VjE3Ljc5SDcyLjIwMzhWMjQuODExNEg2Ny4zMjM5WiIgZmlsbD0iIzA3MkM1OSIvPgo8cGF0aCBkPSJNNjYuMzQ1NyAxMy41NzcxSDYxLjM5NTZDNjEuMzYwNSAxMy4xNjc1IDYxLjI2NjkgMTIuNzk2IDYxLjExNDcgMTIuNDYyNUM2MC45Njg1IDEyLjEyOSA2MC43NjM3IDExLjg0MjIgNjAuNTAwNCAxMS42MDIzQzYwLjI0MjkgMTEuMzU2NiA1OS45Mjk5IDExLjE2OTQgNTkuNTYxMyAxMS4wNDA2QzU5LjE5MjYgMTAuOTA2IDU4Ljc3NDMgMTAuODM4OCA1OC4zMDYyIDEwLjgzODhDNTcuNDg3IDEwLjgzODggNTYuNzkzNiAxMS4wMzc3IDU2LjIyNjEgMTEuNDM1NkM1NS42NjQ0IDExLjgzMzUgNTUuMjM3MiAxMi40MDQgNTQuOTQ0NyAxMy4xNDcxQzU0LjY1NzkgMTMuODkwMiA1NC41MTQ2IDE0Ljc4MjUgNTQuNTE0NiAxNS44MjRDNTQuNTE0NiAxNi45MjQgNTQuNjYwOSAxNy44NDU2IDU0Ljk1MzQgMTguNTg4N0M1NS4yNTE4IDE5LjMyNTkgNTUuNjgxOSAxOS44ODE4IDU2LjI0MzYgMjAuMjU2M0M1Ni44MDUzIDIwLjYyNDkgNTcuNDgxMiAyMC44MDkyIDU4LjI3MTEgMjAuODA5MkM1OC43MjE2IDIwLjgwOTIgNTkuMTI1MyAyMC43NTM2IDU5LjQ4MjMgMjAuNjQyNEM1OS44MzkyIDIwLjUyNTQgNjAuMTQ5MyAyMC4zNTg3IDYwLjQxMjYgMjAuMTQyMkM2MC42NzU5IDE5LjkyNTcgNjAuODg5NSAxOS42NjUzIDYxLjA1MzMgMTkuMzYxQzYxLjIyMyAxOS4wNTA5IDYxLjMzNzEgMTguNzAyOCA2MS4zOTU2IDE4LjMxNjZMNjYuMzQ1NyAxOC4zNTE3QzY2LjI4NzIgMTkuMTEyNCA2Ni4wNzM2IDE5Ljg4NzYgNjUuNzA1IDIwLjY3NzZDNjUuMzM2NCAyMS40NjE2IDY0LjgxMjcgMjIuMTg3MiA2NC4xMzQgMjIuODU0MkM2My40NjExIDIzLjUxNTQgNjIuNjI3MyAyNC4wNDc4IDYxLjYzMjYgMjQuNDUxNkM2MC42Mzc5IDI0Ljg1NTMgNTkuNDgyMyAyNS4wNTcyIDU4LjE2NTcgMjUuMDU3MkM1Ni41MTU3IDI1LjA1NzIgNTUuMDM1MyAyNC43MDMyIDUzLjcyNDcgMjMuOTk1MkM1Mi40MTk5IDIzLjI4NzIgNTEuMzg3MSAyMi4yNDU3IDUwLjYyNjUgMjAuODcwNkM0OS44NzE3IDE5LjQ5NTYgNDkuNDk0MyAxNy44MTM0IDQ5LjQ5NDMgMTUuODI0QzQ5LjQ5NDMgMTMuODIyOSA0OS44ODA0IDEyLjEzNzcgNTAuNjUyOCAxMC43Njg1QzUxLjQyNTIgOS4zOTM1MSA1Mi40NjY3IDguMzU0OTMgNTMuNzc3MyA3LjY1Mjc4QzU1LjA4OCA2Ljk0NDc5IDU2LjU1MDggNi41OTA3OSA1OC4xNjU3IDYuNTkwNzlDNTkuMzAwOSA2LjU5MDc5IDYwLjM0NTMgNi43NDU4NSA2MS4yOTkxIDcuMDU1OTZDNjIuMjUyOCA3LjM2NjA3IDYzLjA4OTUgNy44MTk1NCA2My44MDkyIDguNDE2MzZDNjQuNTI4OSA5LjAwNzM0IDY1LjEwODIgOS43MzU4MSA2NS41NDcgMTAuNjAxOEM2NS45ODU5IDExLjQ2NzggNjYuMjUyMSAxMi40NTk1IDY2LjM0NTcgMTMuNTc3MVoiIGZpbGw9IiMwNzJDNTkiLz4KPHBhdGggZD0iTTM1LjQyNTQgMjQuODExNFYxMC43Njg1VjYuODM2NTRINDguMzhWMTAuNzY4NUg0MC4zMDUzVjEzLjg1OEg0Ny43MTI5VjE3Ljc5SDQwLjMwNTNWMjAuODc5NEg0OC4zNDQ5VjI0LjgxMTRIMzUuNDI1NFoiIGZpbGw9IiMwNzJDNTkiLz4KPC9zdmc+Cg==",alt:"chat"}),(0,M.createElement)("p",{className:"text-stone-500 font-semibold"},"Assistant Placeholder"),y?(0,M.createElement)("div",{className:"mt-2 bg-accent p-3 rounded-lg border border-accent-foreground/10 max-w-xs"},(0,M.createElement)("div",{className:"flex flex-col gap-2"},(0,M.createElement)("div",{className:"flex items-center"},(0,M.createElement)("strong",{className:"mr-2 text-muted-foreground whitespace-nowrap text-xs"},(0,g.__)("Custom Assistant ID:","echoai")),(0,M.createElement)("code",{className:"bg-input/50 p-1.5 rounded text-xs font-mono uppercase text-foreground border border-accent-foreground/10"},y)),(0,M.createElement)("a",{href:`${window.echoaiConfig?.platformUrl||"http://localhost:3000"}/dashboard/assistant/${y}/settings`,className:"text-xs text-blue-600 hover:underline",target:"_blank",rel:"noopener noreferrer"},(0,g.__)("AI Assistant settings","echoai")))):e?(0,M.createElement)("div",{className:"mt-2 bg-accent p-3 rounded-lg border border-accent-foreground/10 max-w-xs"},(0,M.createElement)("div",{className:"flex flex-col gap-2"},(0,M.createElement)("div",{className:"flex items-center"},(0,M.createElement)("strong",{className:"mr-2 text-muted-foreground whitespace-nowrap text-xs"},(0,g.__)("Default Assistant ID:","echoai")),(0,M.createElement)("code",{className:"bg-input/50 p-1.5 rounded text-xs font-mono uppercase text-foreground border border-accent-foreground/10"},e)),(0,M.createElement)("a",{href:`${window.echoaiConfig?.platformUrl||"http://localhost:3000"}/dashboard/assistant/${e}/settings`,className:"text-xs text-blue-600 hover:underline",target:"_blank",rel:"noopener noreferrer"},(0,g.__)("AI Assistant settings","echoai")))):(0,M.createElement)("p",{className:"mt-1 text-xs text-stone-500 text-center max-w-xs leading-relaxed px-2"},(0,g.__)("Loading default assistant...","echoai")),(0,M.createElement)("p",{className:"mt-3 text-xs text-stone-500 text-center max-w-xs leading-relaxed px-2"},"You can customize this block by adjusting the height and background color in the settings panel on the right."))))}})})();
  • echoai/trunk/echoai.php

    r3303253 r3307254  
    77 * Plugin Name:         EchoAI
    88 * Plugin URI:          https://echowp.com/
    9  * Description:         EchoAI for WordPress is an <strong>AI-driven chatbot</strong> plugin, leveraging OpenAI's advanced technology to provide intelligent and relevant responses to your website visitors. The plugin scans and indexes your published posts, enabling the AI assistant to interact with users based on your content. Perfect for any website looking to offer a cutting-edge, interactive experience.
     9 * Description:         AI-driven chatbot plugin that provides intelligent responses based exclusively on your website's content. No hallucinations, just accurate information with source citations. Supports WordPress content, YouTube videos, PDFs, and more.
    1010 * Author:              EchoAI
    1111 * Author URI:          https://echowp.com/contact
    1212 * Text Domain:         echoai
    13  * Version:             0.2.2
     13 * Version:             2.2.3
    1414 * Requires at least:   5.9
    1515 * Requires PHP:        7.4
  • echoai/trunk/lib/api.php

    r3303250 r3307254  
    408408        register_rest_field($post_type->name, 'featured_image_url', [
    409409            'get_callback' => function ($post) {
     410                // Get post ID safely
     411                $post_id = is_array($post) && isset($post['id']) ? $post['id'] : (is_object($post) ? $post->ID : 0);
     412               
     413                if (!$post_id) {
     414                    return null;
     415                }
     416               
    410417                // First try to get the featured image
    411                 if (has_post_thumbnail($post['id'])) {
    412                     $featured_img_url = get_the_post_thumbnail_url($post['id'], 'full');
     418                if (has_post_thumbnail($post_id)) {
     419                    $featured_img_url = get_the_post_thumbnail_url($post_id, 'full');
    413420                    return $featured_img_url;
    414421                }
    415422
    416423                // If no featured image, try to find first image in content
    417                 $post_content = get_post_field('post_content', $post['id']);
     424                $post_content = get_post_field('post_content', $post_id);
    418425                $first_img = '';
    419426
     
    488495        register_rest_field($post_type->name, 'all_taxonomies', [
    489496            'get_callback' => function ($post) {
    490                 $taxonomies = get_object_taxonomies($post['type'], 'objects');
     497                // Get post type and ID safely
     498                $post_type = is_array($post) && isset($post['type']) ? $post['type'] : (is_object($post) ? $post->post_type : '');
     499                $post_id = is_array($post) && isset($post['id']) ? $post['id'] : (is_object($post) ? $post->ID : 0);
     500               
     501                if (!$post_type || !$post_id) {
     502                    return [];
     503                }
     504               
     505                $taxonomies = get_object_taxonomies($post_type, 'objects');
    491506                $result = [];
    492507
    493508                foreach ($taxonomies as $taxonomy) {
    494                     $terms = get_the_terms($post['id'], $taxonomy->name);
     509                    $terms = get_the_terms($post_id, $taxonomy->name);
    495510
    496511                    if (!empty($terms) && !is_wp_error($terms)) {
  • echoai/trunk/lib/helpers.php

    r3303250 r3307254  
    1515 * @return void
    1616 */
    17 function echoai_log($message) {
     17function echoai_log($message)
     18{
    1819    if (WP_DEBUG && WP_DEBUG_LOG) {
    1920        error_log('ECHO AI: ' . $message);
     
    128129            WHERE post_status = %s
    129130            AND post_type IN ($placeholders)
    130             ORDER BY ID DESC
     131            ORDER BY post_date DESC
    131132            LIMIT %d",
    132133            array_merge(['publish'], $echoai_post_types, [$limit])
     
    165166    return [
    166167        "posts" => $posts,
    167         "count" => (int)$count
     168        "count" => (int) $count
    168169    ];
    169170}
     
    215216    }
    216217
    217     return (int)$count;
    218 }
     218    return (int) $count;
     219}
  • echoai/trunk/readme.txt

    r3303253 r3307254  
    55Requires at least: 5.9
    66Tested up to: 6.6
    7 Stable tag: 0.2.2
     7Stable tag: 0.2.3
    88Requires PHP: 7.4
    99License: GPLv2 or later
    1010License URI: https://www.gnu.org/licenses/gpl-2.0.html
    11 AI-driven chatbot plugin, leveraging OpenAI's technology to provide intelligent responses to your website visitors.
     11AI-driven chatbot plugin that provides intelligent responses based exclusively on your website's content. No hallucinations, just accurate information with source citations.
    1212
    1313== Description ==
    1414
    15 **EchoAI for WordPress is an AI-driven chatbot plugin designed to deliver intelligent, relevant, and accurate responses based exclusively on your websites content**.
     15**EchoAI for WordPress is an AI-driven chatbot plugin designed to deliver intelligent, relevant, and accurate responses based exclusively on your website's content**.
    1616
    1717By scanning and understanding your published content, EchoAI ensures that your users receive reliable information directly from your site, with no AI hallucinations or misinformation.
    1818
    19 When responding, EchoAI provides **citations with links** to relevant sources, helping your users discover more of your website’s valuable content. With a friendly and helpful AI assistant, available 24/7, EchoAI offers an innovative way to engage your audience, guiding them to the right information.
     19When responding, EchoAI provides **citations with links** to relevant sources, helping your users discover more of your website's valuable content. With a friendly and helpful AI assistant, available 24/7, EchoAI offers an innovative way to engage your audience, guiding them to the right information.
     20
     21= Beyond WordPress =
     22
     23While this plugin is optimized for WordPress, EchoAI also supports:
     24- **YouTube Integration**: Automatically import transcripts from videos or entire channels
     25- **Framer Websites**: Full content synchronization for Framer-built sites
     26- **PDF Documents**: Upload and process PDF files up to 50 pages
     27- **Custom Content**: Add any text content manually through the dashboard
    2028
    2129== Features ==
    2230
    23 - Simple integration with WordPress
    24 - Supports built-in WordPress post types (posts, pages) and custom post types
    25 - Easy setup:
    26     - **Floating chat button** (customizable appearance)
    27     - **Gutenberg block**
    28     - **Shortcode** for classic editor: `[echo_ai]`
    29 - Multilanguage support
    30 - Real-time content updates within 1-2 minutes for deleted or modified posts
    31 - Links to relevant content sources with accurate citations
    32 - Powered by OpenAI’s **GPT-4o** model
    33 - No AI hallucinations or misinformation
     31= Core WordPress Features =
     32- **Automatic Content Sync**: Real-time synchronization of all WordPress content
     33- **Custom Post Type Support**: Works with posts, pages, and any custom post types
     34- **Webhook Technology**: Updates reflected in 4-5 seconds
     35- **Metadata Sync**: Includes categories, tags, dates, and featured images
     36
     37= Integration Options =
     38- **Floating Chat Button**: Customizable position and appearance
     39- **Gutenberg Block**: Native block editor integration with height and color settings
     40- **Shortcode**: `[echo_ai]` for classic editor and widgets
     41- **JavaScript SDK**: For developers and custom implementations
     42
     43= Content Sources =
     44- **WordPress Content**: Automatic sync of all published content
     45- **YouTube Videos**: Import individual videos or entire channels with transcripts
     46- **PDF Documents**: Support for text-based PDFs up to 50 pages
     47- **Manual Content**: Add custom text directly through the dashboard
     48- **External Websites**: Import content from any URL
     49
     50= AI Capabilities =
     51- **GPT-4o Powered**: Latest OpenAI technology
     52- **Zero Hallucinations**: Only answers from your actual content
     53- **Source Citations**: Every answer includes clickable source links
     54- **Multilingual Support**: Automatically detects and responds in visitor's language
     55- **Context Awareness**: Maintains conversation flow and understands follow-up questions
     56- **Time-Sensitive Responses**: Understands dates and temporal content
     57
     58= Customization =
     59- **Multiple Assistants**: Create specialized assistants for different purposes
     60- **Custom Instructions**: Define personality, tone, and behavior
     61- **Greeting Messages**: Personalized welcome messages
     62- **Suggested Questions**: Guide visitors with predefined queries
     63- **Visual Customization**: Match your brand colors and style
    3464
    3565== Demo ==
     
    50802. Activate the plugin through the 'Plugins' screen in WordPress.
    51813. Use the Gutenberg block or the `[echo_ai]` shortcode to add the EchoAI Assistant to your pages or posts.
    52 For more detailed installation ins0uctions, please visit the [Website Owners Manual](https://docs.echowp.com/)
     82For more detailed installation instructions, please visit the [Website Owners Manual](https://docs.echowp.com/)
    5383
    5484== Frequently Asked Questions ==
     
    6494= What types of content does the plugin support? =
    6595
    66 EchoAI supports all content types. You can choose the types of content you want to sync with EchoAI on the settings page. This includes titles, content, authors, tags, categories, and dates for each post, page, or custom post type.
     96EchoAI supports multiple content sources:
     97- **WordPress Content**: All post types (posts, pages, custom)
     98- **YouTube Videos**: Individual videos or entire channels with automatic transcript extraction
     99- **PDF Documents**: Text-based PDFs up to 50 pages
     100- **External Websites**: Any URL content
     101- **Manual Content**: Direct text input through the dashboard
     102
     103For WordPress content, this includes titles, content, authors, tags, categories, and dates.
    67104
    68105= What happens if I delete or update a post? =
    69106
    70 If a post is deleted or updated, the assistant will process the changes and update its information within 1-2 minutes. This ensures that the AI provides the most accurate and up-to-date responses based on your current content.
     107With our webhook technology, changes are reflected in just 4-5 seconds! If a post is deleted, updated, or unpublished, the assistant immediately processes these changes. This ensures that the AI always provides the most accurate and up-to-date responses based on your current content.
    71108
    72 = How can developers modify the plugin? =
     109= Can I use EchoAI with other platforms besides WordPress? =
    73110
    74 Yes, the source code of the EchoAI WordPress plugin is open-sourced.
    75 Please note that the plugin requires the EchoAI JavaScript SDK to be loaded and relies on the EchoAI API for its functionality.
    76 The plugin also contains an installer React app, which developers can modify as documented in the installer/README.md file.
     111Yes! While this plugin is for WordPress, EchoAI also offers:
     112- **Framer Integration**: Custom components for Framer websites
     113- **JavaScript SDK**: For any website or web application
     114- **Direct Assistant Links**: Share your assistant without any integration
     115
     116= How can developers extend the plugin? =
     117
     118The EchoAI WordPress plugin is open-source and can be customized by developers. The plugin includes:
     119- Full source code for the WordPress integration
     120- JavaScript SDK for custom implementations
     121- Extensive hooks and filters for WordPress developers
     122- Customizable React components for the admin interface
     123
     124Please note that the plugin requires the EchoAI JavaScript SDK and relies on the EchoAI API for AI functionality. API credentials are required for the assistant to function.
    77125
    78126= Third-Party Services =
     
    81129
    82130- Data sent includes: published post content (title, content, author, tags, categories, date) for analysis.
    83 - Data processed: visitor queries and corresponding responses from EchoAI’s AI servers.
    84 - API Domain: https://api.echowp.com
    85 - JavaScript SDK URL: https://cdn.echowp.com/echoai/echo-ai-latest.js
     131- Data processed: visitor queries and corresponding responses from EchoAI's AI servers.
     132- API Domain: https://api.echoaichat.com
     133- JavaScript SDK URL: https://cdn.echoaichat.com/sdk/echo-sdk.js
     134- Dashboard: https://app.echoaichat.com/
    86135
    87136For further information on how your data is handled, please review our terms of service: [https://echowp.com/terms](https://echowp.com/terms)
     137
     138= Can I create multiple assistants? =
     139
     140Yes! You can create specialized assistants for different purposes:
     141- Customer support assistant
     142- Sales assistant
     143- Technical support assistant
     144- Educational assistant
     145
     146Each assistant can have its own personality, instructions, greeting message, and suggested questions. You can use different assistants on different pages of your website.
    88147
    89148== Screenshots ==
     
    97156
    98157== Changelog ==
     158
     159= 0.2.3 =
     160- Enhanced API error handling and improved connection stability
     161- Fixed helper functions for better performance
     162- Updated integration specifications
     163- Added comprehensive user manual documentation
     164- General bug fixes and improvements
     165
     166= 0.2.2 =
     167- General bugfixes and API modifications
     168
     169= 0.2.1 =
     170- Support for the new dashboard
    99171
    100172= 0.1.11 =
  • echoai/trunk/stylesheet.css

    r3303250 r3307254  
    66    --font-sans: "Inter", "Poppins", "Roboto", "Open Sans", "Lato", "Helvetica", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    77    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
     8    --color-blue-600: oklch(54.6% 0.245 262.881);
    89    --color-stone-500: oklch(55.3% 0.013 58.071);
    910    --color-white: #fff;
     
    210211}
    211212@layer utilities {
    212   .visible {
    213     visibility: visible;
    214   }
    215213  .static {
    216214    position: static;
     
    240238    margin-top: calc(var(--spacing) * 0);
    241239  }
     240  .mt-1 {
     241    margin-top: calc(var(--spacing) * 1);
     242  }
    242243  .mt-2 {
    243244    margin-top: calc(var(--spacing) * 2);
    244245  }
     246  .mt-3 {
     247    margin-top: calc(var(--spacing) * 3);
     248  }
    245249  .mt-4 {
    246250    margin-top: calc(var(--spacing) * 4);
     
    353357  .transform {
    354358    transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
    355   }
    356   .cursor-pointer {
    357     cursor: pointer;
    358359  }
    359360  .resize {
     
    631632    }
    632633  }
     634  .text-blue-600 {
     635    color: var(--color-blue-600);
     636  }
    633637  .text-destructive {
    634638    color: var(--color-destructive);
     
    660664  .text-warning-foreground {
    661665    color: var(--color-warning-foreground);
     666  }
     667  .uppercase {
     668    text-transform: uppercase;
    662669  }
    663670  .no-underline {
     
    678685    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    679686    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    680   }
    681   .backdrop-filter {
    682     -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,);
    683     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,);
    684   }
    685   .transition {
    686     transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter;
    687     transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    688     transition-duration: var(--tw-duration, var(--default-transition-duration));
    689687  }
    690688  .transition-all {
     
    887885  inherits: false;
    888886  initial-value: 0 0 #0000;
    889 }
    890 @property --tw-backdrop-blur {
    891   syntax: "*";
    892   inherits: false;
    893 }
    894 @property --tw-backdrop-brightness {
    895   syntax: "*";
    896   inherits: false;
    897 }
    898 @property --tw-backdrop-contrast {
    899   syntax: "*";
    900   inherits: false;
    901 }
    902 @property --tw-backdrop-grayscale {
    903   syntax: "*";
    904   inherits: false;
    905 }
    906 @property --tw-backdrop-hue-rotate {
    907   syntax: "*";
    908   inherits: false;
    909 }
    910 @property --tw-backdrop-invert {
    911   syntax: "*";
    912   inherits: false;
    913 }
    914 @property --tw-backdrop-opacity {
    915   syntax: "*";
    916   inherits: false;
    917 }
    918 @property --tw-backdrop-saturate {
    919   syntax: "*";
    920   inherits: false;
    921 }
    922 @property --tw-backdrop-sepia {
    923   syntax: "*";
    924   inherits: false;
    925887}
    926888@layer properties {
     
    950912      --tw-ring-offset-color: #fff;
    951913      --tw-ring-offset-shadow: 0 0 #0000;
    952       --tw-backdrop-blur: initial;
    953       --tw-backdrop-brightness: initial;
    954       --tw-backdrop-contrast: initial;
    955       --tw-backdrop-grayscale: initial;
    956       --tw-backdrop-hue-rotate: initial;
    957       --tw-backdrop-invert: initial;
    958       --tw-backdrop-opacity: initial;
    959       --tw-backdrop-saturate: initial;
    960       --tw-backdrop-sepia: initial;
    961     }
    962   }
    963 }
     914    }
     915  }
     916}
Note: See TracChangeset for help on using the changeset viewer.