@sdata/web-vue 3.18.0 → 3.20.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 (280) hide show
  1. package/dist/sd.css +489 -0
  2. package/dist/sd.min.css +2 -2
  3. package/es/_components/icon-hover.vue.d.ts +1 -1
  4. package/es/_components/input-label/input-label.d.ts +13 -1
  5. package/es/_components/input-label/input-label.js +35 -5
  6. package/es/_components/input-label/style/index.css +6 -0
  7. package/es/_components/input-label/style/input-label.scss +8 -0
  8. package/es/_components/picker/input-range.vue.d.ts +24 -1
  9. package/es/_components/picker/input-range.vue_vue_type_script_setup_true_lang.js +42 -6
  10. package/es/_components/picker/input.vue.d.ts +24 -1
  11. package/es/_components/picker/input.vue_vue_type_script_setup_true_lang.js +31 -4
  12. package/es/_components/picker/style/index.scss +8 -0
  13. package/es/_components/select-view/select-view.d.ts +15 -3
  14. package/es/_components/select-view/select-view.js +10 -1
  15. package/es/_components/select-view/style/index.css +12 -0
  16. package/es/_components/virtual-list/virtual-list.vue.d.ts +6 -6
  17. package/es/_hooks/use-fit-width.d.ts +22 -0
  18. package/es/_hooks/use-fit-width.js +76 -0
  19. package/es/_hooks/use-form-item.d.ts +1 -1
  20. package/es/_hooks/use-size.d.ts +1 -1
  21. package/es/anchor/anchor.vue.d.ts +1 -1
  22. package/es/anchor/index.d.ts +3 -3
  23. package/es/auto-complete/auto-complete.d.ts +20 -2
  24. package/es/auto-complete/auto-complete.js +18 -0
  25. package/es/auto-complete/index.d.ts +36 -6
  26. package/es/basic-crud-table/basic-crud-table.vue.d.ts +2 -2
  27. package/es/basic-crud-table/basic-crud-table.vue_vue_type_script_setup_true_lang.js +6 -4
  28. package/es/basic-crud-table/index.d.ts +5 -5
  29. package/es/basic-crud-table/types.d.ts +2 -0
  30. package/es/button/button.vue.d.ts +2 -2
  31. package/es/button/index.d.ts +6 -6
  32. package/es/card/card.d.ts +25 -3
  33. package/es/card/card.js +11 -2
  34. package/es/card/index.d.ts +45 -6
  35. package/es/carousel/carousel-indicator.vue.d.ts +1 -1
  36. package/es/cascader/base-cascader-panel.d.ts +4 -1
  37. package/es/cascader/base-cascader-panel.js +2 -1
  38. package/es/cascader/cascader-option.d.ts +1 -1
  39. package/es/cascader/cascader-panel.vue.d.ts +1 -1
  40. package/es/cascader/cascader-search-panel.d.ts +4 -1
  41. package/es/cascader/cascader-search-panel.js +2 -1
  42. package/es/cascader/cascader.vue.d.ts +7 -5
  43. package/es/cascader/cascader.vue_vue_type_script_setup_true_lang.js +22 -2
  44. package/es/cascader/types.d.ts +4 -1
  45. package/es/checkbox/checkbox.d.ts +3 -3
  46. package/es/checkbox/index.d.ts +6 -6
  47. package/es/collapse/collapse-item.d.ts +3 -3
  48. package/es/collapse/index.d.ts +3 -3
  49. package/es/color-picker/color-picker.d.ts +2 -2
  50. package/es/color-picker/index.d.ts +6 -6
  51. package/es/components.d.ts +4 -0
  52. package/es/config-provider/config-provider.vue.d.ts +68 -1
  53. package/es/config-provider/config-provider.vue_vue_type_script_setup_true_lang.js +67 -1
  54. package/es/config-provider/context.d.ts +12 -0
  55. package/es/config-provider/index.d.ts +102 -3
  56. package/es/date-picker/index.d.ts +87 -23
  57. package/es/date-picker/interface.d.ts +2 -1
  58. package/es/date-picker/picker-panel.vue.d.ts +1 -1
  59. package/es/date-picker/picker.vue.d.ts +39 -17
  60. package/es/date-picker/picker.vue_vue_type_script_setup_true_lang.js +30 -1
  61. package/es/date-picker/pickers/date-picker.d.ts +18 -0
  62. package/es/date-picker/pickers/date-picker.js +16 -0
  63. package/es/date-picker/range-picker-panel.vue.d.ts +1 -1
  64. package/es/date-picker/range-picker.vue.d.ts +39 -17
  65. package/es/date-picker/range-picker.vue_vue_type_script_setup_true_lang.js +27 -1
  66. package/es/date-picker/style/index.css +6 -0
  67. package/es/descriptions/descriptions.d.ts +3 -3
  68. package/es/descriptions/index.d.ts +9 -9
  69. package/es/divider/divider.d.ts +1 -1
  70. package/es/divider/index.d.ts +3 -3
  71. package/es/drawer/drawer.vue.d.ts +4 -4
  72. package/es/drawer/drawer.vue_vue_type_script_setup_true_lang.js +1 -1
  73. package/es/drawer/index.d.ts +11 -11
  74. package/es/dropdown/dropdown-button.vue.d.ts +2 -2
  75. package/es/dropdown/dropdown-option.vue.d.ts +1 -1
  76. package/es/dropdown/dropdown-submenu.vue.d.ts +2 -2
  77. package/es/dropdown/dropdown.vue.d.ts +1 -1
  78. package/es/dropdown/index.d.ts +21 -21
  79. package/es/ellipsis/ellipsis.vue.d.ts +1 -1
  80. package/es/ellipsis/index.d.ts +6 -6
  81. package/es/ellipsis/performant-ellipsis.vue.d.ts +1 -1
  82. package/es/form/form-item.vue.d.ts +1 -1
  83. package/es/form/form.vue.d.ts +1 -1
  84. package/es/form/index.d.ts +9 -9
  85. package/es/grid/grid-row.vue.d.ts +3 -3
  86. package/es/grid/index.d.ts +9 -9
  87. package/es/icon/icon-arrow-up/icon-arrow-up.js +5 -0
  88. package/es/icon/icon-arrow-up/icon-arrow-up.vue_vue_type_script_setup_true_lang.js +52 -0
  89. package/es/icon/icon-arrow-up/index.js +9 -0
  90. package/es/icon/icon-mute/icon-mute.js +5 -0
  91. package/es/icon/icon-mute/icon-mute.vue_vue_type_script_setup_true_lang.js +52 -0
  92. package/es/icon/icon-mute/index.js +9 -0
  93. package/es/icon/icon-voice/icon-voice.js +5 -0
  94. package/es/icon/icon-voice/icon-voice.vue_vue_type_script_setup_true_lang.js +52 -0
  95. package/es/icon/icon-voice/index.js +9 -0
  96. package/es/image/preview-action.d.ts +6 -6
  97. package/es/image/preview-group.vue.d.ts +1 -1
  98. package/es/index.css +489 -0
  99. package/es/index.d.ts +6 -1
  100. package/es/index.js +5 -1
  101. package/es/index.scss +2 -0
  102. package/es/input/index.d.ts +99 -6
  103. package/es/input/input-password.vue.d.ts +18 -0
  104. package/es/input/input-password.vue_vue_type_script_setup_true_lang.js +24 -2
  105. package/es/input/input-search.d.ts +18 -0
  106. package/es/input/input-search.js +20 -2
  107. package/es/input/input.d.ts +29 -2
  108. package/es/input/input.js +45 -3
  109. package/es/input/style/index.css +16 -0
  110. package/es/input/style/index.scss +21 -0
  111. package/es/input-number/index.d.ts +36 -6
  112. package/es/input-number/input-number.d.ts +20 -2
  113. package/es/input-number/input-number.js +19 -0
  114. package/es/input-tag/index.d.ts +36 -6
  115. package/es/input-tag/input-tag.d.ts +20 -2
  116. package/es/input-tag/input-tag.js +35 -4
  117. package/es/input-tag/style/index.css +6 -0
  118. package/es/input-tag/style/input-tag.scss +8 -0
  119. package/es/kv-list/index.d.ts +72 -32
  120. package/es/link/index.d.ts +6 -6
  121. package/es/link/link.vue.d.ts +2 -2
  122. package/es/list/index.d.ts +9 -0
  123. package/es/list/list.d.ts +7 -0
  124. package/es/list/list.js +8 -2
  125. package/es/locale/interface.d.ts +22 -0
  126. package/es/locale/lang/ar-eg.js +21 -1
  127. package/es/locale/lang/de-de.js +21 -1
  128. package/es/locale/lang/en-us.js +21 -1
  129. package/es/locale/lang/es-es.js +21 -1
  130. package/es/locale/lang/fr-fr.js +21 -1
  131. package/es/locale/lang/id-id.js +21 -1
  132. package/es/locale/lang/it-it.js +21 -1
  133. package/es/locale/lang/ja-jp.js +21 -1
  134. package/es/locale/lang/km-kh.js +21 -1
  135. package/es/locale/lang/ko-kr.js +21 -1
  136. package/es/locale/lang/ms-my.js +21 -1
  137. package/es/locale/lang/nl-nl.js +21 -1
  138. package/es/locale/lang/pt-pt.js +21 -1
  139. package/es/locale/lang/ru-ru.js +21 -1
  140. package/es/locale/lang/th-th.js +21 -1
  141. package/es/locale/lang/vi-vn.js +21 -1
  142. package/es/locale/lang/zh-cn.js +21 -1
  143. package/es/locale/lang/zh-tw.js +21 -1
  144. package/es/mention/index.d.ts +39 -9
  145. package/es/mention/mention.d.ts +21 -3
  146. package/es/mention/mention.js +24 -1
  147. package/es/mention/style/index.css +6 -0
  148. package/es/mention/style/index.scss +8 -0
  149. package/es/menu/item.d.ts +1 -1
  150. package/es/message/message-list.d.ts +1 -1
  151. package/es/modal/index.d.ts +9 -9
  152. package/es/modal/modal.vue.d.ts +3 -3
  153. package/es/modal/modal.vue_vue_type_script_setup_true_lang.js +1 -1
  154. package/es/popconfirm/index.d.ts +3 -3
  155. package/es/popconfirm/popconfirm.vue.d.ts +1 -1
  156. package/es/popover/index.d.ts +6 -6
  157. package/es/popover/popover.vue.d.ts +2 -2
  158. package/es/progress/circle.vue.d.ts +1 -1
  159. package/es/progress/line.vue.d.ts +1 -1
  160. package/es/qr-code/index.d.ts +27 -21
  161. package/es/qr-code/qr-code.vue.d.ts +8 -6
  162. package/es/qr-code/qr-code.vue_vue_type_script_setup_true_lang.js +5 -2
  163. package/es/radio/index.d.ts +6 -6
  164. package/es/radio/radio.d.ts +3 -3
  165. package/es/rate/index.d.ts +3 -3
  166. package/es/rate/rate.d.ts +1 -1
  167. package/es/resize-box/index.d.ts +5 -5
  168. package/es/resize-box/resize-box.vue.d.ts +3 -3
  169. package/es/rich-text-editor/built-in-components.d.ts +5 -0
  170. package/es/rich-text-editor/built-in-components.js +6 -0
  171. package/es/rich-text-editor/index.d.ts +195 -0
  172. package/es/rich-text-editor/index.js +12 -0
  173. package/es/rich-text-editor/nodes/inline-component-node.d.ts +30 -0
  174. package/es/rich-text-editor/nodes/inline-component-node.js +86 -0
  175. package/es/rich-text-editor/rich-text-editor.js +5 -0
  176. package/es/rich-text-editor/rich-text-editor.vue.d.ts +76 -0
  177. package/es/rich-text-editor/rich-text-editor.vue_vue_type_script_setup_true_lang.js +630 -0
  178. package/es/rich-text-editor/rich-text-node-renderer.js +5 -0
  179. package/es/rich-text-editor/rich-text-node-renderer.vue.d.ts +28 -0
  180. package/es/rich-text-editor/rich-text-node-renderer.vue_vue_type_script_setup_true_lang.js +133 -0
  181. package/es/rich-text-editor/style/css.js +2 -0
  182. package/es/rich-text-editor/style/index.css +164 -0
  183. package/es/rich-text-editor/style/index.d.ts +2 -0
  184. package/es/rich-text-editor/style/index.js +2 -0
  185. package/es/rich-text-editor/style/index.scss +193 -0
  186. package/es/rich-text-editor/style/token.scss +36 -0
  187. package/es/rich-text-editor/types.d.ts +148 -0
  188. package/es/sd-vue.js +6 -0
  189. package/es/select/index.d.ts +117 -54
  190. package/es/select/interface.d.ts +2 -1
  191. package/es/select/select-dropdown.vue.d.ts +3 -0
  192. package/es/select/select-dropdown.vue_vue_type_script_setup_true_lang.js +2 -4
  193. package/es/select/select.d.ts +62 -25
  194. package/es/select/select.js +28 -1
  195. package/es/sender/context.d.ts +8 -0
  196. package/es/sender/context.js +4 -0
  197. package/es/sender/index.d.ts +119 -0
  198. package/es/sender/index.js +20 -0
  199. package/es/sender/sender-header.js +5 -0
  200. package/es/sender/sender-header.vue.d.ts +28 -0
  201. package/es/sender/sender-header.vue_vue_type_script_setup_true_lang.js +127 -0
  202. package/es/sender/sender-switch.js +5 -0
  203. package/es/sender/sender-switch.vue.d.ts +32 -0
  204. package/es/sender/sender-switch.vue_vue_type_script_setup_true_lang.js +95 -0
  205. package/es/sender/sender.js +5 -0
  206. package/es/sender/sender.vue_vue_type_script_setup_true_lang.js +895 -0
  207. package/es/sender/style/css.js +3 -0
  208. package/es/sender/style/index.css +301 -0
  209. package/es/sender/style/index.d.ts +3 -0
  210. package/es/sender/style/index.js +3 -0
  211. package/es/sender/style/index.scss +359 -0
  212. package/es/sender/style/token.scss +43 -0
  213. package/es/sender/types.d.ts +228 -0
  214. package/es/sender/use-speech.d.ts +19 -0
  215. package/es/sender/use-speech.js +338 -0
  216. package/es/slider/index.d.ts +3 -3
  217. package/es/slider/slider-input.vue.d.ts +1 -1
  218. package/es/slider/slider.vue.d.ts +1 -1
  219. package/es/space/index.d.ts +9 -9
  220. package/es/space/space.d.ts +2 -2
  221. package/es/spin/index.d.ts +18 -3
  222. package/es/spin/spin.d.ts +10 -1
  223. package/es/spin/spin.js +72 -10
  224. package/es/statistic/index.d.ts +3 -3
  225. package/es/statistic/statistic.vue.d.ts +1 -1
  226. package/es/steps/index.d.ts +5 -5
  227. package/es/steps/step.vue.d.ts +2 -2
  228. package/es/steps/steps.vue.d.ts +1 -1
  229. package/es/table/index.d.ts +68 -23
  230. package/es/table/interface.d.ts +3 -0
  231. package/es/table/table-column.d.ts +1 -1
  232. package/es/table/table-operation-td.d.ts +12 -12
  233. package/es/table/table-td.d.ts +2 -2
  234. package/es/table/table.d.ts +27 -8
  235. package/es/table/table.js +7 -2
  236. package/es/tabs/index.d.ts +12 -12
  237. package/es/tabs/tabs-nav.d.ts +1 -1
  238. package/es/tabs/tabs.d.ts +4 -4
  239. package/es/tag/index.d.ts +6 -6
  240. package/es/tag/tag.vue.d.ts +2 -2
  241. package/es/textarea/index.d.ts +38 -8
  242. package/es/textarea/style/index.css +6 -0
  243. package/es/textarea/style/index.scss +8 -0
  244. package/es/textarea/textarea.vue.d.ts +21 -3
  245. package/es/textarea/textarea.vue_vue_type_script_setup_true_lang.js +36 -3
  246. package/es/time-picker/index.d.ts +36 -6
  247. package/es/time-picker/interface.d.ts +2 -1
  248. package/es/time-picker/range-panel.js +58 -0
  249. package/es/time-picker/time-picker.vue.d.ts +20 -2
  250. package/es/time-picker/time-picker.vue_vue_type_script_setup_true_lang.js +30 -1
  251. package/es/timeline/index.d.ts +45 -6
  252. package/es/timeline/timeline.d.ts +25 -3
  253. package/es/timeline/timeline.js +11 -2
  254. package/es/toolbar/toolbar.vue_vue_type_script_setup_true_lang.js +9 -5
  255. package/es/toolbar/types.d.ts +2 -0
  256. package/es/tooltip/index.d.ts +6 -6
  257. package/es/tooltip/tooltip.vue.d.ts +2 -2
  258. package/es/tour/index.d.ts +3 -3
  259. package/es/tour/tour.vue.d.ts +1 -1
  260. package/es/transfer/index.d.ts +3 -3
  261. package/es/transfer/transfer.vue.d.ts +1 -1
  262. package/es/tree/tree.vue.d.ts +4 -4
  263. package/es/tree-select/interface.d.ts +2 -1
  264. package/es/tree-select/tree-select.vue.d.ts +32 -7
  265. package/es/tree-select/tree-select.vue_vue_type_script_setup_true_lang.js +27 -1
  266. package/es/trigger/index.d.ts +12 -12
  267. package/es/trigger/trigger.d.ts +4 -4
  268. package/es/typography/base.d.ts +4 -4
  269. package/es/typography/edit-content.vue.d.ts +2 -2
  270. package/es/upload/index.d.ts +6 -6
  271. package/es/upload/upload-button.d.ts +1 -1
  272. package/es/upload/upload.d.ts +2 -2
  273. package/es/verification-code/index.d.ts +3 -3
  274. package/es/verification-code/verification-code.d.ts +1 -1
  275. package/es/watermark/index.d.ts +3 -3
  276. package/es/watermark/watermark.d.ts +1 -1
  277. package/json/vetur-attributes.json +295 -2
  278. package/json/vetur-tags.json +103 -3
  279. package/json/web-types.json +746 -53
  280. package/package.json +10 -1
