mongodb-chatbot-ui
Version:
UI React components for the MongoDB Chatbot Framework
775 lines (774 loc) • 31.9 kB
JavaScript
import { c as Fe, g as Re, j as N } from "./jsx-runtime.js";
import { c as q } from "./Transition.js";
import { s as Qe, G as Xe, k as Ye, Q as te } from "./index4.js";
import g, { forwardRef as Q, useState as ee, useRef as Ue } from "react";
import { r as He, m as x, F as h, b as G, B as oe, w as ie, d as Z, o as K, R as X, j as ne, e as A, $ as er } from "./index2.js";
import { I as le } from "./index7.js";
import { l as rr } from "./X.js";
import { J as tr } from "./index9.js";
import { j as nr, A as ar, K as or } from "./index18.js";
import { p as ir, W as lr } from "./Warning.js";
import { z as sr } from "./index11.js";
import { C as cr } from "./InputBar.js";
import "react-dom";
import "./has.js";
import "./index8.js";
import "./index3.js";
import "./index10.js";
import "./index5.js";
import "./index6.js";
import "./index12.js";
import "./useChatbotContext.js";
import "./ChatbotProvider.js";
var Ve = { exports: {} };
(function(e, t) {
(function(r, a) {
e.exports = a(g, He);
})(Fe, function(r, a) {
function o(n) {
if (n && typeof n == "object" && "default" in n)
return n;
var l = /* @__PURE__ */ Object.create(null);
return n && Object.keys(n).forEach(function(i) {
if (i !== "default") {
var c = Object.getOwnPropertyDescriptor(n, i);
Object.defineProperty(l, i, c.get ? c : { enumerable: !0, get: function() {
return n[i];
} });
}
}), l.default = n, Object.freeze(l);
}
var s = o(r);
function b(n) {
var l = function(i, c) {
if (typeof i != "object" || !i)
return i;
var v = i[Symbol.toPrimitive];
if (v !== void 0) {
var w = v.call(i, c);
if (typeof w != "object")
return w;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return String(i);
}(n, "string");
return typeof l == "symbol" ? l : l + "";
}
function d(n, l, i) {
return (l = b(l)) in n ? Object.defineProperty(n, l, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : n[l] = i, n;
}
function u() {
return u = Object.assign ? Object.assign.bind() : function(n) {
for (var l = 1; l < arguments.length; l++) {
var i = arguments[l];
for (var c in i)
Object.prototype.hasOwnProperty.call(i, c) && (n[c] = i[c]);
}
return n;
}, u.apply(this, arguments);
}
function f(n, l) {
if (n == null)
return {};
var i, c, v = function(P, E) {
if (P == null)
return {};
var C, y, $ = {}, M = Object.keys(P);
for (y = 0; y < M.length; y++)
C = M[y], E.indexOf(C) >= 0 || ($[C] = P[C]);
return $;
}(n, l);
if (Object.getOwnPropertySymbols) {
var w = Object.getOwnPropertySymbols(n);
for (c = 0; c < w.length; c++)
i = w[c], l.indexOf(i) >= 0 || Object.prototype.propertyIsEnumerable.call(n, i) && (v[i] = n[i]);
}
return v;
}
function m(n, l) {
return l || (l = n.slice(0)), Object.freeze(Object.defineProperties(n, { raw: { value: Object.freeze(l) } }));
}
var p, j, k = { small: 14, default: 16, large: 20, xlarge: 24 }, S = ["className", "size", "title", "aria-label", "aria-labelledby", "fill", "role"], O = function(n) {
var l = n.className, i = n.size, c = i === void 0 ? 16 : i, v = n.title, w = n["aria-label"], P = n["aria-labelledby"], E = n.fill, C = n.role, y = C === void 0 ? "img" : C, $ = f(n, S), M = a.css(p || (p = m([`
color: `, `;
`])), E), W = a.css(j || (j = m([`
flex-shrink: 0;
`]))), _ = function(J, U, z) {
var L, D = z["aria-label"], F = z["aria-labelledby"], I = z.title;
switch (J) {
case "img":
return D || F || I ? d(d(d({}, "aria-labelledby", F), "aria-label", D), "title", I) : { "aria-label": (L = U, "".concat(L.replace(/([a-z])([A-Z])/g, "$1 $2"), " Icon")) };
case "presentation":
return { "aria-hidden": !0, alt: "" };
}
}(y, "ThumbsDown", d(d({ title: v }, "aria-label", w), "aria-labelledby", P));
return s.createElement("svg", u({ className: a.cx(d({}, M, E != null), W, l), height: typeof c == "number" ? c : k[c], width: typeof c == "number" ? c : k[c], role: y }, _, $, { viewBox: "0 0 16 16" }), s.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M8.01852 15C8.53023 15 8.99812 14.7199 9.22744 14.2764L11.728 9.43945C11.7542 9.38879 11.7773 9.33683 11.7972 9.28386C11.8277 9.28652 11.8584 9.28788 11.8896 9.28788L13.9843 9.28788C14.5453 9.28788 15 8.84694 15 8.30303L15 3.18182C15 2.6379 14.5453 2 13.9844 2L11.8896 2C11.6144 2 11 2 11 2C11 2 10.3639 2 9.85827 2L3.99311 2C3.02273 2 2.18787 2.66552 2.00017 3.5887L1.03904 8.31597C0.791531 9.53331 1.7524 10.6667 3.03198 10.6667L5.31958 10.6667L5.31958 12.3829C5.31958 13.8283 6.52794 15 8.01852 15ZM9.85827 8.66091L7.65371 12.9252C7.47137 12.8096 7.35088 12.6099 7.35088 12.3829L7.35088 10.0758C7.35088 9.31427 6.71427 8.69697 5.92897 8.69697L3.64387 8.69697C3.32769 8.69697 3.09089 8.40718 3.15389 8.09735L3.9117 4.37008C3.95907 4.1371 4.16394 3.9697 4.40168 3.9697L9.85827 3.9697L9.85827 8.66091Z", fill: "currentColor" }));
};
return O.displayName = "ThumbsDown", O.isGlyph = !0, O;
});
})(Ve);
var ur = Ve.exports;
const dr = /* @__PURE__ */ Re(ur);
var Ge = { exports: {} };
(function(e, t) {
(function(r, a) {
e.exports = a(g, He);
})(Fe, function(r, a) {
function o(n) {
if (n && typeof n == "object" && "default" in n)
return n;
var l = /* @__PURE__ */ Object.create(null);
return n && Object.keys(n).forEach(function(i) {
if (i !== "default") {
var c = Object.getOwnPropertyDescriptor(n, i);
Object.defineProperty(l, i, c.get ? c : { enumerable: !0, get: function() {
return n[i];
} });
}
}), l.default = n, Object.freeze(l);
}
var s = o(r);
function b(n) {
var l = function(i, c) {
if (typeof i != "object" || !i)
return i;
var v = i[Symbol.toPrimitive];
if (v !== void 0) {
var w = v.call(i, c);
if (typeof w != "object")
return w;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return String(i);
}(n, "string");
return typeof l == "symbol" ? l : l + "";
}
function d(n, l, i) {
return (l = b(l)) in n ? Object.defineProperty(n, l, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : n[l] = i, n;
}
function u() {
return u = Object.assign ? Object.assign.bind() : function(n) {
for (var l = 1; l < arguments.length; l++) {
var i = arguments[l];
for (var c in i)
Object.prototype.hasOwnProperty.call(i, c) && (n[c] = i[c]);
}
return n;
}, u.apply(this, arguments);
}
function f(n, l) {
if (n == null)
return {};
var i, c, v = function(P, E) {
if (P == null)
return {};
var C, y, $ = {}, M = Object.keys(P);
for (y = 0; y < M.length; y++)
C = M[y], E.indexOf(C) >= 0 || ($[C] = P[C]);
return $;
}(n, l);
if (Object.getOwnPropertySymbols) {
var w = Object.getOwnPropertySymbols(n);
for (c = 0; c < w.length; c++)
i = w[c], l.indexOf(i) >= 0 || Object.prototype.propertyIsEnumerable.call(n, i) && (v[i] = n[i]);
}
return v;
}
function m(n, l) {
return l || (l = n.slice(0)), Object.freeze(Object.defineProperties(n, { raw: { value: Object.freeze(l) } }));
}
var p, j, k = { small: 14, default: 16, large: 20, xlarge: 24 }, S = ["className", "size", "title", "aria-label", "aria-labelledby", "fill", "role"], O = function(n) {
var l = n.className, i = n.size, c = i === void 0 ? 16 : i, v = n.title, w = n["aria-label"], P = n["aria-labelledby"], E = n.fill, C = n.role, y = C === void 0 ? "img" : C, $ = f(n, S), M = a.css(p || (p = m([`
color: `, `;
`])), E), W = a.css(j || (j = m([`
flex-shrink: 0;
`]))), _ = function(J, U, z) {
var L, D = z["aria-label"], F = z["aria-labelledby"], I = z.title;
switch (J) {
case "img":
return D || F || I ? d(d(d({}, "aria-labelledby", F), "aria-label", D), "title", I) : { "aria-label": (L = U, "".concat(L.replace(/([a-z])([A-Z])/g, "$1 $2"), " Icon")) };
case "presentation":
return { "aria-hidden": !0, alt: "" };
}
}(y, "ThumbsUp", d(d({ title: v }, "aria-label", w), "aria-labelledby", P));
return s.createElement("svg", u({ className: a.cx(d({}, M, E != null), W, l), height: typeof c == "number" ? c : k[c], width: typeof c == "number" ? c : k[c], role: y }, _, $, { viewBox: "0 0 16 16" }), s.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M7.98148 1C7.46977 1 7.00188 1.28007 6.77256 1.72365L4.27198 6.56054C4.24579 6.61121 4.22269 6.66317 4.20275 6.71614C4.17234 6.71348 4.14155 6.71212 4.11043 6.71212H2.01565C1.45472 6.71212 1 7.15306 1 7.69697V12.8182C1 13.3621 1.45472 14 2.01565 14H4.11043C4.38564 14 5 14 5 14C5 14 5.63614 14 6.14173 14H12.0069C12.9773 14 13.8121 13.3345 13.9998 12.4113L14.961 7.68402C15.2085 6.46669 14.2476 5.33333 12.968 5.33333H10.6804V3.61709C10.6804 2.17171 9.47206 1 7.98148 1ZM6.14173 7.33909L8.34629 3.0748C8.52863 3.19038 8.64912 3.39009 8.64912 3.61709V5.92424C8.64912 6.68572 9.28573 7.30303 10.071 7.30303H12.3561C12.6723 7.30303 12.9091 7.59282 12.8461 7.90265L12.0883 11.6299C12.0409 11.8629 11.8361 12.0303 11.5983 12.0303L6.14173 12.0303V7.33909Z", fill: "currentColor" }));
};
return O.displayName = "ThumbsUp", O.isGlyph = !0, O;
});
})(Ge);
var fr = Ge.exports;
const br = /* @__PURE__ */ Re(fr);
function mr(e) {
var t = function(r, a) {
if (typeof r != "object" || !r)
return r;
var o = r[Symbol.toPrimitive];
if (o !== void 0) {
var s = o.call(r, a);
if (typeof s != "object")
return s;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return String(r);
}(e, "string");
return typeof t == "symbol" ? t : t + "";
}
function R(e, t, r) {
return (t = mr(t)) in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e;
}
function Y() {
return Y = Object.assign ? Object.assign.bind() : function(e) {
for (var t = 1; t < arguments.length; t++) {
var r = arguments[t];
for (var a in r)
Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]);
}
return e;
}, Y.apply(this, arguments);
}
function Ze(e, t) {
if (e == null)
return {};
var r, a, o = function(b, d) {
if (b == null)
return {};
var u, f, m = {}, p = Object.keys(b);
for (f = 0; f < p.length; f++)
u = p[f], d.indexOf(u) >= 0 || (m[u] = b[u]);
return m;
}(e, t);
if (Object.getOwnPropertySymbols) {
var s = Object.getOwnPropertySymbols(e);
for (a = 0; a < s.length; a++)
r = s[a], t.indexOf(r) >= 0 || Object.prototype.propertyIsEnumerable.call(e, r) && (o[r] = e[r]);
}
return o;
}
function B(e, t) {
return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } }));
}
function pr(e, t) {
return function(r) {
if (Array.isArray(r))
return r;
}(e) || function(r, a) {
var o = r == null ? null : typeof Symbol < "u" && r[Symbol.iterator] || r["@@iterator"];
if (o != null) {
var s, b, d, u, f = [], m = !0, p = !1;
try {
if (d = (o = o.call(r)).next, a !== 0)
for (; !(m = (s = d.call(o)).done) && (f.push(s.value), f.length !== a); m = !0)
;
} catch (j) {
p = !0, b = j;
} finally {
try {
if (!m && o.return != null && (u = o.return(), Object(u) !== u))
return;
} finally {
if (p)
throw b;
}
}
return f;
}
}(e, t) || function(r, a) {
if (r) {
if (typeof r == "string")
return se(r, a);
var o = Object.prototype.toString.call(r).slice(8, -1);
if (o === "Object" && r.constructor && (o = r.constructor.name), o === "Map" || o === "Set")
return Array.from(r);
if (o === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))
return se(r, a);
}
}(e, t) || function() {
throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}();
}
function se(e, t) {
t > e.length && (t = e.length);
for (var r = 0, a = new Array(t); r < t; r++)
a[r] = e[r];
return a;
}
var ce, ue, de, fe, be, me, pe, ge, ye, ve, gr = R(R({}, G.Dark, x(ce || (ce = B([`
border-color: `, `;
background: `, `;
&:hover {
border-color: `, `;
background: `, `;
box-shadow: none;
}
`])), h.white, h.gray.light2, h.white, h.gray.light2)), G.Light, x(ue || (ue = B([`
background: `, `;
&:hover {
background: `, `; // override default hover
box-shadow: none;
}
&:focus-visible {
box-shadow: none;
}
`])), h.black, h.black)), yr = x(de || (de = B([`
overflow: hidden; // for ripple
display: flex;
height: 28px;
justify-content: center;
align-items: center;
gap: 6px;
flex-shrink: 0;
align-self: stretch;
border-radius: 6px;
cursor: pointer;
position: relative;
z-index: 0;
border: 1px solid;
`]))), vr = R(R({}, G.Dark, x(fe || (fe = B([`
border: 1px solid `, `;
background: `, `;
&:hover {
box-shadow: `, `;
background: `, `;
}
&:focus-visible {
box-shadow: `, `;
background: `, `;
}
`])), h.gray.dark1, h.gray.dark2, oe.dark.gray, h.gray.dark1, ie.dark.default, h.gray.dark1)), G.Light, x(be || (be = B([`
border: 1px solid `, `;
background: `, `;
&:hover {
box-shadow: `, `;
}
&:focus-visible {
box-shadow: `, `;
}
`])), h.gray.dark1, h.gray.light3, oe.light.gray, ie.light.default)), hr = x(me || (me = B([`
display: flex;
justify-content: center;
align-items: center;
padding: 4px 12px;
height: 100%;
cursor: pointer;
`])));
x(pe || (pe = B([`
overflow: hidden;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border-radius: 5px;
`])));
var jr = ["id", "className", "name", "children", "darkMode", "checked"], re = Q(function(e, t) {
var r = e.id, a = e.className, o = e.name, s = e.children, b = e.darkMode, d = e.checked, u = Ze(e, jr), f = Z(b).theme;
return g.createElement("div", { className: K(yr, vr[f], R({}, gr[f], d), a), ref: t, tabIndex: 0 }, g.createElement("input", Y({ id: r, type: "radio", name: o, defaultChecked: d, "aria-checked": d, hidden: !0 }, u)), g.createElement("label", { htmlFor: r, className: hr }, s));
});
re.displayName = "RadioButton";
var xr = x(ge || (ge = B([`
display: flex;
align-items: center;
gap: 12px;
`]))), Or = x(ye || (ye = B([`
display: flex;
align-items: center;
gap: 4px;
`]))), he = function(e, t) {
return e ? t ? h.black : h.gray.light2 : t ? h.gray.light3 : h.gray.dark1;
}, je = x(ve || (ve = B([`
display: none;
`]))), wr = ["description", "className", "value", "onChange", "darkMode", "hideThumbsDown", "hideThumbsUp"], We = Q(function(e, t) {
var r = e.description, a = r === void 0 ? "How was the response?" : r, o = e.className, s = e.value, b = e.onChange, d = e.darkMode, u = e.hideThumbsDown, f = e.hideThumbsUp, m = Ze(e, wr), p = s !== void 0, j = pr(ee(), 2), k = j[0], S = j[1], O = Z(d).darkMode, n = p ? s === "liked" : k === "liked", l = p ? s === "disliked" : k === "disliked", i = X({ prefix: "message-rating" }), c = function(v) {
b(v), p || S(v.target.value);
};
return g.createElement(ne, { darkMode: O }, g.createElement("div", Y({ className: K(xr, o) }, m, { ref: t }), g.createElement(Qe, null, a), g.createElement("div", { className: Or }, g.createElement(re, { id: "like-".concat(i), "aria-label": "Thumbs up this message", name: i, value: "liked", onChange: c, checked: n, className: K(R({}, je, f)) }, g.createElement(br, { fill: he(O, n) })), g.createElement(re, { id: "dislike-".concat(i), name: i, value: "disliked", "aria-label": "Thumbs down this message", onChange: c, checked: l, className: K(R({}, je, u)) }, g.createElement(dr, { fill: he(O, l) })))));
});
We.displayName = "MessageRating";
function xe(e, t) {
var r = Object.keys(e);
if (Object.getOwnPropertySymbols) {
var a = Object.getOwnPropertySymbols(e);
t && (a = a.filter(function(o) {
return Object.getOwnPropertyDescriptor(e, o).enumerable;
})), r.push.apply(r, a);
}
return r;
}
function Oe(e) {
for (var t = 1; t < arguments.length; t++) {
var r = arguments[t] != null ? arguments[t] : {};
t % 2 ? xe(Object(r), !0).forEach(function(a) {
Cr(e, a, r[a]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : xe(Object(r)).forEach(function(a) {
Object.defineProperty(e, a, Object.getOwnPropertyDescriptor(r, a));
});
}
return e;
}
function kr(e) {
var t = function(r, a) {
if (typeof r != "object" || !r)
return r;
var o = r[Symbol.toPrimitive];
if (o !== void 0) {
var s = o.call(r, a);
if (typeof s != "object")
return s;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return String(r);
}(e, "string");
return typeof t == "symbol" ? t : t + "";
}
function Cr(e, t, r) {
return (t = kr(t)) in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e;
}
function $r(e, t) {
if (e == null)
return {};
var r, a, o = function(b, d) {
if (b == null)
return {};
var u, f, m = {}, p = Object.keys(b);
for (f = 0; f < p.length; f++)
u = p[f], d.indexOf(u) >= 0 || (m[u] = b[u]);
return m;
}(e, t);
if (Object.getOwnPropertySymbols) {
var s = Object.getOwnPropertySymbols(e);
for (a = 0; a < s.length; a++)
r = s[a], t.indexOf(r) >= 0 || Object.prototype.propertyIsEnumerable.call(e, r) && (o[r] = e[r]);
}
return o;
}
function _e(e, t) {
return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } }));
}
function Pr(e, t) {
return function(r) {
if (Array.isArray(r))
return r;
}(e) || function(r, a) {
var o = r == null ? null : typeof Symbol < "u" && r[Symbol.iterator] || r["@@iterator"];
if (o != null) {
var s, b, d, u, f = [], m = !0, p = !1;
try {
if (d = (o = o.call(r)).next, a !== 0)
for (; !(m = (s = d.call(o)).done) && (f.push(s.value), f.length !== a); m = !0)
;
} catch (j) {
p = !0, b = j;
} finally {
try {
if (!m && o.return != null && (u = o.return(), Object(u) !== u))
return;
} finally {
if (p)
throw b;
}
}
return f;
}
}(e, t) || function(r, a) {
if (r) {
if (typeof r == "string")
return we(r, a);
var o = Object.prototype.toString.call(r).slice(8, -1);
if (o === "Object" && r.constructor && (o = r.constructor.name), o === "Map" || o === "Set")
return Array.from(r);
if (o === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))
return we(r, a);
}
}(e, t) || function() {
throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}();
}
function we(e, t) {
t > e.length && (t = e.length);
for (var r = 0, a = new Array(t); r < t; r++)
a[r] = e[r];
return a;
}
var ke, Ce, Er = "lg-text_area", Sr = x(ke || (ke = _e([`
height: auto;
display: flex;
padding: 0;
`]))), Nr = x(Ce || (Ce = _e([`
width: 100%;
min-height: `, `px;
display: flex;
resize: none;
padding: `, "px ", `px;
`])), 64, A[200], A[300]), Mr = or, Tr = ["label", "description", "className", "errorMessage", "successMessage", "darkMode", "disabled", "state", "id", "value", "onChange", "onBlur", "handleValidation", "aria-label", "aria-labelledby", "aria-invalid", "baseFontSize", "data-lgid", "defaultValue"], Je = Q(function(e, t) {
var r = e.label, a = e.description, o = e.className, s = e.errorMessage, b = s === void 0 ? "This input needs your attention" : s, d = e.successMessage, u = d === void 0 ? "Success" : d, f = e.darkMode, m = e.disabled, p = m !== void 0 && m, j = e.state, k = j === void 0 ? Mr.None : j, S = e.id, O = e.value, n = e.onChange, l = e.onBlur, i = e.handleValidation, c = e["aria-label"], v = e["aria-labelledby"], w = e["aria-invalid"], P = e.baseFontSize, E = e["data-lgid"], C = E === void 0 ? Er : E, y = e.defaultValue, $ = y === void 0 ? "" : y, M = $r(e, Tr), W = Xe(P), _ = X({ prefix: "textarea", id: S }), J = Z(f).darkMode, U = typeof O == "string", z = Pr(ee($), 2), L = z[0], D = z[1], F = U ? O : L, I = er(i);
r || v || console.error("For screen-reader accessibility, label or aria-labelledby must be provided to TextArea.");
var qe = Oe({ baseFontSize: W, className: o, darkMode: J, "data-lgid": C, description: a, disabled: p, errorMessage: b, id: _, label: r, state: k, successMessage: u }, { "aria-invalid": w, "aria-label": c, "aria-labelledby": v }), Ke = Oe({ className: Nr, onBlur: function(H) {
l && l(H), I.onBlur(H);
}, onChange: function(H) {
n && n(H), U || D(H.target.value), I.onChange(H);
}, ref: t, title: r ?? void 0, value: F }, M);
return g.createElement(nr, qe, g.createElement(ar, { className: Sr }, g.createElement("textarea", Ke)));
});
Je.displayName = "TextArea";
function zr(e) {
var t = function(r, a) {
if (typeof r != "object" || !r)
return r;
var o = r[Symbol.toPrimitive];
if (o !== void 0) {
var s = o.call(r, a);
if (typeof s != "object")
return s;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return String(r);
}(e, "string");
return typeof t == "symbol" ? t : t + "";
}
function $e(e, t, r) {
return (t = zr(t)) in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e;
}
function V() {
return V = Object.assign ? Object.assign.bind() : function(e) {
for (var t = 1; t < arguments.length; t++) {
var r = arguments[t];
for (var a in r)
Object.prototype.hasOwnProperty.call(r, a) && (e[a] = r[a]);
}
return e;
}, V.apply(this, arguments);
}
function Br(e, t) {
if (e == null)
return {};
var r, a, o = function(b, d) {
if (b == null)
return {};
var u, f, m = {}, p = Object.keys(b);
for (f = 0; f < p.length; f++)
u = p[f], d.indexOf(u) >= 0 || (m[u] = b[u]);
return m;
}(e, t);
if (Object.getOwnPropertySymbols) {
var s = Object.getOwnPropertySymbols(e);
for (a = 0; a < s.length; a++)
r = s[a], t.indexOf(r) >= 0 || Object.prototype.propertyIsEnumerable.call(e, r) && (o[r] = e[r]);
}
return o;
}
function T(e, t) {
return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } }));
}
function Ar(e, t) {
return function(r) {
if (Array.isArray(r))
return r;
}(e) || function(r, a) {
var o = r == null ? null : typeof Symbol < "u" && r[Symbol.iterator] || r["@@iterator"];
if (o != null) {
var s, b, d, u, f = [], m = !0, p = !1;
try {
if (d = (o = o.call(r)).next, a !== 0)
for (; !(m = (s = d.call(o)).done) && (f.push(s.value), f.length !== a); m = !0)
;
} catch (j) {
p = !0, b = j;
} finally {
try {
if (!m && o.return != null && (u = o.return(), Object(u) !== u))
return;
} finally {
if (p)
throw b;
}
}
return f;
}
}(e, t) || function(r, a) {
if (r) {
if (typeof r == "string")
return Pe(r, a);
var o = Object.prototype.toString.call(r).slice(8, -1);
if (o === "Object" && r.constructor && (o = r.constructor.name), o === "Map" || o === "Set")
return Array.from(r);
if (o === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))
return Pe(r, a);
}
}(e, t) || function() {
throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}();
}
function Pe(e, t) {
t > e.length && (t = e.length);
for (var r = 0, a = new Array(t); r < t; r++)
a[r] = e[r];
return a;
}
var Ee, Se, Ne, Me, Te, ze, Be, Ae, Ie, Le, De, Ir = x(Ee || (Ee = T([`
display: flex;
gap: `, `px;
align-items: center;
`])), A[1]), Lr = x(Se || (Se = T([`
color: `, `;
`])), h.gray.dark1), Dr = function(e) {
var t = e.submittedMessage;
return g.createElement("div", { className: Ir }, g.createElement(ir, { color: h.green.dark1 }), g.createElement(te, { className: Lr }, t));
}, Fr = x(Ne || (Ne = T([`
width: 100%;
`]))), Rr = x(Me || (Me = T([`
display: flex;
justify-content: end;
`]))), Ur = x(Te || (Te = T([`
flex: 1;
padding-top: 3px; // to match icon button padding
`]))), Hr = x(ze || (ze = T([`
margin-top: `, `px;
`])), A[100]), Vr = x(Be || (Be = T([`
margin-top: `, `px;
display: flex;
gap: `, `px;
justify-content: end;
`])), A[200], A[2]), ae = Q(function(e, t) {
var r = e.label, a = e.cancelButtonText, o = a === void 0 ? "Cancel" : a, s = e.onCancel, b = e.cancelButtonProps, d = e.submitButtonText, u = d === void 0 ? "Submit" : d, f = e.submitButtonProps, m = e.isSubmitted, p = e.submittedMessage, j = p === void 0 ? "Submitted! Thanks for your feedback." : p, k = e.onSubmit, S = e.darkMode, O = e.onClose, n = e.textareaProps, l = Z(S).darkMode, i = X({ prefix: "lg-chat-imf-input" }), c = X({ prefix: "lg-chat-imf-label" }), v = Ue(null), w = function() {
var y, $;
return ((n == null ? void 0 : n.value) === void 0 || (n == null ? void 0 : n.value.length) < 1) && ((v == null || (y = v.current) === null || y === void 0 ? void 0 : y.value) === void 0 || (v == null || ($ = v.current) === null || $ === void 0 ? void 0 : $.value.length) < 1);
}, P = Ar(ee(w()), 2), E = P[0], C = P[1];
return g.createElement(ne, { darkMode: l }, g.createElement("div", { ref: t }, m ? g.createElement(Dr, { submittedMessage: j }) : g.createElement("form", { className: Fr, onSubmit: function(y) {
y.preventDefault(), k == null || k(y);
} }, g.createElement("div", { className: Rr }, g.createElement(Ye, { id: c, className: Ur }, r), O && g.createElement(tr, { "aria-label": "Close feedback window", onClick: O }, g.createElement(rr, null))), g.createElement(Je, V({ id: i, "aria-labelledby": c, autoFocus: !0, className: Hr }, n, { ref: function(y) {
n != null && n.ref && (n.ref.current = y), v.current = y;
}, onChange: function(y) {
var $;
C(w()), n == null || ($ = n.onChange) === null || $ === void 0 || $.call(n, y);
} })), g.createElement("div", { className: Vr }, g.createElement(le, V({ type: "button", variant: "default", size: "small", onClick: s }, b), o), g.createElement(le, V({ type: "submit", variant: "primary", size: "small", disabled: !!E }, f), u)))));
});
ae.displayName = "InlineMessageFeedback";
var Gr = x(Ae || (Ae = T([`
width: 372px;
border-radius: 16px;
border: 1px solid;
`]))), Zr = x(Ie || (Ie = T([`
padding: `, `px;
`])), A[3]), Wr = $e($e({}, G.Dark, x(Le || (Le = T([`
background-color: `, `;
border-color: `, `;
`])), h.gray.dark3, h.gray.dark2)), G.Light, x(De || (De = T([`
background-color: `, `;
border-color: `, `;
`])), h.black, h.black)), _r = ["darkMode", "cancelButtonText", "onCancel", "cancelButtonProps", "submitButtonText", "submitButtonProps", "onSubmit", "textareaProps", "onClose", "label"], Jr = Q(function(e, t) {
var r = e.darkMode, a = e.cancelButtonText, o = e.onCancel, s = e.cancelButtonProps, b = e.submitButtonText, d = e.submitButtonProps, u = e.onSubmit, f = e.textareaProps, m = e.onClose, p = e.label, j = Br(e, _r), k = Z(r).theme;
return g.createElement(ne, { darkMode: !0 }, g.createElement(sr, V({ ref: t, spacing: A[3] }, j, { className: K(Gr, Wr[k]) }), g.createElement("div", { className: Zr }, g.createElement(ae, { cancelButtonText: a, onCancel: o, cancelButtonProps: s, submitButtonText: b, submitButtonProps: d, onSubmit: u, textareaProps: f, onClose: m, label: p }))));
});
Jr.displayName = "PopoverMessageFeedback";
function vt(e) {
const {
submit: t,
abandon: r,
status: a,
errorMessage: o,
maxCommentCharacterCount: s,
messageRatingProps: b
} = e, d = b.value !== void 0, u = Ue(null), f = a === "submitted", [m, p] = ee(0), j = s ? m > s : !1;
return /* @__PURE__ */ N.jsxs(
"div",
{
className: q`
& > div + div {
margin-top: 0.5rem;
}
`,
children: [
/* @__PURE__ */ N.jsx(We, { ...b }),
d && a !== "abandoned" ? /* @__PURE__ */ N.jsxs(N.Fragment, { children: [
/* @__PURE__ */ N.jsx(
ae,
{
ref: u,
cancelButtonText: "Cancel",
onCancel: () => r(),
submitButtonText: "Submit",
onSubmit: async (k) => {
const O = k.target.querySelector("textarea");
j || await t((O == null ? void 0 : O.value) ?? "");
},
textareaProps: {
onChange: (k) => {
const S = k.target;
p(S.value.length);
},
// @ts-expect-error Hacky fix for https://jira.mongodb.org/browse/LG-3964
label: b.value === "liked" ? "Provide additional feedback here. What did you like about this response?" : "Provide additional feedback here. How can we improve?"
},
isSubmitted: f,
submittedMessage: "Submitted! Thank you for your feedback."
}
),
s && a !== "submitted" ? /* @__PURE__ */ N.jsxs(
"div",
{
className: q`
margin-top: -2rem !important;
display: flex;
flex-direction: row;
gap: 0.5rem;
`,
children: [
/* @__PURE__ */ N.jsx(
cr,
{
current: m,
max: s
}
),
j ? /* @__PURE__ */ N.jsx(
te,
{
className: q`
color: ${h.red.base};
`,
children: `Message must contain ${s} characters or fewer`
}
) : null
]
}
) : null,
o ? /* @__PURE__ */ N.jsx(qr, { errorMessage: o }) : null
] }) : null
]
}
);
}
function qr({
errorMessage: e
}) {
const { darkMode: t } = Z();
return /* @__PURE__ */ N.jsxs(
"div",
{
className: q`
display: flex;
gap: ${A[100]}px;
align-items: center;
`,
children: [
/* @__PURE__ */ N.jsx(lr, { color: h.red.base }),
/* @__PURE__ */ N.jsx(
te,
{
className: q`
color: ${t ? h.gray.light1 : h.gray.dark2};
`,
children: e
}
)
]
}
);
}
export {
qr as InlineMessageFeedbackErrorState,
vt as MessageRatingWithFeedbackComment
};