@vunk/plus 1.2.2 → 1.3.0

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.
Files changed (119) hide show
  1. package/components/SendOutlined.mjs +1 -1
  2. package/components/agent-chat-provider/index.mjs +789 -0
  3. package/components/avatar/index.mjs +2 -2
  4. package/components/broadcasting-markdown/index.css +3 -0
  5. package/components/broadcasting-markdown/index.mjs +637 -0
  6. package/components/bubble-list/index.css +18 -0
  7. package/components/bubble-list/index.mjs +386 -0
  8. package/components/bubble-templates/index.css +18 -0
  9. package/components/bubble-templates/index.mjs +258 -0
  10. package/components/chat-independent/index.css +47 -0
  11. package/components/chat-independent/index.mjs +184 -0
  12. package/components/index.mjs +35980 -0
  13. package/components/lottie-animation/index.mjs +2 -2
  14. package/components/monaco-editor/index.mjs +2 -2
  15. package/components/monaco-environment/index.mjs +1 -1
  16. package/components/recorder-button/index.css +7 -10
  17. package/components/recorder-button/index.mjs +115 -83
  18. package/components/routes-menu-content/index.mjs +5 -5
  19. package/components/sender/index.css +2 -5
  20. package/components/sender/index.mjs +31 -12
  21. package/components/speech-button/index.mjs +6 -13
  22. package/components/table-columns/index.mjs +3 -6
  23. package/components/tables-v1/index.mjs +3 -3
  24. package/components/tables-v1-checkbox/index.mjs +269 -33
  25. package/components/typing-markdown/index.mjs +128 -33
  26. package/components/vditor/index.mjs +5 -9
  27. package/composables/el-breakpoints/index.d.ts +1 -1
  28. package/composables/recorder/index.mjs +751 -182
  29. package/icons/_plugin-vue_export-helper.mjs +9 -0
  30. package/icons/end/index.d.ts +4 -0
  31. package/icons/end/index.mjs +36 -0
  32. package/icons/end/src/avatar.d.ts +12 -0
  33. package/icons/end/src/icon.d.ts +57 -0
  34. package/icons/keyboard/index.d.ts +4 -0
  35. package/icons/keyboard/index.mjs +36 -0
  36. package/icons/keyboard/src/avatar.d.ts +12 -0
  37. package/icons/keyboard/src/icon.d.ts +57 -0
  38. package/icons/start/index.d.ts +4 -0
  39. package/icons/start/index.mjs +36 -0
  40. package/icons/start/src/avatar.d.ts +12 -0
  41. package/icons/start/src/icon.d.ts +57 -0
  42. package/icons/voice/index.d.ts +4 -0
  43. package/icons/voice/index.mjs +51 -0
  44. package/icons/voice/src/avatar.d.ts +12 -0
  45. package/icons/voice/src/icon.d.ts +57 -0
  46. package/icons/voice/src/index.vue.d.ts +4 -0
  47. package/index.css +99 -15
  48. package/package.json +51 -7
  49. package/components/avatar/index.d.ts +0 -4
  50. package/components/avatar/src/ctx.d.ts +0 -18
  51. package/components/avatar/src/index.vue.d.ts +0 -180
  52. package/components/avatar/src/types.d.ts +0 -1
  53. package/components/lottie-animation/index.d.ts +0 -4
  54. package/components/lottie-animation/src/ctx.d.ts +0 -10
  55. package/components/lottie-animation/src/index.vue.d.ts +0 -21
  56. package/components/lottie-animation/src/types.d.ts +0 -4
  57. package/components/monaco-editor/index.d.ts +0 -5
  58. package/components/monaco-editor/src/ctx.d.ts +0 -23
  59. package/components/monaco-editor/src/index.vue.d.ts +0 -40
  60. package/components/monaco-editor/src/types.d.ts +0 -1
  61. package/components/monaco-environment/index.d.ts +0 -4
  62. package/components/monaco-environment/src/ctx.d.ts +0 -8
  63. package/components/monaco-environment/src/index.vue.d.ts +0 -2
  64. package/components/monaco-environment/src/types.d.ts +0 -1
  65. package/components/recorder-button/index.d.ts +0 -4
  66. package/components/recorder-button/src/ctx.d.ts +0 -19
  67. package/components/recorder-button/src/index.vue.d.ts +0 -309
  68. package/components/recorder-button/src/speech-to-text.d.ts +0 -1
  69. package/components/recorder-button/src/types.d.ts +0 -6
  70. package/components/routes-menu-content/index.d.ts +0 -4
  71. package/components/routes-menu-content/src/ctx.d.ts +0 -17
  72. package/components/routes-menu-content/src/index.vue.d.ts +0 -350
  73. package/components/routes-menu-content/src/item/core/ctx.d.ts +0 -18
  74. package/components/routes-menu-content/src/item/core/index.vue.d.ts +0 -185
  75. package/components/routes-menu-content/src/item/ctx.d.ts +0 -14
  76. package/components/routes-menu-content/src/item/index.vue.d.ts +0 -316
  77. package/components/routes-menu-content/src/types.d.ts +0 -1
  78. package/components/sender/index.d.ts +0 -4
  79. package/components/sender/src/SenderHeader.vue.d.ts +0 -270
  80. package/components/sender/src/ctx.d.ts +0 -38
  81. package/components/sender/src/index.vue.d.ts +0 -732
  82. package/components/sender/src/types.d.ts +0 -1
  83. package/components/speech-button/index.d.ts +0 -4
  84. package/components/speech-button/src/LoadingIcon.vue.d.ts +0 -2
  85. package/components/speech-button/src/RecordingIcon.vue.d.ts +0 -2
  86. package/components/speech-button/src/ctx.d.ts +0 -10
  87. package/components/speech-button/src/index.vue.d.ts +0 -22
  88. package/components/speech-button/src/types.d.ts +0 -1
  89. package/components/table-columns/index.d.ts +0 -5
  90. package/components/table-columns/src/ctx.d.ts +0 -66
  91. package/components/table-columns/src/el-ctx.d.ts +0 -63
  92. package/components/table-columns/src/index.vue.d.ts +0 -280
  93. package/components/table-columns/src/types.d.ts +0 -21
  94. package/components/tables-v1/index.d.ts +0 -5
  95. package/components/tables-v1/src/ctx.d.ts +0 -283
  96. package/components/tables-v1/src/el-ctx.d.ts +0 -272
  97. package/components/tables-v1/src/index.vue.d.ts +0 -2997
  98. package/components/tables-v1/src/types.d.ts +0 -4
  99. package/components/tables-v1-checkbox/index.d.ts +0 -5
  100. package/components/tables-v1-checkbox/src/ctx.d.ts +0 -323
  101. package/components/tables-v1-checkbox/src/index.vue.d.ts +0 -3788
  102. package/components/tables-v1-checkbox/src/types.d.ts +0 -1
  103. package/components/typing-markdown/index.d.ts +0 -4
  104. package/components/typing-markdown/src/core.d.ts +0 -3
  105. package/components/typing-markdown/src/ctx.d.ts +0 -33
  106. package/components/typing-markdown/src/index.vue.d.ts +0 -57
  107. package/components/typing-markdown/src/types.d.ts +0 -1
  108. package/components/vditor/index.d.ts +0 -5
  109. package/components/vditor/src/ctx.d.ts +0 -37
  110. package/components/vditor/src/handle-fullscreen.vue.d.ts +0 -18
  111. package/components/vditor/src/handle-value.vue.d.ts +0 -18
  112. package/components/vditor/src/index.vue.d.ts +0 -144
  113. package/components/vditor/src/types.d.ts +0 -9
  114. package/components/vditor/src/use.d.ts +0 -4
  115. package/fetch/PlusFetch/index.d.ts +0 -14
  116. package/fetch/PlusFetch/index.mjs +0 -638
  117. package/fetch/PlusFetch/types.d.ts +0 -54
  118. package/fetch/index.d.ts +0 -1
  119. package/fetch/index.mjs +0 -5
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, onMounted, openBlock, createElementBlock, Fragment, createElementVNode, renderSlot } from 'vue';
1
+ import { defineComponent, ref, onMounted, createElementBlock, openBlock, Fragment, createElementVNode, renderSlot } from 'vue';
2
2
  import lottie from 'lottie-web';
