@lilaquadrat/chat 0.1.0 → 0.1.3

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.
@@ -12124,6 +12124,7 @@ const en$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty
12124
12124
  }, Symbol.toStringTag, { value: "Module" }));
12125
12125
  const DEFAULT_LOCALE = "en";
12126
12126
  const SUPPORTED_LOCALES = ["en", "de"];
12127
+ const localeModules = /* @__PURE__ */ Object.assign({ "../locales/de.ts": () => Promise.resolve().then(() => de$1), "../locales/en.ts": () => Promise.resolve().then(() => en$2) });
12127
12128
  function detectBrowserLocale() {
12128
12129
  if (typeof navigator === "undefined") return DEFAULT_LOCALE;
12129
12130
  const candidates = [
@@ -12152,10 +12153,9 @@ async function loadLocale(locale) {
12152
12153
  const global2 = i18n.global;
12153
12154
  if (!global2.availableLocales.includes(current)) {
12154
12155
  try {
12155
- const messages = (await import(
12156
- /* @vite-ignore */
12157
- `../locales/${current}.ts`
12158
- )).default;
12156
+ const loader = localeModules[`../locales/${current}.ts`];
12157
+ if (!loader) throw new Error(`No locale module for ${current}`);
12158
+ const messages = (await loader()).default;
12159
12159
  global2.setLocaleMessage(current, messages);
12160
12160
  } catch (e) {
12161
12161
  if (current !== DEFAULT_LOCALE) {
@@ -14854,6 +14854,8 @@ const useMainStore = /* @__PURE__ */ defineStore("main", () => {
14854
14854
  const apiUrl = /* @__PURE__ */ ref("http://localhost:3000");
14855
14855
  const mediaUrl = /* @__PURE__ */ ref("http://localhost:3000");
14856
14856
  const authToken = /* @__PURE__ */ ref("devToken");
14857
+ const unreadCallback = /* @__PURE__ */ ref();
14858
+ const closeCallback = /* @__PURE__ */ ref();
14857
14859
  function setViewMode(newViewMode) {
14858
14860
  viewMode.value = newViewMode;
14859
14861
  }
@@ -14884,6 +14886,8 @@ const useMainStore = /* @__PURE__ */ defineStore("main", () => {
14884
14886
  apiUrl,
14885
14887
  mediaUrl,
14886
14888
  authToken,
14889
+ unreadCallback,
14890
+ closeCallback,
14887
14891
  showConversations,
14888
14892
  showNewChat,
14889
14893
  showEditChat,
@@ -14994,6 +14998,13 @@ const useUsersCacheStore = /* @__PURE__ */ defineStore("usersCache", () => {
14994
14998
  const useConversationsStore = /* @__PURE__ */ defineStore("conversations", () => {
14995
14999
  const conversations = /* @__PURE__ */ ref([]);
14996
15000
  const activeConversation = /* @__PURE__ */ ref();
15001
+ const unreadConversations = computed(
15002
+ () => conversations.value.filter((conversation) => conversation.unread)
15003
+ );
15004
+ const totalUnreadCount = computed(
15005
+ () => unreadConversations.value.reduce((sum, conversation) => sum + (conversation.unreadCount || 0), 0)
15006
+ );
15007
+ const totalUnreadConversations = computed(() => unreadConversations.value.length);
14997
15008
  const typing = /* @__PURE__ */ ref({});
14998
15009
  const typingTimers = /* @__PURE__ */ new Map();
14999
15010
  function setTyping(conversation, user, isTyping) {
@@ -15055,16 +15066,35 @@ const useConversationsStore = /* @__PURE__ */ defineStore("conversations", () =>
15055
15066
  const response = await sdk.conversations.list();
15056
15067
  const newConversations = response.data || [];
15057
15068
  newConversations.forEach((newConv) => {
15058
- const exists = conversations.value.some(
15069
+ const existing = conversations.value.find(
15059
15070
  (existingConv) => existingConv._id === newConv._id || existingConv.id === newConv.id && newConv.id
15060
15071
  );
15061
- if (!exists) {
15072
+ if (existing) {
15073
+ existing.unreadCount = newConv.unreadCount;
15074
+ existing.unread = newConv.unread;
15075
+ existing.lastMessage = newConv.lastMessage;
15076
+ existing.messagesCount = newConv.messagesCount;
15077
+ existing.participant = { ...existing.participant, ...newConv.participant };
15078
+ } else {
15062
15079
  conversations.value.push(newConv);
15063
15080
  }
15064
15081
  useUsersCacheStore().ingest(newConv.participants);
15065
15082
  });
15066
15083
  updateAllUnread();
15067
15084
  }
15085
+ function refreshConversations() {
15086
+ StudioSDK.flushCache("conversations", "list");
15087
+ StudioSDK.flushCache("messages", "list");
15088
+ return getAllConversations();
15089
+ }
15090
+ async function handleReconnect() {
15091
+ await refreshConversations();
15092
+ const active = activeConversation.value;
15093
+ if (active && !active.isNew && active._id) {
15094
+ const messages = await getMessagesFromApi(active._id);
15095
+ addMessagesToConversation(messages, active._id);
15096
+ }
15097
+ }
15068
15098
  async function getMessagesFromApi(conversation, beforeId) {
15069
15099
  const sdk = new StudioSDK("chat", sdkOptions2());
15070
15100
  const response = await sdk.messages.list(conversation, beforeId);
@@ -15280,7 +15310,12 @@ const useConversationsStore = /* @__PURE__ */ defineStore("conversations", () =>
15280
15310
  }
15281
15311
  return {
15282
15312
  getAllConversations,
15313
+ refreshConversations,
15314
+ handleReconnect,
15283
15315
  conversations,
15316
+ unreadConversations,
15317
+ totalUnreadCount,
15318
+ totalUnreadConversations,
15284
15319
  typing,
15285
15320
  setTyping,
15286
15321
  loadParticipants,
@@ -15318,22 +15353,22 @@ const useConversationsStore = /* @__PURE__ */ defineStore("conversations", () =>
15318
15353
  leave
15319
15354
  };
15320
15355
  });
15321
- const _hoisted_1$b = { class: "conversations-module" };
15322
- const _hoisted_2$6 = ["onClick"];
15323
- const _hoisted_3$4 = { class: "time" };
15356
+ const _hoisted_1$e = { class: "conversations-module" };
15357
+ const _hoisted_2$a = ["onClick"];
15358
+ const _hoisted_3$6 = { class: "time" };
15324
15359
  const _hoisted_4$3 = {
15325
15360
  key: 3,
15326
15361
  class: "lastMessage"
15327
15362
  };
15328
- const _hoisted_5$2 = {
15363
+ const _hoisted_5$3 = {
15329
15364
  key: 4,
15330
15365
  class: "unread"
15331
15366
  };
15332
- const _hoisted_6$1 = {
15367
+ const _hoisted_6$2 = {
15333
15368
  key: 5,
15334
15369
  class: "draft"
15335
15370
  };
15336
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
15371
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
15337
15372
  __name: "conversations.module",
15338
15373
  setup(__props) {
15339
15374
  const conversationsStore = useConversationsStore();
@@ -15369,7 +15404,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
15369
15404
  });
15370
15405
  return (_ctx, _cache) => {
15371
15406
  const _component_participants_partial = resolveComponent("participants-partial");
15372
- return openBlock(), createElementBlock("section", _hoisted_1$b, [
15407
+ return openBlock(), createElementBlock("section", _hoisted_1$e, [
15373
15408
  (openBlock(true), createElementBlock(Fragment, null, renderList(conversations.value, (conversation) => {
15374
15409
  return openBlock(), createElementBlock("article", {
15375
15410
  key: conversation._id,
@@ -15386,17 +15421,17 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
15386
15421
  participants: conversation.participants,
15387
15422
  "remove-user": ""
15388
15423
  }, null, 8, ["participants"])),
15389
- createBaseVNode("span", _hoisted_3$4, toDisplayString$1(unref(dayjs)(conversation.lastMessage?.history.created).fromNow()), 1),
15424
+ createBaseVNode("span", _hoisted_3$6, toDisplayString$1(unref(dayjs)(conversation.lastMessage?.history.created).fromNow()), 1),
15390
15425
  conversation.lastMessage ? (openBlock(), createElementBlock("p", _hoisted_4$3, toDisplayString$1(conversation.lastMessage.message), 1)) : createCommentVNode("", true),
15391
- conversation.unread ? (openBlock(), createElementBlock("span", _hoisted_5$2, toDisplayString$1(conversation.unreadCount), 1)) : createCommentVNode("", true),
15392
- conversation.isNew ? (openBlock(), createElementBlock("span", _hoisted_6$1, "draft")) : createCommentVNode("", true)
15393
- ], 10, _hoisted_2$6);
15426
+ conversation.unread ? (openBlock(), createElementBlock("span", _hoisted_5$3, toDisplayString$1(conversation.unreadCount), 1)) : createCommentVNode("", true),
15427
+ conversation.isNew ? (openBlock(), createElementBlock("span", _hoisted_6$2, "draft")) : createCommentVNode("", true)
15428
+ ], 10, _hoisted_2$a);
15394
15429
  }), 128))
15395
15430
  ]);
15396
15431
  };
15397
15432
  }
15398
15433
  });
15399
- const _style_0$b = ".conversations-module[data-v-31a1e26e]{display:grid;grid-auto-rows:max-content}.conversations-module .single-conversation[data-v-31a1e26e]{padding:20px;gap:5px;cursor:pointer;display:grid;grid-template-columns:1fr 1fr}.conversations-module .single-conversation .time[data-v-31a1e26e]{justify-self:end}.conversations-module .single-conversation .lastMessage[data-v-31a1e26e]{grid-column:1 / 3;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.conversations-module .single-conversation[data-v-31a1e26e]:hover{background-color:var(--scm-color-surface)}.conversations-module .single-conversation.active[data-v-31a1e26e]{background-color:color-mix(in srgb,var(--scm-color-surface) 85%,var(--scm-color-muted))}.conversations-module .single-conversation.support[data-v-31a1e26e]{font-weight:600;border-left:3px solid var(--scm-color-primary)}";
15434
+ const _style_0$f = ".conversations-module[data-v-31a1e26e]{display:grid;grid-auto-rows:max-content}.conversations-module .single-conversation[data-v-31a1e26e]{padding:20px;gap:5px;cursor:pointer;display:grid;grid-template-columns:1fr 1fr}.conversations-module .single-conversation .time[data-v-31a1e26e]{justify-self:end}.conversations-module .single-conversation .lastMessage[data-v-31a1e26e]{grid-column:1 / 3;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.conversations-module .single-conversation[data-v-31a1e26e]:hover{background-color:var(--scm-color-surface)}.conversations-module .single-conversation.active[data-v-31a1e26e]{background-color:color-mix(in srgb,var(--scm-color-surface) 85%,var(--scm-color-muted))}.conversations-module .single-conversation.support[data-v-31a1e26e]{font-weight:600;border-left:3px solid var(--scm-color-primary)}";
15400
15435
  const _export_sfc = (sfc, props) => {
15401
15436
  const target = sfc.__vccOpts || sfc;
15402
15437
  for (const [key, val] of props) {
@@ -15404,8 +15439,8 @@ const _export_sfc = (sfc, props) => {
15404
15439
  }
15405
15440
  return target;
15406
15441
  };
15407
- const ConversationsModule = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["styles", [_style_0$b]], ["__scopeId", "data-v-31a1e26e"]]);
15408
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
15442
+ const ConversationsModule = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["styles", [_style_0$f]], ["__scopeId", "data-v-31a1e26e"]]);
15443
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
15409
15444
  __name: "chats.module",
15410
15445
  setup(__props) {
15411
15446
  const conversationsStore = useConversationsStore();
@@ -15952,16 +15987,16 @@ function requireLocalizedFormat() {
15952
15987
  }
15953
15988
  var localizedFormatExports = requireLocalizedFormat();
15954
15989
  const localizedFormat = /* @__PURE__ */ getDefaultExportFromCjs(localizedFormatExports);
15955
- var de$1 = { exports: {} };
15956
- var de = de$1.exports;
15990
+ var de$3 = { exports: {} };
15991
+ var de$2 = de$3.exports;
15957
15992
  var hasRequiredDe;
15958
15993
  function requireDe() {
15959
- if (hasRequiredDe) return de$1.exports;
15994
+ if (hasRequiredDe) return de$3.exports;
15960
15995
  hasRequiredDe = 1;
15961
15996
  (function(module, exports) {
15962
15997
  !function(e, n) {
15963
15998
  module.exports = n(requireDayjs_min());
15964
- }(de, function(e) {
15999
+ }(de$2, function(e) {
15965
16000
  function n(e2) {
15966
16001
  return e2 && "object" == typeof e2 && "default" in e2 ? e2 : { default: e2 };
15967
16002
  }
@@ -15975,8 +16010,8 @@ function requireDe() {
15975
16010
  }, weekStart: 1, yearStart: 4, formats: { LTS: "HH:mm:ss", LT: "HH:mm", L: "DD.MM.YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY HH:mm", LLLL: "dddd, D. MMMM YYYY HH:mm" }, relativeTime: { future: "in %s", past: "vor %s", s: i, m: i, mm: i, h: i, hh: i, d: i, dd: i, M: i, MM: i, y: i, yy: i } };
15976
16011
  return t.default.locale(r, null, true), r;
15977
16012
  });
15978
- })(de$1);
15979
- return de$1.exports;
16013
+ })(de$3);
16014
+ return de$3.exports;
15980
16015
  }
15981
16016
  requireDe();
15982
16017
  var en$1 = { exports: {} };
@@ -16042,17 +16077,17 @@ function groupMessages(messages, user) {
16042
16077
  });
16043
16078
  return Object.values(dateGroups);
16044
16079
  }
16045
- const _hoisted_1$a = { class: "chat-messages" };
16046
- const _hoisted_2$5 = { class: "date-separator" };
16047
- const _hoisted_3$3 = { class: "message-content" };
16080
+ const _hoisted_1$d = { class: "chat-messages" };
16081
+ const _hoisted_2$9 = { class: "date-separator" };
16082
+ const _hoisted_3$5 = { class: "message-content" };
16048
16083
  const _hoisted_4$2 = ["id"];
16049
- const _hoisted_5$1 = {
16084
+ const _hoisted_5$2 = {
16050
16085
  key: 2,
16051
16086
  class: "typing-indicator"
16052
16087
  };
16053
16088
  const SCROLL_DEBOUNCE_MS = 100;
16054
16089
  const SCROLL_EDGE_PERCENT = 10;
16055
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
16090
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
16056
16091
  __name: "chat.module",
16057
16092
  props: {
16058
16093
  _id: { type: String },
@@ -16220,6 +16255,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
16220
16255
  });
16221
16256
  const showInput = computed(() => conversation.value?.isNew || conversation.value?.participant?.state === "active" && conversation.value?.participant?.rights?.includes("write"));
16222
16257
  const typingUsers = computed(() => (conversationsStore.typing[props._id || ""] || []).filter((id) => id !== user));
16258
+ const typingUserNames = computed(() => typingUsers.value.map((id) => usersCache.name(id)));
16223
16259
  onMounted(() => {
16224
16260
  updateScrollable();
16225
16261
  window.addEventListener("resize", onResize);
@@ -16234,7 +16270,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
16234
16270
  const _component_button_partial = resolveComponent("button-partial");
16235
16271
  const _component_notice_partial = resolveComponent("notice-partial");
16236
16272
  const _component_contacts_module = resolveComponent("contacts-module");
16237
- const _component_user_name_partial = resolveComponent("user-name-partial");
16273
+ const _component_user_avatar_partial = resolveComponent("user-avatar-partial");
16238
16274
  const _component_system_message_partial = resolveComponent("system-message-partial");
16239
16275
  const _component_chat_input_partial = resolveComponent("chat-input-partial");
16240
16276
  return openBlock(), createElementBlock("section", {
@@ -16280,26 +16316,26 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
16280
16316
  class: "chat-messages-scroll-container",
16281
16317
  onScroll
16282
16318
  }, [
16283
- createBaseVNode("div", _hoisted_1$a, [
16319
+ createBaseVNode("div", _hoisted_1$d, [
16284
16320
  (openBlock(true), createElementBlock(Fragment, null, renderList(groupedMessages.value, (dateGroup) => {
16285
16321
  return openBlock(), createElementBlock("div", {
16286
16322
  key: dateGroup.date,
16287
16323
  class: "messages-group"
16288
16324
  }, [
16289
- createBaseVNode("div", _hoisted_2$5, toDisplayString$1(dateGroup.date), 1),
16325
+ createBaseVNode("div", _hoisted_2$9, toDisplayString$1(dateGroup.date), 1),
16290
16326
  (openBlock(true), createElementBlock(Fragment, null, renderList(dateGroup.userTimeGroups, (group, index) => {
16291
16327
  return openBlock(), createElementBlock("div", {
16292
16328
  key: index,
16293
16329
  class: normalizeClass([[{ isUser: group.isUser }, group.origin], "message"])
16294
16330
  }, [
16295
16331
  createBaseVNode("header", null, [
16296
- !group.isUser && group.origin === "user" ? (openBlock(), createBlock(_component_user_name_partial, {
16332
+ !group.isUser && group.origin === "user" ? (openBlock(), createBlock(_component_user_avatar_partial, {
16297
16333
  key: 0,
16298
16334
  "user-id": group.user
16299
16335
  }, null, 8, ["user-id"])) : createCommentVNode("", true),
16300
16336
  createBaseVNode("time", null, toDisplayString$1(group.time), 1)
16301
16337
  ]),
16302
- createBaseVNode("div", _hoisted_3$3, [
16338
+ createBaseVNode("div", _hoisted_3$5, [
16303
16339
  (openBlock(true), createElementBlock(Fragment, null, renderList(group.messages, (message) => {
16304
16340
  return openBlock(), createElementBlock("p", {
16305
16341
  id: `message-${message.id}`,
@@ -16321,13 +16357,13 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
16321
16357
  }), 128))
16322
16358
  ])
16323
16359
  ], 544)) : createCommentVNode("", true),
16324
- typingUsers.value.length ? (openBlock(), createElementBlock("div", _hoisted_5$1, toDisplayString$1(typingUsers.value.join(", ")) + " " + toDisplayString$1(typingUsers.value.length > 1 ? "are" : "is") + " writing… ", 1)) : createCommentVNode("", true),
16360
+ typingUsers.value.length ? (openBlock(), createElementBlock("div", _hoisted_5$2, toDisplayString$1(typingUserNames.value.join(", ")) + " " + toDisplayString$1(typingUsers.value.length > 1 ? "are" : "is") + " writing… ", 1)) : createCommentVNode("", true),
16325
16361
  showInput.value ? (openBlock(), createBlock(_component_chat_input_partial, {
16326
16362
  key: 3,
16327
16363
  modelValue: messageInput.value,
16328
16364
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => messageInput.value = $event),
16329
16365
  disabled: !!newChatExists.value,
16330
- placeholder: "Type a message...",
16366
+ placeholder: "Message",
16331
16367
  onSubmit: _cache[2] || (_cache[2] = ($event) => submit(messageInput.value)),
16332
16368
  onTyping: signalTyping
16333
16369
  }, null, 8, ["modelValue", "disabled"])) : createCommentVNode("", true)
@@ -16335,8 +16371,8 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
16335
16371
  };
16336
16372
  }
16337
16373
  });
16338
- const _style_0$a = ".chat-module[data-v-44131188]{display:grid;height:100%;grid-template-rows:80px 1fr 80px;overflow:hidden}.chat-module.isNew[data-v-44131188]{grid-template-rows:80px 1fr 80px}.chat-module .notice-partial[data-v-44131188]{position:absolute;align-self:center;justify-self:center;z-index:100}.chat-module .chat-messages-scroll-container[data-v-44131188]{overflow-y:auto;position:relative;padding-bottom:50px;display:grid}.chat-module .chat-messages-scroll-container .chat-messages[data-v-44131188]{display:grid;grid-auto-rows:max-content;align-content:end}.chat-module .chat-messages-scroll-container .chat-messages .messages-group[data-v-44131188]{display:grid;gap:20px;margin:0 20px;grid-auto-rows:max-content;align-content:end}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message[data-v-44131188]{display:grid;grid-template-rows:auto auto;gap:5px;justify-self:start;width:max-content}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message.system[data-v-44131188]{width:100%;text-align:center;align-content:center;justify-content:center}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message.system header[data-v-44131188]{justify-content:center;grid-template-columns:1fr}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message.system header time[data-v-44131188]{text-align:center;color:var(--scm-color-muted);font-size:12px}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message.system .message-content p[data-v-44131188]{background-color:transparent;padding:0;color:var(--scm-color-muted);font-size:12px;white-space:pre-wrap}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message header[data-v-44131188]{display:grid;grid-template-columns:max-content max-content;gap:10px;width:100%;font-size:14px}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message header time[data-v-44131188]{text-align:right}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message .message-content[data-v-44131188]{display:grid;gap:4px}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message .message-content p[data-v-44131188]{padding:10px;border-radius:5px;background-color:var(--scm-color-primary);color:#fff;width:max-content;justify-self:start;white-space:pre-wrap;font-size:14px}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message.isUser[data-v-44131188]{justify-self:end}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message.isUser p[data-v-44131188]{justify-self:end;background-color:var(--scm-color-own);color:#fff}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message.isUser header[data-v-44131188]{grid-template-columns:1fr}.chat-module .typing-indicator[data-v-44131188]{padding:4px 20px;font-size:12px;color:var(--scm-color-muted);font-style:italic}.chat-module .date-separator[data-v-44131188]{text-align:center;padding:20px 0;font-size:.875rem;font-weight:700}";
16339
- const ChatModule = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["styles", [_style_0$a]], ["__scopeId", "data-v-44131188"]]);
16374
+ const _style_0$e = ".chat-module[data-v-5c5c2e96]{display:grid;height:100%;grid-template-rows:max-content 1fr max-content;overflow:hidden}.chat-module.isNew[data-v-5c5c2e96]{grid-template-rows:max-content 1fr max-content}.chat-module .notice-partial[data-v-5c5c2e96]{position:absolute;align-self:center;justify-self:center;z-index:100}.chat-module .chat-messages-scroll-container[data-v-5c5c2e96]{overflow-y:auto;position:relative;padding-bottom:50px;display:grid}.chat-module .chat-messages-scroll-container .chat-messages[data-v-5c5c2e96]{display:grid;grid-auto-rows:max-content;align-content:end}.chat-module .chat-messages-scroll-container .chat-messages .messages-group[data-v-5c5c2e96]{display:grid;gap:20px;margin:0 20px;grid-auto-rows:max-content;align-content:end}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message[data-v-5c5c2e96]{display:grid;grid-template-rows:auto auto;gap:10px;justify-self:start}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message.system[data-v-5c5c2e96]{width:100%;text-align:center;align-content:center;justify-content:center}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message.system header[data-v-5c5c2e96]{justify-content:center;grid-template-columns:1fr}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message.system header time[data-v-5c5c2e96]{text-align:center;color:var(--scm-color-muted);font-size:.75em}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message.system .message-content p[data-v-5c5c2e96]{background-color:transparent;padding:0;color:var(--scm-color-muted);font-size:.75em;white-space:pre-wrap}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message header[data-v-5c5c2e96]{display:grid;grid-template-columns:max-content max-content;gap:10px;width:100%;font-size:.875em}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message header time[data-v-5c5c2e96]{text-align:right}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message .message-content[data-v-5c5c2e96]{display:grid;gap:4px}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message .message-content p[data-v-5c5c2e96]{padding:10px;border-radius:5px;background-color:var(--scm-color-primary);color:#fff;justify-self:start;white-space:pre-wrap;font-size:1em}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message.isUser[data-v-5c5c2e96]{justify-self:end}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message.isUser p[data-v-5c5c2e96]{justify-self:end;background-color:var(--scm-color-own);color:#fff}.chat-module .chat-messages-scroll-container .chat-messages .messages-group .message.isUser header[data-v-5c5c2e96]{grid-template-columns:1fr}.chat-module .typing-indicator[data-v-5c5c2e96]{padding:4px 20px;font-size:.75em;color:var(--scm-color-muted);font-style:italic}.chat-module .date-separator[data-v-5c5c2e96]{text-align:center;padding:20px 0;font-size:.875em;font-weight:700}";
16375
+ const ChatModule = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["styles", [_style_0$e]], ["__scopeId", "data-v-5c5c2e96"]]);
16340
16376
  function sdkOptions() {
16341
16377
  const mainStore = useMainStore();
16342
16378
  return {
@@ -16364,24 +16400,24 @@ const useContactsStore = /* @__PURE__ */ defineStore("contacts", () => {
16364
16400
  loadUsers
16365
16401
  };
16366
16402
  });
16367
- const _hoisted_1$9 = { class: "contacts-module" };
16368
- const _hoisted_2$4 = {
16403
+ const _hoisted_1$c = { class: "contacts-module" };
16404
+ const _hoisted_2$8 = {
16369
16405
  key: 0,
16370
16406
  class: "controls"
16371
16407
  };
16372
- const _hoisted_3$2 = {
16408
+ const _hoisted_3$4 = {
16373
16409
  key: 1,
16374
16410
  class: "rights-panel"
16375
16411
  };
16376
16412
  const _hoisted_4$1 = { class: "who" };
16377
- const _hoisted_5 = { class: "rights" };
16378
- const _hoisted_6 = ["checked", "onChange"];
16379
- const _hoisted_7 = ["onClick", "onKeydown"];
16380
- const _hoisted_8 = {
16413
+ const _hoisted_5$1 = { class: "rights" };
16414
+ const _hoisted_6$1 = ["checked", "onChange"];
16415
+ const _hoisted_7$1 = ["onClick", "onKeydown"];
16416
+ const _hoisted_8$1 = {
16381
16417
  key: 0,
16382
16418
  class: "selected-indicator"
16383
16419
  };
16384
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
16420
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
16385
16421
  __name: "contacts.module",
16386
16422
  setup(__props) {
16387
16423
  const mainStore = useMainStore();
@@ -16482,9 +16518,9 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
16482
16518
  }
16483
16519
  return (_ctx, _cache) => {
16484
16520
  const _component_button_partial = resolveComponent("button-partial");
16485
- const _component_user_name_partial = resolveComponent("user-name-partial");
16486
- return openBlock(), createElementBlock("article", _hoisted_1$9, [
16487
- isEdit.value ? (openBlock(), createElementBlock("section", _hoisted_2$4, [
16521
+ const _component_user_avatar_partial = resolveComponent("user-avatar-partial");
16522
+ return openBlock(), createElementBlock("article", _hoisted_1$c, [
16523
+ isEdit.value ? (openBlock(), createElementBlock("section", _hoisted_2$8, [
16488
16524
  createVNode(_component_button_partial, {
16489
16525
  variant: "primary",
16490
16526
  size: "sm",
@@ -16507,7 +16543,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
16507
16543
  _: 1
16508
16544
  })
16509
16545
  ])) : createCommentVNode("", true),
16510
- isEdit.value ? (openBlock(), createElementBlock("section", _hoisted_3$2, [
16546
+ isEdit.value ? (openBlock(), createElementBlock("section", _hoisted_3$4, [
16511
16547
  _cache[3] || (_cache[3] = createBaseVNode("h4", null, "participant rights", -1)),
16512
16548
  createBaseVNode("ul", null, [
16513
16549
  (openBlock(true), createElementBlock(Fragment, null, renderList(participantDocs.value, (doc2) => {
@@ -16516,13 +16552,13 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
16516
16552
  class: "participant-rights"
16517
16553
  }, [
16518
16554
  createBaseVNode("span", _hoisted_4$1, [
16519
- createVNode(_component_user_name_partial, {
16555
+ createVNode(_component_user_avatar_partial, {
16520
16556
  "user-id": doc2.user
16521
16557
  }, null, 8, ["user-id"]),
16522
16558
  _cache[2] || (_cache[2] = createTextVNode()),
16523
16559
  createBaseVNode("em", null, "(" + toDisplayString$1(doc2.state) + ")", 1)
16524
16560
  ]),
16525
- createBaseVNode("span", _hoisted_5, [
16561
+ createBaseVNode("span", _hoisted_5$1, [
16526
16562
  (openBlock(), createElementBlock(Fragment, null, renderList(RIGHTS, (right) => {
16527
16563
  return createBaseVNode("label", {
16528
16564
  key: right,
@@ -16532,7 +16568,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
16532
16568
  type: "checkbox",
16533
16569
  checked: hasRight(doc2, right),
16534
16570
  onChange: ($event) => toggleRight(doc2, right)
16535
- }, null, 40, _hoisted_6),
16571
+ }, null, 40, _hoisted_6$1),
16536
16572
  createTextVNode(" " + toDisplayString$1(right), 1)
16537
16573
  ]);
16538
16574
  }), 64))
@@ -16561,21 +16597,21 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
16561
16597
  onClick: ($event) => toggleContact(contact),
16562
16598
  onKeydown: ($event) => handleKeydown($event, contact)
16563
16599
  }, [
16564
- createVNode(_component_user_name_partial, {
16600
+ createVNode(_component_user_avatar_partial, {
16565
16601
  "user-id": contact.id
16566
16602
  }, null, 8, ["user-id"]),
16567
- contact.inConversation ? (openBlock(), createElementBlock("span", _hoisted_8, "✓")) : createCommentVNode("", true)
16568
- ], 42, _hoisted_7);
16603
+ contact.inConversation ? (openBlock(), createElementBlock("span", _hoisted_8$1, "✓")) : createCommentVNode("", true)
16604
+ ], 42, _hoisted_7$1);
16569
16605
  }), 128))
16570
16606
  ])
16571
16607
  ]);
16572
16608
  };
16573
16609
  }
16574
16610
  });
16575
- const _style_0$9 = ".contacts-module[data-v-f09a925f]{height:100%;overflow:scroll}.contacts-module .controls[data-v-f09a925f]{display:grid;grid-template-columns:1fr 1fr}.contacts-module .rights-panel[data-v-f09a925f]{padding:10px 20px;border-bottom:1px solid var(--scm-color-surface)}.contacts-module .rights-panel h4[data-v-f09a925f]{margin-bottom:10px}.contacts-module .rights-panel .participant-rights[data-v-f09a925f]{display:grid;gap:5px;padding:10px 0}.contacts-module .rights-panel .participant-rights .rights[data-v-f09a925f]{display:flex;flex-wrap:wrap;gap:10px}.contacts-module .rights-panel .participant-rights .rights .right-toggle[data-v-f09a925f]{cursor:pointer;font-size:13px}.contacts-module .rights-panel .participant-rights .who em[data-v-f09a925f]{color:var(--scm-color-muted)}.contacts-module .single-contact[data-v-f09a925f]{padding:20px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.contacts-module .single-contact[data-v-f09a925f]:hover{background-color:var(--scm-color-surface)}.contacts-module .single-contact.selected[data-v-f09a925f]{background-color:color-mix(in srgb,var(--scm-color-primary) 15%,transparent)}.contacts-module .single-contact .selected-indicator[data-v-f09a925f]{color:var(--scm-color-primary);font-weight:700}";
16576
- const ContactsModule = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["styles", [_style_0$9]], ["__scopeId", "data-v-f09a925f"]]);
16577
- const _hoisted_1$8 = { class: "participants-partial" };
16578
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
16611
+ const _style_0$d = ".contacts-module[data-v-045be51e]{height:100%;overflow:scroll}.contacts-module .controls[data-v-045be51e]{display:grid;grid-template-columns:1fr 1fr}.contacts-module .rights-panel[data-v-045be51e]{padding:10px 20px;border-bottom:1px solid var(--scm-color-surface)}.contacts-module .rights-panel h4[data-v-045be51e]{margin-bottom:10px}.contacts-module .rights-panel .participant-rights[data-v-045be51e]{display:grid;gap:5px;padding:10px 0}.contacts-module .rights-panel .participant-rights .rights[data-v-045be51e]{display:flex;flex-wrap:wrap;gap:10px}.contacts-module .rights-panel .participant-rights .rights .right-toggle[data-v-045be51e]{cursor:pointer;font-size:.8125em}.contacts-module .rights-panel .participant-rights .who em[data-v-045be51e]{color:var(--scm-color-muted)}.contacts-module .single-contact[data-v-045be51e]{padding:20px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.contacts-module .single-contact[data-v-045be51e]:hover{background-color:var(--scm-color-surface)}.contacts-module .single-contact.selected[data-v-045be51e]{background-color:color-mix(in srgb,var(--scm-color-primary) 15%,transparent)}.contacts-module .single-contact .selected-indicator[data-v-045be51e]{color:var(--scm-color-primary);font-weight:700}";
16612
+ const ContactsModule = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["styles", [_style_0$d]], ["__scopeId", "data-v-045be51e"]]);
16613
+ const _hoisted_1$b = { class: "participants-partial" };
16614
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
16579
16615
  __name: "participants.partial",
16580
16616
  props: {
16581
16617
  participants: { type: Array },
@@ -16592,15 +16628,15 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
16592
16628
  return props.participants;
16593
16629
  });
16594
16630
  return (_ctx, _cache) => {
16595
- const _component_user_name_partial = resolveComponent("user-name-partial");
16596
- return openBlock(), createElementBlock("section", _hoisted_1$8, [
16631
+ const _component_user_avatar_partial = resolveComponent("user-avatar-partial");
16632
+ return openBlock(), createElementBlock("section", _hoisted_1$b, [
16597
16633
  __props.isNew && !filteredParticipants.value.length ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
16598
16634
  createTextVNode(toDisplayString$1(_ctx.$t("select contacts")), 1)
16599
16635
  ], 64)) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(filteredParticipants.value, (participant, index) => {
16600
16636
  return openBlock(), createElementBlock(Fragment, {
16601
16637
  key: unref(participantId)(participant)
16602
16638
  }, [
16603
- createVNode(_component_user_name_partial, {
16639
+ createVNode(_component_user_avatar_partial, {
16604
16640
  "user-id": unref(participantId)(participant)
16605
16641
  }, null, 8, ["user-id"]),
16606
16642
  index < filteredParticipants.value.length - 1 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
@@ -16612,17 +16648,18 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
16612
16648
  };
16613
16649
  }
16614
16650
  });
16615
- const _style_0$8 = "";
16616
- const ParticipantsPartial = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["styles", [_style_0$8]], ["__scopeId", "data-v-50fd6d86"]]);
16617
- const _hoisted_1$7 = { class: "actions" };
16618
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
16651
+ const _style_0$c = "";
16652
+ const ParticipantsPartial = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["styles", [_style_0$c]], ["__scopeId", "data-v-f06a1cdf"]]);
16653
+ const _hoisted_1$a = { class: "actions" };
16654
+ const _hoisted_2$7 = { class: "left" };
16655
+ const _hoisted_3$3 = { class: "right" };
16656
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
16619
16657
  __name: "actions.partial",
16620
16658
  setup(__props) {
16621
16659
  const mainStore = useMainStore();
16622
16660
  const conversationsStore = useConversationsStore();
16623
16661
  const userStore = useUserStore();
16624
16662
  const hasChat = computed(() => mainStore.hasChat);
16625
- const hasSupport = computed(() => mainStore.hasSupport);
16626
16663
  const showConversationsButton = computed(
16627
16664
  () => hasChat.value || conversationsStore.conversations.length > 1
16628
16665
  );
@@ -16631,51 +16668,50 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
16631
16668
  conversationsStore.activateConversation(tempId);
16632
16669
  mainStore.showNewChat();
16633
16670
  };
16634
- const startSupport = () => {
16635
- conversationsStore.startSupport();
16636
- mainStore.hideLeft();
16637
- };
16638
16671
  function showConversations() {
16639
16672
  mainStore.showConversations();
16640
16673
  }
16674
+ function close() {
16675
+ if (mainStore.leftTarget === "contacts-edit" || mainStore.leftTarget === "contacts-new") {
16676
+ mainStore.showConversations();
16677
+ return;
16678
+ }
16679
+ mainStore.closeCallback?.();
16680
+ }
16641
16681
  return (_ctx, _cache) => {
16642
16682
  const _component_button_partial = resolveComponent("button-partial");
16643
- return openBlock(), createElementBlock("section", _hoisted_1$7, [
16644
- showConversationsButton.value ? (openBlock(), createBlock(_component_button_partial, {
16645
- key: 0,
16646
- variant: "secondary",
16647
- onClick: showConversations
16648
- }, {
16649
- default: withCtx(() => [
16650
- createTextVNode(toDisplayString$1(_ctx.$t("conversations")), 1)
16651
- ]),
16652
- _: 1
16653
- })) : createCommentVNode("", true),
16654
- hasChat.value ? (openBlock(), createBlock(_component_button_partial, {
16655
- key: 1,
16656
- onClick: createConversation
16657
- }, {
16658
- default: withCtx(() => [
16659
- createTextVNode(toDisplayString$1(_ctx.$t("new chat")), 1)
16660
- ]),
16661
- _: 1
16662
- })) : createCommentVNode("", true),
16663
- hasChat.value && hasSupport.value ? (openBlock(), createBlock(_component_button_partial, {
16664
- key: 2,
16665
- variant: "secondary",
16666
- onClick: startSupport
16667
- }, {
16668
- default: withCtx(() => [
16669
- createTextVNode(toDisplayString$1(_ctx.$t("contact support")), 1)
16670
- ]),
16671
- _: 1
16672
- })) : createCommentVNode("", true)
16683
+ return openBlock(), createElementBlock("section", _hoisted_1$a, [
16684
+ createBaseVNode("section", _hoisted_2$7, [
16685
+ showConversationsButton.value ? (openBlock(), createBlock(_component_button_partial, {
16686
+ key: 0,
16687
+ icon: "chat",
16688
+ variant: "secondary",
16689
+ "aria-label": "Conversations",
16690
+ onClick: showConversations
16691
+ })) : createCommentVNode("", true),
16692
+ hasChat.value ? (openBlock(), createBlock(_component_button_partial, {
16693
+ key: 1,
16694
+ icon: "add",
16695
+ "aria-label": "New chat",
16696
+ onClick: createConversation
16697
+ })) : createCommentVNode("", true)
16698
+ ]),
16699
+ createBaseVNode("section", _hoisted_3$3, [
16700
+ createVNode(_component_button_partial, {
16701
+ icon: "close",
16702
+ variant: "ghost",
16703
+ onClick: close
16704
+ })
16705
+ ])
16673
16706
  ]);
16674
16707
  };
16675
16708
  }
16676
16709
  });
16677
- const _hoisted_1$6 = { key: 0 };
16678
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
16710
+ const _style_0$b = ".actions[data-v-b803cf6d]{display:grid;grid-template-columns:max-content 1fr max-content;width:100%;grid-column:1/3}.actions .left[data-v-b803cf6d]{grid-column:1/2;display:flex}.actions .right[data-v-b803cf6d]{grid-column:3/4}";
16711
+ const ActionsPartial = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["styles", [_style_0$b]], ["__scopeId", "data-v-b803cf6d"]]);
16712
+ const _hoisted_1$9 = { class: "background-container" };
16713
+ const _hoisted_2$6 = { key: 0 };
16714
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
16679
16715
  __name: "chat-header.partial",
16680
16716
  props: {
16681
16717
  conversation: { type: String }
@@ -16745,50 +16781,52 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
16745
16781
  return openBlock(), createElementBlock("header", {
16746
16782
  class: normalizeClass(["chat-header", { isSupport: isSupport.value }])
16747
16783
  }, [
16748
- createBaseVNode("h3", null, [
16749
- !isSupport.value ? (openBlock(), createBlock(_component_name_edit_partial, {
16750
- key: 0,
16784
+ createBaseVNode("section", _hoisted_1$9, [
16785
+ createBaseVNode("h3", null, [
16786
+ !isSupport.value ? (openBlock(), createBlock(_component_name_edit_partial, {
16787
+ key: 0,
16788
+ conversation: __props.conversation
16789
+ }, {
16790
+ default: withCtx(() => [
16791
+ createTextVNode(toDisplayString$1(name.value), 1)
16792
+ ]),
16793
+ _: 1
16794
+ }, 8, ["conversation"])) : createCommentVNode("", true),
16795
+ isSupport.value ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
16796
+ createTextVNode(toDisplayString$1(_ctx.$t("support")), 1)
16797
+ ], 64)) : createCommentVNode("", true)
16798
+ ]),
16799
+ !isSupport.value && conversationData.value ? (openBlock(), createElementBlock("h4", _hoisted_2$6, [
16800
+ createVNode(_component_participants_partial, {
16801
+ participants: conversationData.value.participants,
16802
+ "remove-user": "",
16803
+ "is-new": isNew.value
16804
+ }, null, 8, ["participants", "is-new"]),
16805
+ !isNew.value ? (openBlock(), createBlock(_component_button_partial, {
16806
+ key: 0,
16807
+ size: "sm",
16808
+ variant: "ghost",
16809
+ "aria-label": "Toggle edit mode",
16810
+ onClick: _cache[0] || (_cache[0] = ($event) => toggleEdit())
16811
+ }, {
16812
+ default: withCtx(() => [..._cache[1] || (_cache[1] = [
16813
+ createTextVNode(" edit ", -1)
16814
+ ])]),
16815
+ _: 1
16816
+ })) : createCommentVNode("", true)
16817
+ ])) : createCommentVNode("", true),
16818
+ !isSupport.value && !isNew.value ? (openBlock(), createBlock(_component_chat_actions_partial, {
16819
+ key: 1,
16751
16820
  conversation: __props.conversation
16752
- }, {
16753
- default: withCtx(() => [
16754
- createTextVNode(toDisplayString$1(name.value), 1)
16755
- ]),
16756
- _: 1
16757
- }, 8, ["conversation"])) : createCommentVNode("", true),
16758
- isSupport.value ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
16759
- createTextVNode(toDisplayString$1(_ctx.$t("support")), 1)
16760
- ], 64)) : createCommentVNode("", true)
16761
- ]),
16762
- !isSupport.value && conversationData.value ? (openBlock(), createElementBlock("h4", _hoisted_1$6, [
16763
- createVNode(_component_participants_partial, {
16764
- participants: conversationData.value.participants,
16765
- "remove-user": "",
16766
- "is-new": isNew.value
16767
- }, null, 8, ["participants", "is-new"]),
16768
- !isNew.value ? (openBlock(), createBlock(_component_button_partial, {
16769
- key: 0,
16770
- size: "sm",
16771
- variant: "ghost",
16772
- "aria-label": "Toggle edit mode",
16773
- onClick: _cache[0] || (_cache[0] = ($event) => toggleEdit())
16774
- }, {
16775
- default: withCtx(() => [..._cache[1] || (_cache[1] = [
16776
- createTextVNode(" edit ", -1)
16777
- ])]),
16778
- _: 1
16779
- })) : createCommentVNode("", true)
16780
- ])) : createCommentVNode("", true),
16781
- !isSupport.value && !isNew.value ? (openBlock(), createBlock(_component_chat_actions_partial, {
16782
- key: 1,
16783
- conversation: __props.conversation
16784
- }, null, 8, ["conversation"])) : createCommentVNode("", true)
16821
+ }, null, 8, ["conversation"])) : createCommentVNode("", true)
16822
+ ])
16785
16823
  ], 2);
16786
16824
  };
16787
16825
  }
16788
16826
  });
16789
- const _style_0$7 = ".chat-header[data-v-722341c2]{display:grid;grid-template-columns:5fr 1fr;grid-template-rows:1fr 1fr;width:100%;padding:0 20px;align-items:center}.chat-header h3[data-v-722341c2],.chat-header h4[data-v-722341c2]{grid-column:1 / 2}.chat-header h3[data-v-722341c2]{grid-row:1}.chat-header h4[data-v-722341c2]{display:grid;grid-row:2}.chat-header .chat-actions-partial[data-v-722341c2]{justify-self:end;grid-row:1}";
16790
- const ChatHeaderPartial = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["styles", [_style_0$7]], ["__scopeId", "data-v-722341c2"]]);
16791
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
16827
+ const _style_0$a = ".chat-header[data-v-beb2ed7a]{display:grid;padding:10px 20px}.chat-header .background-container[data-v-beb2ed7a]{display:grid;grid-template-columns:5fr 1fr;grid-template-rows:1fr 1fr;align-items:center;justify-items:start;padding:0 10px;background-color:var(--scm-color-surface);border-radius:5px}.chat-header .background-container h3[data-v-beb2ed7a],.chat-header .background-container h4[data-v-beb2ed7a]{grid-column:1 / 2}.chat-header .background-container h3[data-v-beb2ed7a]{grid-row:1}.chat-header .background-container h4[data-v-beb2ed7a]{display:grid;grid-row:2}.chat-header .background-container .chat-actions-partial[data-v-beb2ed7a]{justify-self:end;grid-row:1}";
16828
+ const ChatHeaderPartial = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["styles", [_style_0$a]], ["__scopeId", "data-v-beb2ed7a"]]);
16829
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
16792
16830
  __name: "name-edit.partial",
16793
16831
  props: {
16794
16832
  conversation: { type: String }
@@ -16882,23 +16920,23 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
16882
16920
  };
16883
16921
  }
16884
16922
  });
16885
- const _hoisted_1$5 = { class: "notice-partial" };
16886
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
16923
+ const _hoisted_1$8 = { class: "notice-partial" };
16924
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
16887
16925
  __name: "notice.partial",
16888
16926
  props: {
16889
16927
  type: { type: String }
16890
16928
  },
16891
16929
  setup(__props) {
16892
16930
  return (_ctx, _cache) => {
16893
- return openBlock(), createElementBlock("section", _hoisted_1$5, [
16931
+ return openBlock(), createElementBlock("section", _hoisted_1$8, [
16894
16932
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
16895
16933
  ]);
16896
16934
  };
16897
16935
  }
16898
16936
  });
16899
- const _style_0$6 = ".notice-partial[data-v-2ad9f6c8]{display:grid}";
16900
- const NoticePartial = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["styles", [_style_0$6]], ["__scopeId", "data-v-2ad9f6c8"]]);
16901
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
16937
+ const _style_0$9 = ".notice-partial[data-v-2ad9f6c8]{display:grid}";
16938
+ const NoticePartial = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["styles", [_style_0$9]], ["__scopeId", "data-v-2ad9f6c8"]]);
16939
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
16902
16940
  ...{ inheritAttrs: false },
16903
16941
  __name: "system-message.partial",
16904
16942
  props: {
@@ -16941,9 +16979,9 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
16941
16979
  };
16942
16980
  }
16943
16981
  });
16944
- const _hoisted_1$4 = { class: "chat-actions-partial" };
16945
- const _hoisted_2$3 = { class: "options-container" };
16946
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
16982
+ const _hoisted_1$7 = { class: "chat-actions-partial" };
16983
+ const _hoisted_2$5 = { class: "options-container" };
16984
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
16947
16985
  __name: "chat-actions.partial",
16948
16986
  props: {
16949
16987
  conversation: { type: String }
@@ -16973,7 +17011,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
16973
17011
  const _component_button_partial = resolveComponent("button-partial");
16974
17012
  const _component_overlay_container_partial = resolveComponent("overlay-container-partial");
16975
17013
  const _component_dialog_partial = resolveComponent("dialog-partial");
16976
- return openBlock(), createElementBlock("section", _hoisted_1$4, [
17014
+ return openBlock(), createElementBlock("section", _hoisted_1$7, [
16977
17015
  createVNode(_component_button_partial, {
16978
17016
  ref_key: "attachTo",
16979
17017
  ref: attachTo,
@@ -16993,7 +17031,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
16993
17031
  onClose: toggle
16994
17032
  }, {
16995
17033
  default: withCtx(() => [
16996
- createBaseVNode("section", _hoisted_2$3, [
17034
+ createBaseVNode("section", _hoisted_2$5, [
16997
17035
  createBaseVNode("ul", null, [
16998
17036
  createBaseVNode("li", null, toDisplayString$1(_ctx.$t("mute")), 1),
16999
17037
  createBaseVNode("li", null, toDisplayString$1(_ctx.$t("delete")), 1),
@@ -17034,9 +17072,9 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
17034
17072
  };
17035
17073
  }
17036
17074
  });
17037
- const _style_0$5 = ".chat-actions-partial[data-v-871e6a65]{display:grid}.options-container[data-v-871e6a65]{width:max-content;min-width:200px;background-color:var(--scm-color-surface);box-shadow:0 0 5px var(--scm-color-muted)}";
17038
- const ChatActionsPartial = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["styles", [_style_0$5]], ["__scopeId", "data-v-871e6a65"]]);
17039
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
17075
+ const _style_0$8 = ".chat-actions-partial[data-v-871e6a65]{display:grid}.options-container[data-v-871e6a65]{width:max-content;min-width:200px;background-color:var(--scm-color-surface);box-shadow:0 0 5px var(--scm-color-muted)}";
17076
+ const ChatActionsPartial = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["styles", [_style_0$8]], ["__scopeId", "data-v-871e6a65"]]);
17077
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
17040
17078
  __name: "overlay-container.partial",
17041
17079
  props: {
17042
17080
  background: { type: String },
@@ -17170,16 +17208,19 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
17170
17208
  };
17171
17209
  }
17172
17210
  });
17173
- const _style_0$4 = ".overlay-background{position:fixed;top:0;left:0;display:grid;width:100%;height:100%;background-color:#00000080;z-index:1000}.overlay-background.none,.overlay-background.tablet{background-color:transparent}@media only screen and (min-width: 600px) and (max-width: 1023px){.overlay-background.tablet{background-color:#00000080}}.overlay-background.desktop{background-color:transparent}@media only screen and (min-width: 600px) and (max-width: 1023px),only screen and (min-width: 1024px){.overlay-background.desktop{background-color:#00000080}}.overlay-background .content-container{z-index:1100;position:absolute}";
17174
- const OverlayContainerPartial = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["styles", [_style_0$4]]]);
17175
- const _hoisted_1$3 = ["type", "disabled", "aria-busy", "aria-label"];
17176
- const _hoisted_2$2 = {
17211
+ const _style_0$7 = ".overlay-background{position:fixed;top:0;left:0;display:grid;width:100%;height:100%;background-color:#00000080;z-index:1000}.overlay-background.none,.overlay-background.tablet{background-color:transparent}@media only screen and (min-width: 600px) and (max-width: 1023px){.overlay-background.tablet{background-color:#00000080}}.overlay-background.desktop{background-color:transparent}@media only screen and (min-width: 600px) and (max-width: 1023px),only screen and (min-width: 1024px){.overlay-background.desktop{background-color:#00000080}}.overlay-background .content-container{z-index:1100;position:absolute}";
17212
+ const OverlayContainerPartial = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["styles", [_style_0$7]]]);
17213
+ const _hoisted_1$6 = ["type", "disabled", "aria-busy", "aria-label"];
17214
+ const _hoisted_2$4 = {
17177
17215
  key: 0,
17178
17216
  class: "scm-btn__spinner",
17179
17217
  "aria-hidden": "true"
17180
17218
  };
17181
- const _hoisted_3$1 = { class: "scm-btn__content" };
17182
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
17219
+ const _hoisted_3$2 = {
17220
+ key: 2,
17221
+ class: "scm-btn__content"
17222
+ };
17223
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
17183
17224
  __name: "button.partial",
17184
17225
  props: {
17185
17226
  variant: { type: String },
@@ -17188,7 +17229,8 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
17188
17229
  loading: { type: Boolean },
17189
17230
  block: { type: Boolean },
17190
17231
  disabled: { type: Boolean },
17191
- ariaLabel: { type: String }
17232
+ ariaLabel: { type: String },
17233
+ icon: { type: String }
17192
17234
  },
17193
17235
  emits: ["click"],
17194
17236
  setup(__props, { emit: __emit }) {
@@ -17202,7 +17244,8 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
17202
17244
  const size = `${base}--${props.size || "md"}`;
17203
17245
  const block = props.block ? `${base}--block` : "";
17204
17246
  const loading = props.loading ? `${base}--loading` : "";
17205
- return [base, variant, size, block, loading].filter(Boolean).join(" ");
17247
+ const icon = props.icon ? `${base}--icon` : "";
17248
+ return [base, variant, size, block, loading, icon].filter(Boolean).join(" ");
17206
17249
  });
17207
17250
  function onClick(evt) {
17208
17251
  if (isDisabled.value) {
@@ -17212,6 +17255,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
17212
17255
  emit2("click", evt);
17213
17256
  }
17214
17257
  return (_ctx, _cache) => {
17258
+ const _component_icons_partial = resolveComponent("icons-partial");
17215
17259
  return openBlock(), createElementBlock("button", {
17216
17260
  type: buttonType.value,
17217
17261
  disabled: isDisabled.value,
@@ -17220,18 +17264,20 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
17220
17264
  class: normalizeClass(classes.value),
17221
17265
  onClick
17222
17266
  }, [
17223
- props.loading ? (openBlock(), createElementBlock("span", _hoisted_2$2)) : createCommentVNode("", true),
17224
- createBaseVNode("span", _hoisted_3$1, [
17267
+ props.loading ? (openBlock(), createElementBlock("span", _hoisted_2$4)) : props.icon ? (openBlock(), createBlock(_component_icons_partial, {
17268
+ key: 1,
17269
+ type: props.icon
17270
+ }, null, 8, ["type"])) : (openBlock(), createElementBlock("span", _hoisted_3$2, [
17225
17271
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
17226
- ])
17227
- ], 10, _hoisted_1$3);
17272
+ ]))
17273
+ ], 10, _hoisted_1$6);
17228
17274
  };
17229
17275
  }
