@opentiny/tiny-robot 0.2.0-alpha.0 → 0.2.0-alpha.1

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 (136) hide show
  1. package/dist/action-group/ActionGroup.vue.d.ts +26 -0
  2. package/dist/action-group/ActionGroupItem.vue.d.ts +18 -0
  3. package/dist/action-group/index.d.ts +12 -0
  4. package/dist/action-group/index.type.d.ts +16 -0
  5. package/dist/feedback/components/SourceList.vue.d.ts +11 -0
  6. package/dist/feedback/components/index.d.ts +1 -0
  7. package/dist/feedback/index.d.ts +7 -0
  8. package/dist/feedback/index.type.d.ts +25 -0
  9. package/dist/feedback/index.vue.d.ts +13 -0
  10. package/dist/history/components/index.d.ts +2 -0
  11. package/dist/history/components/item-tag.vue.d.ts +5 -0
  12. package/dist/history/components/search-empty.vue.d.ts +7 -0
  13. package/dist/history/composables/index.d.ts +1 -0
  14. package/dist/history/composables/useEditItemTitle.d.ts +12 -0
  15. package/dist/history/index.d.ts +6 -0
  16. package/dist/history/index.type.d.ts +43 -0
  17. package/dist/history/index.vue.d.ts +2 -0
  18. package/dist/icon-button/index.d.ts +7 -0
  19. package/dist/icon-button/index.type.d.ts +7 -0
  20. package/dist/icon-button/index.vue.d.ts +6 -0
  21. package/dist/index.d.ts +10 -1
  22. package/dist/index.js +57 -27
  23. package/dist/node_modules/.pnpm/@opentiny_utils@3.22.0/node_modules/@opentiny/utils/dist/index.es.js +1335 -884
  24. package/dist/node_modules/.pnpm/@opentiny_vue-common@3.22.0/node_modules/@opentiny/vue-common/lib/index.js +660 -144
  25. package/dist/node_modules/.pnpm/@opentiny_vue-hooks@3.22.0/node_modules/@opentiny/vue-hooks/dist/src/vue-popper.js +85 -0
  26. package/dist/node_modules/.pnpm/@opentiny_vue-locale@3.22.0/node_modules/@opentiny/vue-locale/lib/index.js +1783 -0
  27. package/dist/node_modules/.pnpm/@opentiny_vue-renderless@3.22.0/node_modules/@opentiny/vue-renderless/tooltip/index.js +77 -0
  28. package/dist/node_modules/.pnpm/@opentiny_vue-renderless@3.22.0/node_modules/@opentiny/vue-renderless/tooltip/vue.js +90 -0
  29. package/dist/node_modules/.pnpm/@opentiny_vue-tooltip@3.22.0/node_modules/@opentiny/vue-tooltip/lib/index.js +176 -0
  30. package/dist/node_modules/.pnpm/@opentiny_vue-tooltip@3.22.0/node_modules/@opentiny/vue-tooltip/lib/pc.js +248 -0
  31. package/dist/node_modules/.pnpm/@vueuse_core@13.1.0_vue@3.5.13/node_modules/@vueuse/core/index.js +190 -0
  32. package/dist/node_modules/.pnpm/@vueuse_shared@13.1.0_vue@3.5.13/node_modules/@vueuse/shared/index.js +53 -0
  33. package/dist/packages/components/src/action-group/ActionGroup.vue.js +7 -0
  34. package/dist/packages/components/src/action-group/ActionGroup.vue2.js +97 -0
  35. package/dist/packages/components/src/action-group/ActionGroupItem.vue.js +14 -0
  36. package/dist/packages/components/src/action-group/ActionGroupItem.vue2.js +4 -0
  37. package/dist/packages/components/src/action-group/index.js +17 -0
  38. package/dist/packages/components/src/bubble/bubble.vue.js +2 -2
  39. package/dist/packages/components/src/bubble/bubble.vue2.js +46 -46
  40. package/dist/packages/components/src/container/index.vue.js +1 -1
  41. package/dist/packages/components/src/container/index.vue2.js +17 -17
  42. package/dist/packages/components/src/feedback/components/SourceList.vue.js +7 -0
  43. package/dist/packages/components/src/feedback/components/SourceList.vue2.js +52 -0
  44. package/dist/packages/components/src/feedback/index.js +9 -0
  45. package/dist/packages/components/src/feedback/index.vue.js +7 -0
  46. package/dist/packages/components/src/feedback/index.vue2.js +142 -0
  47. package/dist/packages/components/src/history/components/item-tag.vue.js +7 -0
  48. package/dist/packages/components/src/history/components/item-tag.vue2.js +21 -0
  49. package/dist/packages/components/src/history/components/search-empty.vue.js +7 -0
  50. package/dist/packages/components/src/history/components/search-empty.vue2.js +20 -0
  51. package/dist/packages/components/src/history/composables/useEditItemTitle.js +43 -0
  52. package/dist/packages/components/src/history/index.js +11 -0
  53. package/dist/packages/components/src/history/index.vue.js +7 -0
  54. package/dist/packages/components/src/history/index.vue2.js +130 -0
  55. package/dist/packages/components/src/icon-button/index.js +9 -0
  56. package/dist/packages/components/src/icon-button/index.vue.js +7 -0
  57. package/dist/packages/components/src/icon-button/index.vue2.js +40 -0
  58. package/dist/packages/components/src/prompts/prompt.vue.js +2 -2
  59. package/dist/packages/components/src/prompts/prompt.vue2.js +17 -15
  60. package/dist/packages/components/src/question/components/HotQuestions.vue.js +23 -23
  61. package/dist/packages/components/src/question/index.vue.js +18 -18
  62. package/dist/packages/components/src/sender/components/TemplateEditor.vue.js +7 -0
  63. package/dist/packages/components/src/sender/components/TemplateEditor.vue2.js +121 -0
  64. package/dist/packages/components/src/sender/index.vue.js +149 -128
  65. package/dist/packages/components/src/suggestion/components/CategoryNav.vue.js +38 -0
  66. package/dist/packages/components/src/suggestion/components/CategoryNav.vue2.js +4 -0
  67. package/dist/packages/components/src/suggestion/components/SuggestionCapsule.vue.js +107 -0
  68. package/dist/packages/components/src/suggestion/components/SuggestionCapsule.vue2.js +4 -0
  69. package/dist/packages/components/src/suggestion/components/SuggestionPanel.vue.js +123 -0
  70. package/dist/packages/components/src/suggestion/components/SuggestionPanel.vue2.js +4 -0
  71. package/dist/packages/components/src/suggestion/composables/useKeyboardNavigation.js +45 -0
  72. package/dist/packages/components/src/suggestion/composables/useTriggerDetection.js +17 -0
  73. package/dist/packages/components/src/suggestion/index.js +9 -0
  74. package/dist/packages/components/src/suggestion/index.vue.js +179 -0
  75. package/dist/packages/components/src/suggestion/index.vue2.js +4 -0
  76. package/dist/packages/components/src/suggestion/utils/dom.js +18 -0
  77. package/dist/packages/svgs/dist/tiny-robot-svgs.js +306 -90
  78. package/dist/question/components/HotQuestions.vue.d.ts +2 -2
  79. package/dist/sender/components/TemplateEditor.vue.d.ts +18 -0
  80. package/dist/sender/index.type.d.ts +47 -0
  81. package/dist/sender/index.vue.d.ts +68 -3
  82. package/dist/style.css +1 -1
  83. package/dist/suggestion/components/CategoryNav.vue.d.ts +45 -0
  84. package/dist/suggestion/components/SuggestionCapsule.vue.d.ts +32 -0
  85. package/dist/suggestion/components/SuggestionPanel.vue.d.ts +84 -0
  86. package/dist/suggestion/composables/useKeyboardNavigation.d.ts +18 -0
  87. package/dist/suggestion/composables/useSuggestionFilter.d.ts +10 -0
  88. package/dist/suggestion/composables/useTriggerDetection.d.ts +11 -0
  89. package/dist/suggestion/index.d.ts +7 -0
  90. package/dist/suggestion/index.type.d.ts +94 -0
  91. package/dist/suggestion/index.vue.d.ts +343 -0
  92. package/dist/suggestion/utils/dom.d.ts +20 -0
  93. package/package.json +4 -3
  94. package/src/action-group/ActionGroup.vue +232 -0
  95. package/src/action-group/ActionGroupItem.vue +9 -0
  96. package/src/action-group/index.ts +25 -0
  97. package/src/action-group/index.type.ts +20 -0
  98. package/src/bubble/bubble.vue +4 -14
  99. package/src/container/index.vue +1 -2
  100. package/src/feedback/components/SourceList.vue +112 -0
  101. package/src/feedback/components/index.ts +1 -0
  102. package/src/feedback/index.ts +12 -0
  103. package/src/feedback/index.type.ts +27 -0
  104. package/src/feedback/index.vue +166 -0
  105. package/src/history/components/index.ts +2 -0
  106. package/src/history/components/item-tag.vue +49 -0
  107. package/src/history/components/search-empty.vue +38 -0
  108. package/src/history/composables/index.ts +1 -0
  109. package/src/history/composables/useEditItemTitle.ts +75 -0
  110. package/src/history/index.ts +12 -0
  111. package/src/history/index.type.ts +50 -0
  112. package/src/history/index.vue +292 -0
  113. package/src/icon-button/index.ts +12 -0
  114. package/src/icon-button/index.type.ts +8 -0
  115. package/src/icon-button/index.vue +52 -0
  116. package/src/index.ts +33 -1
  117. package/src/prompts/prompt.vue +7 -21
  118. package/src/question/components/HotQuestions.vue +1 -1
  119. package/src/question/index.less +9 -10
  120. package/src/sender/components/TemplateEditor.vue +274 -0
  121. package/src/sender/index.less +17 -7
  122. package/src/sender/index.type.ts +51 -0
  123. package/src/sender/index.vue +56 -8
  124. package/src/sender/vars.less +3 -3
  125. package/src/suggestion/components/CategoryNav.vue +38 -0
  126. package/src/suggestion/components/SuggestionCapsule.vue +183 -0
  127. package/src/suggestion/components/SuggestionPanel.vue +147 -0
  128. package/src/suggestion/composables/useKeyboardNavigation.ts +101 -0
  129. package/src/suggestion/composables/useSuggestionFilter.ts +34 -0
  130. package/src/suggestion/composables/useTriggerDetection.ts +46 -0
  131. package/src/suggestion/index.less +497 -0
  132. package/src/suggestion/index.ts +12 -0
  133. package/src/suggestion/index.type.ts +101 -0
  134. package/src/suggestion/index.vue +338 -0
  135. package/src/suggestion/utils/dom.ts +66 -0
  136. package/src/suggestion/vars.less +141 -0
