@opentiny/tiny-robot 0.5.2-alpha.15 → 0.5.2-alpha.17

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,128 +1,129 @@
1
- import { shallowRef as V, computed as g, watch as Y, nextTick as Z, defineComponent as J, openBlock as p, createElementBlock as b, createElementVNode as I, toDisplayString as F, Fragment as ae, renderList as re, normalizeClass as W, withModifiers as pe, renderSlot as D, createBlock as _, resolveDynamicComponent as se, createCommentVNode as z, createVNode as N, unref as P, createSlots as te, withCtx as H, mergeProps as ue, onMounted as ce, onBeforeUnmount as ye, normalizeStyle as be, normalizeProps as U, guardReactiveProps as j, onScopeDispose as we, toRaw as ke, getCurrentInstance as $e, Teleport as Ee } from "vue";
2
- import { IconCheck as Oe, IconSearch as Se, IconNoData as xe, IconArrowDown as Me } from "@opentiny/tiny-robot-svgs";
3
- import { a as Pe, c as Ve, o as Te, f as Ce, s as De, b as Ie } from "../floating-ui.dom.js";
4
- import { u as ze } from "../useTeleportTarget.js";
5
- function Be(e) {
6
- const a = V(""), n = g(() => a.value.trim()), l = g(() => {
7
- const d = e.options(), i = n.value;
8
- if (!e.searchable() || !i)
9
- return d;
10
- const r = e.filterMethod();
11
- if (r)
12
- return d.filter((m) => r(i, m.raw));
13
- const u = i.toLocaleLowerCase();
14
- return d.filter((m) => m.searchText.includes(u));
15
- }), s = g(() => {
16
- const d = /* @__PURE__ */ new Map();
17
- return l.value.forEach((i) => {
18
- var u, m;
19
- const r = d.get(i.groupKey);
20
- if (r) {
21
- r.items.push(i);
1
+ import { shallowRef as V, computed as g, watch as J, nextTick as Z, defineComponent as X, openBlock as p, createElementBlock as b, createElementVNode as z, toDisplayString as q, Fragment as oe, renderList as ne, normalizeClass as Q, withModifiers as me, renderSlot as D, createBlock as _, resolveDynamicComponent as re, createCommentVNode as B, createVNode as W, unref as P, createSlots as ee, withCtx as U, mergeProps as ie, onMounted as se, onBeforeUnmount as ge, normalizeStyle as pe, normalizeProps as j, guardReactiveProps as N, onScopeDispose as ye, toRaw as be, getCurrentInstance as we, Teleport as ke } from "vue";
2
+ import { IconCheck as $e, IconSearch as Ee, IconNoData as Se, IconArrowDown as Oe } from "@opentiny/tiny-robot-svgs";
3
+ import { a as xe, c as Me, o as Pe, f as Ve, s as Te, b as Ce } from "../floating-ui.dom.js";
4
+ import { u as Ie } from "../useStableId.js";
5
+ import { u as De } from "../useTeleportTarget.js";
6
+ function ze(e) {
7
+ const a = V(""), o = g(() => a.value.trim()), t = g(() => {
8
+ const h = e.options(), r = o.value;
9
+ if (!e.searchable() || !r)
10
+ return h;
11
+ const i = e.filterMethod();
12
+ if (i)
13
+ return h.filter((d) => i(r, d.raw));
14
+ const s = r.toLocaleLowerCase();
15
+ return h.filter((d) => d.searchText.includes(s));
16
+ }), c = g(() => {
17
+ const h = /* @__PURE__ */ new Map();
18
+ return t.value.forEach((r) => {
19
+ var s, d;
20
+ const i = h.get(r.groupKey);
21
+ if (i) {
22
+ i.items.push(r);
22
23
  return;
23
24
  }
24
- d.set(i.groupKey, {
25
- key: i.groupKey,
26
- index: d.size,
27
- group: ((u = i.raw.group) == null ? void 0 : u.trim()) ?? "",
28
- label: ((m = i.raw.group) == null ? void 0 : m.trim()) ?? "",
29
- items: [i]
25
+ h.set(r.groupKey, {
26
+ key: r.groupKey,
27
+ index: h.size,
28
+ group: ((s = r.raw.group) == null ? void 0 : s.trim()) ?? "",
29
+ label: ((d = r.raw.group) == null ? void 0 : d.trim()) ?? "",
30
+ items: [r]
30
31
  });
31
- }), [...d.values()];
32
- }), f = g(() => l.value.length === 0);
33
- function c(d) {
34
- a.value = d;
32
+ }), [...h.values()];
33
+ }), f = g(() => t.value.length === 0);
34
+ function u(h) {
35
+ a.value = h;
35
36
  }
36
- function h() {
37
+ function v() {
37
38
  a.value = "";
38
39
  }
39
40
  return {
40
41
  query: a,
41
- visibleOptions: l,
42
- groups: s,
42
+ visibleOptions: t,
43
+ groups: c,
43
44
  isEmpty: f,
44
- setQuery: c,
45
- clearQuery: h
45
+ setQuery: u,
46
+ clearQuery: v
46
47
  };
47
48
  }
48
- function Le(e) {
49
- const a = V(null), n = g(() => e.options().find((i) => i.key === a.value) ?? null);
50
- function l() {
51
- return e.options().filter((i) => !i.disabled);
49
+ function Be(e) {
50
+ const a = V(null), o = g(() => e.options().find((r) => r.key === a.value) ?? null);
51
+ function t() {
52
+ return e.options().filter((r) => !r.disabled);
52
53
  }
53
- function s(i) {
54
- if (i === null) {
54
+ function c(r) {
55
+ if (r === null) {
55
56
  a.value = null;
56
57
  return;
57
58
  }
58
- const r = e.options().find((u) => u.key === i);
59
- r && !r.disabled && (a.value = r.key);
59
+ const i = e.options().find((s) => s.key === r);
60
+ i && !i.disabled && (a.value = i.key);
60
61
  }
61
62
  function f() {
62
63
  a.value = null;
63
64
  }
64
- function c(i) {
65
- const r = l(), u = i === "first" ? r[0] : r[r.length - 1];
66
- a.value = (u == null ? void 0 : u.key) ?? null;
65
+ function u(r) {
66
+ const i = t(), s = r === "first" ? i[0] : i[i.length - 1];
67
+ a.value = (s == null ? void 0 : s.key) ?? null;
67
68
  }
68
- function h(i = "first") {
69
- const r = e.selectedValue(), u = e.options().find((m) => m.value === r && !m.disabled);
70
- if (u) {
71
- a.value = u.key;
69
+ function v(r = "first") {
70
+ const i = e.selectedValue(), s = e.options().find((d) => d.value === i && !d.disabled);
71
+ if (s) {
72
+ a.value = s.key;
72
73
  return;
73
74
  }
74
- c(i);
75
+ u(r);
75
76
  }
76
- function d(i) {
77
- var y, x;
78
- const r = l();
79
- if (r.length === 0) {
77
+ function h(r) {
78
+ var S, k;
79
+ const i = t();
80
+ if (i.length === 0) {
80
81
  f();
81
82
  return;
82
83
  }
83
- const u = r.findIndex((k) => k.key === a.value);
84
- if (u < 0) {
85
- const k = i === 1 ? 0 : r.length - 1;
86
- a.value = ((y = r[k]) == null ? void 0 : y.key) ?? null;
84
+ const s = i.findIndex((y) => y.key === a.value);
85
+ if (s < 0) {
86
+ const y = r === 1 ? 0 : i.length - 1;
87
+ a.value = ((S = i[y]) == null ? void 0 : S.key) ?? null;
87
88
  return;
88
89
  }
89
- const m = (u + i + r.length) % r.length;
90
- a.value = ((x = r[m]) == null ? void 0 : x.key) ?? null;
90
+ const d = (s + r + i.length) % i.length;
91
+ a.value = ((k = i[d]) == null ? void 0 : k.key) ?? null;
91
92
  }
92
- return Y(
93
+ return J(
93
94
  () => [e.enabled(), e.options(), e.selectedValue()],
94
- ([i, r, u], m) => {
95
- if (!i) {
95
+ ([r, i, s], d) => {
96
+ if (!r) {
96
97
  f();
97
98
  return;
98
99
  }
99
- const y = m == null ? void 0 : m[2], x = r.find(($) => $.value === u && !$.disabled);
100
- if (u !== y && x) {
101
- a.value = x.key;
100
+ const S = d == null ? void 0 : d[2], k = i.find(($) => $.value === s && !$.disabled);
101
+ if (s !== S && k) {
102
+ a.value = k.key;
102
103
  return;
103
104
  }
104
- (a.value ? r.some(($) => $.key === a.value && !$.disabled) : !1) || h("first");
105
+ (a.value ? i.some(($) => $.key === a.value && !$.disabled) : !1) || v("first");
105
106
  },
106
107
  { immediate: !0 }
107
- ), Y(a, async (i) => {
108
- if (!i || !e.enabled())
108
+ ), J(a, async (r) => {
109
+ if (!r || !e.enabled())
109
110
  return;
110
111
  await Z();
111
- const r = e.containerEl.value, u = Array.from(
112
- (r == null ? void 0 : r.querySelectorAll("[data-model-selector-option-key]")) ?? []
113
- ).find((m) => m.dataset.modelSelectorOptionKey === i);
114
- u == null || u.scrollIntoView({ block: "nearest" });
112
+ const i = e.containerEl.value, s = Array.from(
113
+ (i == null ? void 0 : i.querySelectorAll("[data-model-selector-option-key]")) ?? []
114
+ ).find((d) => d.dataset.modelSelectorOptionKey === r);
115
+ s == null || s.scrollIntoView({ block: "nearest" });
115
116
  }), {
116
117
  highlightedKey: a,
117
- highlightedOption: n,
118
- setHighlightedKey: s,
118
+ highlightedOption: o,
119
+ setHighlightedKey: c,
119
120
  resetHighlight: f,
120
- highlightBoundary: c,
121
- highlightSelectedOrBoundary: h,
122
- moveHighlight: d
121
+ highlightBoundary: u,
122
+ highlightSelectedOrBoundary: v,
123
+ moveHighlight: h
123
124
  };
124
125
  }
125
- const Re = { class: "tr-model-selector__effort" }, Ke = { class: "tr-model-selector__effort-label" }, qe = ["aria-label"], Fe = ["disabled", "aria-pressed", "data-model-selector-effort-value", "onClick"], Ae = /* @__PURE__ */ J({
126
+ const Le = { class: "tr-model-selector__effort" }, Re = { class: "tr-model-selector__effort-label" }, Ke = ["aria-label"], qe = ["disabled", "aria-pressed", "data-model-selector-effort-value", "onClick"], Fe = /* @__PURE__ */ X({
126
127
  name: "TrModelSelectorEffort",
127
128
  __name: "ModelSelectorEffort",
128
129
  props: {
@@ -133,26 +134,26 @@ const Re = { class: "tr-model-selector__effort" }, Ke = { class: "tr-model-selec
133
134
  },
134
135
  emits: ["select"],
135
136
  setup(e) {
136
- return (a, n) => (p(), b("div", Re, [
137
- I("span", Ke, F(e.label), 1),
138
- I("div", {
137
+ return (a, o) => (p(), b("div", Le, [
138
+ z("span", Re, q(e.label), 1),
139
+ z("div", {
139
140
  class: "tr-model-selector__effort-options",
140
141
  role: "group",
141
142
  "aria-label": e.label
142
143
  }, [
143
- (p(!0), b(ae, null, re(e.options, (l) => (p(), b("button", {
144
- key: l.value,
144
+ (p(!0), b(oe, null, ne(e.options, (t) => (p(), b("button", {
145
+ key: t.value,
145
146
  type: "button",
146
- class: W(["tr-model-selector__effort-option", { "is-active": l.value === e.value }]),
147
- disabled: e.disabled || l.disabled,
148
- "aria-pressed": l.value === e.value,
149
- "data-model-selector-effort-value": l.value,
150
- onClick: (s) => a.$emit("select", l.value)
151
- }, F(l.label), 11, Fe))), 128))
152
- ], 8, qe)
147
+ class: Q(["tr-model-selector__effort-option", { "is-active": t.value === e.value }]),
148
+ disabled: e.disabled || t.disabled,
149
+ "aria-pressed": t.value === e.value,
150
+ "data-model-selector-effort-value": t.value,
151
+ onClick: (c) => a.$emit("select", t.value)
152
+ }, q(t.label), 11, qe))), 128))
153
+ ], 8, Ke)
153
154
  ]));
154
155
  }
155
- }), He = ["id", "data-model-selector-option-key", "aria-selected", "aria-disabled", "aria-describedby"], Ue = { class: "tr-model-selector__option-main" }, je = ["src"], Ne = { class: "tr-model-selector__option-text" }, We = ["title"], Qe = ["id", "title"], Ge = /* @__PURE__ */ J({
156
+ }), Ae = ["id", "data-model-selector-option-key", "aria-selected", "aria-disabled", "aria-describedby"], He = { class: "tr-model-selector__option-main" }, Ue = ["src"], je = { class: "tr-model-selector__option-text" }, Ne = ["title"], We = ["id", "title"], Qe = /* @__PURE__ */ X({
156
157
  name: "TrModelSelectorItem",
157
158
  __name: "ModelSelectorItem",
158
159
  props: {
@@ -164,16 +165,16 @@ const Re = { class: "tr-model-selector__effort" }, Ke = { class: "tr-model-selec
164
165
  },
165
166
  emits: ["hover", "select"],
166
167
  setup(e, { emit: a }) {
167
- const n = e, l = a;
168
- function s() {
169
- n.option.disabled || l("hover", n.option.key);
168
+ const o = e, t = a;
169
+ function c() {
170
+ o.option.disabled || t("hover", o.option.key);
170
171
  }
171
172
  function f() {
172
- n.option.disabled || l("select", n.option.raw);
173
+ o.option.disabled || t("select", o.option.raw);
173
174
  }
174
- return (c, h) => (p(), b("div", {
175
+ return (u, v) => (p(), b("div", {
175
176
  id: e.optionId,
176
- class: W(["tr-model-selector__option", {
177
+ class: Q(["tr-model-selector__option", {
177
178
  "is-selected": e.selected,
178
179
  "is-highlighted": e.highlighted,
179
180
  "is-disabled": e.option.disabled
@@ -182,52 +183,52 @@ const Re = { class: "tr-model-selector__effort" }, Ke = { class: "tr-model-selec
182
183
  role: "option",
183
184
  "aria-selected": e.selected,
184
185
  "aria-disabled": e.option.disabled || void 0,
185
- "aria-describedby": e.option.description && !c.$slots.item ? e.descriptionId : void 0,
186
- onMouseenter: s,
187
- onMousedown: h[0] || (h[0] = pe(() => {
186
+ "aria-describedby": e.option.description && !u.$slots.item ? e.descriptionId : void 0,
187
+ onMouseenter: c,
188
+ onMousedown: v[0] || (v[0] = me(() => {
188
189
  }, ["prevent"])),
189
190
  onClick: f
190
191
  }, [
191
- D(c.$slots, "item", {
192
+ D(u.$slots, "item", {
192
193
  option: e.option.raw,
193
194
  selected: e.selected,
194
195
  highlighted: e.highlighted
195
196
  }, () => [
196
- I("span", Ue, [
197
+ z("span", He, [
197
198
  typeof e.option.icon == "string" ? (p(), b("img", {
198
199
  key: 0,
199
200
  src: e.option.icon,
200
201
  class: "tr-model-selector__option-icon",
201
202
  alt: "",
202
203
  "aria-hidden": "true"
203
- }, null, 8, je)) : e.option.icon ? (p(), _(se(e.option.icon), {
204
+ }, null, 8, Ue)) : e.option.icon ? (p(), _(re(e.option.icon), {
204
205
  key: 1,
205
206
  class: "tr-model-selector__option-icon",
206
207
  "aria-hidden": "true",
207
208
  focusable: "false"
208
- })) : z("", !0),
209
- I("span", Ne, [
210
- I("span", {
209
+ })) : B("", !0),
210
+ z("span", je, [
211
+ z("span", {
211
212
  class: "tr-model-selector__option-label",
212
213
  title: e.option.label
213
- }, F(e.option.label), 9, We),
214
+ }, q(e.option.label), 9, Ne),
214
215
  e.option.description ? (p(), b("span", {
215
216
  key: 0,
216
217
  id: e.descriptionId,
217
218
  class: "tr-model-selector__option-description",
218
219
  title: e.option.description
219
- }, F(e.option.description), 9, Qe)) : z("", !0)
220
+ }, q(e.option.description), 9, We)) : B("", !0)
220
221
  ])
221
222
  ]),
222
- N(P(Oe), {
223
+ W(P($e), {
223
224
  class: "tr-model-selector__option-check",
224
225
  "aria-hidden": "true",
225
226
  focusable: "false"
226
227
  })
227
228
  ])
228
- ], 42, He));
229
+ ], 42, Ae));
229
230
  }
230
- }), Ye = ["role", "aria-labelledby"], Je = ["id"], Xe = /* @__PURE__ */ J({
231
+ }), Ge = ["role", "aria-labelledby"], Ye = ["id"], Je = /* @__PURE__ */ X({
231
232
  name: "TrModelSelectorGroup",
232
233
  __name: "ModelSelectorGroup",
233
234
  props: {
@@ -238,7 +239,7 @@ const Re = { class: "tr-model-selector__effort" }, Ke = { class: "tr-model-selec
238
239
  },
239
240
  emits: ["hover", "select"],
240
241
  setup(e) {
241
- return (a, n) => (p(), b("div", {
242
+ return (a, o) => (p(), b("div", {
242
243
  class: "tr-model-selector__group",
243
244
  role: e.group.label ? "group" : "presentation",
244
245
  "aria-labelledby": e.group.label ? `${e.optionIdPrefix}-group-${e.group.index}` : void 0
@@ -247,42 +248,42 @@ const Re = { class: "tr-model-selector__effort" }, Ke = { class: "tr-model-selec
247
248
  key: 0,
248
249
  id: `${e.optionIdPrefix}-group-${e.group.index}`,
249
250
  class: "tr-model-selector__group-title"
250
- }, F(e.group.label), 9, Je)) : z("", !0),
251
- (p(!0), b(ae, null, re(e.group.items, (l) => (p(), _(Ge, {
252
- key: l.key,
253
- option: l,
254
- selected: e.selectedValue === l.value,
255
- highlighted: e.highlightedKey === l.key,
256
- "option-id": `${e.optionIdPrefix}-option-${l.index}`,
257
- "description-id": `${e.optionIdPrefix}-option-${l.index}-description`,
258
- onHover: n[0] || (n[0] = (s) => a.$emit("hover", s)),
259
- onSelect: n[1] || (n[1] = (s) => a.$emit("select", s))
260
- }, te({ _: 2 }, [
251
+ }, q(e.group.label), 9, Ye)) : B("", !0),
252
+ (p(!0), b(oe, null, ne(e.group.items, (t) => (p(), _(Qe, {
253
+ key: t.key,
254
+ option: t,
255
+ selected: e.selectedValue === t.value,
256
+ highlighted: e.highlightedKey === t.key,
257
+ "option-id": `${e.optionIdPrefix}-option-${t.index}`,
258
+ "description-id": `${e.optionIdPrefix}-option-${t.index}-description`,
259
+ onHover: o[0] || (o[0] = (c) => a.$emit("hover", c)),
260
+ onSelect: o[1] || (o[1] = (c) => a.$emit("select", c))
261
+ }, ee({ _: 2 }, [
261
262
  a.$slots.item ? {
262
263
  name: "item",
263
- fn: H((s) => [
264
- D(a.$slots, "item", ue({ ref_for: !0 }, s))
264
+ fn: U((c) => [
265
+ D(a.$slots, "item", ie({ ref_for: !0 }, c))
265
266
  ]),
266
267
  key: "0"
267
268
  } : void 0
268
269
  ]), 1032, ["option", "selected", "highlighted", "option-id", "description-id"]))), 128))
269
- ], 8, Ye));
270
+ ], 8, Ge));
270
271
  }
271
- }), Ze = {
272
+ }), Xe = {
272
273
  key: 0,
273
274
  class: "tr-model-selector__header"
274
- }, _e = {
275
+ }, Ze = {
275
276
  key: 1,
276
277
  class: "tr-model-selector__search"
277
- }, et = ["value", "placeholder", "aria-label", "aria-controls", "aria-activedescendant"], tt = {
278
+ }, _e = ["value", "placeholder", "aria-label", "aria-controls", "aria-activedescendant"], et = {
278
279
  key: 2,
279
280
  class: "tr-model-selector__empty",
280
281
  role: "status",
281
282
  "aria-live": "polite"
282
- }, lt = ["id", "aria-label", "aria-activedescendant"], ot = {
283
+ }, tt = ["id", "aria-label", "aria-activedescendant"], lt = {
283
284
  key: 3,
284
285
  class: "tr-model-selector__footer"
285
- }, nt = /* @__PURE__ */ J({
286
+ }, ot = /* @__PURE__ */ X({
286
287
  name: "TrModelSelectorPanel",
287
288
  __name: "ModelSelectorPanel",
288
289
  props: {
@@ -305,198 +306,198 @@ const Re = { class: "tr-model-selector__effort" }, Ke = { class: "tr-model-selec
305
306
  },
306
307
  emits: ["select", "select-effort", "close"],
307
308
  setup(e, { emit: a }) {
308
- const n = e, l = a, s = V(null), f = V(null), c = V(null), h = V(null);
309
- let d;
310
- const i = g(
311
- () => h.value === null ? void 0 : { "--tr-model-selector-open-min-width": `${h.value}px` }
312
- ), r = Be({
313
- options: () => n.options,
314
- searchable: () => n.searchable,
315
- filterMethod: () => n.filterMethod
316
- }), u = Le({
309
+ const o = e, t = a, c = V(null), f = V(null), u = V(null), v = V(null);
310
+ let h;
311
+ const r = g(
312
+ () => v.value === null ? void 0 : { "--tr-model-selector-open-min-width": `${v.value}px` }
313
+ ), i = ze({
314
+ options: () => o.options,
315
+ searchable: () => o.searchable,
316
+ filterMethod: () => o.filterMethod
317
+ }), s = Be({
317
318
  enabled: () => !0,
318
- options: () => r.visibleOptions.value,
319
- selectedValue: () => n.selectedValue,
319
+ options: () => i.visibleOptions.value,
320
+ selectedValue: () => o.selectedValue,
320
321
  containerEl: f
321
- }), m = g(() => {
322
- const t = u.highlightedOption.value;
323
- return t ? `${n.optionIdPrefix}-option-${t.index}` : void 0;
324
- }), y = g(() => ({
325
- ...n.slotContext,
326
- query: r.query.value
327
- })), x = g(() => ({
328
- ...y.value,
329
- reasoningEfforts: n.effortOptions,
330
- reasoningEffortOption: n.effortOptions.find((t) => t.value === n.effortValue) ?? null,
331
- setReasoningEffort: (t) => l("select-effort", t)
322
+ }), d = g(() => {
323
+ const l = s.highlightedOption.value;
324
+ return l ? `${o.optionIdPrefix}-option-${l.index}` : void 0;
325
+ }), S = g(() => ({
326
+ ...o.slotContext,
327
+ query: i.query.value
328
+ })), k = g(() => ({
329
+ ...S.value,
330
+ reasoningEfforts: o.effortOptions,
331
+ reasoningEffortOption: o.effortOptions.find((l) => l.value === o.effortValue) ?? null,
332
+ setReasoningEffort: (l) => t("select-effort", l)
332
333
  }));
333
- function k(t) {
334
- r.setQuery(t.target.value);
334
+ function y(l) {
335
+ i.setQuery(l.target.value);
335
336
  }
336
337
  function $() {
337
- const t = n.searchable ? s.value : f.value;
338
- t == null || t.focus({ preventScroll: !0 });
338
+ const l = o.searchable ? c.value : f.value;
339
+ l == null || l.focus({ preventScroll: !0 });
339
340
  }
340
- async function E() {
341
- var S, M;
341
+ async function O() {
342
+ var x, M;
342
343
  await Z();
343
- const t = ((S = s.value) == null ? void 0 : S.ownerDocument.defaultView) ?? ((M = f.value) == null ? void 0 : M.ownerDocument.defaultView);
344
- if (!t || typeof t.requestAnimationFrame != "function") {
344
+ const l = ((x = c.value) == null ? void 0 : x.ownerDocument.defaultView) ?? ((M = f.value) == null ? void 0 : M.ownerDocument.defaultView);
345
+ if (!l || typeof l.requestAnimationFrame != "function") {
345
346
  $();
346
347
  return;
347
348
  }
348
- t.requestAnimationFrame(() => {
349
+ l.requestAnimationFrame(() => {
349
350
  $();
350
351
  });
351
352
  }
352
- function R() {
353
- const t = u.highlightedOption.value;
354
- t && l("select", t.raw);
353
+ function K() {
354
+ const l = s.highlightedOption.value;
355
+ l && t("select", l.raw);
355
356
  }
356
- function T(t) {
357
- return t.isComposing || t.keyCode === 229;
357
+ function w(l) {
358
+ return l.isComposing || l.keyCode === 229;
358
359
  }
359
- function O(t) {
360
- if (!(t.defaultPrevented || T(t))) {
361
- if (t.key === "ArrowDown" || t.key === "ArrowUp") {
362
- t.preventDefault(), u.moveHighlight(t.key === "ArrowDown" ? 1 : -1);
360
+ function G(l) {
361
+ if (!(l.defaultPrevented || w(l))) {
362
+ if (l.key === "ArrowDown" || l.key === "ArrowUp") {
363
+ l.preventDefault(), s.moveHighlight(l.key === "ArrowDown" ? 1 : -1);
363
364
  return;
364
365
  }
365
- if (t.key === "Enter") {
366
- t.preventDefault(), R();
366
+ if (l.key === "Enter") {
367
+ l.preventDefault(), K();
367
368
  return;
368
369
  }
369
- t.key === "Escape" && (t.preventDefault(), l("close", !0));
370
+ l.key === "Escape" && (l.preventDefault(), t("close", !0));
370
371
  }
371
372
  }
372
- function K(t) {
373
- if (!(t.defaultPrevented || T(t))) {
374
- if (t.key === "ArrowDown" || t.key === "ArrowUp") {
375
- t.preventDefault(), u.moveHighlight(t.key === "ArrowDown" ? 1 : -1);
373
+ function T(l) {
374
+ if (!(l.defaultPrevented || w(l))) {
375
+ if (l.key === "ArrowDown" || l.key === "ArrowUp") {
376
+ l.preventDefault(), s.moveHighlight(l.key === "ArrowDown" ? 1 : -1);
376
377
  return;
377
378
  }
378
- if (t.key === "Home" || t.key === "End") {
379
- t.preventDefault(), u.highlightBoundary(t.key === "Home" ? "first" : "last");
379
+ if (l.key === "Home" || l.key === "End") {
380
+ l.preventDefault(), s.highlightBoundary(l.key === "Home" ? "first" : "last");
380
381
  return;
381
382
  }
382
- (t.key === "Enter" || t.key === " " || t.key === "Spacebar") && (t.preventDefault(), R());
383
+ (l.key === "Enter" || l.key === " " || l.key === "Spacebar") && (l.preventDefault(), K());
383
384
  }
384
385
  }
385
- function Q(t) {
386
- t.defaultPrevented || t.key === "Escape" && (t.preventDefault(), l("close", !0));
386
+ function R(l) {
387
+ l.defaultPrevented || l.key === "Escape" && (l.preventDefault(), t("close", !0));
387
388
  }
388
- return ce(() => {
389
- var B;
390
- const t = c.value, S = (B = t == null ? void 0 : t.ownerDocument.defaultView) == null ? void 0 : B.ResizeObserver;
389
+ return se(() => {
390
+ var I;
391
+ const l = u.value, x = (I = l == null ? void 0 : l.ownerDocument.defaultView) == null ? void 0 : I.ResizeObserver;
391
392
  function M() {
392
- if (!t)
393
+ if (!l)
393
394
  return;
394
- const q = Math.ceil(t.getBoundingClientRect().width);
395
- q > (h.value ?? 0) && (h.value = q);
395
+ const Y = Math.ceil(l.getBoundingClientRect().width);
396
+ Y > (v.value ?? 0) && (v.value = Y);
396
397
  }
397
- M(), t && S && (d = new S(M), d.observe(t)), E();
398
- }), ye(() => {
399
- d == null || d.disconnect();
400
- }), Y(
401
- () => n.searchable,
398
+ M(), l && x && (h = new x(M), h.observe(l)), O();
399
+ }), ge(() => {
400
+ h == null || h.disconnect();
401
+ }), J(
402
+ () => o.searchable,
402
403
  async () => {
403
- r.clearQuery(), await E();
404
+ i.clearQuery(), await O();
404
405
  }
405
- ), (t, S) => (p(), b("div", {
406
+ ), (l, x) => (p(), b("div", {
406
407
  ref_key: "panelEl",
407
- ref: c,
408
- class: W(["tr-model-selector__panel", [`tr-model-selector__panel--${e.size}`, e.panelClass]]),
409
- style: be(i.value),
410
- onKeydown: Q
408
+ ref: u,
409
+ class: Q(["tr-model-selector__panel", [`tr-model-selector__panel--${e.size}`, e.panelClass]]),
410
+ style: pe(r.value),
411
+ onKeydown: R
411
412
  }, [
412
- t.$slots.header ? (p(), b("div", Ze, [
413
- D(t.$slots, "header", U(j(y.value)))
414
- ])) : z("", !0),
415
- e.searchable ? (p(), b("div", _e, [
416
- N(P(Se), {
413
+ l.$slots.header ? (p(), b("div", Xe, [
414
+ D(l.$slots, "header", j(N(S.value)))
415
+ ])) : B("", !0),
416
+ e.searchable ? (p(), b("div", Ze, [
417
+ W(P(Ee), {
417
418
  class: "tr-model-selector__search-icon",
418
419
  "aria-hidden": "true",
419
420
  focusable: "false"
420
421
  }),
421
- I("input", {
422
+ z("input", {
422
423
  ref_key: "searchInputEl",
423
- ref: s,
424
+ ref: c,
424
425
  type: "text",
425
426
  class: "tr-model-selector__search-input",
426
427
  "data-model-selector-search-input": "",
427
428
  role: "combobox",
428
- value: P(r).query.value,
429
+ value: P(i).query.value,
429
430
  placeholder: e.searchPlaceholder,
430
431
  "aria-label": e.searchPlaceholder,
431
432
  "aria-controls": e.listboxId,
432
- "aria-activedescendant": m.value,
433
+ "aria-activedescendant": d.value,
433
434
  "aria-autocomplete": "list",
434
435
  "aria-expanded": "true",
435
436
  "aria-haspopup": "listbox",
436
437
  autocomplete: "off",
437
438
  spellcheck: !1,
438
- onInput: k,
439
- onKeydown: O
440
- }, null, 40, et)
441
- ])) : z("", !0),
442
- P(r).isEmpty.value ? (p(), b("div", tt, [
443
- D(t.$slots, "empty", {
444
- query: P(r).query.value
439
+ onInput: y,
440
+ onKeydown: G
441
+ }, null, 40, _e)
442
+ ])) : B("", !0),
443
+ P(i).isEmpty.value ? (p(), b("div", et, [
444
+ D(l.$slots, "empty", {
445
+ query: P(i).query.value
445
446
  }, () => [
446
- N(P(xe), {
447
+ W(P(Se), {
447
448
  class: "tr-model-selector__empty-icon",
448
449
  "aria-hidden": "true",
449
450
  focusable: "false"
450
451
  }),
451
- I("span", null, F(e.emptyText), 1)
452
+ z("span", null, q(e.emptyText), 1)
452
453
  ])
453
- ])) : z("", !0),
454
- I("div", {
454
+ ])) : B("", !0),
455
+ z("div", {
455
456
  id: e.listboxId,
456
457
  ref_key: "listboxEl",
457
458
  ref: f,
458
- class: W(["tr-model-selector__content", { "is-empty": P(r).isEmpty.value }]),
459
+ class: Q(["tr-model-selector__content", { "is-empty": P(i).isEmpty.value }]),
459
460
  role: "listbox",
460
461
  tabindex: "-1",
461
462
  "aria-label": e.placeholder,
462
- "aria-activedescendant": e.searchable ? void 0 : m.value,
463
- onKeydown: K
463
+ "aria-activedescendant": e.searchable ? void 0 : d.value,
464
+ onKeydown: T
464
465
  }, [
465
- (p(!0), b(ae, null, re(P(r).groups.value, (M) => (p(), _(Xe, {
466
+ (p(!0), b(oe, null, ne(P(i).groups.value, (M) => (p(), _(Je, {
466
467
  key: M.key,
467
468
  group: M,
468
469
  "selected-value": e.selectedValue,
469
- "highlighted-key": P(u).highlightedKey.value,
470
+ "highlighted-key": P(s).highlightedKey.value,
470
471
  "option-id-prefix": e.optionIdPrefix,
471
- onHover: P(u).setHighlightedKey,
472
- onSelect: S[0] || (S[0] = (B) => t.$emit("select", B))
473
- }, te({ _: 2 }, [
474
- t.$slots.item ? {
472
+ onHover: P(s).setHighlightedKey,
473
+ onSelect: x[0] || (x[0] = (I) => l.$emit("select", I))
474
+ }, ee({ _: 2 }, [
475
+ l.$slots.item ? {
475
476
  name: "item",
476
- fn: H((B) => [
477
- D(t.$slots, "item", ue({ ref_for: !0 }, B))
477
+ fn: U((I) => [
478
+ D(l.$slots, "item", ie({ ref_for: !0 }, I))
478
479
  ]),
479
480
  key: "0"
480
481
  } : void 0
481
482
  ]), 1032, ["group", "selected-value", "highlighted-key", "option-id-prefix", "onHover"]))), 128))
482
- ], 42, lt),
483
- t.$slots.footer || e.effortOptions.length > 0 ? (p(), b("div", ot, [
484
- D(t.$slots, "footer", U(j(x.value)), () => [
485
- N(Ae, {
483
+ ], 42, tt),
484
+ l.$slots.footer || e.effortOptions.length > 0 ? (p(), b("div", lt, [
485
+ D(l.$slots, "footer", j(N(k.value)), () => [
486
+ W(Fe, {
486
487
  options: e.effortOptions,
487
488
  value: e.effortValue,
488
489
  label: e.effortLabel,
489
490
  disabled: e.effortDisabled,
490
- onSelect: S[1] || (S[1] = (M) => t.$emit("select-effort", M))
491
+ onSelect: x[1] || (x[1] = (M) => l.$emit("select-effort", M))
491
492
  }, null, 8, ["options", "value", "label", "disabled"])
492
493
  ])
493
- ])) : z("", !0)
494
+ ])) : B("", !0)
494
495
  ], 38));
495
496
  }
496
- }), at = ["title", "disabled", "aria-label", "aria-expanded", "aria-controls"], rt = { class: "tr-model-selector__trigger-content" }, it = ["src"], st = { class: "tr-model-selector__trigger-label" }, ut = {
497
+ }), nt = ["title", "disabled", "aria-label", "aria-expanded", "aria-controls"], at = { class: "tr-model-selector__trigger-content" }, rt = ["src"], it = { class: "tr-model-selector__trigger-label" }, st = {
497
498
  key: 2,
498
499
  class: "tr-model-selector__trigger-effort"
499
- }, ct = /* @__PURE__ */ J({
500
+ }, ut = /* @__PURE__ */ X({
500
501
  name: "TrModelSelectorTrigger",
501
502
  __name: "ModelSelectorTrigger",
502
503
  props: {
@@ -511,218 +512,217 @@ const Re = { class: "tr-model-selector__effort" }, Ke = { class: "tr-model-selec
511
512
  },
512
513
  emits: ["click", "enter"],
513
514
  setup(e, { emit: a }) {
514
- const n = e, l = g(() => n.effortLabel ? `${n.label} · ${n.effortLabel}` : n.label), s = a;
515
- function f(c) {
516
- c.key === "Enter" && !c.defaultPrevented && (c.preventDefault(), s("enter", c));
515
+ const o = e, t = g(() => o.effortLabel ? `${o.label} · ${o.effortLabel}` : o.label), c = a;
516
+ function f(u) {
517
+ u.key === "Enter" && !u.defaultPrevented && (u.preventDefault(), c("enter", u));
517
518
  }
518
- return (c, h) => (p(), b("button", {
519
+ return (u, v) => (p(), b("button", {
519
520
  type: "button",
520
- class: W(["tr-model-selector__trigger", [`tr-model-selector__trigger--${e.variant}`, `tr-model-selector__trigger--${e.size}`, { "is-open": e.open }]]),
521
- title: l.value,
521
+ class: Q(["tr-model-selector__trigger", [`tr-model-selector__trigger--${e.variant}`, `tr-model-selector__trigger--${e.size}`, { "is-open": e.open }]]),
522
+ title: t.value,
522
523
  disabled: e.disabled,
523
- "aria-label": l.value,
524
+ "aria-label": t.value,
524
525
  "aria-expanded": e.open,
525
526
  "aria-controls": e.controlsId,
526
527
  "aria-haspopup": "listbox",
527
- onClick: h[0] || (h[0] = (d) => c.$emit("click", d)),
528
+ onClick: v[0] || (v[0] = (h) => u.$emit("click", h)),
528
529
  onKeydown: f
529
530
  }, [
530
- D(c.$slots, "default", {}, () => [
531
- I("span", rt, [
531
+ D(u.$slots, "default", {}, () => [
532
+ z("span", at, [
532
533
  typeof e.icon == "string" ? (p(), b("img", {
533
534
  key: 0,
534
535
  src: e.icon,
535
536
  class: "tr-model-selector__trigger-icon",
536
537
  alt: "",
537
538
  "aria-hidden": "true"
538
- }, null, 8, it)) : e.icon ? (p(), _(se(e.icon), {
539
+ }, null, 8, rt)) : e.icon ? (p(), _(re(e.icon), {
539
540
  key: 1,
540
541
  class: "tr-model-selector__trigger-icon",
541
542
  "aria-hidden": "true",
542
543
  focusable: "false"
543
- })) : z("", !0),
544
- I("span", st, F(e.label), 1),
545
- e.effortLabel ? (p(), b("span", ut, F(e.effortLabel), 1)) : z("", !0)
544
+ })) : B("", !0),
545
+ z("span", it, q(e.label), 1),
546
+ e.effortLabel ? (p(), b("span", st, q(e.effortLabel), 1)) : B("", !0)
546
547
  ]),
547
- N(P(Me), {
548
+ W(P(Oe), {
548
549
  class: "tr-model-selector__trigger-chevron",
549
550
  "aria-hidden": "true",
550
551
  focusable: "false"
551
552
  })
552
553
  ])
553
- ], 42, at));
554
+ ], 42, nt));
554
555
  }
555
556
  });
556
- function dt(e) {
557
- const a = e.controlled, n = V(e.defaultValue), l = g(() => a ? e.value() ?? null : n.value), s = g(() => e.efforts().find((c) => c.value === l.value) ?? null);
558
- function f(c) {
559
- if (Object.is(l.value, c))
557
+ function ct(e) {
558
+ const a = e.controlled, o = V(e.defaultValue), t = g(() => a ? e.value() ?? null : o.value), c = g(() => e.efforts().find((u) => u.value === t.value) ?? null);
559
+ function f(u) {
560
+ if (Object.is(t.value, u))
560
561
  return !1;
561
- if (c !== null) {
562
- const h = e.efforts().find((d) => d.value === c);
563
- if (!h || h.disabled)
562
+ if (u !== null) {
563
+ const v = e.efforts().find((h) => h.value === u);
564
+ if (!v || v.disabled)
564
565
  return !1;
565
566
  }
566
- return a || (n.value = c), e.onUpdateValue(c), !0;
567
+ return a || (o.value = u), e.onUpdateValue(u), !0;
567
568
  }
568
569
  return {
569
- value: l,
570
- activeOption: s,
570
+ value: t,
571
+ activeOption: c,
571
572
  setValue: f
572
573
  };
573
574
  }
574
- function ie(e, a) {
575
- var s, f;
576
- if ((((s = e.composedPath) == null ? void 0 : s.call(e)) ?? []).includes(a))
575
+ function ae(e, a) {
576
+ var c, f;
577
+ if ((((c = e.composedPath) == null ? void 0 : c.call(e)) ?? []).includes(a))
577
578
  return !0;
578
- const l = (f = a.ownerDocument.defaultView) == null ? void 0 : f.Node;
579
- return !!(l && e.target instanceof l && a.contains(e.target));
579
+ const t = (f = a.ownerDocument.defaultView) == null ? void 0 : f.Node;
580
+ return !!(t && e.target instanceof t && a.contains(e.target));
580
581
  }
581
- function ft(e) {
582
- const a = V(!1), n = Y(
582
+ function dt(e) {
583
+ const a = V(!1), o = J(
583
584
  () => [
584
585
  e.open(),
585
586
  e.referenceEl.value,
586
587
  e.floatingEl.value,
587
588
  e.placement(),
588
- e.strategy(),
589
589
  e.offset(),
590
590
  e.teleportTarget()
591
591
  ],
592
- async ([l, s, f, c, h, d, i], r, u) => {
593
- if (a.value = !1, !l || !s || !f)
592
+ async ([t, c, f, u, v, h], r, i) => {
593
+ if (a.value = !1, !t || !c || !f)
594
594
  return;
595
- const m = s, y = f;
596
- let x = !0, k = 0;
597
- const $ = {}, E = m.ownerDocument, R = (O) => {
598
- ie(O, m) || ie(O, y) || e.onOutsidePointerDown(O);
595
+ const s = c, d = f;
596
+ let S = !0, k = 0;
597
+ const y = {}, $ = s.ownerDocument, O = (w) => {
598
+ ae(w, s) || ae(w, d) || e.onOutsidePointerDown(w);
599
599
  };
600
- E.addEventListener("pointerdown", R, !0), u(() => {
601
- var O;
602
- x = !1, k += 1, (O = $.current) == null || O.call($), E.removeEventListener("pointerdown", R, !0), a.value = !1;
600
+ $.addEventListener("pointerdown", O, !0), i(() => {
601
+ var w;
602
+ S = !1, k += 1, (w = y.current) == null || w.call(y), $.removeEventListener("pointerdown", O, !0), a.value = !1;
603
603
  });
604
- async function T() {
605
- var K;
606
- const O = ++k;
604
+ async function K() {
605
+ var G;
606
+ const w = ++k;
607
607
  try {
608
- const Q = await Ve(m, y, {
609
- placement: c,
610
- strategy: h,
608
+ const T = await Me(s, d, {
609
+ placement: u,
610
+ strategy: "fixed",
611
611
  middleware: [
612
- Te(d),
613
- Ce({ padding: 8 }),
614
- De({ padding: 8 }),
615
- Ie({
612
+ Pe(v),
613
+ Ve({ padding: 8 }),
614
+ Te({ padding: 8 }),
615
+ Ce({
616
616
  padding: 8,
617
- apply({ availableHeight: B, availableWidth: q, rects: oe, elements: G }) {
618
- const ee = Math.min(oe.reference.width, Math.max(0, q));
619
- G.floating.style.minWidth = `${Math.round(ee)}px`, G.floating.style.maxWidth = `${Math.max(0, Math.floor(q))}px`, G.floating.style.setProperty(
617
+ apply({ availableHeight: M, availableWidth: I, rects: Y, elements: F }) {
618
+ const A = Math.min(Y.reference.width, Math.max(0, I));
619
+ F.floating.style.minWidth = `${Math.round(A)}px`, F.floating.style.maxWidth = `${Math.max(0, Math.floor(I))}px`, F.floating.style.setProperty(
620
620
  "--tr-model-selector-available-height",
621
- `${Math.max(0, Math.floor(B))}px`
622
- ), G.floating.style.setProperty(
621
+ `${Math.max(0, Math.floor(M))}px`
622
+ ), F.floating.style.setProperty(
623
623
  "--tr-model-selector-available-width",
624
- `${Math.max(0, Math.floor(q))}px`
624
+ `${Math.max(0, Math.floor(I))}px`
625
625
  );
626
626
  }
627
627
  })
628
628
  ]
629
629
  });
630
- if (!x || O !== k || !e.open() || e.referenceEl.value !== m || e.floatingEl.value !== y)
630
+ if (!S || w !== k || !e.open() || e.referenceEl.value !== s || e.floatingEl.value !== d)
631
631
  return;
632
- const t = ((K = E.defaultView) == null ? void 0 : K.devicePixelRatio) || 1, S = Math.round(Q.x * t) / t, M = Math.round(Q.y * t) / t;
633
- Object.assign(y.style, {
634
- left: `${S}px`,
635
- top: `${M}px`
632
+ const R = ((G = $.defaultView) == null ? void 0 : G.devicePixelRatio) || 1, l = Math.round(T.x * R) / R, x = Math.round(T.y * R) / R;
633
+ Object.assign(d.style, {
634
+ left: `${l}px`,
635
+ top: `${x}px`
636
636
  }), a.value = !0;
637
637
  } catch {
638
- x && O === k && (a.value = !1);
638
+ S && w === k && (a.value = !1);
639
639
  }
640
640
  }
641
- await Z(), !(!x || !e.open()) && ($.current = Pe(m, y, () => {
642
- T();
641
+ await Z(), !(!S || !e.open()) && (y.current = xe(s, d, () => {
642
+ K();
643
643
  }));
644
644
  },
645
645
  { flush: "post", immediate: !0 }
646
646
  );
647
- return we(() => {
648
- n();
647
+ return ye(() => {
648
+ o();
649
649
  }), {
650
650
  isPositioned: a
651
651
  };
652
652
  }
653
- function ht(e) {
654
- const a = e.valueControlled, n = e.openControlled, l = V(e.defaultValue), s = V(e.defaultOpen), f = g(() => a ? e.value() ?? null : l.value), c = g(() => n ? !!e.open() : s.value);
655
- function h(i) {
656
- return Object.is(f.value, i) ? !1 : (a || (l.value = i), e.onUpdateValue(i), !0);
653
+ function ft(e) {
654
+ const a = e.valueControlled, o = e.openControlled, t = V(e.defaultValue), c = V(e.defaultOpen), f = g(() => a ? e.value() ?? null : t.value), u = g(() => o ? !!e.open() : c.value);
655
+ function v(r) {
656
+ return Object.is(f.value, r) ? !1 : (a || (t.value = r), e.onUpdateValue(r), !0);
657
657
  }
658
- function d(i) {
659
- return c.value === i ? !1 : (n || (s.value = i), e.onUpdateOpen(i), !0);
658
+ function h(r) {
659
+ return u.value === r ? !1 : (o || (c.value = r), e.onUpdateOpen(r), !0);
660
660
  }
661
661
  return {
662
662
  value: f,
663
- open: c,
664
- setValue: h,
665
- setOpen: d
663
+ open: u,
664
+ setValue: v,
665
+ setOpen: h
666
666
  };
667
667
  }
668
- const vt = Object.freeze([
668
+ const ht = Object.freeze([
669
669
  Object.freeze({ value: "low", label: "Low" }),
670
670
  Object.freeze({ value: "medium", label: "Medium" }),
671
671
  Object.freeze({ value: "high", label: "High" })
672
672
  ]);
673
- function mt(e) {
673
+ function vt(e) {
674
674
  if (!e)
675
675
  return [];
676
676
  if (e === !0)
677
- return vt;
678
- const a = /* @__PURE__ */ new Set(), n = [];
679
- for (const l of e)
680
- a.has(l.value) || (a.add(l.value), n.push(l));
681
- return n;
677
+ return ht;
678
+ const a = /* @__PURE__ */ new Set(), o = [];
679
+ for (const t of e)
680
+ a.has(t.value) || (a.add(t.value), o.push(t));
681
+ return o;
682
682
  }
683
- function gt(e) {
683
+ function mt(e) {
684
684
  if (!e || e === !0)
685
685
  return [];
686
- const a = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
687
- for (const l of e)
688
- a.has(l.value) ? n.add(l.value) : a.add(l.value);
689
- return Array.from(n);
686
+ const a = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set();
687
+ for (const t of e)
688
+ a.has(t.value) ? o.add(t.value) : a.add(t.value);
689
+ return Array.from(o);
690
690
  }
691
- const pt = "__tr-model-selector-ungrouped__";
692
- function ne(e) {
691
+ const gt = "__tr-model-selector-ungrouped__";
692
+ function le(e) {
693
693
  return (e == null ? void 0 : e.trim()) ?? "";
694
694
  }
695
- function yt(e) {
695
+ function pt(e) {
696
696
  return e.filter((a) => !!(a && a.trim())).join(" ").toLocaleLowerCase();
697
697
  }
698
- function bt(e) {
699
- const a = /* @__PURE__ */ new Set(), n = [];
700
- return e.forEach((l, s) => {
701
- if (a.has(l.value))
698
+ function yt(e) {
699
+ const a = /* @__PURE__ */ new Set(), o = [];
700
+ return e.forEach((t, c) => {
701
+ if (a.has(t.value))
702
702
  return;
703
- a.add(l.value);
704
- const f = ne(l.label) || l.value, c = ne(l.description) || void 0, h = ne(l.group), d = h ? `group:${h}` : pt, i = typeof l.icon == "string" ? l.icon : l.icon ? ke(l.icon) : void 0;
705
- n.push({
706
- key: `value:${l.value}`,
707
- index: s,
708
- value: l.value,
703
+ a.add(t.value);
704
+ const f = le(t.label) || t.value, u = le(t.description) || void 0, v = le(t.group), h = v ? `group:${v}` : gt, r = typeof t.icon == "string" ? t.icon : t.icon ? be(t.icon) : void 0;
705
+ o.push({
706
+ key: `value:${t.value}`,
707
+ index: c,
708
+ value: t.value,
709
709
  label: f,
710
- description: c,
711
- icon: i,
712
- disabled: !!l.disabled,
713
- groupKey: d,
714
- searchText: yt([f, l.value, c, h]),
715
- raw: l
710
+ description: u,
711
+ icon: r,
712
+ disabled: !!t.disabled,
713
+ groupKey: h,
714
+ searchText: pt([f, t.value, u, v]),
715
+ raw: t
716
716
  });
717
- }), n;
717
+ }), o;
718
718
  }
719
- function wt(e) {
720
- const a = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
721
- return e.forEach((l) => {
722
- a.has(l.value) ? n.add(l.value) : a.add(l.value);
723
- }), [...n];
719
+ function bt(e) {
720
+ const a = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set();
721
+ return e.forEach((t) => {
722
+ a.has(t.value) ? o.add(t.value) : a.add(t.value);
723
+ }), [...o];
724
724
  }
725
- const kt = { class: "tr-model-selector__dropdown-surface" }, le = /* @__PURE__ */ J({
725
+ const wt = { class: "tr-model-selector__dropdown-surface" }, te = /* @__PURE__ */ X({
726
726
  name: "TrModelSelector",
727
727
  __name: "index",
728
728
  props: {
@@ -744,266 +744,261 @@ const kt = { class: "tr-model-selector__dropdown-surface" }, le = /* @__PURE__ *
744
744
  size: { default: "normal" },
745
745
  placement: { default: "bottom-start" },
746
746
  offset: { default: 8 },
747
- appendTo: { default: "body" },
747
+ appendTo: {},
748
748
  panelClass: {},
749
749
  reasoningEffortLabel: { default: "Thinking" }
750
750
  },
751
751
  emits: ["update:modelValue", "change", "update:reasoningEffort", "reasoning-effort-change", "update:open"],
752
752
  setup(e, { emit: a }) {
753
- const n = e, l = a, s = $e(), f = (s == null ? void 0 : s.uid) ?? 0, c = (s == null ? void 0 : s.vnode.props) ?? {}, h = (...o) => o.some((v) => Object.prototype.hasOwnProperty.call(c, v)), d = `tr-model-selector-${f}`, i = `${d}-listbox`, r = V(null), u = V(null), m = V(!1), y = V(null), x = ze(r), k = g(() => {
753
+ const o = e, t = a, c = we(), f = (c == null ? void 0 : c.vnode.props) ?? {}, u = (...n) => n.some((m) => Object.prototype.hasOwnProperty.call(f, m)), v = `tr-model-selector-${Ie()}`, h = `${v}-listbox`, r = V(null), i = V(null), s = V(!1), d = V(null), S = De(r), k = g(() => {
754
754
  var C, L;
755
- if (!m.value)
755
+ if (!s.value)
756
756
  return null;
757
- const o = x.value, v = n.appendTo;
758
- if (!v)
759
- return o;
760
- if (typeof v != "string")
761
- return v;
762
- if (v === "body" && o === ((C = r.value) == null ? void 0 : C.ownerDocument.body))
763
- return o;
764
- const w = o;
757
+ const n = S.value, m = o.appendTo;
758
+ if (!m)
759
+ return n;
760
+ if (typeof m != "string")
761
+ return m;
762
+ if (m === "body" && n === ((C = r.value) == null ? void 0 : C.ownerDocument.body))
763
+ return n;
764
+ const E = n;
765
765
  try {
766
- return ((L = w.querySelector) == null ? void 0 : L.call(w, v)) ?? o;
766
+ return ((L = E.querySelector) == null ? void 0 : L.call(E, m)) ?? n;
767
767
  } catch {
768
- return o;
768
+ return n;
769
769
  }
770
- }), $ = g(() => {
771
- var w;
772
- const o = k.value, v = (w = r.value) == null ? void 0 : w.ownerDocument;
773
- return !!(v && o && o !== v.body && o.nodeType === 1);
774
- }), E = ht({
775
- value: () => n.modelValue,
776
- defaultValue: n.defaultValue,
777
- valueControlled: h("modelValue", "model-value"),
778
- open: () => n.open,
779
- defaultOpen: n.disabled ? !1 : n.defaultOpen,
780
- openControlled: h("open"),
781
- onUpdateValue: (o) => l("update:modelValue", o),
782
- onUpdateOpen: (o) => l("update:open", o)
783
- }), R = g(() => bt(n.models));
784
- g(() => wt(n.models));
785
- const T = g(() => R.value.find((o) => o.value === E.value.value) ?? null), O = g(() => {
786
- var o;
787
- return mt((o = T.value) == null ? void 0 : o.raw.reasoningEfforts);
770
+ }), y = ft({
771
+ value: () => o.modelValue,
772
+ defaultValue: o.defaultValue,
773
+ valueControlled: u("modelValue", "model-value"),
774
+ open: () => o.open,
775
+ defaultOpen: o.disabled ? !1 : o.defaultOpen,
776
+ openControlled: u("open"),
777
+ onUpdateValue: (n) => t("update:modelValue", n),
778
+ onUpdateOpen: (n) => t("update:open", n)
779
+ }), $ = g(() => yt(o.models));
780
+ g(() => bt(o.models));
781
+ const O = g(() => $.value.find((n) => n.value === y.value.value) ?? null), K = g(() => {
782
+ var n;
783
+ return vt((n = O.value) == null ? void 0 : n.raw.reasoningEfforts);
788
784
  });
789
785
  g(() => {
790
- var o;
791
- return gt((o = T.value) == null ? void 0 : o.raw.reasoningEfforts);
786
+ var n;
787
+ return mt((n = O.value) == null ? void 0 : n.raw.reasoningEfforts);
792
788
  });
793
- const K = dt({
794
- value: () => n.reasoningEffort,
795
- defaultValue: n.defaultReasoningEffort,
796
- efforts: () => O.value,
797
- controlled: h("reasoningEffort", "reasoning-effort"),
798
- onUpdateValue: (o) => l("update:reasoningEffort", o)
799
- }), Q = g(() => {
800
- var o;
801
- return ((o = K.activeOption.value) == null ? void 0 : o.value) ?? null;
802
- }), t = g(() => E.open.value && !n.disabled), S = g(() => {
803
- var o;
804
- return ((o = T.value) == null ? void 0 : o.label) ?? n.placeholder;
805
- }), M = g(() => {
806
- var o;
789
+ const w = ct({
790
+ value: () => o.reasoningEffort,
791
+ defaultValue: o.defaultReasoningEffort,
792
+ efforts: () => K.value,
793
+ controlled: u("reasoningEffort", "reasoning-effort"),
794
+ onUpdateValue: (n) => t("update:reasoningEffort", n)
795
+ }), G = g(() => {
796
+ var n;
797
+ return ((n = w.activeOption.value) == null ? void 0 : n.value) ?? null;
798
+ }), T = g(() => y.open.value && !o.disabled), R = g(() => {
799
+ var n;
800
+ return ((n = O.value) == null ? void 0 : n.label) ?? o.placeholder;
801
+ }), l = g(() => {
802
+ var n;
807
803
  return {
808
- option: ((o = T.value) == null ? void 0 : o.raw) ?? null,
809
- label: S.value,
810
- open: t.value,
811
- reasoningEffortOption: K.activeOption.value
804
+ option: ((n = O.value) == null ? void 0 : n.raw) ?? null,
805
+ label: R.value,
806
+ open: T.value,
807
+ reasoningEffortOption: w.activeOption.value
812
808
  };
813
- }), B = g(() => {
814
- var o;
809
+ }), x = g(() => {
810
+ var n;
815
811
  return {
816
- option: ((o = T.value) == null ? void 0 : o.raw) ?? null,
817
- close: me
812
+ option: ((n = O.value) == null ? void 0 : n.raw) ?? null,
813
+ close: he
818
814
  };
819
815
  });
820
- function q() {
821
- var o, v;
822
- (v = (o = r.value) == null ? void 0 : o.querySelector(".tr-model-selector__trigger")) == null || v.focus({ preventScroll: !0 });
816
+ function M() {
817
+ var n, m;
818
+ (m = (n = r.value) == null ? void 0 : n.querySelector(".tr-model-selector__trigger")) == null || m.focus({ preventScroll: !0 });
823
819
  }
824
- function oe() {
825
- var v, w;
826
- let o = ((v = r.value) == null ? void 0 : v.ownerDocument.activeElement) ?? null;
827
- for (; (w = o == null ? void 0 : o.shadowRoot) != null && w.activeElement; )
828
- o = o.shadowRoot.activeElement;
829
- return o;
820
+ function I() {
821
+ var m, E;
822
+ let n = ((m = r.value) == null ? void 0 : m.ownerDocument.activeElement) ?? null;
823
+ for (; (E = n == null ? void 0 : n.shadowRoot) != null && E.activeElement; )
824
+ n = n.shadowRoot.activeElement;
825
+ return n;
830
826
  }
831
- function G() {
832
- var v;
833
- const o = oe();
834
- return !!(o && ((v = u.value) != null && v.contains(o)));
827
+ function Y() {
828
+ var m;
829
+ const n = I();
830
+ return !!(n && ((m = i.value) != null && m.contains(n)));
835
831
  }
836
- function ee() {
837
- n.disabled || E.setOpen(!0);
832
+ function F() {
833
+ o.disabled || y.setOpen(!0);
838
834
  }
839
- function X(o) {
835
+ function A(n) {
840
836
  var L;
841
- if (!t.value || y.value !== null)
837
+ if (!T.value || d.value !== null)
842
838
  return;
843
- if (y.value = o, !E.setOpen(!1)) {
844
- y.value = null;
839
+ if (d.value = n, !y.setOpen(!1)) {
840
+ d.value = null;
845
841
  return;
846
842
  }
847
- const w = () => {
848
- t.value && y.value === o && (y.value = null);
843
+ const E = () => {
844
+ T.value && d.value === n && (d.value = null);
849
845
  }, C = (L = r.value) == null ? void 0 : L.ownerDocument.defaultView;
850
- C ? C.setTimeout(w, 0) : Z().then(w);
846
+ C ? C.setTimeout(E, 0) : Z().then(E);
851
847
  }
852
- function de() {
853
- t.value ? X(!1) : ee();
848
+ function ue() {
849
+ T.value ? A(!1) : F();
854
850
  }
855
- function fe() {
856
- ee();
851
+ function ce() {
852
+ F();
857
853
  }
858
- function he(o) {
859
- const v = R.value.find((C) => C.value === o.value);
860
- if (!v || v.disabled)
854
+ function de(n) {
855
+ const m = $.value.find((C) => C.value === n.value);
856
+ if (!m || m.disabled)
861
857
  return;
862
- E.setValue(v.value) && l("change", v.raw), n.closeOnSelect && X(!0);
858
+ y.setValue(m.value) && t("change", m.raw), o.closeOnSelect && A(!0);
863
859
  }
864
- function ve(o) {
860
+ function fe(n) {
865
861
  var C;
866
- if (n.disabled || (C = T.value) != null && C.disabled)
862
+ if (o.disabled || (C = O.value) != null && C.disabled)
867
863
  return;
868
- const v = o === null ? null : O.value.find((L) => L.value === o) ?? null;
869
- K.setValue(o) && l("reasoning-effort-change", v);
864
+ const m = n === null ? null : K.value.find((L) => L.value === n) ?? null;
865
+ w.setValue(n) && t("reasoning-effort-change", m);
870
866
  }
871
- function me() {
872
- X(!0);
867
+ function he() {
868
+ A(!0);
873
869
  }
874
- const { isPositioned: ge } = ft({
870
+ const { isPositioned: ve } = dt({
875
871
  referenceEl: r,
876
- floatingEl: u,
877
- open: () => t.value,
878
- placement: () => n.placement,
879
- strategy: () => $.value ? "absolute" : "fixed",
880
- offset: () => n.offset,
872
+ floatingEl: i,
873
+ open: () => T.value,
874
+ placement: () => o.placement,
875
+ offset: () => o.offset,
881
876
  teleportTarget: () => k.value,
882
- onOutsidePointerDown: () => X(!1)
877
+ onOutsidePointerDown: () => A(!1)
883
878
  });
884
- return Y(
885
- () => n.disabled,
886
- (o) => {
887
- o && E.open.value && (y.value = !1, E.setOpen(!1));
879
+ return J(
880
+ () => o.disabled,
881
+ (n) => {
882
+ n && y.open.value && (d.value = !1, y.setOpen(!1));
888
883
  }
889
- ), Y(
890
- t,
891
- async (o, v) => {
892
- if (!o) {
893
- if (v) {
894
- const w = y.value ?? G();
895
- y.value = null, w && (await Z(), q());
884
+ ), J(
885
+ T,
886
+ async (n, m) => {
887
+ if (!n) {
888
+ if (m) {
889
+ const E = d.value ?? Y();
890
+ d.value = null, E && (await Z(), M());
896
891
  }
897
892
  return;
898
893
  }
899
894
  },
900
895
  { immediate: !0 }
901
- ), ce(() => {
902
- m.value = !0;
903
- }), (o, v) => {
904
- var w, C, L;
896
+ ), se(() => {
897
+ s.value = !0;
898
+ }), (n, m) => {
899
+ var E, C, L;
905
900
  return p(), b("div", {
906
- class: W(["tr-model-selector", [`tr-model-selector--${e.variant}`, `tr-model-selector--${e.size}`]])
901
+ class: Q(["tr-model-selector", [`tr-model-selector--${e.variant}`, `tr-model-selector--${e.size}`]])
907
902
  }, [
908
- I("span", {
903
+ z("span", {
909
904
  ref_key: "referenceEl",
910
905
  ref: r,
911
906
  class: "tr-model-selector__anchor"
912
907
  }, [
913
- N(ct, {
914
- open: t.value,
908
+ W(ut, {
909
+ open: T.value,
915
910
  disabled: e.disabled,
916
- label: S.value,
917
- "effort-label": (w = P(K).activeOption.value) == null ? void 0 : w.label,
918
- icon: (C = T.value) == null ? void 0 : C.icon,
919
- "controls-id": i,
911
+ label: R.value,
912
+ "effort-label": (E = P(w).activeOption.value) == null ? void 0 : E.label,
913
+ icon: (C = O.value) == null ? void 0 : C.icon,
914
+ "controls-id": h,
920
915
  variant: e.variant,
921
916
  size: e.size,
922
- onClick: de,
923
- onEnter: fe
924
- }, te({ _: 2 }, [
925
- o.$slots.trigger ? {
917
+ onClick: ue,
918
+ onEnter: ce
919
+ }, ee({ _: 2 }, [
920
+ n.$slots.trigger ? {
926
921
  name: "default",
927
- fn: H(() => [
928
- D(o.$slots, "trigger", U(j(M.value)))
922
+ fn: U(() => [
923
+ D(n.$slots, "trigger", j(N(l.value)))
929
924
  ]),
930
925
  key: "0"
931
926
  } : void 0
932
927
  ]), 1032, ["open", "disabled", "label", "effort-label", "icon", "variant", "size"])
933
928
  ], 512),
934
- k.value ? (p(), _(Ee, {
929
+ k.value ? (p(), _(ke, {
935
930
  key: 0,
936
931
  to: k.value
937
932
  }, [
938
- t.value ? (p(), b("div", {
933
+ T.value ? (p(), b("div", {
939
934
  key: 0,
940
935
  ref_key: "floatingEl",
941
- ref: u,
942
- class: W(["tr-model-selector__dropdown-wrapper", { "is-positioned": P(ge), "is-absolute": $.value }])
936
+ ref: i,
937
+ class: Q(["tr-model-selector__dropdown-wrapper", { "is-positioned": P(ve) }])
943
938
  }, [
944
- I("div", kt, [
945
- N(nt, {
946
- options: R.value,
947
- "selected-value": P(E).value.value,
939
+ z("div", wt, [
940
+ W(ot, {
941
+ options: $.value,
942
+ "selected-value": P(y).value.value,
948
943
  searchable: e.searchable,
949
944
  "filter-method": e.filterMethod,
950
- "listbox-id": i,
951
- "option-id-prefix": d,
945
+ "listbox-id": h,
946
+ "option-id-prefix": v,
952
947
  placeholder: e.placeholder,
953
948
  "search-placeholder": e.searchPlaceholder,
954
949
  "empty-text": e.emptyText,
955
- "effort-options": O.value,
956
- "effort-value": Q.value,
950
+ "effort-options": K.value,
951
+ "effort-value": G.value,
957
952
  "effort-label": e.reasoningEffortLabel,
958
- "effort-disabled": !!((L = T.value) != null && L.disabled),
953
+ "effort-disabled": !!((L = O.value) != null && L.disabled),
959
954
  size: e.size,
960
955
  "panel-class": e.panelClass,
961
- "slot-context": B.value,
962
- onSelect: he,
963
- onSelectEffort: ve,
964
- onClose: X
965
- }, te({ _: 2 }, [
966
- o.$slots.header ? {
956
+ "slot-context": x.value,
957
+ onSelect: de,
958
+ onSelectEffort: fe,
959
+ onClose: A
960
+ }, ee({ _: 2 }, [
961
+ n.$slots.header ? {
967
962
  name: "header",
968
- fn: H((A) => [
969
- D(o.$slots, "header", U(j(A)))
963
+ fn: U((H) => [
964
+ D(n.$slots, "header", j(N(H)))
970
965
  ]),
971
966
  key: "0"
972
967
  } : void 0,
973
- o.$slots.item ? {
968
+ n.$slots.item ? {
974
969
  name: "item",
975
- fn: H((A) => [
976
- D(o.$slots, "item", U(j(A)))
970
+ fn: U((H) => [
971
+ D(n.$slots, "item", j(N(H)))
977
972
  ]),
978
973
  key: "1"
979
974
  } : void 0,
980
- o.$slots.empty ? {
975
+ n.$slots.empty ? {
981
976
  name: "empty",
982
- fn: H((A) => [
983
- D(o.$slots, "empty", U(j(A)))
977
+ fn: U((H) => [
978
+ D(n.$slots, "empty", j(N(H)))
984
979
  ]),
985
980
  key: "2"
986
981
  } : void 0,
987
- o.$slots.footer ? {
982
+ n.$slots.footer ? {
988
983
  name: "footer",
989
- fn: H((A) => [
990
- D(o.$slots, "footer", U(j(A)))
984
+ fn: U((H) => [
985
+ D(n.$slots, "footer", j(N(H)))
991
986
  ]),
992
987
  key: "3"
993
988
  } : void 0
994
989
  ]), 1032, ["options", "selected-value", "searchable", "filter-method", "placeholder", "search-placeholder", "empty-text", "effort-options", "effort-value", "effort-label", "effort-disabled", "size", "panel-class", "slot-context"])
995
990
  ])
996
- ], 2)) : z("", !0)
997
- ], 8, ["to"])) : z("", !0)
991
+ ], 2)) : B("", !0)
992
+ ], 8, ["to"])) : B("", !0)
998
993
  ], 2);
999
994
  };
1000
995
  }
1001
996
  });
1002
- le.name = "TrModelSelector";
1003
- const $t = function(e) {
1004
- e.component(le.name, le);
997
+ te.name = "TrModelSelector";
998
+ const kt = function(e) {
999
+ e.component(te.name, te);
1005
1000
  };
1006
- le.install = $t;
1001
+ te.install = kt;
1007
1002
  export {
1008
- le as default
1003
+ te as default
1009
1004
  };