17230
17276
  });
17231
- const _style_0$3 = ".scm-btn[data-v-40db284f]{--scm-btn-bg: var(--scm-color-primary);--scm-btn-color: white;--scm-btn-radius: 0;--scm-btn-padding-y: 4px;--scm-btn-padding-x: 10px;--scm-btn-font-size: 14px;--scm-btn-height: 40px;--scm-btn-line-height: 42px;--scm-btn-transition: .12s ease-in-out;appearance:none;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;background-color:var(--scm-btn-bg);color:var(--scm-btn-color);font:inherit;padding:var(--scm-btn-padding-y) var(--scm-btn-padding-x);font-size:var(--scm-btn-font-size);border-radius:var(--scm-btn-radius);height:var(--scm-btn-height);line-height:var(--scm-btn-line-height);transition:background-color var(--scm-btn-transition),opacity var(--scm-btn-transition),box-shadow var(--scm-btn-transition);text-decoration:none;white-space:nowrap}.scm-btn[data-v-40db284f]:hover:not(:disabled){background-color:color-mix(in srgb,var(--scm-btn-bg) 85%,#000)}.scm-btn[data-v-40db284f]:active:not(:disabled){background-color:color-mix(in srgb,var(--scm-btn-bg) 70%,#000)}.scm-btn[data-v-40db284f]:focus-visible{outline:2px solid var(--scm-color-primary);outline-offset:2px}.scm-btn[data-v-40db284f]:disabled{opacity:.55;cursor:not-allowed}.scm-btn--secondary[data-v-40db284f]{--scm-btn-bg: var(--scm-color-surface);--scm-btn-color: var(--scm-color-muted)}.scm-btn--ghost[data-v-40db284f]{--scm-btn-bg: transparent;--scm-btn-color: var(--scm-color-primary)}.scm-btn--danger[data-v-40db284f]{--scm-btn-bg: var(--scm-color-danger);--scm-btn-color: white}.scm-btn--sm[data-v-40db284f]{--scm-btn-padding-y: 2px;--scm-btn-padding-x: 8px;--scm-btn-font-size: 12px}.scm-btn--lg[data-v-40db284f]{--scm-btn-padding-y: 8px;--scm-btn-padding-x: 16px;--scm-btn-font-size: 16px}.scm-btn--block[data-v-40db284f]{width:100%;display:inline-flex}.scm-btn__spinner[data-v-40db284f]{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:scm-spin-40db284f .6s linear infinite}@keyframes scm-spin-40db284f{to{transform:rotate(360deg)}}";
17232
- const ButtonPartial = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["styles", [_style_0$3]], ["__scopeId", "data-v-40db284f"]]);
17233
- const _hoisted_1$2 = { class: "dialog-partial" };
17234
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
17277
+ const _style_0$6 = ".scm-btn[data-v-a79bdb66]{--scm-btn-bg: var(--scm-color-primary);--scm-btn-color: white;--scm-btn-radius: 0;--scm-btn-padding-y: 4px;--scm-btn-padding-x: 10px;--scm-btn-font-size: .875em;--scm-btn-height: 40px;--scm-btn-line-height: 42px;--scm-btn-transition: .12s ease-in-out;appearance:none;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;background-color:var(--scm-btn-bg);color:var(--scm-btn-color);font:inherit;padding:var(--scm-btn-padding-y) var(--scm-btn-padding-x);font-size:var(--scm-btn-font-size);border-radius:var(--scm-btn-radius);height:var(--scm-btn-height);line-height:var(--scm-btn-line-height);transition:background-color var(--scm-btn-transition),opacity var(--scm-btn-transition),box-shadow var(--scm-btn-transition);text-decoration:none;white-space:nowrap}.scm-btn[data-v-a79bdb66]:hover:not(:disabled){background-color:color-mix(in srgb,var(--scm-btn-bg) 85%,#000)}.scm-btn[data-v-a79bdb66]:active:not(:disabled){background-color:color-mix(in srgb,var(--scm-btn-bg) 70%,#000)}.scm-btn[data-v-a79bdb66]:focus-visible{outline:2px solid var(--scm-color-primary);outline-offset:2px}.scm-btn[data-v-a79bdb66]:disabled{opacity:.55;cursor:not-allowed}.scm-btn--secondary[data-v-a79bdb66]{--scm-btn-bg: var(--scm-color-surface);--scm-btn-color: var(--scm-color-muted)}.scm-btn--ghost[data-v-a79bdb66]{--scm-btn-bg: transparent;--scm-btn-color: var(--scm-color-primary)}.scm-btn--danger[data-v-a79bdb66]{--scm-btn-bg: var(--scm-color-danger);--scm-btn-color: white}.scm-btn--sm[data-v-a79bdb66]{--scm-btn-padding-y: 2px;--scm-btn-padding-x: 8px;--scm-btn-font-size: .75em}.scm-btn--lg[data-v-a79bdb66]{--scm-btn-padding-y: 8px;--scm-btn-padding-x: 16px;--scm-btn-font-size: 1em}.scm-btn--block[data-v-a79bdb66]{width:100%;display:inline-flex}.scm-btn__spinner[data-v-a79bdb66]{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:scm-spin-a79bdb66 .6s linear infinite}.scm-btn--icon[data-v-a79bdb66]{--scm-btn-padding-x: 8px;width:var(--scm-btn-height)}.scm-btn--icon[data-v-a79bdb66] .icon-partial svg{stroke:currentColor}.scm-btn--icon[data-v-a79bdb66] .icon-partial svg.useFill{fill:currentColor}@keyframes scm-spin-a79bdb66{to{transform:rotate(360deg)}}";
17278
+ const ButtonPartial = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["styles", [_style_0$6]], ["__scopeId", "data-v-a79bdb66"]]);
17279
+ const _hoisted_1$5 = { class: "dialog-partial" };
17280
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
17235
17281
  __name: "dialog.partial",