@@ -0,0 +1,3 @@
1
+ import "../../style/index.css";
2
+ import "../../rich-text-editor/style/index.css";
3
+ import "./index.css";
@@ -0,0 +1,301 @@
1
+ /******** borderSize *******/
2
+ /******** borderStyle *******/
3
+ /******** radius *******/
4
+ /******** shadow distance *******/
5
+ /******** size *******/
6
+ /******** spacing *******/
7
+ /******** shadow *******/
8
+ /******** opacity *******/
9
+ /******** fontSize *******/
10
+ /******** fontWeight ********/
11
+ /******** Primary *******/
12
+ /******** success *******/
13
+ /******** warning *******/
14
+ /******** danger *******/
15
+ /******** link *******/
16
+ /******** radius *******/
17
+ /********* icon hover *********/
18
+ .sd-sender {
19
+ box-sizing: border-box;
20
+ }
21
+ .sd-sender-main {
22
+ position: relative;
23
+ width: 100%;
24
+ overflow: hidden;
25
+ background: #fff;
26
+ border: 1px solid color-mix(in srgb, var(--sd-color-neutral-3) 10%, transparent);
27
+ border-radius: calc(var(--sd-border-radius-medium) * 2);
28
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);
29
+ }
30
+ .sd-sender-disabled {
31
+ background: var(--sd-color-neutral-2);
32
+ border-color: transparent;
33
+ }
34
+ .sd-sender-content {
35
+ display: flex;
36
+ gap: 8px;
37
+ align-items: flex-end;
38
+ box-sizing: border-box;
39
+ width: 100%;
40
+ padding-block: 12px;
41
+ padding-inline: 12px;
42
+ }
43
+ .sd-sender-prefix, .sd-sender-actions-list {
44
+ flex: none;
45
+ }
46
+ .sd-sender-input {
47
+ flex: auto;
48
+ align-self: center;
49
+ min-width: 0;
50
+ padding: 0;
51
+ color: var(--sd-color-neutral-10);
52
+ font-size: 14px;
53
+ caret-color: rgb(var(--sd-primary-6));
54
+ background: transparent;
55
+ border: 0;
56
+ border-radius: 0;
57
+ outline: none;
58
+ }
59
+ .sd-sender-input.sd-sender-input.sd-textarea-wrapper {
60
+ overflow: visible;
61
+ background: transparent;
62
+ border: 0;
63
+ box-shadow: none;
64
+ }
65
+ .sd-sender-input.sd-sender-input.sd-textarea-wrapper .sd-textarea {
66
+ min-height: 32px;
67
+ padding: 5px 0;
68
+ background: transparent;
69
+ border: 0;
70
+ box-shadow: none;
71
+ }
72
+ .sd-sender-input.sd-sender-input.sd-textarea-wrapper .sd-textarea:focus, .sd-sender-input.sd-sender-input.sd-textarea-wrapper .sd-textarea:focus-visible {
73
+ border: 0;
74
+ outline: 0;
75
+ box-shadow: none;
76
+ }
77
+ .sd-sender-actions-list {
78
+ display: flex;
79
+ }
80
+ .sd-sender-actions-list-presets {
81
+ display: flex;
82
+ gap: 8px;
83
+ }
84
+ .sd-sender-actions-btn.sd-button-text {
85
+ color: rgb(var(--sd-primary-6));
86
+ }
87
+ .sd-sender-actions-btn-disabled.sd-button-text {
88
+ color: color-mix(in srgb, rgb(var(--sd-primary-6)) 45%, transparent);
89
+ border-color: transparent;
90
+ }
91
+ .sd-sender-actions-btn-disabled:not(.sd-button-text) {
92
+ color: #fff;
93
+ background: color-mix(in srgb, rgb(var(--sd-primary-6)) 45%, transparent);
94
+ border-color: transparent;
95
+ }
96
+ .sd-sender-actions-btn-loading-button {
97
+ padding: 0;
98
+ border: 0;
99
+ }
100
+ .sd-sender-actions-btn-loading-icon {
101
+ width: 32px;
102
+ height: 32px;
103
+ vertical-align: top;
104
+ }
105
+ .sd-sender-actions-btn-recording-icon {
106
+ width: 1.2em;
107
+ height: 1.2em;
108
+ vertical-align: top;
109
+ }
110
+ .sd-sender-loading-spinner {
111
+ transform-origin: center;
112
+ animation: sender-loading-rotate 1s linear infinite;
113
+ }
114
+ .sd-sender-recording-bar {
115
+ transform-box: fill-box;
116
+ transform-origin: center;
117
+ animation: sender-recording-bar 0.8s ease-in-out infinite;
118
+ }
119
+ .sd-sender-footer {
120
+ display: flex;
121
+ gap: 8px;
122
+ align-items: center;
123
+ box-sizing: border-box;
124
+ padding-block: 4px 12px;
125
+ padding-inline: 12px;
126
+ }
127
+ .sd-sender-footer-content {
128
+ flex: auto;
129
+ min-width: 0;
130
+ }
131
+ .sd-sender-footer-suffix {
132
+ flex: none;
133
+ margin-inline-start: auto;
134
+ }
135
+ .sd-sender-header {
136
+ overflow: hidden;
137
+ border-bottom: 1px solid color-mix(in srgb, var(--sd-color-neutral-3) 10%, transparent);
138
+ }
139
+ .sd-sender-header-header {
140
+ display: flex;
141
+ align-items: center;
142
+ padding-block: 10px;
143
+ padding-inline: 16px 8px;
144
+ font-size: 14px;
145
+ line-height: 1.5715;
146
+ background: var(--sd-color-neutral-2);
147
+ border-radius: calc(var(--sd-border-radius-medium) * 2) calc(var(--sd-border-radius-medium) * 2) 0 0;
148
+ }
149
+ .sd-sender-header-title {
150
+ flex: auto;
151
+ }
152
+ .sd-sender-header-close {
153
+ flex: none;
154
+ }
155
+ .sd-sender-header-content {
156
+ padding: 16px;
157
+ }
158
+ .sd-sender-header-motion-enter-active, .sd-sender-header-motion-leave-active {
159
+ overflow: hidden;
160
+ transition: height 0.3s cubic-bezier(0.34, 0.69, 0.1, 1), border-color 0.3s cubic-bezier(0.34, 0.69, 0.1, 1);
161
+ }
162
+ .sd-sender-input-slot.sd-rich-text-editor {
163
+ display: block;
164
+ align-self: center;
165
+ width: 100%;
166
+ min-width: 0;
167
+ padding: 0;
168
+ background: transparent;
169
+ border: 0;
170
+ border-radius: 0;
171
+ box-shadow: none;
172
+ }
173
+ .sd-sender-input-slot.sd-rich-text-editor:hover, .sd-sender-input-slot.sd-rich-text-editor:focus-within {
174
+ border: 0;
175
+ box-shadow: none;
176
+ }
177
+ .sd-sender-input-slot .sd-rich-text-editor-content {
178
+ box-sizing: border-box;
179
+ padding: 0;
180
+ color: inherit;
181
+ font: inherit;
182
+ line-height: inherit;
183
+ caret-color: rgb(var(--sd-primary-6));
184
+ outline: none;
185
+ }
186
+ .sd-sender-input-slot .sd-rich-text-editor-placeholder {
187
+ inset-block-start: 0;
188
+ inset-inline-start: 0;
189
+ color: var(--sd-color-neutral-4);
190
+ }
191
+ .sd-sender-input-slot .sd-rich-text-editor-component {
192
+ margin-inline: 4px;
193
+ }
194
+ .sd-sender-input-slot .sd-rich-text-editor-component-control {
195
+ min-height: calc(14px * 1.5715 + 2px);
196
+ font-size: inherit;
197
+ line-height: inherit;
198
+ }
199
+ .sd-sender-input-slot-content {
200
+ width: 100%;
201
+ min-height: 32px;
202
+ white-space: pre-wrap;
203
+ overflow-wrap: anywhere;
204
+ cursor: text;
205
+ }
206
+ .sd-sender-slot {
207
+ display: inline-flex;
208
+ align-items: center;
209
+ }
210
+ .sd-sender-skill {
211
+ display: inline-block;
212
+ height: calc(14px * 1.5715 + 2px);
213
+ margin-block: 1px;
214
+ margin-inline-start: -1px;
215
+ vertical-align: baseline;
216
+ word-break: break-all;
217
+ }
218
+ .sd-sender-skill-empty::after {
219
+ display: inline-block;
220
+ height: inherit;
221
+ color: var(--sd-color-neutral-4);
222
+ content: attr(data-placeholder);
223
+ pointer-events: none;
224
+ }
225
+ .sd-sender-skill-wrapper {
226
+ display: inline-flex;
227
+ height: 100%;
228
+ }
229
+ .sd-sender-skill-tag {
230
+ display: inline-flex;
231
+ gap: 4px;
232
+ align-items: center;
233
+ height: 100%;
234
+ color: rgb(var(--sd-primary-6));
235
+ font-weight: 500;
236
+ background: color-mix(in srgb, rgb(var(--sd-primary-6)) 8%, transparent);
237
+ border-radius: var(--sd-border-radius-medium);
238
+ cursor: pointer;
239
+ transition: background-color 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);
240
+ padding-inline: 8px;
241
+ }
242
+ .sd-sender-skill-tag:hover {
243
+ background: color-mix(in srgb, rgb(var(--sd-primary-6)) 15%, transparent);
244
+ }
245
+ .sd-sender-skill-tag-close {
246
+ display: inline-flex;
247
+ color: rgb(var(--sd-primary-6));
248
+ font-size: 12px;
249
+ transition: color 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);
250
+ }
251
+ .sd-sender-skill-tag-close:not(.sd-sender-skill-tag-close-disabled):hover {
252
+ color: rgb(var(--sd-primary-5));
253
+ }
254
+ .sd-sender-skill-tag-close-disabled {
255
+ color: var(--sd-color-neutral-4);
256
+ cursor: not-allowed;
257
+ }
258
+ .sd-sender-skill-holder {
259
+ width: 10px;
260
+ height: 100%;
261
+ }
262
+ .sd-sender-switch {
263
+ display: inline-block;
264
+ }
265
+ .sd-sender-switch .sd-sender-switch-content:not(:disabled):hover {
266
+ color: var(--sd-color-neutral-10);
267
+ background: color-mix(in srgb, var(--sd-color-neutral-3) 4%, transparent);
268
+ border-color: var(--sd-color-neutral-3);
269
+ }
270
+ .sd-sender-switch-checked .sd-sender-switch-content {
271
+ color: rgb(var(--sd-primary-6));
272
+ background: color-mix(in srgb, rgb(var(--sd-primary-6)) 8%, transparent);
273
+ border-color: rgb(var(--sd-primary-6));
274
+ }
275
+ .sd-sender-switch-checked .sd-sender-switch-content:not(:disabled):hover {
276
+ color: rgb(var(--sd-primary-6));
277
+ background: color-mix(in srgb, rgb(var(--sd-primary-6)) 10%, transparent);
278
+ border-color: rgb(var(--sd-primary-6));
279
+ }
280
+
281
+ @keyframes sender-loading-rotate {
282
+ to {
283
+ transform: rotate(360deg);
284
+ }
285
+ }
286
+ @keyframes sender-recording-bar {
287
+ 0%, 100% {
288
+ transform: scaleY(1);
289
+ }
290
+ 50% {
291
+ transform: scaleY(2);
292
+ }
293
+ }
294
+ @media (prefers-reduced-motion: reduce) {
295
+ .sd-sender-loading-spinner, .sd-sender-recording-bar {
296
+ animation: none;
297
+ }
298
+ .sd-sender-header-motion-enter-active, .sd-sender-header-motion-leave-active {
299
+ transition-duration: 0.01ms;
300
+ }
301
+ }
@@ -0,0 +1,3 @@
1
+ import '../../style/index.scss';
2
+ import '../../rich-text-editor/style/index.scss';
3
+ import './index.scss';
@@ -0,0 +1,3 @@
1
+ import "../../style/index.scss";
2
+ import "../../rich-text-editor/style/index.scss";
3
+ import "./index.scss";
@@ -0,0 +1,359 @@
1
+ @use 'sass:string';
2
+ @use './token.scss' as *;
3
+ @use '@style/theme/index.scss' as theme;
4
+
5
+ $sender-prefix-cls: string.unquote('#{theme.$prefix}-sender');
6
+
7
+ .#{$sender-prefix-cls} {
8
+ box-sizing: border-box;
9
+
10
+ &-main {
11
+ position: relative;
12
+ width: 100%;
13
+ overflow: hidden;
14
+ background: $sender-color-bg;
15
+ border: $sender-border-width solid $sender-color-border-input;
16
+ border-radius: $sender-border-radius;
17
+ box-shadow: $sender-box-shadow;
18
+ }
19
+
20
+ &-disabled {
21
+ background: $sender-color-bg-disabled;
22
+ border-color: transparent;
23
+ }
24
+
25
+ &-content {
26
+ display: flex;
27
+ gap: $sender-content-gap;
28
+ align-items: flex-end;
29
+ box-sizing: border-box;
30
+ width: 100%;
31
+ padding-block: $sender-padding-block;
32
+ padding-inline: $sender-padding-inline;
33
+ }
34
+
35
+ &-prefix,
36
+ &-actions-list {
37
+ flex: none;
38
+ }
39
+
40
+ &-input {
41
+ flex: auto;
42
+ align-self: center;
43
+ min-width: 0;
44
+ padding: 0;
45
+ color: $sender-color-text;
46
+ font-size: $sender-font-size;
47
+ caret-color: $sender-color-primary;
48
+ background: transparent;
49
+ border: 0;
50
+ border-radius: 0;
51
+ outline: none;
52
+
53
+ &.#{$sender-prefix-cls}-input.sd-textarea-wrapper {
54
+ overflow: visible;
55
+ background: transparent;
56
+ border: 0;
57
+ box-shadow: none;
58
+
59
+ .sd-textarea {
60
+ min-height: $sender-control-height;
61
+ padding: 5px 0;
62
+ background: transparent;
63
+ border: 0;
64
+ box-shadow: none;
65
+
66
+ &:focus,
67
+ &:focus-visible {
68
+ border: 0;
69
+ outline: 0;
70
+ box-shadow: none;
71
+ }
72
+ }
73
+ }
74
+ }
75
+
76
+ &-actions-list {
77
+ display: flex;
78
+
79
+ &-presets {
80
+ display: flex;
81
+ gap: $sender-content-gap;
82
+ }
83
+ }
84
+
85
+ &-actions-btn {
86
+ &.sd-button-text {
87
+ color: $sender-color-primary;
88
+ }
89
+
90
+ &-disabled.sd-button-text {
91
+ color: $sender-color-bg-actions-disabled;
92
+ border-color: transparent;
93
+ }
94
+
95
+ &-disabled:not(.sd-button-text) {
96
+ color: #fff;
97
+ background: $sender-color-bg-actions-disabled;
98
+ border-color: transparent;
99
+ }
100
+
101
+ &-loading-button {
102
+ padding: 0;
103
+ border: 0;
104
+ }
105
+
106
+ &-loading-icon {
107
+ width: $sender-control-height;
108
+ height: $sender-control-height;
109
+ vertical-align: top;
110
+ }
111
+
112
+ &-recording-icon {
113
+ width: 1.2em;
114
+ height: 1.2em;
115
+ vertical-align: top;
116
+ }
117
+ }
118
+
119
+ &-loading-spinner {
120
+ transform-origin: center;
121
+ animation: sender-loading-rotate 1s linear infinite;
122
+ }
123
+
124
+ &-recording-bar {
125
+ transform-box: fill-box;
126
+ transform-origin: center;
127
+ animation: sender-recording-bar 0.8s ease-in-out infinite;
128
+ }
129
+
130
+ &-footer {
131
+ display: flex;
132
+ gap: $sender-content-gap;
133
+ align-items: center;
134
+ box-sizing: border-box;
135
+ padding-block: $sender-footer-padding-top $sender-padding-block;
136
+ padding-inline: $sender-padding-inline;
137
+
138
+ &-content {
139
+ flex: auto;
140
+ min-width: 0;
141
+ }
142
+
143
+ &-suffix {
144
+ flex: none;
145
+ margin-inline-start: auto;
146
+ }
147
+ }
148
+
149
+ &-header {
150
+ overflow: hidden;
151
+ border-bottom: $sender-border-width solid $sender-color-border-input;
152
+
153
+ &-header {
154
+ display: flex;
155
+ align-items: center;
156
+ padding-block: $sender-padding-block - theme.$border-2;
157
+ padding-inline: theme.$spacing-7 theme.$spacing-4;
158
+ font-size: $sender-font-size;
159
+ line-height: $sender-line-height;
160
+ background: $sender-color-header-bg;
161
+ border-radius: $sender-border-radius $sender-border-radius 0 0;
162
+ }
163
+
164
+ &-title {
165
+ flex: auto;
166
+ }
167
+
168
+ &-close {
169
+ flex: none;
170
+ }
171
+
172
+ &-content {
173
+ padding: theme.$spacing-7;
174
+ }
175
+
176
+ &-motion-enter-active,
177
+ &-motion-leave-active {
178
+ overflow: hidden;
179
+ transition:
180
+ height $sender-motion-duration $sender-motion-easing,
181
+ border-color $sender-motion-duration $sender-motion-easing;
182
+ }
183
+ }
184
+
185
+ &-input-slot {
186
+ &.sd-rich-text-editor {
187
+ display: block;
188
+ align-self: center;
189
+ width: 100%;
190
+ min-width: 0;
191
+ padding: 0;
192
+ background: transparent;
193
+ border: 0;
194
+ border-radius: 0;
195
+ box-shadow: none;
196
+ }
197
+
198
+ &.sd-rich-text-editor:hover,
199
+ &.sd-rich-text-editor:focus-within {
200
+ border: 0;
201
+ box-shadow: none;
202
+ }
203
+
204
+ .sd-rich-text-editor-content {
205
+ box-sizing: border-box;
206
+ padding: 0;
207
+ color: inherit;
208
+ font: inherit;
209
+ line-height: inherit;
210
+ caret-color: $sender-color-primary;
211
+ outline: none;
212
+ }
213
+
214
+ .sd-rich-text-editor-placeholder {
215
+ inset-block-start: 0;
216
+ inset-inline-start: 0;
217
+ color: $sender-color-text-placeholder;
218
+ }
219
+
220
+ .sd-rich-text-editor-component {
221
+ margin-inline: $sender-slot-gap;
222
+ }
223
+
224
+ .sd-rich-text-editor-component-control {
225
+ min-height: calc(#{$sender-font-size} * #{$sender-line-height} + 2px);
226
+ font-size: inherit;
227
+ line-height: inherit;
228
+ }
229
+ }
230
+
231
+ &-input-slot-content {
232
+ width: 100%;
233
+ min-height: $sender-control-height;
234
+ white-space: pre-wrap;
235
+ overflow-wrap: anywhere;
236
+ cursor: text;
237
+ }
238
+
239
+ &-slot {
240
+ display: inline-flex;
241
+ align-items: center;
242
+ }
243
+
244
+ &-skill {
245
+ display: inline-block;
246
+ height: calc(#{$sender-font-size} * #{$sender-line-height} + 2px);
247
+ margin-block: 1px;
248
+ margin-inline-start: -1px;
249
+ vertical-align: baseline;
250
+ word-break: break-all;
251
+
252
+ &-empty::after {
253
+ display: inline-block;
254
+ height: inherit;
255
+ color: $sender-color-text-placeholder;
256
+ content: attr(data-placeholder);
257
+ pointer-events: none;
258
+ }
259
+
260
+ &-wrapper {
261
+ display: inline-flex;
262
+ height: 100%;
263
+ }
264
+
265
+ &-tag {
266
+ display: inline-flex;
267
+ gap: $sender-slot-gap;
268
+ align-items: center;
269
+ height: 100%;
270
+ color: $sender-color-primary;
271
+ font-weight: theme.$font-weight-500;
272
+ background: $sender-color-bg-skill;
273
+ border-radius: $sender-slot-border-radius;
274
+ cursor: pointer;
275
+ transition: background-color $sender-motion-duration-fast $sender-motion-easing;
276
+ padding-inline: $sender-skill-padding-inline;
277
+
278
+ &:hover {
279
+ background: $sender-color-bg-skill-hover;
280
+ }
281
+
282
+ &-close {
283
+ display: inline-flex;
284
+ color: $sender-color-primary;
285
+ font-size: theme.$font-size-body-1;
286
+ transition: color $sender-motion-duration-fast $sender-motion-easing;
287
+
288
+ &:not(.#{$sender-prefix-cls}-skill-tag-close-disabled):hover {
289
+ color: $sender-color-primary-hover;
290
+ }
291
+ }
292
+
293
+ &-close-disabled {
294
+ color: $sender-color-text-disabled;
295
+ cursor: not-allowed;
296
+ }
297
+ }
298
+
299
+ &-holder {
300
+ width: $sender-skill-holder-width;
301
+ height: 100%;
302
+ }
303
+ }
304
+
305
+ &-switch {
306
+ display: inline-block;
307
+
308
+ .#{$sender-prefix-cls}-switch-content:not(:disabled):hover {
309
+ color: $sender-color-text;
310
+ background: $sender-switch-unchecked-hover-bg;
311
+ border-color: $sender-color-border;
312
+ }
313
+
314
+ &-checked {
315
+ .#{$sender-prefix-cls}-switch-content {
316
+ color: $sender-color-primary;
317
+ background: $sender-switch-checked-bg;
318
+ border-color: $sender-color-primary;
319
+
320
+ &:not(:disabled):hover {
321
+ color: $sender-color-primary;
322
+ background: $sender-switch-checked-hover-bg;
323
+ border-color: $sender-color-primary;
324
+ }
325
+ }
326
+ }
327
+ }
328
+ }
329
+
330
+ @keyframes sender-loading-rotate {
331
+ to {
332
+ transform: rotate(360deg);
333
+ }
334
+ }
335
+
336
+ @keyframes sender-recording-bar {
337
+ 0%,
338
+ 100% {
339
+ transform: scaleY(1);
340
+ }
341
+
342
+ 50% {
343
+ transform: scaleY(2);
344
+ }
345
+ }
346
+
347
+ @media (prefers-reduced-motion: reduce) {
348
+ .#{$sender-prefix-cls} {
349
+ &-loading-spinner,
350
+ &-recording-bar {
351
+ animation: none;
352
+ }
353
+
354
+ &-header-motion-enter-active,
355
+ &-header-motion-leave-active {
356
+ transition-duration: 0.01ms;
357
+ }
358
+ }
359
+ }
@@ -0,0 +1,43 @@
1
+ @use '@style/theme/index.scss' as global;
2
+
3
+ @forward '@style/theme/index.scss';
4
+
5
+ $sender-font-size: global.$font-size-body-3;
6
+ $sender-line-height: global.$line-height-base;
7
+ $sender-border-width: global.$border-1;
8
+ $sender-border-radius: calc(global.$radius-medium * 2);
9
+ $sender-slot-border-radius: global.$radius-medium;
10
+ $sender-control-height: global.$size-default;
11
+
12
+ $sender-padding-block: global.$spacing-6;
13
+ $sender-padding-inline: global.$spacing-6;
14
+ $sender-content-gap: global.$spacing-4;
15
+ $sender-footer-padding-top: global.$spacing-2;
16
+ $sender-slot-gap: global.$spacing-2;
17
+ $sender-skill-padding-inline: global.$spacing-4;
18
+ $sender-skill-holder-width: global.$spacing-5;
19
+
20
+ $sender-color-primary: global.$color-primary-6;
21
+ $sender-color-primary-hover: global.$color-primary-5;
22
+ $sender-color-text: global.$color-text-1;
23
+ $sender-color-text-disabled: global.$color-text-4;
24
+ $sender-color-text-placeholder: global.$color-text-4;
25
+ $sender-color-bg: global.$color-bg-2;
26
+ $sender-color-bg-disabled: global.$color-fill-2;
27
+ $sender-color-header-bg: global.$color-fill-2;
28
+ $sender-color-border: global.$color-border-2;
29
+ $sender-color-border-input: color-mix(in srgb, #{global.$color-fill-3} 10%, transparent);
30
+ $sender-color-bg-skill: color-mix(in srgb, #{global.$color-primary-6} 8%, transparent);
31
+ $sender-color-bg-skill-hover: color-mix(in srgb, #{global.$color-primary-6} 15%, transparent);
32
+ $sender-color-bg-actions-disabled: color-mix(in srgb, #{global.$color-primary-6} 45%, transparent);
33
+ $sender-switch-checked-bg: color-mix(in srgb, #{global.$color-primary-6} 8%, transparent);
34
+ $sender-switch-checked-hover-bg: color-mix(in srgb, #{global.$color-primary-6} 10%, transparent);
35
+ $sender-switch-unchecked-hover-bg: color-mix(in srgb, #{global.$color-fill-3} 4%, transparent);
36
+
37
+ $sender-box-shadow:
38
+ 0 1px 2px 0 rgb(0 0 0 / 3%),
39
+ 0 1px 6px -1px rgb(0 0 0 / 2%),
40
+ 0 2px 4px 0 rgb(0 0 0 / 2%);
41
+ $sender-motion-duration: global.$transition-duration-3;
42
+ $sender-motion-duration-fast: global.$transition-duration-2;
43
+ $sender-motion-easing: global.$transition-timing-function-standard;