3
3
  import { _ as _export_sfc } from '../_plugin-vue_export-helper.mjs';
4
4
 
@@ -58,7 +58,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
58
58
  /* STABLE_FRAGMENT */
59
59
  );
60
60
  }
61
- var VkLottieAnimation = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/vunk-plus/vunk-plus/packages/components/lottie-animation/src/index.vue"]]);
61
+ var VkLottieAnimation = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
62
62
 
63
63
  var types = /*#__PURE__*/Object.freeze({
64
64
  __proto__: null
@@ -1,6 +1,6 @@
1
1
  import { watchPausable } from '@vueuse/core';
2
2
  import { editor } from 'monaco-editor';
3
- import { defineComponent, ref, onMounted, nextTick, watchEffect, onBeforeUnmount, openBlock, createElementBlock } from 'vue';
3
+ import { defineComponent, ref, onMounted, nextTick, watchEffect, onBeforeUnmount, createElementBlock, openBlock } from 'vue';
4
4
  import { bindPropsFactory, onEmitsFactory } from '@vunk/core/shared/utils-vue';
5
5
  import { _ as _export_sfc } from '../_plugin-vue_export-helper.mjs';
6
6
 
@@ -89,7 +89,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
89
89
  /* NEED_PATCH */
90
90
  );
91
91
  }