17236
17282
  emits: ["accept", "decline"],
17237
17283
  setup(__props, { emit: __emit }) {
@@ -17244,7 +17290,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
17244
17290
  }
17245
17291
  return (_ctx, _cache) => {
17246
17292
  const _component_button_partial = resolveComponent("button-partial");
17247
- return openBlock(), createElementBlock("section", _hoisted_1$2, [
17293
+ return openBlock(), createElementBlock("section", _hoisted_1$5, [
17248
17294
  renderSlot(_ctx.$slots, "default", {}, void 0, true),
17249
17295
  createVNode(_component_button_partial, { onClick: onAccept }, {
17250
17296
  default: withCtx(() => [..._cache[0] || (_cache[0] = [
@@ -17262,11 +17308,12 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
17262
17308
  };
17263
17309
  }
17264
17310
  });
17265
- const _style_0$2 = ".dialog-partial[data-v-ae4dfdf7]{padding:20px;background-color:var(--scm-color-surface);box-shadow:0 0 5px var(--scm-color-muted)}";
17266
- const DialogPartial = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["styles", [_style_0$2]], ["__scopeId", "data-v-ae4dfdf7"]]);
17267
- const _hoisted_1$1 = { class: "chat-input" };
17268
- const _hoisted_2$1 = ["value", "placeholder"];
17269
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
17311
+ const _style_0$5 = ".dialog-partial[data-v-ae4dfdf7]{padding:20px;background-color:var(--scm-color-surface);box-shadow:0 0 5px var(--scm-color-muted)}";
17312
+ const DialogPartial = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["styles", [_style_0$5]], ["__scopeId", "data-v-ae4dfdf7"]]);
17313
+ const _hoisted_1$4 = { class: "chat-input" };
17314
+ const _hoisted_2$3 = { class: "background-container" };
17315
+ const _hoisted_3$1 = ["value", "placeholder"];
17316
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
17270
17317
  __name: "chat-input.partial",
17271
17318
  props: {
17272
17319
  modelValue: { type: String },
@@ -17277,42 +17324,54 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
17277
17324
  setup(__props, { emit: __emit }) {
17278
17325
  const props = __props;
17279
17326
  const emit2 = __emit;
17327
+ const textareaRef = /* @__PURE__ */ ref(null);
17328
+ function resize2() {
17329
+ const textarea = textareaRef.value;
17330
+ if (!textarea) return;
17331
+ textarea.style.height = "auto";
17332
+ textarea.style.height = `${textarea.scrollHeight}px`;
17333
+ }
17334
+ function onInput(event) {
17335
+ const target = event.target;
17336
+ emit2("update:modelValue", target.value);
17337
+ emit2("typing");
17338
+ nextTick(resize2);
17339
+ }
17280
17340
  function onKeydown(event) {
17281
17341
  if (event.key === "Enter" && !event.shiftKey && !props.disabled) {
17282
17342
  event.preventDefault();
17283
17343
  emit2("submit");
17284
17344
  }
17285
17345
  }
17346
+ watch(() => props.modelValue, () => nextTick(resize2));
17286
17347
  return (_ctx, _cache) => {
17287
17348
  const _component_button_partial = resolveComponent("button-partial");
17288
- return openBlock(), createElementBlock("div", _hoisted_1$1, [
17289
- createBaseVNode("textarea", {
17290
- value: __props.modelValue,
17291
- placeholder: __props.placeholder,
17292
- rows: "1",
17293
- onInput: _cache[0] || (_cache[0] = ($event) => {
17294
- emit2("update:modelValue", $event.target.value);
17295
- emit2("typing");
17296
- }),
17297
- onKeydown
17298
- }, null, 40, _hoisted_2$1),
17299
- createVNode(_component_button_partial, {
17300
- disabled: __props.disabled,
17301
- "aria-label": "Send message",
17302
- onClick: _cache[1] || (_cache[1] = ($event) => emit2("submit"))
17303
- }, {
17304
- default: withCtx(() => [..._cache[2] || (_cache[2] = [
17305
- createTextVNode(" Send ", -1)
17306
- ])]),
17307
- _: 1
17308
- }, 8, ["disabled"])
17349
+ return openBlock(), createElementBlock("div", _hoisted_1$4, [
17350
+ createBaseVNode("section", _hoisted_2$3, [
17351
+ createBaseVNode("textarea", {
17352
+ ref_key: "textareaRef",
17353
+ ref: textareaRef,
17354
+ value: __props.modelValue,
17355
+ placeholder: __props.placeholder,
17356
+ rows: "1",
17357
+ onInput,
17358
+ onKeydown
17359
+ }, null, 40, _hoisted_3$1),
17360
+ createVNode(_component_button_partial, {
17361
+ icon: "send",
17362
+ variant: "ghost",
17363
+ disabled: __props.disabled,
17364
+ "aria-label": "Send message",
17365
+ onClick: _cache[0] || (_cache[0] = ($event) => emit2("submit"))
17366
+ }, null, 8, ["disabled"])
17367
+ ])
17309
17368
  ]);
17310
17369
  };
17311
17370
  }
17312
17371
  });
17313
- const _style_0$1 = ".chat-input[data-v-3cd4c855]{display:grid;grid-template-columns:1fr max-content}.chat-input textarea[data-v-3cd4c855]{padding:10px;resize:none;font-size:14px}.chat-input button[data-v-3cd4c855]{padding:10px 15px;background-color:var(--scm-color-primary);color:#fff;border:none;cursor:pointer}.chat-input button [data-v-3cd4c855]:disabled{background-color:var(--scm-color-muted);cursor:not-allowed}";
17314
- const ChatInputPartial = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["styles", [_style_0$1]], ["__scopeId", "data-v-3cd4c855"]]);
17315
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
17372
+ const _style_0$4 = ".chat-input[data-v-b6ae32fa]{padding:20px}.chat-input .background-container[data-v-b6ae32fa]{border-radius:5px;display:grid;grid-template-columns:1fr max-content;grid-template-rows:max-content;background-color:var(--scm-color-surface)}.chat-input .background-container textarea[data-v-b6ae32fa]{border:0;padding:10px;background-color:var(--scm-color-surface);outline:none;font-size:1em}.chat-input .background-container button[data-v-b6ae32fa]{align-self:end}";
17373
+ const ChatInputPartial = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["styles", [_style_0$4]], ["__scopeId", "data-v-b6ae32fa"]]);
17374
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
17316
17375
  __name: "user-name.partial",