@@ -33,6 +33,8 @@ export interface SenderProps {
33
33
  showWordLimit?: boolean;
34
34
  suggestions?: string[];
35
35
  theme?: ThemeType;
36
+ template?: string;
37
+ hasContent?: boolean;
36
38
  }
37
39
  export interface ActionButtonsProps {
38
40
  loading?: boolean;
@@ -61,6 +63,7 @@ export type SenderEmits = {
61
63
  (e: 'blur', event: FocusEvent): void;
62
64
  (e: 'escape-press'): void;
63
65
  (e: 'cancel'): void;
66
+ (e: 'reset-template'): void;
64
67
  };
65
68
  export interface SpeechState {
66
69
  isRecording: boolean;
@@ -88,3 +91,47 @@ export interface SpeechHandler {
88
91
  start: () => void;
89
92
  stop: () => void;
90
93
  }
94
+ /**
95
+ * 模板部分定义
96
+ */
97
+ export interface TemplatePart {
98
+ /** 内容文本 */
99
+ content: string;
100
+ /** 是否为可编辑字段 */
101
+ isField: boolean;
102
+ /** 占位符文本 (当字段为空时显示) */
103
+ placeholder?: string;
104
+ /** 字段索引 (用于标识可编辑字段) */
105
+ fieldIndex?: number;
106
+ }
107
+ /**
108
+ * 模板编辑器属性
109
+ */
110
+ export interface TemplateEditorProps {
111
+ /** 模板字符串,格式为普通文本与 [占位符] 的组合 */
112
+ template: string;
113
+ /** 当前值 */
114
+ value?: string;
115
+ }
116
+ /**
117
+ * 模板编辑器事件
118
+ */
119
+ export interface TemplateEditorEmits {
120
+ /** 更新值 */
121
+ (e: 'update:value', value: string): void;
122
+ /** 输入事件 */
123
+ (e: 'input', value: string): void;
124
+ /** 内容变更状态 - 通知父组件是否有内容 */
125
+ (e: 'content-status', hasContent: boolean): void;
126
+ /** 字段激活状态变更 */
127
+ (e: 'field-active', isActive: boolean, index: number): void;
128
+ }
129
+ /**
130
+ * 模板编辑器暴露的方法
131
+ */
132
+ export interface TemplateEditorExpose {
133
+ /** 激活第一个可编辑字段 */
134
+ activateFirstField: () => void;
135
+ /** 重置所有字段 */
136
+ resetFields: () => void;
137
+ }
@@ -8,6 +8,37 @@ declare function __VLS_template(): {
8
8
  footer?(_: {}): any;
9
9
  };
10
10
  refs: {
11
+ templateEditorRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./index.type').TemplateEditorProps> & Readonly<{
12
+ onInput?: ((value: string) => any) | undefined;
13
+ "onUpdate:value"?: ((value: string) => any) | undefined;
14
+ "onContent-status"?: ((hasContent: boolean) => any) | undefined;
15
+ "onField-active"?: ((isActive: boolean, index: number) => any) | undefined;
16
+ }>, {
17
+ activateFirstField: () => void;
18
+ resetFields: () => void;
19
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
20
+ input: (value: string) => any;
21
+ "update:value": (value: string) => any;
22
+ "content-status": (hasContent: boolean) => any;
23
+ "field-active": (isActive: boolean, index: number) => any;
24
+ }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
25
+ editorRef: HTMLDivElement;
26
+ }, HTMLDivElement, import('vue').ComponentProvideOptions, {
27
+ P: {};
28
+ B: {};
29
+ D: {};
30
+ C: {};
31
+ M: {};
32
+ Defaults: {};
33
+ }, Readonly<import('./index.type').TemplateEditorProps> & Readonly<{
34
+ onInput?: ((value: string) => any) | undefined;
35
+ "onUpdate:value"?: ((value: string) => any) | undefined;
36
+ "onContent-status"?: ((hasContent: boolean) => any) | undefined;
37
+ "onField-active"?: ((isActive: boolean, index: number) => any) | undefined;
38
+ }>, {
39
+ activateFirstField: () => void;
40
+ resetFields: () => void;
41
+ }, {}, {}, {}, {}> | null;
11
42
  inputRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
12
43
  _constants: {
13
44
  type: ObjectConstructor;
@@ -467,6 +498,7 @@ declare const __VLS_component: import('vue').DefineComponent<SenderProps, {
467
498
  submit: () => void;
468
499
  startSpeech: () => void;
469
500
  stopSpeech: () => void;
501
+ activateTemplateFirstField: () => void;
470
502
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
471
503
  [x: string]: any;
472
504
  } & {
@@ -475,20 +507,53 @@ declare const __VLS_component: import('vue').DefineComponent<SenderProps, {
475
507
  [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
476
508
  }>, {
477
509
  loading: boolean;
510
+ template: string;
478
511
  mode: import('./index.type').InputMode;
479
512
  disabled: boolean;
513
+ modelValue: string;
480
514
  autofocus: boolean;
515
+ clearable: boolean;
516
+ showWordLimit: boolean;
481
517
  theme: import('./index.type').ThemeType;
518
+ hasContent: boolean;
482
519
  allowSpeech: boolean;
483
520
  allowFiles: boolean;
484
521
  submitType: import('./index.type').SubmitTrigger;
485
522
  autoSize: import('./index.type').AutoSize;
486
- clearable: boolean;
487
- modelValue: string;
488
523
  maxLength: number;
489
524
  placeholder: string;
490
- showWordLimit: boolean;
491
525
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
526
+ templateEditorRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./index.type').TemplateEditorProps> & Readonly<{
527
+ onInput?: ((value: string) => any) | undefined;
528
+ "onUpdate:value"?: ((value: string) => any) | undefined;
529
+ "onContent-status"?: ((hasContent: boolean) => any) | undefined;
530
+ "onField-active"?: ((isActive: boolean, index: number) => any) | undefined;
531
+ }>, {
532
+ activateFirstField: () => void;
533
+ resetFields: () => void;
534
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
535
+ input: (value: string) => any;
536
+ "update:value": (value: string) => any;
537
+ "content-status": (hasContent: boolean) => any;
538
+ "field-active": (isActive: boolean, index: number) => any;
539
+ }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
540
+ editorRef: HTMLDivElement;
541
+ }, HTMLDivElement, import('vue').ComponentProvideOptions, {
542
+ P: {};
543
+ B: {};
544
+ D: {};
545
+ C: {};
546
+ M: {};
547
+ Defaults: {};
548
+ }, Readonly<import('./index.type').TemplateEditorProps> & Readonly<{
549
+ onInput?: ((value: string) => any) | undefined;
550
+ "onUpdate:value"?: ((value: string) => any) | undefined;
551
+ "onContent-status"?: ((hasContent: boolean) => any) | undefined;
552
+ "onField-active"?: ((isActive: boolean, index: number) => any) | undefined;
553
+ }>, {
554
+ activateFirstField: () => void;
555
+ resetFields: () => void;
556
+ }, {}, {}, {}, {}> | null;
492
557
  inputRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
493
558
  _constants: {
494
559
  type: ObjectConstructor;