@opentiny/tiny-robot 0.3.0-alpha.3 → 0.3.0-alpha.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,66 +1,69 @@
1
- import { defineComponent as V, createElementBlock as p, openBlock as s, createBlock as F, createElementVNode as g, createVNode as $, resolveDynamicComponent as p0, unref as a, toDisplayString as Z, renderSlot as T, mergeModels as W, useModel as Q, ref as c, computed as m, watch as B, Transition as j, withCtx as R, createCommentVNode as z, normalizeStyle as H, normalizeClass as N, useCssVars as f0, useAttrs as v0, Fragment as P, renderList as g0, createTextVNode as m0 } from "vue";
2
- import { c as J, d as _0, u as h0, b as C0, o as y0 } from "../index2.js";
3
- import L0 from "../flow-layout-buttons/index.js";
4
- import { t as d } from "../utils.js";
5
- import { P as w0, f as k0 } from "../tiny-robot-svgs.js";
6
- import M0 from "../icon-button/index.js";
7
- import { _ as q } from "../_plugin-vue_export-helper.js";
8
- import { _ as x0 } from "../loading.js";
9
- const F0 = { class: "tr-question__header" }, $0 = {
1
+ import { defineComponent as z, createElementBlock as g, createCommentVNode as U, openBlock as n, createBlock as k, createElementVNode as v, resolveDynamicComponent as ue, createVNode as M, unref as h, toDisplayString as O, renderSlot as m, mergeModels as V, useModel as A, ref as i, computed as p, watch as W, Transition as ce, withCtx as S, normalizeStyle as J, normalizeClass as D, Fragment as pe, renderList as de, createTextVNode as fe } from "vue";
2
+ import { IconSparkles as ve, IconClose as me } from "@opentiny/tiny-robot-svgs";
3
+ import { a as ge, h as _e, u as he, w as ye, d as we, o as ke } from "../index3.js";
4
+ import { u as Te, c as $e, B as Ce } from "../index4.js";
5
+ import Ie from "../flow-layout-buttons/index.js";
6
+ import qe from "../icon-button/index.js";
7
+ import { _ as T } from "../_plugin-vue_export-helper.js";
8
+ import { _ as Me } from "../loading.js";
9
+ import { _ as Se } from "../no-data.js";
10
+ import { t as G } from "../utils.js";
11
+ const Be = {
12
+ key: 0,
13
+ class: "tr-question-popover__backdrop"
14
+ }, Re = /* @__PURE__ */ z({
15
+ __name: "Backdrop",
16
+ props: {
17
+ show: { type: Boolean }
18
+ },
19
+ setup(l) {
20
+ return (t, y) => t.show ? (n(), g("div", Be)) : U("", !0);
21
+ }
22
+ }), be = /* @__PURE__ */ T(Re, [["__scopeId", "data-v-50205eaf"]]), Ge = { class: "tr-question__header" }, Oe = {
10
23
  key: 1,
11
24
  class: "tr-question__header-icon"
12
- }, T0 = { class: "tr-question__header-title" }, q0 = /* @__PURE__ */ V({
25
+ }, xe = { class: "tr-question__header-title" }, ze = /* @__PURE__ */ z({
13
26
  __name: "Header",
14
27
  props: {
15
28
  icon: {},
16
29
  title: {}
17
30
  },
18
- emits: ["close"],
19
- setup(n, { emit: o }) {
20
- const t = n, f = o, L = () => {
21
- f("close");
22
- };
23
- return (w, r) => (s(), p("div", F0, [
24
- t.icon ? (s(), F(p0(t.icon), { key: 0 })) : (s(), p("span", $0, [
25
- $(a(w0), { style: { color: "#1476ff" } })
31
+ setup(l) {
32
+ const t = l;
33
+ return (y, o) => (n(), g("div", Ge, [
34
+ t.icon ? (n(), k(ue(t.icon), { key: 0 })) : (n(), g("span", Oe, [
35
+ M(h(ve), { style: { color: "#1476ff" } })
26
36
  ])),
27
- g("h3", T0, Z(t.title), 1),
28
- $(a(M0), {
29
- class: "tr-question-popover__close",
30
- icon: a(k0),
31
- size: "24",
32
- "svg-size": "20",
33
- onClick: L
34
- }, null, 8, ["icon"])
37
+ v("h3", xe, O(t.title), 1)
35
38
  ]));
36
39
  }
37
- }), b0 = /* @__PURE__ */ q(q0, [["__scopeId", "data-v-bc7ae445"]]), I0 = {}, S0 = { class: "tr-question__loading-wrapper" };
38
- function R0(n, o) {
39
- return s(), p("div", S0, [
40
- T(n.$slots, "default", {}, () => [
41
- o[0] || (o[0] = g("img", {
40
+ }), Ee = /* @__PURE__ */ T(ze, [["__scopeId", "data-v-76bef623"]]), Le = {}, Ne = { class: "tr-question__loading-wrapper" };
41
+ function Pe(l, t) {
42
+ return n(), g("div", Ne, [
43
+ m(l.$slots, "default", {}, () => [
44
+ t[0] || (t[0] = v("img", {
42
45
  class: "tr-question__loading",
43
- src: x0
46
+ src: Me
44
47
  }, null, -1)),
45
- o[1] || (o[1] = g("span", { class: "tr-question__loading-text" }, "正在加载", -1))
48
+ t[1] || (t[1] = v("span", { class: "tr-question__loading-text" }, "正在加载", -1))
46
49
  ], !0)
47
50
  ]);
48
51
  }
49
- const z0 = /* @__PURE__ */ q(I0, [["render", R0], ["__scopeId", "data-v-4847dfc6"]]), Z0 = "data:image/svg+xml,%3csvg%20width='120.000000'%20height='120.000000'%20viewBox='0%200%20120%20120'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cdesc%3e%20Created%20with%20Pixso.%20%3c/desc%3e%3cdefs%20/%3e%3crect%20width='120.000000'%20height='120.000000'%20fill='%23FFFFFF'%20fill-opacity='0'%20/%3e%3cpath%20d='M18.75%2037.31L104.52%2037.31C107.68%2037.31%20110.25%2039.87%20110.25%2043.04L110.25%20105.15C110.25%20108.28%20107.71%20110.81%20104.59%20110.81L24.4%20110.81C21.28%20110.81%2018.75%20108.28%2018.75%20105.15L18.75%2037.31Z'%20fill='%23F0F0F0'%20fill-opacity='1.000000'%20fill-rule='evenodd'%20/%3e%3cpath%20d='M13.22%2038.06L84.75%2038.06L84.75%20105.15C84.75%20108.28%2082.21%20110.81%2079.09%20110.81L16.9%20110.81C13.78%20110.81%2011.25%20108.12%2011.25%20105L11.25%2059.25L0.75%2059.25C0.75%2058.15%2012.13%2038.06%2013.22%2038.06Z'%20fill='%23FFFFFF'%20fill-opacity='1.000000'%20fill-rule='evenodd'%20/%3e%3cpath%20d='M84.44%2038.06L105.13%2038.06C106.16%2038.06%20107.41%2037.86%20107.91%2038.76L118.07%2056.96C118.45%2057.64%20119.18%2058.68%20118.5%2059.06C118.28%2059.17%20117.08%2059.06%20116.84%2059.06L99.33%2059.06C97.21%2059.06%2095.27%2057.87%2094.3%2055.98L84.44%2038.06Z'%20fill='%23FFFFFF'%20fill-opacity='1.000000'%20fill-rule='evenodd'%20/%3e%3cpath%20d='M110.42%2059.08L110.42%20105.09C110.42%20108.35%20107.78%20111%20104.51%20111L78.89%20111L78.89%20109.68L104.51%20109.68C107.05%20109.68%20109.11%20107.63%20109.11%20105.09L109.11%2059.08L110.42%2059.08Z'%20fill='%23808080'%20fill-opacity='1.000000'%20fill-rule='nonzero'%20/%3e%3cpath%20d='M85.38%2037.5L85.38%20105.09C85.38%20108.35%2082.73%20111%2079.46%20111L16.42%20111C13.15%20111%2010.51%20108.35%2010.51%20105.09L10.51%2059.08L11.82%2059.08L11.82%20105.09C11.82%20107.63%2013.88%20109.68%2016.42%20109.68L79.46%20109.68C82%20109.68%2084.06%20107.63%2084.06%20105.09L84.06%2038.81L16%2038.81L16%2037.5L85.38%2037.5Z'%20fill='%23808080'%20fill-opacity='1.000000'%20fill-rule='nonzero'%20/%3e%3cpath%20d='M14.14%2037.5C13.25%2037.5%2012.42%2037.96%2011.95%2038.74L0.19%2057.97C-0.19%2058.59%200%2059.41%200.6%2059.79C0.81%2059.92%201.05%2060%201.29%2060L68.53%2060C70.28%2060%2071.92%2059.08%2072.87%2057.58L85.56%2037.5L14.14%2037.5ZM14.47%2039L82.76%2039L71.48%2056.71C70.78%2057.82%2069.56%2058.5%2068.26%2058.5L1.76%2058.5L13.39%2039.61C13.62%2039.23%2014.03%2039%2014.47%2039Z'%20fill='%23808080'%20fill-opacity='1.000000'%20fill-rule='nonzero'%20/%3e%3cpath%20d='M106.12%2037.5C106.97%2037.5%20107.75%2037.95%20108.21%2038.7L119.8%2057.79C120.17%2058.4%20120%2059.21%20119.43%2059.6C119.22%2059.74%20118.99%2059.81%20118.75%2059.81L99.22%2059.81C97.46%2059.81%2095.83%2058.82%2094.94%2057.22L83.97%2037.5L106.12%2037.5ZM106.09%2039L86.69%2039L96.27%2056.57C96.92%2057.76%2098.11%2058.5%2099.39%2058.5L118.35%2058.5L107.1%2039.59C106.88%2039.22%20106.5%2039%20106.09%2039Z'%20fill='%23808080'%20fill-opacity='1.000000'%20fill-rule='nonzero'%20/%3e%3crect%20x='20.250000'%20y='84.000000'%20rx='1.886225'%20width='20.999998'%20height='6.000000'%20fill='%231476FF'%20fill-opacity='1.000000'%20/%3e%3cpath%20d='M35.34%2094.5C35.7%2094.5%2036%2094.83%2036%2095.25C36%2095.66%2035.7%2096%2035.34%2096L20.9%2096C20.54%2096%2020.25%2095.66%2020.25%2095.25C20.25%2094.83%2020.54%2094.5%2020.9%2094.5L35.34%2094.5Z'%20fill='%23808080'%20fill-opacity='1.000000'%20fill-rule='nonzero'%20/%3e%3crect%20x='20.250000'%20y='99.000000'%20rx='0.750000'%20width='7.500000'%20height='1.500000'%20fill='%23808080'%20fill-opacity='1.000000'%20/%3e%3cpath%20d='M60%209C60.41%209%2060.75%209.29%2060.75%209.66L60.75%2018.91C60.75%2019.27%2060.41%2019.57%2060%2019.57C59.58%2019.57%2059.24%2019.27%2059.24%2018.91L59.24%209.66C59.24%209.29%2059.58%209%2060%209Z'%20fill='%23808080'%20fill-opacity='1.000000'%20fill-rule='nonzero'%20/%3e%3cpath%20d='M84.83%2012.96C85.19%2013.17%2085.33%2013.59%2085.15%2013.91L80.52%2021.92C80.34%2022.24%2079.9%2022.33%2079.54%2022.12C79.18%2021.91%2079.03%2021.48%2079.21%2021.17L83.84%2013.16C84.02%2012.84%2084.46%2012.75%2084.83%2012.96Z'%20fill='%23808080'%20fill-opacity='1.000000'%20fill-rule='nonzero'%20/%3e%3cpath%20d='M35.17%2012.96C35.53%2012.75%2035.97%2012.84%2036.15%2013.16L40.78%2021.17C40.96%2021.48%2040.81%2021.91%2040.45%2022.12C40.09%2022.33%2039.65%2022.24%2039.47%2021.92L34.84%2013.91C34.66%2013.59%2034.81%2013.17%2035.17%2012.96Z'%20fill='%23808080'%20fill-opacity='1.000000'%20fill-rule='nonzero'%20/%3e%3c/svg%3e", B0 = {}, G0 = { class: "tr-question__no-data-wrapper" };
50
- function O0(n, o) {
51
- return s(), p("div", G0, [
52
- T(n.$slots, "default", {}, () => [
53
- o[0] || (o[0] = g("img", {
52
+ const Ve = /* @__PURE__ */ T(Le, [["render", Pe], ["__scopeId", "data-v-5cdf0688"]]), We = {}, De = { class: "tr-question__no-data-wrapper" };
53
+ function Ue(l, t) {
54
+ return n(), g("div", De, [
55
+ m(l.$slots, "default", {}, () => [
56
+ t[0] || (t[0] = v("img", {
54
57
  class: "tr-question__no-data",
55
- src: Z0
58
+ src: Se
56
59
  }, null, -1)),
57
- o[1] || (o[1] = g("span", { class: "tr-question__no-data-text" }, "暂时没有内容", -1))
60
+ t[1] || (t[1] = v("span", { class: "tr-question__no-data-text" }, "暂时没有内容", -1))
58
61
  ], !0)
59
62
  ]);
60
63
  }
61
- const P0 = /* @__PURE__ */ q(B0, [["render", O0], ["__scopeId", "data-v-b7a7a181"]]), W0 = { class: "tr-tooltip-content" }, H0 = /* @__PURE__ */ V({
64
+ const Fe = /* @__PURE__ */ T(We, [["render", Ue], ["__scopeId", "data-v-a33638dd"]]), He = { class: "tr-tooltip-content" }, Qe = /* @__PURE__ */ z({
62
65
  __name: "Tooltip",
63
- props: /* @__PURE__ */ W({
66
+ props: /* @__PURE__ */ V({
64
67
  show: { type: Boolean },
65
68
  content: {},
66
69
  trigger: {},
@@ -73,219 +76,248 @@ const P0 = /* @__PURE__ */ q(B0, [["render", O0], ["__scopeId", "data-v-b7a7a181
73
76
  showModifiers: {}
74
77
  }),
75
78
  emits: ["update:show"],
76
- setup(n) {
77
- const o = n, t = Q(n, "show"), f = c(o.show), L = m(() => o.trigger), { x: w, y: r, width: _, height: C } = J(L), k = m(() => o.trigger ? {
78
- left: d(w.value),
79
- top: o.placement === "top" ? d(r.value) : d(r.value + C.value),
80
- width: d(_.value)
79
+ setup(l) {
80
+ const t = l, y = A(l, "show"), o = i(t.show), $ = p(() => t.trigger), { x: u, y: d, width: _, height: C } = ge($), E = p(() => t.trigger ? {
81
+ left: G(u.value),
82
+ top: t.placement === "top" ? G(d.value) : G(d.value + C.value),
83
+ width: G(_.value)
81
84
  } : {});
82
- let h;
83
- B(
84
- () => t.value,
85
- (i) => {
86
- const u = i ? o.delayOpen : o.delayClose;
87
- h && (clearTimeout(h), h = void 0, i || (f.value = !1)), u ? h = setTimeout(() => f.value = i || !1, u) : f.value = i || !1;
85
+ let f;
86
+ W(
87
+ () => y.value,
88
+ (r) => {
89
+ const c = r ? t.delayOpen : t.delayClose;
90
+ f && (clearTimeout(f), f = void 0, r || (o.value = !1)), c ? f = setTimeout(() => o.value = r || !1, c) : o.value = r || !1;
88
91
  }
89
- ), B(
90
- () => o.disabled,
91
- (i) => {
92
- i && (h && clearTimeout(h), f.value = !1);
92
+ ), W(
93
+ () => t.disabled,
94
+ (r) => {
95
+ r && (f && clearTimeout(f), o.value = !1);
93
96
  }
94
97
  );
95
- const b = (i) => {
96
- var u;
97
- (u = L.value) != null && u.contains(i.relatedTarget) || (t.value = !1);
98
+ const w = (r) => {
99
+ var c;
100
+ (c = $.value) != null && c.contains(r.relatedTarget) || (y.value = !1);
98
101
  };
99
- return (i, u) => (s(), F(j, { name: "tr-tooltip" }, {
100
- default: R(() => [
101
- f.value ? (s(), p("div", {
102
+ return (r, c) => (n(), k(ce, { name: "tr-tooltip" }, {
103
+ default: S(() => [
104
+ o.value ? (n(), g("div", {
102
105
  key: 0,
103
- class: N(["tr-tooltip", `placement-${o.placement}`]),
106
+ class: D(["tr-tooltip", `placement-${t.placement}`]),
104
107
  role: "tooltip",
105
- style: H(k.value),
106
- onMouseleave: b
108
+ style: J(E.value),
109
+ onMouseleave: w
107
110
  }, [
108
- u[0] || (u[0] = g("div", { class: "tr-tooltip-arrow" }, null, -1)),
109
- g("span", W0, Z(o.content), 1)
110
- ], 38)) : z("", !0)
111
+ c[0] || (c[0] = v("div", { class: "tr-tooltip-arrow" }, null, -1)),
112
+ v("span", He, O(t.content), 1)
113
+ ], 38)) : U("", !0)
111
114
  ]),
112
115
  _: 1
113
116
  }));
114
117
  }
115
- }), N0 = /* @__PURE__ */ q(H0, [["__scopeId", "data-v-2d58fbb9"]]), V0 = {
116
- key: 0,
117
- class: "tr-question-popover__backdrop"
118
- }, E0 = ["onClick", "onMouseenter", "onMouseleave"], D0 = /* @__PURE__ */ V({
118
+ }), je = /* @__PURE__ */ T(Qe, [["__scopeId", "data-v-72e44084"]]), Ae = ["onClick", "onMouseenter", "onMouseleave"], Je = /* @__PURE__ */ z({
119
119
  __name: "index",
120
- props: /* @__PURE__ */ W({
120
+ props: /* @__PURE__ */ V({
121
+ appendTo: {},
121
122
  data: {},
122
- title: { default: "热门问题" },
123
+ title: {
124
+ default: "热门问题"
125
+ },
123
126
  icon: {},
124
- show: { type: Boolean },
125
- trigger: { default: "click" },
127
+ show: {
128
+ type: Boolean
129
+ },
130
+ trigger: {
131
+ default: "click"
132
+ },
126
133
  selectedGroup: {},
127
- groupShowMoreTrigger: { default: "hover" },
128
- loading: { type: Boolean },
129
- popoverWidth: { default: 540 },
130
- popoverHeight: { default: 464 },
131
- topOffset: { default: 0 }
134
+ groupShowMoreTrigger: {
135
+ default: "hover"
136
+ },
137
+ loading: {
138
+ type: Boolean
139
+ },
140
+ topOffset: {
141
+ default: 8
142
+ }
132
143
  }, {
133
144
  selectedGroup: {},
134
145
  selectedGroupModifiers: {}
135
146
  }),
136
- emits: /* @__PURE__ */ W(["item-click", "group-click", "open", "close"], ["update:selectedGroup"]),
137
- setup(n, { emit: o }) {
138
- f0((e) => ({
139
- "193dab18": a(d)(t.popoverHeight),
140
- 67584702: a(y) ? "0" : "24px",
141
- "3f4a7a6b": a(y) ? "unset" : "0",
142
- "9f472bc2": a(y) ? "translateY(100%)" : "unset",
143
- "3f4a7a8a": a(y) ? "unset" : "1",
144
- "1f51979f": a(y) ? "translateY(0)" : "unset"
145
- }));
146
- const t = n, f = v0(), L = m(() => f.style), w = c(!1), r = m({
147
- get: () => t.trigger === "manual" ? t.show : w.value,
147
+ emits: /* @__PURE__ */ V(["item-click", "group-click", "open", "close", "click-outside"], ["update:selectedGroup"]),
148
+ setup(l, {
149
+ expose: t,
150
+ emit: y
151
+ }) {
152
+ const o = l, $ = i(!1), u = p({
153
+ get: () => o.trigger === "manual" ? o.show : $.value,
148
154
  set: (e) => {
149
- t.trigger !== "manual" && (w.value = e);
155
+ o.trigger !== "manual" && ($.value = e);
150
156
  }
151
- }), _ = o, C = Q(n, "selectedGroup"), k = m(() => {
157
+ }), d = y, _ = A(l, "selectedGroup"), C = p(() => {
152
158
  var e;
153
- return typeof ((e = t.data.at(0)) == null ? void 0 : e.group) == "string";
159
+ return typeof ((e = o.data.at(0)) == null ? void 0 : e.group) == "string";
154
160
  });
155
- !C.value && k.value && t.data.length && (C.value = t.data[0].group);
156
- const h = m(() => {
161
+ !_.value && C.value && o.data.length && (_.value = o.data[0].group);
162
+ const E = p(() => {
157
163
  var e;
158
- return k.value ? ((e = t.data.find((l) => l.group === C.value)) == null ? void 0 : e.items) || [] : t.data;
159
- }), b = m(() => k.value ? t.data.map((e) => ({
164
+ return C.value ? ((e = o.data.find((s) => s.group === _.value)) == null ? void 0 : e.items) || [] : o.data;
165
+ }), f = p(() => C.value ? o.data.map((e) => ({
160
166
  ...e,
161
167
  id: e.group
162
- })) : []), i = c(null), u = c(null), { x: K, y: X, update: e0 } = J(i), y = _0("(max-width: 767px)"), E = c(null), { isScrolling: D } = h0(E, { throttle: 100 }), I = c([]), t0 = m(() => I.value.at(0)), o0 = (e, l) => {
163
- I.value[l] = e;
164
- }, O = c([]), l0 = () => {
165
- O.value = I.value.map((e) => e ? e.scrollWidth > e.clientWidth : !1);
166
- }, U = c(null), Y = c(null), S = c(!1), A = c(""), { width: s0 } = C0(t0);
167
- B(s0, () => {
168
- l0();
168
+ })) : []), w = i(null), r = p(() => {
169
+ var e;
170
+ return (e = w.value) == null ? void 0 : e.triggerRef;
171
+ }), c = p(() => {
172
+ var e;
173
+ return (e = w.value) == null ? void 0 : e.popperRef;
174
+ }), B = _e("(max-width: 767px)"), F = i(null), L = i(!1), {
175
+ isScrolling: K
176
+ } = he(F);
177
+ ye(K, (e) => {
178
+ L.value = e;
179
+ }, {
180
+ throttle: 100,
181
+ leading: !0,
182
+ trailing: !0
169
183
  });
170
- const a0 = m(() => y.value ? {
184
+ const R = i([]), X = p(() => R.value.at(0)), Y = (e, s) => {
185
+ R.value[s] = e;
186
+ }, N = i([]), Z = () => {
187
+ N.value = R.value.map((e) => e ? e.scrollWidth > e.clientWidth : !1);
188
+ }, H = i(null), Q = i(null), b = i(!1), j = i(""), {
189
+ width: ee
190
+ } = we(X);
191
+ W(ee, () => {
192
+ Z();
193
+ });
194
+ const te = p(() => B.value ? {
171
195
  left: 0,
172
196
  right: 0,
173
- bottom: 0
174
- } : {
175
- left: `min(${d(K.value)}, 100% - ${d(t.popoverWidth)})`,
176
- top: `max(${d(X.value)} - ${d(t.popoverHeight)} + ${d(t.topOffset)} - 8px, 0px)`,
177
- width: d(t.popoverWidth)
178
- });
179
- t.trigger === "click" && y0(u, (e) => {
180
- var l;
181
- (l = i.value) != null && l.contains(e.target) && e.stopPropagation(), r.value = !1, _("close");
182
- }), B(r, (e) => {
183
- e && e0();
197
+ bottom: 0,
198
+ top: "unset",
199
+ minWidth: "100%"
200
+ } : {}), oe = Te(r, o.appendTo);
201
+ $e(() => ({
202
+ to: oe.value
203
+ }), () => M(be, {
204
+ show: u.value && B.value
205
+ }, null));
206
+ const P = () => {
207
+ o.trigger === "click" && (u.value ? d("open") : d("close"));
208
+ };
209
+ ke(c, (e) => {
210
+ d("click-outside", e), u.value = !1, P();
211
+ }, {
212
+ ignore: [r]
184
213
  });
185
- const n0 = () => {
186
- r.value = !r.value, r.value && _("open");
187
- }, r0 = () => {
188
- r.value = !1, _("close");
189
- }, i0 = (e) => {
190
- _("item-click", e), r.value = !1, t.trigger === "click" && _("close");
191
- }, u0 = (e) => {
192
- const l = t.data.find((v) => v.group === e);
193
- l && _("group-click", l);
194
- }, c0 = (e, l) => {
195
- Y.value = I.value[l], S.value = !0, A.value = e.text;
196
- }, d0 = (e) => {
197
- var l;
198
- ((l = U.value) == null ? void 0 : l.$el).contains(e.relatedTarget) || (S.value = !1);
214
+ const se = () => {
215
+ u.value = !u.value, P();
216
+ }, le = () => {
217
+ u.value = !1, d("close");
218
+ }, ne = (e) => {
219
+ d("item-click", e), u.value = !1, P();
220
+ }, re = (e) => {
221
+ const s = o.data.find((a) => a.group === e);
222
+ s && d("group-click", s);
223
+ }, ae = (e, s) => {
224
+ Q.value = R.value[s], b.value = !0, j.value = e.text;
225
+ }, ie = (e) => {
226
+ var s;
227
+ ((s = H.value) == null ? void 0 : s.$el).contains(e.relatedTarget) || (b.value = !1);
199
228
  };
200
- return (e, l) => (s(), p(P, null, [
201
- g("div", {
202
- class: N(["tr-question-popover__wrapper", a(f).class]),
203
- style: H(L.value),
204
- ref_key: "popoverTriggerRef",
205
- ref: i,
206
- onClick: n0
207
- }, [
208
- T(e.$slots, "default", {}, void 0, !0)
209
- ], 6),
210
- r.value && a(y) ? (s(), p("div", V0)) : z("", !0),
211
- $(j, { name: "tr-question-popover" }, {
212
- default: R(() => [
213
- r.value ? (s(), p("div", {
214
- key: 0,
215
- class: "tr-question-popover",
216
- style: H(a0.value),
217
- ref_key: "popoverRef",
218
- ref: u
219
- }, [
220
- $(b0, {
221
- icon: t.icon,
222
- title: t.title,
223
- onClose: r0
224
- }, null, 8, ["icon", "title"]),
225
- t.loading ? (s(), F(z0, { key: 0 }, {
226
- default: R(() => [
227
- T(e.$slots, "loading", {}, void 0, !0)
228
- ]),
229
- _: 3
230
- })) : t.data.length === 0 ? (s(), F(P0, { key: 1 }, {
231
- default: R(() => [
232
- T(e.$slots, "empty", {}, void 0, !0)
233
- ]),
234
- _: 3
235
- })) : (s(), p(P, { key: 2 }, [
236
- b.value.length > 0 ? (s(), F(a(L0), {
237
- key: 0,
238
- class: "tr-question__group",
239
- items: b.value,
240
- selected: C.value,
241
- "onUpdate:selected": l[0] || (l[0] = (v) => C.value = v),
242
- "lines-limit": 2,
243
- "show-more-trigger": t.groupShowMoreTrigger,
244
- onItemClick: u0
245
- }, null, 8, ["items", "selected", "show-more-trigger"])) : z("", !0),
246
- g("ul", {
247
- class: N(["tr-question__list", { scrolling: a(D) }]),
248
- ref_key: "listRef",
249
- ref: E
250
- }, [
251
- (s(!0), p(P, null, g0(h.value, (v, M) => (s(), p("li", {
252
- class: "tr-question__list-item",
253
- key: v.id,
254
- ref_for: !0,
255
- ref: (x) => o0(x, M),
256
- onClick: (x) => i0(v),
257
- onMouseenter: (x) => O.value[M] && c0(v, M),
258
- onMouseleave: (x) => O.value[M] && d0(x)
259
- }, [
260
- g("span", null, Z(M + 1) + ". ", 1),
261
- m0(Z(v.text), 1)
262
- ], 40, E0))), 128))
263
- ], 2)
264
- ], 64)),
265
- $(N0, {
266
- ref_key: "tooltipRef",
267
- ref: U,
268
- show: S.value,
269
- "onUpdate:show": l[1] || (l[1] = (v) => S.value = v),
270
- content: A.value,
271
- trigger: Y.value,
272
- disabled: a(D),
273
- placement: "top",
274
- "delay-open": 300,
275
- "delay-close": 300
276
- }, null, 8, ["show", "content", "trigger", "disabled"])
277
- ], 4)) : z("", !0)
278
- ]),
229
+ return t({
230
+ update: () => {
231
+ var e;
232
+ (e = w.value) == null || e.update();
233
+ }
234
+ }), (e, s) => (n(), k(h(Ce), {
235
+ show: u.value,
236
+ class: D(["tr-question-popover", {
237
+ mobile: h(B)
238
+ }]),
239
+ style: J(te.value),
240
+ ref_key: "basePopperRef",
241
+ ref: w,
242
+ placement: "top-left",
243
+ "append-to": o.appendTo,
244
+ offset: o.topOffset,
245
+ "transition-props": {
246
+ name: h(B) ? "tr-question-popover-mobile" : "tr-question-popover"
247
+ },
248
+ "prevent-overflow": !0,
249
+ "trigger-events": {
250
+ onClick: se
251
+ }
252
+ }, {
253
+ trigger: S(() => [m(e.$slots, "trigger", {}, void 0, !0)]),
254
+ content: S(() => [m(e.$slots, "header", {}, () => [M(Ee, {
255
+ icon: o.icon,
256
+ title: o.title
257
+ }, null, 8, ["icon", "title"])], !0), o.loading ? (n(), k(Ve, {
258
+ key: 0
259
+ }, {
260
+ default: S(() => [m(e.$slots, "loading", {}, void 0, !0)]),
261
+ _: 3
262
+ })) : o.data.length === 0 ? (n(), k(Fe, {
263
+ key: 1
264
+ }, {
265
+ default: S(() => [m(e.$slots, "empty", {}, void 0, !0)]),
279
266
  _: 3
280
- })
281
- ], 64));
267
+ })) : m(e.$slots, "body", {
268
+ key: 2
269
+ }, () => [f.value.length > 0 ? (n(), k(h(Ie), {
270
+ key: 0,
271
+ class: "tr-question__group",
272
+ items: f.value,
273
+ selected: _.value,
274
+ "onUpdate:selected": s[0] || (s[0] = (a) => _.value = a),
275
+ "lines-limit": 2,
276
+ "show-more-trigger": o.groupShowMoreTrigger,
277
+ onItemClick: re
278
+ }, null, 8, ["items", "selected", "show-more-trigger"])) : U("", !0), v("ul", {
279
+ class: D(["tr-question__list", {
280
+ scrolling: L.value
281
+ }]),
282
+ ref_key: "listRef",
283
+ ref: F
284
+ }, [(n(!0), g(pe, null, de(E.value, (a, I) => (n(), g("li", {
285
+ class: "tr-question__list-item",
286
+ key: a.id,
287
+ ref_for: !0,
288
+ ref: (q) => Y(q, I),
289
+ onClick: (q) => ne(a),
290
+ onMouseenter: (q) => N.value[I] && ae(a, I),
291
+ onMouseleave: (q) => N.value[I] && ie(q)
292
+ }, [m(e.$slots, "item", {
293
+ item: a
294
+ }, () => [v("span", null, O(I + 1) + ". ", 1), fe(O(a.text), 1)], !0)], 40, Ae))), 128))], 2)], !0), M(je, {
295
+ ref_key: "tooltipRef",
296
+ ref: H,
297
+ show: b.value,
298
+ "onUpdate:show": s[1] || (s[1] = (a) => b.value = a),
299
+ content: j.value,
300
+ trigger: Q.value,
301
+ disabled: L.value,
302
+ placement: "top",
303
+ "delay-open": 300,
304
+ "delay-close": 300
305
+ }, null, 8, ["show", "content", "trigger", "disabled"]), M(h(qe), {
306
+ class: "tr-question-popover__close",
307
+ icon: h(me),
308
+ size: "32",
309
+ "svg-size": "20",
310
+ onClick: le
311
+ }, null, 8, ["icon"])]),
312
+ _: 3
313
+ }, 8, ["show", "class", "style", "append-to", "offset", "transition-props", "trigger-events"]));
282
314
  }
283
- }), G = /* @__PURE__ */ q(D0, [["__scopeId", "data-v-9f06d657"]]);
284
- G.name = "TrSuggestionPopover";
285
- const U0 = function(n) {
286
- n.component(G.name, G);
315
+ }), x = /* @__PURE__ */ T(Je, [["__scopeId", "data-v-8cc35579"]]);
316
+ x.name = "TrSuggestionPopover";
317
+ const Ke = function(l) {
318
+ l.component(x.name, x);
287
319
  };
288
- G.install = U0;
320
+ x.install = Ke;
289
321
  export {
290
- G as default
322
+ x as default
291
323
  };
@@ -0,0 +1,83 @@
1
+ import { defineComponent as C, mergeModels as O, useModel as f, ref as S, onUnmounted as D, computed as _, provide as m, watchEffect as w, watch as g, renderSlot as b, inject as u, readonly as v } from "vue";
2
+ const k = "data-tr-theme", A = "data-tr-color-mode", y = Symbol("theme"), E = Symbol("colorMode"), T = Symbol("resolvedColorMode"), p = Symbol("systemColorMode"), i = /* @__PURE__ */ C({
3
+ __name: "index",
4
+ props: /* @__PURE__ */ O({
5
+ colorMode: {},
6
+ targetElement: { default: "html" },
7
+ theme: {},
8
+ storage: {},
9
+ storageKey: { default: "tiny-robot-theme-data" }
10
+ }, {
11
+ theme: { default: "" },
12
+ themeModifiers: {},
13
+ colorMode: {
14
+ default: "auto",
15
+ validator: (o) => ["light", "dark", "auto"].includes(o)
16
+ },
17
+ colorModeModifiers: {}
18
+ }),
19
+ emits: ["update:theme", "update:colorMode"],
20
+ setup(o) {
21
+ const t = o, r = () => {
22
+ if (!t.storage) return {};
23
+ let e = {};
24
+ try {
25
+ e = JSON.parse(t.storage.getItem(t.storageKey) || "{}");
26
+ } catch {
27
+ }
28
+ return e;
29
+ }, d = (e) => {
30
+ if (!t.storage) return;
31
+ const h = { ...r(), ...e };
32
+ t.storage.setItem(t.storageKey, JSON.stringify(h));
33
+ }, n = f(o, "theme"), a = f(o, "colorMode");
34
+ if (t.storage) {
35
+ const e = r();
36
+ typeof e.theme == "string" && (n.value = e.theme), (e.colorMode === "auto" || e.colorMode === "light" || e.colorMode === "dark") && (a.value = e.colorMode);
37
+ }
38
+ const s = S("light");
39
+ if (typeof window < "u") {
40
+ const e = window.matchMedia("(prefers-color-scheme: dark)");
41
+ s.value = e.matches ? "dark" : "light";
42
+ const c = (h) => {
43
+ s.value = h.matches ? "dark" : "light";
44
+ };
45
+ e.addEventListener("change", c), D(() => {
46
+ e.removeEventListener("change", c);
47
+ });
48
+ }
49
+ const l = _(() => a.value === "auto" ? s.value : a.value);
50
+ return m(y, n), m(E, a), m(T, l), m(p, s), w(
51
+ () => {
52
+ if (typeof document > "u") return;
53
+ const e = document.querySelector(t.targetElement);
54
+ e && (e.setAttribute(k, n.value), e.setAttribute(A, l.value));
55
+ },
56
+ { flush: "post" }
57
+ ), g(n, (e) => {
58
+ d({ theme: e });
59
+ }), g(a, (e) => {
60
+ d({ colorMode: e });
61
+ }), (e, c) => b(e.$slots, "default");
62
+ }
63
+ }), M = "Theme context not available, cannot set theme data. Consider using ThemeProvider to wrap your app.", N = () => {
64
+ const o = u(y), t = u(E), r = u(T), d = u(p), n = (l) => o ? (o.value = l, !0) : (console.warn(M), !1), a = () => !t || !r ? (console.warn(M), !1) : (t.value = r.value === "light" ? "dark" : "light", !0), s = (l) => t ? (t.value = l, !0) : (console.warn(M), !1);
65
+ return {
66
+ theme: o,
67
+ colorMode: t,
68
+ resolvedColorMode: r ? v(r) : void 0,
69
+ systemColorMode: d ? v(d) : void 0,
70
+ setTheme: n,
71
+ toggleColorMode: a,
72
+ setColorMode: s
73
+ };
74
+ };
75
+ i.name = "TrThemeProvider";
76
+ const R = function(o) {
77
+ o.component(i.name, i);
78
+ };
79
+ i.install = R;
80
+ export {
81
+ i as default,
82
+ N as useTheme
83
+ };