17317
17376
  props: {
17318
17377
  userId: { type: String }
@@ -17328,6 +17387,951 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
17328
17387
  };
17329
17388
  }
17330
17389
  });
17390
+ const _hoisted_1$3 = { class: "user-avatar" };
17391
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
17392
+ __name: "user-avatar.partial",
17393
+ props: {
17394
+ userId: { type: String }
17395
+ },
17396
+ setup(__props) {
17397
+ const props = __props;
17398
+ const usersCache = useUsersCacheStore();
17399
+ const name = computed(() => usersCache.name(props.userId));
17400
+ const initials = computed(() => {
17401
+ const parts = name.value.split(/\s+/).filter(Boolean);
17402
+ if (parts.length >= 2) return (parts[0][0] + parts[1][0]).toUpperCase();
17403
+ return (parts[0]?.[0] || "?").toUpperCase();
17404
+ });
17405
+ const hue = computed(() => {
17406
+ let hash = 0;
17407
+ for (let index = 0; index < props.userId.length; index++) {
17408
+ hash = props.userId.charCodeAt(index) + ((hash << 5) - hash);
17409
+ }
17410
+ return Math.abs(hash) % 360;
17411
+ });
17412
+ onMounted(() => {
17413
+ usersCache.ensure([props.userId]);
17414
+ });
17415
+ return (_ctx, _cache) => {
17416
+ return openBlock(), createElementBlock("span", _hoisted_1$3, [
17417
+ createBaseVNode("span", {
17418
+ class: "user-avatar__circle",
17419
+ style: normalizeStyle({ backgroundColor: `hsl(${hue.value}, 45%, 60%)` })
17420
+ }, toDisplayString$1(initials.value), 5),
17421
+ createVNode(_sfc_main$4, { "user-id": __props.userId }, null, 8, ["user-id"])
17422
+ ]);
17423
+ };
17424
+ }
17425
+ });
17426
+ const _style_0$3 = ".user-avatar[data-v-1fc1d2df]{display:inline-flex;align-items:center;gap:6px}.user-avatar__circle[data-v-1fc1d2df]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:.625em;font-weight:600;color:#fff;flex-shrink:0;line-height:1}";
17427
+ const UserAvatarPartial = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["styles", [_style_0$3]], ["__scopeId", "data-v-1fc1d2df"]]);
17428
+ const _hoisted_1$2 = {
17429
+ key: 0,
17430
+ xmlns: "http://www.w3.org/2000/svg",
17431
+ class: "h-6 w-6",
17432
+ fill: "none",
17433
+ viewBox: "0 0 24 24",
17434
+ stroke: "currentColor",
17435
+ "stroke-width": "2"
17436
+ };
17437
+ const _hoisted_2$2 = {
17438
+ key: 1,
17439
+ xmlns: "http://www.w3.org/2000/svg",
17440
+ class: "h-6 w-6",
17441
+ fill: "none",
17442
+ viewBox: "0 0 24 24",
17443
+ stroke: "currentColor",
17444
+ "stroke-width": "2"
17445
+ };
17446
+ const _hoisted_3 = {
17447
+ key: 2,
17448
+ xmlns: "http://www.w3.org/2000/svg",
17449
+ fill: "none",
17450
+ viewBox: "0 0 24 24",
17451
+ "stroke-width": "2",
17452
+ stroke: "currentColor",
17453
+ class: "w-6 h-6"
17454
+ };
17455
+ const _hoisted_4 = {
17456
+ key: 3,
17457
+ xmlns: "http://www.w3.org/2000/svg",
17458
+ class: "h-6 w-6",
17459
+ fill: "none",
17460
+ viewBox: "0 0 24 24",
17461
+ stroke: "currentColor",
17462
+ "stroke-width": "2"
17463
+ };
17464
+ const _hoisted_5 = {
17465
+ key: 4,
17466
+ xmlns: "http://www.w3.org/2000/svg",
17467
+ fill: "none",
17468
+ viewBox: "0 0 24 24",
17469
+ "stroke-width": "1.5",
17470
+ stroke: "currentColor",
17471
+ class: "size-6"
17472
+ };
17473
+ const _hoisted_6 = {
17474
+ key: 5,
17475
+ xmlns: "http://www.w3.org/2000/svg",
17476
+ fill: "none",
17477
+ viewBox: "0 0 24 24",
17478
+ "stroke-width": "1.5",
17479
+ stroke: "currentColor",
17480
+ class: "w-6 h-6"
17481
+ };
17482
+ const _hoisted_7 = {
17483
+ key: 6,
17484
+ xmlns: "http://www.w3.org/2000/svg",
17485
+ fill: "none",
17486
+ viewBox: "0 0 24 24",
17487
+ "stroke-width": "1.5",
17488
+ stroke: "currentColor",
17489
+ class: "size-6"
17490
+ };
17491
+ const _hoisted_8 = {
17492
+ key: 7,
17493
+ xmlns: "http://www.w3.org/2000/svg",
17494
+ fill: "none",
17495
+ viewBox: "0 0 24 24",
17496
+ "stroke-width": "1.5",
17497
+ stroke: "currentColor",
17498
+ class: "w-6 h-6"
17499
+ };
17500
+ const _hoisted_9 = {
17501
+ key: 8,
17502
+ xmlns: "http://www.w3.org/2000/svg",
17503
+ fill: "none",
17504
+ viewBox: "0 0 24 24",
17505
+ "stroke-width": "1.5",
17506
+ stroke: "currentColor",
17507
+ class: "w-6 h-6"
17508
+ };
17509
+ const _hoisted_10 = {
17510
+ key: 9,
17511
+ class: "useFill",
17512
+ viewBox: "0 0 24 24",
17513
+ style: { "isolation": "isolate" },
17514
+ xmlns: "http://www.w3.org/2000/svg"
17515
+ };
17516
+ const _hoisted_11 = {
17517
+ key: 10,
17518
+ xmlns: "http://www.w3.org/2000/svg",
17519
+ class: "h-6 w-6 useStroke",
17520
+ fill: "none",
17521
+ viewBox: "0 0 24 24",
17522
+ stroke: "currentColor",
17523
+ "stroke-width": "2"
17524
+ };
17525
+ const _hoisted_12 = {
17526
+ key: 11,
17527
+ xmlns: "http://www.w3.org/2000/svg",
17528
+ class: "h-6 w-6 useStroke",
17529
+ fill: "none",
17530
+ viewBox: "0 0 24 24",
17531
+ stroke: "currentColor",
17532
+ "stroke-width": "2"
17533
+ };
17534
+ const _hoisted_13 = {
17535
+ key: 12,
17536
+ xmlns: "http://www.w3.org/2000/svg",
17537
+ viewBox: "0 0 500 500"
17538
+ };
17539
+ const _hoisted_14 = {
17540
+ key: 13,
17541
+ xmlns: "http://www.w3.org/2000/svg",
17542
+ class: "h-6 w-6",
17543
+ fill: "none",
17544
+ viewBox: "0 0 24 24",
17545
+ stroke: "currentColor",
17546
+ "stroke-width": "2"
17547
+ };
17548
+ const _hoisted_15 = {
17549
+ key: 14,
17550
+ class: "upload",
17551
+ viewBox: "0 0 24 24",
17552
+ fill: "none",
17553
+ "stroke-width": "2",
17554
+ stroke: "currentColor",
17555
+ xmlns: "http://www.w3.org/2000/svg"
17556
+ };
17557
+ const _hoisted_16 = {
17558
+ key: 15,
17559
+ xmlns: "http://www.w3.org/2000/svg",
17560
+ fill: "none",
17561
+ viewBox: "0 0 24 24",
17562
+ "stroke-width": "2",
17563
+ stroke: "currentColor",
17564
+ class: "w-6 h-6"
17565
+ };
17566
+ const _hoisted_17 = {
17567
+ key: 16,
17568
+ xmlns: "http://www.w3.org/2000/svg",
17569
+ class: "h-6 w-6",
17570
+ fill: "none",
17571
+ viewBox: "0 0 24 24",
17572
+ stroke: "currentColor",
17573
+ "stroke-width": "2"
17574
+ };
17575
+ const _hoisted_18 = {
17576
+ key: 17,
17577
+ xmlns: "http://www.w3.org/2000/svg",
17578
+ class: "h-6 w-6",
17579
+ fill: "none",
17580
+ viewBox: "0 0 24 24",
17581
+ stroke: "currentColor",
17582
+ "stroke-width": "2"
17583
+ };
17584
+ const _hoisted_19 = {
17585
+ key: 18,
17586
+ xmlns: "http://www.w3.org/2000/svg",
17587
+ class: "h-6 w-6",
17588
+ fill: "none",
17589
+ viewBox: "0 0 24 24",
17590
+ stroke: "currentColor",
17591
+ "stroke-width": "2"
17592
+ };
17593
+ const _hoisted_20 = {
17594
+ key: 19,
17595
+ xmlns: "http://www.w3.org/2000/svg",
17596
+ class: "h-6 w-6",
17597
+ fill: "none",
17598
+ viewBox: "0 0 24 24",
17599
+ stroke: "currentColor",
17600
+ "stroke-width": "2"
17601
+ };
17602
+ const _hoisted_21 = {
17603
+ key: 20,
17604
+ xmlns: "http://www.w3.org/2000/svg",
17605
+ class: "h-6 w-6",
17606
+ fill: "none",
17607
+ viewBox: "0 0 24 24",
17608
+ stroke: "currentColor",
17609
+ "stroke-width": "2"
17610
+ };
17611
+ const _hoisted_22 = {
17612
+ key: 21,
17613
+ xmlns: "http://www.w3.org/2000/svg",
17614
+ class: "h-6 w-6",
17615
+ fill: "none",
17616
+ viewBox: "0 0 24 24",
17617
+ stroke: "currentColor",
17618
+ "stroke-width": "2"
17619
+ };
17620
+ const _hoisted_23 = {
17621
+ key: 22,
17622
+ xmlns: "http://www.w3.org/2000/svg",
17623
+ class: "h-6 w-6",
17624
+ fill: "none",
17625
+ viewBox: "0 0 24 24",
17626
+ stroke: "currentColor",
17627
+ "stroke-width": "2"
17628
+ };
17629
+ const _hoisted_24 = {
17630
+ key: 23,
17631
+ xmlns: "http://www.w3.org/2000/svg",
17632
+ class: "h-6 w-6",
17633
+ fill: "none",
17634
+ viewBox: "0 0 24 24",
17635
+ stroke: "currentColor",
17636
+ "stroke-width": "2"
17637
+ };
17638
+ const _hoisted_25 = {
17639
+ key: 24,
17640
+ xmlns: "http://www.w3.org/2000/svg",
17641
+ class: "h-6 w-6",
17642
+ fill: "none",
17643
+ viewBox: "0 0 24 24",
17644
+ stroke: "currentColor",
17645
+ "stroke-width": "2"
17646
+ };
17647
+ const _hoisted_26 = {
17648
+ key: 25,
17649
+ xmlns: "http://www.w3.org/2000/svg",
17650
+ class: "h-6 w-6",
17651
+ fill: "none",
17652
+ viewBox: "0 0 24 24",
17653
+ stroke: "currentColor",
17654
+ "stroke-width": "2"
17655
+ };
17656
+ const _hoisted_27 = {
17657
+ key: 26,
17658
+ xmlns: "http://www.w3.org/2000/svg",
17659
+ class: "h-6 w-6 useStroke",
17660
+ fill: "none",
17661
+ viewBox: "0 0 24 24",
17662
+ stroke: "currentColor",
17663
+ "stroke-width": "2"
17664
+ };
17665
+ const _hoisted_28 = {
17666
+ key: 27,
17667
+ xmlns: "http://www.w3.org/2000/svg",
17668
+ class: "h-6 w-6",
17669
+ fill: "none",
17670
+ viewBox: "0 0 24 24",
17671
+ stroke: "currentColor",
17672
+ "stroke-width": "2"
17673
+ };
17674
+ const _hoisted_29 = {
17675
+ key: 28,
17676
+ xmlns: "http://www.w3.org/2000/svg",
17677
+ fill: "none",
17678
+ viewBox: "0 0 24 24",
17679
+ "stroke-width": "2",
17680
+ stroke: "currentColor",
17681
+ class: "w-6 h-6"
17682
+ };
17683
+ const _hoisted_30 = {
17684
+ key: 29,
17685
+ xmlns: "http://www.w3.org/2000/svg",
17686
+ class: "h-6 w-6",
17687
+ fill: "none",
17688
+ viewBox: "0 0 24 24",
17689
+ stroke: "currentColor",
17690
+ "stroke-width": "2"
17691
+ };
17692
+ const _hoisted_31 = {
17693
+ key: 30,
17694
+ xmlns: "http://www.w3.org/2000/svg",
17695
+ fill: "none",
17696
+ viewBox: "0 0 24 24",
17697
+ "stroke-width": "2",
17698
+ stroke: "currentColor",
17699
+ class: "w-6 h-6"
17700
+ };
17701
+ const _hoisted_32 = {
17702
+ key: 31,
17703
+ xmlns: "http://www.w3.org/2000/svg",
17704
+ fill: "none",
17705
+ viewBox: "0 0 24 24",
17706
+ "stroke-width": "2",
17707
+ stroke: "currentColor",
17708
+ class: "w-6 h-6"
17709
+ };
17710
+ const _hoisted_33 = {
17711
+ key: 32,
17712
+ xmlns: "http://www.w3.org/2000/svg",
17713
+ fill: "none",
17714
+ viewBox: "0 0 24 24",
17715
+ "stroke-width": "2",
17716
+ stroke: "currentColor",
17717
+ class: "w-6 h-6"
17718
+ };
17719
+ const _hoisted_34 = {
17720
+ key: 33,
17721
+ xmlns: "http://www.w3.org/2000/svg",
17722
+ fill: "none",
17723
+ viewBox: "0 0 24 24",
17724
+ "stroke-width": "2",
17725
+ stroke: "currentColor",
17726
+ class: "w-6 h-6"
17727
+ };
17728
+ const _hoisted_35 = {
17729
+ key: 34,
17730
+ xmlns: "http://www.w3.org/2000/svg",
17731
+ fill: "none",
17732
+ viewBox: "0 0 24 24",
17733
+ "stroke-width": "2",
17734
+ stroke: "currentColor",
17735
+ class: "w-6 h-6"
17736
+ };
17737
+ const _hoisted_36 = {
17738
+ key: 35,
17739
+ xmlns: "http://www.w3.org/2000/svg",
17740
+ fill: "none",
17741
+ viewBox: "0 0 24 24",
17742
+ "stroke-width": "2",
17743
+ stroke: "currentColor",
17744
+ class: "w-6 h-6"
17745
+ };
17746
+ const _hoisted_37 = {
17747
+ key: 36,
17748
+ xmlns: "http://www.w3.org/2000/svg",
17749
+ fill: "none",
17750
+ viewBox: "0 0 24 24",
17751
+ "stroke-width": "2",
17752
+ stroke: "currentColor",
17753
+ class: "w-6 h-6"
17754
+ };
17755
+ const _hoisted_38 = {
17756
+ key: 37,
17757
+ xmlns: "http://www.w3.org/2000/svg",
17758
+ fill: "none",
17759
+ viewBox: "0 0 24 24",
17760
+ "stroke-width": "2",
17761
+ stroke: "currentColor",
17762
+ class: "w-6 h-6"
17763
+ };
17764
+ const _hoisted_39 = {
17765
+ key: 38,
17766
+ xmlns: "http://www.w3.org/2000/svg",
17767
+ fill: "none",
17768
+ viewBox: "0 0 24 24",
17769
+ "stroke-width": "2",
17770
+ stroke: "currentColor",
17771
+ class: "w-6 h-6"
17772
+ };
17773
+ const _hoisted_40 = {
17774
+ key: 39,
17775
+ xmlns: "http://www.w3.org/2000/svg",
17776
+ fill: "none",
17777
+ viewBox: "0 0 24 24",
17778
+ "stroke-width": "2",
17779
+ stroke: "currentColor",
17780
+ class: "w-6 h-6"
17781
+ };
17782
+ const _hoisted_41 = {
17783
+ key: 40,
17784
+ xmlns: "http://www.w3.org/2000/svg",
17785
+ fill: "none",
17786
+ viewBox: "0 0 24 24",
17787
+ "stroke-width": "2",
17788
+ stroke: "currentColor",
17789
+ class: "w-6 h-6"
17790
+ };
17791
+ const _hoisted_42 = {
17792
+ key: 41,
17793
+ xmlns: "http://www.w3.org/2000/svg",
17794
+ fill: "none",
17795
+ viewBox: "0 0 24 24",
17796
+ "stroke-width": "1.5",
17797
+ stroke: "currentColor",
17798
+ class: "w-6 h-6"
17799
+ };
17800
+ const _hoisted_43 = {
17801
+ key: 42,
17802
+ xmlns: "http://www.w3.org/2000/svg",
17803
+ fill: "none",
17804
+ viewBox: "0 0 24 24",
17805
+ "stroke-width": "1.5",
17806
+ stroke: "currentColor",
17807
+ class: "w-6 h-6"
17808
+ };
17809
+ const _hoisted_44 = {
17810
+ key: 43,
17811
+ xmlns: "http://www.w3.org/2000/svg",
17812
+ fill: "none",
17813
+ viewBox: "0 0 24 24",
17814
+ "stroke-width": "1.5",
17815
+ stroke: "currentColor",
17816
+ class: "w-6 h-6"
17817
+ };
17818
+ const _hoisted_45 = {
17819
+ key: 44,
17820
+ xmlns: "http://www.w3.org/2000/svg",
17821
+ fill: "none",
17822
+ viewBox: "0 0 24 24",
17823
+ "stroke-width": "1.5",
17824
+ stroke: "currentColor",
17825
+ class: "size-6"
17826
+ };
17827
+ const _hoisted_46 = {
17828
+ key: 45,
17829
+ xmlns: "http://www.w3.org/2000/svg",
17830
+ fill: "none",
17831
+ viewBox: "0 0 24 24",
17832
+ "stroke-width": "1.5",
17833
+ stroke: "currentColor",
17834
+ class: "size-6"
17835
+ };
17836
+ const _hoisted_47 = {
17837
+ key: 46,
17838
+ xmlns: "http://www.w3.org/2000/svg",
17839
+ fill: "none",
17840
+ viewBox: "0 0 24 24",
17841
+ "stroke-width": "1.5",
17842
+ stroke: "currentColor",
17843
+ class: "size-6"
17844
+ };
17845
+ const _hoisted_48 = {
17846
+ key: 47,
17847
+ xmlns: "http://www.w3.org/2000/svg",
17848
+ fill: "none",
17849
+ viewBox: "0 0 24 24",
17850
+ "stroke-width": "1.5",
17851
+ stroke: "currentColor",
17852
+ class: "size-6"
17853
+ };
17854
+ const _hoisted_49 = {
17855
+ key: 48,
17856
+ xmlns: "http://www.w3.org/2000/svg",
17857
+ fill: "none",
17858
+ viewBox: "0 0 24 24",
17859
+ "stroke-width": "1.5",
17860
+ stroke: "currentColor",
17861
+ class: "size-6"
17862
+ };
17863
+ const _hoisted_50 = {
17864
+ key: 49,
17865
+ xmlns: "http://www.w3.org/2000/svg",
17866
+ fill: "none",
17867
+ viewBox: "0 0 24 24",
17868
+ "stroke-width": "1.5",
17869
+ stroke: "currentColor",
17870
+ class: "size-6"
17871
+ };
17872
+ const _hoisted_51 = {
17873
+ key: 50,
17874
+ xmlns: "http://www.w3.org/2000/svg",
17875
+ fill: "none",
17876
+ viewBox: "0 0 24 24",
17877
+ "stroke-width": "1.5",
17878
+ stroke: "currentColor",
17879
+ class: "size-6"
17880
+ };
17881
+ const _hoisted_52 = {
17882
+ key: 51,
17883
+ xmlns: "http://www.w3.org/2000/svg",
17884
+ fill: "none",
17885
+ viewBox: "0 0 24 24",
17886
+ "stroke-width": "1.5",
17887
+ stroke: "currentColor",
17888
+ class: "size-6"
17889
+ };
17890
+ const _hoisted_53 = {
17891
+ key: 52,
17892
+ xmlns: "http://www.w3.org/2000/svg",
17893
+ fill: "none",
17894
+ viewBox: "0 0 24 24",
17895
+ "stroke-width": "1.5",
17896
+ stroke: "currentColor",
17897
+ class: "size-6"
17898
+ };
17899
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
17900
+ __name: "icons.partial",
17901
+ props: {
17902
+ type: { type: String },
17903
+ colorScheme: { type: String },
17904
+ size: { type: String },
17905
+ rotate: { type: Number },
17906
+ animate: { type: Boolean }
17907
+ },
17908
+ setup(__props) {
17909
+ const props = __props;
17910
+ const rotateClass = computed(() => {
17911
+ if (!props.rotate) return null;
17912
+ return `rotate${props.rotate}`;
17913
+ });
17914
+ return (_ctx, _cache) => {
17915
+ return openBlock(), createElementBlock("span", {
17916
+ class: normalizeClass(["icon-partial", [__props.type, __props.colorScheme || "colorScheme1", __props.size || "medium", rotateClass.value, { animate: __props.animate }]])
17917
+ }, [
17918
+ __props.type === "arrow-right" ? (openBlock(), createElementBlock("svg", _hoisted_1$2, [..._cache[0] || (_cache[0] = [
17919
+ createBaseVNode("path", {
17920
+ "stroke-linecap": "round",
17921
+ "stroke-linejoin": "round",
17922
+ d: "M9 5l7 7-7 7"
17923
+ }, null, -1)
17924
+ ])])) : createCommentVNode("", true),
17925
+ __props.type === "arrow-left" ? (openBlock(), createElementBlock("svg", _hoisted_2$2, [..._cache[1] || (_cache[1] = [
17926
+ createBaseVNode("path", {
17927
+ "stroke-linecap": "round",
17928
+ "stroke-linejoin": "round",
17929
+ d: "M15 19l-7-7 7-7"
17930
+ }, null, -1)
17931
+ ])])) : createCommentVNode("", true),
17932
+ __props.type === "arrow-down" ? (openBlock(), createElementBlock("svg", _hoisted_3, [..._cache[2] || (_cache[2] = [
17933
+ createBaseVNode("path", {
17934
+ "stroke-linecap": "round",
17935
+ "stroke-linejoin": "round",
17936
+ d: "M19.5 8.25l-7.5 7.5-7.5-7.5"
17937
+ }, null, -1)
17938
+ ])])) : createCommentVNode("", true),
17939
+ __props.type === "notifications" ? (openBlock(), createElementBlock("svg", _hoisted_4, [..._cache[3] || (_cache[3] = [
17940
+ createBaseVNode("path", {
17941
+ "stroke-linecap": "round",
17942
+ "stroke-linejoin": "round",
17943
+ d: "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"
17944
+ }, null, -1)
17945
+ ])])) : createCommentVNode("", true),
17946
+ __props.type === "arrow-right-long" ? (openBlock(), createElementBlock("svg", _hoisted_5, [..._cache[4] || (_cache[4] = [
17947
+ createBaseVNode("path", {
17948
+ "stroke-linecap": "round",
17949
+ "stroke-linejoin": "round",
17950
+ d: "M17.25 8.25 21 12m0 0-3.75 3.75M21 12H3"
17951
+ }, null, -1)
17952
+ ])])) : createCommentVNode("", true),
17953
+ __props.type === "chevron-down" ? (openBlock(), createElementBlock("svg", _hoisted_6, [..._cache[5] || (_cache[5] = [
17954
+ createBaseVNode("path", {
17955
+ "stroke-linecap": "round",
17956
+ "stroke-linejoin": "round",
17957
+ d: "M19.5 8.25l-7.5 7.5-7.5-7.5"
17958
+ }, null, -1)
17959
+ ])])) : createCommentVNode("", true),
17960
+ __props.type === "chevron-up" ? (openBlock(), createElementBlock("svg", _hoisted_7, [..._cache[6] || (_cache[6] = [
17961
+ createBaseVNode("path", {
17962
+ "stroke-linecap": "round",
17963
+ "stroke-linejoin": "round",
17964
+ d: "m4.5 15.75 7.5-7.5 7.5 7.5"
17965
+ }, null, -1)
17966
+ ])])) : createCommentVNode("", true),
17967
+ __props.type === "chevron-right" ? (openBlock(), createElementBlock("svg", _hoisted_8, [..._cache[7] || (_cache[7] = [
17968
+ createBaseVNode("path", {
17969
+ "stroke-linecap": "round",
17970
+ "stroke-linejoin": "round",
17971
+ d: "m8.25 4.5 7.5 7.5-7.5 7.5"
17972
+ }, null, -1)
17973
+ ])])) : createCommentVNode("", true),
17974
+ __props.type === "chevron-left" ? (openBlock(), createElementBlock("svg", _hoisted_9, [..._cache[8] || (_cache[8] = [
17975
+ createBaseVNode("path", {
17976
+ "stroke-linecap": "round",
17977
+ "stroke-linejoin": "round",
17978
+ d: "M15.75 19.5 8.25 12l7.5-7.5"
17979
+ }, null, -1)
17980
+ ])])) : createCommentVNode("", true),
17981
+ __props.type === "editor-add" ? (openBlock(), createElementBlock("svg", _hoisted_10, [..._cache[9] || (_cache[9] = [
17982
+ createBaseVNode("g", {
17983
+ width: "24",
17984
+ height: "24",
17985
+ transform: "matrix(0.92, 0, 0, 0.92, 0.480769, 0.352584)"
17986
+ }, [
17987
+ createBaseVNode("path", { d: " M 25 12.498 C 24.999 12.245 24.868 12.01 24.652 11.877 L 22.111 10.31 L 24.655 8.727 C 24.869 8.594 25 8.359 25 8.107 C 25 7.854 24.871 7.619 24.656 7.485 L 12.889 0.112 C 12.651 -0.037 12.349 -0.037 12.111 0.112 L 0.344 7.485 C 0.13 7.619 0 7.854 0 8.107 C 0 8.359 0.131 8.594 0.345 8.727 L 2.871 10.299 L 0.344 11.879 C 0.13 12.013 0 12.248 0 12.501 C 0 12.754 0.131 12.988 0.345 13.122 L 2.871 14.694 L 0.344 16.273 C 0.13 16.407 0 16.642 0 16.894 C 0 17.147 0.13 17.381 0.344 17.515 L 12.111 24.888 C 12.23 24.963 12.365 25 12.5 25 C 12.635 25 12.77 24.963 12.889 24.888 L 24.656 17.515 C 24.871 17.381 25.001 17.145 25 16.892 C 24.999 16.639 24.867 16.404 24.652 16.271 L 22.111 14.705 L 24.655 13.122 C 24.87 12.988 25.001 12.752 25 12.498 Z M 2.115 8.103 L 12.5 1.597 L 22.885 8.103 C 22.785 8.166 12.798 14.382 12.5 14.567 L 2.115 8.103 Z M 22.88 16.9 L 12.5 23.403 L 2.113 16.895 L 4.256 15.556 L 12.113 20.446 C 12.231 20.52 12.366 20.557 12.5 20.557 C 12.634 20.557 12.769 20.52 12.887 20.446 L 20.722 15.569 L 22.88 16.9 Z M 12.5 18.962 L 2.116 12.499 L 4.256 11.161 L 12.113 16.052 C 12.231 16.125 12.366 16.162 12.5 16.162 C 12.634 16.162 12.769 16.125 12.887 16.052 L 20.722 11.175 L 22.877 12.503 C 22.817 12.54 12.775 18.79 12.5 18.962 Z " }),
17988
+ createBaseVNode("path", { d: "M 12.099 3.875 L 12.901 3.875 C 13.025 3.875 13.125 3.975 13.125 4.099 L 13.125 10.813 C 13.125 10.936 13.025 11.036 12.901 11.036 L 12.099 11.036 C 11.975 11.036 11.875 10.936 11.875 10.813 L 11.875 4.099 C 11.875 3.975 11.975 3.875 12.099 3.875 Z" }),
17989
+ createBaseVNode("path", { d: "M 8.919 7.857 L 8.919 7.054 C 8.919 6.931 9.019 6.831 9.143 6.831 L 15.857 6.831 C 15.981 6.831 16.081 6.931 16.081 7.054 L 16.081 7.857 C 16.081 7.981 15.981 8.081 15.857 8.081 L 9.143 8.081 C 9.019 8.081 8.919 7.981 8.919 7.857 Z" })
17990
+ ], -1)
17991
+ ])])) : createCommentVNode("", true),
17992
+ __props.type === "settings" ? (openBlock(), createElementBlock("svg", _hoisted_11, [..._cache[10] || (_cache[10] = [
17993
+ createBaseVNode("path", {
17994
+ "stroke-linecap": "round",
17995
+ "stroke-linejoin": "round",
17996
+ d: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"
17997
+ }, null, -1),
17998
+ createBaseVNode("path", {
17999
+ "stroke-linecap": "round",
18000
+ "stroke-linejoin": "round",
18001
+ d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z"
18002
+ }, null, -1)
18003
+ ])])) : createCommentVNode("", true),
18004
+ __props.type === "logout" ? (openBlock(), createElementBlock("svg", _hoisted_12, [..._cache[11] || (_cache[11] = [
18005
+ createBaseVNode("path", {
18006
+ "stroke-linecap": "round",
18007
+ "stroke-linejoin": "round",
18008
+ d: "M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"
18009
+ }, null, -1)
18010
+ ])])) : createCommentVNode("", true),
18011
+ __props.type === "logo" ? (openBlock(), createElementBlock("svg", _hoisted_13, [..._cache[12] || (_cache[12] = [
18012
+ createBaseVNode("path", {
18013
+ style: { "fill": "#3f2d56" },
18014
+ d: "M25,25V475H475V25ZM228.44,317.1q-17.94,13.42-47,13.42-39.6,0-66.66-21.78l18.7-26.18q20.46,16.06,47.74,16.06,13.63,0,21.67-4.62t8-12.54q0-7.47-7.48-11.66t-23.76-5.94q-31.47-3.51-46.09-14.74T119,217q0-21.33,17.49-34.43t45.65-13.09q33.87,0,58.3,17.6l-16.94,25.3a68.24,68.24,0,0,0-39.82-12.54q-13.42,0-21.45,4.4t-8,11.88q0,7.26,6.93,11.22t23.21,5.94q62,7.26,62,48.4Q246.37,303.69,228.44,317.1ZM385.19,204.46H338.11V327H302V204.46H255.17V173h130Z"
18015
+ }, null, -1)
18016
+ ])])) : createCommentVNode("", true),
18017
+ __props.type === "warning" ? (openBlock(), createElementBlock("svg", _hoisted_14, [..._cache[13] || (_cache[13] = [
18018
+ createBaseVNode("path", {
18019
+ "stroke-linecap": "round",
18020
+ "stroke-linejoin": "round",
18021
+ d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"
18022
+ }, null, -1)
18023
+ ])])) : createCommentVNode("", true),
18024
+ __props.type === "upload" ? (openBlock(), createElementBlock("svg", _hoisted_15, [..._cache[14] || (_cache[14] = [
18025
+ createBaseVNode("path", {
18026
+ class: "arrow-up",
18027
+ "stroke-linecap": "round",
18028
+ "stroke-linejoin": "round",
18029
+ d: "M 7.5 7.5 L 12 3 M 12 3 L 16.5 7.5 M 12 3 L 12 16.5"
18030
+ }, null, -1),
18031
+ createBaseVNode("path", {
18032
+ "stroke-linecap": "round",
18033
+ "stroke-linejoin": "round",
18034
+ d: "M 3.064 16.521 L 3.064 18.771 C 3.064 20.013 4.072 21.021 5.314 21.021 L 18.814 21.021 C 20.057 21.021 21.064 20.013 21.064 18.771 L 21.064 16.521"
18035
+ }, null, -1)
18036
+ ])])) : createCommentVNode("", true),
18037
+ __props.type === "download" ? (openBlock(), createElementBlock("svg", _hoisted_16, [..._cache[15] || (_cache[15] = [
18038
+ createBaseVNode("path", {
18039
+ "stroke-linecap": "round",
18040
+ "stroke-linejoin": "round",
18041
+ d: "M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3"
18042
+ }, null, -1)
18043
+ ])])) : createCommentVNode("", true),
18044
+ __props.type === "checked" ? (openBlock(), createElementBlock("svg", _hoisted_17, [..._cache[16] || (_cache[16] = [
18045
+ createBaseVNode("path", {
18046
+ "stroke-linecap": "round",
18047
+ "stroke-linejoin": "round",
18048
+ d: "M5 13l4 4L19 7"
18049
+ }, null, -1)
18050
+ ])])) : createCommentVNode("", true),
18051
+ __props.type === "link" ? (openBlock(), createElementBlock("svg", _hoisted_18, [..._cache[17] || (_cache[17] = [
18052
+ createBaseVNode("path", {
18053
+ "stroke-linecap": "round",
18054
+ "stroke-linejoin": "round",
18055
+ d: "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"
18056
+ }, null, -1)
18057
+ ])])) : createCommentVNode("", true),
18058
+ __props.type === "folder" ? (openBlock(), createElementBlock("svg", _hoisted_19, [..._cache[18] || (_cache[18] = [
18059
+ createBaseVNode("path", {
18060
+ "stroke-linecap": "round",
18061
+ "stroke-linejoin": "round",
18062
+ d: "M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"
18063
+ }, null, -1)
18064
+ ])])) : createCommentVNode("", true),
18065
+ __props.type === "close" ? (openBlock(), createElementBlock("svg", _hoisted_20, [..._cache[19] || (_cache[19] = [
18066
+ createBaseVNode("path", {
18067
+ "stroke-linecap": "round",
18068
+ "stroke-linejoin": "round",
18069
+ d: "M6 18L18 6M6 6l12 12"
18070
+ }, null, -1)
18071
+ ])])) : createCommentVNode("", true),
18072
+ __props.type === "add" ? (openBlock(), createElementBlock("svg", _hoisted_21, [..._cache[20] || (_cache[20] = [
18073
+ createBaseVNode("path", {
18074
+ "stroke-linecap": "round",
18075
+ "stroke-linejoin": "round",
18076
+ d: "M12 4v16m8-8H4"
18077
+ }, null, -1)
18078
+ ])])) : createCommentVNode("", true),
18079
+ __props.type === "info" ? (openBlock(), createElementBlock("svg", _hoisted_22, [..._cache[21] || (_cache[21] = [
18080
+ createBaseVNode("path", {
18081
+ "stroke-linecap": "round",
18082
+ "stroke-linejoin": "round",
18083
+ d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
18084
+ }, null, -1)
18085
+ ])])) : createCommentVNode("", true),
18086
+ __props.type === "history" ? (openBlock(), createElementBlock("svg", _hoisted_23, [..._cache[22] || (_cache[22] = [
18087
+ createBaseVNode("path", {
18088
+ "stroke-linecap": "round",
18089
+ "stroke-linejoin": "round",
18090
+ d: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"
18091
+ }, null, -1)
18092
+ ])])) : createCommentVNode("", true),
18093
+ __props.type === "partner" ? (openBlock(), createElementBlock("svg", _hoisted_24, [..._cache[23] || (_cache[23] = [
18094
+ createBaseVNode("path", {
18095
+ "stroke-linecap": "round",
18096
+ "stroke-linejoin": "round",
18097
+ d: "M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z"
18098
+ }, null, -1)
18099
+ ])])) : createCommentVNode("", true),
18100
+ __props.type === "file" ? (openBlock(), createElementBlock("svg", _hoisted_25, [..._cache[24] || (_cache[24] = [
18101
+ createBaseVNode("path", {
18102
+ "stroke-linecap": "round",
18103
+ "stroke-linejoin": "round",
18104
+ d: "M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"
18105
+ }, null, -1)
18106
+ ])])) : createCommentVNode("", true),
18107
+ __props.type === "publish" ? (openBlock(), createElementBlock("svg", _hoisted_26, [..._cache[25] || (_cache[25] = [
18108
+ createBaseVNode("path", {
18109
+ "stroke-linecap": "round",
18110
+ "stroke-linejoin": "round",
18111
+ d: "M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.368 2.684 3 3 0 00-5.368-2.684z"
18112
+ }, null, -1)
18113
+ ])])) : createCommentVNode("", true),
18114
+ __props.type === "menu" ? (openBlock(), createElementBlock("svg", _hoisted_27, [..._cache[26] || (_cache[26] = [
18115
+ createBaseVNode("path", {
18116
+ "stroke-linecap": "round",
18117
+ "stroke-linejoin": "round",
18118
+ d: "M4 6h16M4 12h8m-8 6h16"
18119
+ }, null, -1)
18120
+ ])])) : createCommentVNode("", true),
18121
+ __props.type === "endpoints" ? (openBlock(), createElementBlock("svg", _hoisted_28, [..._cache[27] || (_cache[27] = [
18122
+ createBaseVNode("path", {
18123
+ "stroke-linecap": "round",
18124
+ "stroke-linejoin": "round",
18125
+ d: "M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
18126
+ }, null, -1)
18127
+ ])])) : createCommentVNode("", true),
18128
+ __props.type === "arrow-up" ? (openBlock(), createElementBlock("svg", _hoisted_29, [..._cache[28] || (_cache[28] = [
18129
+ createBaseVNode("path", {
18130
+ "stroke-linecap": "round",
18131
+ "stroke-linejoin": "round",
18132
+ d: "M4.5 15.75l7.5-7.5 7.5 7.5"
18133
+ }, null, -1)
18134
+ ])])) : createCommentVNode("", true),
18135
+ __props.type === "lightbulb" ? (openBlock(), createElementBlock("svg", _hoisted_30, [..._cache[29] || (_cache[29] = [
18136
+ createBaseVNode("path", {
18137
+ "stroke-linecap": "round",
18138
+ "stroke-linejoin": "round",
18139
+ d: "M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"
18140
+ }, null, -1)
18141
+ ])])) : createCommentVNode("", true),
18142
+ __props.type === "computer" ? (openBlock(), createElementBlock("svg", _hoisted_31, [..._cache[30] || (_cache[30] = [
18143
+ createBaseVNode("path", {
18144
+ "stroke-linecap": "round",
18145
+ "stroke-linejoin": "round",
18146
+ d: "M9 17.25v1.007a3 3 0 01-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0115 18.257V17.25m6-12V15a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 15V5.25m18 0A2.25 2.25 0 0018.75 3H5.25A2.25 2.25 0 003 5.25m18 0V12a2.25 2.25 0 01-2.25 2.25H5.25A2.25 2.25 0 013 12V5.25"
18147
+ }, null, -1)
18148
+ ])])) : createCommentVNode("", true),
18149
+ __props.type === "tags" ? (openBlock(), createElementBlock("svg", _hoisted_32, [..._cache[31] || (_cache[31] = [
18150
+ createBaseVNode("path", {
18151
+ "stroke-linecap": "round",
18152
+ "stroke-linejoin": "round",
18153
+ d: "M9.568 3H5.25A2.25 2.25 0 003 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 005.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 009.568 3z"
18154
+ }, null, -1),
18155
+ createBaseVNode("path", {
18156
+ "stroke-linecap": "round",
18157
+ "stroke-linejoin": "round",
18158
+ d: "M6 6h.008v.008H6V6z"
18159
+ }, null, -1)
18160
+ ])])) : createCommentVNode("", true),
18161
+ __props.type === "home" ? (openBlock(), createElementBlock("svg", _hoisted_33, [..._cache[32] || (_cache[32] = [
18162
+ createBaseVNode("path", {
18163
+ "stroke-linecap": "round",
18164
+ "stroke-linejoin": "round",
18165
+ d: "M2.25 12l8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25"
18166
+ }, null, -1)
18167
+ ])])) : createCommentVNode("", true),
18168
+ __props.type === "server" ? (openBlock(), createElementBlock("svg", _hoisted_34, [..._cache[33] || (_cache[33] = [
18169
+ createBaseVNode("path", {
18170
+ "stroke-linecap": "round",
18171
+ "stroke-linejoin": "round",
18172
+ d: "M5.25 14.25h13.5m-13.5 0a3 3 0 01-3-3m3 3a3 3 0 100 6h13.5a3 3 0 100-6m-16.5-3a3 3 0 013-3h13.5a3 3 0 013 3m-19.5 0a4.5 4.5 0 01.9-2.7L5.737 5.1a3.375 3.375 0 012.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 01.9 2.7m0 0a3 3 0 01-3 3m0 3h.008v.008h-.008v-.008zm0-6h.008v.008h-.008v-.008zm-3 6h.008v.008h-.008v-.008zm0-6h.008v.008h-.008v-.008z"
18173
+ }, null, -1)
18174
+ ])])) : createCommentVNode("", true),
18175
+ __props.type === "play" ? (openBlock(), createElementBlock("svg", _hoisted_35, [..._cache[34] || (_cache[34] = [
18176
+ createBaseVNode("path", {
18177
+ "stroke-linecap": "round",
18178
+ "stroke-linejoin": "round",
18179
+ d: "M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.348a1.125 1.125 0 010 1.971l-11.54 6.347a1.125 1.125 0 01-1.667-.985V5.653z"
18180
+ }, null, -1)
18181
+ ])])) : createCommentVNode("", true),
18182
+ __props.type === "pause" ? (openBlock(), createElementBlock("svg", _hoisted_36, [..._cache[35] || (_cache[35] = [
18183
+ createBaseVNode("path", {
18184
+ "stroke-linecap": "round",
18185
+ "stroke-linejoin": "round",
18186
+ d: "M15.75 5.25v13.5m-7.5-13.5v13.5"
18187
+ }, null, -1)
18188
+ ])])) : createCommentVNode("", true),
18189
+ __props.type === "stop" ? (openBlock(), createElementBlock("svg", _hoisted_37, [..._cache[36] || (_cache[36] = [
18190
+ createBaseVNode("path", {
18191
+ "stroke-linecap": "round",
18192
+ "stroke-linejoin": "round",
18193
+ d: "M5.25 7.5A2.25 2.25 0 017.5 5.25h9a2.25 2.25 0 012.25 2.25v9a2.25 2.25 0 01-2.25 2.25h-9a2.25 2.25 0 01-2.25-2.25v-9z"
18194
+ }, null, -1)
18195
+ ])])) : createCommentVNode("", true),
18196
+ __props.type === "replay" ? (openBlock(), createElementBlock("svg", _hoisted_38, [..._cache[37] || (_cache[37] = [
18197
+ createBaseVNode("path", {
18198
+ "stroke-linecap": "round",
18199
+ "stroke-linejoin": "round",
18200
+ d: "M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99"
18201
+ }, null, -1)
18202
+ ])])) : createCommentVNode("", true),
18203
+ __props.type === "statistics" ? (openBlock(), createElementBlock("svg", _hoisted_39, [..._cache[38] || (_cache[38] = [
18204
+ createBaseVNode("path", {
18205
+ "stroke-linecap": "round",
18206
+ "stroke-linejoin": "round",
18207
+ d: "M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 013 19.875v-6.75zM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V8.625zM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V4.125z"
18208
+ }, null, -1)
18209
+ ])])) : createCommentVNode("", true),
18210
+ __props.type === "edit" ? (openBlock(), createElementBlock("svg", _hoisted_40, [..._cache[39] || (_cache[39] = [
18211
+ createBaseVNode("path", {
18212
+ "stroke-linecap": "round",
18213
+ "stroke-linejoin": "round",
18214
+ d: "M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L10.582 16.07a4.5 4.5 0 01-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 011.13-1.897l8.932-8.931zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0115.75 21H5.25A2.25 2.25 0 013 18.75V8.25A2.25 2.25 0 015.25 6H10"
18215
+ }, null, -1)
18216
+ ])])) : createCommentVNode("", true),
18217
+ __props.type === "clock" ? (openBlock(), createElementBlock("svg", _hoisted_41, [..._cache[40] || (_cache[40] = [
18218
+ createBaseVNode("path", {
18219
+ "stroke-linecap": "round",
18220
+ "stroke-linejoin": "round",
18221
+ d: "M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z"
18222
+ }, null, -1)
18223
+ ])])) : createCommentVNode("", true),
18224
+ __props.type === "filter" ? (openBlock(), createElementBlock("svg", _hoisted_42, [..._cache[41] || (_cache[41] = [
18225
+ createBaseVNode("path", {
18226
+ "stroke-linecap": "round",
18227
+ "stroke-linejoin": "round",
18228
+ d: "M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 01-.659 1.591l-5.432 5.432a2.25 2.25 0 00-.659 1.591v2.927a2.25 2.25 0 01-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 00-.659-1.591L3.659 7.409A2.25 2.25 0 013 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0112 3z"
18229
+ }, null, -1)
18230
+ ])])) : createCommentVNode("", true),
18231
+ __props.type === "star" ? (openBlock(), createElementBlock("svg", _hoisted_43, [..._cache[42] || (_cache[42] = [
18232
+ createBaseVNode("path", {
18233
+ "stroke-linecap": "round",
18234
+ "stroke-linejoin": "round",
18235
+ d: "M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"
18236
+ }, null, -1)
18237
+ ])])) : createCommentVNode("", true),
18238
+ __props.type === "hide" ? (openBlock(), createElementBlock("svg", _hoisted_44, [..._cache[43] || (_cache[43] = [
18239
+ createBaseVNode("path", {
18240
+ "stroke-linecap": "round",
18241
+ "stroke-linejoin": "round",
18242
+ d: "M3.98 8.223A10.477 10.477 0 001.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.45 10.45 0 0112 4.5c4.756 0 8.773 3.162 10.065 7.498a10.523 10.523 0 01-4.293 5.774M6.228 6.228L3 3m3.228 3.228l3.65 3.65m7.894 7.894L21 21m-3.228-3.228l-3.65-3.65m0 0a3 3 0 10-4.243-4.243m4.242 4.242L9.88 9.88"
18243
+ }, null, -1)
18244
+ ])])) : createCommentVNode("", true),
18245
+ __props.type === "test" ? (openBlock(), createElementBlock("svg", _hoisted_45, [..._cache[44] || (_cache[44] = [
18246
+ createBaseVNode("path", {
18247
+ "stroke-linecap": "round",
18248
+ "stroke-linejoin": "round",
18249
+ d: "M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"
18250
+ }, null, -1)
18251
+ ])])) : createCommentVNode("", true),
18252
+ __props.type === "clipboard" ? (openBlock(), createElementBlock("svg", _hoisted_46, [..._cache[45] || (_cache[45] = [
18253
+ createBaseVNode("path", {
18254
+ "stroke-linecap": "round",
18255
+ "stroke-linejoin": "round",
18256
+ d: "M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0 1 18 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3 1.5 1.5 3-3.75"
18257
+ }, null, -1)
18258
+ ])])) : createCommentVNode("", true),
18259
+ __props.type === "structure" ? (openBlock(), createElementBlock("svg", _hoisted_47, [..._cache[46] || (_cache[46] = [
18260
+ createBaseVNode("path", {
18261
+ "stroke-linecap": "round",
18262
+ "stroke-linejoin": "round",
18263
+ d: "m21 7.5-9-5.25L3 7.5m18 0-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9"
18264
+ }, null, -1)
18265
+ ])])) : createCommentVNode("", true),
18266
+ __props.type === "qrcode" ? (openBlock(), createElementBlock("svg", _hoisted_48, [..._cache[47] || (_cache[47] = [
18267
+ createBaseVNode("path", {
18268
+ "stroke-linecap": "round",
18269
+ "stroke-linejoin": "round",
18270
+ d: "M3.75 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0 1 3.75 9.375v-4.5ZM3.75 14.625c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5a1.125 1.125 0 0 1-1.125-1.125v-4.5ZM13.5 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0 1 13.5 9.375v-4.5Z"
18271
+ }, null, -1),
18272
+ createBaseVNode("path", {
18273
+ "stroke-linecap": "round",
18274
+ "stroke-linejoin": "round",
18275
+ d: "M6.75 6.75h.75v.75h-.75v-.75ZM6.75 16.5h.75v.75h-.75v-.75ZM16.5 6.75h.75v.75h-.75v-.75ZM13.5 13.5h.75v.75h-.75v-.75ZM13.5 19.5h.75v.75h-.75v-.75ZM19.5 13.5h.75v.75h-.75v-.75ZM19.5 19.5h.75v.75h-.75v-.75ZM16.5 16.5h.75v.75h-.75v-.75Z"
18276
+ }, null, -1)
18277
+ ])])) : createCommentVNode("", true),
18278
+ __props.type === "magic" ? (openBlock(), createElementBlock("svg", _hoisted_49, [..._cache[48] || (_cache[48] = [
18279
+ createBaseVNode("path", {
18280
+ "stroke-linecap": "round",
18281
+ "stroke-linejoin": "round",
18282
+ d: "M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"
18283
+ }, null, -1)
18284
+ ])])) : createCommentVNode("", true),
18285
+ __props.type === "fastforward" ? (openBlock(), createElementBlock("svg", _hoisted_50, [..._cache[49] || (_cache[49] = [
18286
+ createBaseVNode("path", {
18287
+ "stroke-linecap": "round",
18288
+ "stroke-linejoin": "round",
18289
+ d: "M3 8.689c0-.864.933-1.406 1.683-.977l7.108 4.061a1.125 1.125 0 0 1 0 1.954l-7.108 4.061A1.125 1.125 0 0 1 3 16.811V8.69ZM12.75 8.689c0-.864.933-1.406 1.683-.977l7.108 4.061a1.125 1.125 0 0 1 0 1.954l-7.108 4.061a1.125 1.125 0 0 1-1.683-.977V8.69Z"
18290
+ }, null, -1)
18291
+ ])])) : createCommentVNode("", true),
18292
+ __props.type === "archive" ? (openBlock(), createElementBlock("svg", _hoisted_51, [..._cache[50] || (_cache[50] = [
18293
+ createBaseVNode("path", {
18294
+ "stroke-linecap": "round",
18295
+ "stroke-linejoin": "round",
18296
+ d: "m20.25 7.5-.625 10.632a2.25 2.25 0 0 1-2.247 2.118H6.622a2.25 2.25 0 0 1-2.247-2.118L3.75 7.5M10 11.25h4M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125Z"
18297
+ }, null, -1)
18298
+ ])])) : createCommentVNode("", true),
18299
+ __props.type === "send" ? (openBlock(), createElementBlock("svg", _hoisted_52, [..._cache[51] || (_cache[51] = [
18300
+ createBaseVNode("path", {
18301
+ "stroke-linecap": "round",
18302
+ "stroke-linejoin": "round",
18303
+ d: "M6 12 3.269 3.125A59.769 59.769 0 0 1 21.485 12 59.768 59.768 0 0 1 3.27 20.875L5.999 12Zm0 0h7.5"
18304
+ }, null, -1)
18305
+ ])])) : createCommentVNode("", true),
18306
+ __props.type === "chat" ? (openBlock(), createElementBlock("svg", _hoisted_53, [..._cache[52] || (_cache[52] = [
18307
+ createBaseVNode("path", {
18308
+ "stroke-linecap": "round",
18309
+ "stroke-linejoin": "round",
18310
+ d: "M8.625 9.75a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm0 0H8.25m4.125 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm0 0H12m4.125 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm0 0h-.375m-13.5 3.01c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.184-4.183a1.14 1.14 0 0 1 .778-.332 48.294 48.294 0 0 0 5.83-.498c1.585-.233 2.708-1.626 2.708-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0 0 12 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018Z"
18311
+ }, null, -1)
18312
+ ])])) : createCommentVNode("", true)
18313
+ ], 2);
18314
+ };
18315
+ }
18316
+ });
18317
+ const _style_0$2 = ".icon-partial[data-v-4a547a78]{display:grid;align-self:center;justify-content:center}.icon-partial svg[data-v-4a547a78]{align-self:center;justify-self:center;stroke-width:1.5}.icon-partial.rotate90 svg[data-v-4a547a78]{transform:rotate(90deg)}.icon-partial.rotate180 svg[data-v-4a547a78]{transform:rotate(180deg)}.icon-partial.animate svg[data-v-4a547a78]{transition:transform .2s ease,fill .2s ease,stroke .2s ease}@keyframes upAndDown-4a547a78{0%{transform:translateY(0)}to{transform:translateY(-20px)}}.icon-partial.animate .upload .arrow-up[data-v-4a547a78]{animation:upAndDown-4a547a78 1s infinite ease-in-out}.icon-partial.big[data-v-4a547a78]{width:30px;height:30px}.icon-partial.big svg[data-v-4a547a78]{width:30px;height:30px}.icon-partial.larger[data-v-4a547a78]{width:26px;height:26px}.icon-partial.larger svg[data-v-4a547a78]{width:26px;height:26px}.icon-partial.large[data-v-4a547a78]{width:24px;height:24px}.icon-partial.large svg[data-v-4a547a78]{width:24px;height:24px}.icon-partial.xl[data-v-4a547a78]{width:60px;height:60px}.icon-partial.xl svg[data-v-4a547a78]{width:60px;height:60px}.icon-partial.medium[data-v-4a547a78]{width:20px;height:20px}.icon-partial.medium svg[data-v-4a547a78]{width:20px;height:20px}.icon-partial.small[data-v-4a547a78]{width:16px;height:16px}.icon-partial.small svg[data-v-4a547a78]{width:16px;height:16px}.icon-partial.smaller[data-v-4a547a78]{width:10px;height:10px}.icon-partial.smaller svg[data-v-4a547a78]{width:10px;height:10px}.icon-partial.colorScheme1 svg[data-v-4a547a78]{stroke:var(--scm-icon-color-1, #333)}.icon-partial.colorScheme1 svg.useFill[data-v-4a547a78]{fill:var(--scm-icon-color-1, #333);stroke-width:0}.icon-partial.colorScheme2 svg[data-v-4a547a78]{stroke:var(--scm-icon-color-2, #666)}.icon-partial.colorScheme2 svg.useFill[data-v-4a547a78]{fill:var(--scm-icon-color-2, #666);stroke-width:0}.icon-partial.colorScheme4 svg[data-v-4a547a78]{stroke:var(--scm-icon-color-1, #333)}.icon-partial.colorScheme4 svg.useFill[data-v-4a547a78]{fill:var(--scm-icon-color-1, #333);stroke-width:0}.icon-partial.white svg[data-v-4a547a78]{stroke:#fff}.icon-partial.white svg.useFill[data-v-4a547a78]{fill:#fff;stroke-width:0}.icon-partial.grey svg[data-v-4a547a78]{stroke:var(--scm-color-muted, #999)}.icon-partial.grey svg.useFill[data-v-4a547a78]{fill:var(--scm-color-muted, #999);stroke-width:0}.icon-partial.aiColor svg[data-v-4a547a78]{stroke:var(--scm-icon-ai-color, #8b5cf6)}.icon-partial.aiColor svg.useFill[data-v-4a547a78]{fill:var(--scm-icon-ai-color, #8b5cf6);stroke-width:0}.icon-partial.red svg[data-v-4a547a78]{stroke:var(--scm-color-danger, #e53935)}.icon-partial.red svg.useFill[data-v-4a547a78]{fill:var(--scm-color-danger, #e53935);stroke-width:0}.icon-partial.green svg[data-v-4a547a78]{stroke:#43a047}.icon-partial.green svg.useFill[data-v-4a547a78]{fill:#43a047;stroke-width:0}";
18318
+ const IconsPartial = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["styles", [_style_0$2]], ["__scopeId", "data-v-4a547a78"]]);
18319
+ const _hoisted_1$1 = { class: "connection-status" };
18320
+ const _hoisted_2$1 = { class: "status" };
18321
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
18322
+ __name: "connection-status.partial",
18323
+ setup(__props) {
18324
+ const mainStore = useMainStore();
18325
+ const connection = computed(() => mainStore.state);
18326
+ return (_ctx, _cache) => {
18327
+ return openBlock(), createElementBlock("section", _hoisted_1$1, [
18328
+ createBaseVNode("div", _hoisted_2$1, toDisplayString$1(_ctx.$t(`status.${connection.value}`)), 1)
18329
+ ]);
18330
+ };
18331
+ }
18332
+ });
18333
+ const _style_0$1 = ".connection-status[data-v-a483f86f]{position:absolute;top:10px;right:10px;pointer-events:none}";
18334
+ const ConnectionStatusPartial = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["styles", [_style_0$1]], ["__scopeId", "data-v-a483f86f"]]);
17331
18335
  function resolveFeatures(config) {
17332
18336
  if (config.features?.length) return [...new Set(config.features)];
17333
18337
  switch (config.mode) {
@@ -17349,6 +18353,8 @@ function applyConfig(config, pinia) {
17349
18353
  if (config.apiUrl) mainStore.apiUrl = config.apiUrl;
17350
18354
  if (config.mediaUrl) mainStore.mediaUrl = config.mediaUrl;
17351
18355
  if (config.token) mainStore.authToken = config.token;
18356
+ if (config.unread) mainStore.unreadCallback = config.unread;
18357
+ if (config.close) mainStore.closeCallback = config.close;
17352
18358
  if (config.userId) useUserStore(pinia).user = config.userId;
17353
18359
  if (config.user) {
17354
18360
  const id = config.user.id || config.userId;
@@ -17358,22 +18364,25 @@ function applyConfig(config, pinia) {
17358
18364
  const MODULES = [
17359
18365
  { name: "chat", component: ChatModule },
17360
18366
  { name: "conversations", component: ConversationsModule },
17361
- { name: "chats", component: _sfc_main$f },
18367
+ { name: "chats", component: _sfc_main$i },
17362
18368
  { name: "contacts", component: ContactsModule }
17363
18369
  ];
17364
18370
  const PARTIALS = [
17365
18371
  { name: "participants", component: ParticipantsPartial },
17366
- { name: "actions", component: _sfc_main$b },
18372
+ { name: "actions", component: ActionsPartial },
17367
18373
  { name: "chat-header", component: ChatHeaderPartial },
17368
18374
  { name: "chat-actions", component: ChatActionsPartial },
17369
- { name: "name-edit", component: _sfc_main$9 },
18375
+ { name: "name-edit", component: _sfc_main$c },
17370
18376
  { name: "notice", component: NoticePartial },
17371
- { name: "system-message", component: _sfc_main$7 },
18377
+ { name: "system-message", component: _sfc_main$a },
17372
18378
  { name: "overlay-container", component: OverlayContainerPartial },
17373
18379
  { name: "button", component: ButtonPartial },
17374
18380
  { name: "dialog", component: DialogPartial },
17375
18381
  { name: "chat-input", component: ChatInputPartial },
17376
- { name: "user-name", component: _sfc_main$1 }
18382
+ { name: "user-avatar", component: UserAvatarPartial },
18383
+ { name: "user-name", component: _sfc_main$4 },
18384
+ { name: "icons", component: IconsPartial },
18385
+ { name: "connection-status", component: ConnectionStatusPartial }
17377
18386
  ];
17378
18387
  function registerComponents(app) {
17379
18388
  loadViaDeclarationSync(MODULES, void 0, "module", app);
@@ -17494,11 +18503,9 @@ function useResize() {
17494
18503
  return { realHeight: resize.realHeight, realWidth: resize.realWidth, media: resize.media, resized: resize.resized, widthChanged: resize.widthChanged, plugin: resize };
17495
18504
  }
17496
18505
  const _hoisted_1 = { class: "header" };
17497
- const _hoisted_2 = { class: "connection-status" };
17498
- const _hoisted_3 = { class: "status" };
17499
- const _hoisted_4 = {
18506
+ const _hoisted_2 = {
17500
18507
  key: 0,
17501
- class: "left"
18508
+ class: "main-left-target"
17502
18509
  };
17503
18510
  const _sfc_main = /* @__PURE__ */ defineComponent({
17504
18511
  __name: "App",
@@ -17514,7 +18521,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
17514
18521
  connect,
17515
18522
  authenticate
17516
18523
  } = useWebSocket();
17517
- const connection = computed(() => mainStore.state);
17518
18524
  const realWidth = useResize().realWidth;
17519
18525
  const viewMode = computed(() => mainStore.viewMode);
17520
18526
  const leftTarget = computed(() => mainStore.leftTarget);
@@ -17524,6 +18530,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
17524
18530
  mainStore.setViewMode("compact");
17525
18531
  }
17526
18532
  }, { immediate: true });
18533
+ watch([() => conversationsStore.totalUnreadCount, () => conversationsStore.totalUnreadConversations], () => {
18534
+ mainStore.unreadCallback?.({
18535
+ unreadMessages: conversationsStore.totalUnreadCount,
18536
+ unreadConversations: conversationsStore.totalUnreadConversations
18537
+ });
18538
+ });
18539
+ let wasDisconnected = false;
18540
+ watch(() => mainStore.state, (state) => {
18541
+ if (state === "connected" && wasDisconnected) {
18542
+ conversationsStore.handleReconnect().catch((_error) => {
18543
+ });
18544
+ }
18545
+ wasDisconnected = state === "disconnected";
18546
+ });
17527
18547
  function decodeSub(token) {
17528
18548
  if (!token) return void 0;
17529
18549
  try {
@@ -17581,23 +18601,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
17581
18601
  class: normalizeClass(["studio-chat-root", [viewMode.value, leftTarget.value]])
17582
18602
  }, [
17583
18603
  createBaseVNode("section", _hoisted_1, [
17584
- createVNode(_component_actions_partial),
17585
- createBaseVNode("section", _hoisted_2, [
17586
- createBaseVNode("div", _hoisted_3, toDisplayString$1(_ctx.$t(`status.${connection.value}`)), 1)
17587
- ])
18604
+ createVNode(_component_actions_partial)
17588
18605
  ]),
17589
- unref(mainStore).leftTarget ? (openBlock(), createElementBlock("section", _hoisted_4, [
18606
+ unref(mainStore).leftTarget ? (openBlock(), createElementBlock("section", _hoisted_2, [
17590
18607
  unref(mainStore).leftTarget === "conversations" ? (openBlock(), createBlock(ConversationsModule, { key: 0 })) : createCommentVNode("", true),
17591
18608
  unref(mainStore).leftTarget === "contacts-new" || unref(mainStore).leftTarget === "contacts-edit" ? (openBlock(), createBlock(_component_contacts_module, { key: 1 })) : createCommentVNode("", true)
17592
18609
  ])) : createCommentVNode("", true),
17593
- unref(mainStore).mainTarget === "chat" ? (openBlock(), createBlock(_sfc_main$f, { key: 1 })) : createCommentVNode("", true),
18610
+ unref(mainStore).mainTarget === "chat" ? (openBlock(), createBlock(_sfc_main$i, { key: 1 })) : createCommentVNode("", true),
17594
18611
  _cache[0] || (_cache[0] = createBaseVNode("div", { class: "util" }, null, -1))
17595
18612
  ], 2);
17596
18613
  };
17597
18614
  }
17598
18615
  });
17599
- const _style_0 = ":host{display:block;height:100%}:host,.studio-chat-root{--scm-color-primary: #008cff;--scm-color-own: #ff009d;--scm-color-surface: #f6f6f6;--scm-color-muted: #757474;--scm-color-danger: #e53935}#app{height:100vh}.studio-chat-root{display:grid;grid-template-rows:40px 1fr;grid-template-columns:minmax(200px,400px) 1fr;height:100%}.studio-chat-root .header{display:grid;background-color:var(--scm-color-surface);grid-template-columns:max-content 1fr;padding:0 20px;align-content:center}.studio-chat-root .header .connection-status{justify-self:end}.studio-chat-root .conversations-module{grid-column:1}.studio-chat-root .chats-module{grid-column:2}.studio-chat-root.support-no-sidebar{grid-template-columns:1fr}.studio-chat-root.support-no-sidebar .chats-module{grid-column:1}.studio-chat-root.compact{grid-template-columns:1fr}.studio-chat-root.compact .chats-module{grid-column:1}.studio-chat-root.compact .left{width:100%;position:absolute;top:40px;left:0;transform:translate(-100%);transition:transform .3s ease-in-out;background-color:#fff;z-index:100;height:calc(100% - 40px)}.studio-chat-root.compact.conversations .left,.studio-chat-root.compact.contacts-new .left,.studio-chat-root.compact.contacts-edit .left{transform:translate(0)}*{-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;background-repeat:no-repeat;list-style-type:none;text-decoration:none}";
17600
- const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["styles", [_style_0]]]);
18616
+ const _style_0 = "[data-v-1bdc8ab0]:host{display:block;height:100%}[data-v-1bdc8ab0]:host,.studio-chat-root[data-v-1bdc8ab0]{--scm-font-size: 16px;--scm-color-primary: #008cff;--scm-color-own: #ff009d;--scm-color-surface: #f6f6f6;--scm-color-muted: #757474;--scm-color-danger: #e53935;font-size:var(--scm-font-size)}#app[data-v-1bdc8ab0]{height:100vh}.studio-chat-root[data-v-1bdc8ab0]{display:grid;grid-template-rows:40px 1fr;grid-template-columns:minmax(200px,400px) 1fr;height:100%}.studio-chat-root .header[data-v-1bdc8ab0]{display:grid;background-color:var(--scm-color-surface);grid-template-columns:max-content 1fr;padding:0 20px;align-content:center}.studio-chat-root .conversations-module[data-v-1bdc8ab0]{grid-column:1}.studio-chat-root .chats-module[data-v-1bdc8ab0]{grid-column:2}.studio-chat-root.support-no-sidebar[data-v-1bdc8ab0]{grid-template-columns:1fr}.studio-chat-root.support-no-sidebar .chats-module[data-v-1bdc8ab0]{grid-column:1}.studio-chat-root.compact[data-v-1bdc8ab0]{grid-template-columns:1fr}.studio-chat-root.compact .chats-module[data-v-1bdc8ab0]{grid-column:1}.studio-chat-root.compact .main-left-target[data-v-1bdc8ab0]{width:100%;position:absolute;top:40px;left:0;transform:translate(-100%);transition:transform .3s ease-in-out;background-color:#fff;z-index:100;height:calc(100% - 40px)}.studio-chat-root.compact.conversations .main-left-target[data-v-1bdc8ab0],.studio-chat-root.compact.contacts-new .main-left-target[data-v-1bdc8ab0],.studio-chat-root.compact.contacts-edit .main-left-target[data-v-1bdc8ab0]{transform:translate(0)}[data-v-1bdc8ab0]{-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;background-repeat:no-repeat;list-style-type:none;text-decoration:none}";
18617
+ const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["styles", [_style_0]], ["__scopeId", "data-v-1bdc8ab0"]]);
17601
18618
  dayjs.extend(relativeTime);