92
- var VkMonacoEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/vunk-plus/vunk-plus/packages/components/monaco-editor/src/index.vue"]]);
92
+ var VkMonacoEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
93
93
 
94
94
  var types = /*#__PURE__*/Object.freeze({
95
95
  __proto__: null
@@ -33,7 +33,7 @@ var _sfc_main = defineComponent({
33
33
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
34
34
  return renderSlot(_ctx.$slots, "default");
35
35
  }
36
- var VkMonacoEnvironment = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/vunk-plus/vunk-plus/packages/components/monaco-environment/src/index.vue"]]);
36
+ var VkMonacoEnvironment = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
37
37
 
38
38
  var types = /*#__PURE__*/Object.freeze({
39
39
  __proto__: null
@@ -1,19 +1,16 @@
1
- .sk-recorder-container {
1
+ .vk-recorder-container {
2
2
  position: relative;
3
3
  }
4
- .sk-recorder-button {
4
+ .vk-recorder-button {
5
5
  position: relative;
6
6
  width: 100%;
7
7
  touch-action: none;
8
8
  user-select: none;
9
9
  }
10
- .recording-mask {
11
- position: fixed;
12
- top: 0;
13
- left: 0;
14
- right: 0;
15
- bottom: 0;
16
- background: rgba(0, 0, 0, 0.6);
10
+ .vk-recording-mask {
11
+ position: absolute;
12
+ inset: 0;
13
+ background: rgba(0, 0, 0, 0.5);
17
14
  z-index: 1000;
18
15
  display: flex;
19
16
  flex-direction: column;
@@ -25,7 +22,7 @@
25
22
  display: flex;
26
23
  justify-content: space-between;
27
24
  padding: 20px 40px;
28
- margin-bottom: 100px;
25
+ margin-bottom: 24%;
29
26
  }
30
27
  .cancel-btn, .text-btn {
31
28
  display: flex;
@@ -1,6 +1,6 @@
1
1
  import { ElButton, ElMessage } from 'element-plus';
2
2
  import Recorder from 'recorder-core';
3
- import { defineComponent, ref, shallowRef, onUnmounted, resolveComponent, openBlock, createElementBlock, createCommentVNode, createElementVNode, toDisplayString, normalizeClass, createVNode, mergeProps, withCtx } from 'vue';
3
+ import { defineComponent, ref, shallowRef, onUnmounted, resolveComponent, createElementBlock, openBlock, createCommentVNode, createBlock, createVNode, Teleport, createElementVNode, toDisplayString, normalizeClass, mergeProps, withCtx } from 'vue';
4
4
  import 'recorder-core/src/engine/mp3';
5
5
  import 'recorder-core/src/engine/wav';
6
6
  import 'recorder-core/src/engine/mp3-engine';
@@ -9,16 +9,37 @@ import 'recorder-core/src/app-support/app';
9
9
  import { _ as _export_sfc } from '../_plugin-vue_export-helper.mjs';
10
10
 
11
11
  const props = {
12
- speenchToTextUrl: {
13
- type: String,
14
- default: "http://localhost:3000/speech-to-text"
15
- },
16
12
  /**
17
13
  * 自定义转为文本区域事件
18
14
  */
19
15
  onTextZone: {
20
16
  type: Function,
21
17
  default: void 0
18
+ },
19
+ /**
20
+ * 遮罩层 appendTo
21
+ */
22
+ appendTo: {
23
+ type: null,
24
+ default: "body"
25
+ },
26
+ disabled: {
27
+ type: Boolean,
28
+ default: false
29
+ },
30
+ /**
31
+ * 语音转文本函数
32
+ */
33
+ speechToText: {
34
+ type: Function,
35
+ default: void 0
36
+ },
37
+ /**
38
+ * @description 是否直接使用提交文本输出
39
+ */
40
+ submitToText: {
41
+ type: Boolean,
42
+ default: false
22
43
  }
23
44
  };
24
45
  const emits = {
@@ -100,14 +121,20 @@ var _sfc_main = defineComponent({
100
121
  blob,
101
122
  url: blobUrl.value
102
123
  });
103
- if (theTextZone) {
124
+ if (theTextZone || props2.submitToText) {
104
125
  if (props2.onTextZone) {
105
126
  props2.onTextZone({
106
127
  blob,
107
128
  url: blobUrl.value
108
129
  });
109
130
  } else {
110
- speechToText(props2.speenchToTextUrl, blob).then((text) => {
131
+ if (props2.speechToText) {
132
+ props2.speechToText(blob).then((text) => {
133
+ emit("submitText", text);
134
+ });
135
+ return;
136
+ }
137
+ speechToText("/speech-to-text", blob).then((text) => {
111
138
  emit("submitText", text);
112
139
  }).catch((err) => {
113
140
  console.error("\u8BED\u97F3\u8BC6\u522B\u9519\u8BEF:", err);
@@ -126,6 +153,8 @@ var _sfc_main = defineComponent({
126
153
  document.removeEventListener("mouseup", onmouseup);
127
154
  };
128
155
  const onmousedown = (e) => {
156
+ if (props2.disabled)
157
+ return;
129
158
  e.preventDefault();
130
159
  isMouseDown = true;
131
160
  const touch = "touches" in e ? e.touches[0] : e;
@@ -196,10 +225,10 @@ var _sfc_main = defineComponent({
196
225
  }
197
226
  });
198
227
 
199
- const _hoisted_1 = { class: "sk-recorder-container" };
228
+ const _hoisted_1 = { class: "vk-recorder-container" };
200
229
  const _hoisted_2 = {
201
230
  key: 0,
202
- class: "recording-mask"
231
+ class: "vk-recording-mask"
203
232
  };
204
233
  const _hoisted_3 = { class: "recording-tip" };
205
234
  const _hoisted_4 = {
@@ -212,81 +241,84 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
212
241
  const _component_ElButton = resolveComponent("ElButton");
213
242
  return openBlock(), createElementBlock("div", _hoisted_1, [
214
243
  createCommentVNode(" \u906E\u7F69\u5C42 "),
215
- _ctx.isDragging ? (openBlock(), createElementBlock("div", _hoisted_2, [
216
- createCommentVNode(" \u5F55\u97F3\u63D0\u793A\u533A\u57DF\u79FB\u5230\u4E0A\u9762 "),
217
- createElementVNode("div", _hoisted_3, [
218
- createElementVNode(
219
- "div",
220
- _hoisted_4,
221
- null,
222
- 512
223
- /* NEED_PATCH */
224
- ),
225
- createElementVNode(
226
- "div",
227
- _hoisted_5,
228
- toDisplayString(_ctx.cancelZone ? "\u677E\u5F00\u624B\u6307\uFF0C\u53D6\u6D88\u53D1\u9001" : "\u677E\u5F00\u53D1\u9001\uFF0C\u4E0A\u6ED1\u53D6\u6D88"),
229
- 1
230
- /* TEXT */
231
- )
232
- ]),
233
- createCommentVNode(" \u64CD\u4F5C\u6309\u94AE\u79FB\u5230\u5E95\u90E8 "),
234
- createElementVNode("div", _hoisted_6, [
235
- createElementVNode(
236
- "div",
237
- {
238
- class: normalizeClass(["cancel-btn", { active: _ctx.cancelZone }])
239
- },
240
- _cache[0] || (_cache[0] = [
241
- createElementVNode(
242
- "div",
243
- { class: "btn-icon" },
244
- " \xD7 ",
245
- -1
246
- /* HOISTED */
247
- ),
248
- createElementVNode(
249
- "div",
250
- { class: "btn-text" },
251
- " \u53D6\u6D88\u53D1\u9001 ",
252
- -1
253
- /* HOISTED */
254
- )
255
- ]),
256
- 2
257
- /* CLASS */
258
- ),
259
- createElementVNode(
260
- "div",
261
- {
262
- class: normalizeClass(["text-btn", { active: _ctx.isTextZone }])
263
- },
264
- _cache[1] || (_cache[1] = [
265
- createElementVNode(
266
- "div",
267
- { class: "btn-icon" },
268
- " \u6587 ",
269
- -1
270
- /* HOISTED */
271
- ),
272
- createElementVNode(
273
- "div",
274
- { class: "btn-text" },
275
- " \u8F6C\u4E3A\u6587\u5B57 ",
276
- -1
277
- /* HOISTED */
278
- )
279
- ]),
280
- 2
281
- /* CLASS */
282
- )
283
- ])
284
- ])) : createCommentVNode("v-if", true),
244
+ (openBlock(), createBlock(Teleport, { to: _ctx.appendTo }, [
245
+ _ctx.isDragging ? (openBlock(), createElementBlock("div", _hoisted_2, [
246
+ createCommentVNode(" \u5F55\u97F3\u63D0\u793A\u533A\u57DF\u79FB\u5230\u4E0A\u9762 "),
247
+ createElementVNode("div", _hoisted_3, [
248
+ createElementVNode(
249
+ "div",
250
+ _hoisted_4,
251
+ null,
252
+ 512
253
+ /* NEED_PATCH */
254
+ ),
255
+ createElementVNode(
256
+ "div",
257
+ _hoisted_5,
258
+ toDisplayString(_ctx.cancelZone ? "\u677E\u5F00\u624B\u6307\uFF0C\u53D6\u6D88\u53D1\u9001" : "\u677E\u5F00\u53D1\u9001\uFF0C\u4E0A\u6ED1\u53D6\u6D88"),
259
+ 1
260
+ /* TEXT */
261
+ )
262
+ ]),
263
+ createElementVNode("div", _hoisted_6, [
264
+ createElementVNode(
265
+ "div",
266
+ {
267
+ class: normalizeClass(["cancel-btn", { active: _ctx.cancelZone }])
268
+ },
269
+ _cache[0] || (_cache[0] = [
270
+ createElementVNode(
271
+ "div",
272
+ { class: "btn-icon" },
273
+ " \xD7 ",
274
+ -1
275
+ /* HOISTED */
276
+ ),
277
+ createElementVNode(
278
+ "div",
279
+ { class: "btn-text" },
280
+ " \u53D6\u6D88\u53D1\u9001 ",
281
+ -1
282
+ /* HOISTED */
283
+ )
284
+ ]),
285
+ 2
286
+ /* CLASS */
287
+ ),
288
+ createElementVNode(
289
+ "div",
290
+ {
291
+ class: normalizeClass(["text-btn", { active: _ctx.isTextZone }])
292
+ },
293
+ _cache[1] || (_cache[1] = [
294
+ createElementVNode(
295
+ "div",
296
+ { class: "btn-icon" },
297
+ " \u6587 ",
298
+ -1
299
+ /* HOISTED */
300
+ ),
301
+ createElementVNode(
302
+ "div",
303
+ { class: "btn-text" },
304
+ " \u8F6C\u4E3A\u6587\u5B57 ",
305
+ -1
306
+ /* HOISTED */
307
+ )
308
+ ]),
309
+ 2
310
+ /* CLASS */
311
+ )
312
+ ])
313
+ ])) : createCommentVNode("v-if", true)
314
+ ], 8, ["to"])),
285
315
  createCommentVNode(" \u5F55\u97F3\u6309\u94AE "),
286
316
  createVNode(_component_ElButton, mergeProps(_ctx.$attrs, {
287
- class: ["sk-recorder-button", {
317
+ disabled: _ctx.disabled,
318
+ class: ["vk-recorder-button", {
288
319
  "is-recording": _ctx.recording
289
320
  }],
321
+ size: "large",
290
322
  onTouchstart: _ctx.onmousedown,
291
323
  onTouchmove: _ctx.onmousemove,
292
324
  onTouchend: _ctx.onmouseup,
@@ -295,7 +327,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
295
327
  default: withCtx(() => _cache[2] || (_cache[2] = [
296
328
  createElementVNode(
297
329
  "span",
298
- { class: "sk-recorder-button-text" },
330
+ { class: "vk-recorder-button-text" },
299
331
  "\u6309\u4F4F \u8BF4\u8BDD",
300
332
  -1
301
333
  /* HOISTED */
@@ -303,10 +335,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
303
335
  ])),
304
336
  _: 1
305
337
  /* STABLE */
306
- }, 16, ["class", "onTouchstart", "onTouchmove", "onTouchend", "onMousedown"])
338
+ }, 16, ["disabled", "class", "onTouchstart", "onTouchmove", "onTouchend", "onMousedown"])
307
339
  ]);
308
340
  }
309
- var VkRecorderButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/vunk-plus/vunk-plus/packages/components/recorder-button/src/index.vue"]]);
341
+ var VkRecorderButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
310
342
 
311
343
  var types = /*#__PURE__*/Object.freeze({
312
344
  __proto__: null
@@ -1,6 +1,6 @@
1
- import { defineComponent, computed, resolveComponent, openBlock, createBlock, withCtx, renderSlot, createElementBlock, Fragment, mergeProps, normalizeProps, guardReactiveProps, createCommentVNode, renderList, createVNode } from 'vue';
1
+ import { defineComponent, computed, resolveComponent, createBlock, openBlock, withCtx, renderSlot, createElementBlock, createCommentVNode, Fragment, mergeProps, normalizeProps, guardReactiveProps, renderList, createVNode } from 'vue';
2
2
  import { resolveFullPath } from '@vunk/shared/string/url';
3
- import { ElSubMenu, ElMenuItem } from 'element-plus';
3
+ import { ElMenuItem, ElSubMenu } from 'element-plus';
4
4
  import { bindPropsFactory } from '@vunk/core/shared/utils-vue';
5
5
  import { _ as _export_sfc } from '../_plugin-vue_export-helper.mjs';
6
6
 
@@ -106,7 +106,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
106
106
  /* FORWARDED */
107
107
  }, 8, ["index"]));
108
108
  }
109
- var CoreVue = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__file", "/home/runner/work/vunk-plus/vunk-plus/packages/components/routes-menu-content/src/item/core/index.vue"]]);
109
+ var CoreVue = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2]]);
110
110
 
111
111
  const props = {
112
112
  ...props$1
@@ -224,7 +224,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
224
224
  /* STABLE_FRAGMENT */
225
225
  )) : createCommentVNode("v-if", true);
226
226
  }
227
- var ItemVue = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__file", "/home/runner/work/vunk-plus/vunk-plus/packages/components/routes-menu-content/src/item/index.vue"]]);
227
+ var ItemVue = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
228
228
 
229
229
  var _sfc_main = defineComponent({
230
230
  name: "VkRoutesMenuContent",
@@ -289,7 +289,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
289
289
  /* KEYED_FRAGMENT */
290
290
  );
291
291
  }
292
- var VkRoutesMenuContent = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/vunk-plus/vunk-plus/packages/components/routes-menu-content/src/index.vue"]]);
292
+ var VkRoutesMenuContent = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
293
293
 
294
294
  var types = /*#__PURE__*/Object.freeze({
295
295
  __proto__: null
@@ -2,18 +2,15 @@
2
2
  display: flex;
3
3
  justify-content: space-between;
4
4
  }
5
- .vk-sender .ant-sender-content{
5
+ /* .vk-sender .ant-sender-content{
6
6
  display: grid;
7
- /* 两列 auto 1fr */
8
7
  grid-template-columns: auto 1fr;
9
8
  }
10
9
  .vk-sender .ant-sender-actions-list {
11
10
  margin-top: 1em;
12
- /* 独占两列 */
13
11
  grid-column: 1 / -1;
14
- }
12
+ } */
15
13
  .vk-sender .ant-sender-prefix {
16
- /* 要素考上 */
17
14
  align-self: start;
18
15
  }
19
16
  .vk-sender-actions{
@@ -1,7 +1,7 @@
1
- import { defineComponent, resolveComponent, openBlock, createBlock, withCtx, withDirectives, createElementVNode, mergeProps, toDisplayString, createVNode, renderSlot, vShow, ref, nextTick } from 'vue';
1
+ import { defineComponent, resolveComponent, createBlock, openBlock, withCtx, withDirectives, createElementVNode, mergeProps, toDisplayString, createVNode, renderSlot, vShow, computed, ref, nextTick, createSlots, createCommentVNode } from 'vue';
2
2
  import { useModelComputed, useDeferred } from '@vunk/core/composables';
3
3
  import { Button, Tooltip } from 'ant-design-vue';
4
- import { Sender, Attachments } from 'ant-design-x-vue';
4
+ import { Attachments, Sender } from 'ant-design-x-vue';
5
5
  import { noop } from '@vunk/shared/function';
6
6
  import { ElCollapseTransition } from 'element-plus';
7
7
  import { C as CloseOutlined, L as LinkOutlined, a as CloudUploadOutlined, S as SendOutlined } from '../SendOutlined.mjs';
@@ -35,6 +35,13 @@ const props = {
35
35
  loading: {
36
36
  type: Boolean,
37
37
  default: void 0
38
+ },
39
+ /**
40
+ * @description 模块
41
+ */
42
+ modules: {
43
+ type: Array,
44
+ default: () => []
38
45
  }
39
46
  };
40
47
  const emits = {
@@ -132,7 +139,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
132
139
  /* FORWARDED */
133
140
  });
134
141
  }
135
- var SenderHeader = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__file", "/home/runner/work/vunk-plus/vunk-plus/packages/components/sender/src/SenderHeader.vue"]]);
142
+ var SenderHeader = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
136
143
 
137
144
  var _sfc_main = /* @__PURE__ */ defineComponent({
138
145
  name: "VkSender",
@@ -149,6 +156,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
149
156
  emit,
150
157
  slots
151
158
  }) {
159
+ const hasAttachments = computed(() => props2.modules.includes("Attachments"));
152
160
  const loading = useModelComputed({
153
161
  key: "loading",
154
162
  default: false
@@ -222,6 +230,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
222
230
  theFileList.value = e.fileList;
223
231
  };
224
232
  return {
233
+ hasAttachments,
225
234
  actionsRender,
226
235
  headerOpen,
227
236
  attachmentsPlaceholder,
@@ -250,9 +259,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
250
259
  "on-cancel": () => _ctx.$emit("cancel"),
251
260
  "onUpdate:value": _cache[2] || (_cache[2] = ($event) => _ctx.$emit("update:modelValue", $event)),
252
261
  onPasteFile: _ctx.handlePasteFile
253
- }, {
262
+ }, createSlots({
254
263
  header: withCtx(() => [
255
- createVNode(_component_SenderHeader, {
264
+ _ctx.hasAttachments ? (openBlock(), createBlock(_component_SenderHeader, {
265
+ key: 0,
256
266
  modelValue: _ctx.headerOpen,
257
267
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.headerOpen = $event),
258
268
  title: "\u9644\u4EF6",
@@ -270,10 +280,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
270
280
  ]),
271
281
  _: 1
272
282
  /* STABLE */
273
- }, 8, ["modelValue", "content-ref"])
283
+ }, 8, ["modelValue", "content-ref"])) : createCommentVNode("v-if", true)
274
284
  ]),
275
285
  prefix: withCtx(() => [
276
- createVNode(_component_AntButton, {
286
+ _ctx.hasAttachments ? (openBlock(), createBlock(_component_AntButton, {
287
+ key: 0,
277
288
  type: "text",
278
289
  onClick: _cache[1] || (_cache[1] = ($event) => _ctx.headerOpen = !_ctx.headerOpen)
279
290
  }, {
@@ -282,13 +293,21 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
282
293
  ]),
283
294
  _: 1
284
295
  /* STABLE */
285
- })
296
+ })) : createCommentVNode("v-if", true)
286
297
  ]),
287
- _: 1
288
- /* STABLE */
289
- }, 8, ["value", "loading", "actions", "on-submit", "on-cancel", "onPasteFile"]);
298
+ _: 2
299
+ /* DYNAMIC */
300
+ }, [
301
+ _ctx.$slots.footer ? {
302
+ name: "footer",
303
+ fn: withCtx(() => [
304
+ renderSlot(_ctx.$slots, "footer")
305
+ ]),
306
+ key: "0"
307
+ } : void 0
308
+ ]), 1032, ["value", "loading", "actions", "on-submit", "on-cancel", "onPasteFile"]);
290
309
  }
291
- var VkSender = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/vunk-plus/vunk-plus/packages/components/sender/src/index.vue"]]);
310
+ var VkSender = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
292
311
 
293
312
  var types = /*#__PURE__*/Object.freeze({
294
313
  __proto__: null
@@ -1,7 +1,6 @@
1
1
  import { defineComponent, createVNode, createTextVNode } from 'vue';
2
2
  import { useRecorder } from '@vunk/plus/composables/recorder';
3
3
  import { Button } from 'ant-design-vue';
4
- import { _ as _export_sfc } from '../_plugin-vue_export-helper.mjs';
5
4
  import { A as AudioMutedOutlined, b as AudioOutlined } from '../SendOutlined.mjs';
6
5
 
7
6
  const props = {
@@ -48,8 +47,6 @@ var _sfc_main$2 = /* @__PURE__ */ defineComponent({
48
47
  }
49
48
  });
50
49
 
51
- var LoadingIcon = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__file", "/home/runner/work/vunk-plus/vunk-plus/packages/components/speech-button/src/LoadingIcon.vue"]]);
52
-
53
50
  const SIZE = 1e3;
54
51
  const COUNT = 4;
55
52
  const RECT_WIDTH = 140;
@@ -102,12 +99,10 @@ var _sfc_main$1 = /* @__PURE__ */ defineComponent({
102
99
  }
103
100
  });
104
101
 
105
- var RecordingIcon = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__file", "/home/runner/work/vunk-plus/vunk-plus/packages/components/speech-button/src/RecordingIcon.vue"]]);
106
-
107
102
  var _sfc_main = /* @__PURE__ */ defineComponent({
108
103
  name: "VkSpeechButton",
109
104
  components: {
110
- RecordingIcon
105
+ RecordingIcon: _sfc_main$1
111
106
  },
112
107
  props,
113
108
  emits,
@@ -134,9 +129,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
134
129
  };
135
130
  const iconRender = () => {
136
131
  if (props2.disabled) return createVNode(AudioMutedOutlined, null, null);
137
- if (opening.value) return createVNode(LoadingIcon, null, null);
132
+ if (opening.value) return createVNode(_sfc_main$2, null, null);
138
133
  if (recording.value) {
139
- return createVNode(RecordingIcon, {
134
+ return createVNode(_sfc_main$1, {
140
135
  "class": "vk-speech-button-recording-icon"
141
136
  }, null);
142
137
  }
@@ -151,14 +146,12 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
151
146
  }
152
147
  });
153
148
 
154
- var VkSpeechButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/vunk-plus/vunk-plus/packages/components/speech-button/src/index.vue"]]);
155
-
156
149
  var types = /*#__PURE__*/Object.freeze({
157
150
  __proto__: null
158
151
  });
159
152
 
160
- VkSpeechButton.install = (app) => {
161
- app.component(VkSpeechButton.name || "VkSpeechButton", VkSpeechButton);
153
+ _sfc_main.install = (app) => {
154
+ app.component(_sfc_main.name || "VkSpeechButton", _sfc_main);
162
155
  };
163
156
 
164
- export { VkSpeechButton, types as __VkSpeechButton, VkSpeechButton as default };
157
+ export { _sfc_main as VkSpeechButton, types as __VkSpeechButton, _sfc_main as default };
@@ -2,7 +2,6 @@ import { bindPropsFactory } from '@vunk/core/shared/utils-vue';
2
2
  import { defineComponent, unref, h } from 'vue';
3
3
  import { ElTableColumn } from 'element-plus';
4
4
  import { isPlainObject, pickObject } from '@vunk/shared/object';
5
- import { _ as _export_sfc } from '../_plugin-vue_export-helper.mjs';
6
5
 
7
6
  const tableColumnProps = {
8
7
  type: {
@@ -125,14 +124,12 @@ var _sfc_main = defineComponent({
125
124
  }
126
125
  });
127
126
 
128
- var VkTableColumns = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/vunk-plus/vunk-plus/packages/components/table-columns/src/index.vue"]]);
129
-
130
127
  var types = /*#__PURE__*/Object.freeze({
131
128
  __proto__: null
132
129
  });
133
130
 
134
- VkTableColumns.install = (app) => {
135
- app.component(VkTableColumns.name, VkTableColumns);
131
+ _sfc_main.install = (app) => {
132
+ app.component(_sfc_main.name, _sfc_main);
136
133
  };
137
134
 
138
- export { VkTableColumns, elCtx as _VkTableColumnsElCtx, types as __VkTableColumns, VkTableColumns as default };
135
+ export { _sfc_main as VkTableColumns, elCtx as _VkTableColumnsElCtx, types as __VkTableColumns, _sfc_main as default };
@@ -1,8 +1,8 @@
1
1
  import { _VkTableColumnsElCtx, VkTableColumns } from '@vunk/plus/components/table-columns';
2
2
  import { useElBreakpoints } from '@vunk/plus/composables/el-breakpoints';
3
3
  import { VkDuplexCalc } from '@vunk/core';
4
- import { useSizeProp, paginationProps, paginationEmits, ElPagination, ElTable } from 'element-plus';
5
- import { defineComponent, computed, resolveComponent, openBlock, createBlock, withCtx, createVNode, mergeProps, toHandlers, createElementBlock, createCommentVNode } from 'vue';
4
+ import { useSizeProp, paginationProps, paginationEmits, ElTable, ElPagination } from 'element-plus';
5
+ import { defineComponent, computed, resolveComponent, createBlock, openBlock, withCtx, createElementBlock, createCommentVNode, createVNode, mergeProps, toHandlers } from 'vue';
6
6
  import { pickObject } from '@vunk/core/shared/utils-object';
7
7
  import { bindPropsFactory, onEmitsFactory } from '@vunk/core/shared/utils-vue';
8
8
  import { _ as _export_sfc } from '../_plugin-vue_export-helper.mjs';
@@ -417,7 +417,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
417
417
  /* STABLE */
418
418
  });
419
419
  }
420
- var VkTablesV1 = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/vunk-plus/vunk-plus/packages/components/tables-v1/src/index.vue"]]);
420
+ var VkTablesV1 = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
421
421
 
422
422
  var types = /*#__PURE__*/Object.freeze({
423
423
  __proto__: null