17602
18619
  const LilaquadratStudioChat = /* @__PURE__ */ defineCustomElement(App, {
17603
18620
  shadowRoot: true,
@@ -17617,6 +18634,40 @@ const LilaquadratStudioChat = /* @__PURE__ */ defineCustomElement(App, {
17617
18634
  if (!customElements.get("lilaquadrat-studio-chat")) {
17618
18635
  customElements.define("lilaquadrat-studio-chat", LilaquadratStudioChat);
17619
18636
  }
18637
+ const de = {
18638
+ status: {
18639
+ connected: "Verbunden",
18640
+ disconnected: "Getrennt"
18641
+ },
18642
+ actions: {
18643
+ retry: "Wiederholen"
18644
+ },
18645
+ "new chat": "Neuer Chat",
18646
+ "conversations": "Unterhaltungen",
18647
+ "contact support": "Support kontaktieren",
18648
+ "support": "Support",
18649
+ "options": "Optionen",
18650
+ "mute": "Stumm schalten",
18651
+ "delete": "Löschen",
18652
+ "leave": "Verlassen",
18653
+ "leave now": "Jetzt verlassen?",
18654
+ "select contacts": "Kontakte auswählen",
18655
+ "conversation options": "Konversationsoptionen",
18656
+ system: {
18657
+ renamed: '{user} hat "{from}" in "{to}" umbenannt',
18658
+ created: "{user} hat diese Unterhaltung erstellt",
18659
+ left: "{user} hat die Unterhaltung verlassen",
18660
+ participants: {
18661
+ addedAndRemoved: "{user} hat {added} hinzugefügt und {removed} entfernt",
18662
+ added: "{user} hat {added} hinzugefügt",
18663
+ removed: "{user} hat {removed} entfernt"
18664
+ }
18665
+ }
18666
+ };
18667
+ const de$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
18668
+ __proto__: null,
18669
+ default: de
18670
+ }, Symbol.toStringTag, { value: "Module" }));
17620
18671
  export {
17621
18672
  LilaquadratStudioChat
17622
18673
  };